{"action":"created","comment":{"url":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/comments/25713017","id":25713017,"diff_hunk":"@@ -0,0 +1,2397 @@\n+//\n+//  MOAICCParticleSystem.cpp\n+//  libmoai\n+//\n+//  Created by Isaac Barrett on 7/30/14.\n+//\n+//\n+\n+#include \"pch.h\"\n+#include <tinyxml.h>\n+#include <moaicore/MOAIDeck.h>\n+#include <moaicore/MOAIGfxDevice.h>\n+\n+\n+#include <moaicore/MOAICCParticleSystem.h>\n+\n+//----------------------------------------------------------------//\n+/** @name   getAngle\n+    @text   Returns the system attribute angle.  Determines initial direction of particle in gravity mode and initial position in radial mode.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  angle\n+ */\n+int MOAICCParticleSystem::_getAngle( lua_State *L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mAngle );\n+    \n+    return 1;\n+}\n+\n+\n+//----------------------------------------------------------------//\n+/** @name   setAngle\n+    @text   Set the system attribute angle.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  angle\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_setAngle ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mAngle = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getAngleVariance\n+    @text   Returns the system attribute angle variance.  The initial value for a particle for any base attribute with variance will be between (base - variance) and (base + variance).\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  angleVariance\n+ */\n+\n+int MOAICCParticleSystem::_getAngleVariance( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mAngleVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getAngle\n+    @text   Set the system attribute angle variance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  angleVariance\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_setAngleVariance ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mAngleVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getBlendMode\n+    @text   Returns the system attributes blend source and blend destination.  The returned values can be used in a call to the MOAIProp method setBlendMode.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  blendSrc\n+    @out    number                  blendDest\n+ */\n+int MOAICCParticleSystem::_getBlendMode( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mBlendFuncSrc );\n+    lua_pushnumber ( state, self->mBlendFuncDst );\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setBlendModeParams\n+    @text   Set the system attributes blend source and blend destination.  Can be set to one of MOAIProp's OpenGL blend mode constants.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  blendSrc\n+    @in     number                  blendDest\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setBlendMode ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNN\" )\n+    self->mBlendFuncSrc = state.GetValue < u32 >( 2, 0 );\n+    self->mBlendFuncDst = state.GetValue < u32 >( 3, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getDuration\n+    @text   Returns the system attribute duration.  The amount of time the system will be active.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  duration\n+ */\n+int MOAICCParticleSystem::_getDuration( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mDuration );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setDuration\n+    @text   Set the system attribute duration.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  duration\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setDuration ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mDuration = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getEmitterType\n+    @text   Returns the system attribute emitter type.  Currently, gravity and radial emitters are supported.  Values exposed as MOAICCParticleSystem class constants EMITTER_GRAVITY and EMITTER_RADIAL.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  emitterType\n+ */\n+int MOAICCParticleSystem::_getEmitterType ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mEmitterType );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setEmitterType\n+    @text   Set the system attribute emitter type.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  emitterType\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setEmitterType ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mEmitterType = (EmitterType)state.GetValue < u32 >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getFinishColor\n+    @text   Returns the system attribute finishColor in RGBA components.  The color of the particle at the end of its lifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  red\n+    @out    number                  green\n+    @out    number                  blue\n+    @out    number                  alpha\n+ */\n+int MOAICCParticleSystem::_getFinishColor ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mFinishColor[0] );\n+    lua_pushnumber ( state, self->mFinishColor[1] );\n+    lua_pushnumber ( state, self->mFinishColor[2] );\n+    lua_pushnumber ( state, self->mFinishColor[3] );\n+    return 4;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setFinishColor\n+    @text   Set the RGBA components of system attribute finishColor.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  red\n+    @in     number                  green\n+    @in     number                  blue\n+    @in     number                  alpha\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setFinishColor ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNNN\" )\n+    self->mFinishColor[0] = state.GetValue < float >( 2, 0.0 );\n+    self->mFinishColor[1] = state.GetValue < float >( 3, 0.0 );\n+    self->mFinishColor[2] = state.GetValue < float >( 4, 0.0 );\n+    self->mFinishColor[3] = state.GetValue < float >( 5, 1.0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getFinishColorVariance\n+    @text   Returns the system attribute finishColorVariance in RGBA components.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  red\n+    @out    number                  green\n+    @out    number                  blue\n+    @out    number                  alpha\n+ */\n+int MOAICCParticleSystem::_getFinishColorVariance ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mFinishColorVariance[0] );\n+    lua_pushnumber ( state, self->mFinishColorVariance[1] );\n+    lua_pushnumber ( state, self->mFinishColorVariance[2] );\n+    lua_pushnumber ( state, self->mFinishColorVariance[3] );\n+    return 4;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setFinishColorVariance\n+    @text   Set the RGBA components of system attribute finishColorVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  red\n+    @in     number                  green\n+    @in     number                  blue\n+    @in     number                  alpha\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setFinishColorVariance ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNNN\" )\n+    self->mFinishColorVariance[0] = state.GetValue < float >( 2, 0 );\n+    self->mFinishColorVariance[1] = state.GetValue < float >( 3, 0 );\n+    self->mFinishColorVariance[2] = state.GetValue < float >( 4, 0 );\n+    self->mFinishColorVariance[3] = state.GetValue < float >( 5, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getFinishParticleSize\n+    @text   Returns the system attribute finishParticleSize.  The size in pixels of the particle at the end of its lifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  finishParticleSize\n+ */\n+int MOAICCParticleSystem::_getFinishParticleSize ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mFinishParticleSize );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setFinishParticleSize\n+    @text   Set the system attribute finishParticleSize.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  finishParticleSize\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setFinishParticleSize ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mFinishParticleSize = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getFinishParticleSizeVariance\n+    @text   Returns the system attribute finishParticleSizeVariance.  \n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  finishParticleSizeVariance\n+ */\n+int MOAICCParticleSystem::_getFinishParticleSizeVariance ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mFinishParticleSizeVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setFinishParticleSizeVariance\n+    @text   Set the system attribute finishParticleSizeVariance.   \n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  finishParticleSizeVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setFinishParticleSizeVariance ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mFinishParticleSizeVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name getFrequency\n+    @text Returns the emission rate of the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  frequency\n+ */\n+int MOAICCParticleSystem::_getFrequency ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mFrequency );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getGravity\n+    @text   Returns the system attribute gravity in x and y components.  The linear acceleration vector of the particles.  Used only in gravity mode.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  gravityX\n+    @out    number                  gravityY\n+ */\n+int MOAICCParticleSystem::_getGravity ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mGravity[0] );\n+    lua_pushnumber ( state, self->mGravity[1] );\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setGravity\n+    @text   Set the x and y components of the system attribute gravity.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  gravityX\n+    @in     number                  gravityY\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setGravity ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNN\" )\n+    self->mGravity[0] = state.GetValue < float >( 2, 0 );\n+    self->mGravity[1] = state.GetValue < float >( 3, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name getLifespan\n+    @text Returns the minimum and maximum lifespans of particles in the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  minLifespan\n+    @out    number                  maxLifespan\n+ */\n+int MOAICCParticleSystem::_getLifespan ( lua_State* L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mMinLifespan );\n+    lua_pushnumber ( state, self->mMaxLifespan );\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getStartRadius\n+    @text   Returns the system attribute startRadius.  Also called maximum radius.  The initial distance of the particle from the center of a system in radial mode.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  startRadius\n+ */\n+int MOAICCParticleSystem::_getStartRadius ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mStartRadius );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setStartRadius\n+    @text   Set the system attribute startRadius.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  startRadius\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setStartRadius ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mStartRadius = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getStartRadiusVariance\n+    @text   Returns the system attribute startRadiusVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  startRadiusVariance\n+ */\n+int MOAICCParticleSystem::_getStartRadiusVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mStartRadiusVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setStartRadiusVariance\n+    @text   Set the system attribute startRadiusVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  startRadiusVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setStartRadiusVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mStartRadiusVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getEndRadius\n+    @text   Returns the system attribute endRadius.  Also called minimum radius.  The final distance of the particle from the center of a system in radial mode.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  endRadius\n+ */\n+int MOAICCParticleSystem::_getEndRadius ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mEndRadius );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setEndRadius\n+    @text   Set the system attribute endRadius.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  endRadius\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setEndRadius ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mEndRadius = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getEndRadiusVariance\n+    @text   Returns the system attribute endRadiusVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  endRadiusVariance\n+ */\n+int MOAICCParticleSystem::_getEndRadiusVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mEndRadiusVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setEndRadiusVariance\n+    @text   Set the system attribute endRadiusVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  endRadiusVariance\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_setEndRadiusVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mEndRadiusVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getParticleLifespan\n+    @text   Returns the system attribute particleLifespan.  The amount of time a particle in the system will be active.  The center of the range when used in conjunction with particleLifespanVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  particleLifespan\n+ */\n+int MOAICCParticleSystem::_getParticleLifespan ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mParticleLifespan );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setParticleLifespan\n+    @text   Set the system attribute particleLifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  particleLifespan\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setParticleLifespan ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mParticleLifespan = state.GetValue < float >( 2, 0 );\n+    \n+    self->InitializeEmitter();\n+    \n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getParticleLifespanVariance\n+    @text   Returns the system attribute particleLifespanVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  particleLifespanVariance\n+ */\n+int MOAICCParticleSystem::_getParticleLifespanVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mParticleLifespanVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setParticleLifespanVariance\n+    @text   Set the system attribute particleLifespanVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  particleLifespanVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setParticleLifespanVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mParticleLifespanVariance = state.GetValue < float >( 2, 0 );\n+    \n+    self->InitializeEmitter();\n+    \n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRadialAcceleration\n+    @text   Returns the system attribute radialAcceleration.  The acceleration away (or toward) the center for particles in a system in gravity mode.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  radialAcceleration\n+ */\n+int MOAICCParticleSystem::_getRadialAcceleration ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRadialAcceleration );\n+    return 1;\n+}\n+\n+\n+//----------------------------------------------------------------//\n+/** @name   setRadialAcceleration\n+    @text   Set the system attribute radialAcceleration.  \n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  radialAcceleration\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRadialAcceleration ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRadialAcceleration = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRadialAccelVariance\n+    @text   Returns the system attribute radialAccelerationVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  radialAccelerationVariance\n+ */\n+int MOAICCParticleSystem::_getRadialAccelVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRadialAccelVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRadialAccelVariance\n+    @text   Set the system attribute radialAccelerationVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  radialAccelerationVariance\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_setRadialAccelVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRadialAccelVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRect\n+    @text   Returns the bounds of starting positions for particles in the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  xMin\n+    @out    number                  yMin\n+    @out    number                  xMax\n+    @out    number                  yMax\n+ */\n+int MOAICCParticleSystem::_getRect ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, -self->mSourcePosVariance[0] );\n+    lua_pushnumber ( state, -self->mSourcePosVariance[1] );\n+    lua_pushnumber ( state, self->mSourcePosVariance[0] );\n+    lua_pushnumber ( state, self->mSourcePosVariance[1] );\n+    return 4;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRotatePerSecond\n+    @text   Returns the system attribute rotatePerSecond.  The particle's angular velocity around the center in degrees per seconds for systems in radial mode.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  rotatePerSecond\n+ */\n+int MOAICCParticleSystem::_getRotatePerSecond ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRotatePerSecond );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRotatePerSecond\n+    @text   Set the system attribute rotatePerSecond.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  rotatePerSecond\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRotatePerSecond ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRotatePerSecond = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRotatePerSecondVariance\n+    @text   Returns the system attribute rotatePerSecondVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  rotatePerSecondVariance\n+ */\n+int MOAICCParticleSystem::_getRotatePerSecondVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRotatePerSecondVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRotatePerSecondVariance\n+    @text   Set the system attribute rotatePerSecondVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  rotatePerSecondVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRotatePerSecondVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRotatePerSecondVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRotationEnd\n+    @text   Returns the system attribute rotationEnd.  The orientation of a particle at the end of the particle's lifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  rotationEnd\n+ */\n+int MOAICCParticleSystem::_getRotationEnd ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRotEnd );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRotationEnd\n+    @text   Set the system attribute rotationEnd.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  rotationEnd\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRotationEnd ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRotEnd = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRotationEndVariance\n+    @text   Returns the system attribute rotationEndVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  rotationEndVariance\n+ */\n+int MOAICCParticleSystem::_getRotationEndVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRotEndVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRotationEndVariance\n+    @text   Set the system attribute rotationEndVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  rotationEndVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRotationEndVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRotEndVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRotationStart\n+    @text   Returns the system attribute rotationStart.  The orientation of a particle at the beginning of the particle's lifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  rotationStart\n+ */\n+int MOAICCParticleSystem::_getRotationStart ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRotStart );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRotationStart\n+    @text   Set the system attribute rotationStart.  The orientation of a particle at the beginning of the particle's lifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  rotationStart\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRotationStart ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRotStart = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRotationStartVariance\n+    @text   Returns the system attribute rotationStartVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  rotationStartVariance\n+ */\n+int MOAICCParticleSystem::_getRotationStartVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRotStartVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRotationStartVariance\n+    @text   Set the system attribute rotationStartVariance.  The orientation of a particle at the beginning of the particle's lifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  rotationStartVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRotationStartVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRotStartVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getSourcePosition\n+    @text   Returns the x and y components of system attribute sourcePosition.  This attribute can be interpreted several ways depending on the particle position type.  With the default particle positon type PARTICLE_POSITION_GROUPED, the location of the particle system is affected by changes to the position property.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  sourcePositionX\n+    @out    number                  sourcePositionY\n+ */\n+int MOAICCParticleSystem::_getSourcePosition ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mSourcePos[0] );\n+    lua_pushnumber ( state, self->mSourcePos[1] );\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setSourcePosition\n+    @text   Set the x and y components of system attribute sourcePosition.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  sourcePositionX\n+    @in     number                  sourcePositionY\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setSourcePosition ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNN\" )\n+    self->mSourcePos[0] = state.GetValue < float >( 2, 0 );\n+    self->mSourcePos[1] = state.GetValue < float >( 3, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getSourcePositionX\n+    @text   Returns the x component of system attribute sourcePosition.  This attribute can be interpreted several ways depending on the particle position type.  With the default particle positon type PARTICLE_POSITION_GROUPED, the location of the particle system is affected by changes to the position property.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  sourcePositionX\n+ */\n+int MOAICCParticleSystem::_getSourcePositionX ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mSourcePos[0] );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setSourcePositionX\n+    @text   Set the x component of system attribute sourcePosition.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  sourcePositionX\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setSourcePositionX ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mSourcePos[0] = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getSourcePositionY\n+    @text   Returns the y component of system attribute sourcePosition.  This attribute can be interpreted several ways depending on the particle position type.  With the default particle positon type PARTICLE_POSITION_GROUPED, the location of the particle system is affected by changes to the position property.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  sourcePositionY\n+ */\n+int MOAICCParticleSystem::_getSourcePositionY ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mSourcePos[1] );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setSourcePositionY\n+    @text   Set the y component of system attribute sourcePosition.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  sourcePositionY\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setSourcePositionY ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mSourcePos[1] = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+\n+//----------------------------------------------------------------//\n+/** @name   getSourcePositionVariance\n+    @text   Returns the x and y components of system attribute sourcePositionVariance.  Particles will spawn within x units to the left or right of the source position and y units above or below the source position.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  sourcePositionVarianceX\n+    @out    number                  sourcePositionVarianceY\n+ */\n+int MOAICCParticleSystem::_getSourcePositionVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mSourcePosVariance[0] );\n+    lua_pushnumber ( state, self->mSourcePosVariance[1] );\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setSourcePositionVariance\n+    @text   Set the x and y components of system attribute sourcePositionVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  sourcePositionVarianceX\n+    @out    number                  sourcePositionVarianceY\n+ */\n+int MOAICCParticleSystem::_setSourcePositionVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNN\" )\n+    self->mSourcePosVariance[0] = state.GetValue < float >( 2, 0 );\n+    self->mSourcePosVariance[1] = state.GetValue < float >( 3, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getSpeed\n+    @text   Returns the system attribute speed.  The initial velocity in units per seconds that a particle will have when spawned in a system under gravity mode.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  speed\n+ */\n+int MOAICCParticleSystem::_getSpeed ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mSpeed );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setSpeed\n+    @text   Set the system attribute speed.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  speed\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_setSpeed ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mSpeed = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getSpeedVariance\n+    @text   Returns the system attribute speedVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  speedVariance\n+ */\n+int MOAICCParticleSystem::_getSpeedVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mSpeedVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setSpeedVariance\n+    @text   Set the system attribute speedVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  speedVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setSpeedVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mSpeedVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getStartColor\n+    @text   Returns the system attribute startColor in RGBA components.  The color of the particle at the beginning of its lifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  red\n+    @out    number                  green\n+    @out    number                  blue\n+    @out    number                  alpha\n+ */\n+int MOAICCParticleSystem::_getStartColor ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mStartColor[0] );\n+    lua_pushnumber ( state, self->mStartColor[1] );\n+    lua_pushnumber ( state, self->mStartColor[2] );\n+    lua_pushnumber ( state, self->mStartColor[3] );\n+    return 4;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setStartColor\n+    @text   Set the RGBA components of system attribute startColor.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  red\n+    @in     number                  green\n+    @in     number                  blue\n+    @in     number                  alpha\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setStartColor ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNNN\" )\n+    self->mStartColor[0] = state.GetValue < float >( 2, 0.0f );\n+    self->mStartColor[1] = state.GetValue < float >( 3, 0.0f );\n+    self->mStartColor[2] = state.GetValue < float >( 4, 0.0f );\n+    self->mStartColor[3] = state.GetValue < float >( 5, 1.0f );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getStartColorVariance\n+    @text   Returns the system attribute startColorVariance in RGBA components.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  red\n+    @out    number                  green\n+    @out    number                  blue\n+    @out    number                  alpha\n+ */\n+int MOAICCParticleSystem::_getStartColorVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mStartColorVariance[0] );\n+    lua_pushnumber ( state, self->mStartColorVariance[1] );\n+    lua_pushnumber ( state, self->mStartColorVariance[2] );\n+    lua_pushnumber ( state, self->mStartColorVariance[3] );\n+    return 4;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setStartColorVariance\n+    @text   Set the RGBA components of system attribute startColorVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  red\n+    @in     number                  green\n+    @in     number                  blue\n+    @in     number                  alpha\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setStartColorVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNNNN\" )\n+    self->mStartColorVariance[0] = state.GetValue < float >( 2, 0.0 );\n+    self->mStartColorVariance[1] = state.GetValue < float >( 3, 0 );\n+    self->mStartColorVariance[2] = state.GetValue < float >( 4, 0 );\n+    self->mStartColorVariance[3] = state.GetValue < float >( 5, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getStartParticleSize\n+    @text   Returns the system attribute startParticleSize.  The size of a particle in pixels at the beginning of its lifespan.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  startParticleSize\n+ */\n+int MOAICCParticleSystem::_getStartParticleSize ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mStartSize );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setStartParticleSize\n+    @text   Set the system attribute startParticleSize.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  startParticleSize\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setStartParticleSize ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mStartSize = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getStartParticleSizeVariance\n+    @text   Returns the system attribute startParticleSizeVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  startParticleSizeVariance\n+ */\n+int MOAICCParticleSystem::_getStartParticleSizeVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mStartSizeVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setStartParticleSizeVariance\n+    @text   Set the system attribute startParticleSizeVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  startParticleSizeVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setStartParticleSizeVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mStartSizeVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getTangentalAcceleration\n+    @text   Returns the system attribute tangentalAcceleration.  The acceleration of a particle perpendicular to the direction toward the center of the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  tangentalAcceleration\n+ */\n+int MOAICCParticleSystem::_getTangentalAcceleration ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mTangentialAcceleration );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setTangentalAcceleration\n+    @text   Set the system attribute tangentalAcceleration.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  tangentalAcceleration\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setTangentalAcceleration ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mTangentialAcceleration = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getTangentalAccelerationVariance\n+    @text   Returns the system attribute tangentalAccelerationVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  tangentalAccelerationVariance\n+ */\n+int MOAICCParticleSystem::_getTangentalAccelerationVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mTangentialAccelVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setTangentalAccelerationVariance\n+    @text   Set the system attribute tangentalAccelerationVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  tangentalAccelerationVariance\n+ */\n+int MOAICCParticleSystem::_setTangentalAccelerationVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mTangentialAccelVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getGravityVariance\n+    @text   Returns the x and y components of system attribute gravityVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  gravityVarianceX\n+    @out    number                  gravityVarianceY\n+ */\n+int MOAICCParticleSystem::_getGravityVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mGravityVariance[0] );\n+    lua_pushnumber ( state, self->mGravityVariance[1] );\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setGravityVariance\n+ @text  Set the x and y components of system attribute gravityVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  gravityVarianceX\n+    @in     number                  gravityVarianceY\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_setGravityVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UNN\" )\n+    self->mGravityVariance[0] = state.GetValue < float >( 2, 0 );\n+    self->mGravityVariance[1] = state.GetValue < float >( 3, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRotationalAcceleration\n+    @text   Returns the system attribute rotationalAcceleration.  The rate at which angular velocity of a particle increases each second in a radial system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  rotationalAcceleration\n+ */\n+int MOAICCParticleSystem::_getRotationalAcceleration ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRotationalAcceleration );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRotationalAcceleration\n+    @text   Set the system attribute rotationalAcceleration.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  rotationalAcceleration\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRotationalAcceleration ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRotationalAcceleration = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getRotationalAccelerationVariance\n+    @text   Returns the system attribute rotationalAccelerationVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  rotationalAccelerationVariance\n+ */\n+int MOAICCParticleSystem::_getRotationalAccelerationVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber ( state, self->mRotationalAccelVariance );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setRotationalAccelerationVariance\n+    @text   Set the system attribute rotationalAccelerationVariance.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  rotationalAccelerationVariance\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setRotationalAccelerationVariance ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    self->mRotationalAccelVariance = state.GetValue < float >( 2, 0 );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getTextureName\n+    @text   Return the texture name associated with plugin.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    string                  textureName\n+ */\n+\n+int MOAICCParticleSystem::_getTextureName ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    \n+    lua_pushstring( state, self->mTextureName);\n+    \n+    return 1;\n+}\n+\n+\n+\n+//----------------------------------------------------------------//\n+/** @name   getTotalParticles\n+    @text   Returns the maximum number of particles in the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  totalParticles\n+ */\n+int MOAICCParticleSystem::_getTotalParticles( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mTotalParticles );\n+    \n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setTotalParticles\n+    @text   Set the maximum number of particles in the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  totalParticles\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setTotalParticles( lua_State *L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"UN\" )\n+    u32 total = state.GetValue < u32 >( 2, 1 );\n+    \n+    self->SetTotalParticles( total );\n+    \n+    \n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getParticleCount\n+    @text   Returns the number of currently active particles in the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  particleCount\n+ */\n+int MOAICCParticleSystem::_getParticleCount( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mParticleCount );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setFrequency\n+    @text   Set the rate of particle generation in the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  frequency\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setFrequency( lua_State* L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"UN\" )\n+    self->mFrequency = state.GetValue < float >(2, 1.0);\n+    \n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getParticlePositionType\n+    @text   Returns the system attribute particlePositionType.  PARTICLE_POSITION_GROUPED, PARTICLE_POSITION_RELATIVE, and PARTICLE_POSITION_FREE are the named constants of MOAICCParticleSystem for values of this attribute.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  particlePositionType\n+ */\n+int MOAICCParticleSystem::_getParticlePositionType( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mParticlePositionType );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setParticlePositionType\n+    @text   Set the system attribute particlePositionType.  PARTICLE_POSITION_GROUPED, PARTICLE_POSITION_RELATIVE, and PARTICLE_POSITION_FREE are the named constants of MOAICCParticleSystem for values of this attribute.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  particlePositionType\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setParticlePositionType( lua_State *L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"UN\" )\n+    ParticlePositionType type = ( ParticlePositionType )state.GetValue < u32 >( 2, PARTICLE_POSITION_GROUPED );\n+    self->mParticlePositionType = type;\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getIndexMode\n+    @text   Returns the system attribute indexMode.  INDEX_MODE_SEQUENTIAL, and INDEX_MODE_RANDOM are the named constants of MOAICCParticleSystem for values of this attribute.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  indexMode\n+ */\n+int MOAICCParticleSystem::_getIndexMode( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mIndexMode );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setIndexMode\n+    @text   Set the system attribute indexMode.  INDEX_MODE_SEQUENTIAL, and INDEX_MODE_RANDOM are the named constants of MOAICCParticleSystem for values of this attribute.  INDEX_MODE_SEQUENTIAL makes the index of successive particles go up incrementally from the value of startIndex to the value of endIndex and loop back.  INDEX_MODE_RANDOM makes each particle have a random value between and including the values of startIndex and endIndex.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  indexMode\n+ */\n+int MOAICCParticleSystem::_setIndexMode ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"UN\" )\n+    IndexModeType mode = ( IndexModeType ) state.GetValue < u32 > ( 2, INDEX_MODE_SEQUENTIAL );\n+    self->mIndexMode = mode;\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getStartIndex\n+    @text   Returns the system attribute startIndex.  The starting point for deck indices of particles created by the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  startIndex\n+ */\n+int MOAICCParticleSystem::_getStartIndex( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mStartIndex );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setStartIndex\n+    @text   Set the system attribute startIndex.  The starting point for deck indices of particles created by the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  startIndex\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setStartIndex( lua_State* L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"UN\" )\n+    self->mStartIndex = state.GetValue < u32 >(2, 1.0);\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getEndIndex\n+    @text   Returns the system attribute startIndex.  The ending point for deck indices of particles created by the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  startIndex\n+ */\n+int MOAICCParticleSystem::_getEndIndex( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mEndIndex );\n+    return 1;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   setEndIndex\n+ @text  Set the system attribute startIndex.  The ending point for deck indices of particles created by the system.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     number                  startIndex\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_setEndIndex( lua_State* L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"UN\" )\n+    self->mEndIndex = state.GetValue < u32 >(2, 1.0);\n+    return 0;\n+}\n+//----------------------------------------------------------------//\n+/** @name   getDeckTileCount\n+    @text   Returns the number of tiles in a tile deck in the X and Y directions.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  x\n+    @out    number                  y\n+ \n+ */\n+int MOAICCParticleSystem::_getDeckTileCount( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mDeckTilesX);\n+    lua_pushnumber( state, self->mDeckTilesY);\n+    return 2;\n+}\n+//----------------------------------------------------------------//\n+/** @name   getDeckTileDimensions\n+    @text   Returns the dimensions of a tile for a tile deck.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  width\n+    @out    number                  height\n+ \n+ */\n+int MOAICCParticleSystem::_getDeckTileDimensions( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mDeckTileWidth);\n+    lua_pushnumber( state, self->mDeckTileHeight);\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getDeckCellDimensions\n+    @text   Returns the dimensions of a cell for a tile deck.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  width\n+    @out    number                  height\n+ \n+ */\n+int MOAICCParticleSystem::_getDeckCellDimensions( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mDeckCellWidth);\n+    lua_pushnumber( state, self->mDeckCellHeight);\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   getDeckTileOffset\n+    @text   Returns the offset of the first tile for a tile deck.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    number                  x\n+    @out    number                  y\n+ \n+ */\n+int MOAICCParticleSystem::_getDeckTileOffset ( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    lua_pushnumber( state, self->mDeckOffsetX);\n+    lua_pushnumber( state, self->mDeckOffsetY);\n+    return 2;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   flipY\n+    @text   Adjust the properties of the system so they mirror around the Y axis.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_flipY( lua_State *L ) {\n+    MOAI_LUA_SETUP ( MOAICCParticleSystem, \"U\" )\n+    \n+    self->FlipY();\n+    \n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   initializeProperties\n+    @text   Sets the emission rate property based on lifespan and maximum particles.  Also sets lifespan term member variable.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     String                  file to load\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_initializeProperties( lua_State *L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"U\" )\n+    \n+    self->InitializeEmitter();\n+    \n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   load\n+    @text   Initialize particle system properties with an XML file.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @in     String                  file to load\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_load( lua_State *L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"US\" )\n+    cc8* xml = lua_tostring( state, 2);\n+    \n+    if ( MOAILogMessages::CheckFileExists ( xml, L )) {\n+        TiXmlDocument doc;\n+        doc.LoadFile ( xml );\n+        self->ParseXML ( xml, doc.RootElement ());\n+        \n+    }\n+    \n+    return 0;\n+}\n+//----------------------------------------------------------------//\n+/** @name   startSystem\n+    @text   Begin the generation of particles.  Use in conjenction with start().\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_startSystem ( lua_State *L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"U\" )\n+    self->StartSystem();\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+/** @name   stopSystem\n+    @text   Halt the generation of particles.  Any remaining particles will be allowed to stay until the end of their lifespan. Use stop() to halt the animation of particles.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @out    nil\n+ */\n+int MOAICCParticleSystem::_stopSystem ( lua_State *L ) {\n+    \n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"U\" )\n+    self->StopSystem();\n+    \n+    return 0;\n+}\n+//----------------------------------------------------------------//\n+/** @name   surge\n+    @text   Generate the given number of particles at one time.\n+    @in     MOAICCParticleSystem    self\n+    @in     number                  numberOfParticles\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_surge ( lua_State *L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"UN\" )\n+    u32 numberOfParticles = state.GetValue < u32 >(2, 1.0);\n+    self->Surge( numberOfParticles );\n+    return 0;\n+}\n+//----------------------------------------------------------------//\n+/** @name   reset\n+    @text   Make all particles get cleared out at the next frame.\n+ \n+    @in     MOAICCParticleSystem    self\n+    @opt    boolean                 activate    Default true.  Whether to begin the generation of particles after clearing the particles.\n+    @out    nil\n+ */\n+\n+int MOAICCParticleSystem::_reset ( lua_State *L ) {\n+    MOAI_LUA_SETUP( MOAICCParticleSystem, \"U\" )\n+    bool activate = state.GetValue < bool > (2, true);\n+    self->ResetSystem( activate );\n+    return 0;\n+}\n+\n+//----------------------------------------------------------------//\n+//----------------------------------------------------------------//\n+\n+bool MOAICCParticleSystem::AddParticle () {\n+    if ( this->IsFull() ) {\n+        return false;\n+    }\n+    \n+    MOAICCParticle * particle = &(this->mParticles[this->mParticleCount]);\n+    this->InitParticle( particle );\n+    this->mParticleCount++;\n+    \n+    return true;\n+}\n+\n+void MOAICCParticleSystem::Draw ( int subPrimID ) {\n+    UNUSED(subPrimID);\n+    \n+    if ( !this->mDeck ) {\n+        return;\n+    }\n+    \n+    MOAIGfxDevice& gfxDevice = MOAIGfxDevice::Get ();\n+    \n+    if ( this->mUVTransform ) {\n+        USAffine3D uvMtx = this->mUVTransform->GetLocalToWorldMtx ();\n+        gfxDevice.SetUVTransform ( uvMtx );\n+    }\n+    else {\n+        gfxDevice.SetUVTransform ();\n+    }\n+    \n+    this->LoadGfxState();\n+    \n+    USAffine3D drawingMtx;\n+    USAffine3D spriteMtx;\n+    \n+    u32 maxParticles = this->mTotalParticles;\n+    u32 total = this->mParticleCount;\n+    if (total > maxParticles) {\n+        total = maxParticles;\n+    }\n+    \n+    \n+    for ( u32 i = 0 ; i < total; ++i ) {\n+        u32 idx = i;\n+        MOAICCParticle *particle = &(this->mParticles[ idx ]);\n+        \n+        // set pen color\n+        if ( MOAIGfxDevice::Get().GetColorPremultiply() && this->GetPremultiply() ){\n+            USColorVec penColor(particle->mColor[0], particle->mColor[1], particle->mColor[2], particle->mColor[3]);\n+            \n+            USColorVec modulator(particle->mColor[3], particle->mColor[3], particle->mColor[3], 1.0);\n+            penColor.Modulate(modulator);\n+            \n+            gfxDevice.SetPenColor(penColor);\n+        }\n+        else{\n+            \n+            gfxDevice.SetPenColor(particle->mColor[0], particle->mColor[1], particle->mColor[2], particle->mColor[3]);\n+        }\n+        // set transforms\n+        spriteMtx.ScRoTr(particle->mParticleSize, particle->mParticleSize, 1.0f,\n+                         0.0f, 0.0f, particle->mParticleRotation,\n+                         particle->mCurrentPosition.mX, particle->mCurrentPosition.mY, 0.0f);\n+        \n+        drawingMtx = this->GetLocalToWorldMtx();\n+        drawingMtx.Prepend( spriteMtx );\n+        \n+        gfxDevice.SetVertexTransform( MOAIGfxDevice::VTX_WORLD_TRANSFORM, drawingMtx );\n+        \n+        this->mDeck->Draw ( this->mIndex + (u32) particle->mDeckIndex, this->mRemapper);\n+        \n+    }\n+}\n+\n+void MOAICCParticleSystem::FlipY ( ) {\n+    this->mAngle = 360.0f - this->mAngle;\n+    \n+    // invert y component of gravity\n+    this->mGravity[1] = -this->mGravity[1];\n+    \n+    // invert angular velocity\n+    this->mRotatePerSecond = -this->mRotatePerSecond;\n+    \n+    // invert angular acceleration\n+    this->mRotationalAcceleration = -this->mRotationalAcceleration;\n+    \n+    // invert tangential acceleration\n+    this->mTangentialAcceleration = -this->mTangentialAcceleration;\n+}\n+\n+void MOAICCParticleSystem::InitParticle ( MOAICCParticle *particle ) {\n+    \n+    // timeToLive\n+    particle->mTimeToLive = USFloat::Rand(this->mMinLifespan, this->mMaxLifespan);\n+    \n+    \n+    // position\n+    particle->mStartPosition.mX = this->mSourcePos[0] + this->mSourcePosVariance[0] * USFloat::Rand(-1.0f, 1.0f);\n+    particle->mStartPosition.mY = this->mSourcePos[1] + this->mSourcePosVariance[1] * USFloat::Rand(-1.0f, 1.0f);\n+    \n+    // color\n+    float start;\n+    float end;\n+    \n+    for (int i = 0; i < 4; ++i) {\n+        start = USFloat::Clamp(this->mStartColor[i] + this->mStartColorVariance[i] * USFloat::Rand(-1.0f, 1.0f), 0.0f, 1.0f);\n+        \n+        end = USFloat::Clamp(this->mFinishColor[i] + this->mFinishColorVariance[i] * USFloat::Rand(-1.0f, 1.0f), 0.0f, 1.0f);\n+        \n+        particle->mColor[i] = start;\n+        \n+        particle->mDeltaColor[i] = (end - start) / particle->mTimeToLive;\n+    }\n+    \n+    // partice size\n+    start = this->mStartSize + this->mStartSizeVariance * USFloat::Rand(-1.0f, 1.0f);\n+    start = MAX(0, start);\n+    \n+    particle->mParticleSize = start;\n+    \n+    end = this->mFinishParticleSize + this->mFinishParticleSizeVariance * USFloat::Rand(-1.0f, 1.0f);\n+    particle->mDeltaParticleSize = (end - start) / particle->mTimeToLive;\n+    \n+    \n+    // particle rotation\n+    start = this->mRotStart + this->mRotStartVariance * USFloat::Rand(-1.0f, 1.0f);\n+    end = this->mRotEnd + this->mRotEndVariance * USFloat::Rand(-1.0f, 1.0f);\n+    \n+    particle->mParticleRotation = start;\n+    particle->mDeltaParticleRotation = (end - start) / particle->mTimeToLive;\n+    \n+    // position\n+    \n+    // relative particle position\n+    USVec3D loc;\n+    if (this->mParticlePositionType == PARTICLE_POSITION_RELATIVE) {\n+        loc = this->GetLoc();\n+        particle->mStartPosition.Init(loc.mX, loc.mY);\n+    }\n+    // free particle position\n+    else if (this->mParticlePositionType == PARTICLE_POSITION_FREE) {\n+        \n+        loc.Init(0.0f, 0.0f, 0.0f);\n+        USAffine3D modelToWorld = this->GetLocalToWorldMtx ();\n+        modelToWorld.Transform(loc);\n+        particle->mStartPosition.Init(loc.mX, loc.mY);\n+    }\n+    \n+    // set current position\n+    particle->mCurrentPosition.Init(particle->mStartPosition);\n+    \n+    // direction\n+    float a = D2R * (this->mAngle + this->mAngleVariance * USFloat::Rand(-1.0f, 1.0f));\n+    \n+    \n+    // gravity mode\n+    if ( this->mEmitterType == EMITTER_GRAVITY ) {\n+        USVec2D v;\n+        v.Init(Cos(a), Sin(a));\n+        \n+        float s = this->mSpeed + this->mSpeedVariance * USFloat::Rand(-1.0f, 1.0f);\n+        v.Scale( s );\n+        \n+        // direction\n+        particle->mDirection.Init(v);\n+        \n+        // gravity variance\n+        particle->mGravity.mX = this->mGravity[0] + this->mGravityVariance[0] * USFloat::Rand(-1.0f, 1.0f);\n+        particle->mGravity.mY = this->mGravity[1] + this->mGravityVariance[1] * USFloat::Rand(-1.0f, 1.0f);\n+        \n+        // radial accel\n+        particle->mRadialAcceleration = this->mRadialAcceleration + this->mRadialAccelVariance * USFloat::Rand(-1.0f, 1.0f);\n+        \n+        // tangential accel\n+        particle->mTangentialAcceleration = this->mTangentialAcceleration + this->mTangentialAccelVariance * USFloat::Rand(-1.0f, 1.0f);\n+        \n+    }\n+    // radial mode\n+    else {\n+        float startRadius = this->mEndRadius + this->mEndRadiusVariance *  USFloat::Rand(-1.0f, 1.0f);\n+        float endRadius = this->mStartRadius + this->mStartRadiusVariance *  USFloat::Rand(-1.0f, 1.0f);\n+        \n+        particle->mRadius = startRadius;\n+        \n+        particle->mDeltaRadius = (endRadius - startRadius) / particle->mTimeToLive;\n+        \n+        particle->mAngle = a;\n+        particle->mDegreesPerSecond = D2R * (thi","path":"src/moaicore/MOAICCParticleSystem.cpp","position":2304,"original_position":2304,"commit_id":"c00b91bd74a4af534a3840cca98564efbd180e7c","original_commit_id":"c00b91bd74a4af534a3840cca98564efbd180e7c","user":{"login":"aab29","id":1683575,"avatar_url":"https://avatars.githubusercontent.com/u/1683575?v=3","gravatar_id":"","url":"https://api.github.com/users/aab29","html_url":"https://github.com/aab29","followers_url":"https://api.github.com/users/aab29/followers","following_url":"https://api.github.com/users/aab29/following{/other_user}","gists_url":"https://api.github.com/users/aab29/gists{/gist_id}","starred_url":"https://api.github.com/users/aab29/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aab29/subscriptions","organizations_url":"https://api.github.com/users/aab29/orgs","repos_url":"https://api.github.com/users/aab29/repos","events_url":"https://api.github.com/users/aab29/events{/privacy}","received_events_url":"https://api.github.com/users/aab29/received_events","type":"User","site_admin":false},"body":"Looks like the spacing might be off on this line?  :space_invader: ","created_at":"2015-03-03T18:34:47Z","updated_at":"2015-03-03T18:34:47Z","html_url":"https://github.com/mindsnacks/moai-dev/pull/89#discussion_r25713017","pull_request_url":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/89","_links":{"self":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/comments/25713017"},"html":{"href":"https://github.com/mindsnacks/moai-dev/pull/89#discussion_r25713017"},"pull_request":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/89"}}},"pull_request":{"url":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/89","id":30398509,"html_url":"https://github.com/mindsnacks/moai-dev/pull/89","diff_url":"https://github.com/mindsnacks/moai-dev/pull/89.diff","patch_url":"https://github.com/mindsnacks/moai-dev/pull/89.patch","issue_url":"https://api.github.com/repos/mindsnacks/moai-dev/issues/89","number":89,"state":"open","locked":false,"title":"[NOT QUITE FINAL] [PICK ONE] Ike Particles STD Flavor","user":{"login":"aab29","id":1683575,"avatar_url":"https://avatars.githubusercontent.com/u/1683575?v=3","gravatar_id":"","url":"https://api.github.com/users/aab29","html_url":"https://github.com/aab29","followers_url":"https://api.github.com/users/aab29/followers","following_url":"https://api.github.com/users/aab29/following{/other_user}","gists_url":"https://api.github.com/users/aab29/gists{/gist_id}","starred_url":"https://api.github.com/users/aab29/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aab29/subscriptions","organizations_url":"https://api.github.com/users/aab29/orgs","repos_url":"https://api.github.com/users/aab29/repos","events_url":"https://api.github.com/users/aab29/events{/privacy}","received_events_url":"https://api.github.com/users/aab29/received_events","type":"User","site_admin":false},"body":"Compare to https://github.com/mindsnacks/moai-dev/pull/88 .  Should be the same, except it has one more commit that switches it to use a STD vector.  We should merge the version we like more.  :vhs: :dvd: ","created_at":"2015-03-03T18:17:56Z","updated_at":"2015-03-03T18:34:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"17c6b66c2177ea99c12fd426c33c1dd83b42a516","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/89/commits","review_comments_url":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/89/comments","review_comment_url":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mindsnacks/moai-dev/issues/89/comments","statuses_url":"https://api.github.com/repos/mindsnacks/moai-dev/statuses/c00b91bd74a4af534a3840cca98564efbd180e7c","head":{"label":"mindsnacks:feature/ike-particles-std-vector","ref":"feature/ike-particles-std-vector","sha":"c00b91bd74a4af534a3840cca98564efbd180e7c","user":{"login":"mindsnacks","id":283636,"avatar_url":"https://avatars.githubusercontent.com/u/283636?v=3","gravatar_id":"","url":"https://api.github.com/users/mindsnacks","html_url":"https://github.com/mindsnacks","followers_url":"https://api.github.com/users/mindsnacks/followers","following_url":"https://api.github.com/users/mindsnacks/following{/other_user}","gists_url":"https://api.github.com/users/mindsnacks/gists{/gist_id}","starred_url":"https://api.github.com/users/mindsnacks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mindsnacks/subscriptions","organizations_url":"https://api.github.com/users/mindsnacks/orgs","repos_url":"https://api.github.com/users/mindsnacks/repos","events_url":"https://api.github.com/users/mindsnacks/events{/privacy}","received_events_url":"https://api.github.com/users/mindsnacks/received_events","type":"Organization","site_admin":false},"repo":{"id":8170717,"name":"moai-dev","full_name":"mindsnacks/moai-dev","owner":{"login":"mindsnacks","id":283636,"avatar_url":"https://avatars.githubusercontent.com/u/283636?v=3","gravatar_id":"","url":"https://api.github.com/users/mindsnacks","html_url":"https://github.com/mindsnacks","followers_url":"https://api.github.com/users/mindsnacks/followers","following_url":"https://api.github.com/users/mindsnacks/following{/other_user}","gists_url":"https://api.github.com/users/mindsnacks/gists{/gist_id}","starred_url":"https://api.github.com/users/mindsnacks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mindsnacks/subscriptions","organizations_url":"https://api.github.com/users/mindsnacks/orgs","repos_url":"https://api.github.com/users/mindsnacks/repos","events_url":"https://api.github.com/users/mindsnacks/events{/privacy}","received_events_url":"https://api.github.com/users/mindsnacks/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mindsnacks/moai-dev","description":"This is the development repo of Moai SDK. Current, but not necessarily tested or stable.","fork":true,"url":"https://api.github.com/repos/mindsnacks/moai-dev","forks_url":"https://api.github.com/repos/mindsnacks/moai-dev/forks","keys_url":"https://api.github.com/repos/mindsnacks/moai-dev/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mindsnacks/moai-dev/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mindsnacks/moai-dev/teams","hooks_url":"https://api.github.com/repos/mindsnacks/moai-dev/hooks","issue_events_url":"https://api.github.com/repos/mindsnacks/moai-dev/issues/events{/number}","events_url":"https://api.github.com/repos/mindsnacks/moai-dev/events","assignees_url":"https://api.github.com/repos/mindsnacks/moai-dev/assignees{/user}","branches_url":"https://api.github.com/repos/mindsnacks/moai-dev/branches{/branch}","tags_url":"https://api.github.com/repos/mindsnacks/moai-dev/tags","blobs_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/refs{/sha}","trees_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mindsnacks/moai-dev/statuses/{sha}","languages_url":"https://api.github.com/repos/mindsnacks/moai-dev/languages","stargazers_url":"https://api.github.com/repos/mindsnacks/moai-dev/stargazers","contributors_url":"https://api.github.com/repos/mindsnacks/moai-dev/contributors","subscribers_url":"https://api.github.com/repos/mindsnacks/moai-dev/subscribers","subscription_url":"https://api.github.com/repos/mindsnacks/moai-dev/subscription","commits_url":"https://api.github.com/repos/mindsnacks/moai-dev/commits{/sha}","git_commits_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/commits{/sha}","comments_url":"https://api.github.com/repos/mindsnacks/moai-dev/comments{/number}","issue_comment_url":"https://api.github.com/repos/mindsnacks/moai-dev/issues/comments{/number}","contents_url":"https://api.github.com/repos/mindsnacks/moai-dev/contents/{+path}","compare_url":"https://api.github.com/repos/mindsnacks/moai-dev/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mindsnacks/moai-dev/merges","archive_url":"https://api.github.com/repos/mindsnacks/moai-dev/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mindsnacks/moai-dev/downloads","issues_url":"https://api.github.com/repos/mindsnacks/moai-dev/issues{/number}","pulls_url":"https://api.github.com/repos/mindsnacks/moai-dev/pulls{/number}","milestones_url":"https://api.github.com/repos/mindsnacks/moai-dev/milestones{/number}","notifications_url":"https://api.github.com/repos/mindsnacks/moai-dev/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mindsnacks/moai-dev/labels{/name}","releases_url":"https://api.github.com/repos/mindsnacks/moai-dev/releases{/id}","created_at":"2013-02-13T00:46:09Z","updated_at":"2014-09-09T16:06:09Z","pushed_at":"2015-03-03T14:27:25Z","git_url":"git://github.com/mindsnacks/moai-dev.git","ssh_url":"git@github.com:mindsnacks/moai-dev.git","clone_url":"https://github.com/mindsnacks/moai-dev.git","svn_url":"https://github.com/mindsnacks/moai-dev","homepage":"getmoai.com","size":166581,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":3,"forks":0,"open_issues":3,"watchers":1,"default_branch":"mindsnacks-dev"}},"base":{"label":"mindsnacks:mindsnacks-dev","ref":"mindsnacks-dev","sha":"fcb5f3f850f5f3fcefecda6bb430a68243fcebaa","user":{"login":"mindsnacks","id":283636,"avatar_url":"https://avatars.githubusercontent.com/u/283636?v=3","gravatar_id":"","url":"https://api.github.com/users/mindsnacks","html_url":"https://github.com/mindsnacks","followers_url":"https://api.github.com/users/mindsnacks/followers","following_url":"https://api.github.com/users/mindsnacks/following{/other_user}","gists_url":"https://api.github.com/users/mindsnacks/gists{/gist_id}","starred_url":"https://api.github.com/users/mindsnacks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mindsnacks/subscriptions","organizations_url":"https://api.github.com/users/mindsnacks/orgs","repos_url":"https://api.github.com/users/mindsnacks/repos","events_url":"https://api.github.com/users/mindsnacks/events{/privacy}","received_events_url":"https://api.github.com/users/mindsnacks/received_events","type":"Organization","site_admin":false},"repo":{"id":8170717,"name":"moai-dev","full_name":"mindsnacks/moai-dev","owner":{"login":"mindsnacks","id":283636,"avatar_url":"https://avatars.githubusercontent.com/u/283636?v=3","gravatar_id":"","url":"https://api.github.com/users/mindsnacks","html_url":"https://github.com/mindsnacks","followers_url":"https://api.github.com/users/mindsnacks/followers","following_url":"https://api.github.com/users/mindsnacks/following{/other_user}","gists_url":"https://api.github.com/users/mindsnacks/gists{/gist_id}","starred_url":"https://api.github.com/users/mindsnacks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mindsnacks/subscriptions","organizations_url":"https://api.github.com/users/mindsnacks/orgs","repos_url":"https://api.github.com/users/mindsnacks/repos","events_url":"https://api.github.com/users/mindsnacks/events{/privacy}","received_events_url":"https://api.github.com/users/mindsnacks/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mindsnacks/moai-dev","description":"This is the development repo of Moai SDK. Current, but not necessarily tested or stable.","fork":true,"url":"https://api.github.com/repos/mindsnacks/moai-dev","forks_url":"https://api.github.com/repos/mindsnacks/moai-dev/forks","keys_url":"https://api.github.com/repos/mindsnacks/moai-dev/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mindsnacks/moai-dev/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mindsnacks/moai-dev/teams","hooks_url":"https://api.github.com/repos/mindsnacks/moai-dev/hooks","issue_events_url":"https://api.github.com/repos/mindsnacks/moai-dev/issues/events{/number}","events_url":"https://api.github.com/repos/mindsnacks/moai-dev/events","assignees_url":"https://api.github.com/repos/mindsnacks/moai-dev/assignees{/user}","branches_url":"https://api.github.com/repos/mindsnacks/moai-dev/branches{/branch}","tags_url":"https://api.github.com/repos/mindsnacks/moai-dev/tags","blobs_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/refs{/sha}","trees_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mindsnacks/moai-dev/statuses/{sha}","languages_url":"https://api.github.com/repos/mindsnacks/moai-dev/languages","stargazers_url":"https://api.github.com/repos/mindsnacks/moai-dev/stargazers","contributors_url":"https://api.github.com/repos/mindsnacks/moai-dev/contributors","subscribers_url":"https://api.github.com/repos/mindsnacks/moai-dev/subscribers","subscription_url":"https://api.github.com/repos/mindsnacks/moai-dev/subscription","commits_url":"https://api.github.com/repos/mindsnacks/moai-dev/commits{/sha}","git_commits_url":"https://api.github.com/repos/mindsnacks/moai-dev/git/commits{/sha}","comments_url":"https://api.github.com/repos/mindsnacks/moai-dev/comments{/number}","issue_comment_url":"https://api.github.com/repos/mindsnacks/moai-dev/issues/comments{/number}","contents_url":"https://api.github.com/repos/mindsnacks/moai-dev/contents/{+path}","compare_url":"https://api.github.com/repos/mindsnacks/moai-dev/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mindsnacks/moai-dev/merges","archive_url":"https://api.github.com/repos/mindsnacks/moai-dev/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mindsnacks/moai-dev/downloads","issues_url":"https://api.github.com/repos/mindsnacks/moai-dev/issues{/number}","pulls_url":"https://api.github.com/repos/mindsnacks/moai-dev/pulls{/number}","milestones_url":"https://api.github.com/repos/mindsnacks/moai-dev/milestones{/number}","notifications_url":"https://api.github.com/repos/mindsnacks/moai-dev/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mindsnacks/moai-dev/labels{/name}","releases_url":"https://api.github.com/repos/mindsnacks/moai-dev/releases{/id}","created_at":"2013-02-13T00:46:09Z","updated_at":"2014-09-09T16:06:09Z","pushed_at":"2015-03-03T14:27:25Z","git_url":"git://github.com/mindsnacks/moai-dev.git","ssh_url":"git@github.com:mindsnacks/moai-dev.git","clone_url":"https://github.com/mindsnacks/moai-dev.git","svn_url":"https://github.com/mindsnacks/moai-dev","homepage":"getmoai.com","size":166581,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":3,"forks":0,"open_issues":3,"watchers":1,"default_branch":"mindsnacks-dev"}},"_links":{"self":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/89"},"html":{"href":"https://github.com/mindsnacks/moai-dev/pull/89"},"issue":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/issues/89"},"comments":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/issues/89/comments"},"review_comments":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/89/comments"},"review_comment":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/pulls/89/commits"},"statuses":{"href":"https://api.github.com/repos/mindsnacks/moai-dev/statuses/c00b91bd74a4af534a3840cca98564efbd180e7c"}}}}