Ignore:
Timestamp:
Jun 21, 2012, 8:19:08 PM (9 years ago)
Author:
sam
Message:

orbital: start working on the generic chamfer solution.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/orbital/mesh.h

    r1507 r1509  
    651651    void Chamfer(float f)
    652652    {
    653         (void)f;
     653        int vlen = m_vert.Count() - m_cursors.Last().m1;
     654        int ilen = m_indices.Count() - m_cursors.Last().m2;
     655
     656        /* Step 1: enumerate all faces. This is done by merging triangles
     657         * that are coplanar and share an edge. */
     658        int *triangle_classes = new int[ilen / 3];
     659        for (int i = 0; i < ilen / 3; i++)
     660            triangle_classes[i] = -1;
     661
     662        for (int i = 0; i < ilen / 3; i++)
     663        {
     664             
     665        }
     666
     667        /* Fun shit: reduce all triangles */
     668        int *vertices = new int[vlen];
     669        memset(vertices, 0, vlen * sizeof(int));
     670        for (int i = 0; i < ilen; i++)
     671            vertices[m_indices[i]]++;
     672
     673        for (int i = 0; i < ilen / 3; i++)
     674        {
     675        #if 0
     676            if (vertices[m_indices[i * 3]] > 1)
     677                continue;
     678            if (vertices[m_indices[i * 3 + 1]] > 1)
     679                continue;
     680            if (vertices[m_indices[i * 3 + 2]] > 1)
     681                continue;
     682        #endif
     683
     684            vec3 bary = 1.f / 3.f * (m_vert[m_indices[i * 3]].m1 +
     685                                     m_vert[m_indices[i * 3 + 1]].m1 +
     686                                     m_vert[m_indices[i * 3 + 2]].m1);
     687            for (int k = 0; k < 3; k++)
     688            {
     689                vec3 &p = m_vert[m_indices[i * 3 + k]].m1;
     690                p -= normalize(p - bary) * f;
     691            }
     692        }
    654693    }
    655694
Note: See TracChangeset for help on using the changeset viewer.