29 enum HFileOutputResult;
35 class HStreamFileToolkit;
41 H_OUTPUT_TYPE_DEFAULT = 0,
42 H_PDF_OUTPUT_PORTFOLIO,
46 H_SINGLE_PASS_NO_HIDDEN_SURFACES
53 #define HInputOpNone (1UL<<0)
58 #define HInputOpFileInputByKey (1UL<<1)
63 #define HInputOpFileInputToImageKey (1UL<<2)
68 #define HOutputOpNone (1UL<<0)
73 #define HOutputOpFileOutputByKey (1UL<<1)
78 #define HOutputOpFileOutputFromImageKey (1UL<<2)
85 #define HIORegisterInputType(type,input_object) HIOManager::GetCurrentHIOManager()->RegisterInputHandler(type, input_object);
90 #define HIORegisterOutputType(type,output_object) HIOManager::GetCurrentHIOManager()->RegisterOutputHandler(type, output_object);
108 virtual void Notice(
const char * notice) = 0;
109 virtual void Notice(
const __wchar_t * notice) {
110 UNREFERENCED(notice);
112 #ifdef H_USHORT_OVERLOAD
113 virtual void Notice(
const unsigned short * notice) {
114 Notice((__wchar_t
const *) notice);
130 virtual void Notice(
float notice) =0;
137 typedef void * (*HIO_CREATE_FREE_FUNCTION)(
void *);
163 virtual HC_KEY GetHoopsEntity(
void * pKernelEntity);
164 virtual HC_KEY GetHoopsEntity(
void * pKernelEntity,
HC_KEY modelKey);
173 virtual void * GetKernelEntity(
HC_KEY key);
174 virtual void * GetKernelEntity(
HC_KEY key,
HC_KEY modelKey);
182 virtual bool GetHoopsEntities(
void * pKernelEntity, vlist_s *ret_HoopsKeysList);
183 virtual bool GetHoopsEntities(
void * pKernelEntity, vlist_s *ret_HoopsKeysList,
HC_KEY modelKey);
191 virtual bool GetKernelEntities(
HC_KEY key, vlist_s *ret_KernelEntitiesList);
192 virtual bool GetKernelEntities(
HC_KEY key, vlist_s *ret_KernelEntitiesList,
HC_KEY modelKey);
199 virtual void AddConnection(
HC_KEY key,
void* pKernelEntity);
200 virtual void AddConnection(
HC_KEY key,
void* pKernelEntity,
HC_KEY modelKey);
209 virtual void OptimizeTree(
const char * segname,
const char * option_string);
265 m_bIgnoreOffEntities =
false;
268 m_bImportMetadata =
false;
271 m_bLegacyOptimize =
false;
272 m_bDwgSkipUnreferencedBlocks =
false;
275 m_iDGNCellHeaderOption = SINGLE_ENTITY_CELLHEADER;
277 m_factorForSmartSolids = 45.0;
278 m_bDGNRebaselineModel =
false;
279 m_bDGNImportAllModels =
false;
282 m_pPRCPMIConnector = 0;
283 m_pPRCTopologyManager = 0;
284 m_bPRCMergeFaces =
false;
285 m_bPRCImportNonBrepFaces =
true;
286 m_bPRCCreatePRCFileOnly =
false;
287 m_bPRCInstanceShells =
true;
288 m_bPRCCalculatePhysicalProperties =
false;
289 m_pPRCMultiModelSelectionCallback = 0;
290 m_pPRCAsmModelFile = 0;
291 m_pPRCDeleteModelFile =
false;
292 m_bPRCStoreUserAttributes =
true;
293 m_pPRCDeleteModelCallback = 0;
294 m_bPRCImportHiddenObjects =
false;
295 m_bPRCLoadAsDrawings =
false;
296 m_PRCModelUnits = 0.0f;
299 m_bDisableDWFDrawOrder =
false;
300 m_bDWFRebaselineModel =
true;
301 m_bImportThumbnail =
false;
304 m_bForceRenderedModeColors =
false;
307 m_bOptimizeSegmentTree =
false;
310 m_pOOCNodeDeltas = 0;
311 m_bOOCAutoUpdate =
true;
312 m_bOOCAutoCleanup =
true;
314 m_attributePrecisionMode = FORCE_FLOAT;
317 m_generatedDouble =
false;
319 m_bIsTestingSettings =
false;
325 m_z_separation = o->m_z_separation;
358 m_bPRCImportNonBrepFaces = o->m_bPRCImportNonBrepFaces;
361 m_bPRCInstanceShells = o->m_bPRCInstanceShells;
362 m_bPRCCalculatePhysicalProperties = o->m_bPRCCalculatePhysicalProperties;
398 m_z_separation = o.m_z_separation;
428 m_bPRCImportNonBrepFaces = o.m_bPRCImportNonBrepFaces;
430 m_bPRCInstanceShells = o.m_bPRCInstanceShells;
431 m_bPRCCalculatePhysicalProperties = o.m_bPRCCalculatePhysicalProperties;
533 bool m_bPRCImportNonBrepFaces;
537 bool m_bPRCInstanceShells;
539 bool m_bPRCCalculatePhysicalProperties;
541 void (*m_pPRCMultiModelSelectionCallback) (
char const * in_container,
int in_num_configs,
char const * in_configs[],
542 int & out_config_selection);
546 void (*m_pPRCDeleteModelCallback) (
void*& pPRCAsmModelFile);
603 double m_z_separation;
678 virtual const char * GetInputName() = 0;
687 virtual void RegisterInputHandlerTypes() = 0;
704 virtual HFileInputResult FileInputByKey(
const char * filename, HC_KEY key,
HInputHandlerOptions * options);
705 virtual HFileInputResult FileInputByKey(
const __wchar_t * filename, HC_KEY key,
HInputHandlerOptions * options);
716 virtual HFileInputResult FileInputByKey(
const unsigned short * filename, HC_KEY key,
HInputHandlerOptions * options);
728 virtual HFileInputResult FileInputToImageKey(
const char * filename, HC_KEY * image_key, HC_KEY segment_key,
HInputHandlerOptions * options);
729 virtual HFileInputResult FileInputToImageKey(
const __wchar_t * filename, HC_KEY * image_key, HC_KEY segment_key,
HInputHandlerOptions * options);
741 virtual HFileInputResult FileInputToImageKey(
const unsigned short * filename, HC_KEY * image_key, HC_KEY segment_key,
HInputHandlerOptions * options);
755 virtual const char * GetInputTypesString() = 0;
760 const __wchar_t * GetInputProgress();
765 float GetInputPercentProgress();
770 const __wchar_t * GetInputInformation();
798 void ReportInputProgress(
const char * progress);
799 void ReportInputProgress(
const __wchar_t * progress);
802 void ReportInputPercentProgress(
float percent_progress);
805 void ReportInputInformation(
const char * information);
806 void ReportInputInformation(
const __wchar_t * information);
808 void SetModuleDirectory(
const char *module_directory);
809 void SetModuleDirectory(
const __wchar_t *module_directory);
816 void SetStartingInput(
const char *filename);
817 void SetStartingInput(
const __wchar_t *filename = 0);
822 void SetFinishedInput();
828 unsigned long m_InputOps;
830 __wchar_t *m_module_directory;
833 __wchar_t *m_progress;
834 float m_percent_progress1;
835 float m_percent_progress2;
836 __wchar_t *m_information;
837 struct vlist_s *m_information_list;
848 HOutputHandlerStyleModel,
869 H_FORMAT_TEXT lookup(
HC_KEY)
const;
870 void tag(
HC_KEY, H_FORMAT_TEXT
const &);
898 virtual char const * GetType()
const;
902 virtual bool PopulateOptions();
945 void Camera(
HCamera *
const c) {m_pCamera = c;};
952 void Key(HC_KEY
const k) {m_Key = k;};
955 char const * m_pHSRAOptions;
962 HPoint const * m_pWindowColor;
969 bool m_bUseWindowColor;
976 float m_Window_Width;
983 float m_Window_Height;
997 float m_Paper_Height;
1004 bool m_ForceGrayscale;
1008 void ForceGrayscale(
bool const tf) {m_ForceGrayscale = tf;};
1011 size_t m_lineFuseThreshold;
1021 void LineFuseThreshold(
size_t const tf) {m_lineFuseThreshold = tf;};
1028 void FastPrint(
bool const tf) {m_bFastPrint = tf;};
1031 bool m_bConserveMemory;
1037 bool m_bWriteAnimations;
1038 bool WriteAnimations()
const {
return m_bWriteAnimations;};
1039 void WriteAnimations(
bool const tf) {m_bWriteAnimations = tf;};
1042 bool m_bWindowFrame;
1049 bool m_bUseSubscreen;
1060 void ImageDpi(
int const dpi) {m_Image_Dpi = dpi;};
1070 void * m_pExtendedData;
1071 void *
const ExtendedData()
const {
return m_pExtendedData;};
1072 void ExtendedData(
void *
const vp) {m_pExtendedData = vp;};
1073 void ExtendedData(HPDFOptions *
const vp) {m_pExtendedData = (
void*)vp;};
1075 bool ActivateOnPageOpen()
const {
return m_bActivateOnPageOpen;};
1076 void ActivateOnPageOpen(
bool onoff) {m_bActivateOnPageOpen = onoff;};
1077 float const AnnotLeft()
const {
return m_fAnnotLeft;};
1078 void AnnotLeft(
float f) {m_fAnnotLeft = f;};
1079 float const AnnotRight()
const {
return m_fAnnotRight;};
1080 void AnnotRight(
float f) {m_fAnnotRight = f;};
1081 float const AnnotBottom()
const {
return m_fAnnotBottom;};
1082 void AnnotBottom(
float f) {m_fAnnotBottom = f;};
1083 float const AnnotTop()
const {
return m_fAnnotTop;};
1084 void AnnotTop(
float f) {m_fAnnotTop = f;};
1088 const char *m_license;
1090 int m_antialiasLevel;
1092 unsigned char* m_imageOutputBuffer;
1093 size_t m_imageOutputBufferSize;
1100 int const Version()
const {
return m_Version;};
1101 void Version(
int const v) {m_Version = v;};
1104 H_OUTPUT_TYPE m_OutputType;
1122 void Ascii(
bool const tf) {m_bAscii = tf;};
1132 double m_ratio_cm_to_internal_units;
1162 float m_PageMargins[4];
1226 char m_bAVICodec[4];
1264 virtual const char * GetOutputName() = 0;
1282 virtual void RegisterOutputHandlerTypes() = 0;
1292 virtual HFileOutputResult FileOutputByKey(
const char * filename, HC_KEY key,
HOutputHandlerOptions * options);
1293 virtual HFileOutputResult FileOutputByKey(
const __wchar_t * filename, HC_KEY key,
HOutputHandlerOptions * options);
1302 virtual HFileOutputResult FileOutputByKey(
const unsigned short * filename, HC_KEY key,
HOutputHandlerOptions * options);
1313 virtual HFileOutputResult FileOutputFromImageKey(
const char * filename, HC_KEY image_key,
HOutputHandlerOptions * options);
1314 virtual HFileOutputResult FileOutputFromImageKey(
const __wchar_t * filename, HC_KEY image_key,
HOutputHandlerOptions * options);
1326 virtual const char * GetOutputTypesString() = 0;
1344 virtual const char * GetOutputDefaultHSRA();
1349 const char * GetOutputProgress();
1354 float GetOutputPercentProgress();
1359 const __wchar_t * GetOutputInformation();
1387 void ReportOutputProgress(
const char * progress);
1390 void ReportOutputPercentProgress(
float percent_progress);
1393 void ReportOutputInformation(
const char * information);
1396 void SetModuleDirectory(
const char *module_directory);
1397 void SetModuleDirectory(
const __wchar_t *module_directory);
1404 void SetStartingOutput();
1409 void SetFinishedOutput();
1414 unsigned long m_OutputOps;
1416 char *m_module_directory;
1420 float m_percent_progress1;
1421 float m_percent_progress2;
1422 __wchar_t *m_information;
1423 struct vlist_s *m_information_list;
1518 virtual HInputHandler * GetInputHandler(
const char * file_type);
1519 HInputHandler * GetInputHandler(
const __wchar_t * file_type);
1521 HInputHandler * GetInputHandler(
const unsigned short * file_type);
1528 virtual HOutputHandler * GetOutputHandler(
const char * file_type);
1529 virtual HOutputHandler * GetOutputHandler(
const __wchar_t * file_type);
1535 virtual void RegisterHandlers();
1541 virtual const char * GetInputHandlerTypes();
1547 virtual const char * GetOutputHandlerTypes();
1556 virtual HIOConnector * CreateConnector(
const char * file_type);
1562 virtual void FreeConnector(
HIOConnector * old_connector);
1576 static void GetFileOutputResultString(HFileOutputResult result,
char *result_str);
1581 void CleanCallbacks();
1613 char * m_input_types;
1614 int m_input_types_allocated;
1616 char * m_output_types;
1617 int m_output_types_allocated;
Definition: HIOManager.h:1434
HBaseView * m_pHBaseView
A pointer to the HBaseView object for this output.
Definition: HIOManager.h:927
double PrintToScale() const
Definition: HIOManager.h:1137
Definition: HIOManager.h:861
void(* HIO_FREE_CONNECTOR_FUNCTION)(void *)
Definition: HIOManager.h:141
Definition: HIOManager.h:99
void WindowFrame(bool const tf)
Determines if a window frame is drawn or not.
Definition: HIOManager.h:1046
void HSRAOptions(char const *const tf)
HOOPS HSRAOption string .
Definition: HIOManager.h:959
float const PaperHeight() const
Height for output sizing in inches.
Definition: HIOManager.h:999
ExportNameMap m_names
Definition: HIOManager.h:1176
void PrintToScale(double const r)
Definition: HIOManager.h:1154
Specifies an HInputHandler for model data.
Definition: HIOManager.h:226
char const * m_pPDFResourceDirectory
Definition: HIOManager.h:1173
struct vlist_s * owned_output_handlers
A list of default HOutputHandlers created by the manager.
Definition: HIOManager.h:1602
The HBhvBehaviorManager class stores and manages all animation related data.
Definition: HBhvBehaviorManager.h:237
char const *const HSRAOptions() const
HOOPS HSRAOption string .
Definition: HIOManager.h:957
Low compression, high accuracy.
Definition: HIOManager.h:882
void *(* HIO_CREATE_FREE_FUNCTION)(void *)
Definition: HIOManager.h:137
void StlNormals(bool const tf)
Determines if we generate and output face normals when writing to STL file format.
Definition: HIOManager.h:1129
float m_fAnnotLeft
Definition: HIOManager.h:1185
Definition: HUtility.h:2357
bool m_bPrcUseNameUserData
Definition: HIOManager.h:1206
MVO_POINTER_SIZED_INT m_iPrcNameUserDataIndex
Definition: HIOManager.h:1209
Specifies an HOutputHandler for geometry data.
Definition: HIOManager.h:849
struct vhash_s * mhash_Hoops2Kernel
A hash map between HOOPS Keys and kernel entities.
Definition: HIOManager.h:214
Definition: HIOManager.h:148
bool m_bAVIShowCompressionDialog
Definition: HIOManager.h:1216
The HCamera class is the data type of a HOOPS Camera Attribute.
Definition: HUtility.h:540
bool m_bPrcRemoveBRep
Definition: HIOManager.h:1200
Specifies an HOutputHandler for a hardcopy output type.
Definition: HIOManager.h:851
HBhvBehaviorManager * m_pBehaviorManager
A pointer to the behavior manager.
Definition: HIOManager.h:1165
HOutputHandlerStyle
Definition: HIOManager.h:846
Specifies an HInputHandler for image data.
Definition: HIOManager.h:227
bool ConserveMemory() const
This option has been deprecated and has no effect.
Definition: HIOManager.h:1033
Definition: HIOManager.h:122
bool ForceGrayscale() const
Specifies black and white output.
Definition: HIOManager.h:1006
HPrcBrepCompression
Definition: HIOManager.h:880
void PaperWidth(float const f)
Width for output sizing in inches.
Definition: HIOManager.h:994
void ConserveMemory(bool const tf)
This option has been deprecated and has no effect.
Definition: HIOManager.h:1035
Specifies an HOutputHandler for an image.
Definition: HIOManager.h:850
struct vhash_s * input_handlers
A hash of HInputHandlers.
Definition: HIOManager.h:1590
HOutputHandler an abstract base class for model and image output.
Definition: HIOManager.h:1247
float const PaperWidth() const
Width for output sizing in inches.
Definition: HIOManager.h:992
Specifies using an iso view (looking at the origin from (1, 1, 1))
Definition: HIOManager.h:236
Specifies an HOutputHandler for a MVO style html file.
Definition: HIOManager.h:852
void OutputType(H_OUTPUT_TYPE ot)
The output type.
Definition: HIOManager.h:1108
void PaperHeight(float const f)
Height for output sizing in inches.
Definition: HIOManager.h:1001
struct vhash_s * connector_procs
A hash of HIOConnector Create/Free functions.
Definition: HIOManager.h:1596
bool Ascii() const
Some file formats, support binary and ascii such as STL. Set this to true for ascii output...
Definition: HIOManager.h:1120
bool Output3d() const
Some file formats, such as PDF and DWF, support 2d and/or 3d output. Set this to TRUE for 3d output...
Definition: HIOManager.h:1113
bool StlNormals() const
Determines if we generate and output face normals when writing to STL file format.
Definition: HIOManager.h:1127
HOutputHandlerOptions(const HOutputHandlerOptions &o)
Definition: HIOManager.h:914
float m_fAnnotBottom
Definition: HIOManager.h:1191
void UseSubscreen(bool const tf)
Determines if HOOPS is calculating a subscreen to match the output to the size of the view window...
Definition: HIOManager.h:1053
void * m_pPRCAsmModelFile
Definition: HIOManager.h:1179
char const * m_pHTMLTemplateFile
Definition: HIOManager.h:1233
int const ImageDpi() const
Indicates the DPI used for images. This is calculated with info from HC_Show_Device_Info.
Definition: HIOManager.h:1058
High compression, low accuracy.
Definition: HIOManager.h:884
float m_fAnnotTop
Definition: HIOManager.h:1194
char const * m_pDWFModelName
Definition: HIOManager.h:1168
HDwgViewVector
Definition: HIOManager.h:234
struct vlist_s * loaded_input_handlers
A list of dynamically loaded HInputHandlers libraries.
Definition: HIOManager.h:1605
void Model(HBaseModel *const m)
A pointer to the HBaseModel object for this output.
Definition: HIOManager.h:938
HPoint const *const WindowColor() const
Set the color of the window. The RGB color stored in xyz of HPoint.
Definition: HIOManager.h:964
The HBaseModel class is used to store and manage model information.
Definition: HBaseModel.h:47
HInputHandlerStyle
Definition: HIOManager.h:225
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:121
H_OUTPUT_TYPE OutputType() const
The output type.
Definition: HIOManager.h:1106
bool m_bExporting2DDwf
Definition: HIOManager.h:1229
Definition: HIOManager.h:892
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332
Specifies using a top view (looking down the positive Z-axis at the XY-plane)
Definition: HIOManager.h:235
int const PaperDpi() const
Indicates the DPI used for paper. This is set from the options dialog.
Definition: HIOManager.h:1065
void WindowColor(HPoint const *const tf)
Set the color of the window. The RGB color stored in xyz of HPoint.
Definition: HIOManager.h:966
bool m_bPrcRemoveAttributes
Definition: HIOManager.h:1203
bool UseWindowColor() const
If set to true, the background color of the view is used.
Definition: HIOManager.h:971
struct vhash_s * output_handlers
A hash of HOutputHandlers.
Definition: HIOManager.h:1593
float m_fAnnotRight
Definition: HIOManager.h:1188
bool m_bActivateOnPageOpen
Definition: HIOManager.h:1182
int m_Version
The file format version desired for writing.
Definition: HIOManager.h:1099
Medium compression, medium accuracy.
Definition: HIOManager.h:883
void WindowWidth(float const f)
Width for output sizing in inches.
Definition: HIOManager.h:980
unsigned long GetOutputOps()
Definition: HIOManager.h:1270
void UseWindowColor(bool const tf)
If set to true, the background color of the view is used.
Definition: HIOManager.h:973
HPrcBrepCompression m_ePrcBrepCompression
Definition: HIOManager.h:1197
void Output3d(bool const tf)
Some file formats, such as PDF and DWF, support 2d and/or 3d output. Set this to TRUE for 3d output...
Definition: HIOManager.h:1115
bool m_bPrcCompressTessellation
Definition: HIOManager.h:1213
No compression.
Definition: HIOManager.h:881
HBaseView *const View() const
A pointer to the HBaseView object for this output.
Definition: HIOManager.h:929
HCamera *const Camera() const
A pointer to the HCamera object for this output.
Definition: HIOManager.h:943
bool FastPrint() const
This option has been deprecated. Specifies printing method.
Definition: HIOManager.h:1026
struct vlist_s * loaded_output_handlers
A list of dynamically loaded HOutputHandlers libraries.
Definition: HIOManager.h:1608
void PaperDpi(int const dpi)
Indicates the DPI used for paper. This is set from the options dialog.
Definition: HIOManager.h:1067
struct vlist_s * owned_input_handlers
A list of default HInputHandlers created by the manager.
Definition: HIOManager.h:1599
void SetOutputOps(unsigned long ops)
This sets the HOutputOp.
Definition: HIOManager.h:1412
struct vhash_s * mhash_Kernel2Hoops
A hash map between kernel entities and HOOPS Keys.
Definition: HIOManager.h:217
HC_KEY const Key() const
The HC_Key for this output.
Definition: HIOManager.h:950
HBaseModel *const Model() const
A pointer to the HBaseModel object for this output.
Definition: HIOManager.h:936
float const WindowWidth() const
Width for output sizing in inches.
Definition: HIOManager.h:978
bool UseSubscreen() const
Determines if HOOPS is calculating a subscreen to match the output to the size of the view window...
Definition: HIOManager.h:1051
Specifies using the active viewport in the DWG file if present (if no active viewport is present...
Definition: HIOManager.h:237
struct vhash_s * created_connectors
A list of created HIOConnectors.
Definition: HIOManager.h:1611
void WindowHeight(float const f)
Height for output sizing in inches.
Definition: HIOManager.h:987
HOutputHandlerOptions(HOutputHandlerOptions const *o)
Definition: HIOManager.h:907
float const WindowHeight() const
Height for output sizing in inches.
Definition: HIOManager.h:985
bool m_bHTMLIncludeMeasurementInformation
Definition: HIOManager.h:1236
void View(HBaseView *const v)
A pointer to the HBaseView object for this output.
Definition: HIOManager.h:931
Specifies using the view determined by the camera in the scene segment.
Definition: HIOManager.h:238
size_t LineFuseThreshold() const
Definition: HIOManager.h:1016
bool WindowFrame() const
Determines if a window frame is drawn or not.
Definition: HIOManager.h:1044