Revision: 20329
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20329
Author:   eman
Date:     2009-05-21 22:33:09 +0200 (Thu, 21 May 2009)

Log Message:
-----------
- Refactored interface between Blender and libNurbana, to make libNurbana code 
cleaner.
 - libNurbana now holds a pointer to Blender Nurb struct, to access directly
- Merged Object_Base and Object_NURBS objects.

This commit does not add any functionality nor should it change any 
functionality.

Modified Paths:
--------------
    branches/nurbs/blender/intern/nurbana/extern/nurbana.h
    branches/nurbs/blender/intern/nurbana/intern/NURBS_Construct.cpp
    branches/nurbs/blender/intern/nurbana/intern/NURBS_Generate.cpp
    branches/nurbs/blender/intern/nurbana/intern/NURBS_Knot.cpp
    branches/nurbs/blender/intern/nurbana/intern/Object_Base.cpp
    branches/nurbs/blender/intern/nurbana/intern/Object_NURBS.cpp
    branches/nurbs/blender/intern/nurbana/intern/Object_NURBS.h
    branches/nurbs/blender/intern/nurbana/intern/libNurbana.cpp
    branches/nurbs/blender/source/blender/blenkernel/intern/curve.c
    branches/nurbs/blender/source/blender/blenloader/intern/readfile.c
    branches/nurbs/blender/source/blender/makesdna/DNA_curve_types.h
    branches/nurbs/blender/source/blender/src/editcurve.c

Added Paths:
-----------
    branches/nurbs/blender/intern/nurbana/intern/blenderNurbsStruct.h

Modified: branches/nurbs/blender/intern/nurbana/extern/nurbana.h
===================================================================
--- branches/nurbs/blender/intern/nurbana/extern/nurbana.h      2009-05-21 
19:38:49 UTC (rev 20328)
+++ branches/nurbs/blender/intern/nurbana/extern/nurbana.h      2009-05-21 
20:33:09 UTC (rev 20329)
@@ -30,6 +30,8 @@
 #ifndef NAN_INCLUDED_nurbana_h
 #define NAN_INCLUDED_nurbana_h
 
+#include "../intern/blenderNurbsStruct.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -52,18 +54,18 @@
 }nbReal4;
 
 
-typedef struct Point3d {
+/*typedef struct Point3d {
        nbReal  x;
        nbReal  y;
        nbReal  z;
        nbReal  H;
 
        // This extra data should make Point4d 'struct'rally equivalent to 
BPoint from Blender::DNA_Data_Types.h
-       nbReal alfa, weight;            /* alfa: tilt in 3D View, weight: used 
for softbody goal weight */
+       nbReal alfa, weight;            // alfa: tilt in 3D View, weight: used 
for softbody goal weight 
        short f1, hide;
-       nbReal radius, pad;             /* user-set radius per point for 
bevelling etc */
+       nbReal radius, pad;             // user-set radius per point for 
bevelling etc 
 }Point3d;
-
+*/
 //typedef Point3d nbReal3;
 
 typedef struct Nurb_Extern {
@@ -95,12 +97,24 @@
 
 
 typedef Nurb_Extern* Nurb_ExternPtr;
+
+// forward declare as void
+//typedef void Point3d; 
+//typedef void* Point3d_ptr;
 typedef Point3d* Point3d_ptr;
 typedef nbReal3* nbReal3_ptr;
+typedef void* BlenderNurbs_ptr;
 typedef void* NurbanaObj_ptr; // to hide pointer to C++ object in C space
 
-extern NurbanaObj_ptr NRB_addObject(Point3d** CtlPts, short* numCPu, short* 
numCPv, short* orderU, short* orderV, nbReal** knotsU, nbReal** knotsV,  short* 
cyclicU,  short* cyclicV, short* knottypeu, short* knottypev,  short* resolu,  
short* resolv, short* isores, short* isoden, short* isovis) ;
+//extern NurbanaObj_ptr NRB_addObject(Point3d** CtlPts, short* numCPu, short* 
numCPv, short* orderU, short* orderV, nbReal** knotsU, nbReal** knotsV,  short* 
cyclicU,  short* cyclicV, short* knottypeu, short* knottypev,  short* resolu,  
short* resolv, short* isores, short* isoden, short* isovis) ;
+extern NurbanaObj_ptr NRB_addObject(BlenderNurbs_ptr bNurbs);
 
+//extern NurbanaObj_ptr NRB_allocate();
+//extern void NRB_deallocate(NurbanaObj_ptr nop);
+extern void NRB_init(NurbanaObj_ptr nop);
+
+extern NurbanaObj_ptr NRB_reallocate(BlenderNurbs_ptr bNurbs);
+
 extern NurbanaObj_ptr NRB_CreatePrimitive(NurbanaObj_ptr nop, unsigned char 
type);
 extern void NRB_removeObject(NurbanaObj_ptr nop);
 

Modified: branches/nurbs/blender/intern/nurbana/intern/NURBS_Construct.cpp
===================================================================
--- branches/nurbs/blender/intern/nurbana/intern/NURBS_Construct.cpp    
2009-05-21 19:38:49 UTC (rev 20328)
+++ branches/nurbs/blender/intern/nurbana/intern/NURBS_Construct.cpp    
2009-05-21 20:33:09 UTC (rev 20329)
@@ -112,7 +112,7 @@
     } //eof
   } //eof
 
-  objs[0] -> _ReCalcTssPts= 1;
+  objs[0] -> m_recalcTssPts = 1;
 
 
 //  free(KVfnl);

Modified: branches/nurbs/blender/intern/nurbana/intern/NURBS_Generate.cpp
===================================================================
--- branches/nurbs/blender/intern/nurbana/intern/NURBS_Generate.cpp     
2009-05-21 19:38:49 UTC (rev 20328)
+++ branches/nurbs/blender/intern/nurbana/intern/NURBS_Generate.cpp     
2009-05-21 20:33:09 UTC (rev 20329)
@@ -6,9 +6,9 @@
 }
 
 void NURBS_Generate::CurveOnSurface(Object_NURBS *obj, nbReal* buffer, int 
res, float t, int uv, int dim) {
-       int sizeU = (*obj->_TessUV[0])*obj->Length(0);
-       int sizeV = (*obj->_TessUV[1])*obj->Length(1);
-       nbReal3 *tessBuffer = (nbReal3*)(obj -> _OldBuffer);    
+       int sizeU = obj->Tess(0)*obj->Length(0);
+       int sizeV = obj->Tess(1)*obj->Length(1);
+       nbReal3 *tessBuffer = (nbReal3*)(obj -> m_oldBuffer);   
        nbReal3 *buffer3 = (nbReal3*)buffer;
 
        if(t == 1.0)
@@ -230,14 +230,14 @@
                // Set the contents of the 'oldBuffer' for the next pass
                if(Update) {
                        for(i = 0; i < (TessU+1)*(TessV+1)*dim; i++) {
-                               obj -> _OldBuffer[i] = TssPts[i];
+                               obj -> m_oldBuffer[i] = TssPts[i];
                        }
                }
        } else {  // Incremental Surface Calculations
                if(dim == 4)
-                       TssPts4 = (nbReal4*)(obj->_OldBuffer);
+                       TssPts4 = (nbReal4*)(obj->m_oldBuffer);
                else
-                       TssPts3 = (nbReal3*)(obj->_OldBuffer);
+                       TssPts3 = (nbReal3*)(obj->m_oldBuffer);
 
                nbReal dh, dx, dy, dz, da;
                nbReal *sumold, sumratio;
@@ -329,7 +329,7 @@
                }
                // Set the contents of the tess buffer to 'oldBuffer' for 
renderer
                for(i = 0; i < (TessU+1)*(TessV+1)*dim; i++) {
-                       TssPts[i] = obj -> _OldBuffer[i];
+                       TssPts[i] = obj -> m_oldBuffer[i];
        //              printf("OldBuff: %f\n",TssPts[i]);
                }
                MEM_freeN(sumold);
@@ -814,3 +814,4 @@
        return(sum);
 }
 
+

Modified: branches/nurbs/blender/intern/nurbana/intern/NURBS_Knot.cpp
===================================================================
--- branches/nurbs/blender/intern/nurbana/intern/NURBS_Knot.cpp 2009-05-21 
19:38:49 UTC (rev 20328)
+++ branches/nurbs/blender/intern/nurbana/intern/NURBS_Knot.cpp 2009-05-21 
20:33:09 UTC (rev 20329)
@@ -610,7 +610,7 @@
 
                        }
 
-                       if(*obj->_KnotTypeUV[0] == NURBS_KV_Open) { // Open = 
endtied
+                       if(obj->KnotType(0) == NURBS_KV_Open) { // Open = 
endtied
                                //#define KNOTSU(nu) ( (nu)->orderu+ 
(nu)->pntsu+ (nu->orderu-1)*((nu)->flagu & 1) )
                                KV= 
(nbReal*)MEM_callocN(sizeof(nbReal)*2*(knotLen),"Subdivide() KVu");
                                for (i= n= 0; i < knotLen -1; i++) { //FIXME 
adjust for cyclic
@@ -623,7 +623,7 @@
                                //  MEM_freeN(KV);
 
                        }
-                       else if(*obj->_KnotTypeUV[0] == NURBS_KV_Periodic) { // 
periodic = cyclic
+                       else if(obj->KnotType(0) == NURBS_KV_Periodic) { // 
periodic = cyclic
                                //if(obj->Cyclic(0)) { // not cyclic
                                KV= 
(nbReal*)MEM_callocN(sizeof(nbReal)*2*(knotLen),"Subdivide() KVu");
                                for (i= n= 0; i < knotLen - 1; i++) { //FIXME 
adjust for cyclic
@@ -652,7 +652,7 @@
                        else { // not cyclic in V
                                knotLen = obj -> Length(1) + (obj -> Order(1));
                        }
-                       if(*obj->_KnotTypeUV[1] == NURBS_KV_Open) { // Open = 
endtied
+                       if(obj->KnotType(1) == NURBS_KV_Open) { // Open = 
endtied
                                //#define KNOTSU(nu) ( (nu)->orderu+ 
(nu)->pntsu+ (nu->orderu-1)*((nu)->flagu & 1) )
                                KV= 
(nbReal*)MEM_callocN(sizeof(nbReal)*2*(knotLen),"Subdivide() KVu");
                                for (i= n= 0; i < knotLen -1; i++) { //FIXME 
adjust for cyclic
@@ -665,7 +665,7 @@
                                //  MEM_freeN(KV);
 
                        }
-                       else if(*obj->_KnotTypeUV[1] == NURBS_KV_Periodic) { // 
periodic = cyclic
+                       else if(obj->KnotType(1) == NURBS_KV_Periodic) { // 
periodic = cyclic
                                KV= 
(nbReal*)MEM_callocN(sizeof(nbReal)*2*(knotLen),"Subdivide() KVu");
                                for (i= n= 0; i < knotLen - 1; i++) { //FIXME 
adjust for cyclic
                                        KV[n++]= obj -> KnotVector(1)[i];
@@ -932,3 +932,4 @@
     memcpy(outKnots, inKnots, sizeof(*inKnots) * length);
 }
 
+

Modified: branches/nurbs/blender/intern/nurbana/intern/Object_Base.cpp
===================================================================
--- branches/nurbs/blender/intern/nurbana/intern/Object_Base.cpp        
2009-05-21 19:38:49 UTC (rev 20328)
+++ branches/nurbs/blender/intern/nurbana/intern/Object_Base.cpp        
2009-05-21 20:33:09 UTC (rev 20329)
@@ -31,8 +31,6 @@
   _TessUV[0]= resolu;
   _TessUV[1]= resolv;
 
-  _IPCDensity = isoden;
-  _IPCResolution = isores;
   //_IPCDensity= 5;
   //_IPCResolution= OBJECT_MAX_DENSITY;
   // Allocate memory for ISO Curves

Modified: branches/nurbs/blender/intern/nurbana/intern/Object_NURBS.cpp
===================================================================
--- branches/nurbs/blender/intern/nurbana/intern/Object_NURBS.cpp       
2009-05-21 19:38:49 UTC (rev 20328)
+++ branches/nurbs/blender/intern/nurbana/intern/Object_NURBS.cpp       
2009-05-21 20:33:09 UTC (rev 20329)
@@ -1,130 +1,187 @@
 #include "Object_NURBS.h"
-
-Object_NURBS::Object_NURBS(Point3d** CtlPts, short* numCPu, short* numCPv, 
short *orderU, short *orderV, nbReal** knotsU, nbReal** knotsV,short* flagU, 
short* flagV, short* knotTypeU, short* knotTypeV, short* resolu, short* resolv, 
short* isores, short* isoden, short* isovis) : Object_Base(CtlPts, numCPu, 
numCPv, resolu, resolv, isores, isoden) {
-       int     i;
-       recalculateKnotVectorU = recalculateKnotVectorU = false;
-       _Change[0]= _Change[1]= 0;
-       _RecalculateKnotVector= 0;//_FlagUV[0]= _FlagUV[1]= 0;
-       //_KnotTypeUV[0]= _KnotTypeUV[1]= NURBS_KV_Open;//      _OrderUV[0]= 
_OrderUV[1]= 4;
-       _KnotTypeUV[0] = knotTypeU ;
-       _KnotTypeUV[1] = knotTypeV ;
-//     *_KnotTypeUV[0] = (*flagU>>1);//knotTypeU ;
-//     *_KnotTypeUV[1] = (*flagV>>1);// knotTypeV ;
-       _OrderUV[0] = orderU;
-       _OrderUV[1] = orderV;
+/*
+Object_NURBS::Object_NURBS(Point3d** CtlPts, short* numCPu, short* numCPv, 
short *orderU, short *orderV, nbReal** knotsU, nbReal** knotsV,short* flagU, 
short* flagV, short* knotTypeU, short* knotTypeV, short* resolu, short* resolv, 
short* isores, short* isoden, short* isovis) {//: Object_Base(CtlPts, numCPu, 
numCPv, resolu, resolv, isores, isoden) {
+//     int     i;
+       m_recalculateKnotVectorU = m_recalculateKnotVectorU = false;
+       m_change[0]= m_change[1]= 0;
+       m_recalculateKnotVector= 0;//_FlagUV[0]= _FlagUV[1]= 0;
        
-       _FlagUV[0] = flagU;
-       _FlagUV[1] = flagV;
+       m_sumIPC[0] = NULL;
+       m_sumIPC[1] = NULL;
        
-       _IsoVis = isovis;
-       _SumIPC[0] = NULL;
-       _SumIPC[1] = NULL;
-
-       _KnotVectorU = knotsU;
-       _KnotVectorV = knotsV;
+       m_ctlPtsOld = NULL;
+       m_oldBuffer = NULL;
+       m_sum = NULL;
        
-       _CtlPtsOld = NULL;
-       _OldBuffer = NULL;
-       _Sum = NULL;
-       
-       if (*_LengthUV[0] + *_LengthUV[1]) {
+       if (m_blenderData->m_pntsuv[0] + m_blenderData->m_pntsuv[1]) {
                SetCacheBuffer();
                ResetIsoLines();
        }
-       // Allocate tessU*pntsU*tessV*pntsV control points ala Blender
-       // FIXME for curves.
+       //_Normals= 
(nbReal3*)MEM_callocN(sizeof(nbReal3)*(2*OBJECT_MAX_DENSITY*OBJECT_MAX_DENSITY),"_Normals");
 
-       //len= nu->resolu*nu->resolv;
-       //_LengthUV[0]= numcpu;
-       //_LengthUV[1]= numcpv;
-       //_TessUV[0]= resolu;
-//     _TessUV[1]= resolv;
-
-       //dl= MEM_callocN(sizeof(DispList), "makeDispListsurf");
-       //dl->verts= MEM_callocN(len*3*sizeof(float), "dlverts");
-       
-       /* // Trim Curves, Let first Curve ID be 1
-               _TCID= 1;
-       _TCHead= NULL;
-       */
 } //eof Object_NURBS::Object_NURBS()
+*/
+Object_NURBS::Object_NURBS(){
+       m_blenderData = NULL;
+/*     m_next = NULL;
+       m_prev = NULL;
+       m_type = 0;
+       m_mat_nr = 0;
+       m_hide = 0;
+       m_flag = 0;
+       m_blenderData->m_pntsuv[0] = 0;
+       m_blenderData->m_pntsuv[1] = 0;
+       m_blenderData->m_resoluv[0] = 0;
+       m_blenderData->m_resoluv[1] = 0;
+       m_blenderData->m_orderuv[0] = 0;
+       m_blenderData->m_orderuv[1] = 0;
+       m_blenderData->m_flaguv[0] = 0;
+       m_blenderData->m_flaguv[1] = 0;

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to