OSDN Git Service

[no commit message]
[mikutoga/TogaGem.git] / src / main / java / jp / sourceforge / mikutoga / pmd / pmdloader / JointBuilder.java
index ca619a4..8185381 100644 (file)
-/*\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;
+    }
+
+}