Utility class to unpack/pack dimension presentations as object property of study. More...
#include <GEOMGUI_DimensionProperty.h>
Classes | |
| struct | Angle |
| Declaration of properties for angle dimensions. More... | |
| struct | Diameter |
| Declaration of properties for diameter dimensions. More... | |
| struct | Length |
| Declaration of properties for length dimensions. More... | |
| struct | Record |
Public Types | |
| enum | DimensionType { DimensionType_Length, DimensionType_Diameter, DimensionType_Angle } |
| Type of packed presentation. More... | |
| typedef QSharedPointer< Record > | RecordPtr |
Public Member Functions | |
| GEOMGUI_DimensionProperty () | |
| Constructor. Inits empty property. More... | |
| GEOMGUI_DimensionProperty (const GEOMGUI_DimensionProperty &theOther) | |
| Copy constructor. More... | |
| GEOMGUI_DimensionProperty (SalomeApp_Study *theStudy, const std::string &theEntry) | |
| Constructor. Inits property from attribute. More... | |
| GEOMGUI_DimensionProperty (const QString &theProperty) | |
| Constructor. Inits property from formatted QString. More... | |
| ~GEOMGUI_DimensionProperty () | |
| Destructor. More... | |
| operator QVariant () const | |
| Overload QVariant cast operator. More... | |
| operator QString () const | |
| Overload QString cast operator. More... | |
| bool | operator== (const GEOMGUI_DimensionProperty &theOther) const |
| Overload comparsion. More... | |
| bool | operator!= (const GEOMGUI_DimensionProperty &theOther) const |
| Overload comparsion. More... | |
| int | GetNumber () const |
| Returns number of dimension records. More... | |
| void | AddRecord (const Handle(AIS_Dimension)&theIO, const gp_Ax3 &theLCS) |
| Adds new record for the passed interactive object. Convenience method. More... | |
| void | AddRecord (const RecordPtr &theRecord) |
| Adds new dimension record. More... | |
| void | SetRecord (const int theIndex, const Handle(AIS_Dimension)&theIO, const gp_Ax3 &theLCS) |
| Update dimension record data. More... | |
| void | SetRecord (const int theIndex, const RecordPtr &theRecord) |
| Update dimension record data. More... | |
| const RecordPtr & | GetRecord (const int theIndex) const |
| Access record by index. More... | |
| void | RemoveRecord (const int theIndex) |
| Removes record by its index. More... | |
| void | Clear () |
| Clears property data. More... | |
| bool | IsVisible (const int theIndex) const |
| Returns visibility state of dimension record by its index. More... | |
| void | SetVisible (const int theIndex, const bool theIsVisible) |
| Changes visibility state of the dimension record. More... | |
| QString | GetName (const int theIndex) const |
| Returns name of dimension record by its index. More... | |
| void | SetName (const int theIndex, const QString &theName) |
| Changes name of dimension record. More... | |
| int | GetType (const int theIndex) const |
| Returns dimension type. More... | |
| void | LoadFromAttribute (SalomeApp_Study *theStudy, const std::string &theEntry) |
| Loads properties data from attribute "AttributeTableOfReal". More... | |
| void | SaveToAttribute (SalomeApp_Study *theStudy, const std::string &theEntry) |
| Saves properties data to attribute "AttributeTableOfReal". More... | |
Private Types | |
| typedef QVector< bool > | VectorOfVisibility |
| typedef QVector< QString > | VectorOfNames |
| typedef QVector< RecordPtr > | VectorOfRecords |
Private Member Functions | |
| int | TypeFromIO (const Handle(AIS_Dimension)&theIO) const |
| Determines dimension type code. More... | |
Private Attributes | |
| VectorOfVisibility | myVisibility |
| VectorOfNames | myNames |
| VectorOfRecords | myRecords |
Dimension presentations are store in relative coordinate system (LCS). To ensure that dimension is bound to the equal shape irrespectively of its location transformation.
The record is a list of qvariant, containing packed dimension properties and its attributes: (name);(is_visible);(dimension type);(dimension property list);
The following packing scheme is used to store dimension data: Length: (plane)[0-3] (flyout)[4] (text flags)[5-6] (arrow flag)[7] (p1)[8-10] (pnt2)[11-13] Diam: (plane)[0-3] (flyout)[4] (text flags)[5-6] (arrow flag)[7] (circle loc, xdir, ydir, rad)[8-17] Angle: (flyout)[0] (text flags)[1-2] (arrow flag)[3] (p1)[4-6] (p2)[7-9] (center)[10-12]
| typedef QSharedPointer<Record> GEOMGUI_DimensionProperty::RecordPtr |
|
private |
|
private |
|
private |
| GEOMGUI_DimensionProperty::GEOMGUI_DimensionProperty | ( | ) |
| GEOMGUI_DimensionProperty::GEOMGUI_DimensionProperty | ( | const GEOMGUI_DimensionProperty & | theOther | ) |
References DimensionType_Angle, DimensionType_Diameter, DimensionType_Length, myNames, myRecords, and myVisibility.
| GEOMGUI_DimensionProperty::GEOMGUI_DimensionProperty | ( | SalomeApp_Study * | theStudy, |
| const std::string & | theEntry | ||
| ) |
References LoadFromAttribute().
| GEOMGUI_DimensionProperty::GEOMGUI_DimensionProperty | ( | const QString & | theProperty | ) |
References DimensionType_Angle, DimensionType_Diameter, DimensionType_Length, myNames, myRecords, and myVisibility.
| GEOMGUI_DimensionProperty::~GEOMGUI_DimensionProperty | ( | ) |
| void GEOMGUI_DimensionProperty::AddRecord | ( | const Handle(AIS_Dimension)& | theIO, |
| const gp_Ax3 & | theLCS | ||
| ) |
| theIO | [in] the interactive dimension to append as new record. |
| theLCS | [in] the local coordinate system of parent object. |
References anAngle, DimensionType_Angle, DimensionType_Diameter, DimensionType_Length, Handle(), myNames, myRecords, myVisibility, and TypeFromIO().
| void GEOMGUI_DimensionProperty::AddRecord | ( | const RecordPtr & | theRecord | ) |
| theRecord | [in] the record to add. |
References myNames, myRecords, and myVisibility.
| void GEOMGUI_DimensionProperty::Clear | ( | ) |
References myNames, myRecords, and myVisibility.
| QString GEOMGUI_DimensionProperty::GetName | ( | const int | theIndex | ) | const |
| theIndex | [in] the index of the dimension record. |
References myNames.
| int GEOMGUI_DimensionProperty::GetNumber | ( | ) | const |
References myRecords.
| const GEOMGUI_DimensionProperty::RecordPtr & GEOMGUI_DimensionProperty::GetRecord | ( | const int | theIndex | ) | const |
| theIndex | [in] the index of the dimension record. |
References myRecords.
| int GEOMGUI_DimensionProperty::GetType | ( | const int | theIndex | ) | const |
References myRecords.
| bool GEOMGUI_DimensionProperty::IsVisible | ( | const int | theIndex | ) | const |
| theIndex | [in] the index of the dimension record. |
References myVisibility.
| void GEOMGUI_DimensionProperty::LoadFromAttribute | ( | SalomeApp_Study * | theStudy, |
| const std::string & | theEntry | ||
| ) |
| theStudy | [in] the study. |
| theEntry | [in] the entry of GEOM object to operate with. |
References Clear(), DimensionType_Angle, DimensionType_Diameter, DimensionType_Length, it(), myNames, myRecords, and myVisibility.
| GEOMGUI_DimensionProperty::operator QString | ( | ) | const |
References DimensionType_Angle, DimensionType_Diameter, DimensionType_Length, it(), myNames, myRecords, and myVisibility.
| GEOMGUI_DimensionProperty::operator QVariant | ( | ) | const |
|
inline |
References operator==().
| bool GEOMGUI_DimensionProperty::operator== | ( | const GEOMGUI_DimensionProperty & | theOther | ) | const |
References DimensionType_Angle, DimensionType_Diameter, DimensionType_Length, it(), myNames, myRecords, and myVisibility.
| void GEOMGUI_DimensionProperty::RemoveRecord | ( | const int | theIndex | ) |
| theIndex | [in] the index of dimension record. |
References myNames, myRecords, and myVisibility.
| void GEOMGUI_DimensionProperty::SaveToAttribute | ( | SalomeApp_Study * | theStudy, |
| const std::string & | theEntry | ||
| ) |
| theStudy | [in] the study. |
| theEntry | [in] the entry of GEOM object to operate with. |
References it(), myNames, myRecords, and myVisibility.
| void GEOMGUI_DimensionProperty::SetName | ( | const int | theIndex, |
| const QString & | theName | ||
| ) |
| theIndex | [in] the index of the dimension record. |
| theName | [in] the new name. |
References myNames.
| void GEOMGUI_DimensionProperty::SetRecord | ( | const int | theIndex, |
| const Handle(AIS_Dimension)& | theIO, | ||
| const gp_Ax3 & | theLCS | ||
| ) |
| theIndex | [in] the index of the record. |
| theIO | [in] the interactive dimension to update properties. |
| theLCS | [in] the local coordinate system of parent object. |
References anAngle, DimensionType_Angle, DimensionType_Diameter, DimensionType_Length, Handle(), myRecords, and TypeFromIO().
| void GEOMGUI_DimensionProperty::SetRecord | ( | const int | theIndex, |
| const RecordPtr & | theRecord | ||
| ) |
| theIndex | [in] the index of the dimension record. |
| theRecord | [in] the record to replace with. |
References myRecords.
| void GEOMGUI_DimensionProperty::SetVisible | ( | const int | theIndex, |
| const bool | theIsVisible | ||
| ) |
| theIndex | [in] the index of the dimension record. |
| theIsVisible | [in] the new visibility state. |
References myVisibility.
|
private |
References DimensionType_Angle, DimensionType_Diameter, and DimensionType_Length.
|
private |
|
private |
|
private |