27     assert(
slices >= 3 && 
"Error: Not enough slices.");
 
   28     assert(
slices > 0 && 
"Error: Not enough stacks.");
 
   29     assert(thetaStartDEG >= 0.0f && thetaStartDEG < 180.0f &&
 
   30            "Error: Polar start angle < 0 or > 180");
 
   31     assert(thetaEndDEG > 0.0f && thetaEndDEG <= 180.0f &&
 
   32            "Error: Polar end angle < 0 or > 180");
 
   33     assert(thetaStartDEG < thetaEndDEG &&
 
   34            "Error: Polar start angle > end angle");
 
   44     _isVolume    = (thetaStartDEG == 0.0f && thetaEndDEG == 180.0f);
 
Toplevel holder of the assets meshes, materials, textures and shaders.
 
Defines a standard CG material with textures and a shader program.
 
SLbool _isVolume
Flag for RT if mesh is a closed volume.
 
SLRevolver is an SLMesh object built out of revolving points.
 
SLbool _smoothLast
flag if the normal of the last point is eqaual to revAxis
 
SLVec3f _revAxis
axis of revolution
 
SLbool _smoothFirst
flag if the normal of the first point is eqaual to -revAxis
 
SLuint _slices
NO. of slices.
 
void buildMesh(SLMaterial *mat=nullptr)
 
SLVVec3f _revPoints
Array revolving points.
 
SLuint _stacks
No. of stacks (mostly used)
 
SLfloat _thetaStartDEG
Polar start angle 0-180deg.
 
SLfloat _thetaEndDEG
Polar end angle 1-180deg.
 
SLfloat _radius
radius of the sphere
 
SLSpheric(SLAssetManager *assetMgr, SLfloat radius, SLfloat thetaStartDEG, SLfloat thetaEndDEG, SLuint stacks=32, SLuint slices=32, SLstring name="spheric mesh", SLMaterial *mat=nullptr)
 
void set(const T X, const T Y, const T Z)
 
void fromSpherical(T r, T theta, T phi)
Calculates the vector from spherical coords r, theta & phi in radians.
 
static const float DEG2RAD