00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NL_VEGETABLE_BLEND_LAYER_MODEL_H
00027 #define NL_VEGETABLE_BLEND_LAYER_MODEL_H
00028
00029 #include "nel/misc/types_nl.h"
00030 #include "3d/transform.h"
00031
00032
00033 namespace NL3D
00034 {
00035
00036
00037 class CVegetableManager;
00038 class CVegetableSortBlock;
00039 class CVegetableBlendLayerRenderObs;
00040 class IDriver;
00041
00042
00043
00044
00045 const NLMISC::CClassId VegetableBlendLayerModelId=NLMISC::CClassId(0x77375163, 0x2fca1003);
00046
00047
00048
00058 class CVegetableBlendLayerModel : public CTransform
00059 {
00060 public:
00062 static void registerBasic();
00063
00064
00066 virtual void initModel();
00067
00068 public:
00069
00072 CVegetableManager *VegetableManager;
00073
00074
00079 std::vector<CVegetableSortBlock*> SortBlocks;
00080
00081
00085 void setWorldPos(const CVector &pos);
00086
00087
00088 protected:
00090 CVegetableBlendLayerModel();
00092 virtual ~CVegetableBlendLayerModel() {}
00093
00094
00095
00096 CTransformHrcObs *_HrcObs;
00097
00098
00099 private:
00100 static IModel *creator() {return new CVegetableBlendLayerModel();}
00101 friend class CVegetableBlendLayerRenderObs;
00102
00104 void render(IDriver *driver);
00105
00106 };
00107
00108
00109
00116 class CVegetableBlendLayerClipObs : public CTransformClipObs
00117 {
00118 public:
00119
00123 virtual bool clip(IBaseClipObs *caller)
00124 {
00125 return true;
00126 }
00127
00128 static IObs *creator() {return new CVegetableBlendLayerClipObs;}
00129
00130 };
00131
00132
00133
00140 class CVegetableBlendLayerRenderObs : public CTransformRenderObs
00141 {
00142 public:
00143
00148 virtual void traverse(IObs *caller);
00149
00150 static IObs *creator() {return new CVegetableBlendLayerRenderObs;}
00151
00152 };
00153
00154
00155 }
00156
00157
00158 #endif // NL_VEGETABLE_BLEND_LAYER_MODEL_H
00159
00160