[Bf-blender-cvs] [3fbbef51c8b] hair_guides: "add" operator for groom objects.

Lukas Tönne noreply at git.blender.org
Sun Dec 10 13:46:29 CET 2017


Commit: 3fbbef51c8b22d83e524639700fcda02941bf166
Author: Lukas Tönne
Date:   Sun Dec 10 12:46:11 2017 +0000
Branches: hair_guides
https://developer.blender.org/rB3fbbef51c8b22d83e524639700fcda02941bf166

"add" operator for groom objects.

===================================================================

M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	source/blender/editors/object/object_add.c
M	source/blender/editors/object/object_intern.h
M	source/blender/editors/object/object_ops.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index a46358b2e38..d6f7edc06c2 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -195,6 +195,7 @@ class VIEW3D_PT_tools_add_object(View3DPanel, Panel):
         layout.operator("object.empty_add", text="Empty", icon='OUTLINER_OB_EMPTY').type = 'PLAIN_AXES'
         layout.operator("object.speaker_add", text="Speaker", icon='OUTLINER_OB_SPEAKER')
         layout.operator("object.camera_add", text="Camera", icon='OUTLINER_OB_CAMERA')
+        layout.operator("object.groom_add", text="Groom", icon='NONE')
 
     def draw(self, context):
         layout = self.layout
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 98ee42f127b..3eb26fa52b8 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -36,6 +36,7 @@
 #include "DNA_anim_types.h"
 #include "DNA_camera_types.h"
 #include "DNA_curve_types.h"
+#include "DNA_groom_types.h"
 #include "DNA_group_types.h"
 #include "DNA_lamp_types.h"
 #include "DNA_key_types.h"
@@ -72,6 +73,7 @@
 #include "BKE_displist.h"
 #include "BKE_effect.h"
 #include "BKE_font.h"
+#include "BKE_groom.h"
 #include "BKE_group.h"
 #include "BKE_lamp.h"
 #include "BKE_lattice.h"
@@ -776,6 +778,41 @@ void OBJECT_OT_metaball_add(wmOperatorType *ot)
 	ED_object_add_generic_props(ot, true);
 }
 
+/********************* Add Groom Operator ********************/
+
+static int object_groom_add_exec(bContext *C, wmOperator *op)
+{
+	bool enter_editmode;
+	unsigned int layer;
+	float loc[3], rot[3];
+	if (!ED_object_add_generic_get_opts(C, op, 'Z', loc, rot, &enter_editmode, &layer, NULL))
+		return OPERATOR_CANCELLED;
+
+	Object *ob = ED_object_add_type(C, OB_GROOM, NULL, loc, rot, false, layer);
+
+	Groom *groom = ob->data;
+	UNUSED_VARS(groom);
+
+	return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_groom_add(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name = "Add Groom";
+	ot->description = "Add a groom object to the scene";
+	ot->idname = "OBJECT_OT_groom_add";
+
+	/* api callbacks */
+	ot->exec = object_groom_add_exec;
+	ot->poll = ED_operator_objectmode;
+
+	/* flags */
+	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+	ED_object_add_generic_props(ot, true);
+}
+
 /********************* Add Text Operator ********************/
 
 static int object_add_text_exec(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h
index 3fde40af033..54c737801e5 100644
--- a/source/blender/editors/object/object_intern.h
+++ b/source/blender/editors/object/object_intern.h
@@ -120,6 +120,7 @@ void OBJECT_OT_lamp_add(struct wmOperatorType *ot);
 void OBJECT_OT_effector_add(struct wmOperatorType *ot);
 void OBJECT_OT_camera_add(struct wmOperatorType *ot);
 void OBJECT_OT_speaker_add(struct wmOperatorType *ot);
+void OBJECT_OT_groom_add(struct wmOperatorType *ot);
 void OBJECT_OT_group_instance_add(struct wmOperatorType *ot);
 
 void OBJECT_OT_duplicates_make_real(struct wmOperatorType *ot);
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index 1e68b67555b..9177725606d 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -114,6 +114,7 @@ void ED_operatortypes_object(void)
 	WM_operatortype_append(OBJECT_OT_lamp_add);
 	WM_operatortype_append(OBJECT_OT_camera_add);
 	WM_operatortype_append(OBJECT_OT_speaker_add);
+	WM_operatortype_append(OBJECT_OT_groom_add);
 	WM_operatortype_append(OBJECT_OT_add);
 	WM_operatortype_append(OBJECT_OT_add_named);
 	WM_operatortype_append(OBJECT_OT_effector_add);



More information about the Bf-blender-cvs mailing list