public static SceneNode ParseNode(NodeType nodeType, ref byte[] nodesByteData, ref int dataIdx) { switch (nodeType) { case NodeType.GROUP: SceneNode sceneNode = SceneDataHandler.ByteArrayToStructure <SceneNode>(nodesByteData, ref dataIdx); return(sceneNode); break; case NodeType.GEO: SceneNodeGeo sceneNodeGeo = SceneDataHandler.ByteArrayToStructure <SceneNodeGeo>(nodesByteData, ref dataIdx); return(sceneNodeGeo); break; case NodeType.LIGHT: SceneNodeLight sceneNodeLight = SceneDataHandler.ByteArrayToStructure <SceneNodeLight>(nodesByteData, ref dataIdx); return(sceneNodeLight); break; case NodeType.CAMERA: SceneNodeCam sceneNodeCamera = SceneDataHandler.ByteArrayToStructure <SceneNodeCam>(nodesByteData, ref dataIdx); return(sceneNodeCamera); break; } return(null); }
public static SceneNode ParseNode(NodeType nodeType, ref byte[] nodesByteData, ref int dataIdx) { if (nodeType == NodeType.MOCAP) { SceneNodeMocap sceneNodeMocap = SceneDataHandler.ByteArrayToStructure <SceneNodeMocap>(nodesByteData, ref dataIdx); return(sceneNodeMocap); } return(null); }
private void convertNodesByteStream() { m_nodeList = new List <SceneNode>(); int dataIdx = 0; while (dataIdx < m_nodesByteData.Length - 1) { SceneNode node = new SceneNode(); int numValues = BitConverter.ToInt32(m_nodesByteData, dataIdx); dataIdx += size_int; //checkEndian(ref sliceInt); NodeType nodeType = (NodeType)numValues; switch (nodeType) { case NodeType.GROUP: SceneNode sceneNode = SceneDataHandler.ByteArrayToStructure <SceneNode>(m_nodesByteData, ref dataIdx); node = sceneNode; break; case NodeType.GEO: SceneNodeGeo sceneNodeGeo = SceneDataHandler.ByteArrayToStructure <SceneNodeGeo>(m_nodesByteData, ref dataIdx); node = sceneNodeGeo; break; case NodeType.LIGHT: SceneNodeLight sceneNodeLight = SceneDataHandler.ByteArrayToStructure <SceneNodeLight>(m_nodesByteData, ref dataIdx); node = sceneNodeLight; break; case NodeType.CAMERA: SceneNodeCam sceneNodeCamera = SceneDataHandler.ByteArrayToStructure <SceneNodeCam>(m_nodesByteData, ref dataIdx); node = sceneNodeCamera; break; case NodeType.MOCAP: SceneNodeMocap sceneNodeMocap = SceneDataHandler.ByteArrayToStructure <SceneNodeMocap>(m_nodesByteData, ref dataIdx); node = sceneNodeMocap; break; } m_nodeList.Add(node); } Array.Clear(m_nodesByteData, 0, m_nodesByteData.Length); m_nodesByteData = null; GC.Collect(); }