# HOutputHandlerOptions

## Types

| `Print_Layout`

## Fields

| `WYSIWYG`
| `FULL_PAGE`
| `MAPPED_CAMERA`
HBaseView * | `m_pHBaseView`
HBaseModel * | `m_pHBaseModel`
HCamera * | `m_pCamera`
HC_KEY | `m_Key`
char const * | `m_pHSRAOptions`
HPoint const * | `m_pWindowColor`
bool | `m_bUseWindowColor`
float | `m_Window_Width`
float | `m_Window_Height`
float | `m_Paper_Width`
float | `m_Paper_Height`
bool | `m_ForceGrayscale`
size_t | `m_lineFuseThreshold`
bool | `m_bFastPrint`
bool | `m_bConserveMemory`
bool | `m_bWriteAnimations`
bool | `m_bWindowFrame`
`Print_Layout` | `m_layout`
int | `m_Image_Dpi`
int | `m_Paper_Dpi`
void * | `m_pExtendedData`
char const * | `m_license`
int | `m_antialiasLevel`
int | `m_jpeg_quality`
unsigned char * | `m_imageOutputBuffer`
size_t | `m_imageOutputBufferSize`
int | `m_Version`
H_OUTPUT_TYPE | `m_OutputType`
bool | `m_b3dOutput`
bool | `m_bAscii`
bool | `m_bStlNormals`
double | `m_ratio_cm_to_internal_units`
float | `m_PageMargins`
HBhvBehaviorManager * | `m_pBehaviorManager`
char const * | `m_pDWFModelName`
char const * | `m_pPDFResourceDirectory`
ExportNameMap | `m_names`
void * | `m_pPRCAsmModelFile`
bool | `m_bActivateOnPageOpen`
float | `m_fAnnotLeft`
float | `m_fAnnotRight`
float | `m_fAnnotBottom`
float | `m_fAnnotTop`
`HPrcBrepCompression` | `m_ePrcBrepCompression`
bool | `m_bPrcRemoveBRep`
bool | `m_bPrcRemoveAttributes`
bool | `m_bPrcUseNameUserData`
long | `m_iPrcNameUserDataIndex`
bool | `m_bPrcCompressTessellation`
bool | `m_bAVIShowCompressionDialog`
char | `m_bAVICodec`
bool | `m_bExporting2DDwf`
char const * | `m_pHTMLTemplateFile`
bool | `m_bHTMLIncludeMeasurementInformation`
bool | `m_bPDFEmbedFonts`

## Functions

| `HOutputHandlerOptions`
char const * | `GetType`
bool | `PopulateOptions`
| `HOutputHandlerOptions`
| `HOutputHandlerOptions`
| `~HOutputHandlerOptions`
void | `Init`
HBaseView * | `View`
void | `View`
HBaseModel * | `Model`
void | `Model`
HCamera * | `Camera`
void | `Camera`
HC_KEY | `Key`
void | `Key`
char const * | `HSRAOptions`
void | `HSRAOptions`
HPoint const * | `WindowColor`
void | `WindowColor`
bool | `UseWindowColor`
void | `UseWindowColor`
float | `WindowWidth`
void | `WindowWidth`
float | `WindowHeight`
void | `WindowHeight`
float | `PaperWidth`
void | `PaperWidth`
float | `PaperHeight`
void | `PaperHeight`
bool | `ForceGrayscale`
void | `ForceGrayscale`
size_t | `LineFuseThreshold`
void | `LineFuseThreshold`
bool | `FastPrint`
void | `FastPrint`
bool | `ConserveMemory`
void | `ConserveMemory`
bool | `WriteAnimations`
void | `WriteAnimations`
bool | `WindowFrame`
void | `WindowFrame`
`Print_Layout` | `Layout`
void | `Layout`
bool | `UseSubscreen`
void | `UseSubscreen`
int | `ImageDpi`
void | `ImageDpi`
int | `PaperDpi`
void | `PaperDpi`
void * | `ExtendedData`
void | `ExtendedData`
void | `ExtendedData`
bool | `ActivateOnPageOpen`
void | `ActivateOnPageOpen`
float | `AnnotLeft`
void | `AnnotLeft`
float | `AnnotRight`
void | `AnnotRight`
float | `AnnotBottom`
void | `AnnotBottom`
float | `AnnotTop`
void | `AnnotTop`
int | `Version`
void | `Version`
H_OUTPUT_TYPE | `OutputType`
void | `OutputType`
bool | `Output3d`
void | `Output3d`
bool | `Ascii`
void | `Ascii`
bool | `StlNormals`
void | `StlNormals`
double | `PrintToScale`
void | `PrintToScale`

## Detailed Description

class HOutputHandlerOptions

  HOutputHandlerOptions is used to pass data to HOutputHandler. All options are used based on the handler’s needs. Specific HOutputHandler subclassed instances should document their own usage of options.

  Public Types

  enum Print_Layout

    Specifies how the view or camera is mapped to the printed page.

    Values:

    enumerator WYSIWYG

      Displayed view is mapped within the printable area of the screen &#8212; old UseSubscreen(true)

    enumerator FULL_PAGE

      Extra geometry outside the displayed view is included to the printable limits &#8212; old UseSubscreen(false)

    enumerator MAPPED_CAMERA

      the camera does not fill the page

      The camera is mapped to the full page (margins ignored); geometry outside the camera may be included if

  Public Functions

  HOutputHandlerOptions() = default

    Constructs an HOutputHandlerOptions object.

  virtual char const *GetType() const
  virtual bool PopulateOptions()

    Any application wishing to customize how the options are populated should derive from this class and overload this function.

  inline HOutputHandlerOptions(HOutputHandlerOptions const *o)

    Constructs an HOutputHandlerOptions object from another HOutputHandlerOptions object.

    Parameters

      o – A pointer to the HOutputHandlerOptions object you want to copy.

  inline HOutputHandlerOptions(const HOutputHandlerOptions &o)

    Constructs an HOutputHandlerOptions object from another HOutputHandlerOptions object.

    Parameters

      o – A reference to the HOutputHandlerOptions object you want to copy.

  virtual ~HOutputHandlerOptions()
  void Init(HOutputHandlerOptions const *o)

    This method initializes this HOutputHandlerOptions object from using the properties of another HOutputHandlerOptions object.

    Parameters

      o – A pointer to the HOutputHandlerOptions object you want to copy.

  inline HBaseView *View() const

    A pointer to the HBaseView object for this output.

  inline void View(HBaseView *const v)

    A pointer to the HBaseView object for this output.

  inline HBaseModel *Model() const

    A pointer to the HBaseModel object for this output.

  inline void Model(HBaseModel *const m)

    A pointer to the HBaseModel object for this output.

  inline HCamera *Camera() const

    A pointer to the HCamera object for this output.

  inline void Camera(HCamera *const c)

    A pointer to the HCamera object for this output.

  inline HC_KEY Key() const

    The HC_Key for this output.

  inline void Key(HC_KEY const k)

    The HC_Key for this output.

  inline char const *HSRAOptions() const

    HOOPS HSRAOption string .

  inline void HSRAOptions(char const *const tf)

    HOOPS HSRAOption string .

  inline HPoint const *WindowColor() const

    Set the color of the window. The RGB color stored in xyz of HPoint.

  inline void WindowColor(HPoint const *const tf)

    Set the color of the window. The RGB color stored in xyz of HPoint.

  inline bool UseWindowColor() const

    If set to true, the background color of the view is used.

  inline void UseWindowColor(bool const tf)

    If set to true, the background color of the view is used.

  inline float WindowWidth() const

    Width for output sizing in inches.

  inline void WindowWidth(float const f)

    Width for output sizing in inches.

  inline float WindowHeight() const

    Height for output sizing in inches.

  inline void WindowHeight(float const f)

    Height for output sizing in inches.

  inline float PaperWidth() const

    Width for output sizing in inches.

  inline void PaperWidth(float const f)

    Width for output sizing in inches.

  inline float PaperHeight() const

    Height for output sizing in inches.

  inline void PaperHeight(float const f)

    Height for output sizing in inches.

  inline bool ForceGrayscale() const

    Specifies black and white output.

  inline void ForceGrayscale(bool const tf)

    Specifies black and white output.

  inline size_t LineFuseThreshold() const

    Gets the line fuse threshold

    Returns

      The line fuse threshold value

  inline void LineFuseThreshold(size_t const tf)

    Sets the line fuse threshold value.

    Parameters

      tf – The line fuse threshold value to set

  inline bool FastPrint() const

    This option has been deprecated. Specifies printing method.

  inline void FastPrint(bool const tf)

    This option has been deprecated. Specifies printing method.

  inline bool ConserveMemory() const

    This option has been deprecated and has no effect.

  inline void ConserveMemory(bool const tf)

    This option has been deprecated and has no effect.

  inline bool WriteAnimations() const
  inline void WriteAnimations(bool const tf)
  inline bool WindowFrame() const

    Determines if a window frame is drawn or not.

  inline void WindowFrame(bool const tf)

    Determines if a window frame is drawn or not.

  inline Print_Layout Layout() const

    Determines how the view or camera will be mapped to the printed page.

  inline void Layout(Print_Layout l)

    Determines how the view or camera will be mapped to the printed page.

  inline bool UseSubscreen() const

    Determines if HOOPS is calculating a subscreen to match the output to the size of the view window.

    Deprecated:

      This function will be replaced by Layout()

  inline void UseSubscreen(bool tf)

    Determines if HOOPS is calculating a subscreen to match the output to the size of the view window.

    Deprecated:

      This function will be replaced by Layout(Print_Layout l)

  inline int ImageDpi() const

    Indicates the DPI used for images. This is calculated with info from HC_Show_Device_Info.

  inline void ImageDpi(int const dpi)

    Indicates the DPI used for images. This is calculated with info from HC_Show_Device_Info.

  inline int PaperDpi() const

    Indicates the DPI used for paper. This is set from the options dialog.

  inline void PaperDpi(int const dpi)

    Indicates the DPI used for paper. This is set from the options dialog.

  inline void *ExtendedData() const
  inline void ExtendedData(void *const vp)
  inline void ExtendedData(HPDFOptions *const vp)
  inline bool ActivateOnPageOpen() const
  inline void ActivateOnPageOpen(bool onoff)
  inline float AnnotLeft() const
  inline void AnnotLeft(float f)
  inline float AnnotRight() const
  inline void AnnotRight(float f)
  inline float AnnotBottom() const
  inline void AnnotBottom(float f)
  inline float AnnotTop() const
  inline void AnnotTop(float f)
  inline int Version() const
  inline void Version(int const v)
  inline H_OUTPUT_TYPE OutputType() const

    The output type.

  inline void OutputType(H_OUTPUT_TYPE ot)

    The output type.

  inline bool Output3d() const

    Some file formats, such as PDF and DWF, support 2d and/or 3d output. Set this to TRUE for 3d output.

  inline 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. Default is FALSE.

  inline bool Ascii() const

    Some file formats, support binary and ascii such as STL. Set this to true for ascii output.

  inline void Ascii(bool const tf)

    Some file formats, support binary and ascii such as STL. Set this to true for ascii output.

  inline bool StlNormals() const

    Determines if we generate and output face normals when writing to STL file format.

  inline void StlNormals(bool const tf)

    Determines if we generate and output face normals when writing to STL file format.

  inline double PrintToScale() const
    Returns

      The output scaling ratio. See PrintToScale()

  inline void PrintToScale(double const r)

    Parameter is a positive double precision ratio which specifies how many HOOPS/3DGS world-space-units represents a centimeter. The camera will (temporarily) be scaled according to this ratio to force the physical (hardcopy) output size to match an application’s size units. A natural side-effect of this style of output is that the hardcopy will not match the picture on the screen like normal HOOPS printing. The output will effectively be scaled (up or down) and given a new aspect ratio so that it will fill the printable area of the specified output device with to-scale geometry surrounding the camera target.

    Examples:

    - If a value of 1.0 in HOOPS/3DGS world-space is meant to represent 2 mm, set the ratio to 0.2

    - If a value of 1.0 in HOOPS/3DGS world-space is meant to represent 1 inch, set the ratio to 2.54

    - If a value of 1.0 in HOOPS/3DGS world-space is meant to represent 1 cm, set the ratio to 1.0

    Behavioral Notes:

    - This mode will respect user-defined margins.

    - PrintToScale behavior is undefined if there is a perspective camera.

    The default value is 0, which indicates to not print-to-scale.

  Public Members

  HBaseView *m_pHBaseView = nullptr

    A pointer to the HBaseView object for this output.

  HBaseModel *m_pHBaseModel = nullptr

    A pointer to the HBaseModel object for this output.

  HCamera *m_pCamera

    A pointer to the HCamera object for this output.

  HC_KEY m_Key = (-1L)

    The HC_Key for this output.

  char const *m_pHSRAOptions = nullptr

    HOOPS HSRAOption string .

  HPoint const *m_pWindowColor = nullptr

    RGB color stored in xyz.

  bool m_bUseWindowColor = false

    If set to true, the background color of the view is used.

  float m_Window_Width = 0

    Width for output sizing in inches.

  float m_Window_Height = 0

    Height for output sizing in inches.

  float m_Paper_Width = 8.5

    Width for output sizing in inches.

  float m_Paper_Height = 11

    Height for output sizing in inches.

  bool m_ForceGrayscale = false

    Specifies black and white output.

  size_t m_lineFuseThreshold = 100

    If the number of lines in a segment is greater than or equal to this value, the lines are fused into a single line during export. This option applies to 3D PDF exports only. The default value is 100.

  bool m_bFastPrint = false

    This option has been deprecated. Specifies printing method.

  bool m_bConserveMemory = false

    This option has been deprecated and has no effect.

  bool m_bWriteAnimations = false
  bool m_bWindowFrame = false

    Determines if a window frame is drawn or not.

  Print_Layout m_layout = Print_Layout::WYSIWYG

    Determines how the view or camera will be mapped to the printed page.

  int m_Image_Dpi = 100

    Indicates the DPI used for images. This is calculated with info from HC_Show_Device_Info.

  int m_Paper_Dpi = 300

    Indicates the DPI used for paper. This is set from the options dialog.

  void *m_pExtendedData = nullptr

    A pointer to extra data needed by a HOutputHandler subclass .

  char const *m_license = nullptr

    A pointer to a license key. This can be used by HIO modules that are based on 3rd party toolkits which require a license key to be set.

  int m_antialiasLevel = 1
  int m_jpeg_quality = 0
  unsigned char *m_imageOutputBuffer = nullptr
  size_t m_imageOutputBufferSize = 0
  int m_Version = 0

    The file format version desired for writing.

  H_OUTPUT_TYPE m_OutputType = H_OUTPUT_TYPE_DEFAULT

    The output type.

  bool m_b3dOutput = false

    Some file formats, such as PDF and DWF, support 2d and/or 3d output. Set this to TRUE for 3d output. Default is FALSE.

  bool m_bAscii = false

    Some file formats, support binary and ascii such as STL. Set this to true for ascii output.

  bool m_bStlNormals = false

    Determines if we generate and output face normals when writing to STL file format.

  double m_ratio_cm_to_internal_units = 0

    The output scaling ratio. See PrintToScale()

  float m_PageMargins[4] = {0, 0, 0, 0}

    Sets the page margin in inches. m_PageMargins[0] is the left margin m_PageMargins[1] is the right margin m_PageMargins[2] is the bottom margin m_PageMargins[3] is the top margin

  HBhvBehaviorManager *m_pBehaviorManager = nullptr

    A pointer to the behavior manager.

  char const *m_pDWFModelName = nullptr

    DWF Model name

  char const *m_pPDFResourceDirectory = nullptr

    Publish resource directory. Setting this directory is required for 3D PDF export. Normally, this directory is HOOPS_PUBLISH_INSTALL_DIR/bin/resource.

  ExportNameMap m_names

    available for output handlers to map HC_KEYS to names in the output file.

  void *m_pPRCAsmModelFile = nullptr

    Pointer to a PRC model

  bool m_bActivateOnPageOpen = false

    Set this member to true if you want the 3D annotation in a 3D PDF document to be automatically enabled when opening the PDF file. Default is false

  float m_fAnnotLeft = 0.5

    This setting applies to the positioning of a 3D annotation in a 3D PDF, and defines the distance, in inches, from the page’s left border, where the left side of the annotation should be located. The default is 0.5

  float m_fAnnotRight = 0.5

    This setting applies to the positioning of a 3D annotation in a 3D PDF, and defines the distance, in inches, from the page’s right border, where the right of the annotation should be located. The default is 0.5

  float m_fAnnotBottom = 2

    This setting applies to the positioning of a 3D annotation in a 3D PDF, and defines the distance, in inches, from the page’s bottom border, where the bottom of the annotation should be located. The default is 2.0

  float m_fAnnotTop = 0.5

    This setting applies to the positioning of a 3D annotation in a 3D PDF, and defines the distance, in inches, from the page’s top border, where the top of the of the annotation should be located. The default is 0.5

  HPrcBrepCompression m_ePrcBrepCompression = PrcBrepCompressionNone

    Sets the compression level for BRep data when exporting to the PRC format. Defaults to PrcBrepCompressionNone.

  bool m_bPrcRemoveBRep = false

    Sets whether to remove BREP data when exporting to the PRC format. Defaults to false.

  bool m_bPrcRemoveAttributes = false

    Sets whether to remove attribute data when exporting to the PRC format. Defaults to false.

  bool m_bPrcUseNameUserData = false

    Sets whether to use the m_iPrcNameUserDataIndex field. Defaults to false.

  long m_iPrcNameUserDataIndex = 0

    Sets the user data index for the UTF8-encoded name to use for PRC entities when creating PRC data from a scene graph.

  bool m_bPrcCompressTessellation = false

    Sets whether to compress tessellation data when exporting to the PRC format. Defaults to false.

  bool m_bAVIShowCompressionDialog = true

    Used in HIO_AVI. If true shows a dialog during export to allow the user to select a compression level. Defaults to true.

  char m_bAVICodec[4] = {0, 0, 0, 0}

    Used in HIO_AVI. Sets the AVI codec for function mmioFOURCC Default codec is UNCOMPRESSED m_bAVICodec[0] First character of the four-character code. m_bAVICodec[1] Second character of the four-character code. m_bAVICodec[2] Third character of the four-character code. m_bAVICodec[3] Fourth character of the four-character code.

  bool m_bExporting2DDwf = false

    2D Dwf Export uses a legacy version of Hardcopy. Set this option to true when exporting a 2D DWF file

  char const *m_pHTMLTemplateFile = nullptr

    Path to the template file to use when generating an HTML file from HIOUtilityPublish. This value is REQUIRED for HTML export to succeed.

  bool m_bHTMLIncludeMeasurementInformation = false

    Whether to include measurement information when generating an HTML file from HIOUtilityPublish.

  bool m_bPDFEmbedFonts = false

    Whether to embed fonts in exported 2D PDF files. Embedding fonts makes the PDF exported file bigger, but enables text contained within it to render correctly even on platforms that lack the font used when creating the file.