//==============================================================================
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);
}
Exemplo n.º 2
0
Arquivo: blob.cpp Projeto: aalex/tempi
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);
}