Esempio n. 1
0
 private void setEnginTrajectoryFromEditor(Trajectory tra, TrajectoryED traED)
 {
     if (tra != null)
     {
         tra.relToCharFrame  = traED.characterFrameRelative;
         tra.noReverseStance = traED.noReverseStance;
         for (int j = 0; j < tra.getTrajectoryComponentCount(); j++)
         {
             TrajectoryComponent com = tra.getTrajectoryComponent(j);
             com.offset = traED.component[j].offset;
             com.reverseAngleOnLeftStance  = traED.component[j].reverseAngleOnLeftStance;
             com.reverseAngleOnRightStance = traED.component[j].reverseAngleOnRightStance;
             if (Mathf.Abs(traED.component[j].balance.cd) > 0 || Mathf.Abs(traED.component[j].balance.cv) > 0)
             {
                 com.bFeedback = new LinearBalanceFeedback();
                 com.bFeedback.feedbackProjectionAxis = traED.component[j].balance.feedbackProjectionAxis;
                 com.bFeedback.cd         = traED.component[j].balance.cd;
                 com.bFeedback.cv         = traED.component[j].balance.cv;
                 com.bFeedback.reversedCD = traED.component[j].balance.reversedCD;
                 com.bFeedback.reversedCV = traED.component[j].balance.reversedCV;
                 com.bFeedback.dMin       = traED.component[j].balance.dMin;
                 com.bFeedback.dMax       = traED.component[j].balance.dMax;
                 com.bFeedback.vMin       = traED.component[j].balance.vMin;
                 com.bFeedback.vMax       = traED.component[j].balance.vMax;
             }
             else
             {
                 com.bFeedback = null;
             }
             com.baseTraj.clear();
             for (int i = 0; i < traED.component[j].baseTrajectory.Length; i++)
             {
                 com.baseTraj.addKnot(traED.component[j].baseTrajectory[i].t, traED.component[j].baseTrajectory[i].angle);
             }
         }
     }
 }
Esempio n. 2
0
    private void setEditorStateFromEngine(TrajectoryED traED, Trajectory tra)
    {
        if (tra != null)
        {
            traED.characterFrameRelative = tra.relToCharFrame;
            traED.noReverseStance        = tra.noReverseStance;
            traED.component = new ComponentED[tra.getTrajectoryComponentCount()];
            for (int j = 0; j < tra.getTrajectoryComponentCount(); j++)
            {
                TrajectoryComponent com = tra.getTrajectoryComponent(j);
                traED.component[j]        = new ComponentED();
                traED.component[j].offset = com.offset;
                traED.component[j].reverseAngleOnLeftStance  = com.reverseAngleOnLeftStance;
                traED.component[j].reverseAngleOnRightStance = com.reverseAngleOnRightStance;
                if (com.bFeedback != null)
                {
                    traED.component[j].balance = new BalanceED();
                    traED.component[j].balance.feedbackProjectionAxis = com.bFeedback.feedbackProjectionAxis;
                    traED.component[j].balance.cd         = com.bFeedback.cd;
                    traED.component[j].balance.cv         = com.bFeedback.cv;
                    traED.component[j].balance.reversedCD = com.bFeedback.reversedCD;
                    traED.component[j].balance.reversedCV = com.bFeedback.reversedCV;
                    traED.component[j].balance.dMin       = com.bFeedback.dMin;
                    traED.component[j].balance.dMax       = com.bFeedback.dMax;
                    traED.component[j].balance.vMin       = com.bFeedback.vMin;
                    traED.component[j].balance.vMax       = com.bFeedback.vMax;
                }
                else
                {
                    traED.component[j].balance = new BalanceED();
                    traED.component[j].balance.feedbackProjectionAxis = Vector3.right;
                    traED.component[j].balance.cd         = 0;
                    traED.component[j].balance.cv         = 0;
                    traED.component[j].balance.reversedCD = false;
                    traED.component[j].balance.reversedCV = false;
                    traED.component[j].balance.dMin       = -100;
                    traED.component[j].balance.dMax       = 100;
                    traED.component[j].balance.vMin       = -100;
                    traED.component[j].balance.vMax       = 100;
                }
                traED.component[j].baseTrajectory = new TrajectoryDataED[com.baseTraj.getKnotCount()];
                for (int i = 0; i < com.baseTraj.getKnotCount(); i++)
                {
                    traED.component[j].baseTrajectory[i]       = new TrajectoryDataED();
                    traED.component[j].baseTrajectory[i].t     = com.baseTraj.getKnotPosition(i);
                    traED.component[j].baseTrajectory[i].angle = com.baseTraj.getKnotValue(i);
                }
            }
        }
        else
        {
            traED.characterFrameRelative = false;
            traED.noReverseStance        = false;
            traED.component           = new ComponentED[1];
            traED.component[0]        = new ComponentED();
            traED.component[0].offset = 0;
            traED.component[0].reverseAngleOnLeftStance  = false;
            traED.component[0].reverseAngleOnRightStance = false;

            traED.component[0].balance = new BalanceED();
            traED.component[0].balance.feedbackProjectionAxis = Vector3.right;
            traED.component[0].balance.cd         = 0;
            traED.component[0].balance.cv         = 0;
            traED.component[0].balance.reversedCD = false;
            traED.component[0].balance.reversedCV = false;
            traED.component[0].balance.dMin       = -100;
            traED.component[0].balance.dMax       = 100;
            traED.component[0].balance.vMin       = -100;
            traED.component[0].balance.vMax       = 100;
            traED.component[0].baseTrajectory     = new TrajectoryDataED[0];
        }
    }