[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