chai3d Namespace Reference

Classes

class  cAlgorithmFingerProxy
 This class implements a finger-proxy force rendering algorithm. More...
 
class  cAlgorithmPotentialField
 This class implements a force algorithms for handling all haptic effects associated with objects. More...
 
class  cAudioBuffer
 This class implements an audio buffer. More...
 
class  cAudioDevice
 This class implements an audio device context. More...
 
class  cAudioSource
 This class implements an audio source. More...
 
class  cBackground
 This class implements a 2D background widget. More...
 
class  cBitmap
 This class implements a 2D bitmap widget. More...
 
class  cCamera
 This class implements a virtual camera. More...
 
class  cCollisionAABB
 This class implements an axis-aligned bounding box collision detector. More...
 
class  cCollisionAABBBox
 This structure implements the boundary nodes of an axis-aligned bounding box. More...
 
class  cCollisionAABBNode
 This structure implements a tree node inside an AABB collision tree. More...
 
class  cCollisionBrute
 This class implements a brute force approach for collision detection. More...
 
struct  cCollisionEvent
 This structure stores the data related to a collision event. More...
 
class  cCollisionRecorder
 This class implements a collision detection recorder that stores all collision events that are reported by a collision detector. More...
 
struct  cCollisionSettings
 This structure stores the collision settings that are passed to a collision detector when querying for collisions. More...
 
struct  cColorb
 This class defines a color using a GLubyte representation for each component. More...
 
struct  cColorf
 This class defines a color using a GLfloat representation for each component. More...
 
class  cDeltaDevice
 This class implements an interface to all Force Dimension and Novint haptic devices. More...
 
class  cDial
 This class implements a 2D dial widget. More...
 
class  cDirectionalLight
 This class implements a directional light source. More...
 
class  cDisplayList
 This class provides support for OpenGL display lists. More...
 
class  cEffectMagnet
 This class implements a haptic magnetic effect. More...
 
class  cEffectStickSlip
 This class implements a haptic stick and slip effect. More...
 
class  cEffectSurface
 This class implements a haptic surface effect. More...
 
class  cEffectVibration
 This class implements a haptic vibration effect. More...
 
class  cEffectViscosity
 This class implements a haptic viscosity effect. More...
 
class  cFileXML
 
class  cFog
 This class implements fog inside the world. More...
 
class  cFont
 This class implements support for 2D fonts. More...
 
class  cFrameBuffer
 This class implements an OpenGL framebuffer. More...
 
class  cFrequencyCounter
 This class implements a frequency counter. More...
 
class  cGenericArray
 This class implements an abstract class for describing geometrical elements composed of vertices. More...
 
class  cGenericCollision
 This class implements a base class for collision detection. More...
 
class  cGenericDevice
 This class implements an abstract class for hardware devices. More...
 
class  cGenericEffect
 This class implements a base class for haptic effects. More...
 
class  cGenericForceAlgorithm
 This class implements a base class for modeling force rendering algorithms. More...
 
class  cGenericHapticDevice
 This class implements a base class for haptic devices. More...
 
class  cGenericLight
 This class implements a base class for modeling light sources. More...
 
class  cGenericObject
 This class implements a base class for all 2D or 3D objects in CHAI3D. More...
 
class  cGenericTexture
 This class implements a base class for textures. More...
 
class  cGenericTool
 This class implements a base class for modeling haptic tools. More...
 
class  cGenericType
 This class implements an abstract type. More...
 
class  cGenericWidget
 This class implements a base class for widgets. More...
 
class  cHapticDeviceHandler
 This class implements a universal haptic device handler. More...
 
struct  cHapticDeviceInfo
 This structure stores all technical specifications of a haptic device. More...
 
class  cHapticPoint
 This class implements a haptic point on a tool. More...
 
class  cImage
 This class implements a 2D image data structure. More...
 
struct  cInteractionEvent
 This structure stores information associated with the interaction of a haptic tool with a shape primitive. More...
 
class  cInteractionRecorder
 This class stores a list of interaction events. More...
 
class  cLabel
 This class implements a 2D label widget to display one line of text. More...
 
class  cLeapDevice
 This class implements an interface to the Leap Motion tracker interface. More...
 
class  cLevel
 This class implements a 2D level display widget. More...
 
struct  cMarchingCubeGridCell
 
struct  cMarchingCubeTriangle
 
class  cMaterial
 This class models material properties. More...
 
struct  cMatrix3d
 This class implements a 3D matrix. More...
 
class  cMesh
 This class implements a 3D polygonal mesh. More...
 
class  cMultiImage
 This class implements an array of 2D image structures. More...
 
class  cMultiMesh
 This class implements a 3D multi-mesh object. More...
 
class  cMultiPoint
 This class implements 3D point cloud object. More...
 
class  cMultiSegment
 This class implements a collection 3D segments. More...
 
class  cMutex
 This class implements a mutex. More...
 
class  cMyCustomDevice
 This class is a interface to support custom haptic devices (template). More...
 
class  cNormalMap
 This class implements a normal map. More...
 
class  cPanel
 This class implements a 2D panel widget. More...
 
class  cPhantomDevice
 This class implements an interface to all 3D-System Phantom haptic devices. More...
 
class  cPointArray
 This class implements an array of 3D points. More...
 
class  cPositionalLight
 This class implements a positional light source. More...
 
class  cPrecisionClock
 This class implements a high precision clock. More...
 
struct  cQuaternion
 This class implements a quaternion. More...
 
struct  cRenderOptions
 This structures provide a containers for storing rendering options that are passed through the scenegraph when rendering the world. (For internal OpenGL use). More...
 
class  cScope
 This class implements a 2D scope to display signals. More...
 
class  cSegmentArray
 This class implements an array of 3D segments. More...
 
class  cShader
 This class implements a shader primitive. More...
 
class  cShaderProgram
 This class implements a shader program primitive. More...
 
class  cShadowMap
 This class implements a shadow map for spot lights (cSpotLight). More...
 
class  cShapeBox
 This class implements a 3D shape box. More...
 
class  cShapeCylinder
 This class implements a 3D shape cylinder. More...
 
class  cShapeEllipsoid
 This class implements a 3D shape ellipsoid. More...
 
class  cShapeLine
 This class implements a 3D line. More...
 
class  cShapeSphere
 This class implements a 3D shape sphere. More...
 
class  cShapeTorus
 This class implements a 3D shape torus. More...
 
class  cSixenseDevice
 This class implements an interface to the Sixense Razor Hydra magnetic tracker interface. More...
 
class  cSpotLight
 This class implements a spot light source. More...
 
class  cTexture1d
 This class implements a 1D texture map. More...
 
class  cTexture2d
 This class implements a 2D texture map. More...
 
class  cTexture3d
 This class implements a 3D texture map. More...
 
class  cTextureVideo
 This class implements a video texture map. More...
 
class  cThread
 This class implements support for threads. More...
 
class  cToolCursor
 This class implements a cursor using a single haptic point. More...
 
class  cToolGripper
 This class implements a gripper using a two haptic points. More...
 
struct  cTransform
 This class implements a 4D transformation matrix encoded as column-major. More...
 
class  cTriangleArray
 This class implements an array of 3D triangles. More...
 
struct  cVector3d
 This class implements a 3D vector. More...
 
class  cVertexArray
 This class implements array of 3D vertices. More...
 
struct  cVertexArrayOptions
 This structure manages user options when creating vertex arrays. More...
 
class  cVideo
 This class implements support for video files of the OGG/Vorbis format. More...
 
class  cViewPanel
 This class implements a 2D display panel associated with a framebuffer. More...
 
class  cVoxelObject
 This class implements a 3D volumetric object composed of voxels. More...
 
class  cWorld
 This class implements a virtual world. More...
 

Typedefs

typedef std::shared_ptr< cDeltaDevicecDeltaDevicePtr
 
typedef std::shared_ptr< cGenericHapticDevicecGenericHapticDevicePtr
 
typedef std::shared_ptr< cLeapDevicecLeapDevicePtr
 
typedef std::shared_ptr< cMyCustomDevicecMyCustomDevicePtr
 
typedef std::shared_ptr< cPhantomDevicecPhantomDevicePtr
 
typedef std::shared_ptr< cSixenseDevicecSixenseDevicePtr
 
typedef std::shared_ptr< cFrameBuffercFrameBufferPtr
 
typedef std::shared_ptr< cFontcFontPtr
 
typedef std::shared_ptr< cGenericArraycGenericArrayPtr
 
typedef std::shared_ptr< cImagecImagePtr
 
typedef std::shared_ptr< cMultiImagecMultiImagePtr
 
typedef std::shared_ptr< cPointArraycPointArrayPtr
 
typedef std::shared_ptr< cSegmentArraycSegmentArrayPtr
 
typedef std::shared_ptr< cTriangleArraycTriangleArrayPtr
 
typedef std::shared_ptr< cVertexArraycVertexArrayPtr
 
typedef std::shared_ptr< cVideocVideoPtr
 
typedef std::shared_ptr< cGenericTexturecGenericTexturePtr
 
typedef std::shared_ptr< cMaterialcMaterialPtr
 
typedef std::shared_ptr< cNormalMapcNormalMapPtr
 
typedef std::shared_ptr< cTexture1dcTexture1dPtr
 
typedef std::shared_ptr< cTexture2dcTexture2dPtr
 
typedef std::shared_ptr< cTexture3dcTexture3dPtr
 
typedef std::shared_ptr< cTextureVideocTextureVideoPtr
 
typedef std::shared_ptr< cShadercShaderPtr
 
typedef std::shared_ptr< cShaderProgramcShaderProgramPtr
 

Enumerations

enum  cAABBNodeType { C_AABB_NODE_INTERNAL, C_AABB_NODE_LEAF, C_AABB_NOT_DEFINED }
 Internal AABB Node Types. More...
 
enum  cCollisionType {
  C_COL_NOT_DEFINED, C_COL_SHAPE, C_COL_POINT, C_COL_SEGMENT,
  C_COL_TRIANGLE, C_COL_VOXEL
}
 
enum  cHapticDeviceModel {
  C_HAPTIC_DEVICE_VIRTUAL, C_HAPTIC_DEVICE_DELTA_3, C_HAPTIC_DEVICE_DELTA_6, C_HAPTIC_DEVICE_OMEGA_3,
  C_HAPTIC_DEVICE_OMEGA_6, C_HAPTIC_DEVICE_OMEGA_7, C_HAPTIC_DEVICE_SIGMA_6P, C_HAPTIC_DEVICE_SIGMA_7,
  C_HAPTIC_DEVICE_FALCON, C_HAPTIC_DEVICE_XTH_1, C_HAPTIC_DEVICE_XTH_2, C_HAPTIC_DEVICE_MPR,
  C_HAPTIC_DEVICE_KSD_1, C_HAPTIC_DEVICE_VIC_1, C_HAPTIC_DEVICE_PHANTOM_TOUCH, C_HAPTIC_DEVICE_PHANTOM_OMNI,
  C_HAPTIC_DEVICE_PHANTOM_DESKTOP, C_HAPTIC_DEVICE_PHANTOM_15_6DOF, C_HAPTIC_DEVICE_PHANTOM_30_6DOF, C_HAPTIC_DEVICE_PHANTOM_OTHER,
  C_TRACKER_DEVICE_SIXENSE, C_TRACKER_DEVICE_LEAP, C_HAPTIC_DEVICE_CUSTOM
}
 
enum  cStereoMode {
  C_STEREO_DISABLED, C_STEREO_ACTIVE, C_STEREO_PASSIVE_LEFT_RIGHT, C_STEREO_PASSIVE_TOP_BOTTOM,
  C_STEREO_PASSIVE_DUAL_DISPLAY
}
 
enum  cEyeMode { C_STEREO_LEFT_EYE, C_STEREO_RIGHT_EYE }
 
enum  cEulerOrder {
  C_EULER_ORDER_XYZ, C_EULER_ORDER_XYX, C_EULER_ORDER_XZY, C_EULER_ORDER_XZX,
  C_EULER_ORDER_YZX, C_EULER_ORDER_YZY, C_EULER_ORDER_YXZ, C_EULER_ORDER_YXY,
  C_EULER_ORDER_ZXY, C_EULER_ORDER_ZXZ, C_EULER_ORDER_ZYX, C_EULER_ORDER_ZYZ
}
 
enum  cShaderType { C_VERTEX_SHADER = 0x0001, C_FRAGMENT_SHADER = 0x0002, C_GEOMETRY_SHADER = 0X0003 }
 
enum  CThreadPriority { CTHREAD_PRIORITY_GRAPHICS, CTHREAD_PRIORITY_HAPTICS }
 

Functions

bool cLoadFileWAV (const std::string &a_filename, unsigned char *&a_data, int *a_size, int *a_frequency, bool *a_stereo, unsigned short *a_bitsPerSample)
 This function loads a WAV audio file. More...
 
bool cLoadFileBMP (cImage *a_image, const std::string &a_filename)
 This function loads a BMP image file. More...
 
bool cSaveFileBMP (cImage *a_image, const std::string &a_filename)
 This function saves a BMP image file. More...
 
bool cLoadFileGIF (cImage *a_image, const std::string &a_filename)
 This function loads a GIF image file. More...
 
bool cSaveFileGIF (cImage *a_image, const std::string &a_filename)
 This function saves a GIF image file. More...
 
bool cLoadFileJPG (cImage *a_image, const std::string &a_filename)
 This function loads a JPG image file. More...
 
bool cLoadJPG (cImage *a_image, const unsigned char *a_buffer, unsigned int a_len)
 This function loads a PNG image buffer. More...
 
bool cSaveFileJPG (cImage *a_image, const std::string &a_filename)
 This function saves a JPG image file. More...
 
bool cSaveJPG (cImage *a_image, unsigned char **a_buffer, unsigned int *a_len)
 This function saves a JPG image buffer. More...
 
bool cLoadFilePNG (cImage *a_image, const std::string &a_filename)
 This function loads a PNG image file. More...
 
bool cLoadPNG (cImage *a_image, const unsigned char *a_buffer, unsigned int a_len)
 This function loads a PNG image buffer. More...
 
bool cSaveFilePNG (cImage *a_image, const std::string &a_filename)
 This function saves a PNG image file. More...
 
bool cSavePNG (cImage *a_image, unsigned char **a_buffer, unsigned int *a_len)
 This function saves a PNG image buffer. More...
 
bool cLoadFilePPM (cImage *a_image, const std::string &a_filename)
 This function loads a PPM image file. More...
 
bool cSaveFilePPM (cImage *a_image, const std::string &a_filename)
 This function saves a PPM image file. More...
 
bool cLoadFileRAW (cImage *a_image, const std::string &a_filename)
 This function loads a RAW image file. More...
 
bool cSaveFileRAW (cImage *a_image, const std::string &a_filename)
 This function saves a RAW image file. More...
 
bool cLoadFile3DS (cMultiMesh *a_object, const std::string &a_filename)
 This function loads a 3DS model file. More...
 
bool cSaveFile3DS (cMultiMesh *a_object, const std::string &a_filename)
 This function saves a 3DS model file. More...
 
bool cLoadFileOBJ (cMultiMesh *a_object, const std::string &a_filename)
 This function loads an OBJ model file. More...
 
bool cSaveFileOBJ (cMultiMesh *a_object, const std::string &a_filename)
 This function saves an OBJ model file. More...
 
bool cLoadFileSTL (cMultiMesh *a_object, const std::string &a_filename)
 This function loads an STL model file. More...
 
bool cSaveFileSTL (cMultiMesh *a_object, const std::string &a_filename)
 This function saves an STL model file. More...
 
GLubyte cColorFtoB (GLfloat a_value)
 This function converts a color component from GLfloat type to GLubyte type. More...
 
GLfloat cColorBtoF (GLubyte a_value)
 This function converts a color component from GLubyte type to GLfloat type. More...
 
void cLookAt (const cVector3d &a_eye, const cVector3d &a_at, const cVector3d &a_up)
 This function aligns the current z-axis with a reference frame (similar to function gluLookAt). More...
 
void cDrawFrame (const double &a_scale=1.0)
 This function draws an x-y-z frame. More...
 
void cDrawFrame (const double &a_axisLengthScale, const double &a_axisThicknessScale)
 This function draws an x-y-z frame. More...
 
void cDrawWireBox (const double &a_xMin, const double &a_xMax, const double &a_yMin, const double &a_yMax, const double &a_zMin, const double &a_zMax)
 This function draws a box using lines. More...
 
void cDrawSphere (const double &a_radius, const unsigned int a_numSlices=10, const unsigned int a_numStacks=10)
 This function draws a sphere. More...
 
void cDrawArrow (const cVector3d &a_arrowStart, const cVector3d &a_arrowTip, const double a_width=0.05)
 This function draws an arrow on the z-axis using a cone and a cylinder. More...
 
void cDrawSolidTorus (const double &a_innerRadius, const double &a_outerRadius, const int a_sides, const int a_rings)
 This function draws a torus. More...
 
void cCreatePlane (cMesh *a_mesh, const double &a_lengthX, const double &a_lengthY, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a plane. More...
 
void cCreatePlane2 (cMesh *a_mesh, const double &a_lengthX, const double &a_lengthY, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_colorTopLeft=cColorf(1.0, 1.0, 1.0, 1.0), const cColorf &a_colorTopRight=cColorf(1.0, 1.0, 1.0, 1.0), const cColorf &a_colorBottomLeft=cColorf(1.0, 1.0, 1.0, 1.0), const cColorf &a_colorBottomRight=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a plane. More...
 
void cCreateMap (cMesh *a_mesh, const double &a_lengthX, const double &a_lengthY, const unsigned int a_numSidesX=10, const unsigned int a_numSidesY=10, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a height map. Similar to a map, but with more triangles. More...
 
void cCreateDisk (cMesh *a_mesh, const double &a_radiusX, const double &a_radiusY, const unsigned int a_numSlices=36, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a disk. More...
 
void cCreatePanel (cMesh *a_mesh, const double &a_lengthX, const double &a_lengthY, const double &a_radiusCorners=0, const int &a_numSegmentsPerCorner=8, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a panel with optional rounded corners. More...
 
void cCreatePanel2 (cMesh *a_mesh, const double &a_lengthX, const double &a_lengthY, const double &a_cornerTopLeftRadius=0, const double &a_cornerTopRightRadius=0, const double &a_cornerBottomLeftRadius=0, const double &a_cornerBottomRightRadius=0, const int &a_numSegmentsPerCorner=8, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_colorTopLeft=cColorf(0.5f, 0.5f, 0.5f, 1.0f), const cColorf &a_colorTopRight=cColorf(0.5f, 0.5f, 0.5f, 1.0f), const cColorf &a_colorBottomLeft=cColorf(0.3f, 0.3f, 0.3f, 1.0f), const cColorf &a_colorBottomRight=cColorf(0.3f, 0.3f, 0.3f, 1.0f))
 This function creates a panel with optional rounded corners. More...
 
void cCreateBox (cMesh *a_mesh, const double &a_lengthX, const double &a_lengthY, const double &a_lengthZ, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a box. More...
 
void cCreateCylinder (cMesh *a_mesh, const double &a_height, const double &a_radius, const unsigned int a_numSides=32, const unsigned int a_numHeightSegments=1, const unsigned int a_numRings=1, const bool a_includeTop=true, const bool a_includeBottom=true, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a cylinder. More...
 
void cCreateCone (cMesh *a_mesh, const double &a_height, const double &a_radiusBottom, const double &a_radiusTop=0.0, const unsigned int a_numSides=32, const unsigned int a_numHeightSegments=1, const unsigned int a_numRings=1, const bool a_includeBottom=true, const bool a_includeTop=true, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a cone. More...
 
void cCreatePipe (cMesh *a_mesh, const double &a_height, const double &a_innerRadius, const double &a_outerRadius, const unsigned int a_numSides=32, const unsigned int a_numHeightSegments=1, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a pipe. More...
 
void cCreateSphere (cMesh *a_mesh, const double &a_radius, const unsigned int a_numSlices=32, const unsigned int a_numStacks=32, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a sphere. More...
 
void cCreateEllipsoid (cMesh *a_mesh, const double &a_radiusX, const double &a_radiusY, const double &a_radiusZ, const unsigned int a_numSlices=32, const unsigned int a_numStacks=32, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates an ellipsoid. More...
 
void cCreateRing (cMesh *a_mesh, const double &a_innerRadius, const double &a_outerRadius, const unsigned int a_numSides=32, const unsigned int a_numRings=32, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a ring. More...
 
void cCreateRingSection (cMesh *a_mesh, const double &a_innerRadius0, const double &a_innerRadius1, const double &a_outerRadius, const double &a_coverageAngleDEG=360, const bool a_includeExtremityFaces=true, const unsigned int a_numSides=32, const unsigned int a_numRings=32, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a ring section. More...
 
void cCreateSquarePyramid (cMesh *a_mesh, const double &a_height, const double &a_baseSize, const bool a_includeBottom=true, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a pyramid. More...
 
void cCreateTeaPot (cMesh *a_mesh, const double &a_size, const int &a_quality=4, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a tea pot. More...
 
void cCreateArrow (cMesh *a_mesh, const double &a_length=0.4, const double &a_radiusShaft=0.01, const double &a_lengthTip=0.1, const double &a_radiusTip=0.03, const bool a_includeTipsAtBothExtremities=false, const unsigned int a_numSides=32, const cVector3d &a_direction=cVector3d(0, 0, 1), const cVector3d &a_pos=cVector3d(0, 0, 0), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates an arrow. More...
 
void cCreateCircularArrow (cMesh *a_mesh, const double &a_innerRadius0=0.05, const double &a_innerRadius1=0.05, const double &a_outerRadius=0.3, const double &a_lengthTip=0.2, const double &a_radiusTip=0.1, const double &a_coverageAngleDEG=270, const bool a_includeTipsAtBothExtremities=false, const unsigned int a_numSides=32, const unsigned int a_numRings=32, const cVector3d &a_direction=cVector3d(0, 0, 1), const cVector3d &a_pos=cVector3d(0, 0, 0), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates an circular arrow. More...
 
void cCreateBezierPatch (cMesh *a_mesh, const cVector3d *a_controlPoints, const int a_numDivisions=8, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a Bezier patch. More...
 
void cCreateTeaPot (cMesh *a_mesh, const double &a_size, const cVector3d &a_pos=cVector3d(0, 0, 0), const cMatrix3d &a_rot=cIdentity3d(), const cColorf &a_color=cColorf(1.0, 1.0, 1.0, 1.0))
 This function creates a tea pot. More...
 
bool SECTION_RENDER_PARTS_WITH_MATERIALS (cRenderOptions a_options, bool a_useTransparency)
 
bool SECTION_RENDER_OPAQUE_PARTS_ONLY (cRenderOptions a_options)
 
cVector3d cEvalBezierCurve (const cVector3d *a_controlPoints, double a_t)
 This function determines the position of a point along a Bezier curve. More...
 
cVector3d cEvalBezierPatch (const cVector3d *a_controlPoints, double a_u, double a_v)
 This function determines the position of a point along a Bezier patch. More...
 
cVector3d cDerivBezier (const cVector3d *a_controlPoints, double a_t)
 This function determines the derivative of a point along a Bezier curve. More...
 
cVector3d cDerivUBezier (const cVector3d *a_controlPoints, double a_u, double a_v)
 This function determines the derivative of a point on a Bezier patch along the u parametric direction. More...
 
cVector3d cDerivVBezier (const cVector3d *a_controlPoints, double a_u, double a_v)
 This function determines the derivative of a point on a Bezier patch along the v parametric direction. More...
 
cVector3d cSurfaceNormalBezier (const cVector3d *a_controlPoints, double a_u, double a_v)
 This function determines the surface normal at a point on a Bezier patch. More...
 
double cTriangleArea (const cVector3d &a_vertex0, const cVector3d &a_vertex1, const cVector3d &a_vertex2)
 This function computes the area of a triangle. More...
 
cVector3d cProjectPointOnPlane (const cVector3d &a_point, const cVector3d &a_planePoint, const cVector3d &a_planeNormal)
 This function computes the projection of a point onto a plane. More...
 
cVector3d cProjectPointOnPlane (const cVector3d &a_point, const cVector3d &a_planePoint0, const cVector3d &a_planePoint1, const cVector3d &a_planePoint2)
 This function computes the projection of a point onto a plane. More...
 
void cProjectPointOnPlane (const cVector3d &a_point, const cVector3d &a_planePoint0, const cVector3d &a_planePoint1, const cVector3d &a_planePoint2, double &a_r01, double &a_r02)
 This function computes the projection of a point onto a plane. More...
 
cVector3d cProjectPointOnLine (const cVector3d &a_point, const cVector3d &a_pointOnLine, const cVector3d &a_directionOfLine)
 This function computes the projection of a point onto a line. More...
 
cVector3d cProjectPointOnSegment (const cVector3d &a_point, const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB)
 This function computes the projection of a point onto a segment. More...
 
cVector3d cProjectPointOnDiskXY (const cVector3d &a_point, const double &a_height, const double &a_radius)
 This function computes the projection of a point onto a disk. More...
 
cVector3d cProjectPointOnTriangle (const cVector3d &a_point, const cVector3d &a_vertex0, const cVector3d &a_vertex1, const cVector3d &a_vertex2)
 This function computes the projection of a point onto a triangle. More...
 
cVector3d cProject (const cVector3d &a_vector0, const cVector3d &a_vector1)
 This function computes the projection of a vector V0 onto a vector V1. More...
 
double cDistanceToLine (const cVector3d &a_point, const cVector3d &a_linePoint1, const cVector3d &a_linePoint2)
 This function computes the distance between a point and a line. More...
 
cVector3d cComputeSurfaceNormal (const cVector3d &a_surfacePoint0, const cVector3d &a_surfacePoint1, const cVector3d &a_surfacePoint2)
 This function computes the surface normal of a plane. More...
 
bool cBoxContains (const cVector3d &a_point, const cVector3d &a_boxMin, const cVector3d &a_boxMax)
 This function checks if a point is contained in a box. More...
 
int cIntersectionSegmentPlane (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const cVector3d &a_planePos, const cVector3d &a_planeNormal, cVector3d &a_collisionPoint, cVector3d &a_collisionNormal)
 This function computes the intersection between a segment and a plane. More...
 
int cIntersectionSegmentDisk (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const cVector3d &a_diskPos, const cVector3d &a_diskNormal, const double &a_diskRadius, cVector3d &a_collisionPoint, cVector3d &a_collisionNormal)
 This function computes the intersection between a segment and a disk. More...
 
int cIntersectionSegmentSphere (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const cVector3d &a_spherePos, const double &a_sphereRadius, cVector3d &a_collisionPoint0, cVector3d &a_collisionNormal0, cVector3d &a_collisionPoint1, cVector3d &a_collisionNormal1)
 This function computes the intersection between a segment and a sphere. More...
 
int cIntersectionSegmentEllipsoid (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const cVector3d &a_pos, const double &a_radiusX, const double &a_radiusY, const double &a_radiusZ, cVector3d &a_collisionPoint0, cVector3d &a_collisionNormal0, cVector3d &a_collisionPoint1, cVector3d &a_collisionNormal1)
 This function computes the intersection between a segment and a sphere. More...
 
int cIntersectionSegmentToplessCylinder (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const cVector3d &a_cylinderPointA, const cVector3d &a_cylinderPointB, const double &a_cylinderRadius, cVector3d &a_collisionPoint0, cVector3d &a_collisionNormal0, double &a_collisionPointRelPosAB0, cVector3d &a_collisionPoint1, cVector3d &a_collisionNormal1, double &a_collisionPointRelPosAB1)
 This function computes the intersection between a segment and a topless cylinder. More...
 
int cIntersectionSegmentCylinder (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const double &a_baseRadius, const double &a_topRadius, const double &a_height, cVector3d &a_collisionPoint, cVector3d &a_collisionNormal)
 This function computes the nearest intersection point between a segment and a cylinder. More...
 
int cIntersectionSegmentBox (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const cVector3d &a_boxMin, const cVector3d &a_boxMax, cVector3d &a_collisionPoint, cVector3d &a_collisionNormal)
 This function computes the nearest intersection point between a segment and a box. More...
 
int cIntersectionSegmentTorus (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const double &a_innerRadius, const double &a_outerRadius, cVector3d &a_collisionPoint, cVector3d &a_collisionNormal)
 This function computes the nearest intersection point between a segment and a torus. More...
 
bool cIntersectionSegmentTriangle (const cVector3d &a_segmentPointA, const cVector3d &a_segmentPointB, const cVector3d &a_triangleVertex0, const cVector3d &a_triangleVertex1, const cVector3d &a_triangleVertex2, const bool a_reportFrontSideCollision, const bool a_reportBackSideCollision, cVector3d &a_collisionPoint, cVector3d &a_collisionNormal, double &a_collisionPosVertex01, double &a_collisionPosVertex02)
 This function computes the intersection between a segment and a triangle. More...
 
cVector3d cVertexInterpolation (double a_isolevel, cVector3d a_p1, cVector3d a_p2, double a_valp1, double a_valp2)
 This function linearly interpolate the position where an isosurface cuts an edge between two vertices, each with their own scalar value. More...
 
int cPolygonize (cMarchingCubeGridCell a_grid, double a_isolevel, cMarchingCubeTriangle *a_triangles)
 This function calculates the triangular facets required to represent the isosurface through the cell. More...
 
bool cCheckBit (const unsigned int &a_value, const unsigned int &a_bitPosition)
 This function checks if a given bit is enabled. More...
 
unsigned int cSetBit (const unsigned int &a_data, const unsigned int &a_bitPosition, const bool a_value)
 This function sets the value of a specified bit of an unsigned integer. More...
 
bool cZero (const double &a_value)
 This function checks if a value is equal to or almost near zero. More...
 
template<class T >
cAbs (const T &a_value)
 This function computes an absolute value. More...
 
template<class T >
double cSign (const T &a_value)
 This function computes the sign of a value. More...
 
template<class T >
cMax (const T &a_value1, const T &a_value2)
 This function computes the maximum value between two values. More...
 
template<class T >
cMin (const T &a_value1, const T &a_value2)
 This function computes the minimum value between two values. More...
 
template<class T >
cMax3 (const T &a_value1, const T &a_value2, const T &a_value3)
 This function computes the maximum value between three values. More...
 
template<class T >
cMin3 (const T &a_value1, const T &a_value2, const T &a_value3)
 This function computes the minimum value between three values. More...
 
template<class T >
void cSwap (T &a_value1, T &a_value2)
 This function swaps two elements. More...
 
template<class T >
cLerp (const double &a_level, const T &a_value1, const T &a_value2)
 This function computes a linear interpolation between two values. More...
 
template<class T >
cClamp (const T &a_value, const T &a_low, const T &a_high)
 This function clamps a value to a specified range. More...
 
template<class T >
cClamp0 (const T &a_value)
 This function clamps a value to a value ranged between 0 and infinity. More...
 
double cClamp01 (const double &a_value)
 This function clamps a value to a value ranged between 0.0 and 1.0. More...
 
template<class T , class V >
bool cContains (const T &a_value, const V &a_low, const V &a_high)
 This function checks whether a value is within a specified range. More...
 
double cSqr (const double &a_value)
 This function computes the square of a scalar. More...
 
double cSqrt (const double &a_value)
 This function computes the square root of a scalar. More...
 
double cCbrt (const double &a_value)
 This function computes the cubic root of a scalar. More...
 
double cCosDeg (const double &a_angleDeg)
 Compute the cosine of an angle defined in degrees. More...
 
double cSinDeg (const double &a_angleDeg)
 This function computes the sine of an angle defined in degrees. More...
 
double cTanDeg (const double &a_angleDeg)
 This function computes the tangent of an angle defined in degrees. More...
 
double cCosRad (const double &a_angleRad)
 This function computes the cosine of an angle defined in radians. More...
 
double cSinRad (const double &a_angleRad)
 This function computes the sine of an angle defined in radians. More...
 
double cTanRad (const double &a_angleRad)
 This function computes the tangent of an angle defined in radians. More...
 
double cDegToRad (const double &a_angleDeg)
 This function converts an angle from degrees to radians. More...
 
double cRadToDeg (const double &a_angleRad)
 This function converts an angle from radians to degrees. More...
 
int cNumDigits (int a_value)
 This function computes the number of digits that compose a given integer. More...
 
cVector3d cAdd (const cVector3d &a_vector1, const cVector3d &a_vector2)
 This function computes the addition of two vectors. More...
 
cVector3d cAdd (const cVector3d &a_vector1, const cVector3d &a_vector2, const cVector3d &a_vector3)
 This function computes the addition of three vectors. More...
 
cVector3d cSub (const cVector3d &a_vector1, const cVector3d &a_vector2)
 This function computes the subtraction of two vectors. More...
 
cVector3d cNegate (const cVector3d &a_vector)
 This function computes the negated vector. More...
 
cVector3d cMul (const double &a_value, const cVector3d &a_vector)
 This function computes the multiplication of a vector by a scalar. More...
 
cVector3d cDiv (const double &a_value, const cVector3d &a_vector)
 This function computes the division of a vector by a scalar. More...
 
cVector3d cCross (const cVector3d &a_vector1, const cVector3d &a_vector2)
 This function computes the cross product between two vectors. More...
 
double cDot (const cVector3d &a_vector1, const cVector3d &a_vector2)
 This function computes the dot product between two vectors. More...
 
cVector3d cNormalize (const cVector3d &a_vector)
 This function computes the normalized vector. More...
 
double cDistance (const cVector3d &a_point1, const cVector3d &a_point2)
 This function computes the Euclidean distance between two points. More...
 
double cDistanceSq (const cVector3d &a_point1, const cVector3d &a_point2)
 This function computes the squared distance between two points. More...
 
bool cEqualPoints (const cVector3d &a_point1, const cVector3d &a_point2, const double a_epsilon=C_SMALL)
 This function determines whether two vectors are equal (i.e. represent the same point). More...
 
cMatrix3d cIdentity3d (void)
 This function return a 3x3 identity matrix. More...
 
cMatrix3d cAdd (const cMatrix3d &a_matrix1, const cMatrix3d &a_matrix2)
 This function computes the addition between two matrices. More...
 
cMatrix3d cSub (const cMatrix3d &a_matrix1, const cMatrix3d &a_matrix2)
 This function computes the subtraction between two matrices. More...
 
cMatrix3d cRotEulerRad (const double &a_angleRad1, const double &a_angleRad2, const double &a_angleRad3, const cEulerOrder a_eulerOrder, const bool a_useIntrinsicEulerModel=true)
 This function builds a rotation matrix from a set of Euler angles defined in radians. More...
 
cMatrix3d cRotEulerDeg (const double &a_angleDeg1, const double &a_angleDeg2, const double &a_angleDeg3, const cEulerOrder a_eulerOrder, const bool a_useIntrinsicEulerModel=true)
 This function builds a rotation matrix from a set of Euler angles defined in degrees. More...
 
cMatrix3d cRotAxisAngleRad (const double &a_axisX, const double &a_axisY, const double &a_axisZ, const double &a_angleRad)
 This function builds a rotation matrix from an axis-angle representation. More...
 
cMatrix3d cRotAxisAngleDeg (const double &a_axisX, const double &a_axisY, const double &a_axisZ, const double &a_angleDeg)
 This function builds a rotation matrix from an axis-angle representation. More...
 
cMatrix3d cMul (const cMatrix3d &a_matrix1, const cMatrix3d &a_matrix2)
 This function computes the multiplication of two matrices. More...
 
cVector3d cMul (const cMatrix3d &a_matrix, const cVector3d &a_vector)
 This function computes the multiplication of a matrix and a vector. More...
 
cMatrix3d cTranspose (const cMatrix3d &a_matrix)
 This function computes the transpose of a matrix. More...
 
cMatrix3d cInverse (const cMatrix3d &a_matrix)
 This function computes the inverse of a matrix. More...
 
double cAngle (const cVector3d &a_vector1, const cVector3d &a_vector2)
 This function computes the angle in radians between two vectors. More...
 
double cCosAngle (const cVector3d &a_vector1, const cVector3d &a_vector2)
 This function computes the cosine of the angle between two vectors. More...
 
cVector3d operator* (const cMatrix3d &a_matrix, const cVector3d &a_vector)
 An overloaded * operator for matrix/vector multiplication. More...
 
cMatrix3d operator* (const cMatrix3d &a_matrix1, const cMatrix3d &a_matrix2)
 An overloaded * operator for matrix/matrix multiplication. More...
 
int cSolveLinear (double a_coefficient[2], double a_solution[1])
 This function computes the solution of a linear equation. More...
 
int cSolveQuadric (double a_coefficient[3], double a_solution[2])
 This function computes the solution of a quadric equation. More...
 
int cSolveCubic (double a_coefficient[4], double a_solution[3])
 This function computes the solution of a cubic equation. More...
 
int cSolveQuartic (double a_coefficient[5], double a_solution[4])
 This function computes the solution of a quartic equation. More...
 
cQuaternion operator* (const cQuaternion &a_quaternion, const double a_scale)
 An overloaded * operator for quaternion/scalar multiplication. More...
 
cQuaternion operator* (const double a_scale, const cQuaternion &a_quaternion)
 An overloaded * operator for scalar/quaternion multiplication. More...
 
cQuaternion operator* (const cQuaternion &a_quaternion0, const cQuaternion &a_quaternion1)
 An overloaded * operator for quaternion multiplication. More...
 
cQuaternion operator+ (const cQuaternion &a_quaternion0, const cQuaternion &a_quaternion1)
 An overloaded + operator for quaternion addition. More...
 
cQuaternion operator- (const cQuaternion &a_quaternion0, const cQuaternion &a_quaternion1)
 An overloaded - operator for quaternion subtraction. More...
 
cTransform operator* (const cTransform &a_matrix1, const cTransform &a_matrix2)
 
cVector3d operator* (const cTransform &a_matrix, const cVector3d &a_vector)
 
cVector3d operator* (const cVector3d &a_vector, const double a_scale)
 An overloaded * operator for vector/scalar multiplication. More...
 
cVector3d operator* (const double a_scale, const cVector3d &a_vector)
 An overloaded * operator for scalar/vector multiplication. More...
 
cVector3d operator/ (const cVector3d &a_vector, const double a_scale)
 An overloaded / operator for vector/scalar division. More...
 
cVector3d operator+ (const cVector3d &a_vector0, const cVector3d &a_vector1)
 An overloaded + operator for vector/vector addition. More...
 
cVector3d operator- (const cVector3d &a_vector0, const cVector3d &a_vector1)
 An overloaded - operator for vector/vector subtraction. More...
 
cVector3d operator- (const cVector3d &a_vector0)
 An overloaded - operator for vector negation. More...
 
double operator* (const cVector3d &a_vector0, const cVector3d &a_vector1)
 An overloaded * operator for vector/vector dotting. More...
 
cBitmapNEW_CHAI3D_WHITE_LOGO ()
 
cBitmapNEW_CHAI3D_BLACK_LOGO ()
 
cFontPtr NEW_CFONTCALIBRI144 ()
 
cFontPtr NEW_CFONTCALIBRI16 ()
 
cFontPtr NEW_CFONTCALIBRI18 ()
 
cFontPtr NEW_CFONTCALIBRI20 ()
 
cFontPtr NEW_CFONTCALIBRI22 ()
 
cFontPtr NEW_CFONTCALIBRI24 ()
 
cFontPtr NEW_CFONTCALIBRI26 ()
 
cFontPtr NEW_CFONTCALIBRI28 ()
 
cFontPtr NEW_CFONTCALIBRI32 ()
 
cFontPtr NEW_CFONTCALIBRI36 ()
 
cFontPtr NEW_CFONTCALIBRI40 ()
 
cFontPtr NEW_CFONTCALIBRI72 ()
 
void cSleepMs (const unsigned int a_interval)
 This function suspends the execution of the current thread for a specified interval. More...
 
int cStrLength (const char *a_input)
 This function computes the length of an ANSI string. More...
 
std::string cGetFilename (const std::string &a_input, const bool a_includeFileExtension=true)
 This function extracts the filename with or without its extension. More...
 
std::string cGetFileExtension (const std::string &a_input, const bool a_includeDot=false)
 This function extracts the file extension of a file. More...
 
std::string cGetDirectory (const std::string &a_input)
 This function extracts the directory path from the full file path. More...
 
std::string cReplaceFileExtension (const std::string &a_input, const std::string &a_extension)
 This function replaces the file extension of a filename with a new extension name. More...
 
std::string cStr (const bool a_value)
 This function converts a boolean into a string. More...
 
std::string cStr (const int a_value)
 This function converts an integer into a string. More...
 
std::string cStr (const unsigned int a_value)
 This function converts an unsigned integer into a string. More...
 
std::string cStr (const float a_value, const unsigned int a_precision=2)
 This function converts a float into a string. More...
 
std::string cStr (const double a_value, const unsigned int a_precision=2)
 This function converts a double into a string. More...
 
std::string cStrToLower (const std::string &a_input)
 This function converts a string to lower case. More...
 

Variables

const unsigned int C_MAX_DEVICES = 16
 
const int C_DEVICE_HISTORY_SIZE = 200
 Size of buffer. More...
 
const double C_DEVICE_MIN_ACQUISITION_TIME = 0.0001
 Smallest time interval between two position/status reads from a haptic device. More...
 
const int C_MAX_DOF = 16
 Maximum number of joint of a haptic device. More...
 
const unsigned int C_MAX_HAPTIC_DEVICES = 16
 Maximum number of devices that can be connected at the same time. More...
 
const int C_EFFECT_MAX_IDN = 16
 
bool g_objLoaderShouldGenerateExtraVertices = false
 
const bool C_ERROR = false
 Function returns with an error. More...
 
const bool C_SUCCESS = true
 Function returns successfully. More...
 
const double C_TWO_PI = 6.28318530717958647692
 Two PI constant. More...
 
const double C_PI = 3.14159265358979323846
 PI constant. More...
 
const double C_PI_DIV_2 = 1.57079632679489661923
 PI constant divided by two. More...
 
const double C_DEG2RAD = 0.01745329252
 Conversion from degrees to radians. More...
 
const double C_RAD2DEG = 57.2957795131
 Conversion from radians to degrees. More...
 
const double C_TINY = 1e-49
 Smallest value near zero for a double. More...
 
const double C_SMALL = 0.000000001
 Small value near zero. More...
 
const double C_LARGE = 1e+49
 Biggest value for a double. More...
 
const double C_LARGE_FLOAT = 1e37
 Biggest value for a float. More...
 
const unsigned char CHAI3D_LOGO_WHITE_BYTEARRAY []
 
const unsigned char CHAI3D_LOGO_BLACK_BYTEARRAY []
 
const unsigned int CFONTCALIBRI144_WIDTH = 1024
 
const unsigned int CFONTCALIBRI144_HEIGHT = 1024
 
const unsigned int CFONTCALIBRI144_CHARSET_BASE = 112
 
const unsigned int CFONTCALIBRI144_CHARSET_LINEHEIGHT = 144
 
const unsigned int CFONTCALIBRI144_CHARSET_PAGES = 1
 
const int CFONTCALIBRI144_CHARSET []
 
const unsigned char CFONTCALIBRI144_BYTEARRAY []
 
const unsigned int CFONTCALIBRI16_WIDTH = 256
 
const unsigned int CFONTCALIBRI16_HEIGHT = 256
 
const unsigned int CFONTCALIBRI16_CHARSET_BASE = 12
 
const unsigned int CFONTCALIBRI16_CHARSET_LINEHEIGHT = 16
 
const unsigned int CFONTCALIBRI16_CHARSET_PAGES = 1
 
const int CFONTCALIBRI16_CHARSET []
 
const unsigned char CFONTCALIBRI16_BYTEARRAY []
 
const unsigned int CFONTCALIBRI18_WIDTH = 256
 
const unsigned int CFONTCALIBRI18_HEIGHT = 256
 
const unsigned int CFONTCALIBRI18_CHARSET_BASE = 14
 
const unsigned int CFONTCALIBRI18_CHARSET_LINEHEIGHT = 18
 
const unsigned int CFONTCALIBRI18_CHARSET_PAGES = 1
 
const int CFONTCALIBRI18_CHARSET []
 
const unsigned char CFONTCALIBRI18_BYTEARRAY []
 
const unsigned int CFONTCALIBRI20_WIDTH = 256
 
const unsigned int CFONTCALIBRI20_HEIGHT = 256
 
const unsigned int CFONTCALIBRI20_CHARSET_BASE = 16
 
const unsigned int CFONTCALIBRI20_CHARSET_LINEHEIGHT = 20
 
const unsigned int CFONTCALIBRI20_CHARSET_PAGES = 1
 
const int CFONTCALIBRI20_CHARSET []
 
const unsigned char CFONTCALIBRI20_BYTEARRAY []
 
const unsigned int CFONTCALIBRI22_WIDTH = 256
 
const unsigned int CFONTCALIBRI22_HEIGHT = 256
 
const unsigned int CFONTCALIBRI22_CHARSET_BASE = 17
 
const unsigned int CFONTCALIBRI22_CHARSET_LINEHEIGHT = 22
 
const unsigned int CFONTCALIBRI22_CHARSET_PAGES = 1
 
const int CFONTCALIBRI22_CHARSET []
 
const unsigned char CFONTCALIBRI22_BYTEARRAY []
 
const unsigned int CFONTCALIBRI24_WIDTH = 256
 
const unsigned int CFONTCALIBRI24_HEIGHT = 256
 
const unsigned int CFONTCALIBRI24_CHARSET_BASE = 19
 
const unsigned int CFONTCALIBRI24_CHARSET_LINEHEIGHT = 24
 
const unsigned int CFONTCALIBRI24_CHARSET_PAGES = 1
 
const int CFONTCALIBRI24_CHARSET []
 
const unsigned char CFONTCALIBRI24_BYTEARRAY []
 
const unsigned int CFONTCALIBRI26_WIDTH = 256
 
const unsigned int CFONTCALIBRI26_HEIGHT = 256
 
const unsigned int CFONTCALIBRI26_CHARSET_BASE = 20
 
const unsigned int CFONTCALIBRI26_CHARSET_LINEHEIGHT = 26
 
const unsigned int CFONTCALIBRI26_CHARSET_PAGES = 1
 
const int CFONTCALIBRI26_CHARSET []
 
const unsigned char CFONTCALIBRI26_BYTEARRAY []
 
const unsigned int CFONTCALIBRI28_WIDTH = 256
 
const unsigned int CFONTCALIBRI28_HEIGHT = 256
 
const unsigned int CFONTCALIBRI28_CHARSET_BASE = 22
 
const unsigned int CFONTCALIBRI28_CHARSET_LINEHEIGHT = 28
 
const unsigned int CFONTCALIBRI28_CHARSET_PAGES = 1
 
const int CFONTCALIBRI28_CHARSET []
 
const unsigned char CFONTCALIBRI28_BYTEARRAY []
 
const unsigned int CFONTCALIBRI32_WIDTH = 256
 
const unsigned int CFONTCALIBRI32_HEIGHT = 256
 
const unsigned int CFONTCALIBRI32_CHARSET_BASE = 25
 
const unsigned int CFONTCALIBRI32_CHARSET_LINEHEIGHT = 32
 
const unsigned int CFONTCALIBRI32_CHARSET_PAGES = 1
 
const int CFONTCALIBRI32_CHARSET []
 
const unsigned char CFONTCALIBRI32_BYTEARRAY []
 
const unsigned int CFONTCALIBRI36_WIDTH = 256
 
const unsigned int CFONTCALIBRI36_HEIGHT = 256
 
const unsigned int CFONTCALIBRI36_CHARSET_BASE = 28
 
const unsigned int CFONTCALIBRI36_CHARSET_LINEHEIGHT = 36
 
const unsigned int CFONTCALIBRI36_CHARSET_PAGES = 1
 
const int CFONTCALIBRI36_CHARSET []
 
const unsigned char CFONTCALIBRI36_BYTEARRAY []
 
const unsigned int CFONTCALIBRI40_WIDTH = 256
 
const unsigned int CFONTCALIBRI40_HEIGHT = 256
 
const unsigned int CFONTCALIBRI40_CHARSET_BASE = 31
 
const unsigned int CFONTCALIBRI40_CHARSET_LINEHEIGHT = 40
 
const unsigned int CFONTCALIBRI40_CHARSET_PAGES = 1
 
const int CFONTCALIBRI40_CHARSET []
 
const unsigned char CFONTCALIBRI40_BYTEARRAY []
 
const unsigned int CFONTCALIBRI72_WIDTH = 512
 
const unsigned int CFONTCALIBRI72_HEIGHT = 512
 
const unsigned int CFONTCALIBRI72_CHARSET_BASE = 56
 
const unsigned int CFONTCALIBRI72_CHARSET_LINEHEIGHT = 72
 
const unsigned int CFONTCALIBRI72_CHARSET_PAGES = 1
 
const int CFONTCALIBRI72_CHARSET []
 
const unsigned char CFONTCALIBRI72_BYTEARRAY []
 
const std::string C_SHADER_BASIC_VOXEL_LUT8_VERT
 
const std::string C_SHADER_BASIC_VOXEL_LUT8_FRAG
 
const std::string C_SHADER_BASIC_VOXEL_RGBA8_VERT
 
const std::string C_SHADER_BASIC_VOXEL_RGBA8_FRAG
 
const std::string C_SHADER_DVR_LUT8_VERT
 
const std::string C_SHADER_DVR_LUT8_FRAG
 
const std::string C_SHADER_FONG_VERT
 
const std::string C_SHADER_FONG_FRAG
 
const std::string C_SHADER_ISOSURFACE_L8_VERT
 
const std::string C_SHADER_ISOSURFACE_L8_FRAG
 
const std::string C_SHADER_ISOSURFACE_RGBA8_VERT
 
const std::string C_SHADER_ISOSURFACE_RGBA8_FRAG
 
const std::string C_SHADER_ISOSURFACE_COLOR_L8_VERT
 
const std::string C_SHADER_ISOSURFACE_COLOR_L8_FRAG
 
const std::string C_SHADER_ISOSURFACE_COLOR_LUT8_VERT
 
const std::string C_SHADER_ISOSURFACE_COLOR_LUT8_FRAG
 
const std::string C_SHADER_ISOSURFACE_COLOR_RGBA8_VERT
 
const std::string C_SHADER_ISOSURFACE_COLOR_RGBA8_FRAG
 
const int C_SCOPE_MAX_SAMPLES = 3000
 
const int C_NUM_VOXEL_RENDERING_MODES = 9
 

Typedef Documentation

typedef std::shared_ptr<cDeltaDevice> chai3d::cDeltaDevicePtr
typedef std::shared_ptr<cLeapDevice> chai3d::cLeapDevicePtr
typedef std::shared_ptr<cMyCustomDevice> chai3d::cMyCustomDevicePtr
typedef std::shared_ptr<cPhantomDevice> chai3d::cPhantomDevicePtr
typedef std::shared_ptr<cSixenseDevice> chai3d::cSixenseDevicePtr
typedef std::shared_ptr<cFrameBuffer> chai3d::cFrameBufferPtr
typedef std::shared_ptr<cFont> chai3d::cFontPtr
typedef std::shared_ptr<cGenericArray> chai3d::cGenericArrayPtr
typedef std::shared_ptr<cImage> chai3d::cImagePtr
typedef std::shared_ptr<cMultiImage> chai3d::cMultiImagePtr
typedef std::shared_ptr< cPointArray > chai3d::cPointArrayPtr
typedef std::shared_ptr< cSegmentArray > chai3d::cSegmentArrayPtr
typedef std::shared_ptr< cTriangleArray > chai3d::cTriangleArrayPtr
typedef std::shared_ptr< cVertexArray > chai3d::cVertexArrayPtr
typedef std::shared_ptr<cVideo> chai3d::cVideoPtr
typedef std::shared_ptr<cGenericTexture> chai3d::cGenericTexturePtr
typedef std::shared_ptr<cMaterial> chai3d::cMaterialPtr
typedef std::shared_ptr<cNormalMap> chai3d::cNormalMapPtr
typedef std::shared_ptr<cTexture1d> chai3d::cTexture1dPtr
typedef std::shared_ptr<cTexture2d> chai3d::cTexture2dPtr
typedef std::shared_ptr<cTexture3d> chai3d::cTexture3dPtr
typedef std::shared_ptr<cTextureVideo> chai3d::cTextureVideoPtr
typedef std::shared_ptr<cShader> chai3d::cShaderPtr
typedef std::shared_ptr< cShaderProgram > chai3d::cShaderProgramPtr

Enumeration Type Documentation

Enumerator
C_AABB_NODE_INTERNAL 
C_AABB_NODE_LEAF 
C_AABB_NOT_DEFINED 
Enumerator
C_COL_NOT_DEFINED 
C_COL_SHAPE 
C_COL_POINT 
C_COL_SEGMENT 
C_COL_TRIANGLE 
C_COL_VOXEL 

Defines the list of devices currently supported by CHAI3D.

Enumerator
C_HAPTIC_DEVICE_VIRTUAL 
C_HAPTIC_DEVICE_DELTA_3 
C_HAPTIC_DEVICE_DELTA_6 
C_HAPTIC_DEVICE_OMEGA_3 
C_HAPTIC_DEVICE_OMEGA_6 
C_HAPTIC_DEVICE_OMEGA_7 
C_HAPTIC_DEVICE_SIGMA_6P 
C_HAPTIC_DEVICE_SIGMA_7 
C_HAPTIC_DEVICE_FALCON 
C_HAPTIC_DEVICE_XTH_1 
C_HAPTIC_DEVICE_XTH_2 
C_HAPTIC_DEVICE_MPR 
C_HAPTIC_DEVICE_KSD_1 
C_HAPTIC_DEVICE_VIC_1 
C_HAPTIC_DEVICE_PHANTOM_TOUCH 
C_HAPTIC_DEVICE_PHANTOM_OMNI 
C_HAPTIC_DEVICE_PHANTOM_DESKTOP 
C_HAPTIC_DEVICE_PHANTOM_15_6DOF 
C_HAPTIC_DEVICE_PHANTOM_30_6DOF 
C_HAPTIC_DEVICE_PHANTOM_OTHER 
C_TRACKER_DEVICE_SIXENSE 
C_TRACKER_DEVICE_LEAP 
C_HAPTIC_DEVICE_CUSTOM 
Enumerator
C_STEREO_DISABLED 
C_STEREO_ACTIVE 
C_STEREO_PASSIVE_LEFT_RIGHT 
C_STEREO_PASSIVE_TOP_BOTTOM 
C_STEREO_PASSIVE_DUAL_DISPLAY 
Enumerator
C_STEREO_LEFT_EYE 
C_STEREO_RIGHT_EYE 
Enumerator
C_EULER_ORDER_XYZ 
C_EULER_ORDER_XYX 
C_EULER_ORDER_XZY 
C_EULER_ORDER_XZX 
C_EULER_ORDER_YZX 
C_EULER_ORDER_YZY 
C_EULER_ORDER_YXZ 
C_EULER_ORDER_YXY 
C_EULER_ORDER_ZXY 
C_EULER_ORDER_ZXZ 
C_EULER_ORDER_ZYX 
C_EULER_ORDER_ZYZ 
Enumerator
C_VERTEX_SHADER 
C_FRAGMENT_SHADER 
C_GEOMETRY_SHADER 

Defines two basic thread priorities for handling graphics and haptics rendering loops.

Enumerator
CTHREAD_PRIORITY_GRAPHICS 
CTHREAD_PRIORITY_HAPTICS 

Function Documentation

bool chai3d::SECTION_RENDER_PARTS_WITH_MATERIALS ( cRenderOptions  a_options,
bool  a_useTransparency 
)
inline

This function returns true if parts using material properties with/without transparency should be rendered according to rendering options.

Parameters
a_optionsRendering options
a_useTransparencytrue if current object uses transparency, false__otherwise
Returns
Result as described above.
bool chai3d::SECTION_RENDER_OPAQUE_PARTS_ONLY ( cRenderOptions  a_options)
inline

This function returns true if opaque parts only can be rendered.

Parameters
a_optionsRendering options
Returns
Result as described above.
cVector3d chai3d::operator* ( const cMatrix3d a_matrix,
const cVector3d a_vector 
)
inline
cMatrix3d chai3d::operator* ( const cMatrix3d a_matrix1,
const cMatrix3d a_matrix2 
)
inline
cQuaternion chai3d::operator* ( const cQuaternion a_quaternion,
const double  a_scale 
)
inline
cQuaternion chai3d::operator* ( const double  a_scale,
const cQuaternion a_quaternion 
)
inline
cQuaternion chai3d::operator* ( const cQuaternion a_quaternion0,
const cQuaternion a_quaternion1 
)
inline
cQuaternion chai3d::operator+ ( const cQuaternion a_quaternion0,
const cQuaternion a_quaternion1 
)
inline
cQuaternion chai3d::operator- ( const cQuaternion a_quaternion0,
const cQuaternion a_quaternion1 
)
inline
cTransform chai3d::operator* ( const cTransform a_matrix1,
const cTransform a_matrix2 
)
inline

An overloaded * operator for matrix/matrix multiplication.

cVector3d chai3d::operator* ( const cTransform a_matrix,
const cVector3d a_vector 
)
inline

An overloaded * operator for matrix/vector multiplication.

cVector3d chai3d::operator* ( const cVector3d a_vector,
const double  a_scale 
)
inline
cVector3d chai3d::operator* ( const double  a_scale,
const cVector3d a_vector 
)
inline
cVector3d chai3d::operator/ ( const cVector3d a_vector,
const double  a_scale 
)
inline
cVector3d chai3d::operator+ ( const cVector3d a_vector0,
const cVector3d a_vector1 
)
inline
cVector3d chai3d::operator- ( const cVector3d a_vector0,
const cVector3d a_vector1 
)
inline
cVector3d chai3d::operator- ( const cVector3d a_vector0)
inline
double chai3d::operator* ( const cVector3d a_vector0,
const cVector3d a_vector1 
)
inline
cBitmap* chai3d::NEW_CHAI3D_WHITE_LOGO ( )
inline
cBitmap* chai3d::NEW_CHAI3D_BLACK_LOGO ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI144 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI16 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI18 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI20 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI22 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI24 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI26 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI28 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI32 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI36 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI40 ( )
inline
cFontPtr chai3d::NEW_CFONTCALIBRI72 ( )
inline
void chai3d::cSleepMs ( const unsigned int  a_interval)

This function suspends the execution of the current thread for a specified interval defined in milliseconds.

Parameters
a_intervalTime interval defined in milliseconds.

Variable Documentation

const unsigned int chai3d::C_MAX_DEVICES = 16
const int chai3d::C_DEVICE_HISTORY_SIZE = 200
const double chai3d::C_DEVICE_MIN_ACQUISITION_TIME = 0.0001
const int chai3d::C_MAX_DOF = 16
const unsigned int chai3d::C_MAX_HAPTIC_DEVICES = 16
const int chai3d::C_EFFECT_MAX_IDN = 16

Maximum number of force models supported the CHAI3D simulation. Some force effects require a history of the tool, such as its previous position for instance. Effects which need such information store it in a local table and retrieve the information when they calculate the reaction force. See cEffectStickSlip class as an example

bool chai3d::g_objLoaderShouldGenerateExtraVertices = false

Clients can use this to tell the OBJ file loader how to behave in terms of vertex merging.
If true (default), loaded OBJ files will have three distinct vertices per triangle, with no vertex re-use.

const bool chai3d::C_ERROR = false
const bool chai3d::C_SUCCESS = true
const double chai3d::C_TWO_PI = 6.28318530717958647692
const double chai3d::C_PI = 3.14159265358979323846
const double chai3d::C_PI_DIV_2 = 1.57079632679489661923
const double chai3d::C_DEG2RAD = 0.01745329252
const double chai3d::C_RAD2DEG = 57.2957795131
const double chai3d::C_TINY = 1e-49
const double chai3d::C_SMALL = 0.000000001
const double chai3d::C_LARGE = 1e+49
const double chai3d::C_LARGE_FLOAT = 1e37
const unsigned char chai3d::CHAI3D_LOGO_WHITE_BYTEARRAY[]
Initial value:
=
{
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x19, 0x08, 0x06, 0x00, 0x00, 0x00, 0xc7, 0x5e, 0x8b, 0x4b, 0x00, 0x00, 0x07, 0x54, 0x49, 0x44, 0x41, 0x54, 0x68, 0x81, 0xed, 0xda, 0x7b, 0xb0, 0x55, 0x55, 0x1d, 0x07, 0xf0, 0xcf, 0x39, 0x70, 0xaf, 0x3c, 0x92, 0x97, 0xa8, 0x08, 0x14, 0x14, 0xbd, 0x14, 0x0b, 0xc1, 0xcc, 0x9c, 0x4a, 0x4b, 0x93, 0x2c, 0x52, 0x29, 0x2d, 0x4d, 0xa5, 0x07, 0x93, 0x53, 0xd3, 0x4c, 0x46, 0xa5, 0xf4, 0x40, 0x9b, 0x26, 0x6b, 0xb2, 0xc7, 0xd4, 0x1f, 0x56, 0x66, 0xf9, 0xca, 0xde, 0x45, 0x39, 0xd4, 0x58, 0xa6, 0x53, 0x96, 0x38, 0x14, 0x56, 0x94, 0x0a, 0x82, 0x26, 0x88, 0x41, 0x3c, 0x14, 0x79, 0xc7, 0x43, 0xb8, 0xe7, 0xf4, 0xc7, 0x6f, 0xef, 0x7b, 0xd7, 0x39, 0xec, 0x7d, 0xee, 0xed, 0xde, 0x4b, 0x31, 0x4e, 0xdf, 0x99, 0x3d, 0x67, 0x3d, 0x7f, 0xfb, 0xb7, 0xd6, 0x6f, 0xad, 0xdf, 0x6b, 0x9f, 0x4a, 0xbd, 0x5e, 0xf7, 0x7f, 0x1c, 0x3a, 0x18, 0xd8, 0x8f, 0xb4, 0xc6, 0xe2, 0x42, 0x54, 0xb0, 0x13, 0x37, 0xe3, 0xe9, 0x7e, 0xa4, 0xdf, 0x1b, 0x54, 0xf0, 0x41, 0xcc, 0xc6, 0x1f, 0x71, 0x39, 0xb6, 0xe7, 0x9d, 0x1d, 0x8b, 0x3e, 0xa4, 0xb6, 0xe2, 0x26, 0xda, 0x0e, 0xcf, 0x9b, 0xaa, 0x38, 0x1f, 0x33, 0x30, 0x05, 0x83, 0xb2, 0xf6, 0xa7, 0xb0, 0x10, 0xb7, 0x61, 0x71, 0x3f, 0xf1, 0x36, 0x06, 0x17, 0x65, 0x3c, 0x6e, 0x6d, 0x9b, 0xb5, 0xf6, 0x46, 0xa8, 0xf4, 0xe3, 0x0d, 0x79, 0x0d, 0xee, 0xce, 0xca, 0xbb, 0x31, 0x0e, 0x5b, 0xfa, 0x8b, 0x78, 0x2f, 0x71, 0x1a, 0x7e, 0x97, 0xd4, 0x3f, 0x8b, 0x2b, 0xf3, 0xca, 0xfe, 0x3b, 0x66, 0xaa,
0xaf, 0x5f, 0xc8, 0xc0, 0xc1, 0x30, 0x1e, 0xdf, 0x11, 0xeb, 0x28, 0x43, 0x1d, 0xd7, 0xe2, 0xc3, 0xe8, 0xe8, 0x23, 0x6f, 0xaf, 0x12, 0x42, 0x86, 0x2d, 0x6d, 0xb3, 0xd6, 0x8e, 0xa2, 0x7f, 0x6f, 0x48, 0xca, 0xe0, 0x0e, 0xc1, 0xfc, 0xff, 0x1a, 0xa3, 0x9a, 0xea, 0xe3, 0xf3, 0x42, 0xfd, 0x89, 0xfb, 0xd4, 0x37, 0x2e, 0x66, 0xc0, 0x20, 0x38, 0x1a, 0x77, 0x60, 0x72, 0x32, 0xb6, 0x8e, 0x5d, 0xe2, 0x04, 0x0f, 0xc9, 0xda, 0x2a, 0xb8, 0x0c, 0xfb, 0xf1, 0x91, 0x3e, 0xf2, 0xd6, 0xbc, 0x5f, 0x88, 0x2b, 0xfa, 0x4c, 0xc6, 0xdd, 0xf8, 0x4d, 0x56, 0x5e, 0x85, 0xcf, 0xe7, 0x1d, 0xb5, 0xe5, 0x37, 0xd0, 0xb1, 0x8b, 0x4a, 0x05, 0xde, 0xa7, 0x51, 0x18, 0xb7, 0x61, 0x2a, 0x8e, 0xcd, 0x9e, 0xb3, 0xf1, 0xb7, 0xa4, 0x7f, 0x0e, 0x4e, 0x38, 0x18, 0x0c, 0xf7, 0xe7, 0x0d, 0x39, 0x14, 0xb1, 0x15, 0x67, 0x61, 0x1a, 0x56, 0x0a, 0x5b, 0x40, 0xbd, 0xa6, 0xbe, 0xe9, 0xaf, 0x54, 0xdb, 0xf3, 0x71, 0xdf, 0xc3, 0x68, 0x5c, 0x8a, 0x65, 0x78, 0x3b, 0xf6, 0x26, 0x74, 0xfe, 0x81, 0x25, 0xc2, 0x7e, 0x8c, 0x17, 0x07, 0xf9, 0x4d, 0x1a, 0x85, 0xd4, 0x2f, 0x78, 0xa6, 0xdf, 0x10, 0x42, 0xbd, 0xdc, 0x27, 0x17, 0x06, 0x54, 0x2a, 0x2a, 0x13, 0x66, 0xd0, 0xb1, 0x47, 0xa6, 0x59, 0x1f, 0xc5, 0x07, 0xc4, 0xad, 0x38, 0x5b, 0xa3, 0x30, 0x72, 0xac, 0xc3, 0xf7, 0x93, 0xfa, 0xd4, 0x83, 0xc1, 0x6c, 0xd9, 0x0d, 0x99, 0x20, 0xbc, 0x8c, 0xd1, 0x42, 0x6f, 0x6e, 0xc2, 0x03, 0x78, 0xec, 0x3f, 0xa0, 0x9d, 0x7b, 0x58, 0x87, 0x09, 0x0f, 0x6c, 0x0f, 0xd6, 0xf7, 0x82, 0xc7, 0xe7, 0x66, 0xbc, 0x1c, 0x91, 0xd5, 0x37, 0xe3, 0x41, 0xb1, 0x89, 0x3d, 0xc1, 0xb8, 0x8c, 0x87, 0xba, 0xd8, 0xd4,
0xbd, 0x54, 0x0c, 0x78, 0xd9, 0xa7, 0xa8, 0xed, 0x57, 0x5b, 0xf6, 0x75, 0x06, 0xe6, 0x26, 0xc2, 0xf2, 0x6e, 0x68, 0x6d, 0x4c, 0xca, 0xcf, 0xe9, 0xe1, 0xfb, 0x73, 0x1c, 0x93, 0xf1, 0xb1, 0x46, 0xd8, 0x8f, 0x42, 0xa7, 0xa0, 0x59, 0x20, 0x47, 0xe2, 0x73, 0xb8, 0x00, 0xcf, 0x6a, 0xea, 0xfb, 0x17, 0x16, 0x60, 0x1e, 0x56, 0x77, 0xf3, 0xf2, 0x0e, 0xc1, 0xf0, 0x7b, 0x30, 0x13, 0xcf, 0x16, 0xa7, 0xee, 0x11, 0x71, 0xca, 0xae, 0xc5, 0xbe, 0x6e, 0x68, 0x0c, 0xc7, 0x97, 0x84, 0xfa, 0x18, 0xda, 0xd4, 0xb7, 0x47, 0xe8, 0xf9, 0x2b, 0xf0, 0xcf, 0x16, 0x34, 0x46, 0xe0, 0x5e, 0x71, 0x20, 0xe0, 0x5c, 0x61, 0xbc, 0xc1, 0x80, 0x93, 0xae, 0x56, 0xdf, 0x70, 0xaf, 0xfa, 0xe6, 0xa5, 0xb9, 0x71, 0xef, 0x0e, 0xa3, 0x93, 0xf2, 0x8e, 0xd2, 0x51, 0x5d, 0x18, 0x2c, 0xdc, 0xee, 0xb7, 0xe2, 0xf9, 0x68, 0x17, 0x07, 0xe9, 0x6b, 0x62, 0x2f, 0x0e, 0x40, 0x2a, 0x90, 0x51, 0xb8, 0x1d, 0x27, 0x95, 0x10, 0x1f, 0x2a, 0xfc, 0xe6, 0x57, 0x62, 0x7a, 0x19, 0xc1, 0x0c, 0x47, 0x60, 0x11, 0x46, 0x26, 0x6d, 0xed, 0x38, 0x31, 0x7b, 0xce, 0x14, 0x42, 0xdf, 0x7e, 0xe0, 0xd4, 0xce, 0x77, 0xcd, 0xc7, 0xeb, 0x4a, 0xfa, 0x07, 0x09, 0x41, 0x4d, 0xc1, 0x19, 0xd8, 0x50, 0x32, 0xae, 0x2a, 0x0e, 0x56, 0x6e, 0x2c, 0xda, 0x1b, 0x7a, 0x2b, 0x15, 0xd5, 0xc9, 0xef, 0xd7, 0x71, 0xcf, 0x7b, 0x5b, 0x2c, 0xa5, 0x13, 0x23, 0x70, 0x5e, 0x52, 0x5f, 0x58, 0x36, 0x30, 0xc3, 0x68, 0xb1, 0x86, 0xd3, 0x9a, 0xda, 0x8f, 0xc7, 0x75, 0x4a, 0x42, 0x82, 0xd4, 0x86, 0x7c, 0x41, 0xa3, 0x30, 0xfe, 0x8e, 0x6b, 0x70, 0x35, 0x1e, 0x4a, 0xda, 0x27, 0xe0, 0x07, 0x68, 0x6b, 0xc1, 0x4c, 0xbb, 0x2e, 0x61,
0xac, 0xc9, 0x68, 0xa5, 0x41, 0xe2, 0x59, 0xb8, 0xbe, 0x64, 0x6e, 0x45, 0xdc, 0xa0, 0x54, 0x18, 0x8f, 0x0b, 0x0f, 0xe9, 0x33, 0xb8, 0x3f, 0x69, 0x3f, 0x4e, 0x9c, 0xb6, 0x4a, 0x0b, 0x5e, 0x52, 0xd5, 0x70, 0xa0, 0x2b, 0xbe, 0x77, 0x73, 0xd1, 0x9c, 0x11, 0xc2, 0x15, 0x3e, 0x4a, 0xa8, 0x9a, 0x33, 0xf1, 0x2b, 0xbc, 0x30, 0xeb, 0xdf, 0x82, 0x9b, 0x5a, 0xbc, 0xb3, 0x8a, 0x5b, 0x34, 0x0a, 0x63, 0xa7, 0xd8, 0x87, 0x27, 0xb3, 0xfa, 0x48, 0x05, 0xc8, 0x05, 0x32, 0x01, 0xb3, 0x92, 0xf6, 0x9f, 0x0b, 0xcf, 0xe4, 0xe3, 0xf8, 0x24, 0x4e, 0xd1, 0x15, 0xf4, 0xed, 0x13, 0x9b, 0xd2, 0x9d, 0x43, 0xb0, 0x03, 0xef, 0xc4, 0x8b, 0x85, 0x4b, 0x39, 0x0d, 0xbf, 0x4f, 0xfa, 0x2f, 0xc4, 0xab, 0x4b, 0xe6, 0x6e, 0xd0, 0xa5, 0x12, 0x96, 0xe0, 0x64, 0x7c, 0x0c, 0x57, 0x89, 0x43, 0xf3, 0xdd, 0x64, 0xec, 0x4c, 0xe1, 0x9a, 0xf6, 0x0a, 0xb5, 0x35, 0x77, 0x29, 0x90, 0xe7, 0x02, 0x3c, 0x2c, 0xb4, 0xc0, 0xc3, 0xb8, 0x13, 0xaf, 0xc8, 0xfa, 0x76, 0x08, 0x55, 0xfc, 0x78, 0x0b, 0xb2, 0xaf, 0x17, 0xd1, 0x7e, 0x8e, 0x1f, 0xe1, 0x25, 0x62, 0x1f, 0x8e, 0x15, 0x01, 0x6a, 0x21, 0xf2, 0x4d, 0x3d, 0x55, 0xd7, 0x75, 0xde, 0x21, 0xf4, 0xde, 0xce, 0x64, 0xdc, 0x76, 0x5c, 0x82, 0x2f, 0xe2, 0xe5, 0x22, 0x15, 0x51, 0xe4, 0x89, 0xa4, 0x98, 0x87, 0x5b, 0x45, 0x70, 0xb5, 0x4f, 0xb8, 0x93, 0x6f, 0xd1, 0xa8, 0x5e, 0xce, 0x2b, 0x98, 0x57, 0xc7, 0x27, 0x84, 0x00, 0xaf, 0x11, 0xaa, 0x29, 0x35, 0xa6, 0xfb, 0x44, 0x0a, 0x24, 0xbf, 0xf2, 0x55, 0xad, 0xa3, 0xeb, 0xd6, 0xa8, 0x0e, 0x28, 0x6a, 0x3d, 0x4a, 0xd8, 0xb0, 0xe1, 0x38, 0xbc, 0xa9, 0xef, 0x3a, 0xfc, 0xac, 0x1b, 0xaa, 0xe7,
0x26, 0xe5, 0x65, 0xb8, 0x58, 0xd8, 0xdd, 0x7d, 0xc2, 0xdb, 0xbb, 0x52, 0x08, 0xe9, 0x40, 0x76, 0xb2, 0xdf, 0xd4, 0x63, 0x58, 0x27, 0xfc, 0xee, 0x66, 0xac, 0xc3, 0x5c, 0x3d, 0xf3, 0xbd, 0xb7, 0xe3, 0x27, 0x05, 0xed, 0x9b, 0xf1, 0xeb, 0xa4, 0x3e, 0xae, 0x05, 0x8d, 0x47, 0xc5, 0x0d, 0x2d, 0xb2, 0x55, 0x1b, 0x85, 0x2a, 0xcc, 0x51, 0x78, 0xfd, 0x7b, 0x84, 0x7a, 0x5d, 0x81, 0x26, 0x5b, 0x23, 0x3c, 0xcb, 0xfc, 0x49, 0x07, 0x5c, 0x2a, 0x6c, 0x68, 0x2b, 0x8c, 0x49, 0xca, 0x3f, 0x56, 0xec, 0x51, 0x7d, 0xbb, 0x68, 0x62, 0x2e, 0x90, 0xf4, 0x85, 0x75, 0x7d, 0x8f, 0x4f, 0x76, 0x8b, 0x9b, 0x51, 0x84, 0xd5, 0x49, 0xb9, 0xbd, 0x64, 0x4c, 0x8a, 0x41, 0xc2, 0x40, 0xa6, 0xcf, 0x91, 0x1a, 0x79, 0x6c, 0x65, 0x43, 0x5a, 0xa2, 0x3a, 0xe9, 0x7c, 0x05, 0xcb, 0x3d, 0x07, 0xcf, 0xcb, 0x9e, 0x49, 0x42, 0x4d, 0xe6, 0xde, 0xd9, 0x48, 0xdc, 0xe8, 0xc0, 0xb4, 0x4c, 0x8a, 0xd4, 0x59, 0xda, 0x56, 0x32, 0xe6, 0xa9, 0xa2, 0xc6, 0x83, 0x15, 0xa9, 0x57, 0x94, 0x0b, 0x35, 0x6d, 0x6f, 0x95, 0xef, 0x3a, 0x46, 0xa8, 0xbd, 0x19, 0xc2, 0xc8, 0xa6, 0x9b, 0x5e, 0xd1, 0xe8, 0x96, 0xf7, 0x44, 0xb0, 0x85, 0xa8, 0x8c, 0x9c, 0x4c, 0xb5, 0x2d, 0x63, 0xa5, 0xf3, 0x15, 0x7b, 0xb2, 0x27, 0xc7, 0x5f, 0x84, 0xad, 0x5a, 0x2c, 0x3c, 0xbb, 0xf1, 0x78, 0x17, 0xbe, 0x5c, 0x42, 0x36, 0x5d, 0x57, 0xd9, 0x3e, 0x14, 0xea, 0xca, 0x43, 0x35, 0x75, 0x32, 0x56, 0x64, 0x69, 0x5f, 0x70, 0xb0, 0x5f, 0x54, 0x7b, 0xe8, 0xfa, 0x88, 0xd8, 0xab, 0xcd, 0x61, 0xd7, 0x01, 0xd8, 0x2b, 0x62, 0x9f, 0x29, 0x59, 0x7d, 0xba, 0x72, 0x81, 0xf4, 0x1a, 0x87, 0xaa, 0x40, 0xe6, 0xe9, 0x12, 0xc6, 0x16,
0xfc, 0x50, 0xd8, 0x9f, 0xaa, 0xae, 0xa3, 0x3c, 0x5b, 0xb8, 0xa6, 0xbd, 0x46, 0x7d, 0xfb, 0x4a, 0xb5, 0xd5, 0xbf, 0xc8, 0xd3, 0xef, 0x3d, 0x41, 0x1a, 0x0c, 0xb6, 0x7a, 0x77, 0x7a, 0x9b, 0x6b, 0x25, 0x63, 0x0a, 0xdb, 0x73, 0x81, 0x34, 0x5f, 0xab, 0x32, 0x22, 0xff, 0x0d, 0x0c, 0xd2, 0xe8, 0x32, 0xce, 0x11, 0xde, 0x5a, 0x33, 0xde, 0xa8, 0x8f, 0x02, 0xa9, 0x2d, 0xfd, 0x6a, 0xc4, 0x21, 0xed, 0xc3, 0x7a, 0x3a, 0x25, 0xdd, 0xa7, 0x9d, 0xa5, 0xa3, 0x1a, 0xf7, 0x6f, 0x48, 0xc9, 0x98, 0xc2, 0x2b, 0x99, 0xbf, 0x20, 0xf5, 0x58, 0xc6, 0x8a, 0x54, 0x47, 0x33, 0x26, 0x8a, 0x60, 0xa8, 0x2c, 0x76, 0xe8, 0x2f, 0x0c, 0xce, 0x9e, 0x1c, 0x0f, 0x14, 0x8c, 0x39, 0x55, 0x1f, 0x62, 0x0f, 0xa8, 0x6f, 0x59, 0xa1, 0xb6, 0x72, 0x3e, 0x6d, 0x9d, 0xfb, 0x32, 0x1a, 0x9f, 0xc6, 0x3b, 0x5a, 0x4c, 0x9b, 0x96, 0x94, 0x57, 0xb6, 0x18, 0x97, 0xe6, 0xec, 0xde, 0xa6, 0x58, 0x13, 0xcd, 0x2e, 0x9a, 0x98, 0x0b, 0xe4, 0x1e, 0x5d, 0xb9, 0xa5, 0x61, 0xf8, 0x8a, 0x46, 0xa3, 0xd3, 0x26, 0x84, 0xf1, 0xee, 0x6c, 0xec, 0x7c, 0x5d, 0x9f, 0x37, 0xfb, 0x1b, 0xcd, 0x06, 0xf5, 0xe2, 0xa6, 0xfe, 0x97, 0x8a, 0x28, 0xb8, 0xd7, 0x86, 0x1c, 0x6a, 0x8f, 0xdc, 0xcc, 0xd3, 0x5b, 0xa9, 0x54, 0x89, 0x94, 0xd0, 0xfd, 0x22, 0xf0, 0xfc, 0x86, 0xc6, 0x8d, 0xcf, 0x31, 0x53, 0xe4, 0xa4, 0x72, 0xfc, 0xa9, 0x05, 0xf9, 0x05, 0x49, 0xf9, 0x04, 0xb1, 0x77, 0x79, 0x1e, 0x6c, 0x88, 0x50, 0xc9, 0x17, 0x15, 0x4d, 0xcc, 0x25, 0xf7, 0x98, 0x08, 0x76, 0x2e, 0xc8, 0xea, 0x6f, 0x16, 0xb9, 0x9a, 0xdb, 0xc5, 0xf5, 0x9b, 0x21, 0x72, 0x58, 0x39, 0xc6, 0xeb, 0xfb, 0x27, 0xcc, 0x32, 0xec, 0xc6, 0x6f,
0x85, 0x17, 0x43, 0x04, 0x81, 0x67, 0x88, 0xd8, 0x63, 0xa4, 0x58, 0xe0, 0x61, 0x7d, 0x7e, 0x4b, 0xdb, 0x70, 0x89, 0xaa, 0x1f, 0xa8, 0x2b, 0x01, 0x39, 0x18, 0xbf, 0x14, 0x42, 0x5f, 0x9f, 0xf5, 0x4d, 0x15, 0x99, 0x85, 0xfc, 0x90, 0x6e, 0xc2, 0x4f, 0x5b, 0x50, 0xbf, 0x4b, 0x64, 0x36, 0x5e, 0x9b, 0xd5, 0x67, 0xe1, 0x0d, 0x58, 0x21, 0xf6, 0x6e, 0x62, 0xd9, 0xc4, 0xf4, 0x2a, 0xcd, 0x11, 0xe1, 0xfd, 0x71, 0x59, 0xfd, 0x94, 0xec, 0x69, 0xc6, 0x2a, 0x71, 0x6a, 0x9b, 0xb3, 0xb5, 0xa9, 0x21, 0x2b, 0x74, 0xe9, 0x32, 0x54, 0x4b, 0xca, 0x29, 0xae, 0x12, 0xaa, 0x71, 0x52, 0x56, 0x2f, 0xfa, 0xf6, 0xb0, 0x4d, 0x44, 0xd2, 0xad, 0xe8, 0x34, 0xf3, 0xd2, 0xc9, 0x63, 0x75, 0xe2, 0x39, 0x61, 0x43, 0xea, 0x35, 0x2a, 0xd5, 0x5b, 0x45, 0xd2, 0xf3, 0xb2, 0xac, 0xfb, 0x68, 0x7c, 0xb4, 0x84, 0x5e, 0x4d, 0x7c, 0x61, 0x2c, 0x4b, 0x68, 0x12, 0x7b, 0x73, 0x89, 0x38, 0xe4, 0x27, 0x67, 0x6d, 0xa3, 0xc5, 0x77, 0xf4, 0x1c, 0x7b, 0x85, 0xe6, 0xa9, 0xa6, 0x3c, 0xa6, 0x0b, 0xd9, 0x20, 0x24, 0x7a, 0x8b, 0xe2, 0xd4, 0xf2, 0x5e, 0x71, 0x2a, 0x4e, 0x57, 0xac, 0x3f, 0xf7, 0x89, 0xd3, 0xbd, 0x27, 0x9b, 0x5f, 0xe6, 0x18, 0xe4, 0x63, 0xf6, 0x88, 0x94, 0x7e, 0x11, 0xd6, 0x8a, 0x74, 0xc8, 0x37, 0x45, 0xce, 0x68, 0x67, 0x42, 0x77, 0xb1, 0xf8, 0x5a, 0x37, 0x37, 0xa1, 0xb5, 0xbb, 0x84, 0x4e, 0x2d, 0x9b, 0x93, 0x8f, 0xe9, 0x4c, 0x70, 0x56, 0x46, 0x1d, 0xaf, 0x3a, 0xee, 0xf4, 0xec, 0x23, 0x15, 0x22, 0x5d, 0x34, 0x57, 0xeb, 0x8d, 0x5e, 0x22, 0x4e, 0x7a, 0xab, 0xdb, 0x91, 0x63, 0x9d, 0xd8, 0xcf, 0x2b, 0x44, 0x76, 0x63, 0xb3, 0x08, 0x96, 0xd7, 0xe2, 0x06, 0x71, 0x00,
0xfe, 0x9c, 0xf1, 0xd6, 0xe9, 0x20, 0x94, 0xfd, 0xeb, 0xe4, 0x44, 0xb1, 0x21, 0x63, 0xc4, 0xa9, 0x7a, 0x12, 0x7f, 0x10, 0xdf, 0x16, 0xca, 0x36, 0x7a, 0x88, 0x48, 0x9e, 0x55, 0xc5, 0xe2, 0x97, 0x96, 0x8c, 0x1d, 0x23, 0x52, 0x35, 0x15, 0x3c, 0xa1, 0xfb, 0x8f, 0x5e, 0xe3, 0xc4, 0xe9, 0x1a, 0x94, 0x2d, 0x68, 0x95, 0x10, 0xe4, 0x30, 0x91, 0xb8, 0x24, 0x84, 0xb6, 0xb1, 0x60, 0x6e, 0x35, 0xe3, 0x69, 0x48, 0xc6, 0xcb, 0x72, 0xc9, 0xe2, 0x3b, 0x16, 0x5d, 0xae, 0xb6, 0xe2, 0x5b, 0xe9, 0xdf, 0x80, 0x08, 0x77, 0x7b, 0xba, 0x50, 0x2d, 0x83, 0xb3, 0x79, 0xdb, 0x44, 0xc6, 0xfb, 0x4e, 0xe5, 0x91, 0x77, 0x2b, 0x0c, 0x13, 0xeb, 0x1e, 0x2a, 0xd4, 0x5d, 0xee, 0x44, 0xbd, 0x48, 0x04, 0xbd, 0xbb, 0xda, 0x66, 0xad, 0x7d, 0x10, 0xfe, 0x0d, 0x32, 0x95, 0xbe, 0xad, 0x52, 0x1e, 0xd7, 0x59, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
}
const unsigned char chai3d::CHAI3D_LOGO_BLACK_BYTEARRAY[]
Initial value:
=
{
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x19, 0x08, 0x06, 0x00, 0x00, 0x00, 0xc7, 0x5e, 0x8b, 0x4b, 0x00, 0x00, 0x07, 0xa2, 0x49, 0x44, 0x41, 0x54, 0x68, 0x81, 0xed, 0xd9, 0x7b, 0x8c, 0x5d, 0x55, 0x15, 0x06, 0xf0, 0xdf, 0x99, 0x3b, 0x33, 0x7d, 0x42, 0x4b, 0x79, 0x94, 0x82, 0xb4, 0xe5, 0x65, 0x91, 0x16, 0xad, 0x20, 0x11, 0x0b, 0x96, 0xa0, 0x88, 0x20, 0x12, 0x90, 0xa2, 0x88, 0xa8, 0x18, 0x1f, 0x29, 0x3e, 0x20, 0x82, 0x40, 0x22, 0x46, 0x25, 0xc6, 0x04, 0x1f, 0x28, 0x88, 0x26, 0x56, 0x8d, 0x04, 0x8c, 0xa2, 0x96, 0x87, 0x41, 0x45, 0x94, 0x87, 0x4a, 0x0c, 0x1a, 0x11, 0x10, 0x04, 0x01, 0xc5, 0xb6, 0x28, 0x85, 0x52, 0x4a, 0x3b, 0xb4, 0x85, 0xd2, 0xce, 0xf4, 0xde, 0xe3, 0x1f, 0xeb, 0xdc, 0xb9, 0xfb, 0xde, 0xb9, 0xe7, 0xce, 0xb4, 0x33, 0x84, 0xc6, 0xf8, 0x25, 0x37, 0x77, 0x9f, 0x73, 0xf6, 0x63, 0xed, 0xbd, 0xd6, 0x5e, 0xfb, 0x5b, 0x6b, 0x67, 0x79, 0x9e, 0xfb, 0x3f, 0x76, 0x1c, 0x74, 0xc3, 0xb1, 0xc7, 0x1e, 0x37, 0x16, 0x7d, 0x4d, 0xc4, 0xc7, 0x8a, 0xff, 0x1c, 0x57, 0xe3, 0x89, 0xb1, 0xe8, 0x78, 0x94, 0x38, 0x1f, 0x1f, 0xc5, 0x5f, 0xf0, 0x09, 0xac, 0x83, 0x8d, 0xfd, 0x15, 0xe7, 0x1e, 0xb1, 0xca, 0x99, 0x87, 0xad, 0x36, 0xd0, 0x5f, 0xa9, 0xd7, 0xed, 0xc1, 0x19, 0x38, 0x01, 0xf3, 0xc5, 0x5c, 0xe0, 0x59, 0xdc, 0x85, 0x1f, 0xe3, 0x4f, 0x63, 0x24, 0xd7, 0x7e, 0x38, 0x13, 0x19, 0x56, 0xf6, 0xbc, 0x6f, 0xe5, 0x55, 0x14, 0x0a, 0x19, 0x23, 0xec, 0x8a, 0xaf, 0x26, 0xcf, 0xf7, 0x78, 0xf9, 0x15, 0x72, 0x04, 0xbe, 0x56, 0x94, 0x0f, 0xc0,
0x46, 0x2c, 0xce, 0xd1, 0xdb, 0x55, 0xb3, 0xdf, 0xb4, 0xcd, 0xd4, 0xb2, 0x7a, 0xdd, 0x59, 0x62, 0xc1, 0xdf, 0xd0, 0xa6, 0x9f, 0x99, 0x38, 0x14, 0xe7, 0xe0, 0x4a, 0xa1, 0xe4, 0xea, 0x28, 0x65, 0x7b, 0x2d, 0xbe, 0x50, 0x94, 0x1f, 0xc7, 0x55, 0xd0, 0x35, 0xca, 0x4e, 0x53, 0xd4, 0xc4, 0x84, 0xeb, 0xd8, 0x3a, 0x86, 0x7d, 0x6f, 0x2f, 0x76, 0x6a, 0x79, 0xde, 0x15, 0xfa, 0xb7, 0x76, 0x39, 0x68, 0xf7, 0x17, 0x1d, 0xb6, 0xf7, 0xf3, 0xaa, 0xd5, 0x2e, 0xd8, 0x0d, 0xbf, 0x36, 0x54, 0x19, 0x1b, 0xf1, 0x7c, 0xcb, 0xbb, 0x73, 0x35, 0x16, 0x72, 0x34, 0x18, 0x68, 0x19, 0x07, 0x63, 0xab, 0x90, 0x1d, 0x11, 0x7f, 0xc0, 0x4f, 0xc4, 0xa2, 0x3e, 0x88, 0x4b, 0x72, 0xe4, 0x72, 0xef, 0x9c, 0xb7, 0x56, 0x6f, 0x4f, 0x4d, 0x2d, 0x8e, 0xd0, 0x77, 0xe3, 0xa0, 0xa4, 0xdd, 0xcf, 0x85, 0xcb, 0x3a, 0xa0, 0xf8, 0x1d, 0x83, 0xbb, 0x93, 0xef, 0xe7, 0x0b, 0x97, 0x33, 0xe6, 0x18, 0x4b, 0x97, 0xb5, 0x23, 0x62, 0xb3, 0x38, 0x13, 0xf6, 0xc2, 0x1a, 0x0c, 0xe4, 0x39, 0x13, 0x7b, 0x72, 0x73, 0xf7, 0xd8, 0x94, 0xba, 0xab, 0x1f, 0x89, 0xb5, 0xb8, 0x00, 0x8f, 0x60, 0x91, 0xe6, 0x1d, 0xbe, 0x1a, 0xc7, 0xe3, 0x5e, 0xec, 0x8b, 0xf1, 0x38, 0x05, 0x5f, 0x1f, 0x6b, 0x81, 0xff, 0xd7, 0x77, 0x48, 0x1d, 0x4f, 0x29, 0x5c, 0x44, 0x57, 0xc6, 0x8b, 0x5b, 0xbb, 0xfc, 0x76, 0xf9, 0x14, 0x2a, 0x35, 0x85, 0x4a, 0xfa, 0x70, 0x05, 0xe6, 0x8a, 0x85, 0x6e, 0xe7, 0x6e, 0xfb, 0x70, 0x63, 0xf2, 0x7c, 0xe8, 0x4b, 0x21, 0x68, 0xd9, 0x0e, 0x99, 0x8a, 0xc3, 0xb1, 0x3f, 0xc6, 0xe1, 0x19, 0xdc, 0x2f, 0xac, 0x67, 0xa4, 0xa8, 0x1f, 0x7a, 0x15, 0xec, 0x5d, 0x94, 0x9f, 0x46, 0xff, 0x36, 0xca,
0x38, 0x1d, 0xaf, 0x13, 0x87, 0x6e, 0xb7, 0xb0, 0xf4, 0x07, 0xf0, 0xf0, 0x08, 0xdb, 0xcf, 0x14, 0x73, 0xc8, 0x05, 0xc9, 0xd8, 0xd2, 0xdb, 0x55, 0xb3, 0xe4, 0xee, 0x3d, 0x75, 0x77, 0xe5, 0xce, 0x98, 0xbf, 0xc6, 0xc0, 0xd6, 0x41, 0xbb, 0x5c, 0x3f, 0x4c, 0x5f, 0x4f, 0x27, 0xe5, 0x3d, 0x47, 0x38, 0x3e, 0x61, 0xf8, 0x7b, 0x89, 0xb5, 0xa8, 0x1b, 0x47, 0x5b, 0x52, 0xd0, 0x4e, 0x21, 0x9f, 0x11, 0xf4, 0xb0, 0x75, 0xc0, 0xaa, 0xa0, 0x7c, 0x97, 0xe0, 0x8e, 0x11, 0x08, 0x31, 0x49, 0x1c, 0x80, 0x67, 0x6b, 0xf8, 0xdb, 0x95, 0xb8, 0x01, 0x97, 0xe2, 0xb9, 0x61, 0xda, 0xf7, 0xe2, 0x2b, 0x38, 0x4b, 0x18, 0x48, 0x8a, 0x5a, 0x21, 0xc3, 0x79, 0xf8, 0x7b, 0x87, 0x3e, 0x26, 0x8a, 0x73, 0x64, 0x1f, 0xa1, 0x90, 0x13, 0x70, 0x6b, 0x96, 0xd1, 0xdb, 0x5d, 0xf3, 0xed, 0xbb, 0xf7, 0x34, 0x6f, 0xfa, 0x26, 0x87, 0xcc, 0x78, 0x21, 0x55, 0x4a, 0x27, 0xec, 0x93, 0x94, 0x37, 0x96, 0xd6, 0x6a, 0x60, 0x2a, 0x3e, 0x25, 0x5c, 0xe0, 0x6c, 0xa1, 0x90, 0x15, 0x62, 0x5e, 0x1b, 0xda, 0x35, 0x68, 0x55, 0xc8, 0x12, 0x2c, 0x2e, 0xe9, 0xbc, 0x82, 0xa3, 0xf0, 0x1b, 0xbc, 0x07, 0x4b, 0x87, 0x11, 0xe6, 0x1a, 0xec, 0xd2, 0xf2, 0x6e, 0x7f, 0x5c, 0x84, 0xe3, 0x70, 0x32, 0xfe, 0x53, 0xd2, 0xb6, 0x17, 0xd7, 0x8a, 0x89, 0xb4, 0x43, 0x17, 0xde, 0x22, 0x94, 0x72, 0x2c, 0x1e, 0x2a, 0xa9, 0x97, 0x15, 0x7d, 0x65, 0xc5, 0xaf, 0xa7, 0xfe, 0xa1, 0x92, 0xb1, 0xb9, 0x9a, 0xb9, 0xee, 0xa1, 0xdd, 0xcc, 0x9b, 0xf1, 0xc2, 0x30, 0x53, 0x41, 0x18, 0x68, 0x2a, 0xcf, 0xad, 0xc3, 0xd4, 0x9f, 0x29, 0xc8, 0xc1, 0x6b, 0x5a, 0xde, 0xcf, 0xc1, 0xf7, 0x95, 0x18, 0x64, 0x5d, 0x21, 0x99, 0x08,
0x52, 0x52, 0x65, 0xfc, 0x5b, 0x2c, 0xca, 0x33, 0x78, 0x23, 0x4e, 0x2d, 0xde, 0x57, 0x04, 0x5f, 0xbf, 0x07, 0xcb, 0x3b, 0x08, 0x54, 0x57, 0xc6, 0xb2, 0xa2, 0x8f, 0x59, 0x62, 0xdb, 0x12, 0x0c, 0xe6, 0x66, 0x1c, 0xa9, 0xbd, 0xa5, 0x7c, 0x4e, 0xf3, 0xe4, 0x57, 0xe0, 0x7b, 0x22, 0xa8, 0x5b, 0x28, 0x0c, 0x82, 0x70, 0x67, 0x57, 0x63, 0x81, 0x72, 0x57, 0x58, 0x4b, 0xca, 0x4d, 0x69, 0x89, 0x2c, 0x63, 0xb7, 0x89, 0x03, 0xda, 0x60, 0x77, 0x4c, 0x2e, 0xea, 0x77, 0x63, 0x1e, 0xbe, 0xa8, 0xe1, 0x7a, 0xff, 0x85, 0x1f, 0x96, 0x8c, 0x47, 0xb8, 0xc8, 0xa5, 0x9a, 0x95, 0xb1, 0x4a, 0xc4, 0x1b, 0xd3, 0x85, 0xc7, 0x68, 0xdd, 0xf5, 0x68, 0x1c, 0xea, 0xf3, 0x45, 0xd0, 0x53, 0xc7, 0xa3, 0x78, 0x3d, 0x2e, 0x16, 0x87, 0xdd, 0x22, 0x8d, 0x00, 0x8b, 0x88, 0x5a, 0xd3, 0x89, 0x96, 0xe1, 0x62, 0x71, 0x50, 0x2e, 0xc0, 0xc1, 0x62, 0x07, 0xd6, 0x31, 0x0f, 0xef, 0x2f, 0x69, 0xf7, 0x98, 0xc6, 0xee, 0x59, 0x89, 0xa3, 0x85, 0x9b, 0xfb, 0x8e, 0x30, 0x9c, 0xf3, 0x92, 0xba, 0x87, 0x09, 0x83, 0xd9, 0x66, 0x54, 0x32, 0x0e, 0xdf, 0xfb, 0x79, 0x59, 0x36, 0xe4, 0xd3, 0x35, 0x62, 0x0d, 0x1e, 0x15, 0x67, 0xd5, 0xcf, 0x8a, 0x79, 0x10, 0x8c, 0xeb, 0x2c, 0x9d, 0x5d, 0xd6, 0x49, 0x62, 0xfd, 0xea, 0xb8, 0x0a, 0xaf, 0x12, 0xeb, 0x30, 0x57, 0x87, 0x38, 0xa6, 0xae, 0x90, 0x37, 0xe1, 0x90, 0xe4, 0xfd, 0xa7, 0x8b, 0x81, 0x53, 0x5c, 0x28, 0xac, 0xe4, 0x44, 0x61, 0xa5, 0x8f, 0x77, 0x10, 0x88, 0x98, 0xd4, 0xa5, 0xd8, 0x52, 0x3c, 0xaf, 0x17, 0x29, 0x8c, 0x3f, 0x26, 0x75, 0x4e, 0xee, 0xd0, 0xf6, 0xd5, 0x82, 0xef, 0xbf, 0xc3, 0xd0, 0x88, 0xff, 0x0a, 0x11, 0x57, 0xd4, 0xb1,
0x60, 0x18, 0x59, 0x4a, 0x31, 0xc8, 0xb3, 0x9a, 0xb1, 0x8b, 0x70, 0x75, 0xe3, 0x24, 0x6e, 0xae, 0xc0, 0x77, 0x35, 0xcf, 0xa1, 0x1d, 0xd2, 0x79, 0xdd, 0x87, 0x8f, 0x68, 0x10, 0x86, 0xcd, 0xf8, 0xbc, 0x66, 0xc6, 0x36, 0x88, 0xba, 0xcb, 0x9a, 0x85, 0x09, 0x45, 0x79, 0x8b, 0x60, 0x54, 0xad, 0xc8, 0xf1, 0xd9, 0x61, 0x04, 0x49, 0xf1, 0xd3, 0x92, 0xf7, 0xd7, 0x6b, 0x2c, 0xe0, 0x3e, 0x85, 0x0c, 0xed, 0x68, 0xe6, 0x7a, 0x5c, 0xde, 0xa1, 0xff, 0xfb, 0x35, 0x8c, 0x68, 0x8f, 0x6d, 0x90, 0x6b, 0x10, 0x79, 0x4e, 0xb5, 0xfd, 0x3e, 0xbf, 0x4b, 0x90, 0x98, 0x5c, 0xb8, 0xe8, 0x57, 0x2a, 0xa2, 0x7c, 0x11, 0xab, 0xdc, 0x23, 0xce, 0x87, 0x32, 0xcc, 0x4e, 0xca, 0x37, 0x6a, 0xef, 0x4d, 0x96, 0x6a, 0x1c, 0x03, 0x83, 0xa8, 0x2b, 0x24, 0x6d, 0x50, 0x17, 0x64, 0xb4, 0x68, 0xeb, 0x9c, 0x35, 0xa7, 0x22, 0x7a, 0xc4, 0x84, 0x3b, 0xa5, 0x59, 0x26, 0x08, 0xbf, 0x5b, 0x69, 0x79, 0xbf, 0x73, 0x52, 0x6e, 0xfd, 0x36, 0x22, 0xe4, 0xb8, 0x7d, 0xd9, 0x14, 0x0b, 0xf6, 0xdd, 0x20, 0xd3, 0x34, 0xe9, 0x0b, 0x5a, 0xaa, 0xce, 0x10, 0xc6, 0x71, 0x7a, 0x21, 0xcf, 0x37, 0xf1, 0x7b, 0x25, 0x4c, 0x49, 0x73, 0x7c, 0x57, 0xe6, 0xda, 0xda, 0x32, 0x89, 0xb2, 0x38, 0xa4, 0xed, 0x3e, 0xde, 0x46, 0x94, 0xf5, 0x91, 0x0a, 0xdb, 0x49, 0xf1, 0xd3, 0x04, 0xc5, 0x3e, 0x45, 0x2c, 0x48, 0xeb, 0xa2, 0x8f, 0x5a, 0xc6, 0x4a, 0x57, 0x6e, 0xd9, 0xba, 0x09, 0xb6, 0x0c, 0x74, 0x19, 0x5f, 0xa9, 0xc9, 0xf3, 0xd2, 0x2e, 0x57, 0x89, 0xb3, 0x6b, 0x8e, 0x38, 0x6f, 0x67, 0x0a, 0x62, 0xb1, 0xa4, 0xa4, 0x7e, 0x3a, 0xaf, 0x32, 0x3e, 0xdd, 0xf6, 0xfd, 0x8e, 0x1a, 0xa9, 0xef, 0x24, 0x68, 0xe5,
0x39, 0x1a, 0x6e, 0x2d, 0x6b, 0xf9, 0xa5, 0xd8, 0xae, 0x79, 0xf4, 0x57, 0x33, 0xa7, 0x1c, 0xbc, 0xd6, 0xa4, 0x71, 0x55, 0xb5, 0x72, 0x65, 0xd4, 0x51, 0xc5, 0x2f, 0x92, 0xe7, 0xe3, 0xb7, 0x67, 0xcc, 0xe1, 0x50, 0xb6, 0x43, 0x5e, 0xee, 0x5b, 0xab, 0xb3, 0x05, 0x7b, 0x22, 0xb6, 0xfc, 0x37, 0xf0, 0xa4, 0x86, 0x22, 0x72, 0x7c, 0x40, 0x83, 0xc9, 0x6c, 0xb3, 0x42, 0xfa, 0xab, 0x99, 0x59, 0x53, 0xb7, 0x78, 0xeb, 0x01, 0xcf, 0xa9, 0x6e, 0x1d, 0xf1, 0x66, 0x4b, 0xdd, 0x4f, 0x6b, 0x26, 0x39, 0x45, 0xda, 0x61, 0x19, 0x1b, 0x6d, 0xfb, 0xbe, 0x9d, 0x42, 0xba, 0x6d, 0xa7, 0x4f, 0x1e, 0x43, 0x9c, 0x94, 0x94, 0xaf, 0xd4, 0x9e, 0x4c, 0x1c, 0xad, 0x99, 0x5a, 0x6e, 0x13, 0xfa, 0xab, 0x99, 0xd3, 0xe6, 0xae, 0xb5, 0xf3, 0xa4, 0x81, 0xf4, 0x82, 0x6a, 0x38, 0xf4, 0x26, 0xe5, 0x4d, 0x1d, 0xea, 0xa5, 0x67, 0xe2, 0xae, 0x25, 0x75, 0x5a, 0x83, 0x66, 0x34, 0x2c, 0x6b, 0x45, 0x32, 0x40, 0xaf, 0xc8, 0x63, 0xb5, 0x62, 0x9c, 0xa0, 0xa3, 0x8b, 0x8b, 0xf2, 0x4b, 0x89, 0xf4, 0xc0, 0x7e, 0xb2, 0xcd, 0xf7, 0xd9, 0x22, 0x0d, 0xb2, 0x5d, 0x18, 0xa8, 0x66, 0x66, 0x4f, 0xdd, 0xe2, 0xb8, 0x03, 0x9f, 0x53, 0x1d, 0x18, 0xdc, 0x5c, 0xd3, 0xf1, 0x65, 0xb1, 0x3b, 0xcb, 0x90, 0xde, 0x97, 0x2c, 0xeb, 0x50, 0x6f, 0x45, 0x52, 0x5e, 0x64, 0x28, 0x75, 0x26, 0x52, 0xfe, 0x43, 0x50, 0x97, 0xe6, 0x36, 0x41, 0xe5, 0xea, 0xf8, 0x92, 0x08, 0xe4, 0xd2, 0x7a, 0x4b, 0x44, 0x20, 0xb7, 0x04, 0x7f, 0xd3, 0x7c, 0x7f, 0x30, 0xd6, 0x48, 0x63, 0xa0, 0xd3, 0x04, 0xad, 0xed, 0x16, 0x86, 0x30, 0x1f, 0xd7, 0x61, 0xca, 0xf6, 0x76, 0xde, 0x5f, 0xcd, 0x9c, 0x38, 0xa7, 0xcf, 0x94, 0x49,
0x03, 0xf5, 0xb3, 0xe3, 0x34, 0x91, 0x7e, 0xb9, 0x48, 0xec, 0xc8, 0x21, 0x74, 0x54, 0x5c, 0x4f, 0xa7, 0x46, 0xd0, 0x29, 0x9f, 0x97, 0xa6, 0x95, 0xe6, 0x8a, 0x3b, 0x99, 0x03, 0x0b, 0xf9, 0x5f, 0x81, 0x6f, 0xe1, 0x6d, 0xed, 0x1a, 0xd6, 0x5d, 0xd6, 0xc3, 0x22, 0xe1, 0xb5, 0xb0, 0x78, 0x9e, 0x8d, 0x3f, 0x8b, 0xf4, 0xc6, 0xb3, 0xc2, 0x32, 0xd2, 0x74, 0xf3, 0x64, 0x91, 0x75, 0x7d, 0xa9, 0xb0, 0x54, 0xe4, 0xbb, 0x88, 0xa0, 0xf5, 0x11, 0x91, 0xfe, 0xae, 0x08, 0x86, 0x33, 0x6a, 0x32, 0xf2, 0xc2, 0x40, 0x93, 0x9b, 0x5a, 0x2b, 0x6e, 0x0d, 0x09, 0x6b, 0xbe, 0x1e, 0x37, 0x89, 0xe0, 0xb7, 0x22, 0x52, 0x20, 0x0b, 0x93, 0xfa, 0x0f, 0x88, 0x9c, 0x5e, 0x19, 0x6e, 0xc1, 0x2f, 0xf1, 0xf6, 0xe2, 0xf9, 0xd4, 0xa2, 0xfc, 0x54, 0x31, 0xce, 0xe4, 0xb2, 0x86, 0xe9, 0xc4, 0x6e, 0xc6, 0x65, 0xc9, 0xf3, 0x64, 0xc1, 0xbb, 0x3f, 0xae, 0x59, 0x19, 0xeb, 0xf0, 0xae, 0x62, 0x12, 0x29, 0x9a, 0x92, 0x77, 0x46, 0x46, 0xf7, 0xda, 0x6d, 0x65, 0x22, 0x4f, 0x94, 0x06, 0x5e, 0xd3, 0x44, 0x62, 0x72, 0x76, 0xd2, 0x3e, 0x8d, 0xde, 0x3b, 0x1d, 0x02, 0x43, 0x64, 0xea, 0xad, 0xe4, 0xee, 0x5c, 0xb1, 0xb3, 0x0d, 0x9b, 0xba, 0x75, 0x65, 0x39, 0xfc, 0x4e, 0x64, 0x05, 0xea, 0xc8, 0x04, 0xdd, 0xfe, 0xa4, 0x60, 0x7a, 0xa9, 0x32, 0xd6, 0xe2, 0xc3, 0x3a, 0x5f, 0x23, 0xe4, 0xf8, 0x20, 0xee, 0x4c, 0xde, 0xf5, 0x16, 0xf2, 0xd7, 0x95, 0xf1, 0x8c, 0x06, 0x79, 0x1a, 0x3c, 0xcb, 0x5b, 0x17, 0xed, 0x42, 0xc1, 0xb7, 0xef, 0x33, 0x94, 0x05, 0xac, 0x17, 0xa9, 0xf3, 0xa3, 0x44, 0x24, 0xdb, 0x8a, 0x7e, 0xb1, 0x48, 0xab, 0xc5, 0xbd, 0x41, 0xeb, 0x5d, 0x74, 0xda, 0xcf, 0xea, 0xe2,
0xf7, 0x44, 0x9b, 0x71, 0x88, 0x6c, 0xc1, 0xa9, 0x62, 0x31, 0xee, 0x12, 0xf9, 0xac, 0xd5, 0xc2, 0xc2, 0x6e, 0x13, 0x99, 0xde, 0xd3, 0x8b, 0x71, 0x56, 0x2b, 0xdf, 0xad, 0xb5, 0x16, 0x99, 0x36, 0x42, 0x4f, 0x25, 0xb7, 0xa2, 0x6f, 0x9c, 0x5b, 0xfe, 0x31, 0x4d, 0xa5, 0x7b, 0x90, 0x50, 0x5e, 0x2e, 0x5c, 0xd7, 0xfd, 0xda, 0xdf, 0x55, 0x6c, 0x14, 0x3b, 0xe7, 0x48, 0xcd, 0xee, 0xbd, 0x0c, 0x6b, 0xf0, 0x66, 0x91, 0xf7, 0xba, 0x45, 0xec, 0xb6, 0x55, 0x62, 0x6d, 0x2f, 0x10, 0x59, 0x86, 0x7b, 0x85, 0x62, 0x06, 0xcf, 0xc9, 0x76, 0x2c, 0xeb, 0xda, 0xa2, 0xd1, 0x31, 0x22, 0x65, 0x30, 0x5e, 0xb8, 0xad, 0xfb, 0x44, 0x74, 0xda, 0x57, 0x22, 0x40, 0x1f, 0x3e, 0xa4, 0x71, 0x19, 0xf4, 0x60, 0x49, 0xbd, 0x3b, 0xf0, 0xde, 0xa2, 0xbc, 0x41, 0x79, 0x94, 0x5e, 0x15, 0xbe, 0xf6, 0x26, 0x91, 0xda, 0x19, 0x2f, 0xa2, 0xff, 0x7f, 0x16, 0x13, 0x1b, 0x5f, 0xf4, 0x93, 0x29, 0xcf, 0xab, 0x6d, 0x16, 0x77, 0x3b, 0x93, 0x0a, 0x99, 0x06, 0x53, 0x42, 0x19, 0x96, 0xf7, 0x0d, 0xe1, 0x26, 0x37, 0x08, 0xf7, 0xb8, 0x50, 0xcc, 0x7d, 0xb2, 0x50, 0xea, 0x3a, 0xfc, 0x15, 0xb7, 0x2b, 0x9f, 0x7f, 0xd9, 0x1c, 0x7e, 0x80, 0x5f, 0x89, 0x1d, 0x3e, 0x41, 0x2c, 0xfe, 0x63, 0xc5, 0xf7, 0x73, 0x8b, 0x31, 0xd6, 0xd5, 0x1b, 0xfc, 0x17, 0x10, 0xb7, 0xda, 0x4f, 0x4c, 0xfa, 0x0d, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
}
const unsigned int chai3d::CFONTCALIBRI144_WIDTH = 1024
const unsigned int chai3d::CFONTCALIBRI144_HEIGHT = 1024
const unsigned int chai3d::CFONTCALIBRI144_CHARSET_BASE = 112
const unsigned int chai3d::CFONTCALIBRI144_CHARSET_LINEHEIGHT = 144
const unsigned int chai3d::CFONTCALIBRI144_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI144_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI144_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI16_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI16_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI16_CHARSET_BASE = 12
const unsigned int chai3d::CFONTCALIBRI16_CHARSET_LINEHEIGHT = 16
const unsigned int chai3d::CFONTCALIBRI16_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI16_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI16_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI18_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI18_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI18_CHARSET_BASE = 14
const unsigned int chai3d::CFONTCALIBRI18_CHARSET_LINEHEIGHT = 18
const unsigned int chai3d::CFONTCALIBRI18_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI18_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI18_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI20_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI20_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI20_CHARSET_BASE = 16
const unsigned int chai3d::CFONTCALIBRI20_CHARSET_LINEHEIGHT = 20
const unsigned int chai3d::CFONTCALIBRI20_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI20_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI20_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI22_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI22_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI22_CHARSET_BASE = 17
const unsigned int chai3d::CFONTCALIBRI22_CHARSET_LINEHEIGHT = 22
const unsigned int chai3d::CFONTCALIBRI22_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI22_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI22_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI24_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI24_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI24_CHARSET_BASE = 19
const unsigned int chai3d::CFONTCALIBRI24_CHARSET_LINEHEIGHT = 24
const unsigned int chai3d::CFONTCALIBRI24_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI24_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI24_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI26_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI26_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI26_CHARSET_BASE = 20
const unsigned int chai3d::CFONTCALIBRI26_CHARSET_LINEHEIGHT = 26
const unsigned int chai3d::CFONTCALIBRI26_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI26_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI26_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI28_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI28_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI28_CHARSET_BASE = 22
const unsigned int chai3d::CFONTCALIBRI28_CHARSET_LINEHEIGHT = 28
const unsigned int chai3d::CFONTCALIBRI28_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI28_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI28_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI32_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI32_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI32_CHARSET_BASE = 25
const unsigned int chai3d::CFONTCALIBRI32_CHARSET_LINEHEIGHT = 32
const unsigned int chai3d::CFONTCALIBRI32_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI32_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI32_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI36_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI36_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI36_CHARSET_BASE = 28
const unsigned int chai3d::CFONTCALIBRI36_CHARSET_LINEHEIGHT = 36
const unsigned int chai3d::CFONTCALIBRI36_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI36_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI36_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI40_WIDTH = 256
const unsigned int chai3d::CFONTCALIBRI40_HEIGHT = 256
const unsigned int chai3d::CFONTCALIBRI40_CHARSET_BASE = 31
const unsigned int chai3d::CFONTCALIBRI40_CHARSET_LINEHEIGHT = 40
const unsigned int chai3d::CFONTCALIBRI40_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI40_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI40_BYTEARRAY[]
const unsigned int chai3d::CFONTCALIBRI72_WIDTH = 512
const unsigned int chai3d::CFONTCALIBRI72_HEIGHT = 512
const unsigned int chai3d::CFONTCALIBRI72_CHARSET_BASE = 56
const unsigned int chai3d::CFONTCALIBRI72_CHARSET_LINEHEIGHT = 72
const unsigned int chai3d::CFONTCALIBRI72_CHARSET_PAGES = 1
const int chai3d::CFONTCALIBRI72_CHARSET[]
const unsigned char chai3d::CFONTCALIBRI72_BYTEARRAY[]
const std::string chai3d::C_SHADER_BASIC_VOXEL_LUT8_VERT
Initial value:
=
" \n"
" attribute vec3 aPosition; \n"
" attribute vec3 aNormal; \n"
" attribute vec3 aTexCoord; \n"
" attribute vec4 aColor; \n"
" attribute vec3 aTangent; \n"
" attribute vec3 aBitangent; \n"
" \n"
" varying vec4 vPosition; \n"
" \n"
" //---------------------------------------------------------------------- \n"
" // Main vertex shader code. \n"
" //---------------------------------------------------------------------- \n"
" \n"
" void main(void) \n"
" { \n"
" gl_TexCoord[0] = gl_TextureMatrix[0] * vec4(aTexCoord, 1.0); \n"
" vPosition = gl_Vertex; \n"
" gl_Position = ftransform(); \n"
" } \n"
" \n"
const std::string chai3d::C_SHADER_BASIC_VOXEL_LUT8_FRAG
const std::string chai3d::C_SHADER_BASIC_VOXEL_RGBA8_VERT
Initial value:
=
" \n"
" attribute vec3 aPosition; \n"
" attribute vec3 aNormal; \n"
" attribute vec3 aTexCoord; \n"
" attribute vec4 aColor; \n"
" attribute vec3 aTangent; \n"
" attribute vec3 aBitangent; \n"
" \n"
" varying vec4 vPosition; \n"
" \n"
" //---------------------------------------------------------------------- \n"
" // Main vertex shader code. \n"
" //---------------------------------------------------------------------- \n"
" \n"
" void main(void) \n"
" { \n"
" gl_TexCoord[0] = gl_TextureMatrix[0] * vec4(aTexCoord, 1.0); \n"
" vPosition = gl_Vertex; \n"
" gl_Position = ftransform(); \n"
" } \n"
" \n"
const std::string chai3d::C_SHADER_BASIC_VOXEL_RGBA8_FRAG
const std::string chai3d::C_SHADER_DVR_LUT8_VERT
Initial value:
=
" \n"
" attribute vec3 aPosition; \n"
" attribute vec3 aNormal; \n"
" attribute vec3 aTexCoord; \n"
" attribute vec4 aColor; \n"
" attribute vec3 aTangent; \n"
" attribute vec3 aBitangent; \n"
" \n"
" varying vec4 vPosition; \n"
" \n"
" //---------------------------------------------------------------------- \n"
" // Main vertex shader code. \n"
" //---------------------------------------------------------------------- \n"
" \n"
" void main(void) \n"
" { \n"
" gl_TexCoord[0] = gl_TextureMatrix[0] * vec4(aTexCoord, 1.0); \n"
" vPosition = gl_Vertex; \n"
" gl_Position = ftransform(); \n"
" } \n"
" \n"
const std::string chai3d::C_SHADER_DVR_LUT8_FRAG
const std::string chai3d::C_SHADER_FONG_VERT
const std::string chai3d::C_SHADER_FONG_FRAG
const std::string chai3d::C_SHADER_ISOSURFACE_L8_VERT
Initial value:
=
" \n"
" attribute vec3 aPosition; \n"
" attribute vec3 aNormal; \n"
" attribute vec3 aTexCoord; \n"
" attribute vec4 aColor; \n"
" attribute vec3 aTangent; \n"
" attribute vec3 aBitangent; \n"
" \n"
" varying vec4 vPosition; \n"
" \n"
" //---------------------------------------------------------------------- \n"
" // Main vertex shader code. \n"
" //---------------------------------------------------------------------- \n"
" \n"
" void main(void) \n"
" { \n"
" gl_TexCoord[0] = gl_TextureMatrix[0] * vec4(aTexCoord, 1.0); \n"
" vPosition = gl_Vertex; \n"
" gl_Position = ftransform(); \n"
" } \n"
" \n"
const std::string chai3d::C_SHADER_ISOSURFACE_L8_FRAG
const std::string chai3d::C_SHADER_ISOSURFACE_RGBA8_VERT
Initial value:
=
" \n"
" attribute vec3 aPosition; \n"
" attribute vec3 aNormal; \n"
" attribute vec3 aTexCoord; \n"
" attribute vec4 aColor; \n"
" attribute vec3 aTangent; \n"
" attribute vec3 aBitangent; \n"
" \n"
" varying vec4 vPosition; \n"
" \n"
" //---------------------------------------------------------------------- \n"
" // Main vertex shader code. \n"
" //---------------------------------------------------------------------- \n"
" \n"
" void main(void) \n"
" { \n"
" gl_TexCoord[0] = gl_TextureMatrix[0] * vec4(aTexCoord, 1.0); \n"
" vPosition = gl_Vertex; \n"
" gl_Position = ftransform(); \n"
" } \n"
" \n"
const std::string chai3d::C_SHADER_ISOSURFACE_RGBA8_FRAG
const std::string chai3d::C_SHADER_ISOSURFACE_COLOR_L8_VERT
Initial value:
=
" \n"
" attribute vec3 aPosition; \n"
" attribute vec3 aNormal; \n"
" attribute vec3 aTexCoord; \n"
" attribute vec4 aColor; \n"
" attribute vec3 aTangent; \n"
" attribute vec3 aBitangent; \n"
" \n"
" varying vec4 vPosition; \n"
" \n"
" //---------------------------------------------------------------------- \n"
" // Main vertex shader code. \n"
" //---------------------------------------------------------------------- \n"
" \n"
" void main(void) \n"
" { \n"
" gl_TexCoord[0] = gl_TextureMatrix[0] * vec4(aTexCoord, 1.0); \n"
" vPosition = gl_Vertex; \n"
" gl_Position = ftransform(); \n"
" } \n"
" \n"
const std::string chai3d::C_SHADER_ISOSURFACE_COLOR_L8_FRAG
const std::string chai3d::C_SHADER_ISOSURFACE_COLOR_LUT8_VERT
Initial value:
=
" \n"
" attribute vec3 aPosition; \n"
" attribute vec3 aNormal; \n"
" attribute vec3 aTexCoord; \n"
" attribute vec4 aColor; \n"
" attribute vec3 aTangent; \n"
" attribute vec3 aBitangent; \n"
" \n"
" varying vec4 vPosition; \n"
" \n"
" //---------------------------------------------------------------------- \n"
" // Main vertex shader code. \n"
" //---------------------------------------------------------------------- \n"
" \n"
" void main(void) \n"
" { \n"
" gl_TexCoord[0] = gl_TextureMatrix[0] * vec4(aTexCoord, 1.0); \n"
" vPosition = gl_Vertex; \n"
" gl_Position = ftransform(); \n"
" } \n"
" \n"
const std::string chai3d::C_SHADER_ISOSURFACE_COLOR_LUT8_FRAG
const std::string chai3d::C_SHADER_ISOSURFACE_COLOR_RGBA8_VERT
Initial value:
=
" \n"
" attribute vec3 aPosition; \n"
" attribute vec3 aNormal; \n"
" attribute vec3 aTexCoord; \n"
" attribute vec4 aColor; \n"
" attribute vec3 aTangent; \n"
" attribute vec3 aBitangent; \n"
" \n"
" varying vec4 vPosition; \n"
" \n"
" //---------------------------------------------------------------------- \n"
" // Main vertex shader code. \n"
" //---------------------------------------------------------------------- \n"
" \n"
" void main(void) \n"
" { \n"
" gl_TexCoord[0] = gl_TextureMatrix[0] * vec4(aTexCoord, 1.0); \n"
" vPosition = gl_Vertex; \n"
" gl_Position = ftransform(); \n"
" } \n"
" \n"
const std::string chai3d::C_SHADER_ISOSURFACE_COLOR_RGBA8_FRAG
const int chai3d::C_SCOPE_MAX_SAMPLES = 3000
const int chai3d::C_NUM_VOXEL_RENDERING_MODES = 9