lib/client/types.h

00001 
00002 /* Copyright (c) 2007-2009, Stefan Eilemann <eile@equalizergraphics.com> 
00003  *
00004  * This library is free software; you can redistribute it and/or modify it under
00005  * the terms of the GNU Lesser General Public License version 2.1 as published
00006  * by the Free Software Foundation.
00007  *  
00008  * This library is distributed in the hope that it will be useful, but WITHOUT
00009  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00010  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
00011  * details.
00012  * 
00013  * You should have received a copy of the GNU Lesser General Public License
00014  * along with this library; if not, write to the Free Software Foundation, Inc.,
00015  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00016  */
00017 
00018 #ifndef EQ_TYPES_H
00019 #define EQ_TYPES_H
00020 
00021 #include <eq/base/refPtr.h>
00022 
00023 #include <vmmlib/vmmlib.hpp>
00024 
00025 #include <map>
00026 #include <vector>
00027 
00028 struct EqCompressorInfo;
00029 
00030 namespace eq
00031 {
00032 
00033 class Canvas;
00034 class Channel;
00035 class Client;
00036 class Config;
00037 class Compressor;
00038 class Frame;
00039 class Image;
00040 class Layout;
00041 class Node;
00042 class Observer;
00043 class Pipe;
00044 class PixelViewport;
00045 class Segment;
00046 class Server;
00047 class Texture;
00048 class View;
00049 class Viewport;
00050 class Window;
00051 class X11Connection;
00052 struct Statistic;
00053 
00054 //----- Vectors
00056 typedef std::vector< Node* >     NodeVector;
00058 typedef std::vector< Pipe* >     PipeVector;
00060 typedef std::vector< Window* >   WindowVector;
00062 typedef std::vector< Channel* >  ChannelVector;
00064 typedef std::vector< Frame* >    FrameVector;
00066 typedef std::vector< Image* >    ImageVector;
00068 typedef std::vector< Texture* >  TextureVector;
00070 typedef std::vector< Observer* > ObserverVector;
00072 typedef std::vector< Canvas* >   CanvasVector;
00074 typedef std::vector< Layout* >   LayoutVector;
00076 typedef std::vector< Segment* >  SegmentVector;
00078 typedef std::vector< View* >     ViewVector;
00080 typedef std::vector< Viewport >      ViewportVector;
00082 typedef std::vector< PixelViewport > PixelViewportVector;
00084 typedef std::vector< Statistic >         Statistics;
00085 
00087 typedef base::RefPtr< Client >        ClientPtr;
00089 typedef base::RefPtr< Server >        ServerPtr;
00090 
00091 typedef vmml::matrix< 3, 3, double > Matrix3d; 
00092 typedef vmml::matrix< 4, 4, double > Matrix4d; 
00093 typedef vmml::matrix< 3, 3, float >  Matrix3f; 
00094 typedef vmml::matrix< 4, 4, float >  Matrix4f; 
00095 typedef vmml::vector< 2, int > Vector2i; 
00096 typedef vmml::vector< 3, int > Vector3i; 
00097 typedef vmml::vector< 4, int > Vector4i; 
00098 typedef vmml::vector< 3, double >Vector3d; 
00099 typedef vmml::vector< 4, double >Vector4d; 
00100 typedef vmml::vector< 2, float > Vector2f; 
00101 typedef vmml::vector< 3, float > Vector3f; 
00102 typedef vmml::vector< 4, float > Vector4f; 
00103 
00104 typedef vmml::vector< 3, unsigned char > Vector3ub;
00105 typedef vmml::frustum< float >  Frustumf; 
00106 
00107 typedef vmml::frustum_culler< float >  FrustumCullerf;
00108 
00110 typedef std::vector< std::string >   StringVector;
00112 typedef std::vector<uint8_t>    UByteVector;
00114 typedef std::vector<uint16_t>   UShortVector;
00115 
00116 
00118 typedef base::RefPtr< X11Connection > X11ConnectionPtr;
00119 typedef std::vector< EqCompressorInfo >  CompressorInfoVector;
00120 typedef std::vector< Compressor* >   CompressorVector;
00121 
00122 // originator id -> statistics
00123 typedef std::map< uint32_t, Statistics >        SortedStatistics;
00124 
00125 // frame id, config statistics
00126 typedef std::pair< uint32_t, SortedStatistics > FrameStatistics;
00128 }
00129 #endif // EQ_TYPES_H
Generated on Mon Aug 10 18:58:41 2009 for Equalizer 0.9 by  doxygen 1.5.8