public void update() { boneState = MandibleController.createMandibleState(); discState = DiscController.createDiscState(); teethState = TeethController.createTeethState(); fossaState = FossaController.createState(); }
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); } }
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; } } }
protected override void destroy() { DiscController.removeDisc(this); }