00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _PORTAL_HH_
00024 #define _PORTAL_HH_
00025
00026 #if defined(_WIN32) && defined(_MSC_VER)
00027 # ifdef A3DL_EXPORTS
00028 # define A3DL_API __declspec(dllexport)
00029 # else
00030 # define A3DL_API __declspec(dllimport)
00031 # endif
00032 #else
00033 # define A3DL_API
00034 #endif
00035
00036 #include <vos/corelibs/vos/vos.hh>
00037 #include <vos/metaobjects/property/property.hh>
00038 #include "texture.hh"
00039 #include "sector.hh"
00040
00041 namespace A3DL
00042 {
00043 class A3DL_API Portal : public virtual MetaObject
00044 {
00045 protected:
00046 PropertyAccessControl* accesscontrol;
00047 public:
00048 Portal(MetaObject* superobject);
00049 virtual ~Portal();
00050
00051 static MetaObject* new_Portal(MetaObject* superobject, const string& type);
00052 static void registerExtenders();
00053 virtual const string getType();
00054
00055 virtual void setTargetSector(Sector* sector);
00056 virtual Sector* getTargetSector();
00057
00058 virtual void setWarpingTransform(float m11, float m12, float m13,
00059 float m21, float m22, float m23,
00060 float m31, float m32, float m33,
00061 float tx, float ty, float tz);
00062
00063 virtual void getWarpingTransform(float& m11, float& m12, float& m13,
00064 float& m21, float& m22, float& m23,
00065 float& m31, float& m32, float& m33,
00066 float& tx, float& ty, float& tz);
00067
00068
00069 virtual Material* getMaterial(bool createIfNone = true);
00070
00071
00072 virtual void setMaterialObj(Material* material);
00073
00074 void setPropertyAccessControl(PropertyAccessControl* pac) { accesscontrol = pac; }
00075 PropertyAccessControl* getPropertyAccessControl(){ return accesscontrol; }
00076 };
00077 }
00078
00079 #endif