[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25954] branches/bmesh/blender/source/ blender/makesrna/intern/rna_animviz.c: yet another file

Joseph Eagar joeedh at gmail.com
Wed Jan 13 09:24:03 CET 2010


Revision: 25954
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25954
Author:   joeedh
Date:     2010-01-13 09:24:03 +0100 (Wed, 13 Jan 2010)

Log Message:
-----------
yet another file

Added Paths:
-----------
    branches/bmesh/blender/source/blender/makesrna/intern/rna_animviz.c

Added: branches/bmesh/blender/source/blender/makesrna/intern/rna_animviz.c
===================================================================
--- branches/bmesh/blender/source/blender/makesrna/intern/rna_animviz.c	                        (rev 0)
+++ branches/bmesh/blender/source/blender/makesrna/intern/rna_animviz.c	2010-01-13 08:24:03 UTC (rev 25954)
@@ -0,0 +1,350 @@
+/**
+ * $Id: rna_animviz.c 25824 2010-01-08 02:54:33Z gsrb3d $
+ *
+ * ***** 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.
+ *
+ * Contributor(s): Blender Foundation (2010), Joshua Leung
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <stdlib.h>
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+#include "RNA_types.h"
+#include "RNA_enum_types.h"
+
+#include "rna_internal.h"
+
+#include "DNA_anim_types.h"
+#include "DNA_action_types.h"
+#include "DNA_scene_types.h"
+
+#include "MEM_guardedalloc.h"
+
+#include "WM_types.h"
+
+#ifdef RNA_RUNTIME
+
+static PointerRNA rna_AnimViz_onion_skinning_get(PointerRNA *ptr)
+{
+	return rna_pointer_inherit_refine(ptr, &RNA_AnimVizOnionSkinning, ptr->data);
+}
+
+static PointerRNA rna_AnimViz_motion_paths_get(PointerRNA *ptr)
+{
+	return rna_pointer_inherit_refine(ptr, &RNA_AnimVizMotionPaths, ptr->data);
+}
+
+static void rna_AnimViz_ghost_start_frame_set(PointerRNA *ptr, int value)
+{
+	bAnimVizSettings *data= (bAnimVizSettings*)ptr->data;
+	
+	CLAMP(value, 1, data->ghost_ef);
+	data->ghost_sf= value;
+}
+
+static void rna_AnimViz_ghost_end_frame_set(PointerRNA *ptr, int value)
+{
+	bAnimVizSettings *data= (bAnimVizSettings*)ptr->data;
+	
+	CLAMP(value, data->ghost_sf, (int)(MAXFRAMEF/2));
+	data->ghost_ef= value;
+}
+
+static void rna_AnimViz_path_start_frame_set(PointerRNA *ptr, int value)
+{
+	bAnimVizSettings *data= (bAnimVizSettings*)ptr->data;
+	
+	CLAMP(value, 1, data->path_ef);
+	data->path_sf= value;
+}
+
+static void rna_AnimViz_path_end_frame_set(PointerRNA *ptr, int value)
+{
+	bAnimVizSettings *data= (bAnimVizSettings*)ptr->data;
+	
+	CLAMP(value, data->path_sf, (int)(MAXFRAMEF/2));
+	data->path_ef= value;
+}
+
+#else
+
+void rna_def_motionpath_common(StructRNA *srna)
+{
+	PropertyRNA *prop;
+	
+	prop= RNA_def_property(srna, "motion_path", PROP_POINTER, PROP_NONE);
+	RNA_def_property_pointer_sdna(prop, NULL, "mpath");
+	RNA_def_property_ui_text(prop, "Motion Path", "Motion Path for this element.");	
+}
+
+static void rna_def_animviz_motionpath_vert(BlenderRNA *brna)
+{
+	StructRNA *srna;
+	PropertyRNA *prop;
+	
+	srna= RNA_def_struct(brna, "MotionPathVert", NULL);
+	RNA_def_struct_sdna(srna, "bMotionPathVert");
+	RNA_def_struct_ui_text(srna, "Motion Path Cache Point", "Cached location on path.");
+	
+	prop= RNA_def_property(srna, "co", PROP_FLOAT, PROP_XYZ);
+	RNA_def_property_array(prop, 3);
+	RNA_def_property_ui_text(prop, "Coordinates", "");
+	
+	prop= RNA_def_property(srna, "selected", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", MOTIONPATH_VERT_SEL);
+	RNA_def_property_ui_text(prop, "Selected", "Path point is selected for editing.");
+}
+
+static void rna_def_animviz_motion_path(BlenderRNA *brna)
+{
+	StructRNA *srna;
+	PropertyRNA *prop;
+	
+	srna= RNA_def_struct(brna, "MotionPath", NULL);
+	RNA_def_struct_sdna(srna, "bMotionPath");
+	RNA_def_struct_ui_text(srna, "Motion Path", "Cache of the worldspace positions of an element over a frame range.");
+	
+	/* Collections */
+	prop= RNA_def_property(srna, "points", PROP_COLLECTION, PROP_NONE);
+	RNA_def_property_collection_sdna(prop, NULL, "points", "length");
+	RNA_def_property_struct_type(prop, "MotionPathVert");
+	RNA_def_property_ui_text(prop, "Motion Path Points", "Cached positions per frame");
+	
+	/* Playback Ranges */
+	prop= RNA_def_property(srna, "start_frame", PROP_INT, PROP_TIME);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+	RNA_def_property_ui_text(prop, "Start Frame", "Starting frame of the stored range.");
+	
+	prop= RNA_def_property(srna, "end_frame", PROP_INT, PROP_TIME);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+	RNA_def_property_ui_text(prop, "End Frame", "End frame of the stored range.");
+	
+	prop= RNA_def_property(srna, "length", PROP_INT, PROP_TIME);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+	RNA_def_property_ui_text(prop, "Length", "Number of frames cached.");
+	
+	/* Settings */
+	prop= RNA_def_property(srna, "use_bone_head", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", MOTIONPATH_FLAG_BHEAD);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE); // xxx
+	RNA_def_property_ui_text(prop, "Use Bone Heads", "For PoseBone paths, use the bone head location when calculating this path.");
+	
+	prop= RNA_def_property(srna, "editing", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", MOTIONPATH_FLAG_EDIT);
+	RNA_def_property_ui_text(prop, "Edit Path", "Path is being edited.");
+}
+
+/* --- */
+
+static void rna_def_animviz_ghosts(BlenderRNA *brna)
+{
+	StructRNA *srna;
+	PropertyRNA *prop;
+	
+	static const EnumPropertyItem prop_type_items[] = {
+		{GHOST_TYPE_NONE, "NONE", 0, "No Ghosts", "Don not show any ghosts"},
+		{GHOST_TYPE_ACFRA, "CURRENT_FRAME", 0, "Around Current Frame", "Show ghosts from around the current frame"},
+		{GHOST_TYPE_RANGE, "RANGE", 0, "In Range", "Show ghosts for the specified frame range"},
+		{GHOST_TYPE_KEYS, "KEYS", 0, "On Keyframes", "Show ghosts on keyframes"},
+		{0, NULL, 0, NULL, NULL}};
+	
+	
+	srna= RNA_def_struct(brna, "AnimVizOnionSkinning", NULL);
+	RNA_def_struct_sdna(srna, "bAnimVizSettings");
+	RNA_def_struct_nested(brna, srna, "AnimViz");
+	RNA_def_struct_ui_text(srna, "Onion Skinning Settings", "Onion Skinning settings for animation visualisation.");
+
+	/* Enums */
+	prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "ghost_type");
+	RNA_def_property_enum_items(prop, prop_type_items);
+	RNA_def_property_ui_text(prop, "Type", "Method used for determining what ghosts get drawn.");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); /* XXX since this is only for 3d-view drawing */
+	
+	/* Settings */
+	prop= RNA_def_property(srna, "only_selected", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "ghost_flag", GHOST_FLAG_ONLYSEL);
+	RNA_def_property_ui_text(prop, "On Selected Bones Only", "For Pose-Mode drawing, only draw ghosts for selected bones.");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); /* XXX since this is only for 3d-view drawing */
+	
+	prop= RNA_def_property(srna, "frame_step", PROP_INT, PROP_NONE);
+	RNA_def_property_int_sdna(prop, NULL, "ghost_step");
+	RNA_def_property_range(prop, 1, 20);
+	RNA_def_property_ui_text(prop, "Frame Step", "Number of frames between ghosts shown (not for 'On Keyframes' Onion-skining method).");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); /* XXX since this is only for 3d-view drawing */
+	
+	/* Playback Ranges */
+	prop= RNA_def_property(srna, "start_frame", PROP_INT, PROP_TIME);
+	RNA_def_property_int_sdna(prop, NULL, "ghost_sf");
+	RNA_def_property_int_funcs(prop, NULL, "rna_AnimViz_ghost_start_frame_set", NULL);
+	RNA_def_property_ui_text(prop, "Start Frame", "Starting frame of range of Ghosts to display (not for 'Around Current Frame' Onion-skinning method).");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); /* XXX since this is only for 3d-view drawing */
+	
+	prop= RNA_def_property(srna, "end_frame", PROP_INT, PROP_TIME);
+	RNA_def_property_int_sdna(prop, NULL, "ghost_ef");
+	RNA_def_property_int_funcs(prop, NULL, "rna_AnimViz_ghost_end_frame_set", NULL);
+	RNA_def_property_ui_text(prop, "End Frame", "End frame of range of Ghosts to display (not for 'Around Current Frame' Onion-skinning method).");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); /* XXX since this is only for 3d-view drawing */
+	
+	/* Around Current Ranges */
+	prop= RNA_def_property(srna, "before_current", PROP_INT, PROP_TIME);
+	RNA_def_property_int_sdna(prop, NULL, "ghost_bc");
+	RNA_def_property_range(prop, 0, 30);
+	RNA_def_property_ui_text(prop, "Before Current", "Number of frames to show before the current frame (only for 'Around Current Frame' Onion-skinning method).");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); /* XXX since this is only for 3d-view drawing */
+	
+	prop= RNA_def_property(srna, "after_current", PROP_INT, PROP_TIME);
+	RNA_def_property_int_sdna(prop, NULL, "ghost_ac");
+	RNA_def_property_range(prop, 0, 30);
+	RNA_def_property_ui_text(prop, "After Current", "Number of frames to show after the current frame (only for 'Around Current Frame' Onion-skinning method).");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL); /* XXX since this is only for 3d-view drawing */
+}
+
+static void rna_def_animviz_paths(BlenderRNA *brna)
+{
+	StructRNA *srna;
+	PropertyRNA *prop;
+	
+	static const EnumPropertyItem prop_type_items[]= {
+		{MOTIONPATH_TYPE_RANGE, "RANGE", 0, "In Range", "Display Paths of poses within specified range."},
+		{MOTIONPATH_TYPE_ACFRA, "CURRENT_FRAME", 0, "Around Frame", "Display Paths of poses within a fixed number of frames around the current frame."},
+		{0, NULL, 0, NULL, NULL}};
+	static const EnumPropertyItem prop_location_items[]= {
+		{MOTIONPATH_BAKE_HEADS, "HEADS", 0, "Heads", "Calculate bone paths from heads"},
+		{0, "TAILS", 0, "Tails", "Calculate bone paths from tails"},
+		{0, NULL, 0, NULL, NULL}};
+	
+	srna= RNA_def_struct(brna, "AnimVizMotionPaths", NULL);
+	RNA_def_struct_sdna(srna, "bAnimVizSettings");
+	RNA_def_struct_nested(brna, srna, "AnimViz");
+	RNA_def_struct_ui_text(srna, "Motion Path Settings", "Motion Path settings for animation visualisation.");
+	

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list