[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22012] branches/blender2.5/blender: 2. 5 MetaBalls

Jiri Hnidek jiri.hnidek at tul.cz
Wed Jul 29 14:35:09 CEST 2009


Revision: 22012
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22012
Author:   jiri
Date:     2009-07-29 14:35:09 +0200 (Wed, 29 Jul 2009)

Log Message:
-----------
2.5 MetaBalls

 - It is possible to work with MetaBalls in edit mode now
 - Added basic UI to the button window (feel free to change it :-))
 - Header menus should work
 - Undo & redo should work
 - Removed global variable editelems and lastelem (moved it to the MetaBall struct)
 - All tools from old editmball.c was converted to the operators
 - Added lastelem to the RNA
 - Experimental: mb->editelems is only pointer at mb->elems or NULL (depends on Mode). ListBase of MetaElems is not duplicated in edit mode.

Tested with scons at Linux and mac OS X

TODO:
 - Recalc data after Undo or Redo
 - Solve issue with basic MetaBall and Python UI script (only base MetaBall object influence Wiresize and Threshold)
 - Fix orientation of manipulator in "Normal mode" 

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/Makefile
    branches/blender2.5/blender/source/blender/editors/SConscript
    branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/object/object_intern.h
    branches/blender2.5/blender/source/blender/editors/object/object_ops.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_manipulator.c
    branches/blender2.5/blender/source/blender/editors/util/undo.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_meta_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_meta.c

Added Paths:
-----------
    branches/blender2.5/blender/release/ui/buttons_data_metaball.py
    branches/blender2.5/blender/source/blender/editors/include/ED_mball.h
    branches/blender2.5/blender/source/blender/editors/metaball/
    branches/blender2.5/blender/source/blender/editors/metaball/Makefile
    branches/blender2.5/blender/source/blender/editors/metaball/SConscript
    branches/blender2.5/blender/source/blender/editors/metaball/editmball.c
    branches/blender2.5/blender/source/blender/editors/metaball/mball_intern.h
    branches/blender2.5/blender/source/blender/editors/metaball/mball_ops.c

Added: branches/blender2.5/blender/release/ui/buttons_data_metaball.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_data_metaball.py	                        (rev 0)
+++ branches/blender2.5/blender/release/ui/buttons_data_metaball.py	2009-07-29 12:35:09 UTC (rev 22012)
@@ -0,0 +1,71 @@
+import bpy
+
+class DataButtonsPanel(bpy.types.Panel):
+	__space_type__ = "BUTTONS_WINDOW"
+	__region_type__ = "WINDOW"
+	__context__ = "data"
+	
+	def poll(self, context):
+		return (context.meta_ball != None)
+
+class DATA_PT_context_metaball(DataButtonsPanel):
+	__show_header__ = False
+	
+	def draw(self, context):
+		layout = self.layout
+		
+		ob = context.object
+		mball = context.meta_ball
+		space = context.space_data
+
+		split = layout.split(percentage=0.65)
+
+		if ob:
+			split.template_ID(ob, "data")
+			split.itemS()
+		elif mball:
+			split.template_ID(space, "pin_id")
+			split.itemS()
+
+class DATA_PT_metaball(DataButtonsPanel):
+	__label__ = "Metaball"
+
+	def draw(self, context):
+		layout = self.layout
+		
+		mball = context.meta_ball
+		
+		split = layout.split()
+		sub = split.column()
+		
+		sub.itemL(text="Settings:")
+		sub.itemR(mball, "threshold", text="Threshold")
+		sub.itemR(mball, "wire_size", text="View Resolution")
+		sub.itemR(mball, "render_size", text="Render Resolution")
+		
+		sub.itemL(text="Update:")		
+		sub.itemR(mball, "flag", expand=True)
+
+class DATA_PT_metaball_metaelem(DataButtonsPanel):
+	__label__ = "MetaElem"
+
+	def draw(self, context):
+		layout = self.layout
+		
+		metaelem = context.meta_ball.last_selected_element
+		
+		if(metaelem != None):
+			split = layout.split()
+			sub = split.column()
+			
+			sub.itemL(text="Settings:")
+			sub.itemR(metaelem, "stiffness", text="Stiffness")
+			sub.itemR(metaelem, "size", text="Size")
+			sub.itemL(text="Type:")
+			sub.itemR(metaelem, "type", expand=True)
+			sub.itemR(metaelem, "negative", text="Negative")
+
+		
+bpy.types.register(DATA_PT_context_metaball)
+bpy.types.register(DATA_PT_metaball)
+bpy.types.register(DATA_PT_metaball_metaelem)
\ No newline at end of file

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-07-29 11:59:21 UTC (rev 22011)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-07-29 12:35:09 UTC (rev 22012)
@@ -2508,6 +2508,8 @@
 	mb->disp.first= mb->disp.last= NULL;
 	mb->editelems= NULL;
 	mb->bb= NULL;
+/*	mb->edit_elems.first= mb->edit_elems.last= NULL;*/
+	mb->lastelem= NULL;
 }
 
 /* ************ READ WORLD ***************** */

Modified: branches/blender2.5/blender/source/blender/editors/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/Makefile	2009-07-29 11:59:21 UTC (rev 22011)
+++ branches/blender2.5/blender/source/blender/editors/Makefile	2009-07-29 12:35:09 UTC (rev 22012)
@@ -40,6 +40,7 @@
   transform \
   screen \
   curve \
+  metaball \
   gpencil \
   physics \
   preview \

Modified: branches/blender2.5/blender/source/blender/editors/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/SConscript	2009-07-29 11:59:21 UTC (rev 22011)
+++ branches/blender2.5/blender/source/blender/editors/SConscript	2009-07-29 12:35:09 UTC (rev 22012)
@@ -9,6 +9,7 @@
 			'animation/SConscript',
 			'armature/SConscript',
 			'mesh/SConscript',
+			'metaball/SConscript',
 			'object/SConscript',
 			'curve/SConscript',
 			'gpencil/SConscript',

Added: branches/blender2.5/blender/source/blender/editors/include/ED_mball.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_mball.h	                        (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_mball.h	2009-07-29 12:35:09 UTC (rev 22012)
@@ -0,0 +1,39 @@
+/**
+ * $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) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ * 
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+void ED_operatortypes_metaball(void);
+void ED_keymap_metaball(struct wmWindowManager *wm);
+
+struct MetaElem *add_metaball_primitive(struct bContext *C, int type, int newname);
+
+void mouse_mball(struct bContext *C, short mval[2], int extend);
+
+void free_editMball(struct Object *obedit);
+void make_editMball(struct Object *obedit);
+void load_editMball(struct Object *obedit);
+

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h	2009-07-29 11:59:21 UTC (rev 22011)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h	2009-07-29 12:35:09 UTC (rev 22012)
@@ -134,6 +134,7 @@
 int		ED_operator_editsurfcurve(struct bContext *C);
 int		ED_operator_editfont(struct bContext *C);
 int		ED_operator_editlattice(struct bContext *C);
+int		ED_operator_editmball(struct bContext *C);
 int		ED_operator_uvedit(struct bContext *C);
 int		ED_operator_uvmap(struct bContext *C);
 int		ED_operator_posemode(struct bContext *C);

Added: branches/blender2.5/blender/source/blender/editors/metaball/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/metaball/Makefile	                        (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/metaball/Makefile	2009-07-29 12:35:09 UTC (rev 22012)
@@ -0,0 +1,56 @@
+#
+# $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) 2007 Blender Foundation
+# All rights reserved.
+#
+# The Original Code is: all of this file.
+#
+# Contributor(s): none yet.
+#
+# ***** END GPL LICENSE BLOCK *****
+#
+# Makes module object directory and bounces make to subdirectories.
+
+LIBNAME = ed_metaball
+DIR = $(OCGDIR)/blender/$(LIBNAME)
+
+include nan_compile.mk
+
+CFLAGS += $(LEVEL_1_C_WARNINGS)
+
+CPPFLAGS += -I$(NAN_GLEW)/include
+CPPFLAGS += -I$(OPENGL_HEADERS)
+
+CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
+CPPFLAGS += -I$(NAN_ELBEEM)/include
+
+CPPFLAGS += -I../../windowmanager
+CPPFLAGS += -I../../blenkernel
+CPPFLAGS += -I../../blenloader
+CPPFLAGS += -I../../blenlib
+CPPFLAGS += -I../../makesdna
+CPPFLAGS += -I../../makesrna
+CPPFLAGS += -I../../imbuf
+CPPFLAGS += -I../../gpu
+CPPFLAGS += -I../../render/extern/include
+
+# own include 
+
+CPPFLAGS += -I../include 

Added: branches/blender2.5/blender/source/blender/editors/metaball/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/metaball/SConscript	                        (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/metaball/SConscript	2009-07-29 12:35:09 UTC (rev 22012)
@@ -0,0 +1,11 @@
+#!/usr/bin/python
+Import ('env')
+
+sources = env.Glob('*.c')
+
+incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
+incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
+incs += ' #/intern/guardedalloc ../../gpu'
+incs += ' ../../makesrna ../../render/extern/include  #/intern/elbeem/extern'
+
+env.BlenderLib ( 'bf_editors_metaball', sources, Split(incs), [], libtype=['core'], priority=[45] )

Added: branches/blender2.5/blender/source/blender/editors/metaball/editmball.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/metaball/editmball.c	                        (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/metaball/editmball.c	2009-07-29 12:35:09 UTC (rev 22012)
@@ -0,0 +1,676 @@
+/**
+ * $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) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ 
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <math.h>

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list