chai3d.h
Go to the documentation of this file.
1 //===========================================================================
2 /*
3  Software License Agreement (BSD License)
4  Copyright (c) 2003-2016, CHAI3D.
5  (www.chai3d.org)
6 
7  All rights reserved.
8 
9  Redistribution and use in source and binary forms, with or without
10  modification, are permitted provided that the following conditions
11  are met:
12 
13  * Redistributions of source code must retain the above copyright
14  notice, this list of conditions and the following disclaimer.
15 
16  * Redistributions in binary form must reproduce the above
17  copyright notice, this list of conditions and the following
18  disclaimer in the documentation and/or other materials provided
19  with the distribution.
20 
21  * Neither the name of CHAI3D nor the names of its contributors may
22  be used to endorse or promote products derived from this software
23  without specific prior written permission.
24 
25  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
28  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
29  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
30  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
31  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
32  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
33  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
35  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36  POSSIBILITY OF SUCH DAMAGE.
37 
38  \author <http://www.chai3d.org>
39  \author Francois Conti
40  \version 3.2.0 $Rev: 2174 $
41 */
42 //===========================================================================
43 
44 //---------------------------------------------------------------------------
45 #ifndef CCHAI3DH
46 #define CCHAI3DH
47 //---------------------------------------------------------------------------
48 
49 //===========================================================================
56 //===========================================================================
57 
58 
59 //---------------------------------------------------------------------------
62 //---------------------------------------------------------------------------
63 #include "audio/CAudioBuffer.h"
64 #include "audio/CAudioDevice.h"
65 #include "audio/CAudioSource.h"
66 
67 
68 //---------------------------------------------------------------------------
71 //---------------------------------------------------------------------------
72 #include "devices/CGenericDevice.h"
76 #include "devices/CDeltaDevices.h"
77 #include "devices/CLeapDevices.h"
80 
81 
82 //---------------------------------------------------------------------------
85 //---------------------------------------------------------------------------
86 #include "graphics/CColor.h"
87 #include "graphics/CDisplayList.h"
88 #include "graphics/CDraw3D.h"
89 #include "graphics/CFog.h"
90 #include "graphics/CFont.h"
91 #include "graphics/CImage.h"
92 #include "graphics/CMultiImage.h"
93 #include "graphics/CVideo.h"
94 #include "graphics/CPrimitives.h"
96 #include "graphics/CGenericArray.h"
97 #include "graphics/CPointArray.h"
98 #include "graphics/CSegmentArray.h"
100 #include "graphics/CVertexArray.h"
101 
102 
103 //---------------------------------------------------------------------------
106 //---------------------------------------------------------------------------
107 #include "shaders/CShader.h"
108 #include "shaders/CShaderProgram.h"
109 
110 
111 //---------------------------------------------------------------------------
114 //---------------------------------------------------------------------------
116 #include "materials/CMaterial.h"
117 #include "materials/CNormalMap.h"
118 #include "materials/CTexture1d.h"
119 #include "materials/CTexture2d.h"
120 #include "materials/CTexture3d.h"
121 #include "materials/CTextureVideo.h"
122 
123 
124 //---------------------------------------------------------------------------
127 //---------------------------------------------------------------------------
128 #include "math/CBezier.h"
129 #include "math/CConstants.h"
130 #include "math/CGeometry.h"
131 #include "math/CMaths.h"
132 #include "math/CMatrix3d.h"
133 #include "math/CMarchingCubes.h"
134 #include "math/CPolySolver.h"
135 #include "math/CQuaternion.h"
136 #include "math/CTransform.h"
137 #include "math/CVector3d.h"
138 
139 
140 //---------------------------------------------------------------------------
143 //---------------------------------------------------------------------------
144 #include "widgets/CGenericWidget.h"
145 #include "widgets/CBackground.h"
146 #include "widgets/CBitmap.h"
147 #include "widgets/CDial.h"
148 #include "widgets/CLabel.h"
149 #include "widgets/CLevel.h"
150 #include "widgets/CPanel.h"
151 #include "widgets/CScope.h"
152 #include "widgets/CViewPanel.h"
153 
154 
155 //---------------------------------------------------------------------------
158 //---------------------------------------------------------------------------
159 #include "world/CGenericObject.h"
160 #include "world/CMesh.h"
161 #include "world/CMultiMesh.h"
162 #include "world/CMultiPoint.h"
163 #include "world/CMultiSegment.h"
164 #include "world/CShapeBox.h"
165 #include "world/CShapeCylinder.h"
166 #include "world/CShapeEllipsoid.h"
167 #include "world/CShapeLine.h"
168 #include "world/CShapeSphere.h"
169 #include "world/CShapeTorus.h"
170 #include "world/CVoxelObject.h"
171 #include "world/CWorld.h"
172 
173 
174 //---------------------------------------------------------------------------
177 //---------------------------------------------------------------------------
178 #include "display/CCamera.h"
179 #include "display/CFrameBuffer.h"
180 
181 
182 //---------------------------------------------------------------------------
185 //---------------------------------------------------------------------------
186 #include "lighting/CGenericLight.h"
189 #include "lighting/CSpotLight.h"
190 #include "lighting/CShadowMap.h"
191 
192 
193 //---------------------------------------------------------------------------
196 //---------------------------------------------------------------------------
197 #include "tools/CGenericTool.h"
198 #include "tools/CHapticPoint.h"
199 #include "tools/CToolCursor.h"
200 #include "tools/CToolGripper.h"
201 
202 
203 //---------------------------------------------------------------------------
206 //---------------------------------------------------------------------------
207 #include "effects/CGenericEffect.h"
208 #include "effects/CEffectMagnet.h"
209 #include "effects/CEffectSurface.h"
213 
214 
215 //---------------------------------------------------------------------------
218 //---------------------------------------------------------------------------
223 
224 
225 //---------------------------------------------------------------------------
228 //---------------------------------------------------------------------------
233 
234 
235 //---------------------------------------------------------------------------
238 //---------------------------------------------------------------------------
240 #include "timers/CPrecisionClock.h"
241 
242 
243 //---------------------------------------------------------------------------
246 //---------------------------------------------------------------------------
247 #include "files/CFileAudioWAV.h"
248 #include "files/CFileImageBMP.h"
249 #include "files/CFileImageGIF.h"
250 #include "files/CFileImageJPG.h"
251 #include "files/CFileImagePNG.h"
252 #include "files/CFileImagePPM.h"
253 #include "files/CFileImageRAW.h"
254 #include "files/CFileModel3DS.h"
255 #include "files/CFileModelOBJ.h"
256 #include "files/CFileModelSTL.h"
257 #include "files/CFileXML.h"
258 
259 
260 //---------------------------------------------------------------------------
263 //---------------------------------------------------------------------------
264 #include "system/CGenericType.h"
265 #include "system/CGlobals.h"
266 #include "system/CMutex.h"
267 #include "system/CString.h"
268 #include "system/CThread.h"
269 
270 
271 //---------------------------------------------------------------------------
274 //---------------------------------------------------------------------------
275 #include "resources/CChai3dLogo.h"
291 #include "resources/CShaderFong.h"
297 
298 
299 //---------------------------------------------------------------------------
300 #endif
301 //---------------------------------------------------------------------------
Implements PPM image file support.
Implements a base class for light sources.
Implements a 3D point cloud object.
Implements arrays of 3D triangles.
Implements a base class for textures.
Implements an OpenGL shader primitive.
Implements support for handling threads.
Implements PNG image file support.
Implements XML file support.
Implementation of a 3D shape sphere object.
Implements a panel widget.
Implements a high precision clock.
Implement arrays of 3D segments.
Implements general math utility functions.
Implementation of a camera.
Implements an array of 3D vertices.
Implements a directional light source.
Implements an audio Buffer.
Implements GIF image file support.
Implements a 2D bimap widget.
Implements a 2D scope widget.
Implements a normal map.
Implements an abstract class for describing elements composed of vertices.
Implements a spot light source.
Implements a class to model polygonal meshes.
Implements a device base class.
Implements of an audio source.
Implements basic structures for handling interaction events.
Implements general geometry utility functions.
Implements a haptic stick and slip effect.
Implements support for the Sixense Razor Hydra magnetic tracker interface.
Implements a shadow map.
Implements support for the 3D-System Phantom haptic device.
Implements a 2D background widget.
Implements an axis-aligned bounding box collision tree (AABB)
Implementation of a 3D shape box object.
Implements a 3D multi-mesh object.
Implements a 2D text label.
Implements 3DS model file support.
Implements a positional light source.
Implements functions to create basic mesh primitives.
Implements mathematical constants.
Implements STL model file support.
Implements a base class for widgets.
Implements 3D textures.
Implements BMP image file support.
Implements a tool cursor using a single haptic point.
Implementation of class that supports OpenGL display lists.
Implements graphic fog capabilities.
Implements option settings for CHAI3D.
Implements a base class for haptic devices.
Implementation of a framebuffer.
Implements a 2D display panel associated with a framebuffer.
Implements utility functions for manipulating strings.
Implements a base class for programming collision detectors that identify intersections between segme...
Implements a gripper using two haptic points.
Implements support for all Force Dimension and Novint haptic devices.
Implements a collection of 3D segments.
Implements RAW image file support.
Implementation of a 3D shape torus object.
Implements OBJ model file support.
<Implements a 2D level display widget
Implementation of a virtual world.
Implements a brute force approach for collision detection.
Implements support for video files.
Implements a 2D dial widget.
Implements a finger-proxy force rendering algorithm.
Implements a structure to store rendering options.
Implements a quaternion.
Implements a base class for haptic effects.
Implementation of a 3D cylinder object.
Implements a shader program primitive.
Implementation of the marching cube algorithm.
Implements a universal haptic device handler.
Implements polynomial solvers.
Implements support for fonts.
Implements a base class for all objects.
Implements a haptic point on a tool.
Implements a transformation matrix.
Implements OpenGL drawing macros.
Implements a 3D matrix.
Implements a haptic vibration effect.
Implements a general abstract type.
Implements support for Bezier curves and surface patches.
Implements basic data structures for storing collision events.
Implements color properties.
Implements a 3D vector.
Implements a haptic surface effect.
Implements a haptic magnetic effect.
Implements arrays of 3D points.
Implements WAV audio file support.
Implements video textures.
Implements material properties.
Implements a haptic viscosity effect.
Implements a base class for modeling haptic tools.
Implements an audio device for listening to audio sources.
Implements a base class for force rendering algorithms.
Implements support for the Leap Motion tracker interface.
Implements 2D textures.
Implementation of a 3D volumetric object.
Implements support for mutex objects.
Implements a force algorithm for modeling haptic effects.
Implements an array of 2D image structures.
Implements a 2D image data structure.
Implementation of a 3D line object.
Implements a frequency counter.
Implements JPG image file support.
Implements support for custom haptic device.
Implements 1D textures.
Implementation of a 3D shape ellipsoid object.