Nirtcpp 2.1.0
Nirtcpp is a high-performance c++ graphics engine.
|
Helper class for creating geometry on the fly. More...
#include <nirtcpp/core/engine/IGeometryCreator.hpp>
Public Member Functions | |
virtual IMesh * | createCubeMesh (const core::vector3df &size=core::vector3df(5.f, 5.f, 5.f), ECUBE_MESH_TYPE type=ECMT_1BUF_12VTX_NA) const =0 |
Creates a simple cube mesh. | |
virtual IMesh * | createHillPlaneMesh (const core::dimension2d< f32 > &tileSize, const core::dimension2d< u32 > &tileCount, video::SMaterial *material, f32 hillHeight, const core::dimension2d< f32 > &countHills, const core::dimension2d< f32 > &textureRepeatCount) const =0 |
Create a pseudo-random mesh representing a hilly terrain. | |
IMesh * | createPlaneMesh (const core::dimension2d< f32 > &tileSize, const core::dimension2d< u32 > &tileCount=core::dimension2du(1, 1), video::SMaterial *material=0, const core::dimension2df &textureRepeatCount=core::dimension2df(1.f, 1.f)) const |
Create a simple rectangular textured plane mesh. | |
virtual IMesh * | createGeoplaneMesh (f32 radius=5.f, u32 rows=16, u32 columns=16) const =0 |
Create a geoplane. | |
virtual IMesh * | createTerrainMesh (video::IImage *texture, video::IImage *heightmap, const core::dimension2d< f32 > &stretchSize, f32 maxHeight, video::IVideoDriver *driver, const core::dimension2d< u32 > &defaultVertexBlockSize, bool debugBorders=false) const =0 |
Create a terrain mesh from an image representing a heightfield. | |
virtual IMesh * | createArrowMesh (const u32 tesselationCylinder=4, const u32 tesselationCone=8, const f32 height=1.f, const f32 cylinderHeight=0.6f, const f32 widthCylinder=0.05f, const f32 widthCone=0.3f, const video::SColor colorCylinder=0xFFFFFFFF, const video::SColor colorCone=0xFFFFFFFF) const =0 |
Create an arrow mesh, composed of a cylinder and a cone. | |
virtual IMesh * | createSphereMesh (f32 radius=5.f, u32 polyCountX=16, u32 polyCountY=16) const =0 |
Create a sphere mesh. | |
virtual IMesh * | createCylinderMesh (f32 radius, f32 length, u32 tesselation, const video::SColor &color=video::SColor(0xffffffff), bool closeTop=true, f32 oblique=0.f, u32 normalType=0) const =0 |
Create a cylinder mesh. | |
virtual IMesh * | createConeMesh (f32 radius, f32 length, u32 tesselation, const video::SColor &colorTop=video::SColor(0xffffffff), const video::SColor &colorBottom=video::SColor(0xffffffff), f32 oblique=0.f) const =0 |
Create a cone mesh. | |
virtual IMesh * | createTorusMesh (f32 majorRadius, f32 minorRadius, u32 majorSegments=32, u32 minorSegments=16, f32 angleStart=0.f, f32 angleEnd=360.f, int capEnds=0) const =0 |
Create a torus mesh. | |
virtual IMesh * | createVolumeLightMesh (const u32 subdivideU=32, const u32 subdivideV=32, const video::SColor footColor=0xffffffff, const video::SColor tailColor=0xffffffff, const f32 lpDistance=8.f, const core::vector3df &lightDim=core::vector3df(1.f, 1.2f, 1.f)) const =0 |
Create a volume light mesh. | |
Public Member Functions inherited from nirt::IReferenceCounted | |
IReferenceCounted () | |
Constructor. | |
virtual | ~IReferenceCounted () |
Destructor. | |
void | grab () const |
Grabs the object. Increments the reference counter by one. | |
bool | drop () const |
Drops the object. Decrements the reference counter by one. | |
s32 | getReferenceCount () const |
Get the reference count. | |
const c8 * | getDebugName () const |
Returns the debug name of the object. | |
Additional Inherited Members | |
Protected Member Functions inherited from nirt::IReferenceCounted | |
void | setDebugName (const c8 *newName) |
Sets the debug name of the object. | |
Helper class for creating geometry on the fly.
You can get an instance of this class through ISceneManager::getGeometryCreator()
|
pure virtual |
Create an arrow mesh, composed of a cylinder and a cone.
tesselationCylinder | Number of quads composing the cylinder. |
tesselationCone | Number of triangles composing the cone's roof. |
height | Total height of the arrow |
cylinderHeight | Total height of the cylinder, should be lesser than total height |
widthCylinder | Diameter of the cylinder |
widthCone | Diameter of the cone's base, should be not smaller than the cylinder's diameter |
colorCylinder | color of the cylinder |
colorCone | color of the cone |
|
pure virtual |
Create a cone mesh.
radius | Radius of the cone. |
length | Length of the cone. |
tesselation | Number of quads around the circumference of the cone. |
colorTop | The color of the top of the cone. |
colorBottom | The color of the bottom of the cone. |
oblique | (to be documented) |
|
pure virtual |
Creates a simple cube mesh.
size | Dimensions of the cube. |
type | One of ECUBE_MESH_TYPE. So you can chose between cubes with single material or independent materials per side. |
|
pure virtual |
Create a cylinder mesh.
radius | Radius of the cylinder. |
length | Length of the cylinder. |
tesselation | Number of quads around the circumference of the cylinder. |
color | The color of the cylinder. |
closeTop | If true, close the ends of the cylinder, otherwise leave them open. |
oblique | X-offset (shear) of top compared to bottom. |
normalType | When 0 side normals are radial from origin. Note that origin is at the bottom. When 1 side normals are flat along top/bottom polygons. NOTE: To get normals which are perpendicular to the side of an oblique cylinder, don't use the oblique parameter. Instead set normalType to 1 and create a cylinder with oblique set to 0. Then use IMeshManipulator::transform with a shear matrix on the returned mesh. You get a shear matrix for an identical effect of this oblique parameter when you set the 4th element of an identity matrix to (oblique/length). |
|
pure virtual |
Create a geoplane.
radius | Radius of the plane |
rows | How many rows to place |
columns | How many columns to place |
|
pure virtual |
Create a pseudo-random mesh representing a hilly terrain.
tileSize | The size of each tile. |
tileCount | The number of tiles in each dimension. |
material | The material to apply to the mesh. |
hillHeight | The maximum height of the hills. |
countHills | The number of hills along each dimension. |
textureRepeatCount | The number of times to repeat the material texture along each dimension. |
|
inline |
Create a simple rectangular textured plane mesh.
tileSize | The size of each tile. |
tileCount | The number of tiles in each dimension. |
material | The material to apply to the mesh. |
textureRepeatCount | The number of times to repeat the material texture along each dimension. |
|
pure virtual |
Create a sphere mesh.
radius | Radius of the sphere |
polyCountX | Number of quads used for the horizontal tiling |
polyCountY | Number of quads used for the vertical tiling |
|
pure virtual |
Create a terrain mesh from an image representing a heightfield.
texture | The texture to apply to the terrain. |
heightmap | An image that will be interpreted as a heightmap. The brightness (average color) of each pixel is interpreted as a height, with a 255 brightness pixel producing the maximum height. |
stretchSize | The size that each pixel will produce, i.e. a 512x512 heightmap and a stretchSize of (10.f, 20.f) will produce a mesh of size 5120.f x 10240.f |
maxHeight | The maximum height of the terrain. |
driver | The current video driver. |
defaultVertexBlockSize | (to be documented) |
debugBorders | (to be documented) |
|
pure virtual |
Create a torus mesh.
Note: Segments might get reduced to ensure it fits into 16-bit meshbuffer. With 255 segments for minor and major circle you'll hit the maximum. When using caps 2 more vertices are added. Note: UV's for caps are probably not useful
majorRadius | Starting from mesh center |
minorRadius | Starting from a circle at majorRadius distance around center |
majorSegments | Segments for major circle. Will use at least 3 segments. |
minorSegments | Segments for minor circle. Will use at least 3 segments. |
angleStart | Start major circle between 0 and 360° and < angleEnd |
angleEnd | End major circle between 0 and 360° and > angleStart |
capEnds | When you don't create a full major circle you might want caps 0 = no caps (default) Bit 1: add cap at angleStart Bit 2: add cap at angleEnd |
|
pure virtual |
Create a volume light mesh.
subdivideU | Horizontal patch count. |
subdivideV | Vertical patch count. |
footColor | Color at the bottom of the light. |
tailColor | Color at the mid of the light. |
lpDistance | Virtual distance of the light point for normals. |
lightDim | Dimensions of the light. |