[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44119] branches/bmesh/blender: svn merge ^/trunk/blender -r44076:44118

Campbell Barton ideasman42 at gmail.com
Wed Feb 15 13:08:12 CET 2012


Revision: 44119
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44119
Author:   campbellbarton
Date:     2012-02-15 12:08:06 +0000 (Wed, 15 Feb 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r44076:44118

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44076

Modified Paths:
--------------
    branches/bmesh/blender/build_files/buildbot/slave_compile.py
    branches/bmesh/blender/build_files/buildbot/slave_pack.py
    branches/bmesh/blender/build_files/scons/config/darwin-config.py
    branches/bmesh/blender/build_files/scons/tools/btools.py
    branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerReader.cpp
    branches/bmesh/blender/intern/boolop/CMakeLists.txt
    branches/bmesh/blender/intern/boolop/intern/BOP_CarveInterface.cpp
    branches/bmesh/blender/release/scripts/modules/rna_xml.py
    branches/bmesh/blender/release/scripts/startup/bl_ui/properties_render.py
    branches/bmesh/blender/source/blender/blenkernel/intern/sequencer.c
    branches/bmesh/blender/source/blender/blenkernel/intern/writeffmpeg.c
    branches/bmesh/blender/source/blender/editors/interface/interface_regions.c
    branches/bmesh/blender/source/blender/editors/object/object_edit.c
    branches/bmesh/blender/source/blender/editors/space_sequencer/sequencer_edit.c
    branches/bmesh/blender/source/blender/gpu/intern/gpu_draw.c
    branches/bmesh/blender/source/blender/imbuf/IMB_imbuf.h
    branches/bmesh/blender/source/blender/imbuf/intern/divers.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_scene.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_tracking.c
    branches/bmesh/blender/source/blender/quicktime/apple/qtkit_export.m
    branches/bmesh/blender/source/blender/quicktime/apple/qtkit_import.m
    branches/bmesh/blender/source/blender/quicktime/apple/quicktime_export.c
    branches/bmesh/blender/source/blender/quicktime/quicktime_export.h
    branches/bmesh/blender/source/creator/CMakeLists.txt
    branches/bmesh/blender/source/gameengine/Converter/BL_ShapeDeformer.cpp
    branches/bmesh/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp

Added Paths:
-----------
    branches/bmesh/blender/release/scripts/presets/interface_theme/

Property Changed:
----------------
    branches/bmesh/blender/
    branches/bmesh/blender/release/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872
/trunk/blender:39992-44076
   + /branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872
/trunk/blender:39992-44118

Modified: branches/bmesh/blender/build_files/buildbot/slave_compile.py
===================================================================
--- branches/bmesh/blender/build_files/buildbot/slave_compile.py	2012-02-15 08:53:28 UTC (rev 44118)
+++ branches/bmesh/blender/build_files/buildbot/slave_compile.py	2012-02-15 12:08:06 UTC (rev 44119)
@@ -115,6 +115,8 @@
                 bitness = '64'
 
             scons_options.append('BF_BITNESS=' + bitness)
+            scons_options.append('WITH_BF_CYCLES_CUDA_BINARIES=True')
+            scons_options.append('BF_CYCLES_CUDA_NVCC=nvcc.exe')
 
         retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options)
         sys.exit(retcode)

Modified: branches/bmesh/blender/build_files/buildbot/slave_pack.py
===================================================================
--- branches/bmesh/blender/build_files/buildbot/slave_pack.py	2012-02-15 08:53:28 UTC (rev 44118)
+++ branches/bmesh/blender/build_files/buildbot/slave_pack.py	2012-02-15 12:08:06 UTC (rev 44119)
@@ -79,6 +79,8 @@
                 bitness = '64'
 
             scons_options.append('BF_BITNESS=' + bitness)
+            scons_options.append('WITH_BF_CYCLES_CUDA_BINARIES=True')
+            scons_options.append('BF_CYCLES_CUDA_NVCC=nvcc.exe')
 
         retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options)
         sys.exit(retcode)

Modified: branches/bmesh/blender/build_files/scons/config/darwin-config.py
===================================================================
--- branches/bmesh/blender/build_files/scons/config/darwin-config.py	2012-02-15 08:53:28 UTC (rev 44118)
+++ branches/bmesh/blender/build_files/scons/config/darwin-config.py	2012-02-15 12:08:06 UTC (rev 44119)
@@ -99,7 +99,7 @@
 
 # enable ffmpeg  support
 WITH_BF_FFMPEG = True  # -DWITH_FFMPEG
-BF_FFMPEG = LIBDIR + '/ffmpeg'
+BF_FFMPEG = LIBDIR + '/ffmpeg_0.10'
 BF_FFMPEG_INC = "${BF_FFMPEG}/include"
 BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
 BF_FFMPEG_LIB = 'avcodec avdevice avformat avutil mp3lame swscale x264 xvidcore theora theoradec theoraenc vorbis vorbisenc vorbisfile ogg bz2'

Modified: branches/bmesh/blender/build_files/scons/tools/btools.py
===================================================================
--- branches/bmesh/blender/build_files/scons/tools/btools.py	2012-02-15 08:53:28 UTC (rev 44118)
+++ branches/bmesh/blender/build_files/scons/tools/btools.py	2012-02-15 12:08:06 UTC (rev 44119)
@@ -158,7 +158,7 @@
             'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC',
             'BUILDBOT_BRANCH',
             'WITH_BF_3DMOUSE', 'WITH_BF_STATIC3DMOUSE', 'BF_3DMOUSE', 'BF_3DMOUSE_INC', 'BF_3DMOUSE_LIB', 'BF_3DMOUSE_LIBPATH', 'BF_3DMOUSE_LIB_STATIC',
-            'WITH_BF_CYCLES', 'WITH_BF_CYCLES_CUDA_BINARIES' 'BF_CYCLES_CUDA_NVCC', 'BF_CYCLES_CUDA_NVCC', 'WITH_BF_CYCLES_CUDA_THREADED_COMPILE',
+            'WITH_BF_CYCLES', 'WITH_BF_CYCLES_CUDA_BINARIES', 'BF_CYCLES_CUDA_NVCC', 'BF_CYCLES_CUDA_NVCC', 'WITH_BF_CYCLES_CUDA_THREADED_COMPILE',
             'WITH_BF_OIIO', 'WITH_BF_STATICOIIO', 'BF_OIIO', 'BF_OIIO_INC', 'BF_OIIO_LIB', 'BF_OIIO_LIB_STATIC', 'BF_OIIO_LIBPATH',
             'WITH_BF_BOOST', 'WITH_BF_STATICBOOST', 'BF_BOOST', 'BF_BOOST_INC', 'BF_BOOST_LIB', 'BF_BOOST_LIB_STATIC', 'BF_BOOST_LIBPATH',
             'WITH_BF_LIBMV', 'WITH_BF_CARVE'

Modified: branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerReader.cpp
===================================================================
--- branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerReader.cpp	2012-02-15 08:53:28 UTC (rev 44118)
+++ branches/bmesh/blender/intern/audaspace/intern/AUD_SequencerReader.cpp	2012-02-15 12:08:06 UTC (rev 44119)
@@ -176,6 +176,8 @@
 		}
 
 		m_factory->m_volume.read(frame, &volume);
+		if(m_factory->m_muted)
+			volume = 0.0f;
 		m_device.setVolume(volume);
 
 		m_factory->m_orientation.read(frame, q.get());

Modified: branches/bmesh/blender/intern/boolop/CMakeLists.txt
===================================================================
--- branches/bmesh/blender/intern/boolop/CMakeLists.txt	2012-02-15 08:53:28 UTC (rev 44118)
+++ branches/bmesh/blender/intern/boolop/CMakeLists.txt	2012-02-15 12:08:06 UTC (rev 44119)
@@ -23,6 +23,8 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
+remove_strict_flags()
+
 set(INC	
 	.
 	extern

Modified: branches/bmesh/blender/intern/boolop/intern/BOP_CarveInterface.cpp
===================================================================
--- branches/bmesh/blender/intern/boolop/intern/BOP_CarveInterface.cpp	2012-02-15 08:53:28 UTC (rev 44118)
+++ branches/bmesh/blender/intern/boolop/intern/BOP_CarveInterface.cpp	2012-02-15 12:08:06 UTC (rev 44119)
@@ -46,24 +46,31 @@
 #define MAX(x,y) ((x)>(y)?(x):(y))
 #define MIN(x,y) ((x)<(y)?(x):(y))
 
-static int isFacePlanar(CSG_IFace &face, std::vector<carve::geom3d::Vector> &vertices)
+static bool isQuadPlanar(carve::geom3d::Vector &v1, carve::geom3d::Vector &v2,
+                         carve::geom3d::Vector &v3, carve::geom3d::Vector &v4)
 {
-	carve::geom3d::Vector v1, v2, v3, cross;
+	carve::geom3d::Vector vec1, vec2, vec3, cross;
 
-	if (face.vertex_number == 4) {
-		v1 = vertices[face.vertex_index[1]] - vertices[face.vertex_index[0]];
-		v2 = vertices[face.vertex_index[3]] - vertices[face.vertex_index[0]];
-		v3 = vertices[face.vertex_index[2]] - vertices[face.vertex_index[0]];
+	vec1 = v2 - v1;
+	vec2 = v4 - v1;
+	vec3 = v3 - v1;
 
-		cross = carve::geom::cross(v1, v2);
+	cross = carve::geom::cross(vec1, vec2);
 
-		float production = carve::geom::dot(cross, v3);
-		float magnitude = 1e-6 * cross.length();
+	float production = carve::geom::dot(cross, vec3);
+	float magnitude = 1e-6 * cross.length();
 
-		return fabs(production) < magnitude;
+	return fabs(production) < magnitude;
+}
+
+static bool isFacePlanar(CSG_IFace &face, std::vector<carve::geom3d::Vector> &vertices)
+{
+	if (face.vertex_number == 4) {
+		return isQuadPlanar(vertices[face.vertex_index[0]], vertices[face.vertex_index[1]],
+		                    vertices[face.vertex_index[2]], vertices[face.vertex_index[3]]);
 	}
 
-	return 1;
+	return true;
 }
 
 static void Carve_copyMeshes(std::vector<MeshSet<3>::mesh_t*> &meshes, std::vector<MeshSet<3>::mesh_t*> &new_meshes)
@@ -200,30 +207,35 @@
 
 	while(it != meshes.end()) {
 		MeshSet<3>::mesh_t *mesh = *it;
-		bool isIntersect = false;
+		bool isAdded = false;
 
 		RTreeNode<3, Face<3> *> *rtree = RTreeNode<3, Face<3> *>::construct_STR(mesh->faces.begin(), mesh->faces.end(), 4, 4);
 
-		std::vector<MeshSet<3>::mesh_t*>::iterator operand_it = operandMeshes.begin();
-		std::vector<RTreeNode<3, Face<3> *> *>::iterator tree_it = meshRTree.begin();
-		for(; operand_it!=operandMeshes.end(); operand_it++, tree_it++) {
-			RTreeNode<3, Face<3> *> *operandRTree = *tree_it;
+		if (rtree->bbox.intersects(otherAABB)) {
+			bool isIntersect = false;
 
-			if(operandRTree->bbox.intersects(otherAABB)) {
+			std::vector<MeshSet<3>::mesh_t*>::iterator operand_it = operandMeshes.begin();
+			std::vector<RTreeNode<3, Face<3> *> *>::iterator tree_it = meshRTree.begin();
+			for(; operand_it!=operandMeshes.end(); operand_it++, tree_it++) {
+				RTreeNode<3, Face<3> *> *operandRTree = *tree_it;
+
 				if(Carve_checkMeshSetInterseciton(rtree, operandRTree)) {
 					isIntersect = true;
 					break;
 				}
 			}
-		}
 
-		if(!isIntersect) {
-			operandMeshes.push_back(mesh);
-			meshRTree.push_back(rtree);
+			if(!isIntersect) {
+				operandMeshes.push_back(mesh);
+				meshRTree.push_back(rtree);
 
-			it = meshes.erase(it);
+				it = meshes.erase(it);
+				isAdded = true;
+			}
 		}
-		else {
+
+		if (!isAdded) {
+			delete rtree;
 			it++;
 		}
 	}
@@ -239,6 +251,9 @@
 	std::vector<MeshSet<3>::mesh_t*> operandMeshes;
 	Carve_getIntersectedOperandMeshes(meshes, otherAABB, operandMeshes);
 
+	if (operandMeshes.size() == 0)
+		return NULL;
+
 	return Carve_meshSetFromMeshes(operandMeshes);
 }
 
@@ -259,9 +274,19 @@
 
 	MeshSet<3> *left = Carve_getIntersectedOperand(orig_meshes, otherAABB);
 
+	if (!left) {
+		/* no maniforlds which intersects another object at all */
+		return poly;
+	}
+
 	while(orig_meshes.size()) {
 		MeshSet<3> *right = Carve_getIntersectedOperand(orig_meshes, otherAABB);
 
+		if (!right) {
+			/* no more intersecting manifolds which intersects other object */
+			break;
+		}
+
 		try {
 			if(left->meshes.size()==0) {
 				delete left;
@@ -295,6 +320,15 @@
 		}
 	}
 
+	/* append all meshes which doesn't have intersection with another operand as-is */
+	if (orig_meshes.size()) {
+		MeshSet<3> *result = Carve_meshSetFromTwoMeshes(left->meshes, orig_meshes);
+
+		delete left;
+
+		return result;
+	}
+
 	return left;
 }
 
@@ -396,8 +430,63 @@
 	return poly;
 }
 
+static bool checkValidQuad(std::vector<MeshSet<3>::vertex_t> &vertex_storage, uint quad[4])
+{
+	carve::geom3d::Vector &v1 = vertex_storage[quad[0]].v;
+	carve::geom3d::Vector &v2 = vertex_storage[quad[1]].v;
+	carve::geom3d::Vector &v3 = vertex_storage[quad[2]].v;
+	carve::geom3d::Vector &v4 = vertex_storage[quad[3]].v;
+
+#if 0
+	/* disabled for now to prevent initially non-planar be triangulated
+	 * in theory this might cause some artifacts if intersections happens by non-planar
+	 * non-concave quad, but in practice it's acceptable */
+	if (!isQuadPlanar(v1, v2, v3, v4)) {
+		/* non-planar faces better not be merged because of possible differences in triangulation
+		 * of non-planar faces in opengl and renderer */
+		return false;
+	}
+#endif
+

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list