public void Queue(IILVertexDefinition vertex) { if (m_startID == 0) { SetVertex(m_vertexCount - 1, vertex); m_startID = 1; } else { SetVertex(m_startID, vertex); m_vertices[0] = m_vertices[m_vertexCount - 1]; m_startID++; } if (m_startID == m_vertexCount - 1) { m_startID = 0; } if (m_updateCount++ < m_autoLimitsUpdateCount) { m_localClipping.Update(vertex.Position, vertex.Position); } else { m_updateCount = 0; Invalidate(); } }
public void SetVertex(int vertexID, IILVertexDefinition vertex) { C4bV3f curVert = m_vertices[vertexID]; if (vertex.StoresColor) { curVert.Color = vertex.Color; } curVert.Position = vertex.Position; m_vertices[vertexID] = curVert; }
/// <summary> /// alter single vertex via IILVertexDefinition interface /// </summary> /// <param name="vertexIdx">index of vertex in vertex array</param> /// <param name="vertex">new vertex definition</param> public override void SetVertex(int vertexIdx, IILVertexDefinition vertex) { VertexType curVert = m_vertices[vertexIdx]; if (VertexDefinition.StoresColor && vertex.StoresColor) { curVert.Color = vertex.Color; } if (VertexDefinition.StoresNormals && vertex.StoresNormals) { curVert.Normal = vertex.Normal; } curVert.Position = vertex.Position; m_vertices[vertexIdx] = curVert; }
public void Queue(IILVertexDefinition vertex) { SetVertex(m_oldestVertexID++, vertex); if (m_oldestVertexID >= m_vertCount) { m_oldestVertexID = 0; } if (m_updateCount++ < m_autoLimitsUpdateCount) { bool signal = false; m_positionMax = ILPoint3Df.Max(m_positionMax, vertex.Position, ref signal); m_positionMin = ILPoint3Df.Min(m_positionMin, vertex.Position, ref signal); if (signal) { OnSizeChanged(); } } else { m_updateCount = 0; Invalidate(); } }