# HPublishExchangeExporter

## Fields

size_t | `m_lineFuseThreshold`
HC_KEY | `m_modelKey`
HBaseView * | `m_pView`
struct vlist_s * | `m_RI_list`
struct vhash_s * | `m_instancehash`
KeyIndexHash | `m_ImageIndexHash`
TextureSourceHash | `m_TextureIndexHash`
VArray< HC_KEY > | `m_cadviews_key`
struct vhash_s * | `m_pmihash`
KeyPath | `m_keyPath`
StringStringHash | `m_fontNameFamilyNameHash`
HOutputHandler * | `m_OutputHandler`
int | `m_TotalSegmentCount`
int | `m_ProcessedSegmentCount`
KeyCountHash | `m_KeySegmentCountHash`
HOutputHandlerOptions * | `m_OutputOptions`

## Functions

| `HPublishExchangeExporter`
| `~HPublishExchangeExporter`
void | `ReportBuildStarted`
void | `ReportBuildProgress`
void | `ReportBuildCompleted`
HFileOutputResult | `Export`
A3DAsmModelFile * | `BuildPRCModel`
A3DAsmModelFile * | `createModelFile`
A3DAsmProductOccurrence * | `createOccurrence`
A3DAsmPartDefinition * | `createPart`
A3DRiRepresentationItem * | `createRI`
A3DRiRepresentationItem * | `createRiPolyWire`
A3DRiRepresentationItem * | `createRiPolyWireMulti`
A3DRiRepresentationItem * | `createRiMarkers`
A3DRiRepresentationItem * | `createRiPolyBrep`
A3DRiRepresentationItem * | `createRiBrepModel`
A3DTess3D * | `createShellTesselation`
A3DTess3D * | `createLineTesselation`
A3DTess3D * | `createLineTesselationMulti`
A3DAsmProductOccurrence * | `createInclude`
A3DAsmProductOccurrence * | `createOccurrenceRecursive`
void | `SetName`
bool | `IsEnvironmentTexture`
bool | `FindTexture`
A3DUns32 | `GetPictureIndex`
A3DUns32 | `GetTextureApplicationIndex`
void | `SetColorAndVisibility`
void | `gatherPMI`
std::string | `GetCaseSensitiveFontFamilyName`
bool | `getTextMarkupCodes`
A3DMkpAnnotationItem * | `createAnnotation`
A3DTessMarkup * | `createAnnotationTessellation`
A3DMkpAnnotationItem * | `createText`
A3DTessMarkup * | `createTextTessellation`
A3DMkpAnnotationItem * | `createPMI`
A3DTessMarkup * | `createPMITessellation`
A3DMkpView * | `createView`
int | `BuildHoopsViewArray`
int | `AddVisualizeCurrentView`
A3DRiRepresentationItem * | `GatherLinesAndCreateRi`
void | `initPrcExportParams`

## Detailed Description

class HPublishExchangeExporter

  Public Functions

  HPublishExchangeExporter(HOutputHandler *handler)
  ~HPublishExchangeExporter()
  void ReportBuildStarted()
  void ReportBuildProgress()
  void ReportBuildCompleted()
  HFileOutputResult Export(wchar_t const *file_name, HC_KEY model_key, HOutputHandlerOptions *options)
  A3DAsmModelFile *BuildPRCModel(HC_KEY model_key, HOutputHandlerOptions *options)
  A3DAsmModelFile *createModelFile(HOutputHandlerOptions *options)
  A3DAsmProductOccurrence *createOccurrence()
  A3DAsmPartDefinition *createPart(HC_KEY segmentkey, bool hasColor, bool lineVisibility, bool faceVisibility)
  A3DRiRepresentationItem *createRI(HC_KEY key, bool hasColor, bool lineVisibility, bool faceVisibility, bool usePointsAsTextureParameters, float const textureMatrix[16])
  A3DRiRepresentationItem *createRiPolyWire(HC_KEY key)
  A3DRiRepresentationItem *createRiPolyWireMulti(VArray<HC_KEY> keys)
  A3DRiRepresentationItem *createRiMarkers(HC_KEY key, bool hasColor)
  A3DRiRepresentationItem *createRiPolyBrep(HC_KEY key, bool usePointsAsTextureParameters, float const textureMatrix[16])
  A3DRiRepresentationItem *createRiBrepModel(HC_KEY key)
  A3DTess3D *createShellTesselation(HC_KEY key, bool usePointsAsTextureParameters, float const textureMatrix[16])
  A3DTess3D *createLineTesselation(HC_KEY polylinekey)
  A3DTess3D *createLineTesselationMulti(VArray<HC_KEY> keys)
  A3DAsmProductOccurrence *createInclude(HC_KEY includeKey, bool hasColor)
  A3DAsmProductOccurrence *createOccurrenceRecursive(HC_KEY segmentkey, bool hasColor, bool isInclude)
  void SetName(A3DEntity *entity, HC_KEY key, std::string const &defaultName = "")
  bool IsEnvironmentTexture(char *texturename)
  bool FindTexture(char const *texturename, char *definition)
  A3DUns32 GetPictureIndex(HC_KEY imageKey)
  A3DUns32 GetTextureApplicationIndex(char const *textureDefinition, HC_KEY sourceImageKey)
  void SetColorAndVisibility(A3DRootBaseWithGraphics *pBase, HC_KEY segmentkey, bool hasColor, bool isVisible, char const *colorType = "faces")
  void gatherPMI(HC_KEY segmentKey, vlist_t *pmiList)
  std::string GetCaseSensitiveFontFamilyName(char const *fontName)
  bool getTextMarkupCodes(A3DUns32Array &codes, A3DDoubleArray &coordinates, StdStringArray &utf8Strings, A3DUTF8StringArray &textStrings, HPoint *annotationPosition = nullptr)
  A3DMkpAnnotationItem *createAnnotation(HC_KEY annotKey)
  A3DTessMarkup *createAnnotationTessellation()
  A3DMkpAnnotationItem *createText(HC_KEY textKey)
  A3DTessMarkup *createTextTessellation()
  A3DMkpAnnotationItem *createPMI(HC_KEY segmentkey)
  A3DTessMarkup *createPMITessellation(PMI::Entity const *in_entity)
  A3DMkpView *createView(HC_KEY segmentkey)
  int BuildHoopsViewArray(HPEViewsArray &hoopsviews)
  int AddVisualizeCurrentView(HPEViewsArray &hoopsviews)
  A3DRiRepresentationItem *GatherLinesAndCreateRi()

  Public Members

  HC_KEY m_modelKey
  HBaseView *m_pView
  struct vlist_s *m_RI_list
  struct vhash_s *m_instancehash
  KeyIndexHash m_ImageIndexHash
  TextureSourceHash m_TextureIndexHash
  VArray<HC_KEY> m_cadviews_key
  struct vhash_s *m_pmihash
  KeyPath m_keyPath
  StringStringHash m_fontNameFamilyNameHash
  HOutputHandler *m_OutputHandler
  int m_TotalSegmentCount
  int m_ProcessedSegmentCount
  KeyCountHash m_KeySegmentCountHash
  HOutputHandlerOptions *m_OutputOptions

  Public Static Functions

  static void initPrcExportParams(A3DRWParamsExportPrcData &out_export_data, HOutputHandlerOptions *in_options = 0)

  Public Static Attributes

  static size_t m_lineFuseThreshold