Added particle scale affector, made by Sudi.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1745 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2008-11-14 13:17:57 +00:00
parent 1460843e14
commit 75ee82d7c9
20 changed files with 291 additions and 118 deletions

View File

@ -21,6 +21,7 @@ enum E_PARTICLE_AFFECTOR_TYPE
EPAT_FADE_OUT,
EPAT_GRAVITY,
EPAT_ROTATE,
EPAT_SCALE,
EPAT_COUNT
};
@ -32,6 +33,7 @@ const c8* const ParticleAffectorTypeNames[] =
"FadeOut",
"Gravity",
"Rotate",
"Scale",
0
};
@ -44,9 +46,9 @@ public:
IParticleAffector() : Enabled(true) {}
//! Affects an array of particles.
//! \param now: Current time. (Same as ITimer::getTime() would return)
//! \param particlearray: Array of particles.
//! \param count: Amount of particles in array.
/** \param now Current time. (Same as ITimer::getTime() would return)
\param particlearray Array of particles.
\param count Amount of particles in array. */
virtual void affect(u32 now, SParticle* particlearray, u32 count) = 0;
//! Sets whether or not the affector is currently enabled.
@ -56,17 +58,17 @@ public:
virtual bool getEnabled() const { return Enabled; }
//! Writes attributes of the object.
//! Implement this to expose the attributes of your scene node animator for
//! scripting languages, editors, debuggers or xml serialization purposes.
/** Implement this to expose the attributes of your scene node animator for
scripting languages, editors, debuggers or xml serialization purposes. */
virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}
//! Reads attributes of the object.
//! Implement this to set the attributes of your scene node animator for
//! scripting languages, editors, debuggers or xml deserialization purposes.
//! \param startIndex: start index where to start reading attributes.
//! \param in: The attributes to work with.
//! \param options: Additional options.
//! \return: returns last index of an attribute read by this affector
/** Implement this to set the attributes of your scene node animator for
scripting languages, editors, debuggers or xml deserialization purposes.
\param startIndex start index where to start reading attributes.
\param in The attributes to work with.
\param options Additional options.
\return Last index of an attribute read by this affector */
virtual s32 deserializeAttributes(s32 startIndex, io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) { return 0; }
//! Get emitter type

View File

@ -27,11 +27,10 @@ public:
//! Set the amount that the normal is divided by for getting a particles direction
virtual void setNormalDirectionModifier( f32 normalDirectionModifier ) = 0;
//! Sets whether to emit min<->max particles for every vertex per
//! second, or to pick min<->max vertices every second
//! Sets whether to emit min<->max particles for every vertex or to pick min<->max vertices
virtual void setEveryMeshVertex( bool everyMeshVertex = true ) = 0;
//! Get Mesh we're emitting particles from
//! Get mesh we're emitting particles from
virtual const IAnimatedMeshSceneNode* getAnimatedMeshSceneNode() const = 0;
//! Get whether to use vertex normal for direction, or direction specified
@ -40,8 +39,7 @@ public:
//! Get the amount that the normal is divided by for getting a particles direction
virtual f32 getNormalDirectionModifier() const = 0;
//! Gets whether to emit min<->max particles for every vertex per
//! second, or to pick min<->max vertices every second
//! Gets whether to emit min<->max particles for every vertex or to pick min<->max vertices
virtual bool getEveryMeshVertex() const = 0;
//! Get emitter type

View File

@ -47,12 +47,11 @@ class IParticleEmitter : public virtual io::IAttributeExchangingObject
public:
//! Prepares an array with new particles to emitt into the system
//! and returns how much new particles there are.
//! \param now: Current time.
//! \param timeSinceLastCall: Time elapsed since last call, in milliseconds.
//! \param outArray: Pointer which will point to the array with the new
//! particles to add into the system.
//! \return Returns amount of new particles in the array. Can be 0.
/** \param now Current time.
\param timeSinceLastCall Time elapsed since last call, in milliseconds.
\param outArray Pointer which will point to the array with the new
particles to add into the system.
\return Amount of new particles in the array. Can be 0. */
virtual s32 emitt(u32 now, u32 timeSinceLastCall, SParticle*& outArray) = 0;
//! Set direction the emitter emits particles
@ -98,17 +97,17 @@ public:
virtual const core::vector2df& getMinStartSize() const = 0;
//! Writes attributes of the object.
//! Implement this to expose the attributes of your scene node animator for
//! scripting languages, editors, debuggers or xml serialization purposes.
/** Implement this to expose the attributes of your scene node animator for
scripting languages, editors, debuggers or xml serialization purposes. */
virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const {}
//! Reads attributes of the object.
//! Implement this to set the attributes of your scene node animator for
//! scripting languages, editors, debuggers or xml deserialization purposes.
//! \param startIndex: start index where to start reading attributes.
//! \param in: The attributes to work with.
//! \param options: Additional options.
//! \return: returns last index of an attribute read by this affector
/** Implement this to set the attributes of your scene node animator for
scripting languages, editors, debuggers or xml deserialization purposes.
\param startIndex start index where to start reading attributes.
\param in The attributes to work with.
\param options Additional options.
\return Last index of an attribute read by this affector */
virtual s32 deserializeAttributes(s32 startIndex, io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) { return 0; }
//! Get emitter type

View File

@ -17,15 +17,13 @@ class IParticleFadeOutAffector : public IParticleAffector
{
public:
//! Sets the targetColor, i.e. the color the particles will interpolate
//! to over time.
//! Sets the targetColor, i.e. the color the particles will interpolate to over time.
virtual void setTargetColor( const video::SColor& targetColor ) = 0;
//! Sets the amount of time it takes for each particle to fade out.
virtual void setFadeOutTime( f32 fadeOutTime ) = 0;
//! Gets the targetColor, i.e. the color the particles will interpolate
//! to over time.
//! Gets the targetColor, i.e. the color the particles will interpolate to over time.
virtual const video::SColor& getTargetColor() const = 0;
//! Gets the amount of time it takes for each particle to fade out.

View File

@ -17,15 +17,14 @@ class IParticleGravityAffector : public IParticleAffector
{
public:
//! Set the time in milliseconds when the gravity force is totally
//! lost and the particle does not move any more.
//! Set the time in milliseconds when the gravity force is totally lost
/** At that point the particle does not move any more. */
virtual void setTimeForceLost( f32 timeForceLost ) = 0;
//! Set the direction and force of gravity in all 3 dimensions.
virtual void setGravity( const core::vector3df& gravity ) = 0;
//! Get the time in milliseconds when the gravity force is totally
//! lost and the particle does not move any more.
//! Get the time in milliseconds when the gravity force is totally lost
virtual f32 getTimeForceLost() const = 0;
//! Get the direction and force of gravity.

View File

@ -27,8 +27,7 @@ public:
//! Set the amount that the normal is divided by for getting a particles direction
virtual void setNormalDirectionModifier( f32 normalDirectionModifier ) = 0;
//! Sets whether to emit min<->max particles for every vertex per second, or to pick
//! min<->max vertices every second
//! Sets whether to emit min<->max particles for every vertex or to pick min<->max vertices
virtual void setEveryMeshVertex( bool everyMeshVertex = true ) = 0;
//! Get Mesh we're emitting particles from
@ -40,8 +39,7 @@ public:
//! Get the amount that the normal is divided by for getting a particles direction
virtual f32 getNormalDirectionModifier() const = 0;
//! Gets whether to emit min<->max particles for every vertex per second, or to pick
//! min<->max vertices every second
//! Gets whether to emit min<->max particles for every vertex or to pick min<->max vertices
virtual bool getEveryMeshVertex() const = 0;
//! Get emitter type

View File

@ -433,6 +433,17 @@ public:
const core::vector3df& point, f32 speed = 1.0f, bool attract = true,
bool affectX = true, bool affectY = true, bool affectZ = true) = 0;
//! Creates a scale particle affector.
/** This affector scales the particle to the a multiple of its size defined
by the scaleTo variable.
\param scaleTo: multiple of the size which the particle will be scaled to until deletion
\return Pointer to the created particle affector.
To add this affector as new affector of this particle system,
just call addAffector(). Note that you'll have to drop() the
returned pointer, after you don't need it any more, see
IReferenceCounted::drop() for more information. */
virtual IParticleAffector* createScaleParticleAffector(const core::vector2df& scaleTo = core::vector2df(1.0f, 1.0f)) = 0;
//! Creates a fade out particle affector.
/** This affector modifies the color of every particle and and reaches
the final color when the particle dies. This affector looks really

View File

@ -0,0 +1,47 @@
#include "CParticleScaleAffector.h"
#include "IAttributes.h"
namespace irr
{
namespace scene
{
CParticleScaleAffector::CParticleScaleAffector(const core::vector2df& scaleTo)
: ScaleTo(scaleTo)
{
}
void CParticleScaleAffector::affect (u32 now, SParticle *particlearray, u32 count)
{
for(u32 i=0;i<count;i++)
{
const u32 maxdiff = particlearray[i].endTime - particlearray[i].startTime;
const u32 curdiff = now - particlearray[i].startTime;
const f32 newscale = (f32)curdiff/maxdiff;
particlearray[i].size = particlearray[i].startSize+newscale*ScaleTo;
}
}
void CParticleScaleAffector::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options)
{
out->addFloat("ScaleToX", ScaleTo.X);
out->addFloat("ScaleToY", ScaleTo.Y);
}
s32 CParticleScaleAffector::deserializeAttributes(s32 startIndex, io::IAttributes* in, io::SAttributeReadWriteOptions* options)
{
ScaleTo.X = in->getAttributeAsFloat("ScaleToX");
ScaleTo.Y = in->getAttributeAsFloat("ScaleToY");
return 0;
}
E_PARTICLE_AFFECTOR_TYPE CParticleScaleAffector::getType() const
{
return scene::EPAT_SCALE;
}
}
}

View File

@ -0,0 +1,40 @@
#ifndef C_PARTICLE_SCALE_AFFECTOR_H
#define C_PARTICLE_SCALE_AFFECTOR_H
#include <IParticleAffector.h>
namespace irr
{
namespace scene
{
class CParticleScaleAffector : public IParticleAffector
{
public:
CParticleScaleAffector(const core::vector2df& scaleTo = core::vector2df(1.0f, 1.0f));
virtual void affect(u32 now, SParticle *particlearray, u32 count);
//! Writes attributes of the object.
//! Implement this to expose the attributes of your scene node animator for
//! scripting languages, editors, debuggers or xml serialization purposes.
virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options);
//! Reads attributes of the object.
//! Implement this to set the attributes of your scene node animator for
//! scripting languages, editors, debuggers or xml deserialization purposes.
//! \param startIndex: start index where to start reading attributes.
//! \return: returns last index of an attribute read by this affector
virtual s32 deserializeAttributes(s32 startIndex, io::IAttributes* in, io::SAttributeReadWriteOptions* options);
//! Get emitter type
virtual E_PARTICLE_AFFECTOR_TYPE getType() const;
protected:
core::vector2df ScaleTo;
};
}
}
#endif // C_PARTICLE_SCALE_AFFECTOR_H

View File

@ -19,6 +19,7 @@
#include "CParticleFadeOutAffector.h"
#include "CParticleGravityAffector.h"
#include "CParticleRotationAffector.h"
#include "CParticleScaleAffector.h"
#include "SViewFrustum.h"
namespace irr
@ -252,6 +253,12 @@ IParticleAttractionAffector* CParticleSystemSceneNode::createAttractionAffector(
return new CParticleAttractionAffector( point, speed, attract, affectX, affectY, affectZ );
}
//! Creates a scale particle affector.
IParticleAffector* CParticleSystemSceneNode::createScaleParticleAffector(const core::vector2df& scaleTo)
{
return new CParticleScaleAffector(scaleTo);
}
//! Creates a fade out particle affector.
IParticleFadeOutAffector* CParticleSystemSceneNode::createFadeOutParticleAffector(
@ -635,6 +642,9 @@ void CParticleSystemSceneNode::deserializeAttributes(io::IAttributes* in, io::SA
case EPAT_GRAVITY:
aff = createGravityAffector();
break;
case EPAT_SCALE:
aff = createScaleParticleAffector();
break;
case EPAT_NONE:
default:
break;

View File

@ -159,6 +159,9 @@ public:
const core::vector3df& point, f32 speed = 1.0f, bool attract = true,
bool affectX = true, bool affectY = true, bool affectZ = true);
//! Creates a scale particle affector.
virtual IParticleAffector* createScaleParticleAffector(const core::vector2df& scaleTo = core::vector2df(1.0f, 1.0f));
//! Creates a fade out particle affector.
virtual IParticleFadeOutAffector* createFadeOutParticleAffector(
const video::SColor& targetColor = video::SColor(0,0,0,0),

View File

@ -9,7 +9,7 @@ CppCompiler=-D__GNUWIN32__ -W -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D_USRDLL -DIR
Includes=..\..\include;zlib
Linker=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lwinmm -lopengl32_@@_
Libs=
UnitCount=605
UnitCount=607
Folders=doc,gui_impl,include,include/core,include/gui,include/io,include/scene,include/video,io_impl,other_impl,other_impl/extern,other_impl/extern/jpeglib,other_impl/extern/libpng,other_impl/extern/zlib,scene_impl,scene_impl/animators,scene_impl/collision,scene_impl/mesh,scene_impl/mesh/loaders,scene_impl/mesh/writers,scene_impl/nodes,scene_impl/nodes/particles,video_impl,"video_impl/Burning Video",video_impl/DirectX8,video_impl/DirectX9,video_impl/Null,video_impl/OpenGL,video_impl/Software
ObjFiles=
PrivateResource=
@ -6097,3 +6097,23 @@ Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit606]
FileName=CParticleScaleAffector.cpp
Folder=scene_impl/nodes/particles
Compile=1
CompileCpp=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit607]
FileName=CParticleScaleAffector.h
Folder=scene_impl/nodes/particles
Compile=1
CompileCpp=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=

View File

@ -1529,10 +1529,10 @@
<Filter
Name="particleSystem">
<File
RelativePath=".\CParticleAnimatedMeshSceneNodeEmitter.cpp">
RelativePath="CParticleAnimatedMeshSceneNodeEmitter.cpp">
</File>
<File
RelativePath=".\CParticleAttractionAffector.cpp">
RelativePath="CParticleAttractionAffector.cpp">
</File>
<File
RelativePath="CParticleBoxEmitter.cpp">
@ -1541,7 +1541,7 @@
RelativePath="CParticleBoxEmitter.h">
</File>
<File
RelativePath=".\CParticleCylinderEmitter.cpp">
RelativePath="CParticleCylinderEmitter.cpp">
</File>
<File
RelativePath="CParticleFadeOutAffector.cpp">
@ -1556,7 +1556,13 @@
RelativePath="CParticleGravityAffector.h">
</File>
<File
RelativePath=".\CParticleMeshEmitter.cpp">
RelativePath="CParticleScaleAffector.cpp">
</File>
<File
RelativePath="CParticleScaleAffector.h">
</File>
<File
RelativePath="CParticleMeshEmitter.cpp">
</File>
<File
RelativePath="CParticlePointEmitter.cpp">
@ -1565,13 +1571,13 @@
RelativePath="CParticlePointEmitter.h">
</File>
<File
RelativePath=".\CParticleRingEmitter.cpp">
RelativePath="CParticleRingEmitter.cpp">
</File>
<File
RelativePath=".\CParticleRotationAffector.cpp">
RelativePath="CParticleRotationAffector.cpp">
</File>
<File
RelativePath=".\CParticleSphereEmitter.cpp">
RelativePath="CParticleSphereEmitter.cpp">
</File>
<File
RelativePath="CParticleSystemSceneNode.cpp">
@ -1595,16 +1601,16 @@
RelativePath="COctTreeTriangleSelector.h">
</File>
<File
RelativePath=".\CSceneCollisionManager.cpp">
RelativePath="CSceneCollisionManager.cpp">
</File>
<File
RelativePath=".\CSceneCollisionManager.h">
RelativePath="CSceneCollisionManager.h">
</File>
<File
RelativePath=".\CTerrainTriangleSelector.cpp">
RelativePath="CTerrainTriangleSelector.cpp">
</File>
<File
RelativePath=".\CTerrainTriangleSelector.h">
RelativePath="CTerrainTriangleSelector.h">
</File>
<File
RelativePath="CTriangleBBSelector.cpp">
@ -1646,16 +1652,16 @@
RelativePath="CSceneNodeAnimatorDelete.h">
</File>
<File
RelativePath=".\CSceneNodeAnimatorFlyCircle.cpp">
RelativePath="CSceneNodeAnimatorFlyCircle.cpp">
</File>
<File
RelativePath=".\CSceneNodeAnimatorFlyCircle.h">
RelativePath="CSceneNodeAnimatorFlyCircle.h">
</File>
<File
RelativePath=".\CSceneNodeAnimatorFlyStraight.cpp">
RelativePath="CSceneNodeAnimatorFlyStraight.cpp">
</File>
<File
RelativePath=".\CSceneNodeAnimatorFlyStraight.h">
RelativePath="CSceneNodeAnimatorFlyStraight.h">
</File>
<File
RelativePath="CSceneNodeAnimatorFollowSpline.cpp">
@ -1664,32 +1670,32 @@
RelativePath="CSceneNodeAnimatorFollowSpline.h">
</File>
<File
RelativePath=".\CSceneNodeAnimatorRotation.cpp">
RelativePath="CSceneNodeAnimatorRotation.cpp">
</File>
<File
RelativePath=".\CSceneNodeAnimatorRotation.h">
RelativePath="CSceneNodeAnimatorRotation.h">
</File>
<File
RelativePath=".\CSceneNodeAnimatorTexture.cpp">
RelativePath="CSceneNodeAnimatorTexture.cpp">
</File>
<File
RelativePath=".\CSceneNodeAnimatorTexture.h">
RelativePath="CSceneNodeAnimatorTexture.h">
</File>
</Filter>
<Filter
Name="writers"
Filter="">
<File
RelativePath=".\CColladaMeshWriter.cpp">
RelativePath="CColladaMeshWriter.cpp">
</File>
<File
RelativePath=".\CColladaMeshWriter.h">
RelativePath="CColladaMeshWriter.h">
</File>
<File
RelativePath=".\CIrrMeshWriter.cpp">
RelativePath="CIrrMeshWriter.cpp">
</File>
<File
RelativePath=".\CIrrMeshWriter.h">
RelativePath="CIrrMeshWriter.h">
</File>
<File
RelativePath=".\CSTLMeshWriter.cpp">

View File

@ -2049,11 +2049,11 @@
Name="particleSystem"
>
<File
RelativePath=".\CParticleAnimatedMeshSceneNodeEmitter.cpp"
RelativePath="CParticleAnimatedMeshSceneNodeEmitter.cpp"
>
</File>
<File
RelativePath=".\CParticleAttractionAffector.cpp"
RelativePath="CParticleAttractionAffector.cpp"
>
</File>
<File
@ -2065,7 +2065,7 @@
>
</File>
<File
RelativePath=".\CParticleCylinderEmitter.cpp"
RelativePath="CParticleCylinderEmitter.cpp"
>
</File>
<File
@ -2085,7 +2085,23 @@
>
</File>
<File
RelativePath=".\CParticleMeshEmitter.cpp"
RelativePath="CParticleScaleAffector.cpp"
>
</File>
<File
RelativePath="CParticleScaleAffector.h"
>
</File>
<File
RelativePath="CParticleScaleAffector.cpp"
>
</File>
<File
RelativePath="CParticleScaleAffector.h"
>
</File>
<File
RelativePath="CParticleMeshEmitter.cpp"
>
</File>
<File
@ -2097,15 +2113,15 @@
>
</File>
<File
RelativePath=".\CParticleRingEmitter.cpp"
RelativePath="CParticleRingEmitter.cpp"
>
</File>
<File
RelativePath=".\CParticleRotationAffector.cpp"
RelativePath="CParticleRotationAffector.cpp"
>
</File>
<File
RelativePath=".\CParticleSphereEmitter.cpp"
RelativePath="CParticleSphereEmitter.cpp"
>
</File>
<File
@ -2137,19 +2153,19 @@
>
</File>
<File
RelativePath=".\CSceneCollisionManager.cpp"
RelativePath="CSceneCollisionManager.cpp"
>
</File>
<File
RelativePath=".\CSceneCollisionManager.h"
RelativePath="CSceneCollisionManager.h"
>
</File>
<File
RelativePath=".\CTerrainTriangleSelector.cpp"
RelativePath="CTerrainTriangleSelector.cpp"
>
</File>
<File
RelativePath=".\CTerrainTriangleSelector.h"
RelativePath="CTerrainTriangleSelector.h"
>
</File>
<File
@ -2173,19 +2189,19 @@
Name="animators"
>
<File
RelativePath=".\CSceneNodeAnimatorCameraFPS.cpp"
RelativePath="CSceneNodeAnimatorCameraFPS.cpp"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorCameraFPS.h"
RelativePath="CSceneNodeAnimatorCameraFPS.h"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorCameraMaya.cpp"
RelativePath="CSceneNodeAnimatorCameraMaya.cpp"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorCameraMaya.h"
RelativePath="CSceneNodeAnimatorCameraMaya.h"
>
</File>
<File
@ -2205,19 +2221,19 @@
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorFlyCircle.cpp"
RelativePath="CSceneNodeAnimatorFlyCircle.cpp"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorFlyCircle.h"
RelativePath="CSceneNodeAnimatorFlyCircle.h"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorFlyStraight.cpp"
RelativePath="CSceneNodeAnimatorFlyStraight.cpp"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorFlyStraight.h"
RelativePath="CSceneNodeAnimatorFlyStraight.h"
>
</File>
<File
@ -2229,19 +2245,19 @@
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorRotation.cpp"
RelativePath="CSceneNodeAnimatorRotation.cpp"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorRotation.h"
RelativePath="CSceneNodeAnimatorRotation.h"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorTexture.cpp"
RelativePath="CSceneNodeAnimatorTexture.cpp"
>
</File>
<File
RelativePath=".\CSceneNodeAnimatorTexture.h"
RelativePath="CSceneNodeAnimatorTexture.h"
>
</File>
</Filter>
@ -2249,35 +2265,35 @@
Name="writers"
>
<File
RelativePath=".\CColladaMeshWriter.cpp"
RelativePath="CColladaMeshWriter.cpp"
>
</File>
<File
RelativePath=".\CColladaMeshWriter.h"
RelativePath="CColladaMeshWriter.h"
>
</File>
<File
RelativePath=".\CIrrMeshWriter.cpp"
RelativePath="CIrrMeshWriter.cpp"
>
</File>
<File
RelativePath=".\CIrrMeshWriter.h"
RelativePath="CIrrMeshWriter.h"
>
</File>
<File
RelativePath=".\CSTLMeshWriter.cpp"
RelativePath="CSTLMeshWriter.cpp"
>
</File>
<File
RelativePath=".\CSTLMeshWriter.h"
RelativePath="CSTLMeshWriter.h"
>
</File>
<File
RelativePath=".\COBJMeshWriter.cpp"
RelativePath="COBJMeshWriter.cpp"
>
</File>
<File
RelativePath=".\COBJMeshWriter.h"
RelativePath="COBJMeshWriter.h"
>
</File>
</Filter>
@ -2286,63 +2302,63 @@
Name="io impl"
>
<File
RelativePath=".\CAttributeImpl.h"
RelativePath="CAttributeImpl.h"
>
</File>
<File
RelativePath=".\CAttributes.cpp"
RelativePath="CAttributes.cpp"
>
</File>
<File
RelativePath=".\CAttributes.h"
RelativePath="CAttributes.h"
>
</File>
<File
RelativePath=".\CFileList.cpp"
RelativePath="CFileList.cpp"
>
</File>
<File
RelativePath=".\CFileList.h"
RelativePath="CFileList.h"
>
</File>
<File
RelativePath=".\CFileSystem.cpp"
RelativePath="CFileSystem.cpp"
>
</File>
<File
RelativePath=".\CFileSystem.h"
RelativePath="CFileSystem.h"
>
</File>
<File
RelativePath=".\CLimitReadFile.cpp"
RelativePath="CLimitReadFile.cpp"
>
</File>
<File
RelativePath=".\CLimitReadFile.h"
RelativePath="CLimitReadFile.h"
>
</File>
<File
RelativePath=".\CMemoryReadFile.cpp"
RelativePath="CMemoryReadFile.cpp"
>
</File>
<File
RelativePath=".\CMemoryReadFile.h"
RelativePath="CMemoryReadFile.h"
>
</File>
<File
RelativePath=".\CPakReader.cpp"
RelativePath="CPakReader.cpp"
>
</File>
<File
RelativePath=".\CPakReader.h"
RelativePath="CPakReader.h"
>
</File>
<File
RelativePath=".\CReadFile.cpp"
RelativePath="CReadFile.cpp"
>
</File>
<File
RelativePath=".\CReadFile.h"
RelativePath="CReadFile.h"
>
</File>
<File
@ -2362,7 +2378,7 @@
>
</File>
<File
RelativePath=".\CXMLReaderImpl.h"
RelativePath="CXMLReaderImpl.h"
>
</File>
<File
@ -2374,15 +2390,15 @@
>
</File>
<File
RelativePath=".\CZipReader.cpp"
RelativePath="CZipReader.cpp"
>
</File>
<File
RelativePath=".\CZipReader.h"
RelativePath="CZipReader.h"
>
</File>
<File
RelativePath=".\irrXML.cpp"
RelativePath="irrXML.cpp"
>
</File>
</Filter>

View File

@ -2091,6 +2091,14 @@
RelativePath="CParticleGravityAffector.h"
>
</File>
<File
RelativePath="CParticleScaleAffector.cpp"
>
</File>
<File
RelativePath="CParticleScaleAffector.h"
>
</File>
<File
RelativePath="CParticleMeshEmitter.cpp"
>

View File

@ -470,6 +470,8 @@
<Unit filename="CParticleFadeOutAffector.h" />
<Unit filename="CParticleGravityAffector.cpp" />
<Unit filename="CParticleGravityAffector.h" />
<Unit filename="CParticleScaleAffector.cpp" />
<Unit filename="CParticleScaleAffector.h" />
<Unit filename="CParticleMeshEmitter.cpp" />
<Unit filename="CParticleMeshEmitter.h" />
<Unit filename="CParticlePointEmitter.cpp" />

View File

@ -1748,6 +1748,14 @@
<Option compile="0"/>
<Option link="0"/>
</Unit>
<Unit filename="CParticleScaleAffector.cpp">
<Option compilerVar="CPP"/>
</Unit>
<Unit filename="CParticleScaleAffector.h">
<Option compilerVar="CPP"/>
<Option compile="0"/>
<Option link="0"/>
</Unit>
<Unit filename="CParticleMeshEmitter.cpp">
<Option compilerVar="CPP"/>
</Unit>

View File

@ -2084,6 +2084,14 @@
RelativePath="CParticleGravityAffector.h"
>
</File>
<File
RelativePath="CParticleScaleAffector.cpp"
>
</File>
<File
RelativePath="CParticleScaleAffector.h"
>
</File>
<File
RelativePath=".\CParticleMeshEmitter.cpp"
>

View File

@ -26,7 +26,7 @@ IRRMESHOBJ = $(IRRMESHLOADER) $(IRRMESHWRITER) \
CAnimatedMeshSceneNode.o CAnimatedMeshMD2.o CAnimatedMeshMD3.o \
CQ3LevelMesh.o CQuake3ShaderSceneNode.o
IRROBJ = CBillboardSceneNode.o CCameraSceneNode.o CDummyTransformationSceneNode.o CEmptySceneNode.o CGeometryCreator.o CLightSceneNode.o CMeshManipulator.o CMetaTriangleSelector.o COctTreeSceneNode.o COctTreeTriangleSelector.o CSceneCollisionManager.o CSceneManager.o CShadowVolumeSceneNode.o CSkyBoxSceneNode.o CSkyDomeSceneNode.o CTerrainSceneNode.o CTerrainTriangleSelector.o CVolumeLightSceneNode.o CCubeSceneNode.o CSphereSceneNode.o CTextSceneNode.o CTriangleBBSelector.o CTriangleSelector.o CWaterSurfaceSceneNode.o CMeshCache.o CDefaultSceneNodeAnimatorFactory.o CDefaultSceneNodeFactory.o
IRRPARTICLEOBJ = CParticleAnimatedMeshSceneNodeEmitter.o CParticleBoxEmitter.o CParticleCylinderEmitter.o CParticleMeshEmitter.o CParticlePointEmitter.o CParticleRingEmitter.o CParticleSphereEmitter.o CParticleAttractionAffector.o CParticleFadeOutAffector.o CParticleGravityAffector.o CParticleRotationAffector.o CParticleSystemSceneNode.o
IRRPARTICLEOBJ = CParticleAnimatedMeshSceneNodeEmitter.o CParticleBoxEmitter.o CParticleCylinderEmitter.o CParticleMeshEmitter.o CParticlePointEmitter.o CParticleRingEmitter.o CParticleSphereEmitter.o CParticleAttractionAffector.o CParticleFadeOutAffector.o CParticleGravityAffector.o CParticleRotationAffector.o CParticleSystemSceneNode.o CParticleScaleAffector.o
IRRANIMOBJ = CSceneNodeAnimatorCameraFPS.o CSceneNodeAnimatorCameraMaya.o CSceneNodeAnimatorCollisionResponse.o CSceneNodeAnimatorDelete.o CSceneNodeAnimatorFlyCircle.o CSceneNodeAnimatorFlyStraight.o CSceneNodeAnimatorFollowSpline.o CSceneNodeAnimatorRotation.o CSceneNodeAnimatorTexture.o
IRRDRVROBJ = CNullDriver.o COpenGLDriver.o COpenGLNormalMapRenderer.o COpenGLParallaxMapRenderer.o COpenGLShaderMaterialRenderer.o COpenGLTexture.o COpenGLSLMaterialRenderer.o COpenGLExtensionHandler.o CD3D8Driver.o CD3D8NormalMapRenderer.o CD3D8ParallaxMapRenderer.o CD3D8ShaderMaterialRenderer.o CD3D8Texture.o CD3D9Driver.o CD3D9HLSLMaterialRenderer.o CD3D9NormalMapRenderer.o CD3D9ParallaxMapRenderer.o CD3D9ShaderMaterialRenderer.o CD3D9Texture.o
IRRIMAGEOBJ = CColorConverter.o CImage.o CImageLoaderBMP.o CImageLoaderJPG.o CImageLoaderPCX.o CImageLoaderPNG.o CImageLoaderPSD.o CImageLoaderTGA.o CImageLoaderPPM.o CImageLoaderWAL.o \

View File

@ -29,7 +29,7 @@ IRRMESHOBJ = IRRMESHLOADER + IRRMESHWRITER + ['CSkinnedMesh.cpp', 'CBoneSceneNod
IRROBJ = ['CBillboardSceneNode.cpp', 'CCameraSceneNode.cpp', 'CDummyTransformationSceneNode.cpp', 'CEmptySceneNode.cpp', 'CGeometryCreator.cpp', 'CLightSceneNode.cpp', 'CMeshManipulator.cpp', 'CMetaTriangleSelector.cpp', 'COctTreeSceneNode.cpp', 'COctTreeTriangleSelector.cpp', 'CSceneCollisionManager.cpp', 'CSceneManager.cpp', 'CShadowVolumeSceneNode.cpp', 'CSkyBoxSceneNode.cpp', 'CSkyDomeSceneNode.cpp', 'CTerrainSceneNode.cpp', 'CTerrainTriangleSelector.cpp', 'CVolumeLightSceneNode.cpp', 'CCubeSceneNode.cpp', 'CSphereSceneNode.cpp', 'CTextSceneNode.cpp', 'CTriangleBBSelector.cpp', 'CTriangleSelector.cpp', 'CWaterSurfaceSceneNode.cpp', 'CMeshCache.cpp', 'CDefaultSceneNodeAnimatorFactory.cpp', 'CDefaultSceneNodeFactory.cpp'];
IRRPARTICLEOBJ = ['CParticleAnimatedMeshSceneNodeEmitter.cpp', 'CParticleBoxEmitter.cpp', 'CParticleCylinderEmitter.cpp', 'CParticleMeshEmitter.cpp', 'CParticlePointEmitter.cpp', 'CParticleRingEmitter.cpp', 'CParticleSphereEmitter.cpp', 'CParticleAttractionAffector.cpp', 'CParticleFadeOutAffector.cpp', 'CParticleGravityAffector.cpp', 'CParticleRotationAffector.cpp', 'CParticleSystemSceneNode.cpp'];
IRRPARTICLEOBJ = ['CParticleAnimatedMeshSceneNodeEmitter.cpp', 'CParticleBoxEmitter.cpp', 'CParticleCylinderEmitter.cpp', 'CParticleMeshEmitter.cpp', 'CParticlePointEmitter.cpp', 'CParticleRingEmitter.cpp', 'CParticleSphereEmitter.cpp', 'CParticleAttractionAffector.cpp', 'CParticleFadeOutAffector.cpp', 'CParticleGravityAffector.cpp', 'CParticleRotationAffector.cpp', 'CParticleSystemSceneNode.cpp', 'CParticleScaleAffector.cpp'];
IRRANIMOBJ = ['CSceneNodeAnimatorCameraFPS.cpp', 'CSceneNodeAnimatorCameraMaya.cpp', 'CSceneNodeAnimatorCollisionResponse.cpp', 'CSceneNodeAnimatorDelete.cpp', 'CSceneNodeAnimatorFlyCircle.cpp', 'CSceneNodeAnimatorFlyStraight.cpp', 'CSceneNodeAnimatorFollowSpline.cpp', 'CSceneNodeAnimatorRotation.cpp', 'CSceneNodeAnimatorTexture.cpp'];