Progress Report (7/07/08) by Shawn Brown
Last Week:
Checked in spfilter code
Rewrote Quad-edge code base
- Original code from 2 summers ago (almost got working then put on hold)
- Contained QVertex, QFace, QEdge, QMesh classes
- Also contained Hash Tables (QPointTable, QEdgeTable) classes
- NOTE: Put SP(+AUX) file formats on hold to work on Quad Edge code instead...
Stripped away a lot of unnecessary code
Reworked Geometric Predicates (LeftOf, LeftOn, LeftAhead, etc.)
- Moved into TMV_Predicate.h function
Rewrote a lot of simple methods as inline routines
Created .hxx file for hiding implementation details from users (inline methods)
Moved routines around to be more logically grouped together (original code grew organically)
Removed external dependencies
- on my own demo code which doesn't exist in API libaries (Point2D, Point3D, Point4D, etc.)
Fixed a lot of compiler bugs and warnings
Wrote a generic template class for allocation/deallocations
- Once working, it can eventually replace all alloc/dealloc cut & paste code throughout tools, apps, and libaries
Rewrote QuadEdge Point (& Edge) Hash tables to be more memory efficient
Rewrote all classes (QVertex, QFace, QEdge, QMesh) as templates which wrap user defined class
- took a long time to learn how to force "typenames" to bend to my will
- Since all code is now templatized, the QuadEdge.cpp file has been eliminated
Rewrote array code to use internal free lists instead of stand-a-lone free arrays
Suggestions to Catalin on how to make his Heap class more generic and usable as an Abstract Data Type (ADT).
Readings
- Started reading the "How to Think about Algorithms", easy to read & understand
- Started reading "Curves and Surface Recognition", harder to read & understand
- Lots of background nomenclature & notation for me to get familiar with before comprehension sets in
This Week:
continue to work on Quad-Edge code
Rework Infinite Vertices, Faces, Edges (1 per component instead of 1 per entire mesh)
Rework code to add/remove single vertex, add/remove single edge, add/remove single face (triangle) at a time
Test, Debug, Test, Debug, Test, Debug, ...
Readings
Continue reading 2 books (see above)
Stumbled across interesting dissertation about VV (Vertex-Vertex) data structure, I will spend some time reading it
- At first glance, appears to be vertices and 1-rings with a full algebra similar to quad-edge built on top of this concept
Next Week:
Will finish off any remaining Quad-Edge issues
Start back to work on SP(+AUX), if there is time
Vacation
- Start Vacation to California for Family Reunion on July 19th, back on July 28th.
--
ShawnDB - 07 Jul 2008
Revision: r1.1 - 07 Jul 2008 - 20:08 - Main.guest