Removed particle system and particle instance modifiers.
This commit is contained in:
@@ -373,7 +373,6 @@ int modifiers_getCageIndex(struct Scene *scene, struct Object *ob,
|
||||
bool modifiers_isModifierEnabled(struct Object *ob, int modifierType);
|
||||
bool modifiers_isSoftbodyEnabled(struct Object *ob);
|
||||
bool modifiers_isClothEnabled(struct Object *ob);
|
||||
bool modifiers_isParticleEnabled(struct Object *ob);
|
||||
|
||||
struct Object *modifiers_isDeformedByArmature(struct Object *ob);
|
||||
struct Object *modifiers_isDeformedByLattice(struct Object *ob);
|
||||
|
||||
@@ -401,13 +401,6 @@ bool modifiers_isModifierEnabled(Object *ob, int modifierType)
|
||||
return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
|
||||
}
|
||||
|
||||
bool modifiers_isParticleEnabled(Object *ob)
|
||||
{
|
||||
ModifierData *md = modifiers_findByType(ob, eModifierType_ParticleSystem);
|
||||
|
||||
return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
|
||||
}
|
||||
|
||||
bool modifier_isEnabled(struct Scene *scene, ModifierData *md, int required_mode)
|
||||
{
|
||||
const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
|
||||
|
||||
@@ -4992,15 +4992,6 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
|
||||
direct_link_curvemapping(fd, hmd->curfalloff);
|
||||
}
|
||||
}
|
||||
else if (md->type == eModifierType_ParticleSystem) {
|
||||
ParticleSystemModifierData *psmd = (ParticleSystemModifierData *)md;
|
||||
|
||||
psmd->dm_final = NULL;
|
||||
psmd->dm_deformed = NULL;
|
||||
psmd->psys= newdataadr(fd, psmd->psys);
|
||||
psmd->flag &= ~eParticleSystemFlag_psys_updated;
|
||||
psmd->flag |= eParticleSystemFlag_file_loaded;
|
||||
}
|
||||
else if (md->type == eModifierType_Explode) {
|
||||
ExplodeModifierData *psmd = (ExplodeModifierData *)md;
|
||||
|
||||
|
||||
@@ -389,22 +389,6 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
|
||||
}
|
||||
}
|
||||
|
||||
if (!MAIN_VERSION_ATLEAST(main, 271, 6)) {
|
||||
Object *ob;
|
||||
for (ob = main->object.first; ob; ob = ob->id.next) {
|
||||
ModifierData *md;
|
||||
|
||||
for (md = ob->modifiers.first; md; md = md->next) {
|
||||
if (md->type == eModifierType_ParticleSystem) {
|
||||
ParticleSystemModifierData *pmd = (ParticleSystemModifierData *)md;
|
||||
if (pmd->psys && pmd->psys->clmd) {
|
||||
pmd->psys->clmd->sim_parms->vel_damping = 1.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!MAIN_VERSION_ATLEAST(main, 272, 0)) {
|
||||
if (!DNA_struct_elem_find(fd->filesdna, "RenderData", "int", "preview_start_resolution")) {
|
||||
Scene *scene;
|
||||
@@ -505,12 +489,6 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
|
||||
ClothModifierData *clmd = (ClothModifierData *)md;
|
||||
clmd->sim_parms->bending_damping = 0.5f;
|
||||
}
|
||||
else if (md->type == eModifierType_ParticleSystem) {
|
||||
ParticleSystemModifierData *pmd = (ParticleSystemModifierData *)md;
|
||||
if (pmd->psys->clmd) {
|
||||
pmd->psys->clmd->sim_parms->bending_damping = 0.5f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -792,10 +792,6 @@ static int modifier_is_simulation(ModifierData *md)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
/* Particle Tab */
|
||||
else if (md->type == eModifierType_ParticleSystem) {
|
||||
return 2;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
@@ -918,9 +914,6 @@ static uiLayout *draw_modifier(
|
||||
else if (modifier_is_simulation(md) == 1) {
|
||||
uiItemStringO(row, "", ICON_BUTS, "WM_OT_properties_context_change", "context", "PHYSICS");
|
||||
}
|
||||
else if (modifier_is_simulation(md) == 2) {
|
||||
uiItemStringO(row, "", ICON_BUTS, "WM_OT_properties_context_change", "context", "PARTICLES");
|
||||
}
|
||||
UI_block_emboss_set(block, UI_EMBOSS);
|
||||
}
|
||||
|
||||
@@ -948,7 +941,7 @@ static uiLayout *draw_modifier(
|
||||
UI_block_lock_clear(block);
|
||||
UI_block_lock_set(block, ob && ob->id.lib, ERROR_LIBDATA_MESSAGE);
|
||||
|
||||
if (!ELEM(md->type, eModifierType_Fluidsim, eModifierType_Softbody, eModifierType_ParticleSystem,
|
||||
if (!ELEM(md->type, eModifierType_Fluidsim, eModifierType_Softbody,
|
||||
eModifierType_Cloth, eModifierType_Smoke))
|
||||
{
|
||||
uiItemO(row, CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Copy"), ICON_NONE,
|
||||
|
||||
@@ -1103,10 +1103,6 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto
|
||||
UI_icon_draw(x, y, ICON_MOD_SOFT); break;
|
||||
case eModifierType_Boolean:
|
||||
UI_icon_draw(x, y, ICON_MOD_BOOLEAN); break;
|
||||
case eModifierType_ParticleSystem:
|
||||
UI_icon_draw(x, y, ICON_MOD_PARTICLES); break;
|
||||
case eModifierType_ParticleInstance:
|
||||
UI_icon_draw(x, y, ICON_MOD_PARTICLES); break;
|
||||
case eModifierType_EdgeSplit:
|
||||
UI_icon_draw(x, y, ICON_MOD_EDGESPLIT); break;
|
||||
case eModifierType_Array:
|
||||
|
||||
@@ -52,8 +52,8 @@ typedef enum ModifierType {
|
||||
eModifierType_Smooth = 16,
|
||||
eModifierType_Cast = 17,
|
||||
eModifierType_MeshDeform = 18,
|
||||
eModifierType_ParticleSystem = 19,
|
||||
eModifierType_ParticleInstance = 20,
|
||||
/*eModifierType_ParticleSystem = 19,*/ /* DEPRECATED */
|
||||
/*eModifierType_ParticleInstance = 20,*/ /* DEPRECATED */
|
||||
eModifierType_Explode = 21,
|
||||
eModifierType_Cloth = 22,
|
||||
eModifierType_Collision = 23,
|
||||
@@ -712,41 +712,6 @@ enum {
|
||||
MOD_MDEF_SURFACE = 1,
|
||||
};
|
||||
|
||||
typedef struct ParticleSystemModifierData {
|
||||
ModifierData modifier;
|
||||
|
||||
struct ParticleSystem *psys;
|
||||
struct DerivedMesh *dm_final; /* Final DM - its topology may differ from orig mesh. */
|
||||
struct DerivedMesh *dm_deformed; /* Deformed-onle DM - its topology is same as orig mesh one. */
|
||||
int totdmvert, totdmedge, totdmface;
|
||||
short flag, pad;
|
||||
} ParticleSystemModifierData;
|
||||
|
||||
typedef enum {
|
||||
eParticleSystemFlag_Pars = (1 << 0),
|
||||
eParticleSystemFlag_psys_updated = (1 << 1),
|
||||
eParticleSystemFlag_file_loaded = (1 << 2),
|
||||
} ParticleSystemModifierFlag;
|
||||
|
||||
typedef enum {
|
||||
eParticleInstanceFlag_Parents = (1 << 0),
|
||||
eParticleInstanceFlag_Children = (1 << 1),
|
||||
eParticleInstanceFlag_Path = (1 << 2),
|
||||
eParticleInstanceFlag_Unborn = (1 << 3),
|
||||
eParticleInstanceFlag_Alive = (1 << 4),
|
||||
eParticleInstanceFlag_Dead = (1 << 5),
|
||||
eParticleInstanceFlag_KeepShape = (1 << 6),
|
||||
eParticleInstanceFlag_UseSize = (1 << 7),
|
||||
} ParticleInstanceModifierFlag;
|
||||
|
||||
typedef struct ParticleInstanceModifierData {
|
||||
ModifierData modifier;
|
||||
|
||||
struct Object *ob;
|
||||
short psys, flag, axis, pad;
|
||||
float position, random_position;
|
||||
} ParticleInstanceModifierData;
|
||||
|
||||
typedef enum {
|
||||
eExplodeFlag_CalcFaces = (1 << 0),
|
||||
eExplodeFlag_PaSize = (1 << 1),
|
||||
|
||||
@@ -1565,7 +1565,7 @@ static void object_simplify_update(Object *ob)
|
||||
ob->id.tag &= ~LIB_TAG_DOIT;
|
||||
|
||||
for (md = ob->modifiers.first; md; md = md->next) {
|
||||
if (ELEM(md->type, eModifierType_Subsurf, eModifierType_Multires, eModifierType_ParticleSystem)) {
|
||||
if (ELEM(md->type, eModifierType_Subsurf, eModifierType_Multires)) {
|
||||
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,8 +78,6 @@ set(SRC
|
||||
intern/MOD_none.c
|
||||
intern/MOD_normal_edit.c
|
||||
intern/MOD_ocean.c
|
||||
intern/MOD_particleinstance.c
|
||||
intern/MOD_particlesystem.c
|
||||
intern/MOD_remesh.c
|
||||
intern/MOD_screw.c
|
||||
intern/MOD_shapekey.c
|
||||
|
||||
@@ -50,8 +50,6 @@ extern ModifierTypeInfo modifierType_UVProject;
|
||||
extern ModifierTypeInfo modifierType_Smooth;
|
||||
extern ModifierTypeInfo modifierType_Cast;
|
||||
extern ModifierTypeInfo modifierType_MeshDeform;
|
||||
extern ModifierTypeInfo modifierType_ParticleSystem;
|
||||
extern ModifierTypeInfo modifierType_ParticleInstance;
|
||||
extern ModifierTypeInfo modifierType_Explode;
|
||||
extern ModifierTypeInfo modifierType_Cloth;
|
||||
extern ModifierTypeInfo modifierType_Collision;
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
/*
|
||||
* ***** 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2005 by the Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Contributor(s): Daniel Dunbar
|
||||
* Ton Roosendaal,
|
||||
* Ben Batt,
|
||||
* Brecht Van Lommel,
|
||||
* Campbell Barton
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*
|
||||
*/
|
||||
|
||||
/** \file blender/modifiers/intern/MOD_particleinstance.c
|
||||
* \ingroup modifiers
|
||||
*/
|
||||
|
||||
|
||||
#include "DNA_meshdata_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "BLI_math.h"
|
||||
#include "BLI_listbase.h"
|
||||
#include "BLI_rand.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_effect.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_lattice.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_pointcache.h"
|
||||
|
||||
#include "depsgraph_private.h"
|
||||
#include "DEG_depsgraph_build.h"
|
||||
|
||||
static void initData(ModifierData *md)
|
||||
{
|
||||
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
||||
|
||||
pimd->flag = eParticleInstanceFlag_Parents | eParticleInstanceFlag_Unborn |
|
||||
eParticleInstanceFlag_Alive | eParticleInstanceFlag_Dead;
|
||||
pimd->psys = 1;
|
||||
pimd->position = 1.0f;
|
||||
pimd->axis = 2;
|
||||
|
||||
}
|
||||
static void copyData(ModifierData *md, ModifierData *target)
|
||||
{
|
||||
#if 0
|
||||
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
||||
ParticleInstanceModifierData *tpimd = (ParticleInstanceModifierData *) target;
|
||||
#endif
|
||||
modifier_copyData_generic(md, target);
|
||||
}
|
||||
|
||||
static bool isDisabled(ModifierData *UNUSED(md), int UNUSED(useRenderParams))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||
struct Main *UNUSED(bmain),
|
||||
struct Scene *UNUSED(scene),
|
||||
Object *UNUSED(ob),
|
||||
DagNode *obNode)
|
||||
{
|
||||
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
||||
|
||||
if (pimd->ob) {
|
||||
DagNode *curNode = dag_get_node(forest, pimd->ob);
|
||||
|
||||
dag_add_relation(forest, curNode, obNode,
|
||||
DAG_RL_DATA_DATA | DAG_RL_OB_DATA,
|
||||
"Particle Instance Modifier");
|
||||
}
|
||||
}
|
||||
|
||||
static void updateDepsgraph(ModifierData *md,
|
||||
struct Main *UNUSED(bmain),
|
||||
struct Scene *UNUSED(scene),
|
||||
Object *UNUSED(ob),
|
||||
struct DepsNodeHandle *node)
|
||||
{
|
||||
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
||||
if (pimd->ob != NULL) {
|
||||
DEG_add_object_relation(node, pimd->ob, DEG_OB_COMP_TRANSFORM, "Particle Instance Modifier");
|
||||
}
|
||||
}
|
||||
|
||||
static void foreachObjectLink(ModifierData *md, Object *ob,
|
||||
ObjectWalkFunc walk, void *userData)
|
||||
{
|
||||
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
||||
|
||||
walk(userData, ob, &pimd->ob, IDWALK_NOP);
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *UNUSED(md), Object *UNUSED(ob),
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
return derivedData;
|
||||
}
|
||||
|
||||
ModifierTypeInfo modifierType_ParticleInstance = {
|
||||
/* name */ "ParticleInstance",
|
||||
/* structName */ "ParticleInstanceModifierData",
|
||||
/* structSize */ sizeof(ParticleInstanceModifierData),
|
||||
/* type */ eModifierTypeType_Constructive,
|
||||
/* flags */ eModifierTypeFlag_AcceptsMesh |
|
||||
eModifierTypeFlag_SupportsMapping |
|
||||
eModifierTypeFlag_SupportsEditmode |
|
||||
eModifierTypeFlag_EnableInEditmode,
|
||||
|
||||
/* copyData */ copyData,
|
||||
/* deformVerts */ NULL,
|
||||
/* deformMatrices */ NULL,
|
||||
/* deformVertsEM */ NULL,
|
||||
/* deformMatricesEM */ NULL,
|
||||
/* applyModifier */ applyModifier,
|
||||
/* applyModifierEM */ NULL,
|
||||
/* initData */ initData,
|
||||
/* requiredDataMask */ NULL,
|
||||
/* freeData */ NULL,
|
||||
/* isDisabled */ isDisabled,
|
||||
/* updateDepgraph */ updateDepgraph,
|
||||
/* updateDepsgraph */ updateDepsgraph,
|
||||
/* dependsOnTime */ NULL,
|
||||
/* dependsOnNormals */ NULL,
|
||||
/* foreachObjectLink */ foreachObjectLink,
|
||||
/* foreachIDLink */ NULL,
|
||||
/* foreachTexLink */ NULL,
|
||||
};
|
||||
@@ -1,151 +0,0 @@
|
||||
/*
|
||||
* ***** 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2005 by the Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Contributor(s): Daniel Dunbar
|
||||
* Ton Roosendaal,
|
||||
* Ben Batt,
|
||||
* Brecht Van Lommel,
|
||||
* Campbell Barton
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*
|
||||
*/
|
||||
|
||||
/** \file blender/modifiers/intern/MOD_particlesystem.c
|
||||
* \ingroup modifiers
|
||||
*/
|
||||
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "DNA_material_types.h"
|
||||
#include "DNA_mesh_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
#include "MOD_util.h"
|
||||
|
||||
|
||||
static void initData(ModifierData *md)
|
||||
{
|
||||
ParticleSystemModifierData *psmd = (ParticleSystemModifierData *) md;
|
||||
psmd->psys = NULL;
|
||||
psmd->dm_final = NULL;
|
||||
psmd->dm_deformed = NULL;
|
||||
psmd->totdmvert = psmd->totdmedge = psmd->totdmface = 0;
|
||||
}
|
||||
static void freeData(ModifierData *md)
|
||||
{
|
||||
ParticleSystemModifierData *psmd = (ParticleSystemModifierData *) md;
|
||||
|
||||
if (psmd->dm_final) {
|
||||
psmd->dm_final->needsFree = true;
|
||||
psmd->dm_final->release(psmd->dm_final);
|
||||
psmd->dm_final = NULL;
|
||||
if (psmd->dm_deformed) {
|
||||
psmd->dm_deformed->needsFree = true;
|
||||
psmd->dm_deformed->release(psmd->dm_deformed);
|
||||
psmd->dm_deformed = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
static void copyData(ModifierData *md, ModifierData *target)
|
||||
{
|
||||
#if 0
|
||||
ParticleSystemModifierData *psmd = (ParticleSystemModifierData *) md;
|
||||
#endif
|
||||
ParticleSystemModifierData *tpsmd = (ParticleSystemModifierData *) target;
|
||||
|
||||
modifier_copyData_generic(md, target);
|
||||
|
||||
tpsmd->dm_final = NULL;
|
||||
tpsmd->dm_deformed = NULL;
|
||||
tpsmd->totdmvert = tpsmd->totdmedge = tpsmd->totdmface = 0;
|
||||
}
|
||||
|
||||
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(md))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* saves the current emitter state for a particle system and calculates particles */
|
||||
static void deformVerts(ModifierData *UNUSED(md), Object *UNUSED(ob),
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3],
|
||||
int UNUSED(numVerts),
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
UNUSED_VARS(vertexCos);
|
||||
return;
|
||||
}
|
||||
|
||||
/* disabled particles in editmode for now, until support for proper derivedmesh
|
||||
* updates is coded */
|
||||
#if 0
|
||||
static void deformVertsEM(
|
||||
ModifierData *md, Object *ob, EditMesh *editData,
|
||||
DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
|
||||
if (!derivedData) dm = CDDM_from_editmesh(editData, ob->data);
|
||||
|
||||
deformVerts(md, ob, dm, vertexCos, numVerts);
|
||||
|
||||
if (!derivedData) dm->release(dm);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
ModifierTypeInfo modifierType_ParticleSystem = {
|
||||
/* name */ "ParticleSystem",
|
||||
/* structName */ "ParticleSystemModifierData",
|
||||
/* structSize */ sizeof(ParticleSystemModifierData),
|
||||
/* type */ eModifierTypeType_OnlyDeform,
|
||||
/* flags */ eModifierTypeFlag_AcceptsMesh |
|
||||
eModifierTypeFlag_SupportsMapping |
|
||||
eModifierTypeFlag_UsesPointCache /* |
|
||||
eModifierTypeFlag_SupportsEditmode |
|
||||
eModifierTypeFlag_EnableInEditmode */,
|
||||
|
||||
/* copyData */ copyData,
|
||||
/* deformVerts */ deformVerts,
|
||||
/* deformVertsEM */ NULL,
|
||||
/* deformMatrices */ NULL,
|
||||
/* deformMatricesEM */ NULL,
|
||||
/* applyModifier */ NULL,
|
||||
/* applyModifierEM */ NULL,
|
||||
/* initData */ initData,
|
||||
/* requiredDataMask */ requiredDataMask,
|
||||
/* freeData */ freeData,
|
||||
/* isDisabled */ NULL,
|
||||
/* updateDepgraph */ NULL,
|
||||
/* updateDepsgraph */ NULL,
|
||||
/* dependsOnTime */ NULL,
|
||||
/* dependsOnNormals */ NULL,
|
||||
/* foreachObjectLink */ NULL,
|
||||
/* foreachIDLink */ NULL,
|
||||
/* foreachTexLink */ NULL,
|
||||
};
|
||||
@@ -257,8 +257,6 @@ void modifier_type_init(ModifierTypeInfo *types[])
|
||||
INIT_TYPE(Boolean);
|
||||
INIT_TYPE(MeshDeform);
|
||||
INIT_TYPE(Ocean);
|
||||
INIT_TYPE(ParticleSystem);
|
||||
INIT_TYPE(ParticleInstance);
|
||||
INIT_TYPE(Explode);
|
||||
INIT_TYPE(Shrinkwrap);
|
||||
INIT_TYPE(Fluidsim);
|
||||
|
||||
@@ -369,20 +369,8 @@ static void init_frame_smoke(VoxelData *vd, int cfra)
|
||||
|
||||
static void init_frame_hair(VoxelData *vd, int UNUSED(cfra))
|
||||
{
|
||||
Object *ob;
|
||||
ModifierData *md;
|
||||
|
||||
vd->dataset = NULL;
|
||||
if (vd->object == NULL) return;
|
||||
ob = vd->object;
|
||||
|
||||
if ((md = (ModifierData *)modifiers_findByType(ob, eModifierType_ParticleSystem))) {
|
||||
ParticleSystemModifierData *pmd = (ParticleSystemModifierData *)md;
|
||||
|
||||
if (pmd->psys && pmd->psys->clmd) {
|
||||
vd->ok |= BPH_cloth_solver_get_texture_data(ob, pmd->psys->clmd, vd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cache_voxeldata(Tex *tex, int scene_frame)
|
||||
|
||||
Reference in New Issue
Block a user