[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31240] branches/nurbs-merge: Commit of eman's (aka Emmanuel Stone) initial changes (rev26277) for nurbs25 branch

Sergey Sharybin g.ulairi at gmail.com
Wed Aug 11 17:36:48 CEST 2010


Revision: 31240
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31240
Author:   nazgul
Date:     2010-08-11 17:36:47 +0200 (Wed, 11 Aug 2010)

Log Message:
-----------
Commit of eman's (aka Emmanuel Stone) initial changes (rev26277) for nurbs25 branch
Patch is initially applied againt svn rev30720 (instead of rev26271 as it was in nurbs25 branch)

Own changes:
 - No changes to CMakeLists.txt from the root directory -- there were only tabs->spaces
   replacing, but tabs should be used in this files

Hope there is no merge errors

Thank you, eman, for new stuff

Revision Links:
--------------
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26277
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30720
    http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26271

Modified Paths:
--------------
    branches/nurbs-merge/intern/CMakeLists.txt
    branches/nurbs-merge/intern/SConscript
    branches/nurbs-merge/source/blender/blenkernel/BKE_curve.h
    branches/nurbs-merge/source/blender/blenkernel/BKE_displist.h
    branches/nurbs-merge/source/blender/blenkernel/CMakeLists.txt
    branches/nurbs-merge/source/blender/blenkernel/SConscript
    branches/nurbs-merge/source/blender/blenkernel/intern/curve.c
    branches/nurbs-merge/source/blender/blenkernel/intern/displist.c
    branches/nurbs-merge/source/blender/editors/curve/CMakeLists.txt
    branches/nurbs-merge/source/blender/editors/curve/SConscript
    branches/nurbs-merge/source/blender/editors/curve/curve_intern.h
    branches/nurbs-merge/source/blender/editors/curve/curve_ops.c
    branches/nurbs-merge/source/blender/editors/curve/editcurve.c
    branches/nurbs-merge/source/blender/editors/space_view3d/drawobject.c
    branches/nurbs-merge/source/blender/editors/space_view3d/view3d_header.c
    branches/nurbs-merge/source/blender/makesdna/DNA_curve_types.h
    branches/nurbs-merge/source/blender/makesrna/intern/rna_curve.c
    branches/nurbs-merge/source/blender/render/intern/source/convertblender.c
    branches/nurbs-merge/source/creator/CMakeLists.txt

Added Paths:
-----------
    branches/nurbs-merge/intern/nurbana/
    branches/nurbs-merge/intern/nurbana/CMakeLists.txt
    branches/nurbs-merge/intern/nurbana/SConscript
    branches/nurbs-merge/intern/nurbana/extern/
    branches/nurbs-merge/intern/nurbana/extern/nurbana.h
    branches/nurbs-merge/intern/nurbana/intern/
    branches/nurbs-merge/intern/nurbana/intern/Makefile
    branches/nurbs-merge/intern/nurbana/intern/NGlobal.h
    branches/nurbs-merge/intern/nurbana/intern/ON_IO.h
    branches/nurbs-merge/intern/nurbana/intern/blenderNurbsStruct.h
    branches/nurbs-merge/intern/nurbana/intern/libNurbana.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbConstruct.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbConstruct.h
    branches/nurbs-merge/intern/nurbana/intern/nbDegree.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbDegree.h
    branches/nurbs-merge/intern/nurbana/intern/nbFitting.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbFitting.h
    branches/nurbs-merge/intern/nurbana/intern/nbGenerate.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbGenerate.h
    branches/nurbs-merge/intern/nurbana/intern/nbGridTessellator.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbGridTessellator.h
    branches/nurbs-merge/intern/nurbana/intern/nbKnot.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbKnot.h
    branches/nurbs-merge/intern/nurbana/intern/nbMath.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbMath.h
    branches/nurbs-merge/intern/nurbana/intern/nbNURBS.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbNURBS.h
    branches/nurbs-merge/intern/nurbana/intern/nbNormals.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbNormals.h
    branches/nurbs-merge/intern/nurbana/intern/nbPrimitives.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbPrimitives.h
    branches/nurbs-merge/intern/nurbana/intern/nbTessellator.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbTessellator.h
    branches/nurbs-merge/intern/nurbana/intern/nbTrimTessellator.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbTrimTessellator.h
    branches/nurbs-merge/intern/nurbana/intern/nbUtils.h
    branches/nurbs-merge/intern/nurbana/intern/nbVertexOps.cpp
    branches/nurbs-merge/intern/nurbana/intern/nbVertexOps.h
    branches/nurbs-merge/intern/nurbana/intern/trim/
    branches/nurbs-merge/intern/nurbana/intern/trim/nbSubDiv.cpp
    branches/nurbs-merge/intern/nurbana/intern/trim/nbSubDiv.h
    branches/nurbs-merge/intern/nurbana/intern/trim/nbTessGrid.cpp
    branches/nurbs-merge/intern/nurbana/intern/trim/nbTessGrid.h
    branches/nurbs-merge/intern/nurbana/intern/trim/nbTrimPatch.cpp
    branches/nurbs-merge/intern/nurbana/intern/trim/nbTrimPatch.h

Modified: branches/nurbs-merge/intern/CMakeLists.txt
===================================================================
--- branches/nurbs-merge/intern/CMakeLists.txt	2010-08-11 15:15:59 UTC (rev 31239)
+++ branches/nurbs-merge/intern/CMakeLists.txt	2010-08-11 15:36:47 UTC (rev 31240)
@@ -36,6 +36,7 @@
 ADD_SUBDIRECTORY(itasc)
 ADD_SUBDIRECTORY(boolop)
 ADD_SUBDIRECTORY(opennl)
+ADD_SUBDIRECTORY(nurbana)
 ADD_SUBDIRECTORY(smoke)
 
 IF(WITH_FLUID)

Modified: branches/nurbs-merge/intern/SConscript
===================================================================
--- branches/nurbs-merge/intern/SConscript	2010-08-11 15:15:59 UTC (rev 31239)
+++ branches/nurbs-merge/intern/SConscript	2010-08-11 15:36:47 UTC (rev 31240)
@@ -12,6 +12,7 @@
             'iksolver/SConscript',
             'itasc/SConscript',
             'boolop/SConscript',
+            'nurbana/SConscript',
             'opennl/SConscript',
             'smoke/SConscript'])
 

Added: branches/nurbs-merge/intern/nurbana/CMakeLists.txt
===================================================================
--- branches/nurbs-merge/intern/nurbana/CMakeLists.txt	                        (rev 0)
+++ branches/nurbs-merge/intern/nurbana/CMakeLists.txt	2010-08-11 15:36:47 UTC (rev 31240)
@@ -0,0 +1,36 @@
+# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version. The Blender
+# Foundation also sells licenses for use in proprietary software under
+# the Blender License.  See http://www.blender.org/BL/ for information
+# about this.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# The Original Code is Copyright (C) 2006, Blender Foundation
+# All rights reserved.
+#
+# The Original Code is: all of this file.
+#
+# Contributor(s): Emmanuel Stone.
+#
+# ***** END GPL/BL DUAL LICENSE BLOCK *****
+
+SET(INC include ../../intern/guardedalloc ./opennurbs ./opennurbs/zlib intern/trim)
+
+FILE(GLOB SRC intern/*.cpp intern/opennurbs/*.cpp intern/opennurbs/*.c intern/opennurbs/zlib/*.c intern/trim/*.cpp)
+
+
+#INCLUDE_DIRECTORIES(../../intern/guardedalloc ./opennurbs ./opennurbs/zlib intern/trim)
+BLENDERLIB(bf_nurbana "${SRC}" "${INC}")
+#, libtype=['intern','game','game2','player'], priority = [15, 55, 100, 135] )
\ No newline at end of file

Added: branches/nurbs-merge/intern/nurbana/SConscript
===================================================================
--- branches/nurbs-merge/intern/nurbana/SConscript	                        (rev 0)
+++ branches/nurbs-merge/intern/nurbana/SConscript	2010-08-11 15:36:47 UTC (rev 31240)
@@ -0,0 +1,8 @@
+#!/usr/bin/python
+ 
+Import('env')
+ 
+sources = env.Glob('intern/*.cpp') + env.Glob('intern/opennurbs/*.cpp') + env.Glob('intern/opennurbs/*.c') + env.Glob('intern/opennurbs/zlib/*.c') + env.Glob('intern/trim/*.cpp')
+incs = '../../intern/guardedalloc ./intern/opennurbs/ ./intern/opennurbs/zlib ./intern/trim'
+ 
+env.BlenderLib ('bf_nurbana', sources, Split(incs), defines=[], libtype=['intern', 'player'], priority = [12, 177] )

Added: branches/nurbs-merge/intern/nurbana/extern/nurbana.h
===================================================================
--- branches/nurbs-merge/intern/nurbana/extern/nurbana.h	                        (rev 0)
+++ branches/nurbs-merge/intern/nurbana/extern/nurbana.h	2010-08-11 15:36:47 UTC (rev 31240)
@@ -0,0 +1,172 @@
+/*
+* $Id$
+*
+* ***** BEGIN GPL LICENSE BLOCK *****
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software  Foundation,
+* Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*
+* The Original Code is Copyright (C) 2005 by Emmanuel Stone
+* All rights reserved.
+*
+* The Original Code is: all of this file.
+*
+* Contributor(s): none yet.
+*
+* ***** END GPL LICENSE BLOCK *****
+*/
+
+#ifndef NAN_INCLUDED_nurbana_h
+#define NAN_INCLUDED_nurbana_h
+
+#include "../intern/blenderNurbsStruct.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void nurbs_test();
+
+typedef float nbReal;
+
+typedef struct nbReal3 {
+	nbReal  x;
+	nbReal  y;
+	nbReal  z;
+
+}nbReal3;
+typedef struct nbReal4 {
+	nbReal  x;
+	nbReal  y;
+	nbReal  z;
+	nbReal  a;
+}nbReal4;
+
+
+typedef struct ControlPoint {
+	nbReal x;
+	nbReal y;
+	nbReal z;
+	nbReal H;
+	// This extra data makes nurbana struct compatible with blender BPoint
+	float alfa, weight;		/* alfa: tilt in 3D View, weight: used for softbody goal weight */
+	short f1, hide;
+	float radius, pad;		/* user-set radius per point for bevelling etc */
+} ControlPoint;
+
+// 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(BlenderNurbs_ptr bNurbs);
+
+
+
+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);
+
+extern void NRB_changeCyclic(NurbanaObj_ptr nop,int uv);
+
+extern void NRB_getTriangleNormals(float v0[], float v1[], float v2[], float n0[], float n1[], float n2[]);
+extern void NRB_getTrimTess(NurbanaObj_ptr surface, float** vertex, int** index, int* totindex, float** norm);
+extern void NRB_addTrimCurve(NurbanaObj_ptr surface, void* curve);
+
+extern void NRB_ResChanged(NurbanaObj_ptr nop );
+extern void NRB_SizeChanged(NurbanaObj_ptr nop, int newU, int newV);
+extern void NRB_UpdateSize(NurbanaObj_ptr nop);
+
+extern void NRB_setLength(int U, int V, int shiftU, int shiftV, int copyKnots, NurbanaObj_ptr nurb);
+extern void NRB_reallocKnots(int U, int V, int copy, NurbanaObj_ptr nurb);
+extern void NRB_copyPatchFromBuffer(nbReal4 *buffer, int curveLength, int nextCurve, int curveCount, NurbanaObj_ptr nurb, int uOffset, int vOffset);
+extern void NRB_reallocCtlPts(int U, int V, int shiftU, int shiftV, NurbanaObj_ptr nurb);
+
+extern void NRB_ConvertToPrimitive(NurbanaObj_ptr nop,unsigned char type);
+
+extern void NRB_RecalculateKnots(NurbanaObj_ptr nop,int uv,int type);
+
+//extern Nurb_ExternPtr NRB_getNurbData(NurbanaObj_ptr nop);
+
+//extern void NRB_freeNurbData(Nurb_ExternPtr ne);
+//extern void NRB_updateNurbData(Nurb_ExternPtr ne,NurbanaObj_ptr nop);
+
+extern int NRB_getNumTessPoints(NurbanaObj_ptr nurb);
+extern int NRB_getNumCPoints(int uv,NurbanaObj_ptr nurb);
+extern int NRB_getOrder(int uv,NurbanaObj_ptr nurb);
+extern int NRB_getNumKnots(int uv,NurbanaObj_ptr nurb);
+extern nbReal NRB_getLastKnotValue(NurbanaObj_ptr nurb,int uv);
+extern nbReal NRB_getFirstKnotValue(NurbanaObj_ptr nurb,int uv);
+
+extern void NRB_resetIsoLines(NurbanaObj_ptr nurb);
+extern int NRB_getNumIsoPoints(NurbanaObj_ptr nop);
+extern int NRB_getIsoResolution(NurbanaObj_ptr nop);
+extern int NRB_getIsoDensity(NurbanaObj_ptr nop);
+extern void NRB_setIsoResolution(NurbanaObj_ptr nop,int res);
+extern void NRB_setIsoDensity(NurbanaObj_ptr nop,int den);
+extern nbReal* NRB_getIsoPoints(NurbanaObj_ptr nop, nbReal* buffer);
+
+
+extern int NRB_getTrianIndexCount(NurbanaObj_ptr nop);
+extern int NRB_getQuadIndexCount(NurbanaObj_ptr nop);
+extern void NRB_getTrianIndexes(NurbanaObj_ptr nop, int* indexes);
+extern void NRB_getQuadIndexes(NurbanaObj_ptr nop, int* indexes);
+extern void NRB_getNormals(NurbanaObj_ptr nop, int* qIndexes, int* tIndexes, nbReal* verts, nbReal* nors);
+extern int NRB_getVertexCount(NurbanaObj_ptr nop);
+//extern nbReal* NRB_GenerateSurface(NurbanaObj_ptr nop, nbReal* buffer, int dim );
+extern nbReal* NRB_GenerateSurface(NurbanaObj_ptr nop, nbReal* buffer, int resU, int resV, int dim);
+
+extern nbReal* NRB_GenerateCurve(NurbanaObj_ptr nop, nbReal* buffer, nbReal* tiltBuffer, nbReal* radiusBuffer, int res);
+extern nbReal* NRB_GenerateCurveOnSurface(NurbanaObj_ptr nop, nbReal* buffer, int res, float t, int uv, int dim);
+extern nbReal3_ptr NRB_GenerateNormals(NurbanaObj_ptr nop);
+
+
+extern void NRB_RefitSurface(NurbanaObj_ptr nop, nbReal* buffer);
+
+extern void NRB_Subdivide(NurbanaObj_ptr nop,int subdivideU, int subdivideV);
+extern void NRB_Refine(NurbanaObj_ptr nop, int U, int V);
+extern void NRB_KnotInsert(NurbanaObj_ptr nop,nbReal *X, int r, int UV);
+
+extern void NRB_split(NurbanaObj_ptr nop, nbReal x, int uv, nbReal4* dst, int dstLen, int* frstLen, int* scndLen, int* k, int* newPoints, int* inserted);
+extern void NRB_splitBuffer(nbReal4* buffer, int newPoints, NurbanaObj_ptr nop, NurbanaObj_ptr nop2, nbReal splitKnot, int newLength, int span, int uv, int frstLen, int scndLen);
+
+extern void NRB_DegreeElevate(NurbanaObj_ptr nop,int Uinc, int Vinc);
+extern void NRB_DegreeReduce(NurbanaObj_ptr nop,int Udec, int Vdec);
+
+
+// OpenNURBS stuff
+extern int NRB_loadOpenNURBS(NurbanaObj_ptr nop, char* filename);
+
+// Misc utility functions
+extern void NRB_Print(NurbanaObj_ptr nop);
+
+extern void NRB_Echo();
+
+#define  NURBANA_PRIMITIVE_CURVE     0
+#define  NURBANA_PRIMITIVE_SURFACE   1
+#define  NURBANA_PRIMITIVE_CIRCLE    2
+#define NURBANA_PRIMITIVE_TUBE    3
+#define NURBANA_PRIMITIVE_TORUS      4
+#define  NURBANA_PRIMITIVE_SPHERE    5
+#ifdef __cplusplus
+}
+#endif
+
+#endif // NAN_INCLUDED_nurbana_h
\ No newline at end of file


@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list