public InverseKinematicsUserInterface(ControllerManager controllerManager, ChannelSystem channelSystem, RigidBoneSystem boneSystem, InverterParameters inverterParameters) { this.channelSystem = channelSystem; this.boneSystem = boneSystem; this.inverterParameters = inverterParameters; deviceTrackers = controllerManager.StateTrackers .Select(stateTracker => new DeviceTracker(this, stateTracker)) .ToArray(); }
public ActorBehavior(ControllerManager controllerManager, ActorModel model, InverterParameters inverterParameters) { this.model = model; poser = new Poser(model.MainDefinition); ikAnimator = new InverseKinematicsAnimator(controllerManager, model.MainDefinition, inverterParameters); proceduralAnimator = new StandardProceduralAnimator(model.MainDefinition, model.Behavior); dragHandle = new DragHandle(controllerManager, InitialSettings.InitialTransform); model.PoseReset += ikAnimator.Reset; }
public InverseKinematicsAnimator(ControllerManager controllerManager, FigureDefinition definition, InverterParameters inverterParameters) { channelSystem = definition.ChannelSystem; boneSystem = new RigidBoneSystem(definition.BoneSystem); goalProvider = new InverseKinematicsUserInterface(controllerManager, channelSystem, boneSystem, inverterParameters); //goalProvider = new DemoInverseKinematicsGoalProvider(boneSystem); solver = new HarmonicInverseKinematicsSolver(boneSystem, inverterParameters.BoneAttributes); poseDeltas = boneSystem.MakeZeroInputs(); Reset(); }
public static ActorBehavior Load(ControllerManager controllerManager, IArchiveDirectory figureDir, ActorModel model) { InverterParameters inverterParameters = Persistance.Load <InverterParameters>(figureDir.File("inverter-parameters.dat")); return(new ActorBehavior(controllerManager, model, inverterParameters)); }