-/*\r
- * building joint information\r
- *\r
- * License : The MIT License\r
- * Copyright(c) 2010 MikuToga Partners\r
- */\r
-\r
-package jp.sourceforge.mikutoga.pmd.pmdloader;\r
-\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import jp.sourceforge.mikutoga.corelib.ListUtil;\r
-import jp.sourceforge.mikutoga.parser.ParseStage;\r
-import jp.sourceforge.mikutoga.parser.pmd.PmdJointHandler;\r
-import jp.sourceforge.mikutoga.pmd.Deg3d;\r
-import jp.sourceforge.mikutoga.pmd.JointInfo;\r
-import jp.sourceforge.mikutoga.pmd.PmdModel;\r
-import jp.sourceforge.mikutoga.pmd.Pos3d;\r
-import jp.sourceforge.mikutoga.pmd.Rad3d;\r
-import jp.sourceforge.mikutoga.pmd.RigidInfo;\r
-import jp.sourceforge.mikutoga.pmd.TripletRange;\r
-\r
-/**\r
- * ジョイント関係の通知をパーサから受け取る。\r
- */\r
-class JointBuilder implements PmdJointHandler {\r
-\r
- private final List<RigidInfo> rigidList;\r
-\r
- private final List<JointInfo> jointList;\r
- private Iterator<JointInfo> jointIt;\r
- private JointInfo currentJoint = null;\r
-\r
- /**\r
- * コンストラクタ。\r
- * @param model モデル\r
- */\r
- JointBuilder(PmdModel model){\r
- super();\r
- this.rigidList = model.getRigidList();\r
- this.jointList = model.getJointList();\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param stage {@inheritDoc}\r
- * @param loops {@inheritDoc}\r
- */\r
- @Override\r
- public void loopStart(ParseStage stage, int loops){\r
- assert stage == PmdJointHandler.JOINT_LIST;\r
-\r
- ListUtil.prepareDefConsList(this.jointList, JointInfo.class, loops);\r
-\r
- this.jointIt = this.jointList.iterator();\r
- if(this.jointIt.hasNext()){\r
- this.currentJoint = this.jointIt.next();\r
- }\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param stage {@inheritDoc}\r
- */\r
- @Override\r
- public void loopNext(ParseStage stage){\r
- assert stage == PmdJointHandler.JOINT_LIST;\r
-\r
- if(this.jointIt.hasNext()){\r
- this.currentJoint = this.jointIt.next();\r
- }\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param stage {@inheritDoc}\r
- */\r
- @Override\r
- public void loopEnd(ParseStage stage){\r
- assert stage == PmdJointHandler.JOINT_LIST;\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param jointName {@inheritDoc}\r
- */\r
- @Override\r
- public void pmdJointName(String jointName){\r
- this.currentJoint.getJointName().setPrimaryText(jointName);\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param rigidIdA {@inheritDoc}\r
- * @param rigidIdB {@inheritDoc}\r
- */\r
- @Override\r
- public void pmdJointLink(int rigidIdA, int rigidIdB){\r
- RigidInfo rigidA = this.rigidList.get(rigidIdA);\r
- RigidInfo rigidB = this.rigidList.get(rigidIdB);\r
- this.currentJoint.setRigidPair(rigidA, rigidB);\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param posX {@inheritDoc}\r
- * @param posY {@inheritDoc}\r
- * @param posZ {@inheritDoc}\r
- */\r
- @Override\r
- public void pmdJointPosition(float posX, float posY, float posZ){\r
- Pos3d position = this.currentJoint.getPosition();\r
- position.setXPos(posX);\r
- position.setYPos(posY);\r
- position.setZPos(posZ);\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param rotX {@inheritDoc}\r
- * @param rotY {@inheritDoc}\r
- * @param rotZ {@inheritDoc}\r
- */\r
- @Override\r
- public void pmdJointRotation(float rotX, float rotY, float rotZ){\r
- Rad3d rotation = this.currentJoint.getRotation();\r
- rotation.setXRad(rotX);\r
- rotation.setYRad(rotY);\r
- rotation.setZRad(rotZ);\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param posXlim1 {@inheritDoc}\r
- * @param posXlim2 {@inheritDoc}\r
- * @param posYlim1 {@inheritDoc}\r
- * @param posYlim2 {@inheritDoc}\r
- * @param posZlim1 {@inheritDoc}\r
- * @param posZlim2 {@inheritDoc}\r
- */\r
- @Override\r
- public void pmdPositionLimit(float posXlim1, float posXlim2,\r
- float posYlim1, float posYlim2,\r
- float posZlim1, float posZlim2){\r
- TripletRange range = this.currentJoint.getPositionRange();\r
- range.setXRange(posXlim1, posXlim2);\r
- range.setYRange(posYlim1, posYlim2);\r
- range.setZRange(posZlim1, posZlim2);\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param rotXlim1 {@inheritDoc}\r
- * @param rotXlim2 {@inheritDoc}\r
- * @param rotYlim1 {@inheritDoc}\r
- * @param rotYlim2 {@inheritDoc}\r
- * @param rotZlim1 {@inheritDoc}\r
- * @param rotZlim2 {@inheritDoc}\r
- */\r
- @Override\r
- public void pmdRotationLimit(float rotXlim1, float rotXlim2,\r
- float rotYlim1, float rotYlim2,\r
- float rotZlim1, float rotZlim2){\r
- TripletRange range = this.currentJoint.getRotationRange();\r
- range.setXRange(rotXlim1, rotXlim2);\r
- range.setYRange(rotYlim1, rotYlim2);\r
- range.setZRange(rotZlim1, rotZlim2);\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param elasticPosX {@inheritDoc}\r
- * @param elasticPosY {@inheritDoc}\r
- * @param elasticPosZ {@inheritDoc}\r
- */\r
- @Override\r
- public void pmdElasticPosition(float elasticPosX,\r
- float elasticPosY,\r
- float elasticPosZ){\r
- Pos3d position = this.currentJoint.getElasticPosition();\r
- position.setXPos(elasticPosX);\r
- position.setYPos(elasticPosY);\r
- position.setZPos(elasticPosZ);\r
- return;\r
- }\r
-\r
- /**\r
- * {@inheritDoc}\r
- * @param elasticRotX {@inheritDoc}\r
- * @param elasticRotY {@inheritDoc}\r
- * @param elasticRotZ {@inheritDoc}\r
- */\r
- @Override\r
- public void pmdElasticRotation(float elasticRotX,\r
- float elasticRotY,\r
- float elasticRotZ){\r
- Deg3d rotation = this.currentJoint.getElasticRotation();\r
- rotation.setXDeg(elasticRotX);\r
- rotation.setYDeg(elasticRotY);\r
- rotation.setZDeg(elasticRotZ);\r
- return;\r
- }\r
-\r
-}\r
+/*
+ * building joint information
+ *
+ * License : The MIT License
+ * Copyright(c) 2010 MikuToga Partners
+ */
+
+package jp.sourceforge.mikutoga.pmd.pmdloader;
+
+import java.util.Iterator;
+import java.util.List;
+import jp.sourceforge.mikutoga.corelib.ListUtil;
+import jp.sourceforge.mikutoga.parser.ParseStage;
+import jp.sourceforge.mikutoga.parser.pmd.PmdJointHandler;
+import jp.sourceforge.mikutoga.pmd.Deg3d;
+import jp.sourceforge.mikutoga.pmd.Pos3d;
+import jp.sourceforge.mikutoga.pmd.Rad3d;
+import jp.sourceforge.mikutoga.pmd.TripletRange;
+import jp.sourceforge.mikutoga.pmd.model.JointInfo;
+import jp.sourceforge.mikutoga.pmd.model.PmdModel;
+import jp.sourceforge.mikutoga.pmd.model.RigidInfo;
+
+/**
+ * ジョイント関係の通知をパーサから受け取る。
+ */
+class JointBuilder implements PmdJointHandler {
+
+ private final List<RigidInfo> rigidList;
+
+ private final List<JointInfo> jointList;
+ private Iterator<JointInfo> jointIt;
+ private JointInfo currentJoint = null;
+
+ /**
+ * コンストラクタ。
+ * @param model モデル
+ */
+ JointBuilder(PmdModel model){
+ super();
+ this.rigidList = model.getRigidList();
+ this.jointList = model.getJointList();
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param stage {@inheritDoc}
+ * @param loops {@inheritDoc}
+ */
+ @Override
+ public void loopStart(ParseStage stage, int loops){
+ assert stage == PmdJointHandler.JOINT_LIST;
+
+ ListUtil.prepareDefConsList(this.jointList, JointInfo.class, loops);
+
+ this.jointIt = this.jointList.iterator();
+ if(this.jointIt.hasNext()){
+ this.currentJoint = this.jointIt.next();
+ }
+
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param stage {@inheritDoc}
+ */
+ @Override
+ public void loopNext(ParseStage stage){
+ assert stage == PmdJointHandler.JOINT_LIST;
+
+ if(this.jointIt.hasNext()){
+ this.currentJoint = this.jointIt.next();
+ }
+
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param stage {@inheritDoc}
+ */
+ @Override
+ public void loopEnd(ParseStage stage){
+ assert stage == PmdJointHandler.JOINT_LIST;
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param jointName {@inheritDoc}
+ */
+ @Override
+ public void pmdJointName(String jointName){
+ this.currentJoint.getJointName().setPrimaryText(jointName);
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param rigidIdA {@inheritDoc}
+ * @param rigidIdB {@inheritDoc}
+ */
+ @Override
+ public void pmdJointLink(int rigidIdA, int rigidIdB){
+ RigidInfo rigidA = this.rigidList.get(rigidIdA);
+ RigidInfo rigidB = this.rigidList.get(rigidIdB);
+ this.currentJoint.setRigidPair(rigidA, rigidB);
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param posX {@inheritDoc}
+ * @param posY {@inheritDoc}
+ * @param posZ {@inheritDoc}
+ */
+ @Override
+ public void pmdJointPosition(float posX, float posY, float posZ){
+ Pos3d position = this.currentJoint.getPosition();
+ position.setXPos(posX);
+ position.setYPos(posY);
+ position.setZPos(posZ);
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param rotX {@inheritDoc}
+ * @param rotY {@inheritDoc}
+ * @param rotZ {@inheritDoc}
+ */
+ @Override
+ public void pmdJointRotation(float rotX, float rotY, float rotZ){
+ Rad3d rotation = this.currentJoint.getRotation();
+ rotation.setXRad(rotX);
+ rotation.setYRad(rotY);
+ rotation.setZRad(rotZ);
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param posXlim1 {@inheritDoc}
+ * @param posXlim2 {@inheritDoc}
+ * @param posYlim1 {@inheritDoc}
+ * @param posYlim2 {@inheritDoc}
+ * @param posZlim1 {@inheritDoc}
+ * @param posZlim2 {@inheritDoc}
+ */
+ @Override
+ public void pmdPositionLimit(float posXlim1, float posXlim2,
+ float posYlim1, float posYlim2,
+ float posZlim1, float posZlim2){
+ TripletRange range = this.currentJoint.getPositionRange();
+ range.setXRange(posXlim1, posXlim2);
+ range.setYRange(posYlim1, posYlim2);
+ range.setZRange(posZlim1, posZlim2);
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param rotXlim1 {@inheritDoc}
+ * @param rotXlim2 {@inheritDoc}
+ * @param rotYlim1 {@inheritDoc}
+ * @param rotYlim2 {@inheritDoc}
+ * @param rotZlim1 {@inheritDoc}
+ * @param rotZlim2 {@inheritDoc}
+ */
+ @Override
+ public void pmdRotationLimit(float rotXlim1, float rotXlim2,
+ float rotYlim1, float rotYlim2,
+ float rotZlim1, float rotZlim2){
+ TripletRange range = this.currentJoint.getRotationRange();
+ range.setXRange(rotXlim1, rotXlim2);
+ range.setYRange(rotYlim1, rotYlim2);
+ range.setZRange(rotZlim1, rotZlim2);
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param elasticPosX {@inheritDoc}
+ * @param elasticPosY {@inheritDoc}
+ * @param elasticPosZ {@inheritDoc}
+ */
+ @Override
+ public void pmdElasticPosition(float elasticPosX,
+ float elasticPosY,
+ float elasticPosZ){
+ Pos3d position = this.currentJoint.getElasticPosition();
+ position.setXPos(elasticPosX);
+ position.setYPos(elasticPosY);
+ position.setZPos(elasticPosZ);
+ return;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @param elasticRotX {@inheritDoc}
+ * @param elasticRotY {@inheritDoc}
+ * @param elasticRotZ {@inheritDoc}
+ */
+ @Override
+ public void pmdElasticRotation(float elasticRotX,
+ float elasticRotY,
+ float elasticRotZ){
+ Deg3d rotation = this.currentJoint.getElasticRotation();
+ rotation.setXDeg(elasticRotX);
+ rotation.setYDeg(elasticRotY);
+ rotation.setZDeg(elasticRotZ);
+ return;
+ }
+
+}