SLProject
4.2.000
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
|
SLSphere creates a sphere mesh based on SLRevolver. More...
#include <SLSpheric.h>
Public Member Functions | |
SLSpheric (SLAssetManager *assetMgr, SLfloat radius, SLfloat thetaStartDEG, SLfloat thetaEndDEG, SLuint stacks=32, SLuint slices=32, SLstring name="spheric mesh", SLMaterial *mat=nullptr) | |
SLfloat | radius () |
Public Member Functions inherited from SLRevolver | |
SLRevolver (SLAssetManager *assetMgr, SLVVec3f revolvePoints, SLVec3f revolveAxis, SLuint slices=36, SLbool smoothFirst=false, SLbool smoothLast=false, SLstring name="revolver mesh", SLMaterial *mat=nullptr) | |
ctor for generic revolver mesh More... | |
SLRevolver (SLAssetManager *assetMgr, SLstring name) | |
ctor for derived revolver shapes More... | |
void | buildMesh (SLMaterial *mat=nullptr) |
SLuint | stacks () |
SLuint | slices () |
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 | |
SLfloat | _radius |
radius of the sphere More... | |
SLfloat | _thetaStartDEG |
Polar start angle 0-180deg. More... | |
SLfloat | _thetaEndDEG |
Polar end angle 1-180deg. More... | |
Protected Attributes inherited from SLRevolver | |
SLVVec3f | _revPoints |
Array revolving points. More... | |
SLVec3f | _revAxis |
axis of revolution More... | |
SLuint | _stacks |
No. of stacks (mostly used) More... | |
SLuint | _slices |
NO. of slices. More... | |
SLbool | _smoothFirst |
flag if the normal of the first point is eqaual to -revAxis More... | |
SLbool | _smoothLast |
flag if the normal of the last point is eqaual to revAxis 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... | |
SLSphere creates a sphere mesh based on SLRevolver.
Definition at line 20 of file SLSpheric.h.
SLSpheric::SLSpheric | ( | SLAssetManager * | assetMgr, |
SLfloat | sphereRadius, | ||
SLfloat | thetaStartDEG, | ||
SLfloat | thetaEndDEG, | ||
SLuint | stacks = 32 , |
||
SLuint | slices = 32 , |
||
SLstring | name = "spheric mesh" , |
||
SLMaterial * | mat = nullptr |
||
) |
SLSpheric::SLSpheric ctor for spheric revolution object around the z-axis.
Definition at line 18 of file SLSpheric.cpp.
|
inline |
Definition at line 33 of file SLSpheric.h.
|
protected |
radius of the sphere
Definition at line 36 of file SLSpheric.h.
|
protected |
Polar end angle 1-180deg.
Definition at line 38 of file SLSpheric.h.
|
protected |
Polar start angle 0-180deg.
Definition at line 37 of file SLSpheric.h.