00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00035 #ifndef __SO3_PREREQUISITES_H__
00036 #define __SO3_PREREQUISITES_H__
00037
00038
00039
00040 #define SO3_PLUGIN_WEB_MANAGER_BUILD 0 // In case you won't have compiled Chromium on your machine.
00041
00042
00043 #include "SO3Platform.h"
00044
00045
00046 #include <boost/unordered_map.hpp>
00047 #include <boost/unordered_set.hpp>
00048 #include <boost/lexical_cast.hpp>
00049 #include <boost/algorithm/string.hpp>
00050 #include <boost/format.hpp>
00051 #include <assert.h>
00052 #include <string>
00053 #include <math.h>
00054 #include <stdio.h>
00055 #include <vector>
00056 #include <map>
00057
00058
00059 using std::string;
00060
00061 #define CONST_COLOR 255.0f
00062 #define CONST_COLOR_ALPHA 127.0f
00063 #define SO3_PI 3.14159265358979323846f
00064
00065 namespace SO3
00066 {
00067
00068
00069 class SAnim;
00070 class SAnimationFrameListener;
00071 class SAnimTrack;
00072 class SAstronomy;
00073 class SBitmapWidgetFactory;
00074 class SBody;
00075 class SBone;
00076 class SBoneFap;
00077 class SColourGradient;
00078 class SCamera;
00079 class SCompositor;
00080 class SCompositorMaterialListener;
00081 class SContactCallback;
00082 class SDateTime;
00083 class SDynamicCubeMap;
00084 class SDynamicReflectionMap;
00085 class SData;
00086 class SEntity;
00087 class SEntityFap;
00088 class SEnvironment;
00089 class SEnvironmentComponent;
00090 class SException;
00091 class SFlashControl;
00092 class SFlashWidget;
00093 class SFlashWidgetFactory;
00094 class SKeyboardHook;
00095 class SLogListener;
00096 class SLight;
00097 class SMaterial;
00098 class SMaterialID;
00099 class SMaterialPair;
00100 class SMoon;
00101 class SNode;
00102 class SNodeAnimation;
00103 class SObjWindowWidget;
00104 class SObjWindowWidgetFactory;
00105 class SO3ScolFileSystemArchiveFactory;
00106 class SO3ScolUrlArchiveFactory;
00107 class SParticleSystem;
00108 class SPhysicWorld;
00109 class SPlugin;
00110 class SPluginManager;
00111 template <typename NUMERIC_TYPE> class SPoint;
00112 class SRaycastResult;
00113 class SRoot;
00114 class SScene;
00115 class SSequenceAnimation;
00116 class SSequenceAnimationTrack;
00117 class SSequenceAnimationKey;
00118 class SShape;
00119 class SShapeBox;
00120 class SSkeleton;
00121 class SSkeletonFap;
00122 class SSky;
00123 class SSkyAstronomicalModel;
00124 class SSkyLight;
00125 class SSubEntitySelectorBuffer;
00126 class SSubEntitySelectorMaterialSwitcher;
00127 class SSun;
00128 class STexture;
00129 class SUniversalClock;
00130 class SViewPort;
00131 class SVertexAnimation;
00132 class SWidget;
00133 class SWidgetFactory;
00134 class SWidgetManager;
00135 class SWater;
00136 class SWindow;
00137
00138
00139 typedef boost::unordered_map<std::string, SAnim*> SAnimMap;
00140 typedef boost::unordered_map<unsigned short, SAnim*> SAnimIndexMap;
00141 typedef std::vector<SAnimTrack*> SAnimTrackList;
00142 typedef boost::unordered_map<std::string, SBone*> SBoneMap;
00143 typedef boost::unordered_map<unsigned short,SBone*> SBoneIndexMap;
00144 typedef boost::unordered_map<std::string, SCompositor*> SCompositorMap;
00145 typedef boost::unordered_map<std::string, SEntity*> SEntityMap;
00146 typedef boost::unordered_map<std::string, SMaterial*> SMaterialMap;
00147 typedef boost::unordered_map<std::string, SMaterialMap*> SGroupMaterialMap;
00148 typedef boost::unordered_map<std::string, SMaterialID*> SMaterialIDMap;
00149 typedef boost::unordered_set<SMaterialPair*> SMaterialPairMap;
00150 typedef boost::unordered_map<std::string, SNode*> SNodeMap;
00151 typedef boost::unordered_map<std::string, SScene*> SSceneMap;
00152 typedef boost::unordered_map<std::string, STexture*> STextureMap;
00153 typedef boost::unordered_map<std::string, STextureMap*> SGroupTextureMap;
00154 typedef boost::unordered_map<int, SViewPort*> SViewPortList;
00155 typedef boost::unordered_map<std::string, SWindow*> SWindowMap;
00156 typedef std::vector<SSequenceAnimationKey*> SAnimSequenceKeyList;
00157 typedef boost::unordered_set<SSequenceAnimationKey*> SAnimSequenceKeyMap;
00158
00159
00160 enum MouseButtonId
00161 {
00162 MOUSE_LEFT_BUTTON = 1,
00163 MOUSE_RIGHT_BUTTON = 2,
00164 MOUSE_MIDDLE_BUTTON = 16
00165 };
00166
00167 }
00168
00169 #endif