HPS::Exchange::ModelFileImportOptionsKit

class HPS::Exchange::ModelFileImportOptionsKit : public HPS::SprocketKit

The HPS::Exchange::ModelFileImportOptionsKit class is a user space object. It contains settings (potentially) controlling how data is imported via Exchange. This particular options kit is used when importing an A3DAsmModelFile directly (see Exchange::File::Import(void*,const ModelFileImportOptionsKit&)) and as such the options will only be used if the A3DAsmModelFile permits (e.g., tessellation options will only be used if tessellation needs to be generated and the A3DAsmModelFile has BRep data). Calling HPS::Exchange::ModelFileImportOptionsKit::GetDefault() will return an options kit with values found in here.

Public Functions

virtual bool Empty() const

Indicates whether this ModelFileImportOptionsKit has any values set on it.

Returns

true if no values are set on this ModelFileImportOptionsKit, false otherwise.

bool Equals(ModelFileImportOptionsKit const &in_kit) const

Check if the source ModelFileImportOptionsKit is equivalent to this ModelFileImportOptionsKit.

Parameters

in_kit – The source ModelFileImportOptionsKit to compare to this ModelFileImportOptionsKit.

Returns

true if the objects are equivalent, false otherwise.

ModelFileImportOptionsKit()

The default constructor creates an empty ModelFileImportOptionsKit object.

ModelFileImportOptionsKit(ModelFileImportOptionsKit &&in_that)

The move constructor creates an ModelFileImportOptionsKit by transferring the underlying impl of the rvalue reference to this ModelFileImportOptionsKit thereby avoiding a copy and allocation.

Parameters

in_that – An rvalue reference to an ModelFileImportOptionsKit to take the impl from.

ModelFileImportOptionsKit(ModelFileImportOptionsKit const &in_kit)

The copy constructor creates a new ModelFileImportOptionsKit object that contains the same settings as the source ModelFileImportOptionsKit.

Parameters

in_kit – The source ModelFileImportOptionsKit to copy.

inline virtual HPS::Type ObjectType() const

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Returns

The declared type of the object in question, which may differ from the true, underlying type.

bool operator!=(ModelFileImportOptionsKit const &in_kit) const

Check if the source ModelFileImportOptionsKit is not equivalent to this ModelFileImportOptionsKit.

Parameters

in_kit – The source ModelFileImportOptionsKit to compare to this ModelFileImportOptionsKit.

Returns

true if the objects are not equivalent, false otherwise.

ModelFileImportOptionsKit &operator=(ModelFileImportOptionsKit &&in_that)

The move assignment operator transfers the underlying impl of the rvalue reference to this ModelFileImportOptionsKit thereby avoiding a copy.

Parameters

in_that – An rvalue reference to an ModelFileImportOptionsKit to take the impl from.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &operator=(ModelFileImportOptionsKit const &in_kit)

Copies the source ModelFileImportOptionsKit into this ModelFileImportOptionsKit.

Parameters

in_kit – The source ModelFileImportOptionsKit to copy.

Returns

A reference to this ModelFileImportOptionsKit.

bool operator==(ModelFileImportOptionsKit const &in_kit) const

Check if the source ModelFileImportOptionsKit is equivalent to this ModelFileImportOptionsKit.

Parameters

in_kit – The source ModelFileImportOptionsKit to compare to this ModelFileImportOptionsKit.

Returns

true if the objects are equivalent, false otherwise.

void Set(ModelFileImportOptionsKit const &in_kit)

Copies the source ModelFileImportOptionsKit into this ModelFileImportOptionsKit.

Parameters

in_kit – The source ModelFileImportOptionsKit to copy.

ModelFileImportOptionsKit &SetAnnotationCaptureFitting(AnnotationCaptureFitting in_fitting)

Sets the type of data that should be used to generate the camera for annotation captures.

Parameters

in_fitting – The type of fitting to use for annotation captures.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetComputePreferredOpenShellOrientation(bool in_state)

This option lets you redirect the normal of non-solid bodies. eg: when a body is not able to be sewed closed it still has the notion of an inside and outside. the in_state will be passed to A3DSewOptionsData With this option, you are asking Exchange to use a predictive algorithm to correctly identify inside vs outside.

Parameters

in_state – The state of the option used when importing a file

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetConfiguration(char const *in_configuration)

Sets the configuration to import from a CAD Model. This is only applicable to Catia V4, Solidworks and I-deas file formats. If no configuration is specified, the default configuration will be loaded if possible. This corresponds to the value that will be passed to A3DRWParamsMultiEntriesData::m_ppcEntries.

Parameters

in_configuration – UTF8-encoded configuration name to import from a CAD file.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetConfiguration(size_t in_count, UTF8 const in_configuration[])

Sets a nested configuration to import from a CAD Model. This is only applicable to Catia V4, Solidworks and I-deas file formats. If no configuration is specified, the default configuration will be loaded if possible. These correspond to the values that will be passed to A3DRWParamsMultiEntriesData::m_ppcEntries.

Parameters
  • in_count – Size of the following array.

  • in_configuration – List of nested configuration names to import from a CAD file.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetConfiguration(UTF8Array const &in_configuration)

Sets a nested configuration to import from a CAD Model. This is only applicable to Catia V4, Solidworks and I-deas file formats. If no configuration is specified, the default configuration will be loaded if possible. These correspond to the values that will be passed to A3DRWParamsMultiEntriesData::m_ppcEntries.

Parameters

in_configuration – List of nested configuration names to import from a CAD file.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetGeometryDefaultColor(RGBAColor const &in_color)

Sets the color to use for non-PMI geometry in the CAD file if none is specified.

See

SetPMIDefaultColor

Parameters

in_color – The color to use for non-PMI geometry in the CAD file if none is specified.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetHiddenObjects(bool in_state)

Sets whether we import the hidden objects from the CAD Model or not. The in_state will be passed to A3DRWParamsGeneralData::m_bReadHiddenObjects With this option, you are asking Exchange read the objects that are marked as hidden or graphics removed.

Parameters

in_state – The state of the option used when importing a file

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetIFCEdges(bool in_state)

Sets whether to import edges for IFC files When this is set to false the import time will decrease. It is still possible to achieve visual fidelity by turning on hard edge visibility.

See

Default value

Parameters

in_state – Whether to import edges for an IFC file.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetLocation(ComponentPath const &in_path, MatrixKit const &in_transform = MatrixKit())

Sets where to insert the imported file in an existing Component hieararchy. If this option is not set, a new CADModel will be created for the imported file. If this option is specified, the underlying PRC data of the existing CADModel will be modified to include the imported file and the data will be imported into the specified location in the existing Component hierarchy and its corresponding scene graph.

Parameters
  • in_path – The path describing the location to insert the imported file into. This path must either terminate at a CADModel or a Component corresponding to an A3DAsmProductOccurrence. Note that if the imported file is added along a ComponentPath with attributes specified in the PRC data, the components added to the existing PRC data will also inherit those attributes. Note also that if the path is just a CADModel, a new A3DAsmModelFile underyling the CADModel must be created to include both the existing product occurrences and the new product occurrences. This new A3DAsmModelFile will be owned by the CADModel being imported into (see CADModel::GetEntityOwnership), but the existing A3DAsmModelFile will still need to be cleaned up via A3DAsmModelFileDelete since it was not owned by the CADModel.

  • in_transform – A transform to apply to the components being added to the existing CADModel. This transform will also be added to the underlying PRC data. Defaults to an identity transform.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit const &in_nurbs_conversion_options)

Converts the curves and surfaces of the model file according to the options specified.

Parameters

in_nurbs_conversion_options – The options to use during conversion

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetPMIFlipping(bool in_flip)

Dictates whether Visualize will flip pmi when rotating so that text / symbols remain readable.

Note

If exchange reports that a markup does not contain leader lines, but the tessellation does contain lines that markup will not be flipped. This is a precaution for models where the leader line geometry was included as part of the markup tessellation and flipping the geometry would cause any present leader lines to point in the wrong direction.

Parameters

in_cleanup – Whether or not to have visualize flip pmi when rotating.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetSewingTolerance(double in_tolerance)

The sewing tolerance to use on the A3DAsmModelFile prior to generating the scene graph. If this option is set, prior to generating the scene graph, the A3DAsmModelFile will be passed to A3DAsmModelFileSew with this tolerance.

Parameters

in_tolerance – The sewing tolerance to use on the A3DAsmModelFile.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetTessellationAccuracy(Tessellation::Accuracy in_type, bool in_accurate_normals = true, bool in_accurate_surface_curvatures = false, double accurate_grid_maximum_stitch_length = 0.0)

Sets the accuracy of the tessellation that will be generated for BRep data.

See

Default value

Parameters
Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetTessellationCleanup(bool in_cleanup)

Dictates whether Exchange tesselation data will be released from their parent representation items during import.

Warning

Setting this option to true will cause future exports to output without tessellation data.

Parameters

in_cleanup – Whether to clean up tessellation data from representation items.

Returns

A reference to this ImportOptionsKit.

ModelFileImportOptionsKit &SetTessellationLevel(Tessellation::Chord::Limit in_limit_type, double in_limit, double in_angle_tolerance)

Sets the user defined quality of the tessellation that will be generated for BRep data. This implicitly sets A3DRWParamsTessellationData::m_eTessellationLevel to kA3DTessLODUserDefined.

Parameters
  • in_limit_type – The type of the chord limit to be specified.

  • in_limit – Either the ratio of the tessellation chord height to the bounding box height which should be in the range [50, 10000], or the maximum distance between the surface definition and the tessellation approximation, depending on the preceding argument.

  • in_angle_tolerance – The maximum angle in degrees between two consecutive wire elements in the generated tessellation which should be in the range [10, 40]. This corresponds to the value that will be passed to A3DRWParamsTessellationData::m_dAngleToleranceDeg.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetTessellationLevel(Tessellation::Level in_level)

Sets the predefined quality of the tessellation that will be generated for BRep data. This corresponds to the value that will be passed to A3DRWParamsTessellationData::m_eTessellationLevelOfDetail.

See

Default value

Parameters

in_level – The predefined quality of the tessellation that will be generated for BRep data.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetTessellationMaximumEdgeLength(double in_length)

Sets the maximum length of triangle edges in the tessellation generated for BRep data. This corresponds to the value that will be passed to A3DRWParamsTessellationData::m_dMaximalTriangleEdgeLength.

See

Default value

Parameters

in_length – The maximum length of triangle edges in the tessellation generated for BRep data. The value must be non-negative, and if set to 0.0, the length will not be used when generating the tessellation.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &SetTessellationPreservesUVPoints(bool in_state)

Sets whether to keep parametric points as texture coordinates when generating the tessellation for BRep data. This corresponds to the value that will be passed to A3DRWParamsTessellationData::m_bKeepUVPoints.

See

Default value

Parameters

in_state – Whether to keep parametric points as texture coordinates when generating the tessellation for BRep data.

Returns

A reference to this ModelFileImportOptionsKit.

void Show(ModelFileImportOptionsKit &out_kit) const

Copies this ModelFileImportOptionsKit into the given ModelFileImportOptionsKit.

Parameters

out_kit – The ModelFileImportOptionsKit to populate with the contents of this ModelFileImportOptionsKit.

bool ShowAnnotationCaptureFitting(AnnotationCaptureFitting &out_fitting) const

Shows the annotation capture fitting setting.

Parameters

out_fitting – The type of fitting to use for annotation captures.

Returns

true if an annotation capture fitting setting was specified, false otherwise.

bool ShowComputePreferredOpenShellOrientation(bool &out_state) const

Shows the compute preferred open shell orientation setting.

Parameters

out_state – The compute preferred open shell orientation to use in the A3DSewOptionsData structure when importing a file.

Returns

true if compute preferred open shell orientation setting was specified, false otherwise.

bool ShowConfiguration(UTF8Array &out_configuration) const

Shows the configuration setting.

Parameters

out_configuration – List of nested configuration names to import from a CAD file.

Returns

true if a configuation setting was specified, false otherwise.

bool ShowGeometryDefaultColor(RGBAColor &out_color) const

Shows the geometry default color setting.

Parameters

out_color – The geometry default color setting.

Returns

true if a geometry default color setting was specified, false otherwise.

bool ShowHiddenObjects(bool &out_state) const

Shows the read hidden objects setting.

Parameters

out_state – Whether to import hidden objects from the CAD model or not.

Returns

true if the read hidden objects setting was specified, false otherwise.

bool ShowIFCEdges(bool &out_state) const

Shows the IFC edges setting.

Parameters

out_state – Whether to import edges for an IFC file.

Returns

true if an IFC edge setting was specified, false otherwise.

bool ShowLocation(ComponentPath &out_path, MatrixKit &out_transform) const

Shows the location setting.

Parameters
  • out_path – The path describing the location to insert the imported file into.

  • out_transform – The transform to apply to the components being added to the existing CADModel.

Returns

true if a location setting was specified, false otherwise.

bool ShowNURBSConversion(HPS::Exchange::NURBSConversionOptionsKit &out_nurbs_conversion_options) const

Shows the NURBS conversion setting.

Parameters

out_nurbs_conversion_options – The options to be used during the conversion.

Returns

true if NURBS conversion setting was specified, false otherwise.

bool ShowPMIFlipping(bool &out_pmi_flipping) const

Shows the pmi flipping setting.

Parameters

out_pmi_flipping – The pmi flipping setting that was specified.

Returns

true if a pmi flipping setting was specified, false otherwise.

bool ShowSewingTolerance(double &out_tolerance) const

Shows the sewing tolerance setting.

Parameters

out_tolerance – The sewing tolerance to use on the A3DAsmModelFile prior to generating the scene graph.

Returns

true if a sewing tolerance setting was specified, false otherwise.

bool ShowTessellationAccuracy(Tessellation::Accuracy &out_type, bool &out_accurate_normals, bool &out_accurate_surface_curvatures, double &out_accurate_grid_maximum_stitch_length) const

Shows the tessellation accuracy setting.

Parameters
  • out_type – The type of the tessellation accuracy which was specified.

  • out_accurate_normals – Whether to compute surface normals when performing accurate tessellation. This only applies if out_type is different than Tessellation::Accuracy::Standard.

  • out_accurate_surface_curvatures – Whether to take into account surfaces curvature in accurate tessellation to controle triangles elongation directions. This only applies if out_type is different than Tessellation::Accuracy::Standard.

  • out_accurate_grid_maximum_stitch_length – Maximal grid stitch length. Disabled if value is 0. Be careful, a too small value can generate a huge tessellation. This only applies if out_type is Tessellation::Accuracy::GridAccurate.

Returns

true if a tessellation accuracy setting was specified, false otherwise.

bool ShowTessellationCleanup(bool &out_cleanup) const

Shows the tessellation cleanup setting.

Parameters

out_cleanup – The tesselation cleanup setting that was specified.

Returns

true if a tessellation cleanup setting was specified, false otherwise.

bool ShowTessellationLevel(Tessellation::Type &out_type, Tessellation::Level &out_level, Tessellation::Chord::Limit &out_limit_type, double &out_limit, double &out_angle_tolerance) const

Shows the tessellation level setting.

Parameters
  • out_type – The type of the tessellation level setting which was specified.

  • out_level – The predefined quality of the tessellation that will be generated for BRep data. This is only valid if out_type is Tessellation::Type::Standard.

  • out_limit_type – The type of chord limit which was specified. This is only valid if out_type is Tessellation::Type::Custom.

  • out_limit – The chord limit to use to generate tessellation for BRep data. Its interpretation depends on the preceding argument. This is only valid if out_type is Tessellation::Type::Custom.

  • out_angle_tolerance – The maximum angle in degrees between two consecutive wire elements in the generated tessellation. This is only valid if out_type is Tessellation::Type::Custom.

Returns

true if a tessellation level setting was specified, false otherwise.

bool ShowTessellationMaximumEdgeLength(double &out_length) const

Shows the tessellation maximum edge length setting.

Parameters

out_length – The tessellation maximum edge length setting.

Returns

true if a tessellation maximum edge length setting was specified, false otherwise.

bool ShowTessellationPreservesUVPoints(bool &out_state) const

Shows the tessellation UV preservation setting.

Parameters

out_state – Whether to keep parametric points as texture coordinates when generating the tessellation for BRep data.

Returns

true if a tessellation UV preservation setting was specified, false otherwise.

ModelFileImportOptionsKit &UnsetAnnotationCaptureFitting()

Removes the annotation capture fitting setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetComputePreferredOpenShellOrientation()

Removes the compute preferred open shell orientation setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetEverything()

Removes all settings from this ModelFileImportOptionsKit.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetGeometryDefaultColor()

Removes the geometry default color setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetHiddenObjects()

Removes the read hidden objects setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetIFCEdges()

Removes the IFC edges setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetLocation()

Removes the location setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetNURBSConversion()

Removes the NURBS conversion setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetPMIFlipping()

Removes the pmi flipping setting.

Returns

A reference to this ImportOptionsKit.

ModelFileImportOptionsKit &UnsetSewingTolerance()

Removes the sewing tolerance setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetTessellationAccuracy()

Removes the tessellation accuracy setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetTessellationCleanup()

Removes the tessellation cleanup setting.

Returns

A reference to this ImportOptionsKit.

ModelFileImportOptionsKit &UnsetTessellationLevel()

Removes the tessellation level setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetTessellationMaximumEdgeLength()

Removes the tessellation maximum edge length setting.

Returns

A reference to this ModelFileImportOptionsKit.

ModelFileImportOptionsKit &UnsetTessellationPreservesUVPoints()

Removes the tessellation UV preservation setting.

Returns

A reference to this ModelFileImportOptionsKit.

virtual ~ModelFileImportOptionsKit()

Public Static Functions

static ModelFileImportOptionsKit GetDefault()

Creates an ModelFileImportOptionsKit which contains the default settings. The returned object will not necessarily have values set for every option, but it will have settings for those options where it is reasonable to have a default. These values will be used for import unless an option is overridden by the options passed to File::Import(void*,const ModelFileImportOptionsKit&).

Returns

A ModelFileImportOptionsKit with the default settings.

Public Static Attributes

static const HPS::Type staticType = HPS::Type::ExchangeModelFileImportOptionsKit