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 |