From Geoff Michel, geo plugin updated to for latest updates in .geo format.

This commit is contained in:
Robert Osfield
2005-11-12 21:29:59 +00:00
parent 35e50365da
commit e8aeca1418
7 changed files with 1402 additions and 681 deletions

View File

@@ -120,10 +120,18 @@ SOURCE=..\..\..\src\osgPlugins\geo\geoFormat.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\geo\geoCore.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\geo\geoTypes.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\geo\geoVersion.h
# End Source File
# Begin Source File
SOURCE=..\..\..\src\osgPlugins\geo\geoUnits.h
# End Source File
# Begin Source File

View File

@@ -199,7 +199,9 @@ public:
{ // this must only be called with a vertex georecord.
// gr is tha vertex; gface is the face containing the vertex
bool hbeh=false; // true if this vertex has a behaviour
if (gr->getType()==DB_DSK_VERTEX) {
if (gr->getType()==DB_DSK_VERTEX ||
gr->getType()==DB_DSK_FAT_VERTEX ||
gr->getType()==DB_DSK_SLIM_VERTEX) {
const geoField *gfshade=gface->getField(GEO_DB_POLY_SHADEMODEL); // shaded gouraud, flat...
int shademodel=gfshade ? gfshade->getInt() : -1;
if (shademodel!=GEO_POLY_SHADEMODEL_LIT && shademodel!=GEO_POLY_SHADEMODEL_FLAT) {
@@ -570,7 +572,9 @@ class ReaderGEO
case DB_DSK_LINEAR_ACTION:
case DB_DSK_TASK_ACTION:
case DB_DSK_PERIODIC_ACTION:
#ifdef DB_DSK_PERIODIC2_ACTION
case DB_DSK_PERIODIC2_ACTION:
#endif
case DB_DSK_TRIG_ACTION:
case DB_DSK_DISCRETE_ACTION:
case DB_DSK_INVERSE_ACTION:
@@ -889,7 +893,9 @@ class ReaderGEO
itr!=gr.end();
++itr)
{
if ((*itr)->getType()==DB_DSK_VERTEX)
if ((*itr)->getType()==DB_DSK_VERTEX ||
(*itr)->getType()==DB_DSK_FAT_VERTEX ||
(*itr)->getType()==DB_DSK_SLIM_VERTEX)
{ // light point vertices
const geoField *gfd=(*itr)->getField(GEO_DB_VRTX_COORD);
osg::Vec3 pos;
@@ -1637,6 +1643,7 @@ class ReaderGEO
else delete vb;
}
break;
#ifdef DB_DSK_PERIODIC2_ACTION
case DB_DSK_PERIODIC2_ACTION: {
geoAr3Behaviour *vb = new geoAr3Behaviour;
ok=vb->makeBehave((*rcitr), theHeader.get());
@@ -1644,6 +1651,7 @@ class ReaderGEO
else delete vb;
}
break;
#endif
case DB_DSK_TRUNCATE_ACTION: {
geoAr3Behaviour *vb = new geoAr3Behaviour;
ok=vb->makeBehave((*rcitr), theHeader.get());

View File

@@ -0,0 +1,54 @@
/*===========================================================================*\
NAME: geoCore.h
DESCRIPTION: High level DLL interface macros for the database library
AUTHOR: Andy Bushnell
---------------------------------------------------------------------------
PROPRIETARY RIGHTS NOTICE:
This software contains proprietary information and trade secrets of Carbon
Graphics LLC. No part or all of this software may be reproduced in any
form, without the written permission of Carbon Graphics LLC.
This software file can only be used in conjunction with the Geo SDK &
libraries to create Plugin modules for the Geo 3D Modeling & Animation
package.
COPYRIGHT NOTICE:
Copyright <20> 1998-2001 Carbon Graphics Llc, ALL RIGHTS RESERVED
\*===========================================================================*/
#ifndef _GEO_CORE_H_
#define _GEO_CORE_H_
// The following ifdef block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the GEO_DB_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see
// GEO_DB_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef WIN32
#ifdef GEO_DB_EXPORTS
#define GEO_DB_API __declspec( dllexport )
#else
#define GEO_DB_API __declspec( dllimport )
#endif
#else
#define GEO_DB_API
#endif
#include "geoTypes.h"
#include "geoVersion.h"
#endif //_GEO_CORE_H_

File diff suppressed because it is too large Load Diff

View File

@@ -71,7 +71,10 @@ const uint GEO_PLUGIN_TYPE_LAST = GEO_PLUGIN_TYPE_TASK;
/** put nowhere */
const uint GEO_TOOL_TYPE_NONE = 0;
/** user tool constant - put in favorites menu & toolbar */
const uint GEO_TOOL_TYPE_USER = 1;
@@ -90,11 +93,26 @@ const uint GEO_TOOL_TYPE_APPEARANCE = 5;
/** behavior tool constant - put in plugins menu & toolbar */
const uint GEO_TOOL_TYPE_BEHAVIOR = 6;
/** behavior tool constant - put in plugins menu & toolbar */
/** optimize tool constant - put in plugins menu & toolbar */
const uint GEO_TOOL_TYPE_OPTIMIZE = 7;
/** scenegraph tool constant - put in scenegraph menu & toolbar */
const uint GEO_TOOL_TYPE_SCENEGRAPH = 8;
const uint GEO_TOOL_TYPE_FILE = 9;
const uint GEO_TOOL_TYPE_EDIT = 10;
const uint GEO_TOOL_TYPE_VIEW = 11;
const uint GEO_TOOL_TYPE_LOD = 12;
const uint GEO_TOOL_TYPE_SELECT = 13;
const uint GEO_TOOL_TYPE_GRID = 14;
/** convenience constant */
const uint GEO_TOOL_TYPE_LAST = GEO_TOOL_TYPE_OPTIMIZE;
const uint GEO_TOOL_TYPE_LAST = GEO_TOOL_TYPE_GRID;
@@ -123,6 +141,9 @@ const uint GEO_TOOL_TYPE_LAST = GEO_TOOL_TYPE_OPTIMIZE;
* GEO_DB_FADE_GROUP
* GEO_DB_TERRAIN
* GEO_DB_BSP
* GEO_DB_DECAL_GROUP
* GEO_DB_LIGHT_GROUP
* GEO_DB_DCS
* GEO_DB_GEOMETRY
* GEO_DB_SURFACE
* GEO_DB_POLYGON
@@ -131,13 +152,17 @@ const uint GEO_TOOL_TYPE_LAST = GEO_TOOL_TYPE_OPTIMIZE;
* GEO_DB_BASE_SURFACE (*)
* GEO_DB_TEXT
* GEO_DB_VERTEX
* GEO_DB_FAT_VERTEX
* GEO_DB_SLIM_VERTEX
* GEO_DB_HEADER
*
* (*) Not available in Geo Version 1.0
*/
//------------
//--------------------------------------------------------------------
// Geo Node type Identifiers
//--------------------------------------------------------------------
//
const uint GEO_DB_BASE = 0x00000003;
const uint GEO_DB_GROUP = (0x00000004 | GEO_DB_BASE);
@@ -174,11 +199,19 @@ const uint GEO_DB_INSTANCE = (0x04000000 | GEO_DB_GROUP);
const uint GEO_DB_LIGHTPT = (0x08000000 | GEO_DB_POLYGON);
//------------
const uint GEO_DB_FADE_GROUP = (0x10000000 | GEO_DB_GROUP);
//
//
//
const uint GEO_DB_DECAL_GROUP = (0x20000000 | GEO_DB_GROUP);
const uint GEO_DB_LIGHT_GROUP = (0x40000000 | GEO_DB_GROUP);
const uint GEO_DB_FAT_VERTEX = (0x80000000 | GEO_DB_VERTEX);
//------------
//--------------------------------------------------------------------
// Geo Extended Node type Identifiers
//--------------------------------------------------------------------
const uint GEO_DB_SLIM_VERTEX = (0x00000010 | GEO_DB_VERTEX);
const uint GEO_DB_DCS = (0x00001000 | GEO_DB_GROUP);
// older version types for Compatability & convenience
//
@@ -224,24 +257,36 @@ const unsigned char GEO_DB_DATATYPE_INT = 3;
const unsigned char GEO_DB_DATATYPE_FLOAT = 4;
const unsigned char GEO_DB_DATATYPE_LONG = 5;
const unsigned char GEO_DB_DATATYPE_DOUBLE = 6;
const unsigned char GEO_DB_DATATYPE_VEC3F = 8;
const unsigned char GEO_DB_DATATYPE_VEC4F = 9;
const unsigned char GEO_DB_DATATYPE_BOOL = 28;
///////////////////////////////////////////////////////////////////
// VARIABLE TYPES
///////////////////////////////////////////////////////////////////
const uint GEO_VAR_TYPE_FLOAT = 1;
const uint GEO_VAR_TYPE_INT = 2;
const uint GEO_VAR_TYPE_LONG = 3;
const uint GEO_VAR_TYPE_DOUBLE = 4;
const uint GEO_VAR_TYPE_BOOL = 5;
const uint GEO_VAR_TYPE_2FV = 6;
const uint GEO_VAR_TYPE_3FV = 7;
const uint GEO_VAR_TYPE_4FV = 8;
const uint GEO_VAR_TYPE_STRING = 9;
const uint GEO_VAR_TYPE_2IV = 10;
const uint GEO_VAR_TYPE_3IV = 11;
const uint GEO_VAR_TYPE_4IV = 12;
const uint GEO_VAR_TYPE_FLOAT = 1;
const uint GEO_VAR_TYPE_INT = 2;
const uint GEO_VAR_TYPE_LONG = 3;
const uint GEO_VAR_TYPE_DOUBLE = 4;
const uint GEO_VAR_TYPE_BOOL = 5;
const uint GEO_VAR_TYPE_2FV = 6;
const uint GEO_VAR_TYPE_3FV = 7;
const uint GEO_VAR_TYPE_4FV = 8;
const uint GEO_VAR_TYPE_STRING = 9;
const uint GEO_VAR_TYPE_2IV = 10;
const uint GEO_VAR_TYPE_3IV = 11;
const uint GEO_VAR_TYPE_4IV = 12;
const uint GEO_VAR_TYPE_16FV = 13;
const uint GEO_VAR_TYPE_2BV = 14;
const uint GEO_VAR_TYPE_3BV = 15;
const uint GEO_VAR_TYPE_4BV = 16;
const uint GEO_VAR_TYPE_SAMPLER_1D = 17;
const uint GEO_VAR_TYPE_SAMPLER_2D = 18;
const uint GEO_VAR_TYPE_SAMPLER_3D = 19;
const uint GEO_VAR_TYPE_SAMPLER_CUBE = 20;
const uint GEO_VAR_TYPE_SAMPLER_1D_SHADOW = 21;
const uint GEO_VAR_TYPE_SAMPLER_2D_SHADOW = 22;
@@ -281,6 +326,31 @@ const int GEO_DB_UP_AXIS_Y = 2; // the default
const int GEO_DB_UP_AXIS_Z = 3;
const short GEO_DB_PROJ_TYPE_FLAT_EARTH = 0;
const short GEO_DB_PROJ_TYPE_TRAPEZOIDAL = 1;
const short GEO_DB_PROJ_TYPE_ROUND_EARTH = 2;
const short GEO_DB_PROJ_TYPE_LAMBERT = 3;
const short GEO_DB_PROJ_TYPE_UTM = 4;
const short GEO_DB_PROJ_TYPE_GEODETIC = 5;
const short GEO_DB_PROJ_TYPE_GEOCENTRIC = 6;
const short GEO_DB_PROJ_TYPE_LAST = GEO_DB_PROJ_TYPE_GEOCENTRIC;
///////////////////////////////////////////////////////////////////////////////
// DB_HDR_ELLIPSOID - defines
// Constants to define the ellipsoid model used for the projection
//
const short GEO_DB_ELLIPSOID_USER_DEFINED = -1;
const short GEO_DB_ELLIPSOID_WGS_1984 = 0;
const short GEO_DB_ELLIPSOID_WGS_1972 = 1;
const short GEO_DB_ELLIPSOID_BESSEL = 2;
const short GEO_DB_ELLIPSOID_CLARKE_1866 = 3;
const short GEO_DB_ELLIPSOID_NAD_1927 = 4;
const short GEO_DB_ELLIPSOID_LAST = GEO_DB_ELLIPSOID_NAD_1927;
///////////////////////////////////////////////////////////////////////////////
@@ -294,23 +364,27 @@ const uint GEO_DB_WIRE = 0x00000002;
const uint GEO_DB_OUTLINED = (GEO_DB_SOLID | GEO_DB_WIRE);
const uint GEO_DB_WIRE_ON_MOVE = 0x00000004;
const uint GEO_DB_DETEXTURE_ON_MOVE = 0x00000008;
const uint GEO_DB_PROXY_ON_MOVE = 0x00000010;
const uint GEO_DB_SHRINK = 0x00000080;
const uint GEO_DB_ZBUFFER = 0x00000100;
const uint GEO_DB_BBOX_HIGHLIGHT = 0x00000200;
const uint GEO_DB_BACKFACE = 0x00000400;
const uint GEO_DB_SELECTIVE_CULLFACE = 0x00000800;
const uint GEO_DB_DRAW_FACE_NORMALS = 0x00001000;
const uint GEO_DB_DRAW_VERTEX_NORMALS = 0x00002000;
const uint GEO_DB_SELECTIVE_BLENDING = 0x00008000;
const uint GEO_DB_TEXTURE = 0x00010000;
const uint GEO_DB_HIGHLIGHT = 0x00020000;
const uint GEO_DB_PICKING = 0x00040000;
const uint GEO_DB_HIGHLIGHT_DASHED = 0x00080000;
const uint GEO_DB_USE_VERTEX_ARRAYS = 0x00040000;
const uint GEO_DB_REBUILD_VERTEX_ARRAYS = 0x00080000;
const uint GEO_DB_SELECTIVE_SHADING = 0x00100000;
const uint GEO_DB_DRAW_SIMPLE = 0x00200000;
const uint GEO_DB_ILLUMINATED = 0x01000000;
const uint GEO_DB_NORMAL_PER_PRIM = 0x04000000;
@@ -336,6 +410,30 @@ const uint GEO_GROUP_TYPE_MULTI_SAMPLE_AA = 4;
const uint GEO_GROUP_TYPE_LINE_AA = 5;
const uint GEO_GROUP_TYPE_FADE = 6;
const uint GEO_GROUP_TYPE_TERRAIN = 7;
const uint GEO_GROUP_TYPE_DECAL = 8;
///////////////////////////////////////////////////////////////////////////////
/** Constants to control the display of a Group based on time-of-day
*
*/
const uint GEO_DB_GROUP_TOD_DISPLAY_NIGHT = 0x00000001;
const uint GEO_DB_GROUP_TOD_DISPLAY_DAWN = 0x00000002;
const uint GEO_DB_GROUP_TOD_DISPLAY_DAY = 0x00000004;
const uint GEO_DB_GROUP_TOD_DISPLAY_DUSK = 0x00000008;
///////////////////////////////////////////////////////////////////////////////
/** Constants to control the intersection testing of this Group at runtime
*
*/
const uint GEO_DB_GROUP_ISECT_IG_DEFINED = 0;
const uint GEO_DB_GROUP_ISECT_YES = 1;
const uint GEO_DB_GROUP_ISECT_NO = 2;
///////////////////////////////////////////////////////////////////////////////
@@ -352,6 +450,38 @@ const uint GEO_SWITCH_TYPE_SELECTIVE = 2;
///////////////////////////////////////////////////////////////////////////////
/** Constants to identify special behavior int ZOffset GRoups
*/
const uint GEO_DB_ZOFFSET_GROUP_TYPE_UNDEFINED = 0;
const uint GEO_DB_ZOFFSET_GROUP_TYPE_RUNWAY = 1;
const uint GEO_DB_ZOFFSET_GROUP_TYPE_MARKINGS = 2;
///////////////////////////////////////////////////////////////////////////////
/** Constants to control the Light Group behavior
*
* Light Groups are Groups with the Light-Group flag set. Any Light pt children
* are effected by these settings
*/
const uint GEO_LIGHT_GROUP_ANIM_OFF = 0;
const uint GEO_LIGHT_GROUP_ANIM_ON = 1;
const uint GEO_LIGHT_GROUP_ANIM_RANDOM = 2;
///////////////////////////////////////////////////////////////////////////////
/** Constants that specify the type of Light Group
*
* FIXED is for airfields etc.
* MOVING is for aircraft/ships etc.
*/
const uint GEO_LIGHT_GROUP_TYPE_FIXED = 0;
const uint GEO_LIGHT_GROUP_TYPE_MOVING = 1;
///////////////////////////////////////////////////////////////////////////////
/** Type Tokens for Node & Tool Gui Widgets
*/
@@ -422,6 +552,7 @@ const int GEO_DB_TEXTURE_UNIT_FUNC_COMBINE = 5;
//
const int GEO_TEXT_RASTER = 0;
const int GEO_TEXT_STROKE = 1;
const int GEO_TEXT_POLY = 2;
///////////////////////////////////////////////////////////////////////////////
// Justification constants

View File

@@ -0,0 +1,81 @@
/*===========================================================================*\
NAME: geoVersion.h
DESCRIPTION: Compile Time Library Version Info
AUTHOR: Andy Bushnell
-------------------------------------------------------------------------
PROPRIETARY RIGHTS NOTICE:
This software contains proprietary information and trade secrets of Carbon
Graphics LLC. No part or all of this software may be reproduced in any
form, without the written permission of Carbon Graphics LLC.
This software file can only be used in conjunction with the Geo SDK &
libraries to create Plugin modules for the Geo 3D Modeling & Animation
package.
COPYRIGHT NOTICE:
Copyright <20> 1998-2001 Carbon Graphics Llc, ALL RIGHTS RESERVED
\*===========================================================================*/
#ifndef __GEO_VERSION_H__
#define __GEO_VERSION_H__
#include "geoCore.h"
///////////////////////////////////////////////////////////////////////////////
// Constants for the GEO_LIB_LEVEL_VERSION
///////////////////////////////////////////////////////////////////////////////
/** Signifies a pre-alpha version of the software */
const unsigned char GEO_DEV_RELEASE = 10;
/** Signifies an alpha version of the software */
const unsigned char GEO_ALPHA_RELEASE = 11;
/** Signifies an beta version of the software */
const unsigned char GEO_BETA_RELEASE = 12;
/** Signifies a late beta version of the software - potential release candidate, depending on user feedback */
const unsigned char GEO_RELEASE_CANDIDATE = 13;
/** Signifies an full version of the software */
const unsigned char GEO_FULL_RELEASE = 14;
///////////////////////////////////////////////////////////////////////////////
// Constants to identify the Geo version
///////////////////////////////////////////////////////////////////////////////
/** this constant specifies the Geo Major release number */
#define GEO_LIB_MAJOR_VERSION 1
/** this constant specifies the Geo Minor release number */
#define GEO_LIB_MINOR_VERSION 2
/** This constant defines the level of type of release - ie alpha,beta */
#define GEO_LIB_LEVEL_VERSION GEO_FULL_RELEASE
/** This constant defines the number of releases made at a particular level */
#define GEO_LIB_RELEASE_VERSION 2
#define GEO_VERSION ((GEO_LIB_MAJOR_VERSION*1000)+(GEO_LIB_MINOR_VERSION*100)+(GEO_LIB_LEVEL_VERSION*10)+(GEO_LIB_RELEASE_VERSION))
// returns the GEO_VERSION value of the running Geo application. Users can use
// this to control code calls in the plugin.
extern GEO_DB_API int GetGeoLibraryVersion(void);
#endif __GEO_VERSION_H__

View File

@@ -495,7 +495,7 @@ public:
case DB_DSK_LINEAR_ACTION :
case DB_DSK_TASK_ACTION :
case DB_DSK_PERIODIC_ACTION :
case DB_DSK_PERIODIC2_ACTION :
//deprecated in 1,2,1 case DB_DSK_PERIODIC2_ACTION :
case DB_DSK_TRIG_ACTION :
case DB_DSK_INVERSE_ACTION :
case DB_DSK_TRUNCATE_ACTION :