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/billboard.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) 2002 Reed Hedges
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     Reed Hedges <reed@zerohour.net>
00022 */
00023 
00024 #ifndef _A3DL_BILLBOARD_HH_
00025 #define _A3DL_BILLBOARD_HH_
00026 
00027 #if defined(_WIN32) && defined(_MSC_VER)
00028 # ifdef A3DL_EXPORTS
00029 #  define A3DL_API __declspec(dllexport)
00030 # else
00031 #  define A3DL_API __declspec(dllimport)
00032 # endif
00033 #else
00034 # define A3DL_API
00035 #endif
00036 
00037 #include "object3d.hh"
00038 
00039 namespace A3DL
00040 {
00041 
00042     /** Billboard objects are two dimensional images that have a position in 3D space. The first two
00043         components of the object's scaling property define the X and Y dimensions. The Z scaling is
00044         ignored. The orientation is also ignored: billboard objects always face the viewer, and are
00045         always "right side up".  The metaobject type for billboard objects is "object3D.billboard".
00046         Position and scaling properties are as in the "object3D" type, and a "material" property
00047         (containing a texture image or solid color) is added.
00048 
00049         You should create new Billboard objects using MetaFactory. After creation, you must call
00050         setPropertyAccessControl() on the new object, as well as setPosition(), setScaling() (even though
00051         the Z scaling factory is ignored, you should supply a value), and setOrientation() (even though
00052         the orientation is irrelevant)  -- Object3D requires values for all of these properties to work.
00053 
00054         @see Object3D for position, scaling methods, etc.
00055         @see MeshBase for texture (material) related methods.
00056 
00057         @author Reed Hedges <reed@zerohour.net> March, 2002. See source file for Copyright.
00058     */
00059 
00060     class A3DL_API Billboard : public virtual Object3D
00061     {
00062     public:
00063         Billboard(MetaObject* superobject);
00064         virtual ~Billboard();
00065         virtual const string getType();
00066         static void registerExtenders();
00067         static MetaObject* new_Billboard(MetaObject* superobject, const string& type);
00068     };
00069 }
00070 
00071 #endif

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