4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sourceforge.mikutoga.pmd;
10 import jp.sourceforge.mikutoga.corelib.I18nText;
15 public class JointInfo {
17 private final I18nText jointName = new I18nText();
19 private RigidInfo rigidA;
20 private RigidInfo rigidB;
22 private final Pos3d position = new Pos3d();
23 private final Rad3d rotation = new Rad3d();
25 private final Pos3d elaPosition = new Pos3d();
26 private final Deg3d elaRotation = new Deg3d();
28 private final TripletRange posRange = new TripletRange();
29 private final TripletRange rotRange = new TripletRange();
43 public I18nText getJointName(){
44 return this.jointName;
51 public RigidInfo getRigidA(){
59 public RigidInfo getRigidB(){
68 public void setRigidPair(RigidInfo rigidA, RigidInfo rigidB){
78 public Pos3d getPosition(){
86 public Rad3d getRotation(){
94 public Pos3d getElasticPosition(){
95 return this.elaPosition;
102 public Deg3d getElasticRotation(){
103 return this.elaRotation;
110 public TripletRange getPositionRange(){
111 return this.posRange;
118 public TripletRange getRotationRange(){
119 return this.rotRange;
124 * @return {@inheritDoc}
127 public String toString(){
128 StringBuilder result = new StringBuilder();
130 result.append("Joint ");
131 result.append(this.jointName);
133 .append(this.rigidA.getRigidName())
135 .append(this.rigidB.getRigidName())
137 result.append(this.position).append(' ');
138 result.append(this.rotation).append(' ');
140 result.append("poslim{").append(this.posRange).append("} ");
141 result.append("rotlim{").append(this.rotRange).append("} ");
143 result.append("ela:").append(this.elaPosition).append(' ');
144 result.append("ela:").append(this.elaRotation);
146 return result.toString();