SLProject
4.2.000
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
|
SLRectangle creates a rectangular mesh with a certain resolution. More...
#include <SLRectangle.h>
Public Member Functions | |
SLRectangle (SLAssetManager *assetMgr, const SLVec2f &min, const SLVec2f &max, SLuint resX, SLuint resY, const SLstring &name="rectangle mesh", SLMaterial *mat=nullptr) | |
ctor for rectangle w. min & max corner More... | |
SLRectangle (SLAssetManager *assetMgr, const SLVec2f &min, const SLVec2f &max, const SLVec2f &uv_min, const SLVec2f &uv_max, SLuint resX, SLuint resY, const SLstring &name="rectangle mesh", SLMaterial *mat=nullptr) | |
ctor for rectangle w. min & max corner & tex. coord. More... | |
void | buildMesh (SLMaterial *mat) |
SLRectangle::buildMesh fills in the underlying arrays from the SLMesh object. More... | |
Public Member Functions inherited from SLMesh | |
SLMesh (SLAssetManager *assetMgr, const SLstring &name="Mesh") | |
Construct a new SLMesh::SLMesh object. More... | |
~SLMesh () override | |
The destructor deletes everything by calling deleteData. More... | |
virtual void | init (SLNode *node) |
SLMesh::shapeInit sets the transparency flag of the AABB. More... | |
virtual void | draw (SLSceneView *sv, SLNode *node, SLuint intances=0) |
void | drawIntoDepthBuffer (SLSceneView *sv, SLNode *node, SLMaterial *depthMat) |
Simplified drawing method for shadow map creation. More... | |
void | addStats (SLNodeStats &stats) |
virtual void | buildAABB (SLAABBox &aabb, const SLMat4f &wmNode) |
void | updateAccelStruct () |
SLbool | hit (SLRay *ray, SLNode *node) |
virtual void | preShade (SLRay *ray) |
virtual void | deleteData () |
SLMesh::deleteData deletes all mesh data and vbo's. More... | |
virtual void | deleteDataGpu () |
void | deleteSelected (SLNode *node) |
Deletes the rectangle selected vertices and the dependent triangles. More... | |
void | deleteUnused () |
Deletes unused vertices (= vertices that are not indexed in I16 or I32) More... | |
virtual void | calcMinMax () |
virtual void | calcNormals () |
SLMesh::calcNormals recalculates vertex normals for triangle meshes. More... | |
void | calcCenterRad (SLVec3f ¢er, SLfloat &radius) |
SLbool | hitTriangleOS (SLRay *ray, SLNode *node, SLuint iT) |
virtual void | generateVAO (SLGLVertexArray &vao) |
Generate the Vertex Array Object for a specific shader program. More... | |
void | computeHardEdgesIndices (float angleRAD, float epsilon) |
computes the hard edges and stores the vertex indexes separately More... | |
void | transformSkin (bool forceCPUSkinning, const std::function< void(SLMesh *)> &cbInformNodes) |
Transforms the vertex positions and normals with by joint weights. More... | |
void | deselectPartialSelection () |
SLMaterial * | mat () const |
SLMaterial * | matOut () const |
SLGLPrimitiveType | primitive () const |
const SLAnimSkeleton * | skeleton () const |
SLuint | numI () const |
SLGLVertexArray & | vao () |
SLbool | isSelected () const |
SLfloat | edgeAngleDEG () const |
SLfloat | edgeWidth () const |
SLCol4f | edgeColor () const |
SLVec3f | finalP (SLuint i) |
SLVec3f | finalN (SLuint i) |
SLbool | accelStructIsOutOfDate () |
void | mat (SLMaterial *m) |
void | matOut (SLMaterial *m) |
void | primitive (SLGLPrimitiveType pt) |
void | skeleton (SLAnimSkeleton *skel) |
void | isSelected (bool isSelected) |
void | edgeWidth (SLfloat ew) |
void | edgeAngleDEG (SLfloat ea) |
void | edgeColor (const SLCol4f &ec) |
void | vertexPosEpsilon (SLfloat eps) |
Public Member Functions inherited from SLObject | |
SLObject (const SLstring &Name="", const SLstring &url="") | |
virtual | ~SLObject () |
void | name (const SLstring &Name) |
void | url (const SLstring &url) |
const SLstring & | name () const |
const SLstring & | url () const |
Protected Attributes | |
SLVec3f | _min |
min corner More... | |
SLVec3f | _max |
max corner More... | |
SLVec2f | _uv_min |
min corner tex.coord. More... | |
SLVec2f | _uv_max |
max corner tex.coord. More... | |
SLuint | _resX |
resolution in x direction More... | |
SLuint | _resY |
resolution in y direction More... | |
Protected Attributes inherited from SLMesh | |
SLGLPrimitiveType | _primitive |
Primitive type (default triangles) More... | |
SLMaterial * | _mat |
Pointer to the inside material. More... | |
SLMaterial * | _matOut |
Pointer to the outside material. More... | |
SLGLVertexArray | _vao |
Main OpenGL Vertex Array Object for drawing. More... | |
SLGLVertexArrayExt | _vaoN |
OpenGL VAO for optional normal drawing. More... | |
SLGLVertexArrayExt | _vaoT |
OpenGL VAO for optional tangent drawing. More... | |
SLGLVertexArrayExt | _vaoS |
OpenGL VAO for optional selection drawing. More... | |
SLbool | _isSelected |
Flag if mesh is partially of fully selected. More... | |
SLfloat | _edgeAngleDEG |
Edge crease angle in degrees between face normals (30 deg. default) More... | |
SLfloat | _edgeWidth |
Line width for hard edge drawing. More... | |
SLCol4f | _edgeColor |
Color for hard edge drawing. More... | |
SLfloat | _vertexPosEpsilon |
Vertex position epsilon used in computeHardEdgesIndices. More... | |
SLbool | _isVolume |
Flag for RT if mesh is a closed volume. More... | |
SLAccelStruct * | _accelStruct |
KD-tree or uniform grid. More... | |
SLbool | _accelStructIsOutOfDate |
Flag if accel. struct needs update. More... | |
SLAnimSkeleton * | _skeleton |
The skeleton this mesh is bound to. More... | |
SLVMat4f | _jointMatrices |
Joint matrix vector for this mesh. More... | |
SLbool | _isCPUSkinned |
Flag if mesh has been skinned on CPU during update. More... | |
SLVVec3f * | _finalP |
Pointer to final vertex position vector. More... | |
SLVVec3f * | _finalN |
pointer to final vertex normal vector More... | |
Protected Attributes inherited from SLObject | |
SLstring | _name |
name of an object More... | |
SLstring | _url |
uniform resource locator More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from SLMesh | |
static void | calcTex3DMatrix (SLNode *node) |
Public Attributes inherited from SLMesh | |
SLVVec3f | P |
Vector for vertex positions layout (location = 0) More... | |
SLVVec3f | N |
Vector for vertex normals (opt.) layout (location = 1) More... | |
SLVVec2f | UV [2] |
Array of 2 Vectors for tex. coords. (opt.) layout (location = 2) More... | |
SLVCol4f | C |
Vector of vertex colors (opt.) layout (location = 4) More... | |
SLVVec4f | T |
Vector of vertex tangents (opt.) layout (location = 5) More... | |
SLVVuchar | Ji |
2D Vector of per vertex joint ids (opt.) layout (location = 6) More... | |
SLVVfloat | Jw |
2D Vector of per vertex joint weights (opt.) layout (location = 7) More... | |
SLVVec3f | skinnedP |
temp. vector for CPU skinned vertex positions More... | |
SLVVec3f | skinnedN |
temp. vector for CPU skinned vertex normals More... | |
SLVushort | I16 |
Vector of vertex indices 16 bit. More... | |
SLVuint | I32 |
Vector of vertex indices 32 bit. More... | |
SLVuint | IS32 |
Vector of rectangle selected vertex indices 32 bit. More... | |
SLVushort | IE16 |
Vector of hard edges vertex indices 16 bit (see computeHardEdgesIndices) More... | |
SLVuint | IE32 |
Vector of hard edges vertex indices 32 bit (see computeHardEdgesIndices) More... | |
SLVec3f | minP |
min. vertex in OS More... | |
SLVec3f | maxP |
max. vertex in OS More... | |
SLRectangle creates a rectangular mesh with a certain resolution.
The SLRectangle node draws a rectangle with a minimal and a maximal corner in the x-y-plane. The normal is [0,0,1].
Definition at line 28 of file SLRectangle.h.
SLRectangle::SLRectangle | ( | SLAssetManager * | assetMgr, |
const SLVec2f & | min, | ||
const SLVec2f & | max, | ||
SLuint | resX, | ||
SLuint | resY, | ||
const SLstring & | name = "rectangle mesh" , |
||
SLMaterial * | mat = nullptr |
||
) |
ctor for rectangle w. min & max corner
SLRectangle ctor with min & max corners and its resolutions.
Definition at line 16 of file SLRectangle.cpp.
SLRectangle::SLRectangle | ( | SLAssetManager * | assetMgr, |
const SLVec2f & | min, | ||
const SLVec2f & | max, | ||
const SLVec2f & | uv_min, | ||
const SLVec2f & | uv_max, | ||
SLuint | resX, | ||
SLuint | resY, | ||
const SLstring & | name = "rectangle mesh" , |
||
SLMaterial * | mat = nullptr |
||
) |
ctor for rectangle w. min & max corner & tex. coord.
SLRectangle ctor with min & max corners and its resolutions.
Definition at line 39 of file SLRectangle.cpp.
void SLRectangle::buildMesh | ( | SLMaterial * | mat | ) |
SLRectangle::buildMesh fills in the underlying arrays from the SLMesh object.
Definition at line 65 of file SLRectangle.cpp.
|
protected |
max corner
Definition at line 55 of file SLRectangle.h.
|
protected |
min corner
Definition at line 54 of file SLRectangle.h.
|
protected |
resolution in x direction
Definition at line 58 of file SLRectangle.h.
|
protected |
resolution in y direction
Definition at line 59 of file SLRectangle.h.
|
protected |
max corner tex.coord.
Definition at line 57 of file SLRectangle.h.
|
protected |
min corner tex.coord.
Definition at line 56 of file SLRectangle.h.