Revision: 64349
          http://sourceforge.net/p/brlcad/code/64349
Author:   starseeker
Date:     2015-03-09 17:09:38 +0000 (Mon, 09 Mar 2015)
Log Message:
-----------
Add tgc support - we have the same potential here that we do for cylinders for 
partial cones, so we'll need to add logic for recognizing corner points and 
doing arb subtractions.

Modified Paths:
--------------
    brlcad/trunk/src/libbrep/shape_recognition_cone.cpp
    brlcad/trunk/src/libbrep/shape_recognition_util.cpp

Modified: brlcad/trunk/src/libbrep/shape_recognition_cone.cpp
===================================================================
--- brlcad/trunk/src/libbrep/shape_recognition_cone.cpp 2015-03-09 14:13:11 UTC 
(rev 64348)
+++ brlcad/trunk/src/libbrep/shape_recognition_cone.cpp 2015-03-09 17:09:38 UTC 
(rev 64349)
@@ -301,7 +301,42 @@
        if (data->params->height < 0) data->params->height = 
data->params->height * -1;
 
     } else {
-       std::cout << "TGC!\n";
+
+       ON_3dPoint base = set1_c.Center();
+       ON_3dVector hvect = set2_c.Center() - set1_c.Center();
+       struct csg_object_params * obj;
+        BU_GET(obj, struct csg_object_params);
+
+       int negative = negative_cone(data, *conic_surfaces.begin(), cone_tol);
+       bu_log("conic negative: %d\n", negative);
+       bu_log("parent boolean: %c\n", data->parent->params->bool_op);
+
+       if (data->parent->params->bool_op == '-') negative = -1 * negative;
+
+       switch (negative) {
+           case -1:
+               data->params->bool_op = '-';
+               break;
+           case 1:
+               data->params->bool_op = 'u';
+               break;
+           default:
+               std::cout << "Could not determine cone status???????\n";
+               data->params->bool_op = 'u';
+               break;
+       }
+
+       data->params->origin[0] = base.x;
+       data->params->origin[1] = base.y;
+       data->params->origin[2] = base.z;
+       data->params->hv[0] = hvect.x;
+       data->params->hv[1] = hvect.y;
+       data->params->hv[2] = hvect.z;
+       data->params->radius = set1_c.Radius();
+       data->params->r2 = set2_c.Radius();
+       data->params->height = set1_c.Center().DistanceTo(set2_c.Center());
+       if (data->params->height < 0) data->params->height = 
data->params->height * -1;
+
     }
     return 0;
 }

Modified: brlcad/trunk/src/libbrep/shape_recognition_util.cpp
===================================================================
--- brlcad/trunk/src/libbrep/shape_recognition_util.cpp 2015-03-09 14:13:11 UTC 
(rev 64348)
+++ brlcad/trunk/src/libbrep/shape_recognition_util.cpp 2015-03-09 17:09:38 UTC 
(rev 64349)
@@ -415,7 +415,6 @@
 int
 subbrep_determine_boolean(struct subbrep_object_data *data)
 {
-   std::cout << "Faces to check: " << data->fil_cnt << "\n";
    int pos_cnt = 0;
    int neg_cnt = 0;
 
@@ -441,7 +440,6 @@
           if (stype == SURFACE_PLANE) {
               ON_3dPoint p = data->brep->m_V[*s_it].Point();
               double distance = face_plane.DistanceTo(p);
-              std::cout << "distance: " << distance << "\n";
               if (distance > BREP_PLANAR_TOL) pos_cnt++;
               if (distance < -1*BREP_PLANAR_TOL) neg_cnt++;
           } else {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to