Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __I_TERRAIN_SCENE_NODE_H__
00011 #define __I_TERRAIN_SCENE_NODE_H__
00012
00013 #include "ETerrainElements.h"
00014 #include "ISceneNode.h"
00015 #include "IDynamicMeshBuffer.h"
00016 #include "irrArray.h"
00017
00018 namespace irr
00019 {
00020 namespace io
00021 {
00022 class IReadFile;
00023 }
00024 namespace scene
00025 {
00026 class IMesh;
00027
00029
00049 class ITerrainSceneNode : public ISceneNode
00050 {
00051 public:
00053 ITerrainSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
00054 const core::vector3df& position = core::vector3df(0.0f, 0.0f, 0.0f),
00055 const core::vector3df& rotation = core::vector3df(0.0f, 0.0f, 0.0f),
00056 const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f) )
00057 : ISceneNode (parent, mgr, id, position, rotation, scale) {}
00058
00060
00061 virtual const core::aabbox3d<f32>& getBoundingBox() const =0;
00062
00064
00065 virtual const core::aabbox3d<f32>& getBoundingBox(s32 patchX, s32 patchZ) const =0;
00066
00068
00069 virtual u32 getIndexCount() const =0;
00070
00072
00073 virtual IMesh* getMesh() =0;
00074
00076 virtual IMeshBuffer* getRenderBuffer() =0;
00077
00078
00080
00082 virtual void getMeshBufferForLOD(IDynamicMeshBuffer& mb, s32 LOD=0) const =0;
00083
00085
00093 virtual s32 getIndicesForPatch(core::array<u32>& indices,
00094 s32 patchX, s32 patchZ, s32 LOD=0) =0;
00095
00097
00100 virtual s32 getCurrentLODOfPatches(core::array<s32>& LODs) const =0;
00101
00103
00106 virtual void setLODOfPatch(s32 patchX, s32 patchZ, s32 LOD=0) =0;
00107
00109 virtual const core::vector3df& getTerrainCenter() const =0;
00110
00112 virtual f32 getHeight(f32 x, f32 y) const =0;
00113
00115
00117 virtual void setCameraMovementDelta(f32 delta) =0;
00118
00120
00122 virtual void setCameraRotationDelta(f32 delta) =0;
00123
00125
00126 virtual void setDynamicSelectorUpdate(bool bVal) =0;
00127
00129
00135 virtual bool overrideLODDistance(s32 LOD, f64 newDistance) =0;
00136
00138
00147 virtual void scaleTexture(f32 scale = 1.0f, f32 scale2=0.0f) =0;
00148
00150
00155 virtual bool loadHeightMap(io::IReadFile* file,
00156 video::SColor vertexColor=video::SColor(255,255,255,255),
00157 s32 smoothFactor=0) =0;
00158
00160
00170 virtual bool loadHeightMapRAW(io::IReadFile* file, s32 bitsPerPixel=16,
00171 bool signedData=false, bool floatVals=false, s32 width=0,
00172 video::SColor vertexColor=video::SColor(255,255,255,255),
00173 s32 smoothFactor=0) =0;
00174
00175 };
00176
00177 }
00178 }
00179
00180
00181 #endif // __I_TERRAIN_SCENE_NODE_H__
00182