protected MovementSequenceState(LoadInfo info)
        {
            startTime = info.GetFloat(START_TIME);

            if (info.Version < 2)
            {
                musclePosition        = new MusclePosition();
                musclePosition.Easing = EasingFunction.None;

                musclePosition.MovingTargetPosition = info.GetVector3(MOVING_TARGET_POSITION);
                musclePosition.MuscleForce          = info.GetFloat(MUSCLE_FORCE);
                musclePosition.PelvisChainState     = info.GetValue <FKChainState>(PELIVS_CHAIN_STATE, null);
                if (info.Version == 0)
                {
                    musclePosition.LeftCPPosition  = MusclePosition.UpgradeCpPosition(info.GetFloat(LEFT_CP_POSITION));
                    musclePosition.RightCPPosition = MusclePosition.UpgradeCpPosition(info.GetFloat(RIGHT_CP_POSITION));
                }
                else
                {
                    musclePosition.LeftCPPosition  = info.GetFloat(LEFT_CP_POSITION);
                    musclePosition.RightCPPosition = info.GetFloat(RIGHT_CP_POSITION);
                }
            }
            else
            {
                musclePosition = info.GetValue <MusclePosition>("musclePosition");
            }
        }
Exemplo n.º 2
0
        private bool findDragTarget(Ray3 cameraRay)
        {
            var matches = PoseableObjectsManager.findPoseable(cameraRay);

            foreach (var match in matches.Results)
            {
                var bone = match.PoseableIdentifier.PoseHandler.Bone;
                if (bone != null)
                {
                    if (bone.Pinned)
                    {
                        repinBone   = true;
                        bone.Pinned = false;
                    }
                    else
                    {
                        repinBone = false;
                    }

                    dragControl.TargetBone = bone;
                    hitDistance            = match.Distance;
                    Vector3 hitPosition = cameraRay.Direction * hitDistance + cameraRay.Origin;
                    dragControl.LinearMotor.Offset         = (hitPosition - bone.Owner.Translation).toBepuVec3();
                    dragControl.LinearMotor.TargetPosition = hitPosition.toBepuVec3();
                    ikScene.addExternalControl(dragControl);
                    poseStartPosition = new MusclePosition(true);
                    currentHandler    = match.PoseableIdentifier.PoseHandler;
                    currentHandler.posingStarted(activeModes);

                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 3
0
        private void clearDragTarget()
        {
            if (poseStartPosition != null)
            {
                //Only record undo if we moved far enough
                if (travelTracker.TraveledOverLimit)
                {
                    musclePositionController.pushUndoState(poseStartPosition);
                }
                poseStartPosition = null;
            }

            if (currentHandler != null)
            {
                currentHandler.posingEnded(activeModes);
                currentHandler = null;
            }

            if (dragControl.TargetBone != null)
            {
                dragControl.TargetBone.Pinned = repinBone;
            }

            ikScene.removeExternalControl(dragControl);
            dragControl.TargetBone = null;
        }
Exemplo n.º 4
0
        public void applyMusclePosition(MusclePosition position, float duration)
        {
            MusclePosition currentPosition = new MusclePosition();

            currentPosition.captureState();
            standaloneController.MusclePositionController.timedBlend(currentPosition, position, duration);
        }
 void mandibleMotionTrackBar_ValueChangeEnded(MandibleControlSlider source)
 {
     if (slideStartMusclePosition != null)
     {
         musclePositionController.pushUndoState(slideStartMusclePosition);
         slideStartMusclePosition = null;
     }
 }
Exemplo n.º 6
0
        public BlendMusclePositionCommand()
        {
            startPosition = new MusclePosition();
            startPosition.captureState();

            endPosition = new MusclePosition();
            endPosition.captureState();
        }
 void restoreButton_Click(object sender, EventArgs e)
 {
     if (restorePosition != null)
     {
         musclePositionController.timedBlend(restorePosition, MedicalConfig.CameraTransitionTime);
         restorePosition = null;
     }
     restoreButton.Enabled = false;
 }
        private void resetButton_Click(object sender, EventArgs e)
        {
            restorePosition = new MusclePosition();
            restorePosition.captureState();

            musclePositionController.timedBlend(musclePositionController.BindPosition, MedicalConfig.CameraTransitionTime);

            bothForwardBack.Value = rightForwardBack.Value;
            restoreButton.Enabled = true;
        }
Exemplo n.º 9
0
 public override void execute(AnomalousMvcContext context)
 {
     if (Name != null)
     {
         MusclePosition musclePosition = new MusclePosition();
         musclePosition.captureState();
         context.addModel(Name, musclePosition);
     }
     else
     {
         Log.Warning("No name defined.");
     }
 }
 public override void execute(AnomalousMvcContext context)
 {
     if (Name != null)
     {
         MusclePosition musclePosition = context.getModel <MusclePosition>(Name);
         if (musclePosition != null)
         {
             context.applyMusclePosition(musclePosition, MedicalConfig.CameraTransitionTime);
         }
         else
         {
             Log.Warning("Cannot find muscle position {0}.", Name);
         }
     }
     else
     {
         Log.Warning("No name defined.");
     }
 }
Exemplo n.º 11
0
        public void applySceneStateToSlide(Slide slide)
        {
            CameraPosition cameraPos = new CameraPosition();

            if (sceneViewController.ActiveWindow != null)
            {
                SceneViewWindow window = sceneViewController.ActiveWindow;
                cameraPos.Translation = window.Translation;
                cameraPos.LookAt      = window.LookAt;
                window.calculateIncludePoint(cameraPos);
            }
            LayerState layers = new LayerState();

            layers.captureState();
            PresetState    medicalState   = medicalStateController.createPresetState("");
            MusclePosition musclePosition = new MusclePosition();

            musclePosition.captureState();
            slide.StartupAction = new SetupSceneAction("Show", cameraPos, layers, musclePosition, medicalState, true, TeethController.HighlightContacts);
        }
 void mandibleMotionTrackBar_ValueChangeStarted(MandibleControlSlider source)
 {
     slideStartMusclePosition = new MusclePosition(true);
 }
Exemplo n.º 13
0
 protected override void createEditInterface()
 {
     editInterface = MusclePosition.getEditInterface(Type);
     editInterface.IconReferenceTag = Icon;
 }
Exemplo n.º 14
0
        public SetupSceneAction(String name, CameraPosition cameraPosition, LayerState layers, MusclePosition musclePosition, PresetState medicalState, bool captureHighlight, bool isHighlighted)
        {
            action         = new RunCommandsAction(name);
            Layers         = layers != null;
            Camera         = cameraPosition != null;
            MusclePosition = musclePosition != null;
            MedicalState   = medicalState != null;
            HighlightTeeth = captureHighlight;

            if (Layers)
            {
                ChangeLayersCommand changeLayersCommand = new ChangeLayersCommand();
                changeLayersCommand.Layers.copyFrom(layers);
                action.addCommand(changeLayersCommand);
            }

            if (MusclePosition)
            {
                SetMusclePositionCommand musclePositionCommand = new SetMusclePositionCommand();
                musclePositionCommand.MusclePosition = musclePosition;
                action.addCommand(musclePositionCommand);
            }

            if (Camera)
            {
                MoveCameraCommand moveCameraCommand = new MoveCameraCommand();
                moveCameraCommand.CameraPosition = cameraPosition;
                action.addCommand(moveCameraCommand);
            }

            if (MedicalState)
            {
                ChangeMedicalStateCommand medicalStateCommand = new ChangeMedicalStateCommand();
                medicalStateCommand.PresetState = medicalState;
                action.addCommand(medicalStateCommand);
            }

            if (HighlightTeeth)
            {
                action.addCommand(new ChangeTeethHighlightsCommand(isHighlighted));
            }

            AllowPreview = true;
        }
Exemplo n.º 15
0
 public void applyMusclePosition(MusclePosition position, float duration)
 {
     core.applyMusclePosition(position, duration);
 }
 public MovementSequenceState()
 {
     musclePosition        = new MusclePosition();
     musclePosition.Easing = EasingFunction.None;
 }
Exemplo n.º 17
0
 public SetMusclePositionCommand()
 {
     MusclePosition = new MusclePosition();
     MusclePosition.captureState();
 }