[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