Revision: 54047
http://brlcad.svn.sourceforge.net/brlcad/?rev=54047&view=rev
Author: starseeker
Date: 2012-12-11 22:33:42 +0000 (Tue, 11 Dec 2012)
Log Message:
-----------
Add a relatively simple test bot for subdivision - will use later for
regression testing.
Modified Paths:
--------------
brlcad/trunk/src/librt/CMakeLists.txt
brlcad/trunk/src/librt/test_subdivision.cpp
Added Paths:
-----------
brlcad/trunk/src/librt/subd_test_bot.asc
Modified: brlcad/trunk/src/librt/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/librt/CMakeLists.txt 2012-12-11 21:26:55 UTC (rev
54046)
+++ brlcad/trunk/src/librt/CMakeLists.txt 2012-12-11 22:33:42 UTC (rev
54047)
@@ -252,6 +252,7 @@
test_nurbsfit.cpp
test_botpatches.cpp
test_subdivision.cpp
+ subd_test_bot.asc
prcomb.c
primitives/bot/btg.h
primitives/bot/g_bot_include.c
Added: brlcad/trunk/src/librt/subd_test_bot.asc
===================================================================
--- brlcad/trunk/src/librt/subd_test_bot.asc (rev 0)
+++ brlcad/trunk/src/librt/subd_test_bot.asc 2012-12-11 22:33:42 UTC (rev
54047)
@@ -0,0 +1,3 @@
+title {sqrt(3) Subdivision Test Bot}
+units mm
+put {subd.bot} bot mode surface orient rh flags {} V { {0 2 0} {0.5 1 0 } {1 0
0} {1 2 0} {1.5 1 0} {2 0 0} {1.5 3 0} {2 2 0} {2.5 1 0} {3 0 0} {2.5 3 0} {3 2
0}} F { { 0 3 6 } { 3 7 6 } { 7 10 6 } { 7 11 10 } { 0 1 3 } { 1 4 3 } { 3 4 7
} { 4 8 7 } { 7 8 11 } { 1 2 4 } { 2 5 4 } { 4 5 8 } { 5 9 8 } }
Property changes on: brlcad/trunk/src/librt/subd_test_bot.asc
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Modified: brlcad/trunk/src/librt/test_subdivision.cpp
===================================================================
--- brlcad/trunk/src/librt/test_subdivision.cpp 2012-12-11 21:26:55 UTC (rev
54046)
+++ brlcad/trunk/src/librt/test_subdivision.cpp 2012-12-11 22:33:42 UTC (rev
54047)
@@ -144,11 +144,12 @@
}
// Find outer edge segments and vertices
-void get_boundaries(struct Mesh_Info *mesh, std::set<size_t> *outer_pts,
std::set<std::pair<size_t, size_t> > *outer_edges) {
+void get_boundaries(struct Mesh_Info *mesh, std::set<size_t> *outer_pts,
std::set<std::pair<size_t, size_t> > *outer_edges, std::set<size_t>
*outer_faces) {
std::map<std::pair<size_t, size_t>, std::set<size_t> >::iterator e_it;
for (e_it = mesh->edges_to_faces.begin();
e_it!=mesh->edges_to_faces.end(); e_it++) {
if ((*e_it).second.size() == 1) {
outer_edges->insert((*e_it).first);
+ outer_faces->insert(*(*e_it).second.begin());
outer_pts->insert((*e_it).first.first);
outer_pts->insert((*e_it).first.second);
}
@@ -178,9 +179,11 @@
get_all_edges(starting_mesh, &old_edges);
std::set<std::pair<size_t, size_t> > outer_edges;
std::set<size_t > outer_pts;
- get_boundaries(starting_mesh, &outer_pts, &outer_edges);
+ std::set<size_t > outer_faces;
+ get_boundaries(starting_mesh, &outer_pts, &outer_edges, &outer_faces);
std::cout << "outer pt count: " << outer_pts.size() << "\n";
std::cout << "outer edge count: " << outer_edges.size() << "\n";
+ std::cout << "outer face count: " << outer_faces.size() << "\n";
// Relax old points here
for(size_t pcnt = 0; pcnt < (size_t)starting_mesh->points_p0.Count();
pcnt++) {
@@ -220,6 +223,9 @@
std::set<size_t> curr_faces =
starting_mesh->edges_to_faces[edge];
curr_faces.erase((*f_it).first);
size_t q1 =
starting_mesh->index_in_next[*curr_faces.begin()];
+ if (outer_faces.find(q0) != outer_faces.end() &&
outer_faces.find(q1) != outer_faces.end()) {
+ std::cout << "Got two edge faces\n";
+ }
mesh_add_face((*e_it).first, q1, q0, face_cnt, mesh);
face_cnt++;
mesh_add_face((*e_it).second, q0, q1, face_cnt, mesh);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits