HOOPS/3dGS I.M. Interface

     << Back      Full Index      Forward >>


hi_proto.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: hi__proto_8h-source.html,v 1.29 2008-03-10 07:09:28 stage Exp $
00013  *
00014  * This file generated on Wed Jun 28 14:51:42 US/Pacific 2000 by covey
00015  */
00016  
00017 #ifndef HI_PROTO_DEFINED
00018 
00019 EXTERNAL {
00020 
00021 typedef void (HC_CDECL * HT_Old_Triangle_Action)
00022                 (void *info, HT_Integer32 convex_triangulation,
00023                  HT_Integer32 v1, HT_Integer32 v2, HT_Integer32 v3);
00024 
00025 typedef void (HC_CDECL * HT_Triangle_Action)
00026                 (void *info, int convex_triangulation,
00027                  HT_Point const *v1,
00028                  HT_Point const *v2,
00029                  HT_Point const *v3,
00030                  int s1,
00031                  int s2,
00032                  int s3,
00033                  HT_Intersection const *d1,
00034                  HT_Intersection const *d2,
00035                  HT_Intersection const *d3);
00036 
00037 }// EXTERNAL
00038 
00039 
00040 EXTERNAL float HC_CDECL HI_ACos (float iac);
00041 EXTERNAL HT_Texture * HI_Activate_Texture(HT_Texture const * texture, HT_Texture_Defs const * tdefs, bool errors);
00042 EXTERNAL float HC_CDECL HI_ATan2 (float y, float x);
00043 EXTERNAL HT_Attribute * HC_CDECL HI_Acquire_Append_Modelling_Mtx (HT_Segment alter *seg,
00044          HT_Attribute const *old,
00045          void const *info);
00046 EXTERNAL HT_Attribute * HC_CDECL HI_Acquire_Appended_Texture_Mtx (HT_Segment alter *seg,
00047          HT_Attribute const *old,
00048          void const *info);
00049 EXTERNAL HT_Attribute * HC_CDECL HI_Acquire_Metafile (HT_Segment alter *seg, HT_Attribute const *iold_meta, void const *info);
00050 EXTERNAL void HC_CDECL HI_Add_Path_Delimiter (HT_Name alter *directory, HT_Name alter *file);
00051 EXTERNAL void HC_CDECL HI_Add_To_Instance_Trees (HT_Subsegment *subseg, HT_Subsegment *pred_subseg, HT_Subsegment *nominal_owner);
00052 EXTERNAL void HC_CDECL HI_Adjoint_44 (float const *matp, float alter *adjp);
00053 EXTERNAL void HC_CDECL HI_Adjoint_44_Z (float const *matp, float alter *adj);
00054 EXTERNAL void HC_CDECL HI_Age_Activity (HT_Segment *root);
00055 EXTERNAL void HC_CDECL HI_Age_Seg_Flags (HT_Segment *root);
00056 EXTERNAL void * HC_CDECL HI_Alloc_Array(int size, bool try_alloc, HT_Memory_Pool alter *mempool);
00057 EXTERNAL void * HC_CDECL HI_Allocate (long size, bool allow_failure, HT_Memory_Pool alter *mempool);
00058 EXTERNAL bool HI_Analyze_Arc (
00059         HT_Point const *start,
00060         HT_Point const *middle,
00061         HT_Point const *end,
00062         HT_Point alter *center,
00063         HT_Point alter *basis1,
00064         HT_Point alter *basis2,
00065         float alter *angle);
00066 EXTERNAL bool HC_CDECL HI_Analyze_Font_Data (int data_length,
00067          char const *data,
00068          char encoding,
00069          bool using_lookup,
00070          int *num_chars,
00071          char const **table,
00072          char const *name);
00073 EXTERNAL void HC_CDECL HI_Append_String (char const *in, char *out);
00074 EXTERNAL void HC_CDECL HI_Append_String_To_Max (char const *in, int max, char *out);
00075 EXTERNAL void HC_CDECL HI_Apply_Options_To_FCD (
00076                 HT_Option_Value *type_values,
00077                 HT_Find_Contents_Data *fcd);
00078 EXTERNAL void HC_CDECL HI_Clean_FCD (HT_Find_Contents_Data *fcd);
00079 EXTERNAL void HC_CDECL HI_Arbitrary_Rotate (HT_Vector const *axis, HT_Point const *old_pt, float angle, HT_Point *new_pt);
00080 EXTERNAL void HC_CDECL HI_Arbitrary_Rotate_SC (HT_Vector const *axis,
00081          HT_Point const *old_pt,
00082          float sine,
00083          float cosine,
00084          HT_Point *new_pt);
00085 EXTERNAL HT_Time HC_CDECL HI_Assemble_3D_Polyedges (HT_Polyhedron *polyhedron,
00086          unsigned short please_validate,
00087          float dihedral);
00088 EXTERNAL HT_Time HC_CDECL HI_Assemble_3D_Polymarkers (HT_Polyhedron *polyhedron,
00089          unsigned int please_validate);
00090 EXTERNAL HT_Time HC_CDECL HI_Assemble_3D_Tristrips (HT_Polyhedron *polyhedron,
00091          unsigned short please_validate,
00092          bool validate_vertex_normals);
00093 EXTERNAL void HC_CDECL HI_Assemble_Edge_Normals (HT_Polyhedron *polyhedron);
00094 EXTERNAL void HC_CDECL HI_Assemble_Face_Normals (HT_Polyhedron *polyhedron);
00095 EXTERNAL void HC_CDECL HI_Assemble_Mesh_Vertex_Normals (HT_Mesh *mesh);
00096 EXTERNAL void HC_CDECL HI_Assemble_Shell_Vertex_Normals (HT_Shell *shell);
00097 EXTERNAL void HC_CDECL HI_Assemble_Vertex_Normals (HT_Polyhedron *polyhedron);
00098 EXTERNAL void HC_CDECL HI_Assemble_Mesh_Tristrips (HT_Mesh *mesh,
00099          unsigned short please_validate,
00100          bool validate_vertex_normals);
00101 EXTERNAL void HC_CDECL HI_Assemble_Shell_Tristrips (HT_Shell *shell,
00102          unsigned short please_validate,
00103          bool validate_vertex_normals);
00104 EXTERNAL void HC_CDECL HI_Assemble_Simple_Shell_Tristrips (
00105         int point_count,        
00106         HT_Point const *points,
00107         int face_list_length,
00108         int const *face_list,
00109         HT_Tristrip **tristrips_out);
00110 EXTERNAL void HC_CDECL HI_Au_Revoir (HT_Anything *thing);
00111 EXTERNAL bool HC_CDECL HI_CI_Equal_Strings (char const *a, char const *b);
00112 EXTERNAL bool HC_CDECL HI_CI_Equal_Strings_To_Max (char const *a, int max, char const *b);
00113 EXTERNAL bool HC_CDECL HI_CI_Wild_Equal_Strings (char const *a, char const *p);
00114 EXTERNAL bool HC_CDECL HI_CI_Wild_Equal_Strings_To_Max (char const *a, int max, char const *p);
00115 EXTERNAL void HC_CDECL HI_Call_Exit_Handlers (void);
00116 EXTERNAL bool HC_CDECL HI_Camera_To_Transform (HT_Camera *camera, double stereo_skew);
00117 EXTERNAL void HC_CDECL HI_Canonize_Chars (char const *string, HT_Name *name);
00118 EXTERNAL void HC_CDECL HI_Canonize_Chars_Quoted (char const *string, HT_Name *name, bool retain_quotes);
00119 EXTERNAL void HC_CDECL HI_Canonize_Kars (unsigned short const *string, HT_KName *name);
00120 EXTERNAL void HC_CDECL HI_Canonize_Line_Pattern (char const *string, HT_Name *name, int *extra);
00121 EXTERNAL void HC_CDECL HI_Center_Version_Message (char const *string, char *buffer);
00122 EXTERNAL void HC_CDECL HI_Chain_Code_Files (void);
00123 EXTERNAL void HC_CDECL HI_Check_3D_Camera (HT_Camera *camera, HT_Segment *seg);
00124 EXTERNAL bool HC_CDECL HI_Check_Alias_For_Metafile (HT_File_Data *fdata, char *alias, bool *name_ok);
00125 EXTERNAL void HC_CDECL HI_Check_For_Memory_Purge (HT_Segment *seg, bool purging);
00126 EXTERNAL void HC_CDECL HI_Check_Wakeups (float now);
00127 EXTERNAL void * HC_CDECL HI_Clone_Aligned (void const *in, unsigned int size);
00128 EXTERNAL void * HC_CDECL HI_Clone_Anything (void const *in, unsigned int size);
00129 EXTERNAL HT_Bounding * HC_CDECL HI_Clone_Bounding (HT_Bounding const *bounding);
00130 EXTERNAL HT_Glyph * HC_CDECL HI_Clone_Glyph (HT_Glyph const *glyph);
00131 EXTERNAL HT_Line_Style * HC_CDECL HI_Clone_Line_Style (HT_Line_Style const *line_style);
00132 EXTERNAL HT_Text_Info * HC_CDECL HI_Clone_Text_Info (HT_Text_Info const *text_info);
00133 EXTERNAL HT_Polyhedron *HI_Clone_Polyhedron (HT_Polyhedron *oldph);
00134 EXTERNAL HT_Texture * HC_CDECL HI_Clone_Texture (HT_Texture const *texture);
00135 EXTERNAL HT_Hidden_Payload * HC_CDECL HI_Clone_Hidden_Payload(HT_Hidden_Payload* old_payload, bool copy_points);
00136 EXTERNAL void HC_CDECL HI_Close_Complaint (int wanted);
00137 EXTERNAL bool HC_CDECL HI_Close_Directory (void alter *dhandle, HT_Name alter *message1, HT_Name alter *message2);
00138 EXTERNAL bool HC_CDECL HI_Close_File (void alter *fhandle, HT_Name alter *message1, HT_Name alter *message2);
00139 EXTERNAL int HC_CDECL HI_Compare_KNames (HT_KName const *a, HT_KName const *b);
00140 EXTERNAL int HC_CDECL HI_Compare_Names (HT_Name const *a, HT_Name const *b);
00141 EXTERNAL int HC_CDECL HI_Compare_Strings (char const *a, char const *b);
00142 EXTERNAL int HC_CDECL HI_Compare_Strings_To_Max (char const *a, int max, char const *b);
00143 EXTERNAL bool HC_CDECL HI_Compute_Three_Point_Circle (HT_Point const *start,
00144          HT_Point const *middle,
00145          HT_Point const *end,
00146          HT_Point *center,
00147          float *radius,
00148          HT_Plane *plane,
00149          HT_Vector *basis1,
00150          HT_Vector *basis2);
00151 EXTERNAL bool HC_CDECL HI_Compute_Window_Extent (char const *segname,
00152          float *xres,
00153          float *yres,
00154          int *xspix,
00155          int *yspix,
00156          int *left,
00157          int *right,
00158          int *bottom,
00159          int *top);
00160 EXTERNAL bool HC_CDECL HI_Compute_Window_Extent_By_Pth (int count,
00161          HT_Segment **segments,
00162          float *xres,
00163          float *yres,
00164          int *xspix,
00165          int *yspix,
00166          int *left,
00167          int *right,
00168          int *bottom,
00169          int *top);
00170 EXTERNAL bool HC_CDECL HI_Convert_Bounding (HT_Bounding const *in_bound, short desired, HT_Bounding *out_bound);
00171 EXTERNAL void HC_CDECL HI_Convert_Char_To_KName (char const *cstring, HT_KName *kname, char encoding);
00172 EXTERNAL int HC_CDECL HI_Convert_Keys_To_Path (int in_count, HT_Key const *keys, HT_Segment **segments);
00173 EXTERNAL void HC_CDECL HI_Copy_43 (float const *inp, float alter *outp);
00174 EXTERNAL void HC_CDECL HI_Copy_44 (float const *inp, float alter *outp);
00175 EXTERNAL void HC_CDECL HI_Copy_Aligned (void const *in, unsigned int size, void *out);
00176 EXTERNAL void HC_CDECL HI_Copy_Anything (void const *in, unsigned int size, void *out);
00177 EXTERNAL HT_Callback_List * HC_CDECL HI_Copy_Callback_List (HT_Callback_List const *in);
00178 EXTERNAL char * HC_CDECL HI_Copy_Chars (char const *in, char *out);
00179 EXTERNAL void HC_CDECL HI_Copy_Chars_To_Name (char const *realin, HT_Name alter *outname);
00180 EXTERNAL HT_Color_List * HC_CDECL HI_Copy_Colors (HT_Color_List const *old_list, HT_Color_Map const * map);
00181 EXTERNAL HT_Font_Name * HC_CDECL HI_Copy_Font_Names (HT_Font_Name const *in);
00182 EXTERNAL HT_Geometry * HC_CDECL HI_Copy_Geometry (HT_Geometry const *old_geom);
00183 EXTERNAL void HC_CDECL HI_Copy_KName (HT_KName const *in, HT_KName *out);
00184 EXTERNAL void HC_CDECL HI_Copy_Matrix (HT_Matrix const *in, HT_Matrix alter *out);
00185 EXTERNAL void HC_CDECL HI_Free_Name_List (HT_Name_List * old);
00186 EXTERNAL HT_Name_List * HC_CDECL HI_Copy_Name_List (HT_Name_List const *in);
00187 EXTERNAL void HC_CDECL HI_Copy_Name (HT_Name const *in, HT_Name *out);
00188 EXTERNAL void HC_CDECL HI_Copy_Name_To_Chars (HT_Name const *in, char alter *out);
00189 EXTERNAL void HC_CDECL HI_Copy_Named_Material (HT_Named_Material const *in, HT_Named_Material *out);
00190 EXTERNAL HT_Option_Value * HC_CDECL HI_Copy_Option_List (HT_Option_Value const *old_opt);
00191 EXTERNAL void HC_CDECL HI_Copy_String (char const *in, char *out);
00192 EXTERNAL void HC_CDECL HI_Copy_String_To_Max (char const *in, int max, char *out);
00193 EXTERNAL float HC_CDECL HI_Cos (float angle);
00194 EXTERNAL void HC_CDECL HI_Count_Contents (HT_Segment *seg, void *info);
00195 EXTERNAL long HC_CDECL HI_Count_Transparent_Pixels (int width, char format, void *iraster);
00196 EXTERNAL void HC_CDECL HI_Create_Geometry_Table (HT_Segment *seg);
00197 EXTERNAL void HC_CDECL HI_Create_Image (HT_Image **iimage,
00198          float x,
00199          float y,
00200          float z,
00201          int width,
00202          int height,
00203          char format,
00204          int row_bytes,
00205          int type,
00206          unsigned char *source);
00207 EXTERNAL void HC_CDECL HI_Create_Instance_Tree (HT_Instance **linker, HT_Subsegment *referee, HT_Instance *owner);
00208 EXTERNAL HT_Segment * HC_CDECL HI_Create_One_Segment (HT_Name *name,
00209          HT_Subsegment **linker,
00210          HT_Subsegment *pred_subseg,
00211          HT_Segment *owner,
00212          bool fix_instances);
00213 EXTERNAL void HC_CDECL HI_Create_Open_Segment (HT_Segment *seg);
00214 EXTERNAL int HC_CDECL HI_Create_Polyglin_Wings (int count, HT_Point *points, bool closed, int owner, HT_Wing ***wing_ptrs);
00215 EXTERNAL HT_Wedge_Tree * HC_CDECL HI_Create_Polygon_Wedge_Tree (int count, HT_Point *points, HT_Point *pivot, bool ccw);
00216 EXTERNAL HT_Segment * HC_CDECL HI_Create_Segment (char const *name);
00217 EXTERNAL void HC_CDECL HI_Create_Shell_Edges (HT_Shell *shell, bool create_edge_to_face);
00218 EXTERNAL void HC_CDECL HI_Cross_Product (HT_Vector const *a, HT_Vector const *b, HT_Vector alter *c);
00219 EXTERNAL HT_Event * HC_CDECL HI_Current_Event (HT_Type type);
00220 EXTERNAL int HC_CDECL HI_Decipher_Action (char const *iaction_name);
00221 EXTERNAL bool HC_CDECL HI_Decipher_Boolean (char const *spec, bool *flagp);
00222 EXTERNAL bool HC_CDECL HI_Decipher_Color_Target (char const **cpp,
00223          char const *cpe,
00224          bool comma_OK,
00225          int *newobject,
00226          int open_type);
00227 EXTERNAL HT_Option_Value * HC_CDECL HI_Decipher_Color_Type (char const *type, int extra_flags);
00228 EXTERNAL HT_Option_Value * HC_CDECL HI_Decipher_Color_Channel (char const *type, int extra_flags);
00229 EXTERNAL char HC_CDECL HI_Decipher_Encoding (char const *encoding);
00230 EXTERNAL HT_Integer32 HC_CDECL HI_Decipher_Geometry (char const *ictype);
00231 EXTERNAL bool HC_CDECL HI_Decipher_Handedness (char const *ispec, int alter *which);
00232 EXTERNAL void HC_CDECL HI_Decipher_Metafile_Options (char const *listptr, HT_Metafile *proto);
00233 EXTERNAL bool HC_CDECL HI_Decipher_Projection (char const *iprojection, HT_Camera *camera);
00234 EXTERNAL bool HC_CDECL HI_Decipher_Type_Names (char const *types, HT_Find_Contents_Data *fcd);
00235 EXTERNAL void HC_CDECL HI_Define_Constant_Options (HT_Constant_Option_Type const *constant_table,
00236          int constant_table_size,
00237          HT_Option_Hash_Table *hash_tablep);
00238 EXTERNAL void HC_CDECL HI_Define_Default_Colors (void);
00239 EXTERNAL void HC_CDECL HI_Define_Duplex_Fonts (void);
00240 EXTERNAL HT_Font * HC_CDECL HI_Define_Font (char const *name,
00241          char const *options,
00242          int data_length,
00243          char const *data,
00244          bool copy_data);
00245 EXTERNAL void HC_CDECL HI_Define_Internal_Fonts (void);
00246 EXTERNAL void HC_CDECL HI_Define_Mono_Fonts (void);
00247 EXTERNAL HT_Option_Type * HC_CDECL HI_Define_Nice_Option (HT_Option_Hash_Table *hash_table,
00248          long id,
00249          const HT_Name *name,
00250          int value_type,
00251          int value_count,
00252          bool negatable,
00253          HT_Option_Hash_Table *suboptions);
00254 EXTERNAL void HC_CDECL HI_Define_Nice_KOption (HT_Option_Hash_Table *hash_table,
00255          long id,
00256          const HT_KName *name,
00257          int value_type,
00258          int value_count,
00259          bool negatable,
00260          HT_Option_Hash_Table *suboptions);
00261 EXTERNAL void HC_CDECL HI_Define_Simplex_Fonts (void);
00262 EXTERNAL void HC_CDECL HI_Define_Implicit_Texture(HT_Segment const *seg, HT_Image *image, char const *options);
00263 EXTERNAL HT_Texture * HC_CDECL HI_Define_Shadow_Texture(HT_Image *image);
00264 EXTERNAL void HC_CDECL HI_Delete_Geometry_Table (HT_Segment *seg);
00265 EXTERNAL void HC_CDECL HI_Delete_Segment (HT_Segment *seg, void *info);
00266 EXTERNAL void HC_CDECL HI_Delete_User_Key (HT_Anything *item);
00267 EXTERNAL bool HC_CDECL HI_Dequeue_Event (void);
00268 EXTERNAL char HC_CDECL HI_Determine_Image_Format (char const *format, HT_Image_Options *options);
00269 EXTERNAL void HC_CDECL HI_Disable_Timer_Interrupts (void);
00270 EXTERNAL void HC_CDECL HI_Dump_Code (char const *string);
00271 EXTERNAL void HC_CDECL HI_Edit_Karacters (HT_Driver *source, int key, char bencoding);
00272 EXTERNAL void HC_CDECL HI_Edit_Text (HT_Text *text,
00273          int row,
00274          int column,
00275          int erase,
00276          int ndelete,
00277          int insert,
00278          unsigned short *new_kars);
00279 EXTERNAL bool HC_CDECL HI_Enable_Timer_Interrupts (void);
00280 EXTERNAL int HC_CDECL HI_Encoding_Is_Compatible (char from, char to);
00281 EXTERNAL bool HC_CDECL HI_Convert_Karacters_Encoding (int count, unsigned short const* in, unsigned short * out, char from, char to); 
00282 EXTERNAL bool HC_CDECL HI_Equal_Strings (char const *a, char const *b);
00283 EXTERNAL bool HC_CDECL HI_Equal_Strings_To_Max (char const *a, int max, char const *b);
00284 EXTERNAL void HC_CDECL HI_Error (int category, int specific, char const *buf);
00285 EXTERNAL void HC_CDECL HI_Error2 (int category, int specific, char const *buf1, char const *buf2);
00286 EXTERNAL void HC_CDECL HI_Error3 (int category, int specific, char const *buf1, char const *buf2, char const *buf3);
00287 EXTERNAL void HC_CDECL HI_Error_Exit (void);
00288 EXTERNAL bool HC_CDECL HI_Evaluate_Color (HT_Name const *descrip, HT_Named_Material *material, HT_Texture_Defs *defs, bool errors);
00289 EXTERNAL char * HC_CDECL HI_Expand_Path_Token (HT_Path_Token *pt, char *bp, char *bpe);
00290 EXTERNAL float HC_CDECL HI_Exponentiate (float base, float power);
00291 EXTERNAL void HC_CDECL HI_Fatal (int category, int specific, char const *buf);
00292 EXTERNAL void HC_CDECL HI_Fatal2 (int category, int specific, char const *buf1, char const *buf2);
00293 EXTERNAL void HC_CDECL HI_Fatal3 (int category, int specific, char const *buf1, char const *buf2, char const *buf3);
00294 EXTERNAL void HC_CDECL HI_Figure_Bounding_Cuboid (int count, HT_Point const *points, HT_Bounding *bounding);
00295 EXTERNAL void HC_CDECL HI_Figure_Bounding_Rectangle (int count, HT_Point const *points, HT_Bounding *bounding);
00296 EXTERNAL void HC_CDECL HI_Figure_Bounding_Sphere (int count, HT_Point const *points, HT_Bounding *bounding);
00297 EXTERNAL bool HC_CDECL HI_Figure_General_Modelling_Mtx (float const *fbfp, HT_Matrix alter *mat);
00298 EXTERNAL bool HC_CDECL HI_Figure_General_Texture_Mtx (float const *fbfp, HT_Matrix alter *mat);
00299 EXTERNAL bool HC_CDECL HI_Figure_Geometry_Bounding (HT_Geometry const *geom, HT_Bounding alter *bounding);
00300 EXTERNAL void HC_CDECL HI_Figure_Offaxis_Rotation_Mtx (float x, float y, float z, float angle, HT_Matrix alter *mat);
00301 EXTERNAL bool HC_CDECL HI_Figure_Plane_From_Points (int count, HT_Point const *ipl, HT_Plane alter *plane);
00302 EXTERNAL void HC_CDECL HI_Figure_Rotation_Matrix (float x, float y, float z, HT_Matrix alter *mat);
00303 EXTERNAL void HC_CDECL HI_Figure_Scale_Matrix (float x, float y, float z, HT_Matrix alter *mat);
00304 EXTERNAL void HC_CDECL HI_Figure_Segment_Bounding (HT_Segment *seg, HT_Bounding *bounding);
00305 EXTERNAL void HC_CDECL HI_Figure_Translation_Matrix (float x, float y, float z, HT_Matrix alter *mat);
00306 EXTERNAL bool HC_CDECL HI_Find_Application_Name (HT_Name alter *name);
00307 EXTERNAL HT_Attribute * HC_CDECL HI_Find_Attribute (char const *sname, HT_Type type);
00308 EXTERNAL HT_Attribute * HC_CDECL HI_Find_Attribute_On_Seg (HT_Segment const* seg, HT_Type type, bool upwind);
00309 EXTERNAL HT_Driver * HC_CDECL HI_Find_Driver (char const *name);
00310 EXTERNAL void HC_CDECL HI_Find_Kanji_Char (char const *font, char const *data, unsigned short index, unsigned char const * alter *address);
00311 EXTERNAL HT_Attribute * HC_CDECL HI_Find_Local_Attribute (HT_Type type);
00312 EXTERNAL HT_Attribute * HC_CDECL HI_Find_Net_Attribute (char const *sname, HT_Type type, void * extra, bool lock);
00313 EXTERNAL HT_Attribute * HC_CDECL HI_Find_Net_Attribute_By_Keys (int count, HT_Key const *keys, HT_Type type, void * extra, bool lock);
00314 EXTERNAL HT_Attribute * HC_CDECL HI_Find_Net_Attribute_By_Path (int count, HT_Segment const **segments, HT_Type type, void * extra, bool lock);
00315 EXTERNAL bool HC_CDECL HI_Find_Our_Open (void);
00316 EXTERNAL void HC_CDECL HI_Find_Polygon_Plane (HT_Polygon alter *polygon);
00317 EXTERNAL unsigned short HC_CDECL HI_Find_Raster_Max (unsigned short max, int width, char format, void *iraster);
00318 EXTERNAL HT_Window * HC_CDECL HI_Find_Scoping_Window (HT_Segment *seg);
00319 EXTERNAL HT_Thread_Specific_Data * HC_CDECL HI_Find_Thread_Specific_Data (unsigned POINTER_SIZED_INT thread_id);
00320 EXTERNAL void HC_CDECL HI_Finish_Code_Generation (void);
00321 EXTERNAL char const * HC_CDECL HI_First_Substring_In_String (char const *substr, char const *string);
00322 EXTERNAL char const * HC_CDECL HI_CI_First_Substring_In_String (char const *substr, char const *string);
00323 EXTERNAL void HC_CDECL HI_Flush_Geometry (HT_Segment *seg, void *info);
00324 EXTERNAL void HC_CDECL HI_Flush_Driver_Config (char const *driver, char const *id, char const *version);
00325 EXTERNAL bool HC_CDECL HI_Names_All_Equal (HT_Name_List *a, HT_Name_List *b);
00326 EXTERNAL bool HC_CDECL HI_Font_Names_All_Equal (HT_Font_Name *a, HT_Font_Name *b);
00327 EXTERNAL HT_Driver * HC_CDECL HI_Force_Find_Driver (char const *name);
00328 EXTERNAL HT_Driver * HC_CDECL HI_Force_Find_Owner_Driver (char const *segname, HT_Segment **startp);
00329 EXTERNAL HT_Driver * HC_CDECL HI_Force_Find_Path_Driver (int count, HT_Segment **segments, HT_Segment **startp);
00330 EXTERNAL void HC_CDECL HI_Format_Version (char *data, int datalen, int version, int sub, bool beta);
00331 EXTERNAL void HC_CDECL HI_Format_Version_Message (char const *name, int version, int sub, bool beta, char *buffer);
00332 EXTERNAL void HC_CDECL HI_Format_Generic_Size_String (HT_Generic_Size const *size, char alter *list, int listlen); 
00333 EXTERNAL void HC_CDECL HI_Free (void *p, long size);
00334 EXTERNAL void HC_CDECL HI_Free_Array(void* p, long size, HT_Memory_Pool alter *mempool);
00335 EXTERNAL void HC_CDECL HI_Free_Bounding (HT_Bounding *bounding);
00336 EXTERNAL void HC_CDECL HI_Free_Callback_List (HT_Callback_List *item);
00337 EXTERNAL void HC_CDECL HI_Free_Include_Chain (HT_Include_Chain *ic);
00338 EXTERNAL void HC_CDECL HI_Free_Font_Names (HT_Font_Name *names);
00339 EXTERNAL void HC_CDECL HI_Free_Kanji_Data (void);
00340 EXTERNAL void HC_CDECL HI_Free_Glyph (HT_Glyph * glyph);
00341 EXTERNAL void HC_CDECL HI_Free_Line_Style (HT_Line_Style * line_style);
00342 EXTERNAL void HC_CDECL HI_Free_Material_Names (HT_Named_Material *mat, int length);
00343 EXTERNAL void HC_CDECL HI_Free_Option_List (HT_Option_Value *listptr);
00344 EXTERNAL void HC_CDECL HI_Free_Path (HT_Path_Token *tok);
00345 EXTERNAL void HC_CDECL HI_Free_Polyedge_List (HT_Polyedge *curr);
00346 EXTERNAL void HC_CDECL HI_Free_Polymarker_List (HT_Polymarker *curr);
00347 EXTERNAL void HC_CDECL HI_Free_Time (void);
00348 EXTERNAL void HC_CDECL HI_Free_Tristrip_List (HT_Tristrip *curr);
00349 EXTERNAL void HC_CDECL HI_Free_Wedge_Tree (HT_Wedge_Tree *tree);
00350 EXTERNAL void HC_CDECL HI_Free_Wings (int count, HT_Wing **wing_ptrs);
00351 EXTERNAL void HC_CDECL HI_Free_Textures_On_Seg(HT_Segment* segment);
00352 EXTERNAL void HC_CDECL HI_Free_Text_Info (HT_Text_Info * text_info);
00353 EXTERNAL void HC_CDECL HI_Gather_Modelling (HT_Attribute *attribute, HT_Attribute **net);
00354 EXTERNAL void HC_CDECL HI_Generate_Error (int category, int specific, int severity, int msgc, char const **msgv);
00355 EXTERNAL void HC_CDECL HI_Generate_Untrappable_Error (int category, int specific, int severity, int msgc, char const **msgv);
00356 EXTERNAL void HC_CDECL HI_Generic_Delete (HT_Anything *stuff);
00357 EXTERNAL bool HC_CDECL HI_Get_Byte_Array (HT_File_Data *fdata, HT_Read_Metafile_Data *rmd, int which);
00358 EXTERNAL void HC_CDECL HI_Get_Fetamile_Hash (void);
00359 EXTERNAL bool HC_CDECL HI_Get_Filename (HT_Segment *seg, HT_Metafile *metafile, HT_File_Data *fdata, HT_Name *defdir);
00360 EXTERNAL bool HC_CDECL HI_Get_Float (HT_File_Data *fdata, float *f);
00361 EXTERNAL bool HC_CDECL HI_Get_Float_Array (HT_File_Data *fdata, HT_Read_Metafile_Data *rmd, int which);
00362 EXTERNAL bool HC_CDECL HI_Get_Image (HT_File_Data *fdata, char *fmt_str, int *widthp, int *heightp, void ***raster_tablep);
00363 EXTERNAL bool HC_CDECL HI_Get_Int (HT_File_Data *fdata, int *i);
00364 EXTERNAL bool HC_CDECL HI_Get_Int_Array (HT_File_Data *fdata, HT_Read_Metafile_Data *rmd, int which);
00365 EXTERNAL bool HC_CDECL HI_Get_Long (HT_File_Data *fdata, long *l);
00366 EXTERNAL bool HC_CDECL HI_Get_Key (HT_File_Data *fdata, HT_Key *l);
00367 EXTERNAL bool HC_CDECL HI_Get_Matrix (HT_File_Data *fdata, float alter *matp);
00368 EXTERNAL bool HC_CDECL HI_Get_Mesh_Point_Array (HT_File_Data *fdata, HT_Read_Metafile_Data *rmd, int which);
00369 EXTERNAL bool HC_CDECL HI_Get_Named_Float_Array (HT_File_Data *fdata, HT_Read_Metafile_Data *rmd, int which);
00370 EXTERNAL bool HC_CDECL HI_Get_Point (HT_File_Data *fdata, HT_Point *c);
00371 EXTERNAL bool HC_CDECL HI_Get_Plane (HT_File_Data *fdata, HT_Plane *c);
00372 EXTERNAL bool HC_CDECL HI_Get_Point_Array (HT_File_Data *fdata, HT_Read_Metafile_Data *rmd, int which);
00373 EXTERNAL bool HC_CDECL HI_Get_Plane_Array (HT_File_Data *fdata, HT_Read_Metafile_Data *rmd, int which);
00374 EXTERNAL bool HC_CDECL HI_Get_String (HT_File_Data *fdata, char *sp, char *spe);
00375 EXTERNAL bool HC_CDECL HI_Get_Light_Optionals (HT_File_Data *fdata, char *sp, char *spe);
00376 EXTERNAL bool HC_CDECL HI_Get_White_Space (HT_File_Data *fdata);
00377 EXTERNAL void HC_CDECL HI_HLS_To_RGB (HT_HLS const *hls, HT_RGB *rgb);
00378 EXTERNAL void HC_CDECL HI_HOOPS_Version (char *data, int datalen);
00379 EXTERNAL void HC_CDECL HI_HOOPS_Version_Message (char *hoops_string);
00380 EXTERNAL bool HC_CDECL HI_Has_Local_Key (HT_Segment const *owner, HT_Anything *item);
00381 EXTERNAL void HC_CDECL HI_Ident_44 (float alter *outp);
00382 EXTERNAL void HC_CDECL HI_Ident_Matrix (HT_Matrix alter *matrix);
00383 EXTERNAL void HC_CDECL HI_Info (int category, int specific, char const *buf);
00384 EXTERNAL void HC_CDECL HI_Info2 (int category, int specific, char const *buf1, char const *buf2);
00385 EXTERNAL void HC_CDECL HI_Info3 (int category, int specific, char const *buf1, char const *buf2, char const *buf3);
00386 EXTERNAL HT_Camera * HC_CDECL HI_Init_Camera (HT_Attribute const *old_cam);
00387 EXTERNAL void HC_CDECL HI_Init_Driver (HT_Driver *driver);
00388 EXTERNAL void HC_CDECL HI_Init_Internal_Data (void);
00389 EXTERNAL void HC_CDECL HI_Init_Time (void);
00390 EXTERNAL void HC_CDECL HI_Initialize_Edge_Attributes (HT_Polyhedron *polyhedron, unsigned short which);
00391 EXTERNAL void HC_CDECL HI_Initialize_Face_Attributes (HT_Polyhedron *polyhedron, unsigned short which);
00392 EXTERNAL void HC_CDECL HI_Initialize_Material_Names (HT_Named_Material *mat);
00393 EXTERNAL void HC_CDECL HI_Initialize_Vertex_Attributes (HT_Polyhedron *polyhedron, unsigned int which, int data);
00394 EXTERNAL HT_Geometry * HC_CDECL HI_Insert_Geometry (HT_Anything *owner,
00395          HT_Geometry *geometry,
00396          bool is_2D,
00397          HT_Integer32 activity);
00398 EXTERNAL HT_Integer32 HI_Determine_Geometry_Maybes (HT_Geometry const * geometry);
00399 EXTERNAL void HC_CDECL HI_Insert_NURBS_Curve (HT_Anything *owner, void *info);
00400 EXTERNAL void HI_Generate_NURBS_Polyline (
00401     HT_NURBS_Curve const *curve, 
00402     HT_NURBS_Curve_Control const *control,
00403     HT_Matrix const *matrix,
00404     HT_Polyline *p, 
00405     float max_dev);
00406 EXTERNAL void HC_CDECL HI_Insert_Polyline (HT_Anything *owner, void *info);
00407 EXTERNAL void HC_CDECL HI_Internal_Data_Error (int category, int specific, char const *buf);
00408 EXTERNAL void HC_CDECL HI_Internal_Error (int category, int specific, char const *buf);
00409 EXTERNAL void HC_CDECL HI_Internal_Error2 (int category, int specific, char const *buf1, char const *buf2);
00410 EXTERNAL void HC_CDECL HI_Internal_Error3 (int category, int specific, char const *buf1, char const *buf2, char const *buf3);
00411 EXTERNAL void HC_CDECL HI_Interpret_Environment (bool picture_only);
00412 EXTERNAL int HC_CDECL HI_Intersect_Line_Segments_2D (HT_Point *p0,
00413          HT_Point *p1,
00414          HT_Point *q0,
00415          HT_Point *q1,
00416          HT_Point *intersection);
00417 EXTERNAL HT_Key HC_CDECL HI_KInsert_Image_By_Row (float x, float y, float z, char const *format, int width, int height, void **bytesp);
00418 EXTERNAL HT_Key HC_CDECL HI_KInsert_Pixel_Array_By_Row (float x, float y, float z, int width, int height, unsigned short **pixelsp);
00419 EXTERNAL HT_Anything * HC_CDECL HI_Key_To_Pointer (HT_Key key, HT_Segment *seg);
00420 EXTERNAL char const * HC_CDECL HI_Last_Substring_In_String (char const *substr, char const *string);
00421 EXTERNAL char const * HC_CDECL HI_CI_Last_Substring_In_String (char const *substr, char const *string);
00422 EXTERNAL void HC_CDECL HI_Less_Cutting_Planes (HT_Segment *seg, int count);
00423 EXTERNAL void HC_CDECL HI_Less_Light (HT_Segment *seg, int count);
00424 EXTERNAL void HC_CDECL HI_Less_Transparencies (HT_Segment *seg, int count);
00425 EXTERNAL void HC_CDECL HI_Less_Shadows (HT_Segment *seg, int count);
00426 EXTERNAL HT_Alias ** HC_CDECL HI_Look_Up_Alias (char const *name, int length);
00427 EXTERNAL HT_Callback_Name ** HC_CDECL HI_Look_Up_Callback_Name (char const *name, int length);
00428 EXTERNAL HT_Color_Name ** HC_CDECL HI_Look_Up_Color (char const *name, int length);
00429 EXTERNAL HT_Font ** HC_CDECL HI_Look_Up_Font (char const *name, int length);
00430 EXTERNAL HT_Glyph * HC_CDECL HI_Look_Up_Glyph (HT_Name *name);
00431 EXTERNAL HT_Line_Style * HC_CDECL HI_Look_Up_Line_Style (HT_Name *name);
00432 EXTERNAL HT_Texture * HC_CDECL HI_Look_Up_Texture (HT_Segment const *seg, HT_Name *name);
00433 EXTERNAL HT_Texture * HC_CDECL HI_Look_Up_Local_Texture (HT_Name *name);
00434 EXTERNAL void HC_CDECL HI_LEA_Pattern_Delete (HT_Polyhedron *polyhedron, HT_LEA_Pattern *pattern);
00435 EXTERNAL HT_LEA_Pattern * HC_CDECL HI_LEA_Pattern_Init (HT_Polyhedron *polyhedron, HT_Name *name);
00436 EXTERNAL HT_LEA_Pattern * HC_CDECL HI_LEA_Pattern_Lookup (HT_Polyhedron const *polyhedron, unsigned char id);
00437 EXTERNAL void HC_CDECL HI_LVA_Symbol_Delete (HT_Polyhedron *polyhedron, HT_LVA_Symbol *symbol);
00438 EXTERNAL HT_LVA_Symbol * HC_CDECL HI_LVA_Symbol_Init (HT_Polyhedron *polyhedron, HT_Name *name);
00439 EXTERNAL HT_LVA_Symbol * HC_CDECL HI_LVA_Symbol_Lookup (HT_Polyhedron const *polyhedron, unsigned char id);
00440 EXTERNAL void HC_CDECL HI_Make_It_Fatal (int category,
00441          int specific,
00442          int severity,
00443          int msgc,
00444          char const * const *msgv,
00445          int c,
00446          char const * const *v);
00447 EXTERNAL void HC_CDECL HI_Free_Boolean_Globals (void *boolean_data);
00448 EXTERNAL void HC_CDECL HI_Make_Unique_Filename (HT_Name alter *name);
00449 EXTERNAL void HC_CDECL HI_Matmul_43_by_43 (float const *leftp, float const *rightp, float alter *resultp);
00450 EXTERNAL void HC_CDECL HI_Matmul_44_by_44 (float const *leftp, float const *rightp, float alter *resultp);
00451 EXTERNAL bool HC_CDECL HI_Merge_Bounding_Into_Bounding (HT_Bounding *new_bound,
00452          HT_Bounding *bounding,
00453          bool malleable_target);
00454 EXTERNAL HT_Callback_List * HC_CDECL HI_Merge_Callback_Lists (HT_Callback_List *older, HT_Callback_List *newer);
00455 EXTERNAL void HC_CDECL HI_Merge_Colors (HT_Color alter *original, HT_Color const *add_in, HT_Attribute_Lock const * locks, HT_Color_Map const *map);
00456 EXTERNAL bool HC_CDECL HI_Merge_Points_Into_Bounding (int count, HT_Point const *points, HT_Bounding *bounding);
00457 EXTERNAL void HC_CDECL HI_More_Cutting_Planes (HT_Segment *seg, int count);
00458 EXTERNAL void HC_CDECL HI_More_Light (HT_Segment *seg, int count);
00459 EXTERNAL void HC_CDECL HI_More_Transparencies (HT_Segment *seg, int count);
00460 EXTERNAL void HC_CDECL HI_More_Shadows (HT_Segment *seg, int count);
00461 EXTERNAL void HC_CDECL HI_Multiply_Matrices (HT_Matrix const *left, HT_Matrix const *right, HT_Matrix alter *result);
00462 EXTERNAL void HC_CDECL HI_Normal_Exit (void);
00463 EXTERNAL bool HC_CDECL HI_Normalize (HT_Vector alter *vec);
00464 EXTERNAL bool HC_CDECL HI_Normalize_Vectors (int count, HT_Vector alter *vec);
00465 EXTERNAL bool HC_CDECL HI_Normalize_Plane (HT_Plane alter *plane);
00466 EXTERNAL void HC_CDECL HI_Not_When_Streamed (HT_Segment *seg, char const *why);
00467 EXTERNAL HT_Segment * HC_CDECL HI_One_Segment_Search (char const *spec, bool required);
00468 EXTERNAL bool HC_CDECL HI_Open_Directory (HT_Name alter *name,
00469          HT_Name const *filter,
00470          int selector_mask,
00471          int selector_value,
00472          void alter **dhandle,
00473          HT_Name alter *message1,
00474          HT_Name alter *message2);
00475 EXTERNAL bool HC_CDECL HI_Open_File (HT_Name alter *name,
00476          int file_access_mode,
00477          void **fhandle,
00478          bool create_new_version,
00479          HT_Name alter *message1,
00480          HT_Name alter *message2);
00481 EXTERNAL void HC_CDECL HI_Orthogonalize_Matrix (HT_Matrix alter *matrix);
00482 EXTERNAL HT_Key HC_CDECL HI_Output_Parse (char const *oldspec,
00483          char const *newspec,
00484          HT_Key (*action) (HT_Segment *segment,
00485          HT_Segment *owner,
00486          HT_Subsegment **backlink,
00487          HT_Subsegment *pred,
00488          HT_Name *name,
00489          bool exists,
00490          void *info),
00491          void *info);
00492 EXTERNAL bool HC_CDECL HI_Parse_Color_Map (char const *in_cnames, HT_Color_Map *proto);
00493 EXTERNAL bool HC_CDECL HI_Parse_Color_Map_By_Value (char const *style, int count, HT_Point const *in, HT_Color_Map *proto);
00494 EXTERNAL bool HC_CDECL HI_Parse_Command (HT_File_Data *fdata, char *s, HT_Read_Metafile_Data *irmd);
00495 EXTERNAL bool HC_CDECL HI_Parse_Command2 (HT_File_Data *fdata, char *s, HT_Read_Metafile_Data *irmd);
00496 EXTERNAL void HC_CDECL HI_Parse_Filename (HT_Name alter *name,
00497          HT_Name alter *directory,
00498          HT_Name alter *file,
00499          HT_Name alter *extension);
00500 EXTERNAL bool HC_CDECL HI_Parse_Options (char const *ioptions_string,
00501          HT_Option_Hash_Table *hash_table,
00502          HT_Option_Value **output_listp,
00503          int flags);
00504 EXTERNAL bool HC_CDECL HI_Parse_KOptions (unsigned short const *ioptions_string,
00505          HT_Option_Hash_Table *hash_table,
00506          HT_Option_Value **output_listp,
00507          int flags);
00508 EXTERNAL HT_Path_Token * HC_CDECL HI_Parse_Path (char const *inspec, int flags);
00509 EXTERNAL void HC_CDECL HI_Pause_Errors (int category,
00510          int specific,
00511          int severity,
00512          int msgc,
00513          char const * const * msgv,
00514          int c,
00515          char const * const * v);
00516 EXTERNAL void HC_CDECL HI_Point_On_NURBS_Curve (HT_NURBS_Curve const *curve, float u, HT_Point *fptr);
00517 EXTERNAL void HC_CDECL HI_Propagate_Activity (HT_Segstuff *stuff, HT_Integer32 which);
00518 EXTERNAL void HC_CDECL HI_Propagate_Bounding (HT_Segment *seg, HT_Bounding *bounding, HT_Segment const *transform_seg);
00519 EXTERNAL void HC_CDECL HI_Propagate_Maybes (HT_Segment *seg, HT_Integer32 what);
00520 EXTERNAL void HC_CDECL HI_Propagate_Maybes_Across_Styles (HT_Segment *seg, HT_Integer32 what);
00521 EXTERNAL void HC_CDECL HI_Propagate_Scoped_Activity (HT_Segstuff *stuff, HT_Integer32 which, HT_Rectangle const *scope);
00522 EXTERNAL void * HC_CDECL HI_QAllocate (long islot, HT_Memory_Pool alter *mempool);
00523 EXTERNAL void HC_CDECL HI_QValidate(char const* file, int line, void *p, long size, bool alloc);
00524 EXTERNAL void HC_CDECL HI_QSet_Attribute (char const *sname, HT_Type type, HT_Attribute_Acquisitor_Action acquire, void const *info);
00525 EXTERNAL void HC_CDECL HI_QUnSet_Attribute (char const *sname, int type);
00526 EXTERNAL void HC_CDECL HI_Queue_Keyboard_Event (HT_Driver *source, int button, int status);
00527 EXTERNAL void HC_CDECL HI_Queue_Keyboard_Event_W_Enc (HT_Driver *source, int button, int status, char encoding);
00528 EXTERNAL void HC_CDECL HI_Queue_Location_Event (HT_Driver *source, float x, float y, int status, int action);
00529 EXTERNAL void HC_CDECL HI_Queue_Wakeup_Event (HT_Wakeup *wakeup);
00530 EXTERNAL void HC_CDECL HI_RGB_To_HLS (HT_RGB const *rgb, HT_HLS *hls);
00531 EXTERNAL int HC_CDECL HI_Rank_Polygon (HT_Point const *points, int const *face_list, int const *face_list_end);
00532 EXTERNAL bool HC_CDECL HI_Read_Buffer (HT_File_Data *fdata);
00533 EXTERNAL bool HC_CDECL HI_Read_Directory (void alter *dhandle,
00534          HT_Name alter *filename,
00535          HT_Name alter *message1,
00536          HT_Name alter *message2);
00537 EXTERNAL bool HC_CDECL HI_Read_File_Buffer (void alter *fhandle,
00538          char alter *buffer,
00539          int alter *bytes_read,
00540          int maxbytes,
00541          HT_Name alter *message1,
00542          HT_Name alter *message2);
00543 EXTERNAL void HC_CDECL HI_Read_Metafile (HT_Segment *seg, HT_Metafile *metafile);
00544 EXTERNAL void HC_CDECL HI_Read_Metafile_Attribute (HT_Read_Metafile_Data *rmd, char *metaspec);
00545 EXTERNAL bool HC_CDECL HI_Read_Synched_Buffer (HT_File_Data *fdata);
00546 EXTERNAL int HC_CDECL HI_Read_Version (HT_File_Data *fdata);
00547 EXTERNAL void * HC_CDECL HI_Really_Allocate (long size, bool allow_failure);
00548 EXTERNAL int HC_CDECL HI_Really_Decipher_Color_Type (char const *cp, char const *cpe);
00549 EXTERNAL void HC_CDECL HI_Really_Delete (HT_Anything *thing);
00550 EXTERNAL HT_Driver * HC_CDECL HI_Really_Force_Find_Owner_Driv (char const *segname, HT_Segment **startp);
00551 EXTERNAL HT_Driver * HC_CDECL HI_Really_Force_Find_Path_Driv (int count, HT_Segment **segments, HT_Segment **startp);
00552 EXTERNAL void HC_CDECL HI_Really_Free (void alter *ptr, long size);
00553 EXTERNAL void HC_CDECL HI_Really_Report_Error (int category, int specific, int severity, int msgc, char **msgv, int c, char **v);
00554 EXTERNAL void HC_CDECL HI_Record_Texture_Definition(HT_Segment const *seg, HT_Texture *txr);
00555 EXTERNAL void HC_CDECL HI_Redraw_Attribute (HT_Segment *seg, HT_Type type, HT_Attribute *old_attr, HT_Attribute *new_attr);
00556 EXTERNAL void HC_CDECL HI_Redraw_Downstream (HT_Segstuff *stuff, HT_Integer32 which, const HT_Rectangle *scope);
00557 EXTERNAL void HC_CDECL HI_Redraw_Style (HT_Style *style);
00558 EXTERNAL void HC_CDECL HI_Refigure_Flags (HT_Segment *seg);
00559 EXTERNAL HT_Key HC_CDECL HI_Rename_Segment (HT_Segment *seg,
00560          HT_Segment *newowner,
00561          HT_Subsegment **linker,
00562          HT_Subsegment *pred_subseg,
00563          HT_Name *newname,
00564          bool exists,
00565          void *info);
00566 EXTERNAL void HC_CDECL HI_Reorder_Instances (HT_Subsegment *subsegment, HT_Subsegment *pred);
00567 EXTERNAL void HC_CDECL HI_Report_File_Error (HT_File_Data *fdata);
00568 EXTERNAL void HC_CDECL HI_Report_File_Error_With_Names (HT_File_Data *fdata, HT_Name *mess1, HT_Name *mess2);
00569 EXTERNAL void HC_CDECL HI_Return_Chars (char *out, int outlen, char const *in, int inlen);
00570 EXTERNAL void HC_CDECL HI_Return_Kars (char *out, int outlen, unsigned short const *in, int inlen, char encoding);
00571 EXTERNAL void HC_CDECL HI_Return_Karacters (unsigned short *out, int outlen, unsigned short const *in, int inlen);
00572 EXTERNAL void HC_CDECL HI_Return_Sprintf1 (char *bp, int length, char const *spec, void const *item);
00573 EXTERNAL void HC_CDECL HI_Scale_And_Translate_Matrix (HT_Matrix const *in,
00574          float sx,
00575          float sy,
00576          float sz,
00577          float tx,
00578          float ty,
00579          float tz,
00580          HT_Matrix alter *out);
00581 EXTERNAL char const * HC_CDECL HI_Scan_Boolean (char const **cpp, char const *cpe, bool *resultp);
00582 EXTERNAL char const * HC_CDECL HI_Scan_Float (char const **cpp, char const *cpe, float *resultp);
00583 EXTERNAL char const * HC_CDECL HI_Scan_Integer (char const **cpp, char const *cpe, int *resultp);
00584 EXTERNAL char const * HC_CDECL HI_Scan_Long (char const **cpp, char const *cpe, long *resultp);
00585 EXTERNAL char const * HC_CDECL HI_Scan_Key (char const **cpp, char const *cpe, HT_Key *resultp);
00586 EXTERNAL char const * HC_CDECL HI_Scan_Ptr (char const **cpp, char const *cpe, POINTER_SIZED_INT *resultp);
00587 EXTERNAL char const * HC_CDECL HI_Scan_Name (char const **cpp, char const *cpe, HT_Name *name);
00588 EXTERNAL char const * HC_CDECL HI_Scan_String (char const **cpp, char const *cpe, HT_Name *name);
00589 EXTERNAL char const * HC_CDECL HI_Scan_Generic_Size(HT_Generic_Size *size, char const *options, char const *type); 
00590 EXTERNAL void HC_CDECL HI_Set_And_Clear_Flags (HT_Segment *segment, void *info);
00591 EXTERNAL void HC_CDECL HI_Set_Attribute (HT_Type type, HT_Attribute_Acquisitor_Action acquire, void const *info);
00592 EXTERNAL void HC_CDECL HI_Set_Attribute_On_Node (HT_Anything *node, HT_Type type, HT_Attribute_Acquisitor_Action acquire, void const *info);
00593 EXTERNAL void HC_CDECL HI_Set_Callback (char const *listptr);
00594 EXTERNAL void HC_CDECL HI_Set_Current_Routine_Name (char const *name);
00595 EXTERNAL void HC_CDECL HI_Set_Default_Attributes (void);
00596 EXTERNAL void HC_CDECL HI_Set_Delayed_Activity (HT_Subsegment *subseg,
00597          HT_Integer32 subseg_activity,
00598          HT_Geometry *geometry,
00599          HT_Integer32 geom_activity);
00600 EXTERNAL void HC_CDECL HI_Set_Driver_Options (char const *listptr);
00601 EXTERNAL void HC_CDECL HI_Set_Rendering_Options (char const *listptr);
00602 EXTERNAL void HC_CDECL HI_Set_User_Key (HT_Anything *item, HT_Key key, bool make_it_local);
00603 EXTERNAL void HC_CDECL HI_Set_Visibility (char const *listptr);
00604 EXTERNAL void HC_CDECL HI_Show_Callback (HT_Callback *callback, char *spec, int speclen, void **associated_data);       
00605 EXTERNAL void HC_CDECL HI_Show_Driver_Options (HT_Driver_Options *driver_options, char *listptr, int listlen);
00606 EXTERNAL void HC_CDECL HI_Show_Encoding_Type (char *string, int length, char encoding);
00607 EXTERNAL bool HC_CDECL HI_Show_Environment (char const *which, HT_Name alter *result);
00608 EXTERNAL void HC_CDECL HI_Show_Heuristics (HT_Heuristics *heuristics, char *listptr, int listlen);
00609 EXTERNAL bool HC_CDECL HI_Show_Glyph (HT_Glyph *glyph, char *definition, int deflen);
00610 EXTERNAL bool HC_CDECL HI_Show_Line_Style (HT_Line_Style *line_style, char *definition, int deflen);
00611 EXTERNAL void HC_CDECL HI_Show_Locater_Action (int la, char *type, int typelen);
00612 EXTERNAL char * HC_CDECL HI_Show_Material (char *bp, char *bpe, HT_Named_Material *material, HT_Option_Value const *option, bool parentheses);
00613 EXTERNAL void HC_CDECL HI_Show_Metafile (HT_Metafile *metafile, char *options, int optionslen);
00614 EXTERNAL void HC_CDECL HI_Show_Rendering_Options (HT_Rendering_Options *ropt, char *listptr, int listlen);
00615 EXTERNAL void HC_CDECL HI_Show_Selectability (HT_Selectability *select, char *spec, int speclen);
00616 EXTERNAL void HC_CDECL HI_Show_Text_Alignment (HT_Generic_Onebyte *text_font, char *result, int resultlen);
00617 EXTERNAL void HC_CDECL HI_Show_Text_Font (HT_Text_Font *text_font, char *result, int resultlen);
00618 EXTERNAL bool HC_CDECL HI_Show_Texture (HT_Texture *texture, char *definition, int deflen, bool show_implicit_source, const char *opt);
00619 EXTERNAL void HC_CDECL HI_Show_Type_Name (int itype, char *type, int length);
00620 EXTERNAL void HC_CDECL HI_Show_Visibility (HT_Visibility *vis, char *spec, int speclen);
00621 EXTERNAL void HC_CDECL HI_SinCos (float angle, float *sine, float *cosine);
00622 EXTERNAL void HC_CDECL HI_Sleep (float ticks);
00623 EXTERNAL void HC_CDECL HI_Sort_Options (HT_Option_Value **listp);
00624 EXTERNAL char alter * HC_CDECL HI_Sprintf1 (char alter *bp, char const *bpe, char const *spec, void const *ptr);
00625 EXTERNAL char * HC_CDECL HI_Sprintf4 (char *buf, char const *spec, int int1, int int2, void const *ptr1, void const *ptr2);
00626 EXTERNAL float HC_CDECL HI_Sqrt (float val);
00627 EXTERNAL void HC_CDECL HI_Start_Code_Generation (void);
00628 EXTERNAL void HC_CDECL HI_Start_Hoops (char const *function_name);
00629 EXTERNAL void HC_CDECL HI_Start_System_Specific (void);
00630 EXTERNAL void HC_CDECL HI_Stop_System_Specific (void);
00631 EXTERNAL int HC_CDECL HI_String_Length (char const *start);
00632 EXTERNAL void HC_CDECL HI_Summarize_Edge_Vertex_Flags (HT_Polyhedron *polyhedron);
00633 EXTERNAL void HC_CDECL HI_Summarize_Face_Vertex_Flags (HT_Polyhedron *polyhedron);
00634 EXTERNAL void HC_CDECL HI_Swap_Buffers (HT_File_Data *fdata);
00635 EXTERNAL bool HC_CDECL HI_Synch_File_Buffer (void alter *fhandle,
00636          int alter *bytes,
00637          HT_Name alter *message1,
00638          HT_Name alter *message2);
00639 EXTERNAL void HC_CDECL HI_Table_Insert_Geometry (HT_Segment *seg, HT_Geometry *geometry);
00640 EXTERNAL void HC_CDECL HI_Table_Insert_OO_Geometry (HT_Segment *seg, HT_Geometry *geometry);
00641 EXTERNAL void HC_CDECL HI_Table_Remove_Geometry (HT_Geometry *geometry);
00642 EXTERNAL int HC_CDECL HI_Take_A_Poll (HT_Driver *driver, float now);
00643 EXTERNAL void HC_CDECL HI_Tidy_Up (HT_Camera *cam, HT_Vector *neweye);
00644 EXTERNAL void HC_CDECL HI_Transform_Bounding (HT_Bounding const *inbound, float const *matrixp, HT_Bounding *outbound);
00645 EXTERNAL void HC_CDECL HI_Polygon_Triangle_Collector (HT_VList  *collector, HT_Integer32 v1, HT_Integer32 v2, HT_Integer32 v3); 
00646 EXTERNAL void HC_CDECL HI_Polygon_Merge (HT_VList   *collector);
00647 EXTERNAL bool HC_CDECL HI_Triangulate_Face (HT_Point const *points,
00648          HT_Vector const *normal,
00649          int const *face_list,
00650          int const *face_list_end,
00651          HT_Old_Triangle_Action triangle_action,
00652          void *action_info);
00653 EXTERNAL bool HC_CDECL HI_Triangulate_Face_X (HT_Point const *points,
00654          HT_Vector const *normal,
00655          int const *face_list,
00656          int const *face_list_end,
00657          HT_Triangle_Action triangle_action,
00658          void *action_info);
00659 EXTERNAL void HC_CDECL HI_UnDefine_Colors (char const *string);
00660 EXTERNAL void HC_CDECL HI_UnDefine_Texture (HT_Texture * texture);
00661 EXTERNAL void HC_CDECL HI_UnSet_Attribute (int type);
00662 EXTERNAL void HC_CDECL HI_Update_Driver_Data (void);
00663 EXTERNAL void HC_CDECL HI_Update_Events (void);
00664 EXTERNAL void HC_CDECL HI_Update_Interrupted (void);
00665 EXTERNAL void HC_CDECL HI_Update_Metafiles (void);
00666 EXTERNAL bool HC_CDECL HI_Validate_Face_List (int point_count, int face_list_length, int const *face_list, int *face_countp);
00667 EXTERNAL bool HC_CDECL HI_Validate_Glyph (HT_Glyph * glyph);
00668 EXTERNAL bool HC_CDECL HI_Validate_Line_Style (HT_Line_Style * line_style);
00669 EXTERNAL void HC_CDECL HI_Validate_Inverted_Rasters (HT_Image *image);
00670 EXTERNAL void HC_CDECL HI_Validate_Matrix_Adjoint (HT_Matrix alter *matrix);
00671 EXTERNAL void HC_CDECL HI_Vertex_Complaint (int offset, HT_Polyhedron *polyhedron);
00672 EXTERNAL void HC_CDECL HI_Warning (int category, int specific, char const *buf);
00673 EXTERNAL void HC_CDECL HI_Warning2 (int category, int specific, char const *buf1, char const *buf2);
00674 EXTERNAL void HC_CDECL HI_Warning3 (int category, int specific, char const *buf1, char const *buf2, char const *buf3);
00675 EXTERNAL float HC_CDECL HI_What_Time (void);
00676 EXTERNAL bool HC_CDECL HI_Wild_Equal_Strings (char const *a, char const *p);
00677 EXTERNAL bool HC_CDECL HI_Wing_A_Preceeds_B (HT_Wing *a, HT_Wing *b);
00678 EXTERNAL int HC_CDECL HI_Wings_Intersect (int victim_count, HT_Wing **victims, int aperture_count, HT_Wing **apertures);
00679 EXTERNAL bool HC_CDECL HI_Would_Be_Include_Loop (HT_Segment *owner, HT_Segment *child);
00680 EXTERNAL bool HC_CDECL HI_Write_File_Buffer (void alter *fhandle,
00681          char const *buffer,
00682          int bytes,
00683          HT_Name alter *message1,
00684          HT_Name alter *message2);
00685 EXTERNAL void HC_CDECL HI_Write_Metafile (HT_Segment *seg, HT_Metafile *metafile);
00686 EXTERNAL bool HC_CDECL HI_Compare_Bounding (
00687          HT_Bounding const *b1, 
00688          HT_Bounding const *b2);
00689 EXTERNAL bool HC_CDECL HI_Face_List_From_Tristrips (HT_Shell *shell);
00690 EXTERNAL void HI_Tessellate_NURBS_Surface (
00691          HT_NURBS_Surface const *surf, 
00692          HT_NURBS_Surface_Tessellation_Configs const *configs);
00693 
00694 
00695 EXTERNAL void HC_CDECL HI_Free_Region_Set (
00696         HT_UV_Region_Set *set);
00697 EXTERNAL HT_UV_Region_Set * HC_CDECL HI_Generate_Convex_Region_Set (
00698         int count,
00699         HT_UV_Point const *points);
00700 EXTERNAL HT_UV_Region_Set * HI_Generate_Complex_Region_Set (
00701         int point_count,
00702         HT_UV_Point const *points,
00703         int face_list_length,
00704         int const * face_list,
00705         bool no_merge);
00706 EXTERNAL HT_UV_Region_Set * HC_CDECL HI_Generate_Polygonal_Region_Set (
00707         int count,
00708         HT_UV_Point const *points,
00709         bool no_merge);
00710 EXTERNAL HT_UV_Region_Set * HC_CDECL HI_Generate_Rectangular_Regions (
00711         float start_u,
00712         float end_u,
00713         float start_v,
00714         float end_v,
00715         int u_divisions,
00716         int v_divisions);
00717 EXTERNAL void HC_CDECL HI_Subtract_Region_From_Region_Set (
00718         HT_UV_Region_Set *set,
00719         HT_UV_Region_Set *removal_set); /* const */
00720 EXTERNAL void HC_CDECL HI_Convert_Regions_To_Facelist (
00721         HT_UV_Region_Set const *set,
00722         int **listptr, 
00723         int *length,
00724         int *count);
00725 EXTERNAL bool HC_CDECL HI_Get_Char (HT_File_Data *fdata, char c);
00726 EXTERNAL bool HC_CDECL HI_Peek_Char (HT_File_Data *fdata, char c);
00727 EXTERNAL void HC_CDECL HI_Delete_Trim (HT_UV_Trim *node);
00728 
00729 
00730 EXTERNAL void HC_CDECL HI_Not_When_LOD (void);
00731 EXTERNAL void HC_CDECL HI_Resort_Tristrips (HT_Polyhedron *polyhedron, int region);
00732 EXTERNAL void HC_CDECL HI_Delete_Shell_Selection_Cache (void *cache);
00733 EXTERNAL void HC_CDECL HI_Delete_Intersect_Polyline_Cache (void *cache);
00734 EXTERNAL void HC_CDECL HI_Show_Shell_Selection_Profile (char *results);
00735 EXTERNAL void *HC_CDECL HI_New_Point_Inside_Shell_Cache (void);
00736 EXTERNAL void HC_CDECL HI_Delete_Point_Inside_Shell_Cache (void *cache);
00737 
00738 EXTERNAL HT_PolyCylinder_Attributes * HC_CDECL HI_Initialize_PCA_Vertex_Attributes (
00739                         HT_PolyCylinder alter * pc, unsigned char which);
00740 
00741 EXTERNAL void HC_CDECL HI_Enumerate_Region_Set_Edges (
00742         HT_UV_Region_Set const *set,
00743         int alter *count,
00744         HT_UV_Edge alter ***edges);
00745 EXTERNAL void HC_CDECL HI_Split_Region_Set_Edge (
00746         HT_UV_Region_Set alter *set,
00747         HT_UV_Edge alter *edge,
00748         int *count,
00749         HT_UV_Edge alter ***edges);
00750 EXTERNAL void HC_CDECL HI_Midpoint_Split_Triangle (
00751         HT_UV_Region_Set alter *set,
00752         HT_UV_Region alter *region,
00753         int alter *affected_count_out, 
00754         HT_UV_Region alter ***affected_regions_out);
00755 EXTERNAL void HC_CDECL HI_Triangulate_Region (
00756         HT_UV_Region_Set alter *set,
00757         HT_UV_Region alter *region);
00758 EXTERNAL void HC_CDECL HI_Midpoint_Split_One_Triangle (
00759         HT_UV_Region_Set alter *set,
00760         HT_UV_Edge alter *edge,
00761         int *count,
00762         HT_UV_Edge alter ***edges);
00763 EXTERNAL HT_UV_Region_Set * HC_CDECL HI_Generate_Triangular_Regions (
00764         float           start_u,
00765         float           end_u,
00766         float           start_v,
00767         float           end_v,
00768         int             u_divisions,
00769         int             v_divisions);
00770 EXTERNAL void HC_CDECL HI_Get_UV_Region_Triangle (
00771         HT_UV_Region_Set alter *set,
00772         HT_UV_Region alter *region,
00773         HT_UV_Edge alter **a,
00774         HT_UV_Edge alter **b,
00775         HT_UV_Edge alter **c);
00776 
00777 EXTERNAL int HI_Compute_Intersect_Polyline (
00778         int point_count1, 
00779         HT_Point const *points1, 
00780         int face_list_length1, 
00781         int const *face_list1,
00782         int point_count2, 
00783         HT_Point const *points2, 
00784         int face_list_length2, 
00785         int const *face_list2,
00786         int alter *polyline_count,
00787         int alter *polyline_lengths,
00788         int alter *polyline_point_count,
00789         HT_Point alter *polyline_points,
00790         bool save_result);
00791 
00792 
00793 EXTERNAL bool HI_Compute_Point_Inside_Shell (
00794         HT_Point const *pt, 
00795         int point_count, 
00796         HT_Point const *points, 
00797         int face_list_length, 
00798         int const *face_list);
00799 
00800 EXTERNAL bool HI_Compute_Point_On_Shell (
00801         HT_Point const *pt, 
00802         double tolerance, 
00803         int point_count, 
00804         HT_Point const *points, 
00805         int face_list_length, 
00806         int const *face_list);
00807 
00808 EXTERNAL void HI_Compute_Points_Inside_Shell (
00809         int pcount,
00810         HT_Point const *pt, 
00811         HT_Point const *pt_vector, 
00812         int point_count, 
00813         HT_Point const *points, 
00814         int face_list_length, 
00815         int const *face_list,
00816         char const *options,
00817         int *result
00818         
00819         );
00820 
00821 EXTERNAL int HI_Compute_Points_On_Shell (
00822         int pcount,
00823         HT_Point const *pt, 
00824         double tolerance, 
00825         int point_count, 
00826         HT_Point const *points, 
00827         int face_list_length, 
00828         int const *face_list,
00829         int *result     
00830         );
00831 EXTERNAL int HI_Compute_Points_Shell_Distance (
00832         int pcount,
00833         HT_Point const *pt, 
00834         double tolerance, 
00835         int point_count, 
00836         HT_Point const *points, 
00837         int face_list_length, 
00838         int const *face_list,
00839         float *result       
00840         );
00841 
00842 EXTERNAL void HI_Accumulate_Segment_Bounding (
00843         HT_Segment const *seg, HT_Bounding *bounding, HT_Matrix const *matrix,
00844         HT_Integer32 start_vis,HT_Integer32 flags);
00845 
00846 EXTERNAL void HI_Reset_Strip_Flags (    
00847         HT_Polyhedron * polyhedron);
00848 
00849 EXTERNAL void HI_Reset_Driver_Config_SS (void);
00850 
00851 EXTERNAL void HI_Fake_NURBS_Surface_Configs (
00852         HT_NURBS_Surface_Tessellation_Configs alter *configs);
00853 EXTERNAL void HC_CDECL HI_Compute_Transformed_Points (
00854         int count,
00855         HT_Point const *points,
00856         float const *matp,
00857         HT_Point *result);
00858 EXTERNAL void HC_CDECL HI_Compute_Transformed_Vectors (
00859         int count,
00860         HT_Vector const *vectors,
00861         float const *matp,
00862         HT_Vector *result);
00863 EXTERNAL bool HI_Add_Geometry_Bounding (
00864         HT_Geometry const * geometry,
00865         HT_Modelling_Matrix const * matrix,
00866         HT_Integer32 visibility,
00867         HT_Attribute_Lock *locks,
00868         HT_Integer32 flags,
00869         HT_Bounding * bounding);
00870 EXTERNAL bool HI_Accumulate_Bounding_Attributes (
00871         HT_Attribute * attribute,
00872         HT_Modelling_Matrix ** net,
00873         HT_Integer32 * visibility,
00874         HT_Attribute_Lock * locks,
00875         unsigned int alter * conditions,
00876         HT_HFSB_Flags may_ignore);
00877 EXTERNAL void HI_Compute_Polyhedron_LOD(
00878         HT_Polyhedron *phon, 
00879         int start_depth,
00880         int maxdepth,
00881         HT_LOD_Flags algorithm,
00882         float ratio,
00883         bool collapse_vertices,
00884         int min_triangle_count,
00885         int max_degree);
00886 
00887 EXTERNAL void HC_CDECL HI_Compute_LOD(
00888         HT_LOD_Flags algorithm,
00889         float ratio,
00890         bool collapse_vertices,
00891         int pcount, const float *points,
00892         int flistlen, const int *flist,
00893         int *pcount_out, float *points_out, 
00894         int *flistlen_out, int *flist_out,
00895         int *vertex_mapping, int *face_mapping);
00896 
00897 EXTERNAL void HI_Clean_Display_Lists (
00898         HT_Subsegment       *node,
00899         HT_Driver       *driver);
00900 
00901 EXTERNAL void HI_Clean_Display_List (
00902         HT_Driver       *driver,
00903         HT_Display_List  **display_list,
00904         bool free_it);  
00905 
00906 EXTERNAL HT_Image * HI_Create_Spotlight_Image(
00907         int res,
00908         float inner_radius_ratio);
00909 
00910 EXTERNAL void HI_Free_Selection_Item(
00911         HT_Selection_Item *);
00912 EXTERNAL HT_Selection_Item *HI_Selection_Item_Heap_Pop(
00913         HT_Selection_Item_Heap *);
00914 
00915 EXTERNAL float const *HI_Get_Sin72_Lookup(void);
00916 EXTERNAL float const *HI_Get_Cos72_Lookup(void);
00917 
00918 EXTERNAL bool HI_Parse_Condition (char const * string, HT_Conditional alter * conditional);
00919 EXTERNAL void HI_Show_Conditional (HT_Conditional const * conditional, char alter * list, int listlen);
00920 EXTERNAL void HI_Copy_Conditional (HT_Conditional const * in, HT_Conditional alter * out);
00921 EXTERNAL void HI_Free_Conditional (HT_Conditional alter * cond);
00922 EXTERNAL void HI_Show_Conditions (HT_Conditions *conditions, char *options, int optionslen);
00923 
00924 EXTERNAL HT_Include * HC_CDECL HI_Create_Include (
00925     HT_Segment * ref,
00926     HT_Segment * newowner,
00927     HT_Conditional *condition);
00928 
00929 EXTERNAL HT_Geometry_Reference * HC_CDECL HI_Create_Reference (
00930     HT_Segment * ref,
00931     HT_Segment * newowner,
00932     HT_Conditional *condition);
00933 
00934 EXTERNAL void HC_CDECL HI_Transform_Points_43 (
00935     int                             count,
00936     HT_Point const *            input,
00937     float const *                   transform,
00938     HT_Point alter *            output);
00939 EXTERNAL void HC_CDECL HI_Transform_Points_44 (
00940     int                             count,
00941     HT_Point const *            input,
00942     float const *                   transform,
00943     float                           wlimit,
00944     HT_Point alter *            output,
00945     float alter *                   ws);
00946 
00947 EXTERNAL void HC_CDECL HI_Free_Tristrip (HT_Tristrip alter *ts);
00948 EXTERNAL void HC_CDECL HI_Free_Polyedge (HT_Polyedge alter *pe);
00949 
00950 
00951 EXTERNAL HT_Error_Control ** HC_CDECL HI_Lookup_Error_Control (
00952     HT_Error_Control     ** linker,
00953     int                 category,
00954     int                 specific);
00955 
00956 EXTERNAL HT_Driver_Config * HC_CDECL HI_Lookup_Driver_Config(
00957     char const      *driver,
00958     char const      *id,
00959     char const      *version,
00960     bool            create,
00961     HT_XBits        const *xbits); 
00962 
00963 
00964 EXTERNAL void HC_CDECL HI_Free_Driver_Config(
00965         HT_Driver_Config *cfg); 
00966 
00967 EXTERNAL HT_Driver_Config * HC_CDECL HI_Clone_Driver_Config(
00968         HT_Driver_Config *cfg); 
00969 
00970 EXTERNAL void HC_CDECL HI_Radix_Sort_8(float *farray, float *sorted, void** input_void, void** temp_void, HT_Integer32 element_size, unsigned long elements, bool ascending);
00971 EXTERNAL void HC_CDECL HI_Radix_Sort_11(float *farray, float *sorted, void** input_void, void** temp_void, HT_Integer32 element_size, unsigned long elements, bool ascending);
00972 EXTERNAL void HC_CDECL HI_Sort_Array(unsigned long count, float* priorities, void** array, int es, bool ascending);
00973 
00974 EXTERNAL void  HC_CDECL HI_Queue_Selection_Event (char const *locater_name, char const *display_name, char const *action_name,
00975          int status, char const *segment_name, HT_Key item_key,
00976          int offset1, int offset2, int offset3, double xw, double yw, double zw, double xc, double yc,
00977          double zc, HT_Selection_Event_CD  *extra);
00978 
00979 
00980 EXTERNAL void HC_CDECL HI_Show_Color (HT_Color  *color, char *icname, int cnamelen);
00981 EXTERNAL HT_Key HC_CDECL HI_Copy_Segment (
00982     HT_Segment      *oldseg,
00983     HT_Segment      *newowner,
00984     HT_Subsegment       **linker,
00985     HT_Subsegment       *pred_subseg,
00986     HT_Name         *newname,
00987     bool                exists,
00988     void                    *info);
00989 EXTERNAL HT_Attribute * HC_CDECL HI_Clone_Attributes (
00990     HT_Attribute const *    old_attr,
00991     HT_Segment const *  new_owner,
00992     bool                    multiple,
00993     void *                      passthru);
00994 
00995 EXTERNAL void HC_CDECL HI_Reverse_Shell_Edges (
00996     HT_Shell const              *shell,
00997     HT_Edge_Geometry_Info alter  *segde,             
00998     HT_Edge_Geometry_Info alter  **egde_ot_xetrev); 
00999 
01000 EXTERNAL void HC_CDECL HI_Make_RLE_Stencil(HT_Stencil_Bitmap * stencil);
01001 EXTERNAL void HC_CDECL HI_Cleanup_Stencil(HT_Stencil_Bitmap * stencil, bool free_it);
01002 EXTERNAL HT_Stencil_Bitmap *HC_CDECL  HI_Clone_Stencil(HT_Stencil_Bitmap const* stencil);
01003 EXTERNAL void HC_CDECL HI_Init_Stencil_Cache(void); 
01004 EXTERNAL void HC_CDECL HI_Free_Stencil_Cache(void);
01005 EXTERNAL void HC_CDECL HI_Clean_Stencil_Cache (HT_Font_Instance const *instance);
01006 EXTERNAL HT_Stencil_Bitmap **HC_CDECL  HI_Get_Stencil_Cache (
01007     HT_Font_Instance const *instance,
01008     int                     height, 
01009     int                     bolding_level,
01010     float                   slant, 
01011     float                   rotation,
01012     float                   width_scale,
01013     bool                antialias);
01014 EXTERNAL HT_Stencil_Bitmap * HC_CDECL HI_Lookup_Stencil(
01015     HT_Stencil_Bitmap   **stencil_cache, 
01016     unsigned short      mapped_index);
01017 EXTERNAL void HC_CDECL  HI_Store_Stencil(
01018     HT_Stencil_Bitmap   **stencil_cache, 
01019     HT_Stencil_Bitmap   *stencil);
01020 EXTERNAL int HC_CDECL HI_Get_Stencil_Cache_Height (int height, bool is_transformed);
01021 EXTERNAL bool HC_CDECL HI_Check_Texture_Syntax (char const *texture_string);
01022 
01023 EXTERNAL bool HI_Fast_Lookup_Available (HT_Segment const * owner, bool prioritized);
01024 EXTERNAL void HC_CDECL HI_Create_Fast_Lookup (HT_Segment alter * owner, bool prioritized);
01025 EXTERNAL void HC_CDECL HI_Destroy_Fast_Lookups (HT_Segment alter * owner);
01026 EXTERNAL HT_Segment * HC_CDECL HI_Find_Fast_Lookup_Segment (HT_Segment alter * owner, char const * name);
01027 EXTERNAL void HC_CDECL HI_Add_Fast_Lookup_Item (HT_Segment alter * owner, bool prioritized, HT_Subsegment * item);
01028 EXTERNAL void HC_CDECL HI_Remove_Fast_Lookup_Item (HT_Segment alter * owner, bool prioritized, HT_Subsegment * item);
01029 EXTERNAL HT_Subsegment * HC_CDECL HI_Find_Fast_Lookup_Predecessor (HT_Segment alter * owner, bool prioritized, HT_Subsegment * item, char const * name);
01030 EXTERNAL void HC_CDECL HI_Show_Fast_Lookup_Priority_Range (HT_Segment *seg, long *low, long *high);
01031 
01032 EXTERNAL HT_Texture_Control_List * HC_CDECL HI_New_Diffuse_Channel(HT_Texture alter *texture);
01033 EXTERNAL HT_Texture_Control_List *HC_CDECL HI_Copy_Diffuse_Channel_List (HT_Texture_Control_List const *diffuse);
01034 EXTERNAL void HC_CDECL HI_Free_Diffuse_Channel_List (HT_Texture_Control_List alter *diffuse);
01035 EXTERNAL HT_Texture_Control_List *HC_CDECL HI_Mix_Diffuse_Channels (HT_Texture_Control_List const *oldlist, HT_Texture_Control_List const *newlist);
01036 EXTERNAL void HC_CDECL HI_Median_Cut (int in_count, HT_Point const * n_points, HT_RGB const * in_colors,
01037                              int out_count, HT_Point alter * out_points, HT_RGB alter * out_colors,
01038                              int alter * mapping);
01039 
01040 EXTERNAL HT_PolyCylinder * HC_CDECL HI_Cylinder_To_PolyCylinder (HT_Cylinder const *cylinder);
01041 
01042 EXTERNAL void HC_CDECL HI_Adjust_Vertex_Attributes (HT_Shell * shell, int offset, int ndelete, int insert);
01043 EXTERNAL void HC_CDECL HI_Adjust_Vertex_To_Edge (HT_Shell * shell, int offset, int ndelete, int insert);
01044 EXTERNAL void HC_CDECL HI_Adjust_Face_Attributes (HT_Shell * shell, int offset, int ndelete, int insert);
01045 EXTERNAL void HC_CDECL HI_Repair_Shell_Edges (HT_Shell * shell);
01046 EXTERNAL void HC_CDECL HI_Convert_To_Shell (
01047     char const *options,
01048     HT_Geometry const *geom, 
01049     HT_Shell alter **shellptr,
01050     HT_Shell alter **kill_me);
01051 EXTERNAL bool HI_Process_NURBS_Surface_Options (
01052     HT_Option_Value const *type_values,
01053     HT_Rendering_Options alter *ropt);
01054 EXTERNAL void HC_CDECL HI_Set_Priority (HT_Anything *thing, long priority);
01055 EXTERNAL void HC_CDECL HI_Bring_To_Front (HT_Anything *thing);
01056 EXTERNAL  void HC_CDECL HI_Delete_Specific_Shell_Faces (
01057     HT_Shell alter *shell,
01058     int count,
01059     int const *indices);
01060 
01061     
01062 EXTERNAL HT_Stencil_Bitmap * HI_W32_make_font_stencil (
01063     HT_Font_Instance const  *instance,
01064     unsigned short          kar,
01065     int                     in_bitmap_height,
01066     int                     bolding_level,
01067     float                   xrslant,
01068     float                   xrrotation,
01069     float                   xrwidth,
01070     bool                antialias);
01071 
01072 EXTERNAL bool HI_W32_measure_char_stenciled(
01073      HT_Net_Rendition const *nr,
01074      HT_Font_Instance const * instance,
01075      HT_Karacter kar,
01076      float alter *size_out,
01077      bool alter *kar_missing,
01078      void ** per_kar_data);
01079 
01080 EXTERNAL void HI_W32_unload_font_stenciled (
01081      HT_Display_Context const * dc, 
01082      HT_Font_Instance alter * instance);
01083 
01084 EXTERNAL void * HI_W32_load_font_stenciled(
01085      HT_Display_Context const   *dc,
01086      char const                         *name,
01087      HT_Font_Instance alter     *instance,
01088      void *                             hDC,
01089      HT_Log_Font_Item           **local_font_list,
01090      HT_Log_Font_Item           **system_font_list);
01091 
01092 EXTERNAL void HI_W32_find_all_fonts (
01093      HT_Display_Context alter   *dc,
01094      HT_Log_Font_Item           **local_font_list,
01095      HT_Log_Font_Item           **system_font_list);
01096 
01097 EXTERNAL bool HI_W32_find_one_font (
01098      HT_Display_Context alter   *dc,
01099      char const                         *in_name,
01100      void *                             hDC,
01101      HT_Log_Font_Item           **local_font_list,
01102      HT_Log_Font_Item           **system_font_list);
01103 
01104 EXTERNAL void HI_W32_find_basic_fonts (
01105      HT_Display_Context alter   *dc,
01106      void * const                       hDC,
01107      HT_Log_Font_Item           **local_font_list,
01108      HT_Log_Font_Item           **system_font_list);
01109 
01110 EXTERNAL bool HI_W32_name_font(
01111     HT_Net_Rendition const      *nr,
01112     HT_Font_Name const          *font_name_in,
01113     HT_Font_Name alter          *font_name_out);
01114 
01115 EXTERNAL HT_Log_Font_Item alter *HI_W32_find_font (
01116     HT_Log_Font_Item        *list,
01117     const char                  *name);
01118 
01119 EXTERNAL bool HC_CDECL HI_Condition_Passed (
01120     unsigned int const *known_conditions, HT_Conditional const *condition);
01121 
01122 EXTERNAL int HI_Generate_Elliptical_Points (
01123     HT_Generic_Arc const *curve, int count, HT_Point alter *ipl);
01124 
01125 EXTERNAL bool HI_Test_Ray_BBox (
01126     float const *bbox,
01127     float const *start,
01128     float const *direction);
01129 
01130 EXTERNAL int HI_Split_Point_Lookup (HT_Polyhedron const * polyhedron, int vertex, int face);
01131 EXTERNAL int HI_Split_Point_Original (HT_Polyhedron const * polyhedron, int vertex);
01132 
01133 EXTERNAL void HI_Invalidate_Display_Lists (HT_Geometry alter * geometry);
01134 EXTERNAL void HI_Free_Convex_Clip_Region (HT_Convex_Clip_Region alter *cr);
01135 EXTERNAL bool HI_Compute_Camera_Min_Max (
01136         HT_Matrix const *nmm, 
01137         HT_Camera const *cam, 
01138         HT_Segment const *seg,
01139         HT_Bounding const *bounding_in,
01140         float alter *minz_out, 
01141         float alter *maxz_out);
01142 
01143 EXTERNAL void HI_Ensure_Definition_Set(void);
01144 
01145 EXTERNAL float HI_Make_Attribute_Tree (HT_Subsegment const * root);
01146         
01147 EXTERNAL void HI_Invalidate_Segment_Display_Lists(HT_Segment *seg, int type);
01148 
01149 EXTERNAL bool HI_Get_Display_List(HT_Driver const *driver,
01150     HT_Display_List alter **linker, HT_Display_List alter **out);
01151 
01152 EXTERNAL bool HI_Named_Materials_Equal (HT_Named_Material const * first, HT_Named_Material const * second);
01153 
01154 EXTERNAL void HI_Flush_Color_Material_Lookup(HT_VHash **color_material_lookup);
01155 
01156 EXTERNAL void HI_Flush_Seg_Path_Lookup(void);
01157 
01158 EXTERNAL void HI_Clear_Image_Cache (HT_Image alter *image);
01159 EXTERNAL void HI_Delete_Instance (HT_Instance alter *instance);
01160 
01161 EXTERNAL HT_Memory_Pool alter * HI_Create_Memory_Pool(void);
01162 EXTERNAL void HI_Destroy_Memory_Pool(HT_Memory_Pool alter * pool);
01163 
01164 
01165 EXTERNAL void HI_LOD_Execute(
01166     int plist_len, const float *plist,
01167     int flist_len, const int *flist, 
01168     HT_MxConfig *cfg_ptr,                                   /* pass NULL for all default values */
01169     int *plist_len_out, float *plist_out, 
01170     int *flist_len_out, int *flist_out, 
01171     int *pointmap     
01172 );
01173 
01174 EXTERNAL HT_MxShellChain *HI_LOD_Chain_Execute_Tristrips(
01175     int point_count, const float *points,
01176     const HT_Tristrip *t,
01177     HT_MxConfig *cfg_ptr,                                   /* pass NULL for all default values */
01178     int depth
01179 );
01180 
01181 EXTERNAL HT_MxShellChain *HI_Compute_LOD_Fast(
01182     int pcount,
01183     const float *points,
01184     int flen, 
01185     const int *faces,
01186     float ratio,
01187     int depth 
01188 );
01189 
01190 EXTERNAL HT_MxShellChain *HI_Compute_LOD_Tristrips_Fast(
01191     int pcount,
01192     const float *points,
01193     const HT_Tristrip *t,
01194     float ratio,
01195     int depth 
01196 );
01197 
01198 EXTERNAL void HC_CDECL HI_Show_Geometry_Options (
01199     HT_Geometry const *     geo,
01200     char alter *            list,
01201     int                     listlen
01202 );
01203 
01204 EXTERNAL double HC_CDECL HI_Vector_Length (
01205     HT_Vector const *       in
01206 );
01207 
01208 EXTERNAL void HC_CDECL HI_Offaxis_Rotation (
01209     double                  x,
01210     double                  y,
01211     double                  z,
01212     double                  angle,
01213     float alter             *matp
01214 );
01215 
01216 #define HI_PROTO_DEFINED 1
01217 #endif /* HI_PROTO_DEFINED */
Main Index
HOOPS/3dGS I.M. Interface

     << Back      Full Index      Forward >>