//============================================================================== void cTriangleArray::compress() { // get number of allocated triangles unsigned int numTriangles = getNumTriangles(); // remove non allocated triangles unsigned j=-1; for (int i=0; i<numTriangles; i++) { if (getAllocated(i)) { j++; if (i!=j) { unsigned int index0 = getVertexIndex0(i); unsigned int index1 = getVertexIndex1(i); unsigned int index2 = getVertexIndex2(i); m_allocated[j] = true; setVertices(j, index0, index1, index2); } } } // resize arrays unsigned size = j+1; m_allocated.resize(size); m_indices.resize(3*size); }
void Blob::debugPrint() const { std::cout << "-----------" << std::endl; std::cout << "Blob info: " << std::endl; std::cout << " size: " << getSize() << std::endl; std::cout << " allocated: " << getAllocated() << std::endl; std::cout << " value: "; for (int i = 0; i < getSize(); i++) { std::cout << ( (int) value_[i] ) << " "; } for (int i = getSize(); i < getAllocated(); i++) { std::cout << "_ "; } std::cout << std::endl; std::cout << " text: " << value_ << std::endl; // maybe it doesnt end with zero! std::cout << "-----------" << std::endl; }
//============================================================================== cTriangleArrayPtr cTriangleArray::copy() { // create new array of triangles cTriangleArrayPtr triangleArray = cTriangleArray::create(m_vertices); // get number of allocated triangles unsigned int numTriangles = getNumTriangles(); // copy every allocated triangle for (unsigned int i=0; i<numTriangles; i++) { if (getAllocated(i)) { unsigned int index0 = getVertexIndex0(i); unsigned int index1 = getVertexIndex1(i); unsigned int index2 = getVertexIndex2(i); triangleArray->newTriangle(index0, index1, index2); } } // return new triangle array return (triangleArray); }