Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members | Related Pages | Examples

vos/3D/a3dl/portal.hh

Go to the documentation of this file.
00001 /*
00002     This file is part of the Virtual Object System of
00003     the Interreality project (http://interreality.org).
00004 
00005     Copyright (C) 2003 Peter Amstutz
00006 
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Lesser General Public
00009     License as published by the Free Software Foundation; either
00010     version 2 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Lesser General Public License for more details.
00016 
00017     You should have received a copy of the GNU Lesser General Public
00018     License along with this library; if not, write to the Free Software
00019     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00020 
00021     Peter Amstutz <tetron@interreality.org>
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         /** Get material vobject. */
00069         virtual Material* getMaterial(bool createIfNone = true);
00070 
00071         /** Set material vobject. */
00072         virtual void setMaterialObj(Material* material);
00073 
00074         void setPropertyAccessControl(PropertyAccessControl* pac) { accesscontrol = pac; }
00075         PropertyAccessControl* getPropertyAccessControl(){ return accesscontrol; }
00076     };
00077 }
00078 
00079 #endif

Generated on Tue Aug 12 03:55:36 2003 for Interreality Project - VOS by doxygen 1.3.2