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"); } }
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); }
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; }
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; } }
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; }
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."); } }
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); }
protected override void createEditInterface() { editInterface = MusclePosition.getEditInterface(Type); editInterface.IconReferenceTag = Icon; }
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; }
public void applyMusclePosition(MusclePosition position, float duration) { core.applyMusclePosition(position, duration); }
public MovementSequenceState() { musclePosition = new MusclePosition(); musclePosition.Easing = EasingFunction.None; }
public SetMusclePositionCommand() { MusclePosition = new MusclePosition(); MusclePosition.captureState(); }