00001 #pragma once 00002 #ifndef TYPES_H 00003 #define TYPES_H 00004 00006 #include <float.h> 00007 00008 // STL includes 00009 #include <iostream> 00010 #include <iomanip> 00011 #include <string> 00012 #include <sstream> 00013 #include <map> 00014 #include <vector> 00015 #include <utility> 00016 #include <algorithm> 00017 00018 #include <boost/shared_ptr.hpp> 00019 #include <boost/enable_shared_from_this.hpp> 00020 using namespace boost; 00021 00022 #ifdef WIN32 00023 #include <direct.h> 00024 #define getCWD _getcwd 00025 #else 00026 #include <unistd.h> 00027 #define getCWD getcwd 00028 #endif 00029 00030 #include "Matrix.h" 00031 00032 #ifdef RT_AS3 00033 # include <AS3.h> 00034 typedef unsigned int GLenum; 00035 typedef unsigned char GLboolean; 00036 typedef unsigned int GLbitfield; 00037 typedef signed char GLbyte; 00038 typedef short GLshort; 00039 typedef int GLint; 00040 typedef int GLsizei; 00041 typedef unsigned char GLubyte; 00042 typedef unsigned short GLushort; 00043 typedef unsigned int GLuint; 00044 typedef float GLfloat; 00045 typedef float GLclampf; 00046 typedef double GLdouble; 00047 typedef double GLclampd; 00048 typedef void GLvoid; 00049 # define GL_TRUE 1 00050 # define GL_FALSE 0 00054 #else 00055 #endif 00056 00057 #ifdef RT_GLES1 00058 # define RT_G LES 00059 # ifdef APPLE 00060 # include <ES1/gl.h> 00061 # include <ES1/glext.h> 00062 # define glGenFramebuffers glGenFramebuffersOES 00063 # define glDeleteFramebuffers glDeleteFramebuffersOES 00064 # define glBindFramebuffer glBindFramebufferOES 00065 # define glFramebufferTexture2D glFramebufferTexture2DOES 00066 # define glFramebufferRenderbuffer glFramebufferRenderbufferOES 00067 # define glCheckFramebufferStatus glCheckFramebufferStatusOES 00068 # define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES 00069 # define GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_OES 00070 # define glGenRenderbuffers glGenRenderbuffersOES 00071 # define glDeleteRenderbuffers glDeleteRenderbuffersOES 00072 # define glBindRenderbuffer glBindRenderbufferOES 00073 # define glRenderbufferTexture2D glRenderbufferTexture2DOES 00074 # define glRenderbufferRenderbuffer glRenderbufferRenderbufferOES 00075 # define glGetRenderbufferParameteriv glGetRenderbufferParameterivOES 00076 # define glRenderbufferStorage glRenderbufferStorageOES 00077 # define GL_RENDERBUFFER GL_RENDERBUFFER_OES 00078 # define GL_RENDERBUFFER_WIDTH GL_RENDERBUFFER_WIDTH_OES 00079 # define GL_RENDERBUFFER_HEIGHT GL_RENDERBUFFER_HEIGHT_OES 00080 # define GL_RENDERBUFFER_INTERNAL_FORMAT GL_RENDERBUFFER_INTERNAL_FORMAT_OES 00081 # define GL_MAX_RENDERBUFFER_SIZE GL_MAX_RENDERBUFFER_SIZE_OES 00082 # define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_OES 00083 # define GL_DEPTH_ATTACHMENT GL_DEPTH_ATTACHMENT_OES 00084 # define GL_DEPTH_COMPONENT16 GL_DEPTH_COMPONENT16_OES 00085 # define glOrtho glOrthof 00086 # elif WIN32 00087 # pragma message( "TODO: GLES|1.0 not implemented under win32" ) 00088 # endif 00089 #elif RT_GLES2 00090 # define RT_GLES 00091 # ifdef APPLE 00092 # include <ES2/gl.h> 00093 # include <ES2/glext.h> 00094 # elif WIN32 00095 # include <GLES2/gl2.h> 00096 # endif 00097 #endif 00098 00100 #ifdef RT_GLEW 00101 # include <GL/glew.h> 00102 #endif 00103 00105 #ifdef RT_CG 00106 # include <Cg/Cg.h> 00107 # include <Cg/CgGL.h> 00108 #endif 00109 00111 #if RT_GLUT 00112 # ifdef WIN32 00113 # include <GL/glut.h> 00114 # elif APPLE 00115 # include <GLUT/glut.h> 00116 # endif 00117 #elif RT_GLUT_ES 00118 # include <GLES/glutes.h> 00119 #endif 00120 00122 #ifdef RT_QT 00123 # include <QtCore/QtCore> 00124 # include <QtGui/QtGui> 00125 # include <QtOpenGL/QtOpenGL> 00126 #endif 00127 00129 #ifdef RT_NVPERFKIT 00130 # include <NVPerfSDK.h> 00131 #endif 00132 00134 #ifdef RT_BULLET 00135 # ifndef BT_USE_SINGLE_PRECISION 00136 # define BT_USE_SINGLE_PRECISION 00137 # endif 00138 # include <btBulletDynamicsCommon.h> 00139 #endif 00140 00142 #ifdef RT_BOX2D 00143 # include <Box2D.h> 00144 #endif 00145 00147 #ifdef RT_DEVIL 00148 # undef _UNICODE 00149 # include <IL/IL.h> 00150 #endif 00151 00153 #ifdef RT_FTGL 00154 # include <FTGL/FTFont.h> 00155 # include <FTGL/FTGLPolygonFont.h> 00156 # include <FTGL/FTBBox.h> 00157 #endif 00158 00160 #ifdef RT_RAPIDXML 00161 # include <rapidxml.hpp> 00162 #endif 00163 00165 #ifdef RT_IOS 00166 # include <CoreFoundation/CoreFoundation.h> 00167 # ifdef __OBJC__ 00168 # import <UIKit/UIKit.h> 00169 # import <OpenGLES/EAGL.h> 00170 # import <OpenGLES/EAGLDrawable.h> 00171 # import <QuartzCore/QuartzCore.h> 00172 # import <MacTypes.h> 00173 # import <CoreData/CoreData.h> 00174 # import <Availability.h> 00175 # ifndef __IPHONE_3_0 00176 # warning "This project uses features only available in iPhone SDK 3.0 and later." 00177 # endif 00178 # endif 00179 #endif 00180 00181 typedef unsigned int DeviceName; 00182 00183 #define DEVICENAME_UNKNOWN 0x00000000 00184 #define DEVICENAME_IPHONE3G 0x00000001 << 1 00185 #define DEVICENAME_IPHONE3GS 0x00000001 << 2 00186 #define DEVICENAME_IPHONE4 0x00000001 << 3 00187 #define DEVICENAME_IPHONE ( DEVICENAME_IPHONE3G | DEVICENAME_IPHONE3GS | DEVICENAME_IPHONE4 ) 00188 #define DEVICENAME_IPAD1 0x00000001 << 4 00189 #define DEVICENAME_IPADHD 0x00000001 << 5 00190 #define DEVICENAME_IPAD ( DEVICENAME_IPAD1 | DEVICENAME_IPADHD ) 00191 00192 // use standard namespace 00193 using namespace std; 00194 00195 namespace RenderTools{ 00196 00197 00198 template < class T > 00199 class PropertyProxy; 00200 template < class T > 00201 class PropertyContainer; 00202 00203 class NAABB; 00204 class AABB; 00205 class Error; 00206 class RelationalNode; 00207 class XMLNode; 00208 class Rendernode; 00209 class TextNode; 00210 class Camera; 00211 class AbstractCurve; 00212 class Circle; 00213 class Image; 00214 class Rendernode; 00215 class Rendergroup; 00216 class Renderpass; 00217 class Framebuffer; 00218 class Renderbuffer; 00219 class Stateset; 00220 class Sampler; 00221 class PhysicsWorld; 00222 class Plane; 00223 class Quadric; 00224 class Ellipsoid; 00225 class Vertexbuffer; 00226 class AbstractProperty; 00227 class AbstractPropertyContainer; 00228 class PropertyEvent; 00229 class PropertyContainerEvent; 00230 class ViewControllerEvent; 00231 class RelationalNode; 00232 class TransformNode; 00233 class ViewController; 00234 class AbstractApplication; 00235 00236 typedef shared_ptr< Camera > CameraPtr; 00237 typedef shared_ptr< Error > ErrorPtr; 00238 typedef shared_ptr< AbstractCurve > CurvePtr; 00239 typedef shared_ptr< Circle > CirclePtr; 00240 typedef shared_ptr< Image > ImagePtr; 00241 typedef shared_ptr< TextNode > TextNodePtr; 00242 typedef shared_ptr< Rendernode > RendernodePtr; 00243 typedef shared_ptr< RelationalNode > RelationalNodePtr; 00244 typedef shared_ptr< TransformNode > TransformNodePtr; 00245 typedef shared_ptr< XMLNode > XMLNodePtr; 00246 typedef shared_ptr< Rendergroup > RendergroupPtr; 00247 typedef shared_ptr< Renderpass > RenderpassPtr; 00248 typedef shared_ptr< Framebuffer > FramebufferPtr; 00249 typedef shared_ptr< Renderbuffer > RenderbufferPtr; 00250 typedef shared_ptr< Stateset > StatesetPtr; 00251 typedef shared_ptr< Sampler > SamplerPtr; 00252 typedef shared_ptr< PhysicsWorld > PhysicsWorldPtr; 00253 typedef shared_ptr< Plane > PlanePtr; 00254 typedef shared_ptr< Quadric > QuadricPtr; 00255 typedef shared_ptr< Ellipsoid > EllipsoidPtr; 00256 typedef shared_ptr< Vertexbuffer > VertexbufferPtr; 00257 typedef shared_ptr< AbstractProperty > PropertyPtr; 00258 typedef shared_ptr< AbstractPropertyContainer > PropertyContainerPtr; 00259 typedef shared_ptr< ViewController > ViewControllerPtr; 00260 typedef shared_ptr< AbstractApplication > ApplicationPtr; 00261 00262 typedef weak_ptr< Camera > CameraWeakPtr; 00263 typedef weak_ptr< Error > ErrorWeakPtr; 00264 typedef weak_ptr< AbstractCurve > CurveWeakPtr; 00265 typedef weak_ptr< Circle > CircleWeakPtr; 00266 typedef weak_ptr< Image > ImageWeakPtr; 00267 typedef weak_ptr< TextNode > TextNodeWeakPtr; 00268 typedef weak_ptr< Rendernode > RendernodeWeakPtr; 00269 typedef weak_ptr< RelationalNode > RelationalNodeWeakPtr; 00270 typedef weak_ptr< TransformNode > TransformNodeWeakPtr; 00271 typedef weak_ptr< XMLNode > XMLNodeWeakPtr; 00272 typedef weak_ptr< Rendergroup > RendergroupWeakPtr; 00273 typedef weak_ptr< Renderpass > RenderpassWeakPtr; 00274 typedef weak_ptr< Framebuffer > FramebufferWeakPtr; 00275 typedef weak_ptr< Renderbuffer > RenderbufferWeakPtr; 00276 typedef weak_ptr< Stateset > StatesetWeakPtr; 00277 typedef weak_ptr< Sampler > SamplerWeakPtr; 00278 typedef weak_ptr< PhysicsWorld > PhysicsWorldWeakPtr; 00279 typedef weak_ptr< Plane > PlaneWeakPtr; 00280 typedef weak_ptr< Quadric > QuadricWeakPtr; 00281 typedef weak_ptr< Ellipsoid > EllipsoidWeakPtr; 00282 typedef weak_ptr< Vertexbuffer > VertexbufferWeakPtr; 00283 typedef weak_ptr< AbstractProperty > PropertyWeakPtr; 00284 typedef weak_ptr< AbstractPropertyContainer > PropertyContainerWeakPtr; 00285 typedef weak_ptr< ViewController > ViewControllerWeakPtr; 00286 typedef weak_ptr< RelationalNode > RelationalNodeWeakPtr; 00287 typedef weak_ptr< AbstractApplication > ApplicationWeakPtr; 00288 00289 typedef vector< string > StringList; 00290 typedef vector< string > EnumList; 00291 typedef vector< ErrorPtr > ErrorList; 00292 typedef vector< PropertyPtr > PropertyList; 00293 typedef vector< CameraPtr > CameraList; 00294 typedef vector< CurvePtr > CurveList; 00295 typedef vector< CirclePtr > CircleList; 00296 typedef vector< ImagePtr > ImageList; 00297 typedef vector< TextNodePtr > TextNodeList; 00298 typedef vector< FramebufferPtr > FramebufferList; 00299 typedef vector< RenderbufferPtr > RenderbufferList; 00300 typedef vector< RendernodePtr > RendernodeList; 00301 typedef vector< RelationalNodePtr > RelationalNodeList; 00302 typedef vector< TransformNodePtr > TransformNodeList; 00303 typedef vector< RendergroupPtr > RendergroupList; 00304 typedef vector< RenderpassPtr > RenderpassList; 00305 typedef vector< StatesetPtr > StatesetList; 00306 typedef vector< SamplerPtr > SamplerList; 00307 typedef vector< PlanePtr > PlaneList; 00308 typedef vector< QuadricPtr > QuadricList; 00309 typedef vector< EllipsoidPtr > EllipsoidList; 00310 typedef vector< VertexbufferPtr > VertexbufferList; 00311 typedef vector< ViewControllerPtr > ViewControllerList; 00312 typedef vector< XMLNodePtr > XMLNodeList; 00313 typedef vector< ApplicationPtr > ApplicationList; 00314 00315 typedef vector< ErrorWeakPtr > ErrorWeakList; 00316 typedef vector< PropertyWeakPtr > PropertyWeakList; 00317 typedef vector< CameraWeakPtr > CameraWeakList; 00318 typedef vector< CurveWeakPtr > CurveWeakList; 00319 typedef vector< CircleWeakPtr > CircleWeakList; 00320 typedef vector< ImageWeakPtr > ImageWeakList; 00321 typedef vector< TextNodeWeakPtr > TextNodeWeakList; 00322 typedef vector< FramebufferWeakPtr > FramebufferWeakList; 00323 typedef vector< RenderbufferWeakPtr > RenderbufferWeakList; 00324 typedef vector< RendernodeWeakPtr > RendernodeWeakList; 00325 typedef vector< RelationalNodeWeakPtr > RelationalNodeWeakList; 00326 typedef vector< TransformNodeWeakPtr > TransformNodeWeakList; 00327 typedef vector< RendergroupWeakPtr > RendergroupWeakList; 00328 typedef vector< RenderpassWeakPtr > RenderpassWeakList; 00329 typedef vector< StatesetWeakPtr > StatesetWeakList; 00330 typedef vector< SamplerWeakPtr > SamplerWeakList; 00331 typedef vector< PlaneWeakPtr > PlaneWeakList; 00332 typedef vector< QuadricWeakPtr > QuadricWeakList; 00333 typedef vector< EllipsoidWeakPtr > EllipsoidWeakList; 00334 typedef vector< VertexbufferWeakPtr > VertexbufferWeakList; 00335 typedef vector< ViewControllerWeakPtr > ViewControllerWeakList; 00336 typedef vector< XMLNodeWeakPtr > XMLNodeWeakList; 00337 typedef vector< ApplicationWeakPtr > ApplicationWeakList; 00338 00339 typedef PropertyProxy< AbstractProperty > AbstractPropertyProxy; 00340 typedef PropertyProxy< AbstractPropertyContainer > AbstractPropertyContainerProxy; 00341 typedef PropertyProxy< Camera > CameraProxy; 00342 typedef PropertyProxy< Error > ErrorProxy; 00343 typedef PropertyProxy< AbstractCurve > CurveProxy; 00344 typedef PropertyProxy< Circle > CircleProxy; 00345 typedef PropertyProxy< Image > ImageProxy; 00346 typedef PropertyProxy< TextNode > TextNodeProxy; 00347 typedef PropertyProxy< Rendernode > RendernodeProxy; 00348 typedef PropertyProxy< RelationalNode > RelationalNodeProxy; 00349 typedef PropertyProxy< TransformNode > TransformNodeProxy; 00350 typedef PropertyProxy< XMLNode > XMLNodeProxy; 00351 typedef PropertyProxy< Rendergroup > RendergroupProxy; 00352 typedef PropertyProxy< Renderpass > RenderpassProxy; 00353 typedef PropertyProxy< Framebuffer > FramebufferProxy; 00354 typedef PropertyProxy< Renderbuffer > RenderbufferProxy; 00355 typedef PropertyProxy< Stateset > StatesetProxy; 00356 typedef PropertyProxy< Sampler > SamplerProxy; 00357 typedef PropertyProxy< PhysicsWorld > PhysicsWorldProxy; 00358 typedef PropertyProxy< Plane > PlaneProxy; 00359 typedef PropertyProxy< Quadric > QuadricProxy; 00360 typedef PropertyProxy< Ellipsoid > EllipsoidProxy; 00361 typedef PropertyProxy< Vertexbuffer > VertexbufferProxy; 00362 typedef PropertyProxy< ViewController > ViewControllerProxy; 00363 typedef PropertyProxy< AbstractApplication > ApplicationProxy; 00364 00365 typedef shared_ptr< AbstractPropertyProxy > PropertyProxyPtr; 00366 typedef shared_ptr< AbstractPropertyContainerProxy > PropertyContainerProxyPtr; 00367 typedef shared_ptr< CameraProxy > CameraProxyPtr; 00368 typedef shared_ptr< ErrorProxy > ErrorProxyPtr; 00369 typedef shared_ptr< CurveProxy > CurveProxyPtr; 00370 typedef shared_ptr< CircleProxy > CircleProxyPtr; 00371 typedef shared_ptr< ImageProxy > ImageProxyPtr; 00372 typedef shared_ptr< TextNodeProxy > TextNodeProxyPtr; 00373 typedef shared_ptr< RendernodeProxy > RendernodeProxyPtr; 00374 typedef shared_ptr< RelationalNodeProxy > RelationalNodeProxyPtr; 00375 typedef shared_ptr< TransformNodeProxy > TransformNodeProxyPtr; 00376 typedef shared_ptr< XMLNodeProxy > XMLNodeProxyPtr; 00377 typedef shared_ptr< RendergroupProxy > RendergroupProxyPtr; 00378 typedef shared_ptr< RenderpassProxy > RenderpassProxyPtr; 00379 typedef shared_ptr< FramebufferProxy > FramebufferProxyPtr; 00380 typedef shared_ptr< RenderbufferProxy > RenderbufferProxyPtr; 00381 typedef shared_ptr< StatesetProxy > StatesetProxyPtr; 00382 typedef shared_ptr< SamplerProxy > SamplerProxyPtr; 00383 typedef shared_ptr< PhysicsWorldProxy > PhysicsWorldProxyPtr; 00384 typedef shared_ptr< PlaneProxy > PlaneProxyPtr; 00385 typedef shared_ptr< QuadricProxy > QuadricProxyPtr; 00386 typedef shared_ptr< EllipsoidProxy > EllipsoidProxyPtr; 00387 typedef shared_ptr< VertexbufferProxy > VertexbufferProxyPtr; 00388 typedef shared_ptr< ViewControllerProxy > ViewControllerProxyPtr; 00389 typedef shared_ptr< ApplicationProxy > ApplicationProxyPtr; 00390 00391 typedef vector< PropertyProxyPtr > PropertyProxyList; 00392 typedef vector< PropertyContainerProxyPtr > PropertyContainerProxyList; 00393 typedef vector< ViewControllerProxyPtr > ViewControllerProxyList; 00394 typedef vector< CameraProxyPtr > CameraProxyList; 00395 typedef vector< ErrorProxyPtr > ErrorProxyList; 00396 typedef vector< CurveProxyPtr > CurveProxyList; 00397 typedef vector< CircleProxyPtr > CircleProxyList; 00398 typedef vector< ImageProxyPtr > ImageProxyList; 00399 typedef vector< TextNodeProxyPtr > TextNodeProxyList; 00400 typedef vector< RendernodeProxyPtr > RendernodeProxyList; 00401 typedef vector< RelationalNodeProxyPtr > RelationalNodeProxyList; 00402 typedef vector< TransformNodeProxyPtr > TransformNodeProxyList; 00403 typedef vector< XMLNodeProxyPtr > XMLNodeProxyList; 00404 typedef vector< RendergroupProxyPtr > RendergroupProxyList; 00405 typedef vector< RenderpassProxyPtr > RenderpassProxyList; 00406 typedef vector< FramebufferProxyPtr > FramebufferProxyList; 00407 typedef vector< RenderbufferProxyPtr > RenderbufferProxyList; 00408 typedef vector< StatesetProxyPtr > StatesetProxyList; 00409 typedef vector< SamplerProxyPtr > SamplerProxyList; 00410 typedef vector< PhysicsWorldProxyPtr > PhysicsWorldProxyList; 00411 typedef vector< PlaneProxyPtr > PlaneProxyList; 00412 typedef vector< QuadricProxyPtr > QuadricProxyList; 00413 typedef vector< EllipsoidProxyPtr > EllipsoidProxyList; 00414 typedef vector< VertexbufferProxyPtr > VertexbufferProxyList; 00415 typedef vector< PropertyProxyPtr > PropertyProxyList; 00416 typedef vector< ApplicationProxyPtr > AplicationProxyList; 00417 00418 typedef PropertyContainer< Camera > CameraContainer; 00419 typedef PropertyContainer< Circle > CircleContainer; 00420 typedef PropertyContainer< Image > ImageContainer; 00421 typedef PropertyContainer< TextNode > TextNodeContainer; 00422 typedef PropertyContainer< Framebuffer > FramebufferContainer; 00423 typedef PropertyContainer< Renderbuffer > RenderbufferContainer; 00424 typedef PropertyContainer< Rendernode > RendernodeContainer; 00425 typedef PropertyContainer< RelationalNode > RelationalNodeContainer; 00426 typedef PropertyContainer< Rendergroup > RendergroupContainer; 00427 typedef PropertyContainer< Renderpass > RenderpassContainer; 00428 typedef PropertyContainer< Stateset > StatesetContainer; 00429 typedef PropertyContainer< Sampler > SamplerContainer; 00430 typedef PropertyContainer< Plane > PlaneContainer; 00431 typedef PropertyContainer< Quadric > QuadricContainer; 00432 typedef PropertyContainer< Ellipsoid > EllipsoidContainer; 00433 typedef PropertyContainer< Vertexbuffer > VertexbufferContainer; 00434 typedef PropertyContainer< ViewController > ViewControllerContainer; 00435 00436 typedef shared_ptr< CameraContainer > CameraContainerPtr; 00437 typedef shared_ptr< CircleContainer > CircleContainerPtr; 00438 typedef shared_ptr< ImageContainer > ImageContainerPtr; 00439 typedef shared_ptr< TextNodeContainer > TextNodeContainerPtr; 00440 typedef shared_ptr< FramebufferContainer > FramebufferContainerPtr; 00441 typedef shared_ptr< RenderbufferContainer > RenderbufferContainerPtr; 00442 typedef shared_ptr< RendernodeContainer > RendernodeContainerPtr; 00443 typedef shared_ptr< RelationalNodeContainer > RelationalNodeContainerPtr; 00444 typedef shared_ptr< RendergroupContainer > RendergroupContainerPtr; 00445 typedef shared_ptr< RenderpassContainer > RenderpassContainerPtr; 00446 typedef shared_ptr< StatesetContainer > StatesetContainerPtr; 00447 typedef shared_ptr< SamplerContainer > SamplerContainerPtr; 00448 typedef shared_ptr< PlaneContainer > PlaneContainerPtr; 00449 typedef shared_ptr< QuadricContainer > QuadricContainerPtr; 00450 typedef shared_ptr< EllipsoidContainer > EllipsoidContainerPtr; 00451 typedef shared_ptr< VertexbufferContainer > VertexbufferContainerPtr; 00452 typedef shared_ptr< ViewControllerContainer > ViewControllerContainerPtr; 00453 00454 #ifndef RT_GLES1 00455 class Program; 00456 typedef PropertyProxy< Program > ProgramProxy; 00457 class ShadowProxy; 00458 typedef shared_ptr< Program > ProgramPtr; 00459 typedef shared_ptr< ProgramProxy > ProgramProxyPtr; 00460 typedef shared_ptr< ShadowProxy > ShadowProxyPtr; 00461 typedef weak_ptr< Program > ProgramWeakPtr; 00462 typedef weak_ptr< ShadowProxy > ShadowProxyWeakPtr; 00463 typedef vector< ProgramPtr > ProgramList; 00464 typedef vector< ProgramProxyPtr > ProgramProxyList; 00465 typedef vector< ShadowProxyPtr > ShadowProxyList; 00466 typedef vector< ProgramWeakPtr > ProgramWeakList; 00467 typedef vector< ShadowProxyWeakPtr > ShadowProxyWeakList; 00468 00469 typedef PropertyContainer< Program > ProgramContainer; 00470 typedef PropertyContainer< AbstractProperty > UniformContainer; 00471 typedef PropertyContainer< ShadowProxy > ShadowProxyContainer; 00472 typedef shared_ptr< ProgramContainer > ProgramContainerPtr; 00473 typedef shared_ptr< UniformContainer > UniformContainerPtr; 00474 typedef shared_ptr< ShadowProxyContainer > ShadowProxyContainerPtr; 00475 #endif 00476 00477 }; // ns RenderTools 00478 00479 #endif //TYPES_H
1.5.8