예제 #1
0
 public void update()
 {
     boneState  = MandibleController.createMandibleState();
     discState  = DiscController.createDiscState();
     teethState = TeethController.createTeethState();
     fossaState = FossaController.createState();
 }
예제 #2
0
        protected override void constructed()
        {
            DiscController.addDisc(this);
            SimObject controlPointObj = Owner.getOtherSimObject(controlPointObject);

            if (controlPointObj != null)
            {
                controlPoint = controlPointObj.getElement(controlPointBehavior) as ControlPointBehavior;
                if (controlPoint == null)
                {
                    blacklist("Could not find controlPointBehavior {0}.", controlPointBehavior);
                }
            }
            else
            {
                blacklist("Could not find controlPointObject {0}.", controlPointObject);
            }

            SimObject fossaSimObject = Owner.getOtherSimObject(fossaObject);

            if (fossaSimObject != null)
            {
                fossa = fossaSimObject.getElement(fossaName) as Fossa;
                if (fossa == null)
                {
                    blacklist("Could not find Fossa {0} in SimObject {1}.", fossaName, fossaObject);
                }
            }
            else
            {
                blacklist("Could not find Fossa SimObject {0}.", fossaObject);
            }

            SceneNodeElement node = Owner.getElement(sceneNodeName) as SceneNodeElement;

            if (node != null)
            {
                Entity entity = node.getNodeObject(entityName) as Entity;
                if (entity != null)
                {
                    if (entity.hasSkeleton())
                    {
                        SkeletonInstance skeleton = entity.getSkeleton();
                        medialPole.findBone(skeleton);
                        lateralPole.findBone(skeleton);
                        ventralPole.findBone(skeleton);
                        posteriorPole.initialize(skeleton, Owner, controlPoint, this);
                        topSurface.initialize(skeleton, fossa, Owner);
                    }
                }
                else
                {
                    blacklist("Could not find entity {0} in node {1}.", entityName, sceneNodeName);
                }
            }
            else
            {
                blacklist("Could not find SceneNode {0}.", sceneNodeName);
            }
        }
예제 #3
0
        public void blend(DiscStateProperties target, float percent)
        {
            Disc disc = DiscController.getDisc(discName);

            if (disc != null)
            {
                disc.DiscOffset       = this.discOffset.lerp(ref target.discOffset, ref percent);
                disc.RDAOffset        = this.rdaOffset.lerp(ref target.rdaOffset, ref percent);
                disc.HorizontalOffset = this.horizontalOffset.lerp(ref target.horizontalOffset, ref percent);
                disc.ClockFaceOffset  = this.clockFaceOffset.lerp(ref target.clockFaceOffset, ref percent);
                float delta = target.popLocation - this.popLocation;
                disc.PopLocation = this.popLocation + delta * percent;
                if (percent < 0.05f)
                {
                    disc.DisplaceLateralPole = displaceLateralPole;
                }
                else
                {
                    disc.DisplaceLateralPole = target.displaceLateralPole;
                }
                if (percent < 1.0f)
                {
                    disc.Locked = locked;
                }
                else
                {
                    disc.Locked = target.locked;
                }
            }
        }
예제 #4
0
 protected override void destroy()
 {
     DiscController.removeDisc(this);
 }