public SimObjectBase createProp(String propName, Vector3 translation, Quaternion rotation) { if (subScene != null) { PropDefinition propDef; if (prototypes.TryGetValue(propName, out propDef)) { SimObjectDefinition definition = propDef.SimObject; Vector3 originalTranslation = definition.Translation; Quaternion originalRotation = definition.Rotation; definition.Name = UniqueKeyGenerator.generateStringKey(); definition.Translation = translation; definition.Rotation = rotation; SimObjectBase instance = definition.register(subScene); medicalController.addSimObject(instance); scene.buildScene(); definition.Translation = originalTranslation; definition.Rotation = originalRotation; return(instance); } else { Log.Error("Could not create prop {0}. The definition cannot be found.", propName); } } else { Log.Error("Could not create prop {0}. The subscene is null.", propName); } return(null); }
private KinectIKFace createKinectFace(String boneSimObjectName, String translationSimObjectName, KinectIKBone parent, Vector3 additionalOffset, SimScene scene, SimSubScene subScene) { dragControl.BoneSimObjectName = boneSimObjectName; var targetSimObject = medicalController.getSimObject(dragControl.BoneSimObjectName); var ikBone = targetSimObject.getElement("IKBone") as BEPUikBone; ikBone.Pinned = false; dragSimObjectDefinition.Name = "KinectFaceControl"; dragSimObjectDefinition.Enabled = allowMovement; dragSimObjectDefinition.Translation = medicalController.getSimObject(translationSimObjectName).Translation + additionalOffset; SimObjectBase instance = dragSimObjectDefinition.register(subScene); medicalController.addSimObject(instance); scene.buildScene(); ikDragSimObjects.Add(instance); float distanceToParent = 0; if (parent != null) { distanceToParent = (instance.Translation - parent.Translation).length(); } return(new KinectIKFace(parent, distanceToParent, instance)); }
public void createSimObjects() { if (dynamicMode) { scene.buildScene(SceneBuildOptions.None); } else { scene.buildStaticScene(); } }
/// <summary> /// Create a model. /// </summary> /// <param name="meshName">The name of the mesh to load.</param> /// <param name="scene">The scene to load the mesh into.</param> public void createModel(String meshName, SimScene scene) { entityDefintion.MeshName = meshName; currentSimObject = simObjectDefinition.register(scene.getDefaultSubScene()); Stopwatch sw = new Stopwatch(); sw.Start(); scene.buildScene(SceneBuildOptions.None); sw.Stop(); Log.Info("Scene loaded in {0} ms.", sw.ElapsedMilliseconds); entity = ((SceneNodeElement)currentSimObject.getElement("EntityNode")).getNodeObject("Entity") as Entity; readModelInfo(); entity.setDisplaySkeleton(showSkeleton); selectableModel.ModelObject = currentSimObject; controller.ObjectMover.clearMovableObjects(); controller.ObjectMover.addMovableObject("model", selectableModel); }