#include <ps_util.h>
Nevrax France
Definition at line 57 of file ps_util.h.
Static Public Member Functions | |
| void | addRadiusToAABBox (NLMISC::CAABBox &box, float radius) |
| enlarge a bounding box by the specified radius | |
| float | buildPerlinNoise (NLMISC::CVector &pos, uint nbOctaves) |
| void | buildSchmidtBasis (const NLMISC::CVector &v, NLMISC::CMatrix &dest) |
| void | display3DQuad (NL3D::IDriver &driver, const NLMISC::CVector &c1, const NLMISC::CVector &c2,const NLMISC::CVector &c3, const NLMISC::CVector &c4, NLMISC::CRGBA color=NLMISC::CRGBA::White) |
| display a 3d quad in wireline, by using the 4 gicen corners | |
| void | displayArrow (NL3D::IDriver *driver, const NLMISC::CVector &start, const NLMISC::CVector &v, float size, NLMISC::CRGBA col1, NLMISC::CRGBA col2) |
| void | displayBasis (NL3D::IDriver *driver, const NLMISC::CMatrix &modelMat, const NLMISC::CMatrix &m, float size, CFontGenerator &fg, CFontManager &fm) |
| display a basis using the given matrix. The model matrix must be restored after this call | |
| void | displayBBox (NL3D::IDriver *driver, const NLMISC::CAABBox &box, NLMISC::CRGBA col=NLMISC::CRGBA::White) |
| this draw a bounding box | |
| void | displayCylinder (NL3D::IDriver &driver, const NLMISC::CVector ¢er, const NLMISC::CMatrix &mat, const NLMISC::CVector &dim, uint nbSubdiv=32, NLMISC::CRGBA color=NLMISC::CRGBA::White) |
| void | displayDisc (NL3D::IDriver &driver, float radius, const NLMISC::CVector ¢er, const NLMISC::CMatrix &mat, uint nbSubdiv=32, NLMISC::CRGBA color=NLMISC::CRGBA::White) |
| void | displaySphere (NL3D::IDriver &driver, float radius, const NLMISC::CVector ¢er, uint nbSubdiv=4, NLMISC::CRGBA color=NLMISC::CRGBA::White) |
| draw a sphere | |
| float | getCos (sint32 angle) |
| float | getSin (sint32 angle) |
| void | initFastCosNSinTable (void) |
| void | initPerlinNoiseTable (void) |
| void | print (NL3D::IDriver *driver, const std::string &text, CFontGenerator &fg, CFontManager &fm, const NLMISC::CVector &pos, float size, NLMISC::CRGBA col=NLMISC::CRGBA::White) |
| display a string at the given world position. The The model matrix must be restored after this call | |
| void | registerSerialParticleSystem (void) |
| register the classes of the system mus be called when serializing | |
Static Private Member Functions | |
| float | getInterpolatedNoise (const NLMISC::CVector &pos) |
| float | getPerlinNoise (uint x, uint y, uint z) |
| void | registerAttribs () |
| void | registerEmitters () |
| void | registerForces () |
| void | registerParticles () |
| void | registerZones () |
Static Private Attributes | |
| float | _CosTable [256] |
| bool | _CosTableInitialized = false |
| float | _PerlinNoiseTab [1024] |
| bool | _PerlinNoiseTableInitialized = false |
| float | _SinTable [256] |
|
||||||||||||
|
enlarge a bounding box by the specified radius
Definition at line 179 of file ps_util.h. References NLMISC::CAABBox::getHalfSize(), and NLMISC::CAABBox::setHalfSize().
00180 {
00181 box.setHalfSize(box.getHalfSize() + NLMISC::CVector(radius, radius, radius) );
00182 }
|
|
||||||||||||
|
compute a perlin noise value, that will range from [0 to 1] The first octave has the unit size
Definition at line 238 of file ps_util.h. References _PerlinNoiseTableInitialized, getInterpolatedNoise(), nlassert, and uint.
00239 {
00240 nlassert(_PerlinNoiseTableInitialized);
00241
00242 float result = 0;
00243 float fact = .5f;
00244 float scale = 1.f;
00245
00246 for (uint k = 0; k < numOctaves; k++)
00247 {
00248 result += fact * getInterpolatedNoise(scale * pos);
00249 fact *= .5f;
00250 scale *= 1.2537f;
00251 }
00252 return result;
00253 }
|
|
||||||||||||
|
build a basis from a vector using Schmidt orthogonalization method
Definition at line 257 of file ps_util.cpp. References NLMISC::CVector::normalize(), and NLMISC::CMatrix::setRot(). Referenced by displayArrow().
00258 {
00259 const float epsilon = 10E-4f;
00260
00261
00262 CVector k = k_;
00263 k.normalize();
00264 CVector i;
00265 if ((1.0f - fabsf(k * CVector::I)) > epsilon)
00266 {
00267 i = k ^ CVector::I;
00268 }
00269 else
00270 if ((1.0f - fabs(k * CVector::J)) > epsilon)
00271 {
00272 i = k ^ CVector::J;
00273 }
00274 else
00275 {
00276 i = k ^ CVector::K;
00277 }
00278
00279 i = i - (k * i) * k;
00280 i.normalize();
00281 result.setRot(i, k ^ i, k, true);
00282 }
|
|
||||||||||||||||||||||||||||
|
display a 3d quad in wireline, by using the 4 gicen corners
Definition at line 383 of file ps_util.cpp.
00385 {
00386 CDRU::drawLine(c1, c2, color, driver);
00387 CDRU::drawLine(c2, c3, color, driver);
00388 CDRU::drawLine(c3, c4, color, driver);
00389 CDRU::drawLine(c4, c1, color, driver);
00390 }
|
|
||||||||||||||||||||||||||||
|
display an arrow (the same that is used with displayBasis) The user must setup the model matrix himself
Definition at line 169 of file ps_util.cpp. References NL3D::IDriver::activeVertexBuffer(), buildSchmidtBasis(), NL3D::IDriver::renderTriangles(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setBlendFunc(), NL3D::CMaterial::setColor(), NL3D::CMaterial::setDoubleSided(), NL3D::CMaterial::setLighting(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), NL3D::CMaterial::setZWrite(), size, uint32, and v. Referenced by displayBasis().
00170 {
00171
00172 const float coneSize = size * 0.1f;
00173
00174 uint32 vTab[] = { 1, 2, 4,
00175 4, 2, 3,
00176 1, 2, 0,
00177 2, 3, 0,
00178 3, 4, 0,
00179 4, 1, 0 };
00180
00181 CVector end = start + size * v;
00182 CDRU::drawLine(start, end, col1, *driver);
00183 CMatrix m;
00184 buildSchmidtBasis(v, m);
00185
00186 CVertexBuffer vb;
00187 vb.setVertexFormat(CVertexBuffer::PositionFlag);
00188 vb.setNumVertices(5);
00189
00190
00191
00192 vb.setVertexCoord(0, end + m * CVector(0, 0, 3.0f * coneSize) );
00193 vb.setVertexCoord(1, end + m * CVector(-coneSize, -coneSize, 0) );
00194 vb.setVertexCoord(2, end + m * CVector(coneSize, -coneSize, 0) );
00195 vb.setVertexCoord(3, end + m * CVector(coneSize, coneSize, 0) );
00196 vb.setVertexCoord(4, end + m * CVector(-coneSize, coneSize, 0) );
00197
00198 CMaterial material;
00199
00200 material.setColor(col2);
00201 material.setLighting(false);
00202 material.setBlendFunc(CMaterial::one, CMaterial::one);
00203 material.setZWrite(false);
00204 material.setBlend(true);
00205 material.setDoubleSided(true);
00206
00207 driver->activeVertexBuffer(vb, 0, 5);
00208 driver->renderTriangles(material, vTab, 6);
00209 }
|
|
||||||||||||||||||||||||||||
|
display a basis using the given matrix. The model matrix must be restored after this call
Definition at line 212 of file ps_util.cpp. References displayArrow(), NLMISC::CMatrix::getI(), NLMISC::CMatrix::getJ(), NLMISC::CMatrix::getK(), NLMISC::CMatrix::getPos(), NL3D::IDriver::setupModelMatrix(), and size.
00213 {
00214 CMaterial material;
00215
00216 driver->setupModelMatrix(modelMat);
00217
00218
00219
00220 displayArrow(driver, m.getPos(), m.getI(), size, CRGBA(127, 127, 127), CRGBA(0, 0, 80));
00221 displayArrow(driver, m.getPos(), m.getJ(), size, CRGBA(127, 127, 127), CRGBA(0, 0, 80));
00222 displayArrow(driver, m.getPos(), m.getK(), size, CRGBA(127, 127, 127), CRGBA(200, 0, 80));
00223
00224
00225 // draw the letters
00226
00227 CPSUtil::print(driver, std::string("x"), fg, fm, modelMat * m * CVector(1.4f * size, 0, 0), 15.0f * size);
00228 CPSUtil::print(driver, std::string("y"), fg, fm, modelMat * m * CVector(0, 1.4f * size, 0), 15.0f * size);
00229 CPSUtil::print(driver, std::string("z"), fg, fm, modelMat * m * CVector(0, 0, 1.4f * size), 15.0f * size);
00230
00231 };
|
|
||||||||||||||||
|
this draw a bounding box
Definition at line 118 of file ps_util.cpp. References NL3D::IDriver::activeVertexBuffer(), NL3D::CPrimitiveBlock::addLine(), NLMISC::CAABBox::getMax(), NLMISC::CAABBox::getMin(), min, NL3D::IDriver::render(), NL3D::CPrimitiveBlock::reserveLine(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setBlendFunc(), NL3D::CMaterial::setColor(), NL3D::CMaterial::setLighting(), NL3D::CVertexBuffer::setNumVertices(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CVertexBuffer::setVertexFormat(), NL3D::CMaterial::setZWrite(), NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.
00119 {
00120 CVector max = box.getMax()
00121 ,min = box.getMin();
00122 CVertexBuffer vb;
00123 vb.setVertexFormat(CVertexBuffer::PositionFlag);
00124 vb.setNumVertices(8);
00125
00126 vb.setVertexCoord(0, min);
00127 vb.setVertexCoord(1, CVector(max.x, min.y, min.z));
00128 vb.setVertexCoord(2, CVector(min.x, max.y, min.z));
00129 vb.setVertexCoord(3, CVector(max.x, max.y, min.z));
00130 vb.setVertexCoord(4, CVector(min.x, min.y, max.z));
00131 vb.setVertexCoord(5, CVector(max.x, min.y, max.z));
00132 vb.setVertexCoord(6, CVector(min.x, max.y, max.z));
00133 vb.setVertexCoord(7, max);
00134
00135
00136 CMaterial material;
00137
00138 material.setColor(col);
00139 material.setLighting(false);
00140 material.setBlendFunc(CMaterial::one, CMaterial::one);
00141 material.setZWrite(false);
00142 material.setBlend(true);
00143
00144
00145
00146 CPrimitiveBlock pb;
00147 pb.reserveLine(12);
00148 pb.addLine(0, 1);
00149 pb.addLine(1, 5);
00150 pb.addLine(5, 4);
00151 pb.addLine(4, 0);
00152 pb.addLine(0, 2);
00153 pb.addLine(1, 3);
00154 pb.addLine(4, 6);
00155 pb.addLine(5, 7);
00156 pb.addLine(6, 7);
00157 pb.addLine(7, 3);
00158 pb.addLine(3, 2);
00159 pb.addLine(2, 6);
00160
00161
00162
00163 driver->activeVertexBuffer(vb);
00164 driver->render(pb, material);
00165 }
|
|
||||||||||||||||||||||||||||
|
draw a cylinder (not filled)
Definition at line 351 of file ps_util.cpp. References NLMISC::CMatrix::getI(), NLMISC::CMatrix::getJ(), NLMISC::CMatrix::getK(), uint, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.
00352 {
00353 // not optimized, but for edition only
00354 float thetaDelta = (float) NLMISC::Pi * 2.f / nbSubdiv;
00355 float theta = 0.f;
00356 const CVector &I = mat.getI();
00357 const CVector &J = mat.getJ();
00358 const CVector &K = mat.getK();
00359
00360 for (uint k = 0; k < nbSubdiv; ++k)
00361 {
00362
00363 CDRU::drawLine(center + dim.z * K + dim.x * cosf(theta) * I + dim.y * sinf(theta) * J
00364 , center + dim.z * K + dim.x * cosf(theta + thetaDelta) * I + dim.y * sinf(theta + thetaDelta) * J
00365 , color, driver);
00366
00367 CDRU::drawLine(center - dim.z * K + dim.x * cosf(theta) * I + dim.y * sinf(theta) * J
00368 , center - dim.z * K + dim.x * cosf(theta + thetaDelta) * I + dim.y * sinf(theta + thetaDelta) * J
00369 , color, driver);
00370
00371 CDRU::drawLine(center + dim.z * K + dim.x * cosf(theta) * I + dim.y * sinf(theta) * J
00372 , center - dim.z * K + dim.x * cosf(theta) * I + dim.y * sinf(theta) * J
00373 , color, driver);
00374
00375
00376
00377
00378 theta += thetaDelta;
00379 }
00380 }
|
|
||||||||||||||||||||||||||||
|
draw a disc (not filled)
Definition at line 332 of file ps_util.cpp. References NLMISC::CMatrix::getI(), NLMISC::CMatrix::getJ(), and uint.
00333 {
00334 // not optimized, but for edition only
00335 float thetaDelta = (float) NLMISC::Pi * 2.f / nbSubdiv;
00336 float theta = 0.f;
00337 const CVector &I = mat.getI();
00338 const CVector &J = mat.getJ();
00339 for (uint k = 0; k < nbSubdiv; ++k)
00340 {
00341
00342 CDRU::drawLine(center + radius * ((float) cos(theta) * I + (float) sin(theta) * J)
00343 , center + radius * ((float) cos(theta + thetaDelta) * I + (float) sin(theta + thetaDelta) * J)
00344 , color, driver);
00345 theta += thetaDelta;
00346 }
00347
00348 }
|
|
||||||||||||||||||||||||
|
draw a sphere
Definition at line 286 of file ps_util.cpp. References NLMISC::CVector::normalize(), uint, x, and y.
00287 {
00288 uint x, y, k;
00289 CVector p, p1, p2;
00290
00291 static const CVector lK[] = { CVector::I, -CVector::I
00292 ,CVector::J, -CVector::J
00293 ,CVector::K, -CVector::K };
00294
00295 /* static const CVector lI = { CVector::J, -CVector::J
00296 ,CVector::K, -CVector::K
00297 ,CVector::I, -CVector::I };*/
00298
00299
00300
00301 for (k = 0; k < 6; ++k)
00302 {
00303 const CVector &I = lK[(k + 2) % 6];
00304 const CVector &K = lK[k];
00305 const CVector J = K ^ I;
00306
00307 for (x = 0; x < nbSubdiv; ++x)
00308 {
00309 for (y = 0; y < nbSubdiv; ++y)
00310 {
00311 p = ((2.f * x / float(nbSubdiv) ) - 1.f) * I + ((2.f * y / float(nbSubdiv) ) - 1.f) * J + K;
00312 p1 = p + 2.f / float(nbSubdiv) * I;
00313 p2 = p + 2.f / float(nbSubdiv) * J;
00314
00315 p.normalize();
00316 p1.normalize();
00317 p2.normalize();
00318
00319 p = center + radius * p;
00320 p1 = center + radius * p1;
00321 p2 = center + radius * p2;
00322
00323 CDRU::drawLine(p, p1, color, driver);
00324 CDRU::drawLine(p, p2, color, driver);
00325 }
00326 }
00327 }
00328 }
|
|
|
get a cosine from the fast cosine table (which must be have initialised with initFastCosNSinTable). 256 <=> 2 Pi Definition at line 122 of file ps_util.h. References _CosTable, _CosTableInitialized, nlassert, and sint32.
|
|
|
Definition at line 192 of file ps_util.h. References getPerlinNoise(), uint, NLMISC::CVector::x, x, NLMISC::CVector::y, y, NLMISC::CVector::z, and z. Referenced by buildPerlinNoise().
00193 {
00194 uint x = (uint) pos.x
00195 , y = (uint) pos.y
00196 , z = (uint) pos.z;
00197
00198 // we want to avoid costly ctor call there...
00199 float fx = pos.x - x
00200 , fy = pos.y - y
00201 , fz = pos.z - z;
00202
00203 // we use the following topology to get the value :
00204 //
00205 //
00206 // z
00207 // | 7-----6
00208 // / /
00209 // 4-----5 |
00210 // | | |
00211 // | 3 | |2
00212 // | | /
00213 // 0_____1/__x
00214
00215
00216 const float v0 = getPerlinNoise(x, y, z)
00217 ,v1 = getPerlinNoise(x + 1, y, z)
00218 ,v2 = getPerlinNoise(x + 1, y + 1, z)
00219 ,v3 = getPerlinNoise(x, y + 1, z)
00220 ,v4 = getPerlinNoise(x, y, z + 1)
00221 ,v5 = getPerlinNoise(x + 1, y, z + 1)
00222 ,v6 = getPerlinNoise(x + 1, y + 1, z + 1)
00223 ,v7 = getPerlinNoise(x, y + 1, z + 1);
00224
00225
00226 const float h1 = fx * v1 + (1.f - fx) * v0
00227 ,h2 = fx * v3 + (1.f - fx) * v2
00228 ,h3 = fx * v5 + (1.f - fx) * v4
00229 ,h4 = fx * v7 + (1.f - fx )* v6;
00230
00231 const float c1 = fy * h2 + (1.f - fy) * h1
00232 ,c2 = fy * h4 + (1.f - fy) * h3;
00233
00234 return fz * c2 + (1.f - fz) * c1;
00235 }
|
|
||||||||||||||||
|
Definition at line 186 of file ps_util.h. References _PerlinNoiseTab, uint, x, y, and z. Referenced by getInterpolatedNoise().
00187 {
00188 return _PerlinNoiseTab[(x ^ y ^ z) & 1023];
00189 }
|
|
|
get a cosine from the fast cosine table (which must be have initialised with initFastCosNSinTable). 256 <=> 2 Pi Definition at line 131 of file ps_util.h. References _CosTableInitialized, _SinTable, nlassert, and sint32.
|
|
|
Init the table for cosine and sinus lookup Definition at line 83 of file ps_util.cpp. References _CosTable, _CosTableInitialized, _SinTable, and uint32. Referenced by registerSerialParticleSystem().
00084 {
00085 for (uint32 k = 0; k < 256; k++)
00086 {
00087 const float angle = k / 256.0f * 2.0f * float(NLMISC::Pi);
00088 _CosTable[k] = (float) cos( angle );
00089 _SinTable[k] = (float) sin( angle );
00090 }
00091 //#ifdef NL_DEBUG
00092 _CosTableInitialized = true;
00093 //#endif
00094 }
|
|
|
init the table used by perlin noise. This must be used before any call to buildPerlinNoise Definition at line 71 of file ps_util.cpp. References _PerlinNoiseTab, _PerlinNoiseTableInitialized, and uint32. Referenced by registerSerialParticleSystem().
00072 {
00073 for (uint32 k = 0; k < 1024; ++k)
00074 {
00075 _PerlinNoiseTab[k] = (rand() % 30000) / 30000.f;
00076 }
00077 //#ifdef NL_DEBUG
00078 _PerlinNoiseTableInitialized = true;
00079 //#endif
00080 }
|
|
||||||||||||||||||||||||||||||||
|
display a string at the given world position. The The model matrix must be restored after this call
Definition at line 235 of file ps_util.cpp. References NL3D::IDriver::getViewMatrix(), nlassert, NL3D::CComputedString::render3D(), NLMISC::CMatrix::scale(), NLMISC::CMatrix::setPos(), size, and NLMISC::CMatrix::transpose().
00236 {
00237 nlassert((&fg) && (&fm));
00238 CComputedString cptedString;
00239 fm.computeString ( text,
00240 &fg,
00241 col,
00242 16,
00243 driver,
00244 cptedString);
00245
00246
00247 CMatrix mat = driver->getViewMatrix();
00248 mat.setPos(CVector::Null);
00249 mat.scale(CVector(size, size, size));
00250 mat.transpose();
00251 mat.setPos(pos);
00252 cptedString.render3D(*driver, mat);
00253 }
|
|
|
Definition at line 40 of file ps_register_attribs.cpp. References NL3D::PSRegisterColorAttribs(), NL3D::PSRegisterFloatAttribs(), NL3D::PSRegisterIntAttribs(), and NL3D::PSRegisterPlaneBasisAttribs(). Referenced by registerSerialParticleSystem().
00041 {
00042 PSRegisterIntAttribs();
00043 PSRegisterFloatAttribs();
00044 PSRegisterColorAttribs();
00045 PSRegisterPlaneBasisAttribs();
00046 }
|
|
|
Definition at line 35 of file ps_register_emitters.cpp. References NLMISC_REGISTER_CLASS. Referenced by registerSerialParticleSystem().
00036 {
00037 NLMISC_REGISTER_CLASS(CPSEmitterOmni);
00038 NLMISC_REGISTER_CLASS(CPSEmitterDirectionnal);
00039 NLMISC_REGISTER_CLASS(CPSEmitterRectangle);
00040 NLMISC_REGISTER_CLASS(CPSEmitterConic);
00041 NLMISC_REGISTER_CLASS(CPSSphericalEmitter);
00042 NLMISC_REGISTER_CLASS(CPSRadialEmitter);
00043
00044 }
|
|
|
Definition at line 35 of file ps_register_forces.cpp. References NLMISC_REGISTER_CLASS. Referenced by registerSerialParticleSystem().
00036 {
00037 NLMISC_REGISTER_CLASS(CPSSpring);
00038 NLMISC_REGISTER_CLASS(CPSDirectionnalForce);
00039 NLMISC_REGISTER_CLASS(CPSGravity);
00040 NLMISC_REGISTER_CLASS(CPSBrownianForce);
00041 NLMISC_REGISTER_CLASS(CPSCentralGravity);
00042 NLMISC_REGISTER_CLASS(CPSFluidFriction);
00043 NLMISC_REGISTER_CLASS(CPSTurbul);
00044 NLMISC_REGISTER_CLASS(CPSCylindricVortex);
00045 NLMISC_REGISTER_CLASS(CPSMagneticForce);
00046 CPSBrownianForce::initPrecalc();
00047 }
|
|
|
Definition at line 36 of file ps_register_particles.cpp. References NLMISC_REGISTER_CLASS. Referenced by registerSerialParticleSystem().
00037 {
00038 NLMISC_REGISTER_CLASS(CPSFanLight);
00039 NLMISC_REGISTER_CLASS(CPSTailDot);
00040 NLMISC_REGISTER_CLASS(CPSRibbon);
00041 NLMISC_REGISTER_CLASS(CPSRibbonLookAt);
00042 NLMISC_REGISTER_CLASS(CPSShockWave);
00043 NLMISC_REGISTER_CLASS(CPSFace);
00044 NLMISC_REGISTER_CLASS(CPSMesh);
00045 NLMISC_REGISTER_CLASS(CPSConstraintMesh);
00046 NLMISC_REGISTER_CLASS(CPSDot);
00047 NLMISC_REGISTER_CLASS(CPSFaceLookAt);
00048
00049 CPSRotated2DParticle::initRotTable(); // init the precalc rot table for face lookat
00050 CPSFanLight::initFanLightPrecalc();
00051 CPSDot::initVertexBuffers();
00052 CPSQuad::initVertexBuffers();
00053 CPSConstraintMesh::initPrerotVB();
00054 }
|
|
|
register the classes of the system mus be called when serializing
Definition at line 97 of file ps_util.cpp. References initFastCosNSinTable(), initPerlinNoiseTable(), NLMISC_REGISTER_CLASS, registerAttribs(), registerEmitters(), registerForces(), registerParticles(), and registerZones().
00098 {
00099 NLMISC_REGISTER_CLASS(CPSLocated);
00100 NLMISC_REGISTER_CLASS(CParticleSystemShape);
00101 NLMISC_REGISTER_CLASS(CPSSound);
00102 NLMISC_REGISTER_CLASS(CPSLight);
00103
00104
00105 registerParticles();
00106 registerForces();
00107 registerEmitters();
00108 registerZones();
00109 registerAttribs();
00110
00111
00112 // while we are here, we perform some important inits
00113 initFastCosNSinTable(); // init fast cosine lookup table
00114 initPerlinNoiseTable(); // init perlin noise table
00115 }
|
|
|
Definition at line 35 of file ps_register_zones.cpp. References NLMISC_REGISTER_CLASS. Referenced by registerSerialParticleSystem().
00036 {
00037 NLMISC_REGISTER_CLASS(CPSZonePlane);
00038 NLMISC_REGISTER_CLASS(CPSZoneSphere);
00039 NLMISC_REGISTER_CLASS(CPSZoneDisc);
00040 NLMISC_REGISTER_CLASS(CPSZoneRectangle);
00041 NLMISC_REGISTER_CLASS(CPSZoneCylinder);
00042 }
|
|
|
Definition at line 63 of file ps_util.cpp. Referenced by getCos(), and initFastCosNSinTable(). |
|
|
Definition at line 59 of file ps_util.cpp. Referenced by getCos(), getSin(), and initFastCosNSinTable(). |
|
|
Definition at line 65 of file ps_util.cpp. Referenced by getPerlinNoise(), and initPerlinNoiseTable(). |
|
|
Definition at line 60 of file ps_util.cpp. Referenced by buildPerlinNoise(), and initPerlinNoiseTable(). |
|
|
Definition at line 64 of file ps_util.cpp. Referenced by getSin(), and initFastCosNSinTable(). |
1.3.6