StaticMesh::StaticMesh(const StaticMesh &o) { if( m_faceNormals != 0 ) { delete[] m_faceNormals; } m_faceNormals = new float[3 * o.m_numVertices]; m_vertices = floatArr( new float[3 * o.m_numVertices] ); m_colors = ucharArr( new unsigned char[3 * o.m_numVertices] ); m_faces = uintArr( new unsigned int[3 * o.m_numFaces] ); for ( size_t i(0); i < 3 * o.m_numVertices; i++ ) { m_faceNormals[i] = o.m_faceNormals[i]; m_vertices[i] = o.m_vertices[i]; m_colors[i] = o.m_colors[i]; } for( size_t i = 0; i < 3 * o.m_numFaces; ++i ) { m_faces[i] = o.m_faces[i]; } m_boundingBox = o.m_boundingBox; m_model = o.m_model; }
void MeshBuffer::setFaceMaterialIndexArray(std::vector<unsigned int>& array) { m_faceMaterialIndices = uintArr(new unsigned int[array.size()]); m_numFaceMaterialIndices = array.size(); for (size_t i = 0; i < array.size(); i++) { m_faceMaterialIndices[i] = array[i]; } }
void MeshBuffer::setFaceArray(std::vector<unsigned int>& array) { m_faceIndices = uintArr(new unsigned int[array.size()]); for (size_t i(0); i < array.size(); i++) { m_faceIndices[i] = array[i]; } m_numFaces = array.size() / 3; }
uintArr StaticMesh::getIndices() { return m_finalized ? m_faces : uintArr(); }