public Light(Scene _Owner, FBX.Scene.Nodes.Node _Node) : base(_Owner, _Node) { FBX.Scene.Nodes.Light _Light = _Node as FBX.Scene.Nodes.Light; m_LightType = (LIGHT_TYPE)_Light.Type; m_Color.FromVector3(_Light.Color); m_Intensity = _Light.Intensity; m_HotSpot = _Light.HotSpot; m_ConeAngle = _Light.ConeAngle; }
public Mesh(Scene _Owner, FBX.Scene.Nodes.Node _Node) : base(_Owner, _Node) { FBX.Scene.Nodes.Mesh _Mesh = _Node as FBX.Scene.Nodes.Mesh; m_Primitives = new Primitive[_Mesh.PrimitivesCount]; int PrimitiveIndex = 0; foreach (FBX.Scene.Nodes.Mesh.Primitive SourcePrimitive in _Mesh.Primitives) { m_Primitives[PrimitiveIndex++] = new Primitive(this, SourcePrimitive); } }
public Node(Scene _Owner, FBX.Scene.Nodes.Node _Node) { m_Owner = _Owner; m_Owner.m_Nodes.Add(this); if (_Node is FBX.Scene.Nodes.Mesh) { m_Type = TYPE.MESH; } else if (_Node is FBX.Scene.Nodes.Camera) { m_Type = TYPE.CAMERA; } else if (_Node is FBX.Scene.Nodes.Light) { m_Type = TYPE.LIGHT; } else { // Isolate locators as probes if (_Node.Name.ToLower().IndexOf("locator") != -1) { m_Type = TYPE.PROBE; } } m_Local2Parent.FromMatrix4(_Node.Local2Parent); // Build children FBX.Scene.Nodes.Node[] Children = _Node.Children; m_Children = new Node[Children.Length]; for (int ChildIndex = 0; ChildIndex < Children.Length; ChildIndex++) { FBX.Scene.Nodes.Node SourceChild = Children[ChildIndex]; Node Child = null; switch (SourceChild.NodeType) { case FBX.Scene.Nodes.Node.NODE_TYPE.NODE: Child = new Node(_Owner, SourceChild); break; case FBX.Scene.Nodes.Node.NODE_TYPE.LIGHT: Child = new Light(_Owner, SourceChild); break; case FBX.Scene.Nodes.Node.NODE_TYPE.CAMERA: Child = new Camera(_Owner, SourceChild); break; case FBX.Scene.Nodes.Node.NODE_TYPE.MESH: Child = new Mesh(_Owner, SourceChild); break; } m_Children[ChildIndex] = Child; } }
public Camera(Scene _Owner, FBX.Scene.Nodes.Node _Node) : base(_Owner, _Node) { FBX.Scene.Nodes.Camera _Camera = _Node as FBX.Scene.Nodes.Camera; m_FOV = _Camera.FOV; }