// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _STEPConstruct_Styles_HeaderFile #define _STEPConstruct_Styles_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _TColStd_IndexedDataMapOfTransientTransient_HeaderFile #include #endif #ifndef _TColStd_SequenceOfTransient_HeaderFile #include #endif #ifndef _STEPConstruct_Tool_HeaderFile #include #endif #ifndef _Handle_XSControl_WorkSession_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Handle_StepVisual_StyledItem_HeaderFile #include #endif #ifndef _Handle_StepRepr_RepresentationItem_HeaderFile #include #endif #ifndef _Handle_StepVisual_PresentationStyleAssignment_HeaderFile #include #endif #ifndef _Handle_StepRepr_RepresentationContext_HeaderFile #include #endif #ifndef _Handle_StepVisual_MechanicalDesignGeometricPresentationRepresentation_HeaderFile #include #endif #ifndef _Handle_StepShape_ContextDependentShapeRepresentation_HeaderFile #include #endif #ifndef _Handle_StepRepr_ProductDefinitionShape_HeaderFile #include #endif #ifndef _Handle_TColStd_HSequenceOfTransient_HeaderFile #include #endif #ifndef _Handle_StepVisual_Colour_HeaderFile #include #endif class XSControl_WorkSession; class StepVisual_StyledItem; class StepRepr_RepresentationItem; class StepVisual_PresentationStyleAssignment; class TopoDS_Shape; class StepRepr_RepresentationContext; class StepVisual_MechanicalDesignGeometricPresentationRepresentation; class StepShape_ContextDependentShapeRepresentation; class StepRepr_ProductDefinitionShape; class TColStd_HSequenceOfTransient; class StepVisual_Colour; class Quantity_Color; class STEPConstruct_DataMapOfAsciiStringTransient; class STEPConstruct_DataMapOfPointTransient; //! Provides a mechanism for reading and writing shape styles
//! (such as color) to and from the STEP file
//! This tool maintains a list of styles, either taking them
//! from STEP model (reading), or filling it by calls to
//! AddStyle or directly (writing).
//! Some methods deal with general structures of styles and
//! presentations in STEP, but there are methods which deal
//! with particular implementation of colors (as described in RP)
class STEPConstruct_Styles : public STEPConstruct_Tool { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Creates an empty tool
Standard_EXPORT STEPConstruct_Styles(); //! Creates a tool and initializes it
Standard_EXPORT STEPConstruct_Styles(const Handle(XSControl_WorkSession)& WS); //! Initializes tool; returns True if succeeded
Standard_EXPORT Standard_Boolean Init(const Handle(XSControl_WorkSession)& WS) ; //! Returns number of defined styles
Standard_EXPORT Standard_Integer NbStyles() const; //! Returns style with given index
Standard_EXPORT Handle_StepVisual_StyledItem Style(const Standard_Integer i) const; //! Clears all defined styles and PSA sequence
Standard_EXPORT void ClearStyles() ; //! Adds a style to a sequence
Standard_EXPORT void AddStyle(const Handle(StepVisual_StyledItem)& style) ; //! Create a style linking giving PSA to the item, and add it to the
//! sequence of stored styles. If Override is not Null, then
//! the resulting style will be of the subtype OverridingStyledItem.
Standard_EXPORT Handle_StepVisual_StyledItem AddStyle(const Handle(StepRepr_RepresentationItem)& item,const Handle(StepVisual_PresentationStyleAssignment)& PSA,const Handle(StepVisual_StyledItem)& Override) ; //! Create a style linking giving PSA to the Shape, and add it to the
//! sequence of stored styles. If Override is not Null, then
//! the resulting style will be of the subtype OverridingStyledItem.
//! The Sape is used to find corresponding STEP entity by call to
//! STEPConstruct::FindEntity(), then previous method is called.
Standard_EXPORT Handle_StepVisual_StyledItem AddStyle(const TopoDS_Shape& Shape,const Handle(StepVisual_PresentationStyleAssignment)& PSA,const Handle(StepVisual_StyledItem)& Override) ; //! Create MDGPR, fill it with all the styles previously defined,
//! and add it to the model
Standard_EXPORT Standard_Boolean CreateMDGPR(const Handle(StepRepr_RepresentationContext)& Context,Handle(StepVisual_MechanicalDesignGeometricPresentationRepresentation)& MDGPR) ; //! Create MDGPR, fill it with all the styles previously defined,
//! and add it to the model
//! IMPORTANT: must be null when use for NAUO colors
//! initialised only for SHUO case.
Standard_EXPORT Standard_Boolean CreateNAUOSRD(const Handle(StepRepr_RepresentationContext)& Context,const Handle(StepShape_ContextDependentShapeRepresentation)& CDSR,const Handle(StepRepr_ProductDefinitionShape)& initPDS) ; //! Searches the STEP model for the RepresentationContext in which
//! given shape is defined. This context (if found) can be used
//! then in call to CreateMDGPR()
Standard_EXPORT Handle_StepRepr_RepresentationContext FindContext(const TopoDS_Shape& Shape) const; //! Searches the STEP model for the MDGPR or DM entities
//! (which bring styles) and fills sequence of styles
Standard_EXPORT Standard_Boolean LoadStyles() ; //! Searches the STEP model for the INISIBILITY enteties
//! (which bring styles) and fills out sequence of styles
Standard_EXPORT Standard_Boolean LoadInvisStyles(Handle(TColStd_HSequenceOfTransient)& InvSyles) const; //! Create a PresentationStyleAssignment entity which defines
//! two colors (for filling surfaces and curves)
//! if isForNAUO true then returns PresentationStyleByContext
Standard_EXPORT Handle_StepVisual_PresentationStyleAssignment MakeColorPSA(const Handle(StepRepr_RepresentationItem)& item,const Handle(StepVisual_Colour)& SurfCol,const Handle(StepVisual_Colour)& CurveCol,const Standard_Boolean isForNAUO = Standard_False) const; //! Returns a PresentationStyleAssignment entity which defines
//! surface and curve colors as Col. This PSA is either created
//! or taken from internal map where all PSAs created by this
//! method are remembered.
Standard_EXPORT Handle_StepVisual_PresentationStyleAssignment GetColorPSA(const Handle(StepRepr_RepresentationItem)& item,const Handle(StepVisual_Colour)& Col) ; //! Extract color definitions from the style entity
//! For each type of color supported, result can be either
//! NULL if it is not defined by that style, or last
//! definition (if they are 1 or more)
Standard_EXPORT Standard_Boolean GetColors(const Handle(StepVisual_StyledItem)& style,Handle(StepVisual_Colour)& SurfCol,Handle(StepVisual_Colour)& BoundCol,Handle(StepVisual_Colour)& CurveCol,Standard_Boolean& IsComponent) const; //! Create STEP color entity by given Quantity_Color
//! The analysis is performed for whether the color corresponds to
//! one of standard colors predefined in STEP. In that case,
//! PredefinedColour entity is created instead of RGBColour
Standard_EXPORT static Handle_StepVisual_Colour EncodeColor(const Quantity_Color& Col) ; //! Create STEP color entity by given Quantity_Color
//! The analysis is performed for whether the color corresponds to
//! one of standard colors predefined in STEP. In that case,
//! PredefinedColour entity is created instead of RGBColour
Standard_EXPORT static Handle_StepVisual_Colour EncodeColor(const Quantity_Color& Col,STEPConstruct_DataMapOfAsciiStringTransient& DPDCs,STEPConstruct_DataMapOfPointTransient& ColRGBs) ; //! Decodes STEP color and fills the Quantity_Color.
//! Returns True if OK or False if color is not recognized
Standard_EXPORT static Standard_Boolean DecodeColor(const Handle(StepVisual_Colour)& Colour,Quantity_Color& Col) ; protected: private: TColStd_IndexedDataMapOfTransientTransient myMapOfStyles; TColStd_SequenceOfTransient myStyles; TColStd_SequenceOfTransient myPSA; }; // other Inline functions and methods (like "C++: function call" methods) #endif