public void Update(GameTime dt) { if (Data == null || Data.Count == 0) { return; } SceneNode pnode = Data[0] as SceneNode; if (pnode != null) { pnode.SetRotation(Quaternion.CreateFromAxisAngle(Vector3.UnitZ, ( float )dt.TotalGameTime.TotalMilliseconds * _rotationSpeed)); } foreach (object obj in Data) { SceneNode node = obj as SceneNode; if (node != null) { MeshAttachable attachable = node.Attachable.Count > 0 ? node.Attachable[0] as MeshAttachable : null; // if(attachable != null) // attachable.Material.SetParameter(""); } } }
public GameEntity GetEntityByMesh(MeshAttachable mesh) { if (_meshes.ContainsKey(mesh)) { return(_meshes[mesh]); } return(null); }
public void RegisterMesh(MeshAttachable mesh, GameEntity entity) { _meshes.Add(mesh, entity); if (!_entitiesMapToMeshes.ContainsKey(entity)) { _entitiesMapToMeshes.Add(entity, new List <MeshAttachable>()); } _entitiesMapToMeshes[entity].Add(mesh); }
public SceneNode GetSceneNode(IDictionary <string, object> parameters, GameEntity entity) { var materialFunc = GetMaterialFunc(); SceneNode scn = new SceneNode(); MeshAttachable mesh = new MeshAttachable(Name, Platform.Instance.Content.Load <Model>(Mesh), materialFunc(parameters)); GameWorldManager.Instance.RegisterMesh(mesh, entity); scn.AddAttachable(mesh); return(scn); }
public BoundingBox GetTransformedBoundingBox() { foreach (Attachable at in _attachables) { MeshAttachable myMesh = at as MeshAttachable; if (myMesh != null) { return(myMesh.GetTransformedAABB()); } } return(new BoundingBox()); }
public SceneNode GetSceneNode(IDictionary <string, object> parameters, GameEntity entity) { var materialFunc = GetMaterialFunc(); SceneNode scn = new SceneNode(); MeshAttachable mesh = new MeshAttachable(Name, Platform.Instance.Content.Load <Model>(Mesh), materialFunc(parameters)); GameWorldManager.Instance.RegisterMesh(mesh, entity); scn.AddAttachable(mesh); scn.SetPosition(LocalPosition); scn.SetRotation(LocalRotation); scn.SetScale(LocalScale); scn.Invisible = Invisible; scn.DrawsDepth = DrawsDepth; return(scn); }
public BoundingSphere GetBoundingSphere() { if (!_hasBSphere) { foreach (Attachable at in _attachables) { MeshAttachable myMesh = ( MeshAttachable )at; if (myMesh != null) { if (!_hasBSphere) { _bSphere = myMesh.BoundingSphere; _hasBSphere = true; } else { _bSphere = BoundingSphere.CreateMerged(_bSphere, myMesh.BoundingSphere); } } } } return(_bSphere); }
private void HighlightSelectedEntity() { if (_selectedEntity != null) { if (!_state.Equals(EditorState.None)) { foreach (KeyValuePair <string, SceneNode> keyValuePair in _selectedEntity.SceneNodes) { SceneNode node = keyValuePair.Value; foreach (Attachable attachable in node.Attachable) { MeshAttachable ma = attachable as MeshAttachable; if (ma != null) { ma.Highlighted = true; ma.HighColor = Vector3.UnitY; } } } } } }