[Bf-blender-cvs] [e93e2ab] particles_refactor: Particle display type for duplis.

Lukas Tönne noreply at git.blender.org
Tue Apr 22 12:06:56 CEST 2014


Commit: e93e2abae60661486b321499841f27a59138bc6b
Author: Lukas Tönne
Date:   Fri Jan 3 11:25:46 2014 +0100
https://developer.blender.org/rBe93e2abae60661486b321499841f27a59138bc6b

Particle display type for duplis.

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

M	source/blender/blenkernel/BKE_nparticle.h
M	source/blender/blenkernel/intern/nparticle.c
M	source/blender/makesdna/DNA_nparticle_types.h
M	source/blender/makesdna/DNA_object_types.h

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

diff --git a/source/blender/blenkernel/BKE_nparticle.h b/source/blender/blenkernel/BKE_nparticle.h
index dabe947..9050681 100644
--- a/source/blender/blenkernel/BKE_nparticle.h
+++ b/source/blender/blenkernel/BKE_nparticle.h
@@ -115,6 +115,7 @@ BLI_INLINE NParticleID BKE_nparticle_iter_get_id(struct NParticleIterator *it)
 
 
 struct NParticleDisplay *BKE_nparticle_display_particle(void);
+struct NParticleDisplay *BKE_nparticle_display_dupli(void);
 struct NParticleDisplay *BKE_nparticle_display_copy(struct NParticleDisplay *display);
 void BKE_nparticle_display_free(struct NParticleDisplay *display);
 
diff --git a/source/blender/blenkernel/intern/nparticle.c b/source/blender/blenkernel/intern/nparticle.c
index e300e9c..5a92dca 100644
--- a/source/blender/blenkernel/intern/nparticle.c
+++ b/source/blender/blenkernel/intern/nparticle.c
@@ -605,6 +605,14 @@ NParticleDisplay *BKE_nparticle_display_particle(void)
 	return display;
 }
 
+NParticleDisplay *BKE_nparticle_display_dupli(void)
+{
+	NParticleDisplay *display = MEM_callocN(sizeof(NParticleDisplay), "particle display");
+	display->type = PAR_DISPLAY_DUPLI;
+	BLI_strncpy(display->attribute, "position", sizeof(display->attribute));
+	return display;
+}
+
 NParticleDisplay *BKE_nparticle_display_copy(NParticleDisplay *display)
 {
 	NParticleDisplay *ndisplay = MEM_dupallocN(display);
diff --git a/source/blender/makesdna/DNA_nparticle_types.h b/source/blender/makesdna/DNA_nparticle_types.h
index c935d79..cd7d8fd 100644
--- a/source/blender/makesdna/DNA_nparticle_types.h
+++ b/source/blender/makesdna/DNA_nparticle_types.h
@@ -98,17 +98,24 @@ typedef struct NParticleSystem {
 	struct NParticleState *state;
 } NParticleSystem;
 
-
 typedef struct NParticleDisplay {
 	struct NParticleDisplay *next, *prev;
 	
 	int type;
 	int pad;
 	char attribute[64];
+	
+	/* dupli settings */
+	ListBase dupli_objects;
 } NParticleDisplay;
 
+typedef struct NParticleDisplayDupli {
+	struct Object *ob;
+} NParticleDisplayDupli;
+
 typedef enum eParticleDisplayType {
-	PAR_DISPLAY_PARTICLE		= 1
+	PAR_DISPLAY_PARTICLE		= 1,
+	PAR_DISPLAY_DUPLI			= 2
 } eParticleDisplayType;
 
 #endif /* DNA_NPARTICLE_TYPES_H */
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index 1f18b05..ab4eb5a 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -406,8 +406,9 @@ enum {
 	OB_RENDER_DUPLI     = 1 << 12,
 	OB_NO_CONSTRAINTS   = 1 << 13,  /* runtime constraints disable */
 	OB_NO_PSYS_UPDATE   = 1 << 14,  /* hack to work around particle issue */
+	OB_DUPLI_NPARTICLE  = 1 << 15,  /* hack to work around particle issue */
 
-	OB_DUPLI            = OB_DUPLIFRAMES | OB_DUPLIVERTS | OB_DUPLIGROUP | OB_DUPLIFACES | OB_DUPLIPARTS,
+	OB_DUPLI            = OB_DUPLIFRAMES | OB_DUPLIVERTS | OB_DUPLIGROUP | OB_DUPLIFACES | OB_DUPLIPARTS | OB_DUPLI_NPARTICLE,
 };
 
 /* (short) ipoflag */




More information about the Bf-blender-cvs mailing list