API Search || Global Search
HPS::Exchange::Component Class Reference

#include <sprk_exchange.h>

Inheritance diagram for HPS::Exchange::Component:
HPS::Component HPS::Sprocket HPS::Object HPS::Exchange::ProductOccurrence HPS::Exchange::Sheet

Public Member Functions

 Component ()
 
 Component (HPS::Component const &in_that)
 
 Component (Exchange::Component const &in_that)
 
 Component (Exchange::Component &&in_that)
 
A3DEntity * GetExchangeEntity () const
 
HPS::Type ObjectType () const
 
Componentoperator= (Exchange::Component &&in_that)
 
ReloadNotifier Reload (TessellationOptionsKit const &in_tessellation_options=TessellationOptionsKit(), TranslationOptionsKit const &in_translation_options=TranslationOptionsKit())
 
bool SetTransform (MatrixKit const &in_transform)
 
void Tessellate (TessellationOptionsKit const &in_options)
 
TranslationNotifier Translate (Units in_units, TranslationOptionsKit const &in_translation_options)
 
virtual ~Component ()
 
- Public Member Functions inherited from HPS::Component
void AddKey (Key const &in_key)
 
void AddOwner (Component &in_owner, IncludeKey const &in_include=IncludeKey())
 
void AddReference (Component &in_reference)
 
virtual void Assign (Component const &in_that)
 
 Component ()
 
 Component (Component const &in_that)
 
 Component (Component &&in_that)
 
void Delete ()
 
bool Equals (Component const &in_that) const
 
void Flush ()
 
MetadataArray GetAllMetadata () const
 
ComponentArray GetAllSubcomponents (ComponentType in_type) const
 
ComponentType GetComponentType () const
 
KeyArray GetKeys () const
 
Metadata GetMetadata (char const *in_name) const
 
UTF8 GetName () const
 
ComponentArray GetOwners () const
 
ComponentArray GetReferences () const
 
ComponentArray GetReferrers () const
 
ComponentArray GetSubcomponents () const
 
bool HasComponentType (ComponentType in_mask) const
 
bool operator!= (Component const &in_that) const
 
Componentoperator= (Component const &in_that)
 
Componentoperator= (Component &&in_that)
 
bool operator== (Component const &in_that) const
 
bool SetTransform (MatrixKit const &in_transform)
 
- Public Member Functions inherited from HPS::Sprocket
 Sprocket (Sprocket &&in_that)
 
- Public Member Functions inherited from HPS::Object
virtual bool Empty () const
 
intptr_t GetClassID () const
 
intptr_t GetInstanceID () const
 
bool HasType (HPS::Type in_mask) const
 
 Object (Object const &that)
 
 Object (Object &&in_that)
 
Objectoperator= (Object const &other_object)
 
Objectoperator= (Object &&in_that)
 
virtual void Reset ()
 
virtual HPS::Type Type () const
 

Static Public Attributes

static const HPS::Type staticType = HPS::Type::ExchangeComponent
 
- Static Public Attributes inherited from HPS::Component
static const HPS::Type staticType = HPS::Type::Component
 
- Static Public Attributes inherited from HPS::Object
static const HPS::Type staticType = HPS::Type::None
 

Additional Inherited Members

- Public Types inherited from HPS::Component
enum  ComponentType : uint32_t {
  None = 0x00000000, GenericMask = 0xfffff000, ComponentType::ExchangeComponentMask = 0x00001000, ComponentType::ExchangeModelFile = 0x00001001,
  ComponentType::ExchangeProductOccurrence = 0x00001002, ComponentType::ExchangePartDefinition = 0x00001003, ComponentType::ExchangeView = 0x00001004, ComponentType::ExchangeFilter = 0x00001005,
  ComponentType::ExchangeRepresentationItemMask = 0x00003000, ComponentType::ExchangeRIBRepModel = 0x00003001, ComponentType::ExchangeRICurve = 0x00003002, ComponentType::ExchangeRIDirection = 0x00003003,
  ComponentType::ExchangeRIPlane = 0x00003004, ComponentType::ExchangeRIPointSet = 0x00003005, ComponentType::ExchangeRIPolyBRepModel = 0x00003006, ComponentType::ExchangeRIPolyWire = 0x00003007,
  ComponentType::ExchangeRISet = 0x00003008, ComponentType::ExchangeRICoordinateSystem = 0x00003009, ComponentType::ExchangeTopologyMask = 0x00005000, ComponentType::ExchangeTopoBody = 0x00005001,
  ComponentType::ExchangeTopoConnex = 0x00005002, ComponentType::ExchangeTopoShell = 0x00005003, ComponentType::ExchangeTopoFace = 0x00005004, ComponentType::ExchangeTopoLoop = 0x00005005,
  ComponentType::ExchangeTopoCoEdge = 0x00005006, ComponentType::ExchangeTopoEdge = 0x00005007, ComponentType::ExchangeTopoVertex = 0x00005008, ComponentType::ExchangeTopoSingleWireBody = 0x00005009,
  ComponentType::ExchangeTopoWireEdge = 0x0000500a, ComponentType::ExchangeDrawingMask = 0x00009000, ComponentType::ExchangeDrawingModel = 0x00009001, ComponentType::ExchangeDrawingView = 0x00009002,
  ComponentType::ExchangeDrawingSheet = 0x00009003, ComponentType::ExchangeBasicDrawingBlock = 0x00009004, ComponentType::ExchangeOperatorDrawingBlock = 0x00009005, ComponentType::ExchangePMIMask = 0x00011000,
  ComponentType::ExchangePMI = ExchangePMIMask, ComponentType::ExchangePMIText = 0x00011100, ComponentType::ExchangePMIRichText = 0x00011200, ComponentType::ExchangePMIRoughness = 0x00011300,
  ComponentType::ExchangePMIGDT = 0x00011400, ComponentType::ExchangePMIDatum = 0x00011500, ComponentType::ExchangePMILineWelding = 0x00011600, ComponentType::ExchangePMISpotWelding = 0x00011700,
  ComponentType::ExchangePMIDimension = 0x00011800, ComponentType::ExchangePMIBalloon = 0x00011900, ComponentType::ExchangePMICoordinate = 0x00011a00, ComponentType::ExchangePMIFastener = 0x00011b00,
  ComponentType::ExchangePMILocator = 0x00011c00, ComponentType::ExchangePMIMeasurementPoint = 0x00011d00, ComponentType::ParasolidComponentMask = 0x00020000, ComponentType::ParasolidModelFile = 0x00020001,
  ComponentType::ParasolidAssembly = 0x00020002, ComponentType::ParasolidInstance = 0x00020003, ComponentType::ParasolidTopologyMask = 0x00060000, ComponentType::ParasolidTopoBody = 0x00060001,
  ComponentType::ParasolidTopoRegion = 0x00060002, ComponentType::ParasolidTopoShell = 0x00060003, ComponentType::ParasolidTopoFace = 0x00060004, ComponentType::ParasolidTopoLoop = 0x00060005,
  ComponentType::ParasolidTopoFin = 0x00060006, ComponentType::ParasolidTopoEdge = 0x00060007, ComponentType::ParasolidTopoVertex = 0x00060008, ComponentType::DWGComponentMask = 0x00100000,
  ComponentType::DWGModelFile = 0x00100001, ComponentType::DWGLayout = 0x00100002, ComponentType::DWGBlockTable = 0x00100003, ComponentType::DWGBlockTableRecord = 0x00100004,
  ComponentType::DWGEntity = 0x00100005, ComponentType::DWGLayerTable = 0x00100006, ComponentType::DWGLayer = 0x00100007, ComponentType::UserComponent = 0x01000000
}
 
enum  Visibility : uint32_t { Visibility::PreserveUserDefined, Visibility::PreserveModelDefined, Visibility::PreserveNone, Visibility::PreserveAll }
 
- Static Public Member Functions inherited from HPS::Component
static KeyPathArray GetKeyPath (Component const &in_component)
 
static KeyPathArray GetKeyPath (size_t in_count, Component const in_components[])
 
static KeyPathArray GetKeyPath (ComponentArray const &in_components)
 
- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 

Detailed Description

The Component class is a smart pointer. It represents a variety of Exchange components. The primary purpose of this class is simply to provide access to the underlying A3DEntity pointer for use by Exchange library functions.

Constructor & Destructor Documentation

HPS::Exchange::Component::Component ( )

The default constructor creates an uninitialized Exchange::Component object. The Type() function will return Type::None.

HPS::Exchange::Component::Component ( HPS::Component const &  in_that)

This constructor creates an Exchange::Component object that shares the underlying smart-pointer of the source Component. The copy will only be successful if the source component is really an upcast of an Exchange::Component object. Otherwise the copy will fail and the resulting Exchange::Component will be invalid.

Parameters
in_thatThe source Component to copy.
HPS::Exchange::Component::Component ( Exchange::Component const &  in_that)

The copy constructor creates an Exchange::Component object that shares the underlying smart-pointer of the source Exchange::Component.

Parameters
in_thatThe source Exchange::Component to copy.
HPS::Exchange::Component::Component ( Exchange::Component &&  in_that)

The move constructor creates an Exchange::Component by transferring the underlying object of the rvalue reference to this Exchange::Component.

Parameters
in_thatAn rvalue reference to an Exchange::Component to take the underlying object from.
virtual HPS::Exchange::Component::~Component ( )
virtual

Releases a reference to this Component. The Component will not be deleted unless the final reference is destroyed.

Reimplemented from HPS::Component.

Member Function Documentation

A3DEntity* HPS::Exchange::Component::GetExchangeEntity ( ) const

Gets the A3DEntity pointer corresponding to this Exchange Component.

Returns
The A3DEntity pointer corresponding to this Exchange Component.
Component& HPS::Exchange::Component::operator= ( Exchange::Component &&  in_that)

The move assignment operator transfers the underlying object of the rvalue reference to this Exchange::Component.

Parameters
in_thatAn rvalue reference to an Exchange::Component to take the underlying object from.
Returns
A reference to this Exchange::Component.
ReloadNotifier HPS::Exchange::Component::Reload ( TessellationOptionsKit const &  in_tessellation_options = TessellationOptionsKit(),
TranslationOptionsKit const &  in_translation_options = TranslationOptionsKit() 
)

Asynchronously reloads this component. This will delete all underlying subcomponents and then reparse the underlying Exchange data. This function should be invoked on the Component corresponding to an entity which was edited or a Component above such a Component.

Parameters
in_tessellation_optionsThe options to use to generate tessellations for new Components (if necessary).
in_translation_optionsThe options to use for translation from Exchange BRep to Parasolid. This option only applies if a file was loaded via the ExchangeParasolid module and there are components underlying this component that need to be translated to Parasolid.
Returns
A ReloadNotifier object that can be used to query the reload progress and status.
bool HPS::Exchange::Component::SetTransform ( MatrixKit const &  in_transform)

Applies a transform to the underlying PRC data associated with this component. Only components of type ExchangeProductOccurrence, or components that have the type ExchangeRepresentationItemMask can have transforms applied to them. Additionally, SetTransform does not work on Exchange models which have a Drawing structure to them. This would include CATDrawing files and 2D DWG files loaded through Exchange. Any attempt to use this function on those models will produce a warning.

Parameters
in_transformThe transform to apply to this component.
Returns
true if transform was applied correctly, false otherwise.
void HPS::Exchange::Component::Tessellate ( TessellationOptionsKit const &  in_options)

Re-tessellate the given Component with the provided options. Tessellation occurs at the representation item level in Exchange, so calling this function on Component objects below that level will have no effect. If this function is invoked on Component objects above that level, e.g., at the product occurrence level, all representation items underneath that Component will be re-tessellated with the provided options. Additionally, only components for which there is BRep data can the tessellation be regenerated.

Parameters
in_optionsThe options to use to generate the new tessellation for this Component.
TranslationNotifier HPS::Exchange::Component::Translate ( Units  in_units,
TranslationOptionsKit const &  in_translation_options 
)

Asynchronously translates this component into an array of Parasolid parts, using the options provided. A valid Parasolid session is required for this function to succeed. The component has to be a Representation Item for this function to succeed.

Parameters
in_unitsThe units for the representation item
in_translation_optionsOptions used during the translation.
Returns
A TranslationNotifier object that can be used to query the translation progress and status.

The documentation for this class was generated from the following file: