Example #1
0
    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();
    }
Example #2
0
    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();
 }
Example #4
0
    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));
    }