//----------------------------------------------------------------------- BillboardChain::BillboardChain(const String& name, size_t maxElements, size_t numberOfChains, bool useTextureCoords, bool useColours, bool dynamic) :MovableObject(name), mMaxElementsPerChain(maxElements), mChainCount(numberOfChains), mUseTexCoords(useTextureCoords), mUseVertexColour(useColours), mDynamic(dynamic), mVertexDeclDirty(true), mBuffersNeedRecreating(true), mBoundsDirty(true), mIndexContentDirty(true), mRadius(0.0f), mTexCoordDir(TCD_U), mFaceCamera(true), mNormalBase(Vector3::UNIT_X) { mVertexData = OGRE_NEW VertexData(); mIndexData = OGRE_NEW IndexData(); mOtherTexCoordRange[0] = 0.0f; mOtherTexCoordRange[1] = 1.0f; setupChainContainers(); mVertexData->vertexStart = 0; // index data set up later // set basic white material //this->setMaterialName("BaseWhiteNoLighting"); }
//----------------------------------------------------------------------- PUBillboardChain::PUBillboardChain(const std::string& name, const std::string &texFile, size_t maxElements, size_t numberOfChains, bool useTextureCoords, bool useColours, bool dynamic) :_maxElementsPerChain(maxElements), _chainCount(numberOfChains), _useTexCoords(useTextureCoords), _useVertexColour(useColours), _dynamic(dynamic), _vertexDeclDirty(true), _buffersNeedRecreating(true), _boundsDirty(true), _indexContentDirty(true), _vertexContentDirty(true), _texCoordDir(TCD_U), _faceCamera(true), _normalBase(Vec3::UNIT_X), _meshCommand(nullptr), _texture(nullptr), _glProgramState(nullptr), _indexBuffer(nullptr), _vertexBuffer(nullptr) { _otherTexCoordRange[0] = 0.0f; _otherTexCoordRange[1] = 1.0f; setupChainContainers(); init(texFile); }
//----------------------------------------------------------------------- BillboardChain::BillboardChain(const String& name, size_t maxElements, size_t numberOfChains, bool useTextureCoords, bool useColours, bool dynamic) :MovableObject(name), mMaxElementsPerChain(maxElements), mChainCount(numberOfChains), mUseTexCoords(useTextureCoords), mUseVertexColour(useColours), mDynamic(dynamic), mVertexDeclDirty(true), mBuffersNeedRecreating(true), mBoundsDirty(true), mIndexContentDirty(true), mVertexContentDirty(true), mRadius(0.0f), mTexCoordDir(TCD_U), mVertexCameraUsed(0), mFaceCamera(true), mNormalBase(Vector3::UNIT_X) { mVertexData.reset(new VertexData()); mIndexData.reset(new IndexData()); mOtherTexCoordRange[0] = 0.0f; mOtherTexCoordRange[1] = 1.0f; setupChainContainers(); mVertexData->vertexStart = 0; // index data set up later // set basic white material mMaterial = MaterialManager::getSingleton().getDefaultMaterial(false); mMaterial->load(); }
//----------------------------------------------------------------------- PUBillboardChain::PUBillboardChain(const std::string& /*name*/, const std::string &texFile, size_t maxElements, size_t numberOfChains, bool useTextureCoords, bool useColours, bool dynamic) :_maxElementsPerChain(maxElements), _chainCount(numberOfChains), _useTexCoords(useTextureCoords), _useVertexColour(useColours), _dynamic(dynamic), _vertexDeclDirty(true), _buffersNeedRecreating(true), _boundsDirty(true), _indexContentDirty(true), _vertexContentDirty(true), _texCoordDir(TCD_U), _faceCamera(true), _normalBase(Vec3::UNIT_X), _meshCommand(nullptr), _texture(nullptr), _glProgramState(nullptr), _indexBuffer(nullptr), _vertexBuffer(nullptr), _texFile(texFile) { _stateBlock = RenderState::StateBlock::create(); CC_SAFE_RETAIN(_stateBlock); _stateBlock->setCullFace(false); _stateBlock->setCullFaceSide(RenderState::CULL_FACE_SIDE_BACK); _stateBlock->setDepthTest(false); _stateBlock->setDepthWrite(false); _stateBlock->setBlend(true); _otherTexCoordRange[0] = 0.0f; _otherTexCoordRange[1] = 1.0f; setupChainContainers(); init(texFile); }
//----------------------------------------------------------------------- void PUBillboardChain::setNumberOfChains(size_t numChains) { _chainCount = numChains; setupChainContainers(); _buffersNeedRecreating = _indexContentDirty = _vertexContentDirty = true; }
//----------------------------------------------------------------------- void PUBillboardChain::setMaxChainElements(size_t maxElements) { _maxElementsPerChain = maxElements; setupChainContainers(); _buffersNeedRecreating = _indexContentDirty = _vertexContentDirty = true; }
//----------------------------------------------------------------------- void BillboardChain::setNumberOfChains(size_t numChains) { mChainCount = numChains; setupChainContainers(); mBuffersNeedRecreating = mIndexContentDirty = true; }
//----------------------------------------------------------------------- void BillboardChain::setMaxChainElements(size_t maxElements) { mMaxElementsPerChain = maxElements; setupChainContainers(); mBuffersNeedRecreating = mIndexContentDirty = true; }
void ElBillboardChain::setMaxChainElements(size_t maxElements) { mMaxElements = maxElements; setupChainContainers(); mNeedUpdateVertices = true; }