Gizmo3D

gzNodeConstants.h

Go to the documentation of this file.
00001 //*****************************************************************************
00002 // File         : gzNodeConstants.h
00003 // Module       : 
00004 // Description  : Constant and structures for node attributes and definitions
00005 // Author       : Anders Modén      
00006 // Product      : Gizmo3D 2.1.1
00007 //      
00008 // Copyright © 2003- Saab Training Systems AB, Sweden
00009 //          
00010 // NOTE:    Gizmo3D is a high performance 3D Scene Graph and effect visualisation 
00011 //          C++ toolkit for Linux, Mac OS X, Windows (Win32) and IRIX® for  
00012 //          usage in Game or VisSim development.
00013 //
00014 //
00015 // Revision History...                          
00016 //                                  
00017 // Who  Date    Description                     
00018 //                                  
00019 // AMO  010505  Created file    
00020 //
00021 //******************************************************************************
00022 #ifndef __GZ_NODE_CONSTANTS_H__
00023 #define __GZ_NODE_CONSTANTS_H__
00024 
00030 #include "gzNode.h"
00031 
00032 GZ_GRAPH_EXPORT gzVoid gzSetNodeDbInfo(gzNode *node,const gzString &attribute,const gzDynamicType &data);
00033 
00034 GZ_GRAPH_EXPORT gzDynamicType gzGetNodeDbInfo(gzNode *node,const gzString &attribute);
00035 
00036 GZ_GRAPH_EXPORT gzBool gzHasNodeDbInfo(gzNode *node,const gzString &attribute);
00037 
00038 GZ_GRAPH_EXPORT gzBool gzHasNodeDbInfo(gzNode *node);
00039 
00040 
00041 
00042 // Constants for named UserData used by nodes
00043 
00044 const gzString  GZ_USERDATA_DB_INFO ="UserDataDbInfo";
00045 
00046 
00047 // Constants for Attributes provided by the GZ_USERDATA_DB_INFO
00048 
00049 const gzString  GZ_DB_INFO_TYPE             ="DbI-Type";
00050 const gzString  GZ_DB_INFO_FLAGS            ="DbI-Flags";
00051 const gzString  GZ_DB_INFO_VERSION          ="DbI-Version";
00052 const gzString  GZ_DB_INFO_METER_SCALE      ="DbI-MeterScale";
00053 const gzString  GZ_DB_INFO_PROJECTION       ="DbI-Projection";
00054 const gzString  GZ_DB_INFO_ELLIPSOID        ="DbI-Ellipsoid";
00055 
00056 const gzString  GZ_DB_INFO_DB_ORIGIN_POS    ="DbI-Database Origin";
00057 const gzString  GZ_DB_INFO_DB_SW_POS        ="DbI-Database SWpos";
00058 const gzString  GZ_DB_INFO_DB_NE_POS        ="DbI-Database NEpos";
00059 
00060 const gzString  GZ_DB_INFO_TEXT_COMMENT     ="Text Comment";
00061 const gzString  GZ_DB_INFO_SHADOW_GENERATOR ="GenShad";
00062 
00063 
00064 // DFAD data
00065 
00066 const gzString  GZ_DB_INFO_DFAD_SURFACE_MATERIAL    ="DbI-DFAD-SMC";
00067 const gzString  GZ_DB_INFO_DFAD_FEATURE_ID          ="DbI-DFAD-FID";
00068 
00069 // License Feature
00070 
00071 const gzString  GZ_DB_INFO_LICENSE                  ="DbI-LIC";
00072 
00073 // Database size 
00074 
00075 const gzString  GZ_DB_INFO_DB_SIZE                  ="DbI-SZ";
00076 
00077 
00078 // Max Lod distance from loaded db
00079 
00080 const gzString  GZ_DB_INFO_DB_MAX_LOD_RANGE         ="DbI-LR";
00081 
00082 // --------- Attribute constant values --------------------------------
00083 
00084 // Constants for GZ_DB_INFO_PROJECTION
00085 
00086 const gzString  GZ_DB_INFO_PROJECTION_FLAT          ="Flat Earth";
00087 const gzString  GZ_DB_INFO_PROJECTION_SPHERE        ="Sphere";
00088 const gzString  GZ_DB_INFO_PROJECTION_TRAPEZODIAL   ="Trapezoidal";
00089 const gzString  GZ_DB_INFO_PROJECTION_LAMBERT       ="Lambert";
00090 const gzString  GZ_DB_INFO_PROJECTION_UTM           ="UTM";
00091 const gzString  GZ_DB_INFO_PROJECTION_RT90          ="RT90";
00092 const gzString  GZ_DB_INFO_PROJECTION_PROJECTED     ="Projected";
00093 
00094 // Constants for GZ_DB_INFO_ELLIPSOID
00095 
00096 const gzString  GZ_DB_INFO_ELLIPSOID_WGS84          ="WGS 1984";    // default
00097 const gzString  GZ_DB_INFO_ELLIPSOID_WGS72          ="WGS 1972";
00098 
00099 const gzString  GZ_DB_INFO_ELLIPSOID_BESSEL         ="Bessel";      // RT90 Sweden
00100 
00101 const gzString  GZ_DB_INFO_ELLIPSOID_CLARKE_1866    ="Clarke 1866";
00102 const gzString  GZ_DB_INFO_ELLIPSOID_NAD_1927       ="NAD 1927";
00103 
00104 
00105 // Structures
00106 
00107 // ---------------------------------- latpos --------------------------------
00108 
00109 const gzString GZ_DYNAMIC_TYPE_LATPOS = "LatPos";
00110 
00111 class gzAttribute_LatPos : public gzSerializeData
00112 {
00113 public:
00114 
00115     // Attribute data
00116 
00117     gzSerializeBinary<gzDouble> latitude;   // In degrees
00118 
00119     gzSerializeBinary<gzDouble> longitude;  // In degrees
00120         
00121     gzSerializeBinary<gzDouble> altitude;   // In meters
00122 
00123     // Serializing methods
00124 
00125     virtual gzVoid write(gzSerializeAdapter *adapter)
00126     {
00127         latitude.write(adapter);
00128         longitude.write(adapter);
00129         altitude.write(adapter);
00130     }
00131 
00132     virtual gzVoid read(gzSerializeAdapter *adapter)
00133     {
00134         latitude.read(adapter);
00135         longitude.read(adapter);
00136         altitude.read(adapter);
00137     }
00138 
00139     virtual gzVoid pushBack(gzSerializeAdapter *adapter)
00140     {
00141         altitude.pushBack(adapter);     // Reverse order
00142         longitude.pushBack(adapter);
00143         latitude.pushBack(adapter);
00144     }
00145 
00146     virtual gzULong getDataSize(gzSerializeAdapter *adapter=NULL) const
00147     {
00148         return      latitude.getDataSize(adapter)+longitude.getDataSize(adapter)+altitude.getDataSize();
00149     }
00150 
00151     static const gzString getDataTag() { return GZ_DYNAMIC_TYPE_LATPOS; }
00152 };
00153 
00154 // ------------------------------------- CartPos --------------------------------------
00155 
00156 const gzString GZ_DYNAMIC_TYPE_CARTPOS =    "CartPos";
00157 
00158 class gzAttribute_CartPos : public gzSerializeData
00159 {
00160 public:
00161 
00162     // Attribute data
00163 
00164     gzSerializeBinary<gzDouble> x;          // In db units
00165 
00166     gzSerializeBinary<gzDouble> y;          // In db units
00167         
00168     gzSerializeBinary<gzDouble> z;          // In db units
00169 
00170     // Serializing methods
00171 
00172     virtual gzVoid write(gzSerializeAdapter *adapter)
00173     {
00174         x.write(adapter);
00175         y.write(adapter);
00176         z.write(adapter);
00177     }
00178 
00179     virtual gzVoid read(gzSerializeAdapter *adapter)
00180     {
00181         x.read(adapter);
00182         y.read(adapter);
00183         z.read(adapter);
00184     }
00185 
00186     virtual gzVoid pushBack(gzSerializeAdapter *adapter)
00187     {
00188         z.pushBack(adapter);        // Reverse order
00189         y.pushBack(adapter);
00190         x.pushBack(adapter);
00191     }
00192 
00193     virtual gzULong getDataSize(gzSerializeAdapter *adapter=NULL) const
00194     {
00195         return      x.getDataSize(adapter)+y.getDataSize(adapter)+z.getDataSize();
00196     }
00197 
00198     static const gzString getDataTag() { return GZ_DYNAMIC_TYPE_CARTPOS; }
00199 };
00200 
00201 //------------------- Database size ----------------------------------------
00202 
00203 const gzString GZ_DYNAMIC_TYPE_DBSIZE = "DBSize";
00204 
00205 class gzAttribute_DBSize : public gzSerializeData
00206 {
00207 public:
00208 
00209     // Attribute data
00210 
00211     gzSerializeBinary<gzDouble> minX;
00212 
00213     gzSerializeBinary<gzDouble> minY;
00214 
00215     gzSerializeBinary<gzDouble> minZ;
00216 
00217     gzSerializeBinary<gzDouble> maxX;
00218 
00219     gzSerializeBinary<gzDouble> maxY;
00220 
00221     gzSerializeBinary<gzDouble> maxZ;
00222 
00223     // Serializing methods
00224 
00225     virtual gzVoid write(gzSerializeAdapter *adapter)
00226     {
00227         minX.write(adapter);
00228         minY.write(adapter);
00229         minZ.write(adapter);
00230         maxX.write(adapter);
00231         maxY.write(adapter);
00232         maxZ.write(adapter);
00233     }
00234 
00235     virtual gzVoid read(gzSerializeAdapter *adapter)
00236     {
00237         minX.read(adapter);
00238         minY.read(adapter);
00239         minZ.read(adapter);
00240         maxX.read(adapter);
00241         maxY.read(adapter);
00242         maxZ.read(adapter);
00243     }
00244 
00245     virtual gzVoid pushBack(gzSerializeAdapter *adapter)
00246     {
00247         maxZ.pushBack(adapter); 
00248         maxY.pushBack(adapter);
00249         maxX.pushBack(adapter);
00250         minZ.pushBack(adapter);
00251         minY.pushBack(adapter);
00252         minX.pushBack(adapter);
00253     }
00254 
00255     virtual gzULong getDataSize(gzSerializeAdapter *adapter=NULL) const
00256     {
00257         return  6*sizeof(gzDouble);
00258     }
00259 
00260     static const gzString getDataTag() { return GZ_DYNAMIC_TYPE_DBSIZE; }
00261 };
00262 
00263 // --------------------------------------------------------------------------------------
00264 
00265 #endif // __GZ_NODE_CONSTANTS_H__

Documentation for Gizmo3D generated at Wed Feb 20 11:54:07 2008 by   Saab Training Systems AB, ¸ (c) 2003-and beyond