[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12683] branches/pynodes: -r 12657: 12682 https://svn.blender.org/svnroot/bf-blender/trunk/blender .
Nathan Letwory
jesterking at letwory.net
Mon Nov 26 23:53:06 CET 2007
Revision: 12683
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12683
Author: jesterking
Date: 2007-11-26 23:53:05 +0100 (Mon, 26 Nov 2007)
Log Message:
-----------
-r 12657:12682 https://svn.blender.org/svnroot/bf-blender/trunk/blender .
Biiig merge (particle stuffies)
Modified Paths:
--------------
branches/pynodes/intern/elbeem/intern/solver_init.cpp
branches/pynodes/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj
branches/pynodes/projectfiles_vc7/blender/src/BL_src.vcproj
branches/pynodes/release/datafiles/blenderbuttons
branches/pynodes/release/datafiles/preview.blend
branches/pynodes/release/scripts/wizard_curve2tree.py
branches/pynodes/source/blender/blenkernel/BKE_DerivedMesh.h
branches/pynodes/source/blender/blenkernel/BKE_bad_level_calls.h
branches/pynodes/source/blender/blenkernel/BKE_blender.h
branches/pynodes/source/blender/blenkernel/BKE_displist.h
branches/pynodes/source/blender/blenkernel/BKE_global.h
branches/pynodes/source/blender/blenkernel/BKE_main.h
branches/pynodes/source/blender/blenkernel/BKE_modifier.h
branches/pynodes/source/blender/blenkernel/BKE_softbody.h
branches/pynodes/source/blender/blenkernel/BKE_utildefines.h
branches/pynodes/source/blender/blenkernel/bad_level_call_stubs/stubs.c
branches/pynodes/source/blender/blenkernel/intern/DerivedMesh.c
branches/pynodes/source/blender/blenkernel/intern/anim.c
branches/pynodes/source/blender/blenkernel/intern/blender.c
branches/pynodes/source/blender/blenkernel/intern/cdderivedmesh.c
branches/pynodes/source/blender/blenkernel/intern/customdata.c
branches/pynodes/source/blender/blenkernel/intern/depsgraph.c
branches/pynodes/source/blender/blenkernel/intern/displist.c
branches/pynodes/source/blender/blenkernel/intern/effect.c
branches/pynodes/source/blender/blenkernel/intern/ipo.c
branches/pynodes/source/blender/blenkernel/intern/library.c
branches/pynodes/source/blender/blenkernel/intern/modifier.c
branches/pynodes/source/blender/blenkernel/intern/object.c
branches/pynodes/source/blender/blenkernel/intern/scene.c
branches/pynodes/source/blender/blenkernel/intern/softbody.c
branches/pynodes/source/blender/blenlib/BLI_arithb.h
branches/pynodes/source/blender/blenlib/intern/arithb.c
branches/pynodes/source/blender/blenlib/intern/threads.c
branches/pynodes/source/blender/blenloader/intern/readfile.c
branches/pynodes/source/blender/blenloader/intern/writefile.c
branches/pynodes/source/blender/include/BDR_editobject.h
branches/pynodes/source/blender/include/BIF_butspace.h
branches/pynodes/source/blender/include/BIF_editsima.h
branches/pynodes/source/blender/include/BIF_editview.h
branches/pynodes/source/blender/include/BIF_meshtools.h
branches/pynodes/source/blender/include/BIF_resources.h
branches/pynodes/source/blender/include/BIF_transform.h
branches/pynodes/source/blender/include/BSE_editipo.h
branches/pynodes/source/blender/include/blendef.h
branches/pynodes/source/blender/include/butspace.h
branches/pynodes/source/blender/include/transform.h
branches/pynodes/source/blender/makesdna/DNA_ID.h
branches/pynodes/source/blender/makesdna/DNA_customdata_types.h
branches/pynodes/source/blender/makesdna/DNA_ipo_types.h
branches/pynodes/source/blender/makesdna/DNA_material_types.h
branches/pynodes/source/blender/makesdna/DNA_meshdata_types.h
branches/pynodes/source/blender/makesdna/DNA_modifier_types.h
branches/pynodes/source/blender/makesdna/DNA_object_force.h
branches/pynodes/source/blender/makesdna/DNA_object_types.h
branches/pynodes/source/blender/makesdna/DNA_scene_types.h
branches/pynodes/source/blender/makesdna/DNA_texture_types.h
branches/pynodes/source/blender/makesdna/intern/makesdna.c
branches/pynodes/source/blender/python/api2_2x/Mesh.c
branches/pynodes/source/blender/python/api2_2x/doc/Mesh.py
branches/pynodes/source/blender/render/extern/include/RE_render_ext.h
branches/pynodes/source/blender/render/intern/include/renderdatabase.h
branches/pynodes/source/blender/render/intern/source/convertblender.c
branches/pynodes/source/blender/render/intern/source/imagetexture.c
branches/pynodes/source/blender/render/intern/source/rendercore.c
branches/pynodes/source/blender/render/intern/source/renderdatabase.c
branches/pynodes/source/blender/render/intern/source/texture.c
branches/pynodes/source/blender/src/blenderbuttons.c
branches/pynodes/source/blender/src/butspace.c
branches/pynodes/source/blender/src/buttons_editing.c
branches/pynodes/source/blender/src/buttons_object.c
branches/pynodes/source/blender/src/buttons_shading.c
branches/pynodes/source/blender/src/drawimage.c
branches/pynodes/source/blender/src/drawobject.c
branches/pynodes/source/blender/src/drawscene.c
branches/pynodes/source/blender/src/drawview.c
branches/pynodes/source/blender/src/edit.c
branches/pynodes/source/blender/src/editface.c
branches/pynodes/source/blender/src/editipo.c
branches/pynodes/source/blender/src/editipo_lib.c
branches/pynodes/source/blender/src/editmesh_tools.c
branches/pynodes/source/blender/src/editobject.c
branches/pynodes/source/blender/src/editscreen.c
branches/pynodes/source/blender/src/editsima.c
branches/pynodes/source/blender/src/editview.c
branches/pynodes/source/blender/src/header_buttonswin.c
branches/pynodes/source/blender/src/header_info.c
branches/pynodes/source/blender/src/header_ipo.c
branches/pynodes/source/blender/src/header_view3d.c
branches/pynodes/source/blender/src/headerbuttons.c
branches/pynodes/source/blender/src/meshtools.c
branches/pynodes/source/blender/src/parametrizer.c
branches/pynodes/source/blender/src/preview.blend.c
branches/pynodes/source/blender/src/sequence.c
branches/pynodes/source/blender/src/space.c
branches/pynodes/source/blender/src/toets.c
branches/pynodes/source/blender/src/transform.c
branches/pynodes/source/blender/src/transform_constraints.c
branches/pynodes/source/blender/src/transform_conversions.c
branches/pynodes/source/blender/src/transform_generics.c
branches/pynodes/source/blender/src/transform_manipulator.c
branches/pynodes/source/blender/src/unwrapper.c
branches/pynodes/source/blender/src/usiblender.c
branches/pynodes/source/blender/src/view.c
branches/pynodes/source/creator/creator.c
Added Paths:
-----------
branches/pynodes/intern/elbeem/intern/paraloopend.h
branches/pynodes/source/blender/blenkernel/BKE_particle.h
branches/pynodes/source/blender/blenkernel/BKE_pointcache.h
branches/pynodes/source/blender/blenkernel/intern/particle.c
branches/pynodes/source/blender/blenkernel/intern/particle_system.c
branches/pynodes/source/blender/blenkernel/intern/pointcache.c
branches/pynodes/source/blender/blenlib/BLI_kdtree.h
branches/pynodes/source/blender/blenlib/intern/BLI_kdtree.c
branches/pynodes/source/blender/include/BIF_editparticle.h
branches/pynodes/source/blender/makesdna/DNA_particle_types.h
branches/pynodes/source/blender/src/editparticle.c
Copied: branches/pynodes/intern/elbeem/intern/paraloopend.h (from rev 12682, trunk/blender/intern/elbeem/intern/paraloopend.h)
===================================================================
--- branches/pynodes/intern/elbeem/intern/paraloopend.h (rev 0)
+++ branches/pynodes/intern/elbeem/intern/paraloopend.h 2007-11-26 22:53:05 UTC (rev 12683)
@@ -0,0 +1,42 @@
+
+// same as grid loop_end + barrier
+
+ } // i
+ int i=0; //dummy
+ ADVANCE_POINTERS(2*gridLoopBound);
+ } // j
+
+# if COMPRESSGRIDS==1
+# if PARALLEL==1
+ //frintf(stderr," (id=%d k=%d) ",id,k);
+#pragma omp barrier
+# endif // PARALLEL==1
+# else // COMPRESSGRIDS==1
+ int i=0; //dummy
+ ADVANCE_POINTERS(mLevel[lev].lSizex*2);
+# endif // COMPRESSGRIDS==1
+
+} // all cell loop k,j,i
+
+#pragma omp critical
+{
+ if(doReduce) {
+ // synchronize global vars
+ for(int j=0; j<calcListFull.size() ; j++) mListFull.push_back( calcListFull[j] );
+ for(int j=0; j<calcListEmpty.size(); j++) mListEmpty.push_back( calcListEmpty[j] );
+ for(int j=0; j<calcListParts.size(); j++) mpParticles->addFullParticle( calcListParts[j] );
+ if(calcMaxVlen>mMaxVlen) {
+ mMxvx = calcMxvx;
+ mMxvy = calcMxvy;
+ mMxvz = calcMxvz;
+ mMaxVlen = calcMaxVlen;
+ }
+ if(0) {debMsgStd("OMP_CRIT",DM_MSG, "reduce id"<<id<<" curr: "<<mMaxVlen<<"|"<<mMxvx<<","<<mMxvy<<","<<mMxvz<<
+ " calc[ "<<calcMaxVlen<<"|"<<calcMxvx<<","<<calcMxvy<<","<<calcMxvz<<"] " ,4 ); }
+ }
+} // critical
+
+
+} /* main_region */
+ //?lobOutstrForce = true;
+
Modified: branches/pynodes/intern/elbeem/intern/solver_init.cpp
===================================================================
--- branches/pynodes/intern/elbeem/intern/solver_init.cpp 2007-11-26 22:09:57 UTC (rev 12682)
+++ branches/pynodes/intern/elbeem/intern/solver_init.cpp 2007-11-26 22:53:05 UTC (rev 12683)
@@ -703,7 +703,7 @@
memBlockAllocProblem = true;
}
#endif // Mac
- if(sizeof(int)==4 && memEstFine>maxDefaultMemChunk) {
+ if(sizeof(void *)==4 && memEstFine>maxDefaultMemChunk) {
// max memory chunk for 32bit systems 2gig
memBlockAllocProblem = true;
}
Modified: branches/pynodes/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj
===================================================================
--- branches/pynodes/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj 2007-11-26 22:09:57 UTC (rev 12682)
+++ branches/pynodes/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj 2007-11-26 22:53:05 UTC (rev 12683)
@@ -435,6 +435,15 @@
RelativePath="..\..\..\source\blender\blenkernel\intern\packedFile.c">
</File>
<File
+ RelativePath="..\..\..\source\blender\blenkernel\intern\particle.c">
+ </File>
+ <File
+ RelativePath="..\..\..\source\blender\blenkernel\intern\particle_system.c">
+ </File>
+ <File
+ RelativePath="..\..\..\source\blender\blenkernel\intern\pointcache.c">
+ </File>
+ <File
RelativePath="..\..\..\source\blender\blenkernel\intern\property.c">
</File>
<File
@@ -625,6 +634,9 @@
RelativePath="..\..\..\source\blender\blenkernel\BKE_plugin_types.h">
</File>
<File
+ RelativePath="..\..\..\source\blender\blenkernel\BKE_pointcache.h">
+ </File>
+ <File
RelativePath="..\..\..\source\blender\blenkernel\BKE_property.h">
</File>
<File
Modified: branches/pynodes/projectfiles_vc7/blender/src/BL_src.vcproj
===================================================================
--- branches/pynodes/projectfiles_vc7/blender/src/BL_src.vcproj 2007-11-26 22:09:57 UTC (rev 12682)
+++ branches/pynodes/projectfiles_vc7/blender/src/BL_src.vcproj 2007-11-26 22:53:05 UTC (rev 12683)
@@ -308,6 +308,9 @@
RelativePath="..\..\..\source\blender\src\editoops.c">
</File>
<File
+ RelativePath="..\..\..\source\blender\src\editparticle.c">
+ </File>
+ <File
RelativePath="..\..\..\source\blender\src\editscreen.c">
</File>
<File
@@ -675,6 +678,9 @@
RelativePath="..\..\..\source\blender\include\BIF_editoops.h">
</File>
<File
+ RelativePath="..\..\..\source\blender\include\BIF_editparticle.h">
+ </File>
+ <File
RelativePath="..\..\..\source\blender\include\BIF_editsca.h">
</File>
<File
Modified: branches/pynodes/release/datafiles/blenderbuttons
===================================================================
(Binary files differ)
Modified: branches/pynodes/release/datafiles/preview.blend
===================================================================
(Binary files differ)
Modified: branches/pynodes/release/scripts/wizard_curve2tree.py
===================================================================
--- branches/pynodes/release/scripts/wizard_curve2tree.py 2007-11-26 22:09:57 UTC (rev 12682)
+++ branches/pynodes/release/scripts/wizard_curve2tree.py 2007-11-26 22:53:05 UTC (rev 12683)
@@ -38,6 +38,7 @@
import bpy
import Blender
+import BPyMesh
from Blender.Mathutils import Vector, Matrix, CrossVecs, AngleBetweenVecs, LineIntersect, TranslationMatrix, ScaleMatrix, RotationMatrix, Rand
from Blender.Geometry import ClosestPointOnLine
@@ -73,7 +74,16 @@
q1+= q2
q2+= q3;
+def points_from_bezier_seg(steps, pointlist, radlist, bez1_vec, bez2_vec, radius1, radius2):
+
+ # x,y,z,axis
+ for ii in (0,1,2):
+ forward_diff_bezier(bez1_vec[1][ii], bez1_vec[2][ii], bez2_vec[0][ii], bez2_vec[1][ii], pointlist, steps, ii)
+
+ # radius - no axis, Copied from blenders BBone roll interpolation.
+ forward_diff_bezier(radius1, radius1 + 0.390464*(radius2-radius1), radius2 - 0.390464*(radius2-radius1), radius2, radlist, steps, None)
+
def debug_pt(co):
Blender.Window.SetCursorPos(tuple(co))
Blender.Window.RedrawAll()
@@ -158,6 +168,7 @@
self.limbScale = 1.0
self.debug_objects = []
+ self.steps = 6 # defalt, curve overwrites
def __repr__(self):
s = ''
@@ -175,7 +186,7 @@
self.objectCurveMat = objectCurve.matrixWorld
self.objectCurveIMat = self.objectCurveMat.copy().invert()
curve = objectCurve.data
- steps = curve.resolu # curve resolution
+ self.steps = curve.resolu # curve resolution
# Set the curve object scale
if curve.bevob:
@@ -188,8 +199,8 @@
# forward_diff_bezier will fill in the blanks
# nice we can reuse these for every curve segment :)
- pointlist = [[None, None, None] for i in xrange(steps+1)]
- radlist = [ None for i in xrange(steps+1) ]
+ pointlist = [[None, None, None] for i in xrange(self.steps+1)]
+ radlist = [ None for i in xrange(self.steps+1) ]
for spline in curve:
@@ -209,19 +220,7 @@
for i in xrange(1, len(bez_list)):
bez1 = bez_list[i-1]
bez2 = bez_list[i]
- bez1_vec = bez1.vec
- bez2_vec = bez2.vec
-
- radius1 = bez1.radius
- radius2 = bez2.radius
-
- # x,y,z,axis
- for ii in (0,1,2):
- forward_diff_bezier(bez1_vec[1][ii], bez1_vec[2][ii], bez2_vec[0][ii], bez2_vec[1][ii], pointlist, steps, ii)
-
- # radius - no axis, Copied from blenders BBone roll interpolation.
- forward_diff_bezier(radius1, radius1 + 0.390464*(radius2-radius1), radius2 - 0.390464*(radius2-radius1), radius2, radlist, steps, None)
-
+ points_from_bezier_seg(self.steps, pointlist, radlist, bez1.vec, bez2.vec, bez1.radius, bez2.radius)
bpoints = [ bpoint(brch, Vector(pointlist[ii]), Vector(), radlist[ii] * self.limbScale) for ii in xrange(len(pointlist)) ]
# remove endpoint for all but the last
@@ -264,11 +263,11 @@
self.objectLeafBoundsMesh = objectMesh.getData(mesh=1)
self.objectLeafBoundsIMat = objectMesh.matrixWorld.copy().invert()
- def isPointInTwigBounds(self, co):
- return self.objectTwigBoundsMesh.pointInside(co * self.objectCurveMat * self.objectTwigBoundsIMat)
+ def isPointInTwigBounds(self, co, selected_only=False):
+ return self.objectTwigBoundsMesh.pointInside(co * self.objectCurveMat * self.objectTwigBoundsIMat, selected_only)
- def isPointInLeafBounds(self, co):
- return self.objectLeafBoundsMesh.pointInside(co * self.objectCurveMat * self.objectLeafBoundsIMat)
+ def isPointInLeafBounds(self, co, selected_only=False):
+ return self.objectLeafBoundsMesh.pointInside(co * self.objectCurveMat * self.objectLeafBoundsIMat, selected_only)
def resetTags(self, value):
for brch in self.branches_all:
@@ -300,11 +299,21 @@
variation_seed = 1,\
variation_orientation = 0.0,\
variation_scale = 0.0,\
+ do_twigs_fill = 0,\
+ twig_fill_levels=4,\
+ twig_fill_rand_scale=0.0,\
+ twig_fill_fork_angle_max=60.0,\
+ twig_fill_radius_min=0.1,\
+ twig_fill_radius_factor=0.75,\
+ twig_fill_shape_type=0,\
+ twig_fill_shape_rand=0.0,\
+ twig_fill_shape_power=0.3,\
):
'''
build tree data - fromCurve must run first
'''
+
# Sort the branchs by the first radius, so big branchs get joins first
### self.branches_all.sort( key = lambda brch: brch.bpoints[0].radius )
@@ -377,6 +386,9 @@
# mat_orientation = RotationMatrix(0, 3, 'r', brch.parent_pt.no)
brch.transformRecursive(self, mat_scale * mat_orientation, brch.parent_pt.co)
+ if (do_twigs or do_twigs_fill) and twig_ob_bounds: # Only spawn twigs inside this mesh
+ self.setTwigBounds(twig_ob_bounds)
+
# Important we so this with existing parent/child but before connecting and calculating verts.
if do_twigs:
@@ -386,9 +398,6 @@
irational_num = 22.0/7.0 # use to make the random number more odd
- if twig_ob_bounds: # Only spawn twigs inside this mesh
- self.setTwigBounds(twig_ob_bounds)
-
if not twig_recursive:
twig_recursive_limit = 0
@@ -542,6 +551,19 @@
self.branches_all.extend(branches_twig_attached)
branches_twig_attached = []
+
+ if do_twigs_fill and twig_ob_bounds:
+ self.twigFill(\
+ twig_fill_levels,\
+ twig_fill_rand_scale,\
+ twig_fill_fork_angle_max,\
+ twig_fill_radius_min,\
+ twig_fill_radius_factor,\
+ twig_fill_shape_type,\
+ twig_fill_shape_rand,\
+ twig_fill_shape_power,\
+ )
+
### self.branches_all.sort( key = lambda brch: brch.parent_pt != None )
# Calc points with dependancies
@@ -610,6 +632,482 @@
for brch in self.branches_all:
brch.branchReJoin()
'''
+
+ def twigFill(self_tree,\
+ twig_fill_levels,\
+ twig_fill_rand_scale,\
+ twig_fill_fork_angle_max,\
+ twig_fill_radius_min,\
+ twig_fill_radius_factor,\
+ twig_fill_shape_type,\
+ twig_fill_shape_rand,\
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list