Changeset 1509


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

orbital: start working on the generic chamfer solution.

Location:
trunk/orbital
Files:
2 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
  • trunk/orbital/orbital.cpp

    r1494 r1509  
    113113        /* Grey/red bonus */
    114114        //m.Compile("[sc#9ac afcb7 4 7 0.6 sc#f04 afcb4 7 4 0.6]");
     115        #if 0
    115116        m.Compile("sc#d91"
    116117                  "[afcb30 3 3 .8]"
     
    121122                  "sc#69c9"
    122123                  "[afcb5 8 8 1 ty3 tz3]");
     124         #endif
     125         m.Compile("sc#f00 scb#f00 [acg10 5 8 8 2 2 0 0 ch.4]");
    123126    }
    124127    else
Note: See TracChangeset for help on using the changeset viewer.