Revision: 55825
          http://sourceforge.net/p/brlcad/code/55825
Author:   starseeker
Date:     2013-06-24 18:10:41 +0000 (Mon, 24 Jun 2013)
Log Message:
-----------
No need to copy corners and normals around - just use the frames

Modified Paths:
--------------
    brlcad/trunk/include/brep.h
    brlcad/trunk/src/libbrep/opennurbs_ext.cpp

Modified: brlcad/trunk/include/brep.h
===================================================================
--- brlcad/trunk/include/brep.h 2013-06-24 16:23:44 UTC (rev 55824)
+++ brlcad/trunk/include/brep.h 2013-06-24 18:10:41 UTC (rev 55825)
@@ -1631,9 +1631,9 @@
     bool isStraight(ON_Plane frames[]);
     bool isFlatU(ON_Plane frames[]);
     bool isFlatV(ON_Plane frames[]);
-    BBNode* subdivideSurfaceByKnots(const ON_Surface *localsurf, const 
ON_Interval& u, const ON_Interval& v, ON_Plane frames[], ON_3dPoint corners[], 
ON_3dVector normals[], int depth, int depthLimit);
-    BBNode* subdivideSurface(const ON_Surface *localsurf, const ON_Interval& 
u, const ON_Interval& v, ON_Plane frames[], ON_3dPoint corners[], ON_3dVector 
normals[], int depth, int depthLimit);
-    BBNode* surfaceBBox(const ON_Surface *localsurf, bool leaf, ON_3dPoint 
corners[], ON_3dVector normals[], const ON_Interval& u, const ON_Interval& v);
+    BBNode* subdivideSurfaceByKnots(const ON_Surface *localsurf, const 
ON_Interval& u, const ON_Interval& v, ON_Plane frames[], int depth, int 
depthLimit);
+    BBNode* subdivideSurface(const ON_Surface *localsurf, const ON_Interval& 
u, const ON_Interval& v, ON_Plane frames[], int depth, int depthLimit);
+    BBNode* surfaceBBox(const ON_Surface *localsurf, bool leaf, ON_Plane 
frames[], const ON_Interval& u, const ON_Interval& v);
 
     const ON_BrepFace* m_face;
     BBNode* m_root;

Modified: brlcad/trunk/src/libbrep/opennurbs_ext.cpp
===================================================================
--- brlcad/trunk/src/libbrep/opennurbs_ext.cpp  2013-06-24 16:23:44 UTC (rev 
55824)
+++ brlcad/trunk/src/libbrep/opennurbs_ext.cpp  2013-06-24 18:10:41 UTC (rev 
55825)
@@ -658,14 +658,11 @@
     TRACE("Creating surface tree for: " << face->m_face_index);
     ON_Interval u = surf->Domain(0);
     ON_Interval v = surf->Domain(1);
-    // Populate initial corner and normal arrays for use in
-    // tree build
-    ON_3dPoint corners[9];
-    ON_3dVector normals[9];
     double uq = u.Length()*0.25;
     double vq = v.Length()*0.25;
 
     ///////////////////////////////////////////////////////////////////////
+    // Populate initial frames array for use in tree build
     ON_Plane frames[9];
     surf->FrameAt(u.Min(), v.Min(), frames[0]);
     surf->FrameAt(u.Max(), v.Min(), frames[1]);
@@ -677,26 +674,7 @@
     surf->FrameAt(u.Mid() + uq, v.Mid() - vq, frames[7]);
     surf->FrameAt(u.Mid() + uq, v.Mid() + vq, frames[8]);
 
-    corners[0] = frames[0].origin;
-    normals[0] = frames[0].zaxis;
-    corners[1] = frames[1].origin;
-    normals[1] = frames[1].zaxis;
-    corners[2] = frames[2].origin;
-    normals[2] = frames[2].zaxis;
-    corners[3] = frames[3].origin;
-    normals[3] = frames[3].zaxis;
-    corners[4] = frames[4].origin;
-    normals[4] = frames[4].zaxis;
-    corners[5] = frames[5].origin;
-    normals[5] = frames[5].zaxis;
-    corners[6] = frames[6].origin;
-    normals[6] = frames[6].zaxis;
-    corners[7] = frames[7].origin;
-    normals[7] = frames[7].zaxis;
-    corners[8] = frames[8].origin;
-    normals[8] = frames[8].zaxis;
-
-    m_root = subdivideSurfaceByKnots(surf, u, v, frames, corners, normals, 0, 
depthLimit);
+    m_root = subdivideSurfaceByKnots(surf, u, v, frames, 0, depthLimit);
     if (m_root) {
        m_root->BuildBBox();
     }
@@ -883,26 +861,17 @@
 
 //static int bb_cnt=0;
 BBNode*
-SurfaceTree::surfaceBBox(const ON_Surface *localsurf, bool isLeaf, ON_3dPoint 
*m_corners, ON_3dVector *m_normals, const ON_Interval& u, const ON_Interval& v)
+SurfaceTree::surfaceBBox(const ON_Surface *localsurf, bool isLeaf, ON_Plane 
*m_frames, const ON_Interval& u, const ON_Interval& v)
 {
     point_t min, max, buffer;
     ON_BoundingBox bbox = localsurf->BoundingBox();
 
     VSETALL(buffer, BREP_EDGE_MISS_TOLERANCE);
-    //VSETALL(min, MAX_FASTF);
-    //VSETALL(max, -MAX_FASTF);
-    //for (int i = 0; i < 9; i++) {
-    //VMINMAX(min, max, ((double*)m_corners[i]));
-    //bu_log("in c%d_%d sph %f %f %f %f\n", bb_cnt, i, m_corners[i].x, 
m_corners[i].y, m_corners[i].z, 1.0);
-    //}
 
     //bu_log("in bb%d rpp %f %f %f %f %f %f\n", bb_cnt, min[0], max[0], 
min[1], max[1], min[2], max[2]);
     VMOVE(min, bbox.Min());
     VMOVE(max, bbox.Max());
 
-    //bu_log("in b%d rpp %f %f %f %f %f %f\n", bb_cnt++, bbox.m_min.x, 
bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, bbox.m_max.z);
-    //bu_log("in bc%d rpp %f %f %f %f %f %f\n", bb_cnt++, min[0], max[0], 
min[1], max[1], min[2], max[2]);
-
     // calculate the estimate point on the surface: i.e. use the point
     // on the surface defined by (u.Mid(), v.Mid()) as a heuristic for
     // finding the uv domain bounding a portion of the surface close
@@ -910,8 +879,8 @@
     // getClosestPointEstimate())
     ON_3dPoint estimate;
     ON_3dVector normal;
-    estimate = m_corners[4];
-    normal = m_normals[4];
+    estimate = m_frames[4].origin;
+    normal = m_frames[4].zaxis;
 
     BBNode* node;
     if (isLeaf) {
@@ -970,8 +939,6 @@
                                     const ON_Interval& u,
                                     const ON_Interval& v,
                                     ON_Plane frames[],
-                                    ON_3dPoint corners[],
-                                    ON_3dVector normals[],
                                     int divDepth,
                                     int depthLimit)
 {
@@ -997,15 +964,6 @@
     surf->FrameAt(u.Mid() + uq, v.Mid() - vq, frames[7]);
     surf->FrameAt(u.Mid() + uq, v.Mid() + vq, frames[8]);
 
-    corners[5] = frames[5].origin;
-    normals[5] = frames[5].zaxis;
-    corners[6] = frames[6].origin;
-    normals[6] = frames[6].zaxis;
-    corners[7] = frames[7].origin;
-    normals[7] = frames[7].zaxis;
-    corners[8] = frames[8].origin;
-    normals[8] = frames[8].zaxis;
-
     if ((spanu_cnt > 1) && (spanv_cnt > 1)) {
        double usplit = spanu[(spanu_cnt+1)/2];
        double vsplit = spanv[(spanv_cnt+1)/2];
@@ -1092,102 +1050,43 @@
         **********************************************************************/
 
        ON_Plane sharedframes[4];
-       ON_3dPoint sharedcorners[4];
-       ON_3dVector sharednormals[4];
        localsurf->FrameAt(usplit, v.Min(), sharedframes[0]);
        localsurf->FrameAt(u.Min(), vsplit, sharedframes[1]);
        localsurf->FrameAt(usplit, v.Max(), sharedframes[2]);
        localsurf->FrameAt(u.Max(), vsplit, sharedframes[3]);
        localsurf->FrameAt(usplit, vsplit, frames[4]);
 
-       sharedcorners[0] = sharedframes[0].origin;
-       sharednormals[0] = sharedframes[0].zaxis;
-       sharedcorners[1] = sharedframes[1].origin;
-       sharednormals[1] = sharedframes[1].zaxis;
-       sharedcorners[2] = sharedframes[2].origin;
-       sharednormals[2] = sharedframes[2].zaxis;
-       sharedcorners[3] = sharedframes[3].origin;
-       sharednormals[3] = sharedframes[3].zaxis;
-       corners[4] = frames[4].origin;
-       normals[4] = frames[4].zaxis;
-
        ON_Plane *newframes;
-       ON_3dPoint *newcorners;
-       ON_3dVector *newnormals;
        newframes = (ON_Plane *)bu_malloc(9*sizeof(ON_Plane), "new frames");
-       newcorners = (ON_3dPoint *)bu_malloc(9*sizeof(ON_3dPoint), "new 
corners");
-       newnormals = (ON_3dVector *)bu_malloc(9*sizeof(ON_3dVector), "new 
normals");
        newframes[0] = frames[0];
-       newcorners[0] = corners[0];
-       newnormals[0] = normals[0];
        newframes[1] = sharedframes[0];
-       newcorners[1] = sharedcorners[0];
-       newnormals[1] = sharednormals[0];
        newframes[2] = frames[4];
-       newcorners[2] = corners[4];
-       newnormals[2] = normals[4];
        newframes[3] = sharedframes[1];
-       newcorners[3] = sharedcorners[1];
-       newnormals[3] = sharednormals[1];
        newframes[4] = frames[5];
-       newcorners[4] = corners[5];
-       newnormals[4] = normals[5];
-       quads[0] = subdivideSurfaceByKnots(q0surf, firstu, firstv, newframes, 
newcorners, newnormals, divDepth+1, depthLimit);
+       quads[0] = subdivideSurfaceByKnots(q0surf, firstu, firstv, newframes, 
divDepth+1, depthLimit);
        delete q0surf;
        newframes[0] = sharedframes[0];
-       newcorners[0] = sharedcorners[0];
-       newnormals[0] = sharednormals[0];
        newframes[1] = frames[1];
-       newcorners[1] = corners[1];
-       newnormals[1] = normals[1];
        newframes[2] = sharedframes[3];
-       newcorners[2] = sharedcorners[3];
-       newnormals[2] = sharednormals[3];
        newframes[3] = frames[4];
-       newcorners[3] = corners[4];
-       newnormals[3] = normals[4];
        newframes[4] = frames[7];
-       newcorners[4] = corners[7];
-       newnormals[4] = normals[7];
-       quads[1] = subdivideSurfaceByKnots(q1surf, secondu, firstv, newframes, 
newcorners, newnormals, divDepth+1, depthLimit);
+       quads[1] = subdivideSurfaceByKnots(q1surf, secondu, firstv, newframes, 
divDepth+1, depthLimit);
        delete q1surf;
        newframes[0] = frames[4];
-       newcorners[0] = corners[4];
-       newnormals[0] = normals[4];
        newframes[1] = sharedframes[3];
-       newcorners[1] = sharedcorners[3];
-       newnormals[1] = sharednormals[3];
        newframes[2] = frames[2];
-       newcorners[2] = corners[2];
-       newnormals[2] = normals[2];
        newframes[3] = sharedframes[2];
-       newcorners[3] = sharedcorners[2];
-       newnormals[3] = sharednormals[2];
        newframes[4] = frames[8];
-       newcorners[4] = corners[8];
-       newnormals[4] = normals[8];
-       quads[2] = subdivideSurfaceByKnots(q2surf, secondu, secondv, newframes, 
newcorners, newnormals, divDepth+1, depthLimit);
+       quads[2] = subdivideSurfaceByKnots(q2surf, secondu, secondv, newframes, 
divDepth+1, depthLimit);
        delete q2surf;
        newframes[0] = sharedframes[1];
-       newcorners[0] = sharedcorners[1];
-       newnormals[0] = sharednormals[1];
        newframes[1] = frames[4];
-       newcorners[1] = corners[4];
-       newnormals[1] = normals[4];
        newframes[2] = sharedframes[2];
-       newcorners[2] = sharedcorners[2];
-       newnormals[2] = sharednormals[2];
        newframes[3] = frames[3];
-       newcorners[3] = corners[3];
-       newnormals[3] = normals[3];
        newframes[4] = frames[6];
-       newcorners[4] = corners[6];
-       newnormals[4] = normals[6];
-       quads[3] = subdivideSurfaceByKnots(q3surf, firstu, secondv, newframes, 
newcorners, newnormals, divDepth+1, depthLimit);
+       quads[3] = subdivideSurfaceByKnots(q3surf, firstu, secondv, newframes, 
divDepth+1, depthLimit);
        delete q3surf;
        bu_free(newframes, "free subsurface frames array");
-       bu_free(newcorners, "free subsurface corners array");
-       bu_free(newnormals, "free subsurface normals array");
 
        parent->m_trimmed = true;
        parent->m_checkTrim = false;
@@ -1318,72 +1217,35 @@
         **********************************************************************/
 
        ON_Plane sharedframes[4];
-       ON_3dPoint sharedcorners[4];
-       ON_3dVector sharednormals[4];
        localsurf->FrameAt(usplit, v.Min(), sharedframes[0]);
        localsurf->FrameAt(usplit, v.Max(), sharedframes[1]);
 
-       sharedcorners[0] = sharedframes[0].origin;
-       sharednormals[0] = sharedframes[0].zaxis;
-       sharedcorners[1] = sharedframes[1].origin;
-       sharednormals[1] = sharedframes[1].zaxis;
-
        ON_Plane *newframes;
-       ON_3dPoint *newcorners;
-       ON_3dVector *newnormals;
        newframes = (ON_Plane *) bu_malloc(9 * sizeof(ON_Plane),
                                           "new frames");
-       newcorners = (ON_3dPoint *) bu_malloc(9 * sizeof(ON_3dPoint),
-                                             "new corners");
-       newnormals = (ON_3dVector *) bu_malloc(9 * sizeof(ON_3dVector),
-                                              "new normals");
        newframes[0] = frames[0];
-       newcorners[0] = corners[0];
-       newnormals[0] = normals[0];
        newframes[1] = sharedframes[0];
-       newcorners[1] = sharedcorners[0];
-       newnormals[1] = sharednormals[0];
        newframes[2] = sharedframes[1];
-       newcorners[2] = sharedcorners[1];
-       newnormals[2] = sharednormals[1];
        newframes[3] = frames[3];
-       newcorners[3] = corners[3];
-       newnormals[3] = normals[3];
        localsurf->FrameAt(firstu.Mid(), v.Mid(), newframes[4]);
 
-       newcorners[4] = newframes[4].origin;
-       newnormals[4] = newframes[4].zaxis;
-
        //ON_BoundingBox bbox = q0surf->BoundingBox();
        //bu_log("%d - in bbq0 rpp %f %f %f %f %f %f\n", divDepth, 
bbox.m_min.x, bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, 
bbox.m_max.z);
-       quads[0] = subdivideSurfaceByKnots(east, firstu, v, newframes, 
newcorners, newnormals, divDepth+1, depthLimit);
+       quads[0] = subdivideSurfaceByKnots(east, firstu, v, newframes, 
divDepth+1, depthLimit);
        delete east;
 
        newframes[0] = sharedframes[0];
-       newcorners[0] = sharedcorners[0];
-       newnormals[0] = sharednormals[0];
        newframes[1] = frames[1];
-       newcorners[1] = corners[1];
-       newnormals[1] = normals[1];
        newframes[2] = frames[2];
-       newcorners[2] = corners[2];
-       newnormals[2] = normals[2];
        newframes[3] = sharedframes[1];
-       newcorners[3] = sharedcorners[1];
-       newnormals[3] = sharednormals[1];
        localsurf->FrameAt(secondu.Mid(), v.Mid(), newframes[4]);
 
-       newcorners[4] = newframes[4].origin;
-       newnormals[4] = newframes[4].zaxis;
-
        //bbox = q1surf->BoundingBox();
        //bu_log("%d - in bbq1 rpp %f %f %f %f %f %f\n", divDepth, 
bbox.m_min.x, bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, 
bbox.m_max.z);
-       quads[1] = subdivideSurfaceByKnots(west, secondu, v, newframes, 
newcorners, newnormals, divDepth+1, depthLimit);
+       quads[1] = subdivideSurfaceByKnots(west, secondu, v, newframes, 
divDepth+1, depthLimit);
        delete west;
 
        bu_free(newframes, "free subsurface frames array");
-       bu_free(newcorners, "free subsurface corners array");
-       bu_free(newnormals, "free subsurface normals array");
 
        parent->m_trimmed = true;
        parent->m_checkTrim = false;
@@ -1498,70 +1360,35 @@
         **********************************************************************/
 
        ON_Plane sharedframes[2];
-       ON_3dPoint sharedcorners[2];
-       ON_3dVector sharednormals[2];
        localsurf->FrameAt(u.Min(), vsplit, sharedframes[0]);
        localsurf->FrameAt(u.Max(), vsplit, sharedframes[1]);
 
-       sharedcorners[0] = sharedframes[0].origin;
-       sharednormals[0] = sharedframes[0].zaxis;
-       sharedcorners[1] = sharedframes[1].origin;
-       sharednormals[1] = sharedframes[1].zaxis;
-
        ON_Plane *newframes;
-       ON_3dPoint *newcorners;
-       ON_3dVector *newnormals;
        newframes = (ON_Plane *) bu_malloc(9 * sizeof(ON_Plane),
                                           "new frames");
-       newcorners = (ON_3dPoint *) bu_malloc(9 * sizeof(ON_3dPoint),
-                                             "new corners");
-       newnormals = (ON_3dVector *) bu_malloc(9 * sizeof(ON_3dVector),
-                                              "new normals");
        newframes[0] = frames[0];
-       newcorners[0] = corners[0];
-       newnormals[0] = normals[0];
        newframes[1] = frames[1];
-       newcorners[1] = corners[1];
-       newnormals[1] = normals[1];
        newframes[2] = sharedframes[1];
-       newcorners[2] = sharedcorners[1];
-       newnormals[2] = sharednormals[1];
        newframes[3] = sharedframes[0];
-       newcorners[3] = sharedcorners[0];
-       newnormals[3] = sharednormals[0];
        localsurf->FrameAt(u.Mid(), firstv.Mid(), newframes[4]);
 
-       newcorners[4] = newframes[4].origin;
-       newnormals[4] = newframes[4].zaxis;
        //ON_BoundingBox bbox = q0surf->BoundingBox();
        //bu_log("%d - in bbq0 rpp %f %f %f %f %f %f\n", divDepth, 
bbox.m_min.x, bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, 
bbox.m_max.z);
-       quads[0] = subdivideSurfaceByKnots(south, u, firstv, newframes, 
newcorners, newnormals, divDepth+1, depthLimit);
+       quads[0] = subdivideSurfaceByKnots(south, u, firstv, newframes, 
divDepth+1, depthLimit);
        delete south;
 
        newframes[0] = sharedframes[0];
-       newcorners[0] = sharedcorners[0];
-       newnormals[0] = sharednormals[0];
        newframes[1] = sharedframes[1];
-       newcorners[1] = sharedcorners[1];
-       newnormals[1] = sharednormals[1];
        newframes[2] = frames[2];
-       newcorners[2] = corners[2];
-       newnormals[2] = normals[2];
        newframes[3] = frames[3];
-       newcorners[3] = corners[3];
-       newnormals[3] = normals[3];
        localsurf->FrameAt(u.Mid(), secondv.Mid(), newframes[4]);
 
-       newcorners[4] = newframes[4].origin;
-       newnormals[4] = newframes[4].zaxis;
        //bbox = q1surf->BoundingBox();
        //bu_log("%d - in bbq1 rpp %f %f %f %f %f %f\n", divDepth, 
bbox.m_min.x, bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, 
bbox.m_max.z);
-       quads[1] = subdivideSurfaceByKnots(north, u, secondv, newframes, 
newcorners, newnormals, divDepth+1, depthLimit);
+       quads[1] = subdivideSurfaceByKnots(north, u, secondv, newframes, 
divDepth+1, depthLimit);
        delete north;
 
        bu_free(newframes, "free subsurface frames array");
-       bu_free(newcorners, "free subsurface corners array");
-       bu_free(newnormals, "free subsurface normals array");
 
        parent->m_trimmed = true;
        parent->m_checkTrim = false;
@@ -1596,7 +1423,7 @@
        //parent->addChild(subdivideSurface(localsurf, u, v, frames, corners, 
normals, 0));
        ((ON_Surface *)localsurf)->ClearBoundingBox();
        delete parent;
-       return subdivideSurface(localsurf, u, v, frames, corners, normals, 0, 
depthLimit);
+       return subdivideSurface(localsurf, u, v, frames, 0, depthLimit);
     }
     delete [] spanu;
     delete [] spanv;
@@ -1612,8 +1439,6 @@
                              const ON_Interval& u,
                              const ON_Interval& v,
                              ON_Plane frames[],
-                             ON_3dPoint corners[],
-                             ON_3dVector normals[],
                              int divDepth,
                              int depthLimit)
 {
@@ -1628,27 +1453,18 @@
     localsurf->FrameAt(u.Mid() + uq, v.Mid() - vq, frames[7]);
     localsurf->FrameAt(u.Mid() + uq, v.Mid() + vq, frames[8]);
 
-    corners[5] = frames[5].origin;
-    normals[5] = frames[5].zaxis;
-    corners[6] = frames[6].origin;
-    normals[6] = frames[6].zaxis;
-    corners[7] = frames[7].origin;
-    normals[7] = frames[7].zaxis;
-    corners[8] = frames[8].origin;
-    normals[8] = frames[8].zaxis;
-
     double width, height;
     double ratio = 5.0;
     localsurf->GetSurfaceSize(&width, &height);
     if (((width/height < ratio) && (width/height > 1.0/ratio) && 
isFlat(frames) && isStraight(frames))
         || (divDepth >= depthLimit)) { //BREP_MAX_FT_DEPTH))) {
-       return surfaceBBox(localsurf, true, corners, normals, u, v);
+       return surfaceBBox(localsurf, true, frames, u, v);
     } else {
        bool isUFlat = isFlatU(frames);
        bool isVFlat = isFlatV(frames);
 
        BBNode* parent = (divDepth == 0) ? initialBBox(ctree, localsurf, 
m_face, u, v) :
-           surfaceBBox(localsurf, false, corners, normals, u, v);
+           surfaceBBox(localsurf, false, frames, u, v);
        BBNode* quads[4];
        ON_Interval first(0, 0.5);
        ON_Interval second(0.5, 1.0);
@@ -1732,99 +1548,42 @@
             
**********************************************************************/
 
            ON_Plane sharedframes[4];
-           ON_3dPoint sharedcorners[4];
-           ON_3dVector sharednormals[4];
            localsurf->FrameAt(u.Mid(), v.Min(), sharedframes[0]);
            localsurf->FrameAt(u.Min(), v.Mid(), sharedframes[1]);
            localsurf->FrameAt(u.Mid(), v.Max(), sharedframes[2]);
            localsurf->FrameAt(u.Max(), v.Mid(), sharedframes[3]);
-
-           sharedcorners[0] = sharedframes[0].origin;
-           sharednormals[0] = sharedframes[0].zaxis;
-           sharedcorners[1] = sharedframes[1].origin;
-           sharednormals[1] = sharedframes[1].zaxis;
-           sharedcorners[2] = sharedframes[2].origin;
-           sharednormals[2] = sharedframes[2].zaxis;
-           sharedcorners[3] = sharedframes[3].origin;
-           sharednormals[3] = sharedframes[3].zaxis;
-
+                   
            ON_Plane *newframes;
-           ON_3dPoint *newcorners;
-           ON_3dVector *newnormals;
            newframes = (ON_Plane *)bu_malloc(9*sizeof(ON_Plane), "new frames");
-           newcorners = (ON_3dPoint *)bu_malloc(9*sizeof(ON_3dPoint), "new 
corners");
-           newnormals = (ON_3dVector *)bu_malloc(9*sizeof(ON_3dVector), "new 
normals");
            newframes[0] = frames[0];
-           newcorners[0] = corners[0];
-           newnormals[0] = normals[0];
            newframes[1] = sharedframes[0];
-           newcorners[1] = sharedcorners[0];
-           newnormals[1] = sharednormals[0];
            newframes[2] = frames[4];
-           newcorners[2] = corners[4];
-           newnormals[2] = normals[4];
            newframes[3] = sharedframes[1];
-           newcorners[3] = sharedcorners[1];
-           newnormals[3] = sharednormals[1];
            newframes[4] = frames[5];
-           newcorners[4] = corners[5];
-           newnormals[4] = normals[5];
-           quads[0] = subdivideSurface(q0surf, u.ParameterAt(first), 
v.ParameterAt(first), newframes, newcorners, newnormals, divDepth+1, 
depthLimit);
+           quads[0] = subdivideSurface(q0surf, u.ParameterAt(first), 
v.ParameterAt(first), newframes, divDepth+1, depthLimit);
            delete q0surf;
            newframes[0] = sharedframes[0];
-           newcorners[0] = sharedcorners[0];
-           newnormals[0] = sharednormals[0];
            newframes[1] = frames[1];
-           newcorners[1] = corners[1];
-           newnormals[1] = normals[1];
            newframes[2] = sharedframes[3];
-           newcorners[2] = sharedcorners[3];
-           newnormals[2] = sharednormals[3];
            newframes[3] = frames[4];
-           newcorners[3] = corners[4];
-           newnormals[3] = normals[4];
            newframes[4] = frames[7];
-           newcorners[4] = corners[7];
-           newnormals[4] = normals[7];
-           quads[1] = subdivideSurface(q1surf, u.ParameterAt(second), 
v.ParameterAt(first), newframes, newcorners, newnormals, divDepth+1, 
depthLimit);
+           quads[1] = subdivideSurface(q1surf, u.ParameterAt(second), 
v.ParameterAt(first), newframes, divDepth+1, depthLimit);
            delete q1surf;
            newframes[0] = frames[4];
-           newcorners[0] = corners[4];
-           newnormals[0] = normals[4];
            newframes[1] = sharedframes[3];
-           newcorners[1] = sharedcorners[3];
-           newnormals[1] = sharednormals[3];
            newframes[2] = frames[2];
-           newcorners[2] = corners[2];
-           newnormals[2] = normals[2];
            newframes[3] = sharedframes[2];
-           newcorners[3] = sharedcorners[2];
-           newnormals[3] = sharednormals[2];
            newframes[4] = frames[8];
-           newcorners[4] = corners[8];
-           newnormals[4] = normals[8];
-           quads[2] = subdivideSurface(q2surf, u.ParameterAt(second), 
v.ParameterAt(second), newframes, newcorners, newnormals, divDepth+1, 
depthLimit);
+           quads[2] = subdivideSurface(q2surf, u.ParameterAt(second), 
v.ParameterAt(second), newframes, divDepth+1, depthLimit);
            delete q2surf;
            newframes[0] = sharedframes[1];
-           newcorners[0] = sharedcorners[1];
-           newnormals[0] = sharednormals[1];
            newframes[1] = frames[4];
-           newcorners[1] = corners[4];
-           newnormals[1] = normals[4];
            newframes[2] = sharedframes[2];
-           newcorners[2] = sharedcorners[2];
-           newnormals[2] = sharednormals[2];
            newframes[3] = frames[3];
-           newcorners[3] = corners[3];
-           newnormals[3] = normals[3];
            newframes[4] = frames[6];
-           newcorners[4] = corners[6];
-           newnormals[4] = normals[6];
-           quads[3] = subdivideSurface(q3surf, u.ParameterAt(first), 
v.ParameterAt(second), newframes, newcorners, newnormals, divDepth+1, 
depthLimit);
+           quads[3] = subdivideSurface(q3surf, u.ParameterAt(first), 
v.ParameterAt(second), newframes, divDepth+1, depthLimit);
            delete q3surf;
            bu_free(newframes, "free subsurface frames array");
-           bu_free(newcorners, "free subsurface corners array");
-           bu_free(newnormals, "free subsurface normals array");
 
            parent->m_trimmed = true;
            parent->m_checkTrim = false;
@@ -1952,70 +1711,35 @@
             
**********************************************************************/
 
            ON_Plane sharedframes[4];
-           ON_3dPoint sharedcorners[4];
-           ON_3dVector sharednormals[4];
            localsurf->FrameAt(u.Mid(), v.Min(), sharedframes[0]);
            localsurf->FrameAt(u.Mid(), v.Max(), sharedframes[1]);
 
-           sharedcorners[0] = sharedframes[0].origin;
-           sharednormals[0] = sharedframes[0].zaxis;
-           sharedcorners[1] = sharedframes[1].origin;
-           sharednormals[1] = sharedframes[1].zaxis;
-
            ON_Plane *newframes;
-           ON_3dPoint *newcorners;
-           ON_3dVector *newnormals;
            newframes = (ON_Plane *) bu_malloc(9 * sizeof(ON_Plane),
                                               "new frames");
-           newcorners = (ON_3dPoint *) bu_malloc(9 * sizeof(ON_3dPoint),
-                                                 "new corners");
-           newnormals = (ON_3dVector *) bu_malloc(9 * sizeof(ON_3dVector),
-                                                  "new normals");
            newframes[0] = frames[0];
-           newcorners[0] = corners[0];
-           newnormals[0] = normals[0];
            newframes[1] = sharedframes[0];
-           newcorners[1] = sharedcorners[0];
-           newnormals[1] = sharednormals[0];
            newframes[2] = sharedframes[1];
-           newcorners[2] = sharedcorners[1];
-           newnormals[2] = sharednormals[1];
            newframes[3] = frames[3];
-           newcorners[3] = corners[3];
-           newnormals[3] = normals[3];
            localsurf->FrameAt(u.Mid() - uq, v.Mid(), newframes[4]);
 
-           newcorners[4] = newframes[4].origin;
-           newnormals[4] = newframes[4].zaxis;
            //ON_BoundingBox bbox = q0surf->BoundingBox();
            //bu_log("%d - in bbq0 rpp %f %f %f %f %f %f\n", divDepth, 
bbox.m_min.x, bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, 
bbox.m_max.z);
-           quads[0] = subdivideSurface(east, u.ParameterAt(first), v, 
newframes, newcorners, newnormals, divDepth + 1, depthLimit);
+           quads[0] = subdivideSurface(east, u.ParameterAt(first), v, 
newframes, divDepth + 1, depthLimit);
            delete east;
 
            newframes[0] = sharedframes[0];
-           newcorners[0] = sharedcorners[0];
-           newnormals[0] = sharednormals[0];
            newframes[1] = frames[1];
-           newcorners[1] = corners[1];
-           newnormals[1] = normals[1];
            newframes[2] = frames[2];
-           newcorners[2] = corners[2];
-           newnormals[2] = normals[2];
            newframes[3] = sharedframes[1];
-           newcorners[3] = sharedcorners[1];
-           newnormals[3] = sharednormals[1];
            localsurf->FrameAt(u.Mid() + uq, v.Mid(), newframes[4]);
 
-           newcorners[4] = newframes[4].origin;
-           newnormals[4] = newframes[4].zaxis;
            //bbox = q1surf->BoundingBox();
            //bu_log("%d - in bbq1 rpp %f %f %f %f %f %f\n", divDepth, 
bbox.m_min.x, bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, 
bbox.m_max.z);
-           quads[1] = subdivideSurface(west, u.ParameterAt(second), v, 
newframes, newcorners, newnormals, divDepth + 1, depthLimit);
+           quads[1] = subdivideSurface(west, u.ParameterAt(second), v, 
newframes, divDepth + 1, depthLimit);
            delete west;
 
            bu_free(newframes, "free subsurface frames array");
-           bu_free(newcorners, "free subsurface corners array");
-           bu_free(newnormals, "free subsurface normals array");
 
            parent->m_trimmed = true;
            parent->m_checkTrim = false;
@@ -2126,70 +1850,35 @@
             
**********************************************************************/
 
            ON_Plane sharedframes[2];
-           ON_3dPoint sharedcorners[2];
-           ON_3dVector sharednormals[2];
            localsurf->FrameAt(u.Min(), v.Mid(), sharedframes[0]);
            localsurf->FrameAt(u.Max(), v.Mid(), sharedframes[1]);
 
-           sharedcorners[0] = sharedframes[0].origin;
-           sharednormals[0] = sharedframes[0].zaxis;
-           sharedcorners[1] = sharedframes[1].origin;
-           sharednormals[1] = sharedframes[1].zaxis;
-
            ON_Plane *newframes;
-           ON_3dPoint *newcorners;
-           ON_3dVector *newnormals;
            newframes = (ON_Plane *) bu_malloc(9 * sizeof(ON_Plane),
                                               "new frames");
-           newcorners = (ON_3dPoint *) bu_malloc(9 * sizeof(ON_3dPoint),
-                                                 "new corners");
-           newnormals = (ON_3dVector *) bu_malloc(9 * sizeof(ON_3dVector),
-                                                  "new normals");
            newframes[0] = frames[0];
-           newcorners[0] = corners[0];
-           newnormals[0] = normals[0];
            newframes[1] = frames[1];
-           newcorners[1] = corners[1];
-           newnormals[1] = normals[1];
            newframes[2] = sharedframes[1];
-           newcorners[2] = sharedcorners[1];
-           newnormals[2] = sharednormals[1];
            newframes[3] = sharedframes[0];
-           newcorners[3] = sharedcorners[0];
-           newnormals[3] = sharednormals[0];
            localsurf->FrameAt(u.Mid(), v.Mid() - vq, newframes[4]);
 
-           newcorners[4] = newframes[4].origin;
-           newnormals[4] = newframes[4].zaxis;
            //ON_BoundingBox bbox = q0surf->BoundingBox();
            //bu_log("%d - in bbq0 rpp %f %f %f %f %f %f\n", divDepth, 
bbox.m_min.x, bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, 
bbox.m_max.z);
-           quads[0] = subdivideSurface(south, u, v.ParameterAt(first), 
newframes, newcorners, newnormals, divDepth + 1, depthLimit);
+           quads[0] = subdivideSurface(south, u, v.ParameterAt(first), 
newframes, divDepth + 1, depthLimit);
            delete south;
 
            newframes[0] = sharedframes[0];
-           newcorners[0] = sharedcorners[0];
-           newnormals[0] = sharednormals[0];
            newframes[1] = sharedframes[1];
-           newcorners[1] = sharedcorners[1];
-           newnormals[1] = sharednormals[1];
            newframes[2] = frames[2];
-           newcorners[2] = corners[2];
-           newnormals[2] = normals[2];
            newframes[3] = frames[3];
-           newcorners[3] = corners[3];
-           newnormals[3] = normals[3];
            localsurf->FrameAt(u.Mid(), v.Mid() + vq, newframes[4]);
 
-           newcorners[4] = newframes[4].origin;
-           newnormals[4] = newframes[4].zaxis;
            //bbox = q1surf->BoundingBox();
            //bu_log("%d - in bbq1 rpp %f %f %f %f %f %f\n", divDepth, 
bbox.m_min.x, bbox.m_max.x, bbox.m_min.y, bbox.m_max.y, bbox.m_min.z, 
bbox.m_max.z);
-           quads[1] = subdivideSurface(north, u, v.ParameterAt(second), 
newframes, newcorners, newnormals, divDepth + 1, depthLimit);
+           quads[1] = subdivideSurface(north, u, v.ParameterAt(second), 
newframes, divDepth + 1, depthLimit);
            delete north;
 
            bu_free(newframes, "free subsurface frames array");
-           bu_free(newcorners, "free subsurface corners array");
-           bu_free(newnormals, "free subsurface normals array");
 
            parent->m_trimmed = true;
            parent->m_checkTrim = false;

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


------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to