A CVegetableBlendLayerModel does not have to be created by user. More...
#include <vegetable_blend_layer_model.h>
Inherits NL3D::CTransform.
Public Member Functions | |
| void | setWorldPos (const CVector &pos) |
| Ugly but it works: setup directly both the worldMatrix and the localMatrix. | |
CTransform traverse specialisation | |
| virtual bool | clip () |
| clip method called by traverseClip(). deafult is always visible | |
| virtual void | traverseRender () |
| no-op by default | |
Static Public Member Functions | |
| static void | registerBasic () |
| Call at the begining of the program, to register the model. | |
Public Attributes | |
| CVegetableManager * | VegetableManager |
| The vegetableManager which create us, and will delete us. | |
| std::vector < CVegetableSortBlock * > | SortBlocks |
| Public (for vegetableManager only!!) list of vegetable SortBlocks to render. | |
Protected Member Functions | |
| CVegetableBlendLayerModel () | |
| Constructor. | |
| virtual | ~CVegetableBlendLayerModel () |
| Destructor. | |
Private Member Functions | |
| void | render (IDriver *driver) |
| render method | |
Static Private Member Functions | |
| static CTransform * | creator () |
A CVegetableBlendLayerModel does not have to be created by user.
It is an internal class of CVegetableManager. It is used to draw AlphaBlend ZSort rdrPass vegetables. Thoses vegetables are rendered in separate Z ordered layer, so transparency with other transparents objects is well performed (as best as it can).
Definition at line 55 of file vegetable_blend_layer_model.h.
| NL3D::CVegetableBlendLayerModel::CVegetableBlendLayerModel | ( | ) | [protected] |
Constructor.
Definition at line 49 of file vegetable_blend_layer_model.cpp.
References NL3D::CTransform::setIsRenderable(), NL3D::CTransform::setOpacity(), NL3D::CTransform::setTransparency(), and VegetableManager.
Referenced by creator().
| virtual NL3D::CVegetableBlendLayerModel::~CVegetableBlendLayerModel | ( | ) | [inline, protected, virtual] |
Destructor.
Definition at line 94 of file vegetable_blend_layer_model.h.
| virtual bool NL3D::CVegetableBlendLayerModel::clip | ( | ) | [inline, virtual] |
clip method called by traverseClip(). deafult is always visible
Reimplemented from NL3D::CTransform.
Definition at line 83 of file vegetable_blend_layer_model.h.
| static CTransform* NL3D::CVegetableBlendLayerModel::creator | ( | ) | [inline, static, private] |
Reimplemented from NL3D::CTransform.
Definition at line 98 of file vegetable_blend_layer_model.h.
References CVegetableBlendLayerModel().
Referenced by registerBasic().
| void NL3D::CVegetableBlendLayerModel::registerBasic | ( | ) | [static] |
Call at the begining of the program, to register the model.
Reimplemented from NL3D::CTransform.
Definition at line 42 of file vegetable_blend_layer_model.cpp.
References creator(), NL3D::CScene::registerModel(), NL3D::TransformId, and NL3D::VegetableBlendLayerModelId.
Referenced by NL3D::CScene::registerBasics().
| void NL3D::CVegetableBlendLayerModel::render | ( | IDriver * | driver | ) | [private] |
render method
Definition at line 75 of file vegetable_blend_layer_model.cpp.
References NL3D::CVegetableSortBlock::_NTriangles, NL3D::CVegetableManager::_NumVegetableFaceRendered, NL3D::CVegetableSortBlock::_QuadrantId, NL3D::CVegetableSortBlock::_SortedTriangleArray, NL3D::CVegetableSortBlock::_SortedTriangleIndices, NL3D::CVegetableVBAllocator::activate(), NL3D::IDriver::activeIndexBuffer(), NL3D::CVegetableManager::exitRenderStateForBlendLayerModel(), NL3D::CIndexBuffer::getFormat(), NL3D::CVegetableManager::getVBAllocatorForRdrPassAndVBHardMode(), H_AUTO, NL3D::CIndexBuffer::Indices16, NL3D::CIndexBuffer::Indices32, NL3D_VEGETABLE_RDRPASS_UNLIT_2SIDED_ZSORT, nlassert, NL3D::CPrimitiveProfile::NTriangles, NL3D::IDriver::profileRenderedPrimitives(), NL3D::IDriver::renderSimpleTriangles(), NL3D::CVegetableManager::setupRenderStateForBlendLayerModel(), SortBlocks, VegetableManager, and NL3D::CVegetableSortBlock::ZSortHardMode.
Referenced by traverseRender().
| void NL3D::CVegetableBlendLayerModel::setWorldPos | ( | const CVector & | pos | ) |
Ugly but it works: setup directly both the worldMatrix and the localMatrix.
NB: LayerModels are always created in the root.
Definition at line 63 of file vegetable_blend_layer_model.cpp.
References NL3D::CTransform::_LocalMatrix, NL3D::CTransform::_WorldMatrix, and NLMISC::CMatrix::setPos().
| void NL3D::CVegetableBlendLayerModel::traverseRender | ( | ) | [virtual] |
no-op by default
Reimplemented from NL3D::CTransform.
Definition at line 154 of file vegetable_blend_layer_model.cpp.
References NL3D::CRenderTrav::getDriver(), NL3D::CTransform::getOwnerScene(), NL3D::CScene::getRenderTrav(), and render().
Public (for vegetableManager only!!) list of vegetable SortBlocks to render.
this is a vector<> because not so much reallocation, and it is just an array of ptrs, so very little memory load.
Definition at line 72 of file vegetable_blend_layer_model.h.
Referenced by render().
The vegetableManager which create us, and will delete us.
Definition at line 65 of file vegetable_blend_layer_model.h.
Referenced by CVegetableBlendLayerModel(), and render().
1.6.1