The CurveCreator_Curve object is represented as one or more sets of connected points; thus CurveCreator_Curve object can contain several not connected curves (polylines or b-splines), each such curve has two only ends "start and end points" in other words non-manifold curves are not supported.
#include <CurveCreator_Curve.hxx>
Public Member Functions | |
CurveCreator_Curve (const CurveCreator::Dimension theDimension) | |
Constructor of the curve. More... | |
virtual | ~CurveCreator_Curve () |
Destructor. More... | |
virtual CurveCreator::Dimension | getDimension () const |
Get the dimension. More... | |
virtual std::string | getUniqSectionName () const |
Return unique section name. More... | |
virtual void | setDisplayer (CurveCreator_Displayer *theDisplayer) |
Set curve creator Displayer object. More... | |
CurveCreator_Displayer * | getDisplayer () |
Return curve creator Displayer object. More... | |
virtual void | removeDisplayer () |
Remove curve creator Displayer object. More... | |
virtual void | setUndoDepth (const int theDepth=-1) |
Set depth of undo operations (unlimited if theDepth is -1 or disabled if theDepth is 0) More... | |
virtual int | getUndoDepth () const |
Get depth of undo operations. More... | |
virtual void | startOperation () |
virtual void | finishOperation () |
virtual int | toICoord (const int theIPnt) const |
This method converts the point index to the index in an array of coordinates. More... | |
virtual bool | moveSectionInternal (const int theISection, const int theNewIndex) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | moveSection (const int theISection, const int theNewIndex) |
Move section to new position in list. More... | |
void | getCoordinates (int theISection, int theIPoint, double &theX, double &theY, double &theZ) const |
virtual int | getNbUndo () const |
Get number of available undo operations. More... | |
virtual bool | undo () |
Undo previous operation. More... | |
virtual int | getNbRedo () const |
Get number of available redo operations. More... | |
virtual bool | redo () |
Redo last previously "undone" operation. More... | |
virtual bool | clearInternal () |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | clear () |
Clear the polyline (remove all sections) More... | |
virtual bool | joinInternal (const std::list< int > &theSections) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | join (const std::list< int > &theSections) |
Join list of sections to one section (join all if the list is empty) More... | |
virtual int | getNbSections () const |
Get number of sections. More... | |
virtual int | addSectionInternal (const std::string &theName, const CurveCreator::SectionType theType, const bool theIsClosed, const CurveCreator::Coordinates &thePoints) |
For internal use only! Undo/Redo are not used here. More... | |
virtual int | addSection (const std::string &theName, const CurveCreator::SectionType theType, const bool theIsClosed) |
Add a new section. More... | |
virtual int | addSection (const std::string &theName, const CurveCreator::SectionType theType, const bool theIsClosed, const CurveCreator::Coordinates &thePoints) |
Add a new section. More... | |
virtual bool | removeSectionInternal (const int theISection) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | removeSection (const int theISection) |
Removes the given sections. More... | |
virtual bool | isClosed (const int theISection) const |
Get "closed" flag of the specified section. More... | |
virtual bool | setClosedInternal (const int theISection, const bool theIsClosed) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | setClosed (const int theISection, const bool theIsClosed) |
Set "closed" flag of the specified section (all sections if theISection is -1). More... | |
virtual std::string | getSectionName (const int theISection) const |
Returns specifyed section name. More... | |
virtual bool | setSectionNameInternal (const int theISection, const std::string &theName) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | setSectionName (const int theISection, const std::string &theName) |
Set name of the specified section. More... | |
virtual CurveCreator::SectionType | getSectionType (const int theISection) const |
Get type of the specified section. More... | |
virtual bool | setSectionTypeInternal (const int theISection, const CurveCreator::SectionType theType) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | setSectionType (const int theISection, const CurveCreator::SectionType theType) |
Set type of the specified section (or all sections if theISection is -1). More... | |
const CurveCreator_ISection * | getSection (const int theSectionIndex) const |
A virtual method. More... | |
CurveCreator_ISection * | getSection (const int theSectionIndex) |
A virtual method. More... | |
virtual bool | addPointsInternal (const CurveCreator::SectionsMap &theSectionsMap) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | addPoints (const CurveCreator::Coordinates &theCoords, const int theISection, const int theIPnt=-1) |
Add one point to the specified section starting from the given theIPnt index (or at the end of points if theIPnt is -1). More... | |
virtual bool | setPointInternal (const CurveCreator::SectionsMap &theSectionsMap) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | setPoint (const int theISection, const int theIPnt, const CurveCreator::Coordinates &theNewCoords) |
Set coordinates of specified point. More... | |
virtual bool | setSeveralPoints (const SectionToPointCoordsList &theSectionToPntCoords, const bool theIsToSaveDiff=true) |
Set coordinates of specified points from different sections. More... | |
virtual bool | removePointsInternal (const SectionToPointList &thePoints) |
For internal use only! Undo/Redo are not used here. More... | |
virtual bool | removePoint (const int theISection, const int theIPnt=-1) |
Remove point with given id. More... | |
virtual bool | removeSeveralPoints (const SectionToPointList &theSectionToPntIDs) |
Remove several points from different sections with given ids. More... | |
virtual CurveCreator::Coordinates | getPoint (const int theISection, const int theIPnt) const |
Get coordinates of specified point. More... | |
virtual CurveCreator::Coordinates | getPoints (const int theISection=-1) const |
Get points of a section (the total points in Curve if theISection is equal to -1). More... | |
virtual int | getNbPoints (const int theISection) const |
Get number of points in specified section or (the total number of points in Curve if theISection is equal to -1). More... | |
virtual void | setSkipSorting (const bool theIsToSkip) |
Set skip sorting flag. More... | |
virtual bool | canPointsBeSorted () |
Indicates whether the points can be sorted. More... | |
virtual void | saveCoordDiff (const SectionToPointCoordsList &theOldCoords) |
Saves points coordinates difference. More... | |
virtual | Handle (AIS_InteractiveObject) getAISObject(const bool theNeedToBuild |
Get the curve AIS object. More... | |
Public Member Functions inherited from CurveCreator_ICurve | |
virtual | ~CurveCreator_ICurve () |
The destructor. More... | |
Public Attributes | |
bool | myIsLocked |
CurveCreator::Sections | mySections |
curve data More... | |
CurveCreator::Dimension | myDimension |
curve dimension More... | |
CurveCreator_Displayer * | myDisplayer |
curve displayer More... | |
Protected Types | |
typedef std::list < CurveCreator_Diff > | ListDiff |
Protected Member Functions | |
virtual bool | addEmptyDiff () |
This method updates all undo/redo information required to be updated after curve modification operation. More... | |
void | redisplayCurve () |
bool | removeSectionPoints (const int theSectionId, const std::list< int > &thePointIds) |
Removes the points from the section. More... | |
void | convert (const SectionToPointList &thePoints, std::map< int, std::list< int > > &theConvPoints) |
Converts the list of pairs of section to point into map of a section to list of points. More... | |
virtual void | constructAISObject () |
Protected Attributes | |
bool | mySkipSorting |
Private Attributes | |
int | myNbUndos |
int | myNbRedos |
ListDiff::iterator | myCurrenPos |
ListDiff | myListDiffs |
int | myUndoDepth |
int | myOpLevel |
AIS_Shape * | myAISShape |
AIS shape. More... | |
Additional Inherited Members | |
Public Types inherited from CurveCreator_ICurve | |
typedef std::pair< int, int > | SectionToPoint |
typedef std::deque < SectionToPoint > | SectionToPointList |
typedef std::deque< std::pair < SectionToPoint, CurveCreator::Coordinates > > | SectionToPointCoordsList |
|
protected |
CurveCreator_Curve::CurveCreator_Curve | ( | const CurveCreator::Dimension | theDimension | ) |
The dimension is explicitly specified in the constructor and cannot be changed later.
|
virtual |
References clear().
|
protectedvirtual |
It returns false if undo/redo is disabled and true otherwise.
References myCurrenPos, myListDiffs, myNbRedos, myNbUndos, and myUndoDepth.
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), addPointsInternal(), finishOperation(), CurveCreator_Operation::InsertPoints, myListDiffs, and startOperation().
|
virtual |
References getSection(), CurveCreator_Section::myPoints, redisplayCurve(), and toICoord().
|
virtual |
Implements CurveCreator_ICurve.
References CurveCreator_Operation::AddSection.
|
virtual |
References CurveCreator_Operation::AddSection.
|
virtual |
|
virtual |
Implements CurveCreator_ICurve.
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), clearInternal(), finishOperation(), myListDiffs, and startOperation().
|
virtual |
References CurveCreator_Displayer::eraseAll(), getNbSections(), getSection(), myAISShape, myDisplayer, mySections, and NULL.
|
protectedvirtual |
Implements CurveCreator_ICurve.
References CurveCreator_Utils::constructShape(), Handle(), and myAISShape.
|
protected |
thePoints | an source list |
theConvPoints | a converted map |
|
virtual |
References myOpLevel.
void CurveCreator_Curve::getCoordinates | ( | int | theISection, |
int | theIPoint, | ||
double & | theX, | ||
double & | theY, | ||
double & | theZ | ||
) | const |
References CurveCreator::Dim3d, getDimension(), and getPoint().
|
virtual |
Implements CurveCreator_ICurve.
References myDimension.
CurveCreator_Displayer * CurveCreator_Curve::getDisplayer | ( | ) |
References myDisplayer.
|
virtual |
Implements CurveCreator_ICurve.
References getNbSections(), getSection(), myDimension, and CurveCreator_Section::myPoints.
|
virtual |
Implements CurveCreator_ICurve.
References myNbRedos.
|
virtual |
Implements CurveCreator_ICurve.
References mySections.
|
virtual |
Implements CurveCreator_ICurve.
References myNbUndos.
|
virtual |
Implements CurveCreator_ICurve.
References anIter(), aResult, getSection(), myDimension, CurveCreator_Section::myPoints, and toICoord().
|
virtual |
Implements CurveCreator_ICurve.
References getSection(), and CurveCreator_Section::myPoints.
|
inlinevirtual |
Implements CurveCreator_ICurve.
References NULL.
|
inlinevirtual |
Implements CurveCreator_ICurve.
|
virtual |
Returns specified section name.
Implements CurveCreator_ICurve.
References getSection(), and CurveCreator_Section::myName.
|
virtual |
Implements CurveCreator_ICurve.
References CurveCreator_Section::myType, and CurveCreator::Polyline.
|
virtual |
References myUndoDepth.
|
virtual |
References getSection(), CurveCreator_Section::myName, and mySections.
|
virtual |
Reimplemented from CurveCreator_ICurve.
|
virtual |
Implements CurveCreator_ICurve.
References getSection(), and CurveCreator_Section::myIsClosed.
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), CurveCreator_Operation::Join, joinInternal(), myListDiffs, and startOperation().
|
virtual |
References getSection(), CurveCreator_Section::myPoints, redisplayCurve(), and removeSectionInternal().
|
virtual |
|
virtual |
References anIter(), getSection(), and mySections.
|
protected |
References CurveCreator_Displayer::display(), CurveCreator_Displayer::eraseAll(), myAISShape, myDisplayer, and NULL.
|
virtual |
Implements CurveCreator_ICurve.
References myCurrenPos, myNbRedos, and myNbUndos.
|
virtual |
References myDisplayer, and NULL.
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), myListDiffs, CurveCreator_Operation::RemovePoints, removePointsInternal(), and startOperation().
|
virtual |
References convert(), redisplayCurve(), and removeSectionPoints().
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), myListDiffs, CurveCreator_Operation::RemoveSection, removeSectionInternal(), and startOperation().
|
virtual |
References mySections, and redisplayCurve().
|
protected |
It sortes the points and remove them in the decreasing order
theSectionId | a section index |
thePointIds | a list of section points |
References getDimension(), getSection(), CurveCreator_Section::myPoints, and toICoord().
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), myListDiffs, CurveCreator_Operation::RemovePoints, removePointsInternal(), and startOperation().
|
virtual |
theOldCoords | the old points coordinates |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), myListDiffs, and startOperation().
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), myListDiffs, CurveCreator_Operation::SetClosed, setClosedInternal(), and startOperation().
|
virtual |
References getSection(), CurveCreator_Section::myIsClosed, mySections, and redisplayCurve().
|
virtual |
References myDisplayer.
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), getNbPoints(), myListDiffs, CurveCreator_Operation::SetCoordinates, setPointInternal(), and startOperation().
|
virtual |
References getSection(), myDimension, CurveCreator_Section::myPoints, redisplayCurve(), and toICoord().
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), myListDiffs, CurveCreator_Operation::RenameSection, setSectionNameInternal(), and startOperation().
|
virtual |
References getSection(), and CurveCreator_Section::myName.
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), myListDiffs, setSectionTypeInternal(), CurveCreator_Operation::SetType, and startOperation().
|
virtual |
References getNbSections(), getSection(), CurveCreator_Section::myType, and redisplayCurve().
|
virtual |
Implements CurveCreator_ICurve.
References addEmptyDiff(), finishOperation(), myListDiffs, CurveCreator_Operation::SetCoordinates, setPointInternal(), and startOperation().
|
virtual |
If the flag is true - points sorting will be skipped.
Implements CurveCreator_ICurve.
References mySkipSorting.
|
virtual |
References myCurrenPos, myListDiffs, myNbRedos, myNbUndos, and myUndoDepth.
|
virtual |
References myOpLevel.
|
virtual |
References myDimension.
|
virtual |
Implements CurveCreator_ICurve.
References myCurrenPos, myNbRedos, and myNbUndos.
|
private |
|
private |
CurveCreator::Dimension CurveCreator_Curve::myDimension |
CurveCreator_Displayer* CurveCreator_Curve::myDisplayer |
bool CurveCreator_Curve::myIsLocked |
|
private |
|
private |
|
private |
|
private |
CurveCreator::Sections CurveCreator_Curve::mySections |
|
protected |
|
private |