HOOPS/3dGS I.M. Interface

     << Back      Full Index      Forward >>


hic_types.h

00001 /*
00002  * Copyright (c) 1998 by Tech Soft 3D, LLC.
00003  * The information contained herein is confidential and proprietary to
00004  * Tech Soft 3D, LLC., and considered a trade secret as defined under
00005  * civil and criminal statutes.  Tech Soft 3D shall pursue its civil
00006  * and criminal remedies in the event of unauthorized use or misappropriation
00007  * of its trade secrets.  Use of this information by anyone other than
00008  * authorized employees of Tech Soft 3D, LLC. is granted only under a
00009  * written non-disclosure agreement, expressly prescribing the scope and
00010  * manner of such use.
00011  *
00012  * $Id: hic__types_8h-source.html,v 1.29 2008-03-10 07:09:28 stage Exp $
00013  */
00014 
00015 #ifndef HIC_TYPES_DEFINED
00016 
00017 /* for C compatibility */
00018 #ifndef __cplusplus
00019 #ifndef bool
00020 #define bool int
00021 #endif
00022 #endif
00023 
00024 
00025 typedef struct hic_opaque_s {
00026     void * opaque;
00027 } hic_opaque_t;
00028 
00029 /* opaque types */
00030 typedef hic_opaque_t    HIC_Rendition;
00031 typedef hic_opaque_t    HIC_Segment_Info;
00032 typedef hic_opaque_t    HIC_Text_Info;
00033 typedef hic_opaque_t    HIC_Segment;
00034 typedef hic_opaque_t    HIC_Driver_Color;
00035 typedef hic_opaque_t    HIC_Geometry;
00036 typedef hic_opaque_t    HIC_Line_Style;
00037 typedef hic_opaque_t    HIC_User_Face_Pattern;
00038 typedef hic_opaque_t    HIC_Convex_Clip_Region;
00039 typedef hic_opaque_t    HIC_Shell;
00040 
00041 /*back compatibility*/
00042 #define HIC_User_Line_Pattern HIC_Line_Style
00043 
00044 /* opaque 3d geometry types */
00045 typedef hic_opaque_t    HIC_Marker;
00046 typedef hic_opaque_t    HIC_Polyline;
00047 typedef hic_opaque_t    HIC_Polygon;
00048 typedef hic_opaque_t    HIC_Text;
00049 typedef hic_opaque_t    HIC_Stencil_Bitmap;
00050 typedef hic_opaque_t    HIC_Tristrip;
00051 typedef hic_opaque_t    HIC_Polyhedron;
00052 typedef hic_opaque_t    HIC_Polyedge;
00053 typedef hic_opaque_t    HIC_Polymarker;
00054 typedef hic_opaque_t    HIC_Image;
00055 typedef hic_opaque_t    HIC_Ellipse;
00056 typedef hic_opaque_t    HIC_Elliptical_Arc;
00057 typedef hic_opaque_t    HIC_NURBS_Curve;
00058 typedef hic_opaque_t    HIC_NURBS_Surface;
00059 typedef hic_opaque_t    HIC_Cylinder;
00060 typedef hic_opaque_t    HIC_Polycylinder;
00061 typedef hic_opaque_t    HIC_Sphere;
00062 typedef hic_opaque_t    HIC_Grid;
00063 
00064 
00065 /* real types */
00066 typedef int             HIC_Integer32;
00067 typedef unsigned short  HIC_Karacter;
00068 typedef float           HIC_Parameter;
00069 typedef HIC_Integer32   HIC_Parameter_Flags;
00070 typedef HIC_Integer32   HIC_RGBAS32;
00071 
00072 
00073 typedef struct hic_int_rectangle {
00074     int                 left,   right, bottom, top;
00075 }   HIC_Int_Rectangle;
00076 
00077 typedef struct hic_volume {
00078     float               left, right, bottom, top, hither, yon;
00079 }   HIC_Volume;
00080 
00081 typedef struct hic_point {
00082     float               x, y, z;
00083 }   HIC_Point;
00084 
00085 typedef struct hic_vector {
00086     float               x, y, z;
00087 }   HIC_Vector;
00088 
00089 typedef struct hic_dc_point {
00090     float               x, y, z;
00091 }   HIC_DC_Point;
00092 
00093 typedef struct hic_plane {
00094     float               a, b, c, d;
00095 }   HIC_Plane;
00096 
00097 typedef struct hic_rgba {
00098     float               red, green, blue, alpha;
00099 } HIC_RGBA;
00100 
00101 typedef struct hic_rgb {
00102     float               red, green, blue;
00103 } HIC_RGB;
00104 
00105 typedef struct hic_segment_path {
00106     HC_KEY const *      keys;
00107     int                 count;
00108 } HIC_Segment_Path; 
00109 
00110 typedef struct hic_bounding_cuboid {
00111     HIC_Point           min;
00112     HIC_Point           max;
00113     bool                valid;
00114 } HIC_Bounding_Cuboid;
00115 
00116 
00117 
00118 /* locks */
00119 typedef int             HIC_Material_Color_Locks;
00120 typedef int             HIC_Color_Locks;
00121 typedef int             HIC_Visibility_Locks;
00122 typedef int             HIC_Attribute_Locks;
00123 
00124 typedef enum HIC_Attributes_e {
00125     HIC_Attribute_STYLE                 = 0x00000001,
00126     HIC_Attribute_RENDERING_OPTIONS     = 0x00000002,
00127     HIC_Attribute_SELECTABILITY         = 0x00000004,
00128     HIC_Attribute_VISIBILITY            = 0x00000008,
00129     HIC_Attribute_COLOR_MAP             = 0x00000010,
00130     HIC_Attribute_COLOR                 = 0x00000020,
00131     HIC_Attribute_WINDOW_FRAME          = 0x00000040,
00132     HIC_Attribute_WINDOW_PATTERN        = 0x00000080,
00133     HIC_Attribute_WINDOW                = 0x00000100,
00134     HIC_Attribute_CALLBACK              = 0x00000200,
00135     HIC_Attribute_CAMERA                = 0x00000400,
00136     HIC_Attribute_CLIP_REGION           = 0x00000800,
00137     HIC_Attribute_DRIVER                = 0x00001000,
00138     HIC_Attribute_DRIVER_OPTIONS        = 0x00002000,
00139     HIC_Attribute_EDGE_PATTERN          = 0x00004000,
00140     HIC_Attribute_EDGE_WEIGHT           = 0x00008000,
00141     HIC_Attribute_FACE_PATTERN          = 0x00010000,
00142     HIC_Attribute_HANDEDNESS            = 0x00020000,
00143     HIC_Attribute_HEURISTICS            = 0x00040000,
00144     HIC_Attribute_LINE_PATTERN          = 0x00080000,
00145     HIC_Attribute_LINE_WEIGHT           = 0x00100000,
00146     HIC_Attribute_MARKER_SIZE           = 0x00200000,
00147     HIC_Attribute_MARKER_SYMBOL         = 0x00400000,
00148     HIC_Attribute_METAFILE              = 0x00800000,
00149     HIC_Attribute_MODELLING_MATRIX      = 0x01000000,
00150     HIC_Attribute_TEXT_ALIGNMENT        = 0x02000000,
00151     HIC_Attribute_TEXT_FONT             = 0x04000000,
00152     HIC_Attribute_TEXT_PATH             = 0x08000000,
00153     HIC_Attribute_TEXT_SPACING          = 0x10000000,
00154     HIC_Attribute_USER_OPTIONS          = 0x20000000,
00155     HIC_Attribute_USER_VALUE            = 0x40000000,
00156     HIC_Attribute_TEXTURE_MATRIX        = 0x80000000
00157 } HIC_Attributes;
00158 
00159 
00160 typedef enum HIC_Visibility_e {
00161     HIC_Visibility_FACES                = 0x00000001,
00162     HIC_Visibility_EDGES                = 0x00000002,
00163     HIC_Visibility_LINES                = 0x00000004,
00164     HIC_Visibility_MARKERS              = 0x00000008,
00165     HIC_Visibility_VERTICES             = 0x00000010,
00166     HIC_Visibility_IMAGES               = 0x00000020,
00167     HIC_Visibility_TEXT                 = 0x00000040,
00168     HIC_Visibility_STRING_CURSORS       = 0x00000080,
00169     HIC_Visibility_WINDOWS              = 0x00000100,
00170 
00171     HIC_Visibility_CUT_GEOMETRY         = 0x00000200,
00172 
00173     HIC_Visibility_LIGHTS_FOR_FACES     = 0x00000400,
00174     HIC_Visibility_LIGHTS_FOR_EDGES     = 0x00000800,
00175     HIC_Visibility_LIGHTS_FOR_MARKERS   = 0x00001000,
00176 
00177     HIC_Visibility_CUTTING_PLANES       = 0x00002000,
00178 
00179 
00180     HIC_Visibility_SILHOUETTE_EDGES     = 0x00010000,
00181     HIC_Visibility_PERIMETER_EDGES      = 0x00020000,
00182     HIC_Visibility_ADJACENT_EDGES       = 0x00040000,
00183     HIC_Visibility_MESH_QUAD_EDGES      = 0x00080000,
00184     HIC_Visibility_HARD_EDGES           = 0x00100000,
00185     HIC_Visibility_NONCULLED_EDGES      = 0x00200000,
00186 
00187     HIC_Visibility_ANY_SHADOW           = 0x00400000,
00188 
00189     HIC_Visibility_GENERIC_EDGES        = HIC_Visibility_EDGES,
00190     HIC_Visibility_POLYGON_EDGES        = HIC_Visibility_GENERIC_EDGES|HIC_Visibility_PERIMETER_EDGES|
00191                                             HIC_Visibility_ADJACENT_EDGES,
00192     HIC_Visibility_GRID_EDGES           = HIC_Visibility_POLYGON_EDGES,
00193     HIC_Visibility_SHELL_EDGES          = HIC_Visibility_POLYGON_EDGES|HIC_Visibility_HARD_EDGES|
00194                                             HIC_Visibility_SILHOUETTE_EDGES|HIC_Visibility_NONCULLED_EDGES,
00195     HIC_Visibility_MESH_EDGES           = HIC_Visibility_SHELL_EDGES|HIC_Visibility_MESH_QUAD_EDGES,
00196     HIC_Visibility_SPHERE_EDGES         = HIC_Visibility_GENERIC_EDGES|HIC_Visibility_SILHOUETTE_EDGES|
00197                                             HIC_Visibility_MESH_QUAD_EDGES|HIC_Visibility_NONCULLED_EDGES,
00198 
00199     HIC_Visibility_LIGHTS               = HIC_Visibility_LIGHTS_FOR_FACES|HIC_Visibility_LIGHTS_FOR_EDGES|
00200                                             HIC_Visibility_LIGHTS_FOR_MARKERS,
00201 
00202     HIC_Visibility_GEOMETRY             = HIC_Visibility_FACES|HIC_Visibility_EDGES|HIC_Visibility_LINES|
00203                                             HIC_Visibility_MARKERS|HIC_Visibility_VERTICES|
00204                                             HIC_Visibility_IMAGES|HIC_Visibility_TEXT|
00205                                             HIC_Visibility_STRING_CURSORS|HIC_Visibility_LIGHTS
00206 } HIC_Visibility;
00207 
00208 
00209 typedef enum HIC_Color_Lock_Objects_e { 
00210     HIC_Color_Lock_Objects_NONE             =0x00000000,                
00211     HIC_Color_Lock_Objects_FRONT            =0x00000001,                
00212     HIC_Color_Lock_Objects_BACK             =0x00000002,                
00213     HIC_Color_Lock_Objects_FACE_CONTRAST    =0x00000004,        
00214     HIC_Color_Lock_Objects_EDGE             =0x00000008,                
00215     HIC_Color_Lock_Objects_EDGE_CONTRAST    =0x00000010,        
00216     HIC_Color_Lock_Objects_LINE             =0x00000020,                
00217     HIC_Color_Lock_Objects_LINE_CONTRAST    =0x00000040,        
00218     HIC_Color_Lock_Objects_MARKER           =0x00000080,            
00219     HIC_Color_Lock_Objects_MARKER_CONTRAST  =0x00000100,    
00220     HIC_Color_Lock_Objects_VERTEX           =0x00000200,            
00221     HIC_Color_Lock_Objects_VERTEX_CONTRAST  =0x00000400,    
00222     HIC_Color_Lock_Objects_TEXT             =0x00000800,                
00223     HIC_Color_Lock_Objects_TEXT_CONTRAST    =0x00001000,        
00224     HIC_Color_Lock_Objects_WINDOW           =0x00002000,            
00225     HIC_Color_Lock_Objects_WINDOW_CONTRAST  =0x00004000,    
00226     HIC_Color_Lock_Objects_CUT_EDGE         =0x00008000,            
00227     HIC_Color_Lock_Objects_CUT_FACE         =0x00010000,            
00228     HIC_Color_Lock_Objects_SIMPLE_REFLECTION=0x00020000,    
00229     HIC_Color_Lock_Objects_LIGHTING         =0x00040000,            
00230     HIC_Color_Lock_Objects_AMBIENT          =0x00080000,            
00231     HIC_Color_Lock_Objects_FACE             =(HIC_Color_Lock_Objects_FRONT|HIC_Color_Lock_Objects_BACK),                
00232     HIC_Color_Lock_Objects_POLYGON          =(HIC_Color_Lock_Objects_FACE|HIC_Color_Lock_Objects_EDGE),         
00233     HIC_Color_Lock_Objects_GEOMETRY         =(HIC_Color_Lock_Objects_POLYGON|HIC_Color_Lock_Objects_LINE|
00234                                                 HIC_Color_Lock_Objects_MARKER|HIC_Color_Lock_Objects_VERTEX|
00235                                                 HIC_Color_Lock_Objects_TEXT),           
00236     HIC_Color_Lock_Objects_CUT_GEOMETRY     =(HIC_Color_Lock_Objects_CUT_FACE|HIC_Color_Lock_Objects_CUT_EDGE),     
00237     HIC_Color_Lock_Objects_CONTRASTS        =(HIC_Color_Lock_Objects_FACE_CONTRAST|HIC_Color_Lock_Objects_EDGE_CONTRAST|
00238                                                 HIC_Color_Lock_Objects_LINE_CONTRAST|HIC_Color_Lock_Objects_MARKER_CONTRAST|
00239                                                 HIC_Color_Lock_Objects_VERTEX_CONTRAST|HIC_Color_Lock_Objects_TEXT_CONTRAST|
00240                                                 HIC_Color_Lock_Objects_WINDOW_CONTRAST),                                        
00241     HIC_Color_Lock_Objects_EVERYTHING       =(HIC_Color_Lock_Objects_WINDOW|HIC_Color_Lock_Objects_GEOMETRY|
00242                                                 HIC_Color_Lock_Objects_CUT_GEOMETRY|HIC_Color_Lock_Objects_CONTRASTS|
00243                                                 HIC_Color_Lock_Objects_LIGHTING|HIC_Color_Lock_Objects_AMBIENT)
00244 } HIC_Color_Lock_Objects;   
00245 
00246 
00247 typedef enum HIC_Material_Components_e {
00248     HIC_Color_Channel_NONE                  = 0x0000,
00249     HIC_Color_Channel_DIFFUSE               = 0x0001,
00250     HIC_Color_Channel_SPECULAR              = 0x0002,
00251     HIC_Color_Channel_MIRROR                = 0x0004,
00252     HIC_Color_Channel_TRANSMISSION          = 0x0008,
00253     HIC_Color_Channel_EMISSION              = 0x0010,
00254 
00255     HIC_Color_Channel_GLOSS                 = 0x0020,
00256     HIC_Color_Channel_INDEX                 = 0x0040,
00257 
00258     HIC_Color_Channel_DIFFUSE_TEXTURE       = 0x0100,
00259     HIC_Color_Channel_SPECULAR_TEXTURE      = 0x0200,
00260     HIC_Color_Channel_MIRROR_TEXTURE        = 0x0400,
00261     HIC_Color_Channel_TRANSMISSION_TEXTURE  = 0x0800,
00262     HIC_Color_Channel_EMISSION_TEXTURE      = 0x1000,
00263 
00264     HIC_Color_Channel_BUMP_TEXTURE          = 0x2000,
00265     HIC_Color_Channel_ENVIRONMENT_TEXTURE   = 0x4000
00266 } HIC_Material_Components;
00267 
00268 typedef enum HIC_Image_Format_e {   
00269     HIC_Image_Format_NONE,
00270     HIC_Image_Format_MAPPED_8,          
00271     HIC_Image_Format_MAPPED_16,     
00272     HIC_Image_Format_RGB24,         
00273     HIC_Image_Format_ARGB32,            
00274     HIC_Image_Format_RGBA32,            
00275     HIC_Image_Format_DEPTH_FLOAT32, 
00276     HIC_Image_Format_RGBAS32,
00277     HIC_Image_Format_DEPTH16,           
00278     HIC_Image_Format_STENCIL,
00279     HIC_Image_Format_DEPTH32
00280 } HIC_Image_Format;
00281 
00282 typedef enum HIC_Size_Units_e { 
00283     HIC_GSU_UNQUALIFIED,
00284     HIC_GSU_ORU,        
00285     HIC_GSU_SRU,            
00286     HIC_GSU_WRU,        
00287     HIC_GSU_PIXELS,     
00288     HIC_GSU_POINTS,     
00289     HIC_GSU_PERCENT,
00290     HIC_GSU_SCALE,      
00291     HIC_GSU_WORLD       
00292 } HIC_Size_Units;
00293 
00294 
00295 typedef enum HIC_Geometry_Type_e {
00296     HIC_Geometry_Type_CUTTING_PLANE = 37,       
00297     HIC_Geometry_Type_LIGHT,        
00298     HIC_Geometry_Type_SHELL,                
00299     HIC_Geometry_Type_MESH,             
00300     HIC_Geometry_Type_GRID,             
00301     HIC_Geometry_Type_NURBS_SURFACE,    
00302     HIC_Geometry_Type_CYLINDER,     
00303     HIC_Geometry_Type_POLYCYLINDER,         
00304     HIC_Geometry_Type_SPHERE,       
00305     HIC_Geometry_Type_POLYGON,              
00306     HIC_Geometry_Type_CIRCLE,               
00307     HIC_Geometry_Type_CIRCULAR_CHORD,       
00308     HIC_Geometry_Type_CIRCULAR_WEDGE,       
00309     HIC_Geometry_Type_ELLIPSE,      
00310     HIC_Geometry_Type_LINE,             
00311     HIC_Geometry_Type_POLYLINE,             
00312     HIC_Geometry_Type_NURBS_CURVE,          
00313     HIC_Geometry_Type_CIRCULAR_ARC,         
00314     HIC_Geometry_Type_ELLIPTICAL_ARC,       
00315     HIC_Geometry_Type_INFINITE_LINE,        
00316     HIC_Geometry_Type_IMAGE,        
00317     HIC_Geometry_Type_MARKER,               
00318     HIC_Geometry_Type_TEXT,                 
00319     HIC_Geometry_Type_STRING_CURSOR,        
00320     HIC_Geometry_Type_GEOMETRY_REFERENCE,   
00321     HIC_Geometry_Type_MISSING_GEOMETRY,
00322     HIC_Geometry_Type_BAD_TYPE=-1
00323 } HIC_Geometry_Type;
00324     
00325 
00326 #define HIC_TYPES_DEFINED
00327 #endif
00328 
Main Index
HOOPS/3dGS I.M. Interface

     << Back      Full Index      Forward >>