#include <cloud.h>
|
|
Definition at line 41 of file cloud.cpp. References _BillSize, _CloudScape, NL3D::CCloudScape::_Driver, _Driver, _OldBillSize, _UStart, _VStart, _WaitState, _WStart, CloudAmbient, CloudDiffuse, CloudDistAtt, CloudPower, and LastCloudPower.
00042 {
00043 _CloudScape = pCloudScape;
00044 _Driver = _CloudScape->_Driver;
00045 CloudPower = 255; // Max Power
00046 LastCloudPower = 255;
00047 CloudDistAtt = 0;
00048 CloudDiffuse = CRGBA(255,255,255,255);
00049 CloudAmbient = CRGBA(120,140,160,255);
00050 _WaitState = 0;
00051 _BillSize = 0;
00052 _OldBillSize = 0;
00053 _UStart = _VStart = _WStart = NULL;
00054 }
|
|
|
Definition at line 57 of file cloud.cpp. References _UStart, _VStart, and _WStart.
|
|
||||||||||||
|
Definition at line 315 of file cloud.cpp. References _NbOctave, _UStart, _VStart, _WStart, and uint32. Referenced by NL3D::CCloudScape::makeHalfCloud().
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definition at line 437 of file cloud.cpp. References NLMISC::CMatrix::identity(), NLMISC::CMatrix::invert(), NLMISC::CMatrix::mulPoint(), NLMISC::CVector::norm(), NLMISC::CVector::normalize(), NLMISC::CVector::set(), NLMISC::CMatrix::setPos(), NLMISC::CMatrix::setRot(), uint32, v, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z. Referenced by dispBill(), genBill(), and reset().
00439 {
00440 CVector ViewDir = Center - Viewer;
00441 float ViewDist = ViewDir.norm();
00442 ViewDir.normalize();
00443
00444 Left = 1000.0f;
00445 Right = -1000.0f;
00446 Top = -1000.0f;
00447 Bottom = 1000.0f;
00448 Near = 1000.0f;
00449 Far = -1000.0f;
00450
00451 if (fabsf(Center.y-Viewer.y) > fabsf(Center.z-Viewer.z))
00452 {
00453 K.set(0, 0, 1);
00454 J= ViewDir;
00455 I= J^K;
00456 K= I^J;
00457 }
00458 else
00459 {
00460 K.set(0, 1, 0);
00461 J= ViewDir;
00462 I= J^K;
00463 K= I^J;
00464 }
00465 I.normalize();
00466 J.normalize();
00467 K.normalize();
00468
00469 CMatrix mat;
00470 mat.identity();
00471 mat.setRot(I,J,K, true);
00472 mat.setPos(CVector(Viewer.x, Viewer.y, Viewer.z));
00473 mat.invert();
00474
00475 uint32 i, j, k;
00476 for (i = 0; i < 2; ++i)
00477 for (j = 0; j < 2; ++j)
00478 for (k = 0; k < 2; ++k)
00479 {
00480 CVector v;
00481 if (i == 0) v.x = Center.x-Size.x/2; else v.x = Center.x+Size.x/2;
00482 if (j == 0) v.y = Center.y-Size.y/2; else v.y = Center.y+Size.y/2;
00483 if (k == 0) v.z = Center.z-Size.z/2; else v.z = Center.z+Size.z/2;
00484 v = mat.mulPoint(v);
00485 if (v.y < Near) Near = v.y;
00486 if (v.y > Far) Far = v.y;
00487 }
00488
00489 for (i = 0; i < 2; ++i)
00490 for (j = 0; j < 2; ++j)
00491 for (k = 0; k < 2; ++k)
00492 {
00493 CVector v;
00494 if (i == 0) v.x = Center.x-Size.x/2; else v.x = Center.x+Size.x/2;
00495 if (j == 0) v.y = Center.y-Size.y/2; else v.y = Center.y+Size.y/2;
00496 if (k == 0) v.z = Center.z-Size.z/2; else v.z = Center.z+Size.z/2;
00497 v = mat.mulPoint(v);
00498 v.x = v.x / (v.y/Near);
00499 v.z = v.z / (v.y/Near);
00500 if (v.x < Left) Left = v.x;
00501 if (v.x > Right) Right = v.x;
00502 if (v.z < Bottom) Bottom = v.z;
00503 if (v.z > Top) Top = v.z;
00504 }
00505 }
|
|
|
Definition at line 328 of file cloud.cpp. References _CloudScape, _CloudTexTmp, _Driver, _Height, _NbH, _NbW, NL3D::CCloudScape::_VertexBuffer, _Width, NL3D::IDriver::activeVertexBuffer(), NLMISC::CMatrix::identity(), NL3D::CMaterial::initUnlit(), NL3D::IDriver::renderQuads(), s, NL3D::CMaterial::setBlend(), NL3D::CMaterial::setDoubleSided(), NL3D::IDriver::setFrustum(), NLMISC::CMatrix::setRot(), NL3D::CVertexBuffer::setTexCoord(), NL3D::CMaterial::setTexture(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupScissor(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), NL3D::CVertexBuffer::setVertexCoord(), NL3D::CMaterial::setZFunc(), NL3D::CMaterial::setZWrite(), NL3D::SCloudTexture3D::Tex, NL3D::CMaterial::texEnvArg0RGB(), NL3D::CMaterial::texEnvOpRGB(), uint32, NLMISC::CQuadUV::Uv0, NLMISC::CQuadUV::Uv1, NLMISC::CQuadUV::Uv2, NLMISC::CQuadUV::Uv3, NLMISC::CQuad::V0, NLMISC::CQuad::V1, NLMISC::CQuad::V2, NLMISC::CQuad::V3, and w.
00329 {
00330 CQuadUV qc;
00331 qc.Uv0 = CUV(0.0f, 0.0f);
00332 qc.Uv1 = CUV(1.0f, 0.0f);
00333 qc.Uv2 = CUV(1.0f, 1.0f);
00334 qc.Uv3 = CUV(0.0f, 1.0f);
00335
00337 CScissor s;
00338 s.initFullScreen();
00339 _Driver->setupScissor (s);
00340 _Driver->setupViewport (CViewport());
00341 _Driver->setFrustum (0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, false);
00342 CVector I(1,0,0);
00343 CVector J(0,0,1);
00344 CVector K(0,-1,0);
00345 CMatrix ViewMatrix;
00346 ViewMatrix.identity();
00347 ViewMatrix.setRot(I,J,K, true);
00348 _Driver->setupViewMatrix(ViewMatrix);
00349 _Driver->setupModelMatrix(CMatrix::Identity);
00351
00352 uint32 w = _NbW*_Width;
00353 uint32 h = _NbH*_Height;
00354 uint32 i = 0;
00355 qc.V0 = CVector(0.0f/800.0f, 0.0f/600.0f, 0.0f);
00356 qc.V1 = CVector(w/800.0f, 0.0f/600.0f, 0.0f);
00357 qc.V2 = CVector(w/800.0f, h/600.0f, 0.0f);
00358 qc.V3 = CVector(0.0f/800.0f, h/600.0f, 0.0f);
00359 static CMaterial *dispMat = NULL;
00360 if (dispMat == NULL)
00361 {
00362 dispMat = new CMaterial;
00363 dispMat->initUnlit();
00364 dispMat->setTexture(0, _CloudTexTmp->Tex);
00365 dispMat->texEnvOpRGB(0, CMaterial::Replace);
00366 //dispMat->texEnvArg0RGB(0, CMaterial::Texture, CMaterial::SrcAlpha);
00367 dispMat->texEnvArg0RGB(0, CMaterial::Texture, CMaterial::SrcColor);
00368 dispMat->setZFunc(CMaterial::always);
00369 dispMat->setZWrite(false);
00370 dispMat->setDoubleSided(true);
00371 dispMat->setBlend (false);
00372 }
00373
00374 CVertexBuffer &rVB = _CloudScape->_VertexBuffer;
00375 rVB.setVertexCoord (0, qc.V0);
00376 rVB.setVertexCoord (1, qc.V1);
00377 rVB.setVertexCoord (2, qc.V2);
00378 rVB.setVertexCoord (3, qc.V3);
00379 rVB.setTexCoord (0, 0, qc.Uv0);
00380 rVB.setTexCoord (1, 0, qc.Uv1);
00381 rVB.setTexCoord (2, 0, qc.Uv2);
00382 rVB.setTexCoord (3, 0, qc.Uv3);
00383 _Driver->activeVertexBuffer (rVB);
00384 _Driver->renderQuads (*dispMat, 0, 1);
00385 }
|
|
|
Definition at line 606 of file cloud.cpp. References _BillCenter, _BillOldCenter, _BillViewer, _CloudScape, _Driver, NL3D::CCloudScape::_MatBill, _MemBill, _MemOldBill, _Pos, _Size, _TexBill, _TexOldBill, NL3D::CCloudScape::_VertexBuffer, _WaitState, NL3D::IDriver::activeVertexBuffer(), calcBill(), FuturTime, NL3D::CVertexBuffer::getTexCoordPointer(), NL3D::CVertexBuffer::getVertexCoordPointer(), NL3D::CVertexBuffer::getVertexSize(), NL3D::CCloudScape::isDebugQuadEnabled(), NL3D::IDriver::renderQuads(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setColor(), NL3D::CMaterial::setDoubleSided(), NL3D::IDriver::setPolygonMode(), NL3D::CMaterial::setTexture(), Time, NLMISC::CUV::U, uint32, uint8, NLMISC::CQuadUV::Uv0, NLMISC::CQuadUV::Uv1, NLMISC::CQuadUV::Uv2, NLMISC::CQuadUV::Uv3, NLMISC::CUV::V, NLMISC::CQuad::V0, NLMISC::CQuad::V1, NLMISC::CQuad::V2, NLMISC::CQuad::V3, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z. Referenced by NL3D::CCloudScape::render().
00607 {
00608 // CMatrix CamMat = pCam->getMatrix();
00609 // CVector Viewer = CamMat.getPos();
00610 CVector Viewer = CVector (0,0,0);
00611 CVector Center = CVector (_Pos.x+_Size.x/2, _Pos.y+_Size.y/2, _Pos.z+_Size.z/2);
00612 CVector Size = _Size;
00613
00614 // Prepare vertices.
00615 CQuadUV qc;
00616
00617 CVector I, J, K;
00618 float Left, Right, Top, Bottom, Near, Far;
00619
00620 if ((_MemBill == NULL) || (_MemOldBill == NULL))
00621 return;
00622
00623 if (_WaitState > 0)
00624 return;
00625
00626 if (Time > FuturTime)
00627 Time = FuturTime;
00628
00629 // take old computed bill.
00630 Viewer= _BillViewer;
00631 /* Center= _BillCenter*((float)(Trans)/(float)TransTotal) +
00632 _BillOldCenter*((float)(TransTotal-Trans)/(float)TransTotal);
00633
00634 calcBill (Viewer, Center, Size, I, J, K, Left, Right, Top, Bottom, Near, Far);
00635
00636
00637 CVector lct = Viewer + J*Near;
00638 qc.V0 = lct + I*Left + K*Bottom;
00639 qc.V1 = lct + I*Right + K*Bottom;
00640 qc.V2 = lct + I*Right + K*Top;
00641 qc.V3 = lct + I*Left + K*Top;*/
00642
00643 Center= _BillCenter;
00644 calcBill (Viewer, Center, Size, I, J, K, Left, Right, Top, Bottom, Near, Far);
00645 CVector lct = Viewer + J*Near;
00646 CQuadUV qc0;
00647 qc0.V0 = lct + I*Left + K*Bottom;
00648 qc0.V1 = lct + I*Right + K*Bottom;
00649 qc0.V2 = lct + I*Right + K*Top;
00650 qc0.V3 = lct + I*Left + K*Top;
00651
00652 Center= _BillOldCenter;
00653 calcBill (Viewer, Center, Size, I, J, K, Left, Right, Top, Bottom, Near, Far);
00654 lct = Viewer + J*Near;
00655 CQuadUV qc1;
00656 qc1.V0 = lct + I*Left + K*Bottom;
00657 qc1.V1 = lct + I*Right + K*Bottom;
00658 qc1.V2 = lct + I*Right + K*Top;
00659 qc1.V3 = lct + I*Left + K*Top;
00660
00661 float a0= ((float)(Time)/(float)FuturTime);
00662 float a1= (float)(FuturTime-Time)/(float)FuturTime;
00663 qc.V0= qc0.V0*a0 + qc1.V0*a1;
00664 qc.V1= qc0.V1*a0 + qc1.V1*a1;
00665 qc.V2= qc0.V2*a0 + qc1.V2*a1;
00666 qc.V3= qc0.V3*a0 + qc1.V3*a1;
00667
00668 qc.Uv0 = CUV(0, 0);
00669 qc.Uv1 = CUV(1, 0);
00670 qc.Uv2 = CUV(1, 1);
00671 qc.Uv3 = CUV(0, 1);
00672
00673 // Display TexBill with intensity : Trans / TransTotal
00674 // and TexOldBill with intensity : (TransTotal-Trans) / TransTotal
00675
00676 _CloudScape->_MatBill.setTexture (0, _TexOldBill);
00677 _CloudScape->_MatBill.setTexture (1, _TexBill);
00678 _CloudScape->_MatBill.setColor (CRGBA(255, 255, 255, (uint8)(255*((float)Time/(float)FuturTime))));
00679 CVertexBuffer &rVB = _CloudScape->_VertexBuffer;
00680 uint32 nVSize = rVB.getVertexSize ();
00681 CVector *pVertices = (CVector*)rVB.getVertexCoordPointer (0);
00682 *pVertices = qc.V0; pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00683 *pVertices = qc.V1; pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00684 *pVertices = qc.V2; pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00685 *pVertices = qc.V3;
00686
00687 CUV *pUV = (CUV*)rVB.getTexCoordPointer (0, 0);
00688 pUV->U = 0; pUV->V = 0; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00689 pUV->U = 1; pUV->V = 0; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00690 pUV->U = 1; pUV->V = 1; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00691 pUV->U = 0; pUV->V = 1;
00692
00693 pUV = (CUV*)rVB.getTexCoordPointer (0, 1);
00694 pUV->U = 0; pUV->V = 0; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00695 pUV->U = 1; pUV->V = 0; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00696 pUV->U = 1; pUV->V = 1; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00697 pUV->U = 0; pUV->V = 1;
00698
00699 _Driver->activeVertexBuffer (rVB);
00700 _Driver->renderQuads (_CloudScape->_MatBill, 0, 1);
00701
00702 //nlinfo ("ok");
00703
00704
00705 // Debug
00706 if (_CloudScape->isDebugQuadEnabled())
00707 {
00708 static CMaterial *mTmp = NULL;
00709 if (mTmp == NULL)
00710 {
00711 mTmp = new CMaterial();
00712 mTmp->setBlend(false);
00713 mTmp->setDoubleSided(true);
00714 }
00715 /*if (_BillSize <= 4)
00716 mTmp->setColor(CRGBA(0,127,0,255));
00717 else if (_BillSize == 8)
00718 mTmp->setColor(CRGBA(0,255,0,255));
00719 else if (_BillSize == 16)
00720 mTmp->setColor(CRGBA(127,255,0,255));
00721 else if (_BillSize == 32)
00722 mTmp->setColor(CRGBA(255,255,0,255));
00723 else if (_BillSize == 64)
00724 mTmp->setColor(CRGBA(255,127,0,255));
00725 else if (_BillSize == 128)
00726 mTmp->setColor(CRGBA(255,0,0,255));
00727 else if (_BillSize == 256)
00728 mTmp->setColor(CRGBA(127,0,0,255));*/
00729
00730 if (FuturTime <= 4)
00731 mTmp->setColor(CRGBA(0,127,0,255));
00732 else if (FuturTime <= 8)
00733 mTmp->setColor(CRGBA(0,255,0,255));
00734 else if (FuturTime <= 12)
00735 mTmp->setColor(CRGBA(127,255,0,255));
00736 else if (FuturTime <= 16)
00737 mTmp->setColor(CRGBA(255,255,0,255));
00738 else if (FuturTime <= 20)
00739 mTmp->setColor(CRGBA(255,127,0,255));
00740 else
00741 mTmp->setColor(CRGBA(255,0,0,255));
00742
00743 _Driver->setPolygonMode(IDriver::Line);
00744 _Driver->renderQuads (*mTmp, 0, 1);
00745 _Driver->setPolygonMode(IDriver::Filled);
00746 }
00747
00748 }
|
|
|
Definition at line 388 of file cloud.cpp. References _CloudScape, _Driver, _NbH, _NbW, _Pos, _Size, NL3D::CCloudScape::_VertexBuffer, NL3D::IDriver::activeVertexBuffer(), NL3D::CVertexBuffer::getTexCoordPointer(), NL3D::CVertexBuffer::getVertexCoordPointer(), NL3D::CVertexBuffer::getVertexSize(), NL3D::IDriver::renderQuads(), NLMISC::CUV::U, uint32, uint8, NLMISC::CUV::V, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z. Referenced by genBill().
00389 {
00390 CQuadUV qc;
00391 uint32 i,j;
00392
00393 float oneOverNbW = 1.0f / _NbW;
00394 float oneOverNbH = 1.0f / _NbH;
00395 float oneOverNbWNbH = 1.0f / (_NbW*_NbH);
00396 CVertexBuffer &rVB = _CloudScape->_VertexBuffer;
00397 uint32 nVSize = rVB.getVertexSize ();
00398 CVector *pVertices;
00399 CUV *pUV;
00400 _Driver->activeVertexBuffer (rVB);
00401
00402 if (pMat == NULL)
00403 return;
00404
00405 for (j = 0; j < _NbH; ++j)
00406 {
00407 for (i = 0; i < _NbW; ++i)
00408 {
00409 uint32 d = i+j*_NbW;
00410
00411 pVertices = (CVector*)rVB.getVertexCoordPointer (0);
00412 *pVertices = CVector(_Pos.x, _Pos.y, _Pos.z+_Size.z*(_NbW*_NbH-d)*oneOverNbWNbH); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00413 *pVertices = CVector(_Pos.x+_Size.x, _Pos.y, _Pos.z+_Size.z*(_NbW*_NbH-d)*oneOverNbWNbH); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00414 *pVertices = CVector(_Pos.x+_Size.x, _Pos.y+_Size.y, _Pos.z+_Size.z*(_NbW*_NbH-d)*oneOverNbWNbH); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00415 *pVertices = CVector(_Pos.x, _Pos.y+_Size.y, _Pos.z+_Size.z*(_NbW*_NbH-d)*oneOverNbWNbH);
00416
00417 pUV = (CUV*)rVB.getTexCoordPointer (0, 0);
00418 pUV->U = i*oneOverNbW; pUV->V = j*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00419 pUV->U = (i+1)*oneOverNbW; pUV->V = j*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00420 pUV->U = (i+1)*oneOverNbW; pUV->V = (j+1)*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00421 pUV->U = i*oneOverNbW; pUV->V = (j+1)*oneOverNbH;
00422
00423 pUV = (CUV*)rVB.getTexCoordPointer (0, 1);
00424 pUV->U = i*oneOverNbW; pUV->V = j*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00425 pUV->U = (i+1)*oneOverNbW; pUV->V = j*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00426 pUV->U = (i+1)*oneOverNbW; pUV->V = (j+1)*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00427 pUV->U = i*oneOverNbW; pUV->V = (j+1)*oneOverNbH;
00428
00429 _Driver->renderQuads (*pMat, 0, 1);
00430 }
00431 }
00432 }
|
|
||||||||||||
|
Definition at line 509 of file cloud.cpp. References _BillCenter, _BillOldCenter, _BillSize, _BillViewer, _CloudScape, _CloudTexTmp, _Driver, _LastX, NL3D::CCloudScape::_MatClear, _MemBill, _MemOldBill, _OldBillSize, _Pos, _Size, _TexBill, _TexOldBill, NL3D::CCloudScape::_VertexBuffer, _WaitState, NL3D::IDriver::activeVertexBuffer(), calcBill(), CloudAmbient, NL3D::IDriver::copyFrameBufferToTexture(), dispXYZ(), NL3D::CVertexBuffer::getVertexCoordPointer(), NL3D::CVertexBuffer::getVertexSize(), NL3D::IDriver::getWindowSize(), NLMISC::CMatrix::identity(), NL3D::CViewport::init(), NL3D::CViewport::initFullScreen(), NLMISC::CMatrix::invert(), NL3D::IDriver::renderQuads(), NL3D::CMaterial::setColor(), NL3D::IDriver::setFrustum(), NLMISC::CMatrix::setPos(), NLMISC::CMatrix::setRot(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), NL3D::SCloudTexture3D::ToBill, uint32, uint8, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z. Referenced by NL3D::CCloudScape::makeHalfCloud().
00510 {
00511 // If minimized mode (screenW / H is 0) abort.
00512 uint32 nScreenW, nScreenH;
00513 _Driver->getWindowSize (nScreenW, nScreenH);
00514 if(nScreenW<=0 || nScreenH<=0)
00515 return;
00516
00517
00518 // Compute the Bill
00519 uint32 sizeTMP = _OldBillSize;
00520 uint8 *MemTMP = _MemOldBill;
00521 CSmartPtr<CTextureMem> TexTMP = _TexOldBill;
00522
00523 _OldBillSize = _BillSize;
00524 _MemOldBill = _MemBill;
00525 _TexOldBill = _TexBill;
00526 _BillSize = sizeTMP;
00527 _MemBill = MemTMP;
00528 _TexBill = TexTMP;
00529
00530 // Check the new size of the billboard
00531 if (nBillSize != _BillSize)
00532 {
00533 _BillSize = nBillSize;
00534 _MemBill = new uint8[4*_BillSize*_BillSize];
00535 _TexBill = new CTextureMem (_MemBill, 4*_BillSize*_BillSize, true, false, _BillSize, _BillSize);
00536 //for (i = 0; i < 4*_BillSize*_BillSize; ++i) _MemBill[i] = (uint8)i;
00537 _TexBill->setWrapS (ITexture::Clamp);
00538 _TexBill->setWrapT (ITexture::Clamp);
00539 _TexBill->setFilterMode (ITexture::Linear, ITexture::LinearMipMapOff);
00540 _TexBill->setReleasable (false);
00541 _TexBill->generate();
00542 }
00543
00544 CViewport viewport, viewportOLD;
00545 viewportOLD.initFullScreen();
00546 viewport.init(0.0f, 0.0f, ((float)_BillSize+1)/((float)nScreenW), ((float)_BillSize+1)/((float)nScreenH));
00547 _Driver->setupViewport (viewport);
00548
00549 //CMatrix CamMat = pCam->getMatrix();
00550 //CVector Viewer = CamMat.getPos();
00551 CVector Viewer = CVector (0,0,0);
00552 CVector Center = CVector (_Pos.x+_Size.x/2, _Pos.y+_Size.y/2, _Pos.z+_Size.z/2);
00553 CVector Size = _Size;
00554 CVector I, J, K;
00555 float Left, Right, Top, Bottom, Near, Far;
00556
00557 calcBill (Viewer, Center, Size, I, J, K, Left, Right, Top, Bottom, Near, Far);
00558
00559 CMatrix mat;
00560 mat.identity();
00561 mat.setRot(I,J,K, true);
00562 mat.setPos(CVector(Viewer.x, Viewer.y, Viewer.z));
00563 mat.invert();
00564
00565 // Clear background for cloud creation
00566 _Driver->setFrustum(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, false);
00567 _Driver->setupViewMatrix (CMatrix::Identity);
00568 _Driver->setupModelMatrix (CMatrix::Identity);
00569
00570 CVertexBuffer &rVB = _CloudScape->_VertexBuffer;
00571 uint32 nVSize = rVB.getVertexSize ();
00572 CVector *pVertices = (CVector*)rVB.getVertexCoordPointer (0);
00573 *pVertices = CVector(0.0f, 0.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00574 *pVertices = CVector(1.0f, 0.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00575 *pVertices = CVector(1.0f, 0.0f, 1.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00576 *pVertices = CVector(0.0f, 0.0f, 1.0f);
00577
00578 _CloudScape->_MatClear.setColor (CRGBA(0,0,0,0));
00579 _Driver->activeVertexBuffer (rVB);
00580 _Driver->renderQuads (_CloudScape->_MatClear, 0, 1);
00581
00582 // Render
00583 _Driver->setFrustum(Left, Right, Bottom, Top, Near, Far);
00584 _Driver->setupViewMatrix(mat);
00585 _Driver->setupModelMatrix (CMatrix::Identity);
00586
00587 _CloudTexTmp->ToBill.setColor (CloudAmbient);
00588 dispXYZ (&_CloudTexTmp->ToBill);
00589
00590 _Driver->copyFrameBufferToTexture (_TexBill, 0, 0, 0, 0, 0, _BillSize, _BillSize);
00591
00592 // This is the end of render to texture like so reset all stuff
00593 _Driver->setupViewport (viewportOLD);
00594
00595 _BillOldCenter = _BillCenter;
00596 _BillViewer = Viewer;
00597 _BillCenter = Center;
00598
00599 if (_WaitState > 0)
00600 _WaitState = _WaitState - 1;
00601
00602 _LastX = _Pos.x;
00603 }
|
|
|
Definition at line 110 of file cloud.cpp. References _BaseFreq, _CloudScape, _CloudTexClamp, _CloudTexTmp, _Depth, _Driver, _Height, NL3D::CCloudScape::_MatClear, _NbH, _NbOctave, _NbW, _UStart, NL3D::CCloudScape::_VertexBuffer, _VStart, _Width, _WStart, NL3D::IDriver::activeVertexBuffer(), CloudDistAtt, CloudPower, NL3D::IDriver::copyFrameBufferToTexture(), NL3D::CNoise3d::flush(), NL3D::CNoise3d::getDepth(), NL3D::CNoise3d::getHeight(), NL3D::CVertexBuffer::getTexCoordPointer(), NL3D::CVertexBuffer::getVertexCoordPointer(), NL3D::CVertexBuffer::getVertexSize(), NL3D::CNoise3d::getWidth(), NL3D::CNoise3d::renderGrid(), NL3D::IDriver::renderQuads(), NL3D::CMaterial::setColor(), setMode2D(), NL3D::SCloudTexture3D::Tex, NL3D::SCloudTextureClamp::ToClamp, NLMISC::CUV::U, uint32, uint8, and NLMISC::CUV::V. Referenced by NL3D::CCloudScape::makeHalfCloud().
00111 {
00112 float dU, dV, dW;
00113 uint32 nOct;
00114 CQuadUV qc;
00115
00116 // Setup the matrices view&model, viewport and frustum
00117 setMode2D ();
00118
00119 // Clear background
00120 CVertexBuffer &rVB = _CloudScape->_VertexBuffer;
00121 uint32 nVSize = rVB.getVertexSize ();
00122 CVector *pVertices = (CVector*)rVB.getVertexCoordPointer (0);
00123 *pVertices = CVector(0.0f, 0.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00124 *pVertices = CVector((float)_NbW*_Width,0.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00125 *pVertices = CVector((float)_NbW*_Width,(float)_NbH*_Height,0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00126 *pVertices = CVector(0.0f, (float)_NbH*_Height,0.0f);
00127 _CloudScape->_MatClear.setColor (CRGBA(0,0,0,0));
00128 _Driver->activeVertexBuffer (rVB);
00129 _Driver->renderQuads (_CloudScape->_MatClear, 0, 1);
00130
00131 // Create cloud from noise
00132 for (nOct = 0; nOct < _NbOctave; ++nOct)
00133 {
00134 dU = (_BaseFreq*((float)_Width)/noise.getWidth())*(1<<nOct);
00135 dV = (_BaseFreq*((float)_Height)/noise.getHeight())*(1<<nOct);
00136 dW = (_BaseFreq*((float)_Depth)/noise.getDepth())*(1<<nOct);
00137
00138
00139 noise.renderGrid (_NbW, _NbH, _Width, _Height,
00140 (float)_UStart[nOct], (float)_VStart[nOct], (float)_WStart[nOct], dU, dV, dW,
00141 1.0f/(2<<nOct));
00142
00143 /* This is the same thing as a renderGrid which is optimized to do that
00144 qc.Uv0 = CUV((float)_UStart[nOct], (float)_VStart[nOct]);
00145 qc.Uv1 = CUV((float)_UStart[nOct]+dU, (float)_VStart[nOct]);
00146 qc.Uv2 = CUV((float)_UStart[nOct]+dU, (float)_VStart[nOct]+dV);
00147 qc.Uv3 = CUV((float)_UStart[nOct], (float)_VStart[nOct]+dV);
00148 uint32 i,j;
00149 for (j = 0; j < _NbH; ++j)
00150 {
00151 for (i = 0; i < _NbW; ++i)
00152 {
00153 qc.V0 = CVector((float)i*_Width, (float)j*_Height, 0.0f);
00154 qc.V1 = CVector((float)(i+1)*_Width, (float)j*_Height, 0.0f);
00155 qc.V2 = CVector((float)(i+1)*_Width, (float)(j+1)*_Height, 0.0f);
00156 qc.V3 = CVector((float)i*_Width, (float)(j+1)*_Height, 0.0f);
00157 noise.render (qc, (float)_WStart[nOct]+dW*(i+(float)j*_NbW)/(((float)_NbW)*_NbH), 1.0f/(2<<nOct));
00158 }
00159 }*/
00160 noise.flush ();
00161 }
00162
00163 // Apply attenuation texture (not needed to resetup position again (done when clearing to black))
00164 CUV *pUV = (CUV*)rVB.getTexCoordPointer (0, 0);
00165 pUV->U = 0.0f; pUV->V = 0.0f; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00166 pUV->U = 1.0f; pUV->V = 0.0f; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00167 pUV->U = 1.0f; pUV->V = 1.0f; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00168 pUV->U = 0.0f; pUV->V = 1.0f;
00169 uint8 colpow = (uint8)(255-(((uint32)CloudPower*(255-(uint32)CloudDistAtt)) / 255));
00170 _CloudTexClamp->ToClamp.setColor (CRGBA(255, 255, 255, colpow));
00171 _Driver->activeVertexBuffer (rVB);
00172 _Driver->renderQuads (_CloudTexClamp->ToClamp, 0, 1);
00173
00174 // We have generated to the screen the texture cloud so now copy from screen to the texture
00175 _Driver->copyFrameBufferToTexture (_CloudTexTmp->Tex, 0, 0, 0, 0, 0, _Width*_NbW, _Height*_NbH);
00176
00177 _CloudTexTmp->Tex->setFilterMode (ITexture::Nearest, ITexture::NearestMipMapOff);
00178 }
|
|
|
Definition at line 100 of file cloud.h. References _BillSize, and uint32.
00100 { return _BillSize; }
|
|
|
Definition at line 79 of file cloud.h. References _LastX. Referenced by NL3D::CCloudScape::makeHalfCloud().
00079 { return _LastX; }
|
|
|
Definition at line 102 of file cloud.h. References _BillSize, _OldBillSize, and uint32. Referenced by NL3D::CCloudScape::getMemSize().
00103 {
00104 return _OldBillSize*_OldBillSize*4 + _BillSize*_BillSize*4;
00105 }
|
|
|
Definition at line 83 of file cloud.h. References _Size, and NLMISC::CVector::x. Referenced by NL3D::CCloudScape::init(), NL3D::CCloudScape::makeHalfCloud(), and NL3D::CCloudScape::render().
|
|
|
Definition at line 84 of file cloud.h. References _Size, and NLMISC::CVector::y. Referenced by NL3D::CCloudScape::init(), NL3D::CCloudScape::makeHalfCloud(), and NL3D::CCloudScape::render().
|
|
|
Definition at line 85 of file cloud.h. References _Size, and NLMISC::CVector::z. Referenced by NL3D::CCloudScape::init(), NL3D::CCloudScape::makeHalfCloud(), and NL3D::CCloudScape::render().
|
|
|
Definition at line 78 of file cloud.h. References _Pos, and NLMISC::CVector::x. Referenced by NL3D::CCloudScape::init(), NL3D::CCloudScape::makeHalfCloud(), and NL3D::CCloudScape::render().
|
|
|
Definition at line 80 of file cloud.h. References _Pos, and NLMISC::CVector::y. Referenced by NL3D::CCloudScape::init(), NL3D::CCloudScape::makeHalfCloud(), and NL3D::CCloudScape::render().
|
|
|
Definition at line 81 of file cloud.h. References _Pos, and NLMISC::CVector::z. Referenced by NL3D::CCloudScape::init(), NL3D::CCloudScape::makeHalfCloud(), and NL3D::CCloudScape::render().
|
|
||||||||||||||||||||||||
|
Definition at line 65 of file cloud.cpp. References _BaseFreq, _BillSize, _Depth, _Height, _MemBill, _MemOldBill, _NbH, _NbOctave, _NbW, _OldBillSize, _Size, _UStart, _VStart, _Width, _WStart, NLMISC::getPowerOf2(), NLMISC::raiseToNextPowerOf2(), uint32, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z. Referenced by NL3D::CCloudScape::init().
00066 {
00067 if (_UStart != NULL)
00068 return;
00069
00070 _BaseFreq = rBaseFreq;
00071 _BillSize = 0;
00072 _OldBillSize = 0;
00073
00074 _NbOctave = nNbOctave;
00075 _UStart = new double[_NbOctave];
00076 _VStart = new double[_NbOctave];
00077 _WStart = new double[_NbOctave];
00078
00079 uint32 i;
00080 for (i = 0; i < _NbOctave; ++i)
00081 {
00082 _UStart[i] = ((double)rand())/RAND_MAX;
00083 _VStart[i] = ((double)rand())/RAND_MAX;
00084 _WStart[i] = ((double)rand())/RAND_MAX;
00085 }
00086
00087 _Width = raiseToNextPowerOf2 (nVoxelW);
00088 _Height = raiseToNextPowerOf2 (nVoxelH);
00089 _Depth = raiseToNextPowerOf2 (nVoxelD);
00090 uint32 vdpo2 = getPowerOf2(_Depth);
00091 _NbW = 1 << (vdpo2 / 2);
00092 if ((vdpo2 & 1) != 0)
00093 _NbH = 2 << (vdpo2 / 2);
00094 else
00095 _NbH = 1 << (vdpo2 / 2);
00096
00097 _MemBill = NULL;
00098 _MemOldBill = NULL;
00099
00100 float scale = 20.0f + 10.0f*((float)rand())/RAND_MAX;;
00101 _Size.x = scale * _Width/_Depth;
00102 scale = 20.0f + 10.0f*((float)rand())/RAND_MAX;;
00103 _Size.y = scale * _Height/_Depth;
00104 scale = 20.0f + 10.0f*((float)rand())/RAND_MAX;;
00105 _Size.z = scale * _Depth/_Depth;
00106
00107 }
|
|
|
Definition at line 182 of file cloud.cpp. References _CloudScape, _CloudTexTmp, _Driver, _Height, NL3D::CCloudScape::_MatClear, _NbH, _NbW, NL3D::CCloudScape::_VertexBuffer, _Width, NLMISC::CRGBA::A, NL3D::IDriver::activeVertexBuffer(), CloudDiffuse, NL3D::IDriver::copyFrameBufferToTexture(), NL3D::CVertexBuffer::getTexCoordPointer(), NL3D::CVertexBuffer::getVertexCoordPointer(), NL3D::CVertexBuffer::getVertexSize(), NL3D::IDriver::renderQuads(), NL3D::CMaterial::setBlend(), NL3D::CMaterial::setColor(), NL3D::IDriver::setColorMask(), setMode2D(), NL3D::SCloudTexture3D::Tex, NL3D::SCloudTexture3D::ToLight, NLMISC::CUV::U, uint32, uint8, and NLMISC::CUV::V. Referenced by NL3D::CCloudScape::makeHalfCloud().
00183 {
00184 uint32 i, j;
00185
00186 // Setup the matrices view&model, viewport and frustum
00187 setMode2D ();
00188
00189 // Destination position for lighting accumulation buffer from (0, 0) size (_Width, _Height)
00190 CVertexBuffer &rVB = _CloudScape->_VertexBuffer;
00191 uint32 nVSize = rVB.getVertexSize ();
00192 CVector *pVertices = (CVector*)rVB.getVertexCoordPointer (0);
00193 *pVertices = CVector((float)0.0f, (float)0.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00194 *pVertices = CVector((float)_Width, (float)0.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00195 *pVertices = CVector((float)_Width, (float)_Height, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00196 *pVertices = CVector((float)0.0f, (float)_Height, 0.0f);
00197
00198 // Clear the screen accumulatorfor lighting
00199 CloudDiffuse.A = 255;
00200 _CloudScape->_MatClear.setColor (CloudDiffuse);
00201 _Driver->activeVertexBuffer (rVB);
00202 _Driver->renderQuads (_CloudScape->_MatClear, 0, 1);
00203
00204 CUV *pUV;
00205 // Lighting : render the alpha of one layer into rgb of the screen
00206 float oneOverNbW = 1.0f/_NbW;
00207 float oneOverNbH = 1.0f/_NbH;
00208 uint32 previ, prevj;
00209 _Driver->activeVertexBuffer (rVB);
00210 for (j = 0; j < _NbH; ++j)
00211 {
00212 for (i = 0; i < _NbW; ++i)
00213 {
00214 // Add the alpha of the previous layer into the RGB of the destination
00215 if ((i+j) > 0)
00216 {
00217 _Driver->setColorMask (true, true, true, false);
00218 pUV = (CUV*)rVB.getTexCoordPointer (0, 0);
00219 pUV->U = previ*oneOverNbW; pUV->V = prevj*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00220 pUV->U = (previ+1)*oneOverNbW; pUV->V = prevj*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00221 pUV->U = (previ+1)*oneOverNbW; pUV->V = (prevj+1)*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00222 pUV->U = previ*oneOverNbW; pUV->V = (prevj+1)*oneOverNbH;
00223
00224 _CloudTexTmp->ToLight.setBlend (true);
00225 _Driver->renderQuads (_CloudTexTmp->ToLight, 0, 1);
00226 }
00227 // Replace the alpha of the destination by the alpha of the current layer
00228 _Driver->setColorMask (false, false, false, true);
00229
00230 pUV = (CUV*)rVB.getTexCoordPointer (0, 0);
00231 pUV->U = i*oneOverNbW; pUV->V = j*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00232 pUV->U = (i+1)*oneOverNbW; pUV->V = j*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00233 pUV->U = (i+1)*oneOverNbW; pUV->V = (j+1)*oneOverNbH; pUV = (CUV*)( ((uint8*)pUV) + nVSize );
00234 pUV->U = i*oneOverNbW; pUV->V = (j+1)*oneOverNbH;
00235
00236 _CloudTexTmp->ToLight.setBlend (false);
00237 _Driver->renderQuads (_CloudTexTmp->ToLight, 0, 1);
00238
00239 // Copy from accumulator to the texture
00240 _Driver->copyFrameBufferToTexture(_CloudTexTmp->Tex, 0, i*_Width, j*_Height, 0, 0, _Width, _Height);
00241 previ = i;
00242 prevj = j;
00243 }
00244 }
00245 _Driver->setColorMask (true, true, true, true);
00246
00247 _CloudTexTmp->Tex->setFilterMode (ITexture::Linear, ITexture::LinearMipMapOff);
00248 }
|
|
|
Definition at line 251 of file cloud.cpp. References _BillCenter, _BillOldCenter, _BillSize, _BillViewer, _CloudScape, _Driver, NL3D::CCloudScape::_MatClear, _MemBill, _MemOldBill, _OldBillSize, _Pos, _Size, _TexBill, _TexOldBill, NL3D::CCloudScape::_VertexBuffer, NL3D::IDriver::activeVertexBuffer(), calcBill(), NL3D::IDriver::copyFrameBufferToTexture(), NL3D::CVertexBuffer::getVertexCoordPointer(), NL3D::CVertexBuffer::getVertexSize(), NL3D::IDriver::renderQuads(), NL3D::CMaterial::setColor(), setMode2D(), uint32, uint8, NLMISC::CVector::x, NLMISC::CVector::y, and NLMISC::CVector::z.
00252 {
00253 if (_BillSize != 4)
00254 {
00255 _BillSize = 4;
00256 _MemBill = new uint8[4*_BillSize*_BillSize];
00257 _TexBill = new CTextureMem (_MemBill, 4*_BillSize*_BillSize, true, false, _BillSize, _BillSize);
00258 _TexBill->setWrapS (ITexture::Clamp);
00259 _TexBill->setWrapT (ITexture::Clamp);
00260 _TexBill->setFilterMode (ITexture::Linear, ITexture::LinearMipMapOff);
00261 _TexBill->generate();
00262 _TexBill->setReleasable (false);
00263 }
00264 if (_OldBillSize != 4)
00265 {
00266 _OldBillSize = 4;
00267 _MemOldBill = new uint8[4*_OldBillSize*_OldBillSize];
00268 _TexOldBill = new CTextureMem (_MemOldBill, 4*_OldBillSize*_OldBillSize, true, false, _OldBillSize, _OldBillSize);
00269 _TexOldBill->setWrapS (ITexture::Clamp);
00270 _TexOldBill->setWrapT (ITexture::Clamp);
00271 _TexOldBill->setFilterMode (ITexture::Linear, ITexture::LinearMipMapOff);
00272 _TexOldBill->generate();
00273 _TexOldBill->setReleasable (false);
00274 }
00275 setMode2D ();
00276
00277 // Clear background
00278 CVertexBuffer &rVB = _CloudScape->_VertexBuffer;
00279 uint32 nVSize = rVB.getVertexSize ();
00280 CVector *pVertices = (CVector*)rVB.getVertexCoordPointer (0);
00281 *pVertices = CVector(0.0f, 0.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00282 *pVertices = CVector(5.0f, 0.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00283 *pVertices = CVector(5.0f, 5.0f, 0.0f); pVertices = (CVector*)( ((uint8*)pVertices) + nVSize );
00284 *pVertices = CVector(0.0f, 5.0f, 0.0f);
00285 _CloudScape->_MatClear.setColor (CRGBA(0,0,0,0));
00286 _Driver->activeVertexBuffer (rVB);
00287 _Driver->renderQuads (_CloudScape->_MatClear, 0, 1);
00288
00289 _Driver->copyFrameBufferToTexture (_TexBill, 0, 0, 0, 0, 0, 4, 4);
00290 _Driver->copyFrameBufferToTexture (_TexOldBill, 0, 0, 0, 0, 0, 4, 4);
00291
00292 // CMatrix CamMat = pViewer->getMatrix();
00293 // CVector Viewer = CamMat.getPos();
00294 CVector Viewer = CVector(0,0,0);
00295 CVector Center = CVector (_Pos.x+_Size.x/2, _Pos.y+_Size.y/2, _Pos.z+_Size.z/2);
00296 CVector Size = _Size;
00297 CVector I, J, K;
00298 float Left, Right, Top, Bottom, Near, Far;
00299
00300 calcBill (Viewer, Center, Size, I, J, K, Left, Right, Top, Bottom, Near, Far);
00301
00302 _BillOldCenter = _BillCenter;
00303 _BillViewer = Viewer;
00304 _BillCenter = Center;
00305
00306 calcBill (Viewer, Center, Size, I, J, K, Left, Right, Top, Bottom, Near, Far);
00307
00308 _BillOldCenter = _BillCenter;
00309 _BillViewer = Viewer;
00310 _BillCenter = Center;
00311
00312 }
|
|
|
Definition at line 98 of file cloud.h. References _WaitState. Referenced by NL3D::CCloudScape::makeHalfCloud().
00098 { _WaitState = 2; }
|
|
|
Definition at line 751 of file cloud.cpp. References _Driver, NL3D::IDriver::getWindowSize(), NLMISC::CMatrix::identity(), NL3D::CScissor::initFullScreen(), NL3D::IDriver::setFrustum(), NLMISC::CMatrix::setRot(), NL3D::IDriver::setupModelMatrix(), NL3D::IDriver::setupScissor(), NL3D::IDriver::setupViewMatrix(), NL3D::IDriver::setupViewport(), and uint32. Referenced by generate(), light(), and reset().
00752 {
00753 CVector I(1,0,0), J(0,0,1), K(0,-1,0);
00754 CMatrix ViewMatrix;
00755 ViewMatrix.identity ();
00756 ViewMatrix.setRot (I,J,K, true);
00757 CScissor Scissor;
00758 Scissor.initFullScreen();
00759 _Driver->setupScissor (Scissor);
00760 _Driver->setupViewport (CViewport());
00761 uint32 nScreenW, nScreenH;
00762 _Driver->getWindowSize (nScreenW, nScreenH);
00763 _Driver->setFrustum (0, (float)nScreenW, 0, (float)nScreenH, -1, 1, false);
00764 _Driver->setupViewMatrix (ViewMatrix);
00765 _Driver->setupModelMatrix (CMatrix::Identity);
00766 }
|
|
|
Definition at line 91 of file cloud.h. References _Size, NLMISC::CVector::x, and x. Referenced by NL3D::CCloudScape::init().
|
|
|
Definition at line 92 of file cloud.h. References _Size, NLMISC::CVector::y, and y. Referenced by NL3D::CCloudScape::init().
|
|
|
Definition at line 93 of file cloud.h. References _Size, NLMISC::CVector::z, and z. Referenced by NL3D::CCloudScape::init().
|
|
|
Definition at line 96 of file cloud.h. References _CloudTexTmp, and t. Referenced by NL3D::CCloudScape::init().
00096 { _CloudTexTmp = &t; }
|
|
|
Definition at line 95 of file cloud.h. References _CloudTexClamp, and t. Referenced by NL3D::CCloudScape::init().
00095 { _CloudTexClamp = &t; }
|
|
|
Definition at line 87 of file cloud.h. References _LastX, _Pos, NLMISC::CVector::x, and x. Referenced by NL3D::CCloudScape::init(), and NL3D::CCloudScape::makeHalfCloud().
|
|
|
Definition at line 88 of file cloud.h. References _Pos, NLMISC::CVector::y, and y. Referenced by NL3D::CCloudScape::init().
|
|
|
Definition at line 89 of file cloud.h. References _Pos, NLMISC::CVector::z, and z. Referenced by NL3D::CCloudScape::init().
|
|
|
Definition at line 135 of file cloud.h. Referenced by generate(), and init(). |
|
|
Definition at line 159 of file cloud.h. Referenced by dispBill(), genBill(), and reset(). |
|
|
Definition at line 159 of file cloud.h. Referenced by dispBill(), genBill(), and reset(). |
|
|
Definition at line 146 of file cloud.h. Referenced by CCloud(), genBill(), getBillSize(), getMemSize(), init(), and reset(). |
|
|
Definition at line 159 of file cloud.h. Referenced by dispBill(), genBill(), and reset(). |
|
|
Definition at line 139 of file cloud.h. Referenced by CCloud(), disp(), dispBill(), dispXYZ(), genBill(), generate(), light(), and reset(). |
|
|
Definition at line 141 of file cloud.h. Referenced by generate(), and setTexClamp(). |
|
|
Definition at line 140 of file cloud.h. Referenced by disp(), genBill(), generate(), light(), and setTex3DTemp(). |
|
|
Definition at line 128 of file cloud.h. Referenced by generate(), and init(). |
|
|
Definition at line 163 of file cloud.h. Referenced by CCloud(), disp(), dispBill(), dispXYZ(), genBill(), generate(), light(), reset(), and setMode2D(). |
|
|
Definition at line 128 of file cloud.h. Referenced by disp(), generate(), init(), and light(). |
|
|
Definition at line 133 of file cloud.h. Referenced by genBill(), getLastX(), and setX(). |
|
|
Definition at line 147 of file cloud.h. Referenced by dispBill(), genBill(), init(), and reset(). |
|
|
Definition at line 152 of file cloud.h. Referenced by dispBill(), genBill(), init(), and reset(). |
|
|
Definition at line 129 of file cloud.h. Referenced by disp(), dispXYZ(), generate(), init(), and light(). |
|
|
Definition at line 136 of file cloud.h. Referenced by anim(), generate(), and init(). |
|
|
Definition at line 129 of file cloud.h. Referenced by disp(), dispXYZ(), generate(), init(), and light(). |
|
|
Definition at line 151 of file cloud.h. Referenced by CCloud(), genBill(), getMemSize(), init(), and reset(). |
|
|
Definition at line 132 of file cloud.h. Referenced by dispBill(), dispXYZ(), genBill(), getX(), getY(), getZ(), reset(), setX(), setY(), and setZ(). |
|
|
Definition at line 131 of file cloud.h. Referenced by dispBill(), dispXYZ(), genBill(), getSizeX(), getSizeY(), getSizeZ(), init(), reset(), setSizeX(), setSizeY(), and setSizeZ(). |
|
|
Definition at line 148 of file cloud.h. Referenced by dispBill(), genBill(), and reset(). |
|
|
Definition at line 153 of file cloud.h. Referenced by dispBill(), genBill(), and reset(). |
|
|
Definition at line 137 of file cloud.h. Referenced by anim(), CCloud(), generate(), init(), and ~CCloud(). |
|
|
Definition at line 137 of file cloud.h. Referenced by anim(), CCloud(), generate(), init(), and ~CCloud(). |
|
|
Definition at line 155 of file cloud.h. Referenced by CCloud(), dispBill(), genBill(), and setLooping(). |
|
|
Definition at line 128 of file cloud.h. Referenced by disp(), generate(), init(), and light(). |
|
|
Definition at line 137 of file cloud.h. Referenced by anim(), CCloud(), generate(), init(), and ~CCloud(). |
|
|
Definition at line 111 of file cloud.h. Referenced by CCloud(), genBill(), and NL3D::CCloudScape::makeHalfCloud(). |
|
|
Definition at line 110 of file cloud.h. Referenced by CCloud(), light(), and NL3D::CCloudScape::makeHalfCloud(). |
|
|
Definition at line 113 of file cloud.h. Referenced by CCloud(), generate(), and NL3D::CCloudScape::makeHalfCloud(). |
|
|
Definition at line 112 of file cloud.h. Referenced by NL3D::CCloudScape::anim(), CCloud(), generate(), NL3D::CCloudScape::makeHalfCloud(), and NL3D::CCloudScape::render(). |
|
|
Definition at line 108 of file cloud.h. Referenced by dispBill(), NL3D::CCloudScape::init(), and NL3D::CCloudScape::makeHalfCloud(). |
|
|
Definition at line 115 of file cloud.h. Referenced by CCloud(), NL3D::CCloudScape::makeHalfCloud(), and NL3D::CCloudScape::render(). |
|
|
Definition at line 108 of file cloud.h. Referenced by NL3D::CCloudScape::anim(), dispBill(), NL3D::CCloudScape::init(), and NL3D::CCloudScape::makeHalfCloud(). |
1.3.6