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