#include <SketchObject.h>
Public Member Functions | |
SketchObject () | |
~SketchObject () | |
![]() | |
Part2DObject () | |
virtual void transformPlacement (const Base::Placement &transform) override | |
transformPlacement applies transform to placement of this shape. More... | |
![]() | |
Feature (void) | |
Constructor. More... | |
virtual ~Feature () | |
virtual const App::PropertyComplexGeoData * getPropertyOfGeometry () const override | |
This method returns the main property of a geometric object that holds the actual geometry. More... | |
TopLoc_Location getLocation () const | |
virtual DocumentObject * getSubObject (const char *subname, PyObject **pyObj, Base::Matrix4D *mat, bool transform, int depth) const override | |
Get the sub element/object by name. More... | |
![]() | |
GeoFeature (void) | |
Constructor. More... | |
virtual std::pair< std::string, std::string > getElementName (const char *name, ElementNameType type=Normal) const | |
Return the new and old style sub-element name. More... | |
Base::Placement globalPlacement () const | |
Calculates the placement in the global reference coordinate system. More... | |
virtual ~GeoFeature () | |
![]() | |
virtual App::Property * addDynamicProperty (const char *type, const char *name=0, const char *group=0, const char *doc=0, short attr=0, bool ro=false, bool hidden=false) override | |
virtual bool adjustRelativeLinks (const std::set< App::DocumentObject * > &inList, std::set< App::DocumentObject * > *visited=0) | |
Called to adjust link properties to avoid cyclic links. More... | |
virtual bool allowDuplicateLabel () const | |
virtual bool canLinkProperties () const | |
virtual int canLoadPartial () const | |
allow partial loading of dependent objects More... | |
void clearOutListCache () const | |
clear internal out list cache More... | |
virtual const char * detachFromDocument () override | |
DocumentObject (void) | |
Constructor. More... | |
void enforceRecompute () | |
Enforce this document object to be recomputed. More... | |
App::Document * getDocument (void) const | |
gets the document in which this Object is handled More... | |
std::string getExportName (bool forced=false) const | |
returns the name that is safe to be exported to other document More... | |
virtual const PropertyExpressionEngine::ExpressionInfo getExpression (const ObjectIdentifier &path) const | |
virtual std::string getFullName () const override | |
Return the object full name of the form DocName::ObjName. More... | |
DocumentObjectGroup * getGroup () const | |
get group if object is part of a group, otherwise 0 is returned More... | |
long getID () const | |
Return the object ID that is unique within its owner document. More... | |
const std::vector< App::DocumentObject * > & getInList (void) const | |
std::set< App::DocumentObject * > getInListEx (bool recursive) const | |
Return a set of all objects linking to this object, including possible external parent objects. More... | |
void getInListEx (std::set< App::DocumentObject * > &inSet, bool recursive, std::vector< App::DocumentObject * > *inList=0) const | |
Get a set of all objects linking to this object, including possible external parent objects. More... | |
std::vector< App::DocumentObject * > getInListRecursive (void) const | |
get all objects link directly or indirectly to this object More... | |
virtual DocumentObject * getLinkedObject (bool recurse=true, Base::Matrix4D *mat=0, bool transform=false, int depth=0) const | |
Return the linked object with optional transformation. More... | |
const char * getNameInDocument (void) const | |
returns the name which is set in the document for this object (not the name property!) More... | |
const std::string & getOldLabel () const | |
const std::vector< App::DocumentObject * > & getOutList () const | |
returns a list of objects this object is pointing to by Links More... | |
std::vector< App::DocumentObject * > getOutList (int option) const | |
void getOutList (int option, std::vector< App::DocumentObject * > &res) const | |
std::vector< App::DocumentObject * > getOutListOfProperty (App::Property *) const | |
returns a list of objects linked by the property More... | |
std::vector< App::DocumentObject * > getOutListRecursive (void) const | |
returns a list of objects this object is pointing to by Links and all further descended More... | |
std::vector< std::pair< App::DocumentObject *, std::string > > getParents (int depth=0) const | |
Obtain top parents and subnames of this object using its InList. More... | |
std::vector< std::list< App::DocumentObject * > > getPathsByOutList (App::DocumentObject *to) const | |
get all possible paths from this to another object following the OutList More... | |
unsigned long getStatus () const | |
return the status bits More... | |
const char * getStatusString (void) const | |
get the status Message More... | |
std::vector< DocumentObject * > getSubObjectList (const char *subname) const | |
Return a list of objects referenced by a given subname including this object. More... | |
virtual std::vector< std::string > getSubObjects (int reason=0) const | |
Return name reference of all sub-objects. More... | |
virtual const char * getViewProviderNameOverride () const | |
This function is introduced to allow Python feature override its view provider. More... | |
const char * getViewProviderNameStored () const | |
virtual bool hasChildElement () const | |
return true to activate tree view group object handling and element visibility More... | |
virtual bool isAttachedToDocument () const override | |
virtual int isElementVisible (const char *element) const | |
Get sub-element visibility. More... | |
bool isError (void) const | |
set this feature to error More... | |
int isExporting () const | |
bool isInInList (DocumentObject *objToTest) const | |
test if this object is directly (non recursive) in the InList More... | |
bool isInInListRecursive (DocumentObject *objToTest) const | |
test if this object is in the InList and recursive further down More... | |
bool isInOutList (DocumentObject *objToTest) const | |
test if this object is directly (non recursive) in the OutList More... | |
bool isInOutListRecursive (DocumentObject *objToTest) const | |
test if the given object is in the OutList and recursive further down More... | |
bool isRecomputing () const | |
returns true if this objects is currently recomputing More... | |
bool isRemoving () const | |
returns true if this objects is currently removed from the document More... | |
bool isRestoring () const | |
returns true if this objects is currently restoring from file More... | |
bool isTouched (void) const | |
test if this document object is touched More... | |
bool isValid (void) const | |
bool mustRecompute (void) const | |
Test if this document object must be recomputed. More... | |
virtual void onBeforeChangeLabel (std::string &newLabel) | |
virtual void onLostLinkToObject (DocumentObject *) | |
Called in case of losing a link Get called by the document when a object got deleted a link property of this object ist pointing to. More... | |
virtual void onUpdateElementReference (const Property *) | |
void purgeError (void) | |
remove the error from the object More... | |
void purgeTouched (void) | |
reset this document object touched More... | |
bool recomputeFeature (bool recursive=false) | |
Recompute only this feature. More... | |
virtual bool redirectSubName (std::ostringstream &ss, DocumentObject *topParent, DocumentObject *child) const | |
Allow object to redirect a subname path. More... | |
virtual bool removeDynamicProperty (const char *prop) override | |
virtual void renameObjectIdentifiers (const std::map< App::ObjectIdentifier, App::ObjectIdentifier > &paths) | |
App::DocumentObject * resolve (const char *subname, App::DocumentObject **parent=0, std::string *childName=0, const char **subElement=0, PyObject **pyObj=0, Base::Matrix4D *mat=0, bool transform=true, int depth=0) const | |
Resolve the last document object referenced in the subname. More... | |
App::DocumentObject * resolveRelativeLink (std::string &subname, App::DocumentObject *&link, std::string &linkSub) const | |
Resolve a link reference that is relative to this object reference. More... | |
virtual int setElementVisible (const char *element, bool visible) | |
Child element handling. More... | |
void setStatus (ObjectStatus pos, bool on) | |
bool testIfLinkDAGCompatible (App::PropertyLinkSub &linkTo) const | |
bool testIfLinkDAGCompatible (App::PropertyLinkSubList &linksTo) const | |
bool testIfLinkDAGCompatible (const std::vector< DocumentObject * > &linksTo) const | |
bool testIfLinkDAGCompatible (DocumentObject *linkTo) const | |
testIfLinkIsDAG tests a link that is about to be created for circular references. More... | |
bool testStatus (ObjectStatus pos) const | |
void touch (bool noRecompute=false) | |
Set the property touched -> changed, cause recomputation in Update() More... | |
virtual ~DocumentObject () | |
![]() | |
TransactionalObject (void) | |
Constructor. More... | |
virtual ~TransactionalObject () | |
![]() | |
ExtensionIterator extensionBegin () | |
ExtensionContainer () | |
ExtensionIterator extensionEnd () | |
App::Extension * getExtension (Base::Type, bool derived=true, bool no_except=false) const | |
App::Extension * getExtension (const std::string &name) const | |
template<typename ExtensionT > | |
ExtensionT * getExtensionByType (bool no_except=false, bool derived=true) const | |
std::vector< Extension * > getExtensionsDerivedFrom (Base::Type type) const | |
template<typename ExtensionT > | |
std::vector< ExtensionT * > getExtensionsDerivedFromType () const | |
bool hasExtension (Base::Type, bool derived=true) const | |
bool hasExtension (const std::string &name) const | |
bool hasExtensions () const | |
void registerExtension (Base::Type extension, App::Extension *ext) | |
virtual ~ExtensionContainer () | |
virtual Property * getPropertyByName (const char *name) const override | |
find a property by its name More... | |
virtual const char * getPropertyName (const Property *prop) const override | |
get the name of a property More... | |
virtual void getPropertyMap (std::map< std::string, Property * > &Map) const override | |
get all properties of the class (including properties of the parent) More... | |
virtual void getPropertyList (std::vector< Property * > &List) const override | |
get all properties of the class (including properties of the parent) More... | |
virtual short getPropertyType (const Property *prop) const override | |
get the Type of a Property More... | |
virtual short getPropertyType (const char *name) const override | |
get the Type of a named Property More... | |
virtual const char * getPropertyGroup (const Property *prop) const override | |
get the Group of a Property More... | |
virtual const char * getPropertyGroup (const char *name) const override | |
get the Group of a named Property More... | |
virtual const char * getPropertyDocumentation (const Property *prop) const override | |
get the Group of a Property More... | |
virtual const char * getPropertyDocumentation (const char *name) const override | |
get the Group of a named Property More... | |
void saveExtensions (Base::Writer &writer) const | |
void restoreExtensions (Base::XMLReader &reader) | |
![]() | |
virtual App::Property * getDynamicPropertyByName (const char *name) const | |
DynamicProperty::PropData getDynamicPropertyData (const Property *prop) const | |
virtual std::vector< std::string > getDynamicPropertyNames () const | |
const char * getPropertyPrefix () const | |
bool isHidden (const char *name) const | |
check if the named property is hidden More... | |
bool isHidden (const Property *prop) const | |
check if the property is hidden More... | |
bool isReadOnly (const char *name) const | |
check if the named property is read-only More... | |
bool isReadOnly (const Property *prop) const | |
check if the property is read-only More... | |
PropertyContainer () | |
A constructor. More... | |
void setPropertyPrefix (const char *prefix) | |
void setPropertyStatus (unsigned char bit, bool value) | |
set the Status bit of all properties at once More... | |
virtual ~PropertyContainer () | |
A destructor. More... | |
![]() | |
void dumpToStream (std::ostream &stream, int compression) | |
virtual Base::Type getTypeId (void) const | |
virtual void RestoreDocFile (Reader &) | |
This method is used to restore large amounts of data from a file In this method you simply stream in your SaveDocFile() saved data. More... | |
void restoreFromStream (std::istream &stream) | |
virtual void SaveDocFile (Writer &) const | |
This method is used to save large amounts of data to a binary file. More... | |
![]() | |
BaseClass () | |
Construction. More... | |
bool isDerivedFrom (const Type type) const | |
virtual void setPyObject (PyObject *) | |
virtual ~BaseClass () | |
Destruction. More... | |
![]() | |
Attacher::AttachEngine & attacher (void) const | |
AttachExtension () | |
bool changeAttacherType (const char *typeName) | |
changeAttacherType More... | |
virtual App::DocumentObjectExecReturn * extensionExecute (void) | |
virtual short int extensionMustExecute (void) | |
virtual PyObject * getExtensionPyObject (void) | |
bool isAttacherActive () const | |
Return whether this attacher is active. More... | |
virtual bool isTouched_Mapping () | |
virtual void onExtendedDocumentRestored () | |
get called after a document has been fully restored More... | |
virtual bool positionBySupport (void) | |
calculate and update the Placement property based on the Support, and mode. More... | |
virtual void setAttacher (Attacher::AttachEngine *attacher) | |
setAttacher sets the AttachEngine object. More... | |
void updateAttacherVals () | |
virtual ~AttachExtension () | |
![]() | |
DocumentObjectExtension () | |
virtual bool extensionGetLinkedObject (DocumentObject *&ret, bool recursive, Base::Matrix4D *mat, bool transform, int depth) const | |
Get the linked object. More... | |
virtual bool extensionGetSubObject (DocumentObject *&ret, const char *subname, PyObject **pyObj, Base::Matrix4D *mat, bool transform, int depth) const | |
Get the sub object by name. More... | |
virtual bool extensionGetSubObjects (std::vector< std::string > &ret, int reason) const | |
Get name references of all sub objects. More... | |
virtual bool extensionHasChildElement () const | |
virtual int extensionIsElementVisible (const char *) | |
virtual int extensionSetElementVisible (const char *, bool) | |
App::DocumentObject * getExtendedObject () | |
const App::DocumentObject * getExtendedObject () const | |
virtual const char * getViewProviderExtensionName (void) const | |
returns the type name of the ViewProviderExtension which is automatically attached to the viewprovider object when it is initiated More... | |
virtual void onExtendedSettingDocument () | |
get called after setting the document More... | |
virtual void onExtendedSetupObject () | |
get called after a brand new object was created More... | |
virtual void onExtendedUnsetupObject () | |
get called when object is going to be removed from the document More... | |
virtual ~DocumentObjectExtension () | |
![]() | |
Extension () | |
App::ExtensionContainer * getExtendedContainer () | |
const App::ExtensionContainer * getExtendedContainer () const | |
virtual void initExtension (App::ExtensionContainer *obj) | |
bool isPythonExtension () | |
std::string name () const | |
virtual ~Extension () | |
virtual Property * extensionGetPropertyByName (const char *name) const | |
find a property by its name More... | |
virtual const char * extensionGetPropertyName (const Property *prop) const | |
get the name of a property More... | |
virtual void extensionGetPropertyMap (std::map< std::string, Property * > &Map) const | |
get all properties of the class (including properties of the parent) More... | |
virtual void extensionGetPropertyList (std::vector< Property * > &List) const | |
get all properties of the class (including properties of the parent) More... | |
virtual short extensionGetPropertyType (const Property *prop) const | |
get the Type of a Property More... | |
virtual short extensionGetPropertyType (const char *name) const | |
get the Type of a named Property More... | |
virtual const char * extensionGetPropertyGroup (const Property *prop) const | |
get the Group of a Property More... | |
virtual const char * extensionGetPropertyGroup (const char *name) const | |
get the Group of a named Property More... | |
virtual const char * extensionGetPropertyDocumentation (const Property *prop) const | |
get the Group of a Property More... | |
virtual const char * extensionGetPropertyDocumentation (const char *name) const | |
get the Group of a named Property More... | |
virtual void extensionSave (Base::Writer &) const | |
virtual void extensionRestore (Base::XMLReader &) | |
bool extensionIsDerivedFrom (const Base::Type type) const | |
Public Attributes | |
Sketcher::PropertyConstraintList Constraints | |
App ::PropertyLinkSubList ExternalGeometry | |
Part ::PropertyGeometryList Geometry | |
Property. More... | |
![]() | |
PropertyPartShape Shape | |
![]() | |
PropertyPlacement Placement | |
![]() | |
PropertyExpressionEngine ExpressionEngine | |
PropertyString Label | |
PropertyString Label2 | |
boost::signals2::signal< void(const App::DocumentObject &, const App::Property &)> signalBeforeChange | |
signal before changing a property of this object More... | |
boost::signals2::signal< void(const App::DocumentObject &, const App::Property &)> signalChanged | |
signal on changed property of this object More... | |
PropertyBool Visibility | |
Allow control visibility status in App name space. More... | |
![]() | |
App::PropertyString AttacherType | |
App::PropertyPlacement AttachmentOffset | |
App::PropertyEnumeration MapMode | |
App::PropertyFloat MapPathParameter | |
MapPathParameter is a parameter value for mmNormalToPath (the sketch will be mapped normal to a curve at point specified by parameter (from 0.0 to 1.0, from start to end) ) More... | |
App::PropertyBool MapReversed | |
App::PropertyLinkSubList Support | |
methods override Feature | |
enum eReasonList { rlAllowed, rlOtherDoc, rlCircularReference, rlOtherPart, rlOtherBody, rlOtherBodyWithLinks, rlNotASketch, rlNonParallel, rlAxesMisaligned, rlOriginsMisaligned } | |
bool noRecomputes | |
SketchObject can work in two modes: Recompute Mode and noRecomputes Mode. More... | |
short mustExecute () const | |
mustExecute We call this method to check if the object was modified to be invoked. More... | |
App::DocumentObjectExecReturn * execute (void) | |
recalculate the Feature (if no recompute is needed see also solve() and solverNeedsUpdate boolean) More... | |
const char * getViewProviderName (void) const | |
returns the type name of the ViewProvider More... | |
bool isSupportedGeometry (const Part::Geometry *geo) const | |
Returns true if the sketcher supports the given geometry. More... | |
int addGeometry (const Part::Geometry *geo, bool construction=false) | |
add unspecified geometry More... | |
int addGeometry (const std::vector< Part::Geometry * > &geoList, bool construction=false) | |
add unspecified geometry More... | |
int delGeometry (int GeoId, bool deleteinternalgeo=true) | |
Deletes indicated geometry (by geoid). More... | |
int deleteAllGeometry () | |
deletes all the elements/constraints of the sketch except for external geometry More... | |
int deleteAllConstraints () | |
deletes all the constraints of the sketch More... | |
int addConstraints (const std::vector< Constraint * > &ConstraintList) | |
add all constraints in the list More... | |
int addCopyOfConstraints (const SketchObject &orig) | |
Copy the constraints instead of cloning them and copying the expressions if any. More... | |
int addConstraint (const Constraint *constraint) | |
add constraint More... | |
int delConstraint (int ConstrId) | |
delete constraint More... | |
int delConstraints (std::vector< int > ConstrIds, bool updategeometry=true) | |
int delConstraintOnPoint (int GeoId, PointPos PosId, bool onlyCoincident=true) | |
int delConstraintOnPoint (int VertexId, bool onlyCoincident=true) | |
int delConstraintsToExternal () | |
Deletes all constraints referencing an external geometry. More... | |
int transferConstraints (int fromGeoId, PointPos fromPosId, int toGeoId, PointPos toPosId) | |
transfers all constraints of a point to a new point More... | |
int carbonCopy (App::DocumentObject *pObj, bool construction=true) | |
Carbon copy another sketch geometry and constraints. More... | |
int addExternal (App::DocumentObject *Obj, const char *SubName) | |
add an external geometry reference More... | |
int delExternal (int ExtGeoId) | |
delete external ExtGeoId >= 0 with 0 corresponding to the first user defined external geometry More... | |
int delAllExternal () | |
deletes all external geometry More... | |
const Part::Geometry * getGeometry (int GeoId) const | |
returns a pointer to a given Geometry index, possible indexes are: id>=0 for user defined geometries, id==-1 for the horizontal sketch axis, id==-2 for the vertical sketch axis id<=-3 for user defined projected external geometries, More... | |
const std::vector< Part::Geometry * > & getInternalGeometry (void) const | |
returns a list of all internal geometries More... | |
const std::vector< Part::Geometry * > & getExternalGeometry (void) const | |
returns a list of projected external geometries More... | |
void rebuildExternalGeometry (void) | |
rebuilds external geometry (projection onto the sketch plane) More... | |
int getExternalGeometryCount (void) const | |
returns the number of external Geometry entities More... | |
std::vector< Part::Geometry * > getCompleteGeometry (void) const | |
retrieves a vector containing both normal and external Geometry (including the sketch axes) More... | |
int hasConflicts (void) const | |
returns non zero if the sketch contains conflicting constraints More... | |
int setUpSketch () | |
sets the geometry of sketchObject as the solvedsketch geometry returns the DoF of such a geometry. More... | |
int solve (bool updateGeoAfterSolving=true) | |
solves the sketch and updates the geometry, but not all the dependent features (does not recompute) When a recompute is necessary, recompute triggers execute() which solves the sketch and updates all dependent features When a solve only is necessary (e.g. More... | |
int setDatum (int ConstrId, double Datum) | |
set the datum of a Distance or Angle constraint and solve More... | |
int setDriving (int ConstrId, bool isdriving) | |
set the driving status of this constraint and solve More... | |
int getDriving (int ConstrId, bool &isdriving) | |
get the driving status of this constraint More... | |
int toggleDriving (int ConstrId) | |
toggle the driving status of this constraint More... | |
int setActive (int ConstrId, bool isactive) | |
set the driving status of this constraint and solve More... | |
int getActive (int ConstrId, bool &isactive) | |
get the driving status of this constraint More... | |
int toggleActive (int ConstrId) | |
toggle the driving status of this constraint More... | |
int setDatumsDriving (bool isdriving) | |
Make all dimensionals Driving/non-Driving. More... | |
int moveDatumsToEnd (void) | |
Move Dimensional constraints at the end of the properties array. More... | |
int setVirtualSpace (int ConstrId, bool isinvirtualspace) | |
set the driving status of this constraint and solve More... | |
int getVirtualSpace (int ConstrId, bool &isinvirtualspace) const | |
get the driving status of this constraint More... | |
int toggleVirtualSpace (int ConstrId) | |
toggle the driving status of this constraint More... | |
int movePoint (int GeoId, PointPos PosId, const Base::Vector3d &toPoint, bool relative=false, bool updateGeoBeforeMoving=false) | |
move this point to a new location and solve More... | |
Base::Vector3d getPoint (int GeoId, PointPos PosId) const | |
retrieves the coordinates of a point More... | |
int toggleConstruction (int GeoId) | |
toggle geometry to draft line More... | |
int setConstruction (int GeoId, bool on) | |
int fillet (int geoId, PointPos pos, double radius, bool trim=true) | |
create a fillet More... | |
int fillet (int geoId1, int geoId2, const Base::Vector3d &refPnt1, const Base::Vector3d &refPnt2, double radius, bool trim=true) | |
int trim (int geoId, const Base::Vector3d &point) | |
trim a curve More... | |
int extend (int geoId, double increment, int endPoint) | |
extend a curve More... | |
int addSymmetric (const std::vector< int > &geoIdList, int refGeoId, Sketcher::PointPos refPosId=Sketcher::none) | |
adds symmetric geometric elements with respect to the refGeoId (line or point) More... | |
int addCopy (const std::vector< int > &geoIdList, const Base::Vector3d &displacement, bool moveonly=false, bool clone=false, int csize=2, int rsize=1, bool constraindisplacement=false, double perpscale=1.0) | |
with default parameters adds a copy of the geometric elements displaced by the displacement vector. More... | |
int exposeInternalGeometry (int GeoId) | |
Exposes all internal geometry of an object supporting internal geometry. More... | |
int deleteUnusedInternalGeometry (int GeoId, bool delgeoid=false) | |
Deletes all unused (not further constrained) internal geometry. More... | |
bool convertToNURBS (int GeoId) | |
Approximates the given geometry with a B-spline. More... | |
bool increaseBSplineDegree (int GeoId, int degreeincrement=1) | |
Increases the degree of a BSpline by degreeincrement, which defaults to 1. More... | |
bool modifyBSplineKnotMultiplicity (int GeoId, int knotIndex, int multiplicityincr=1) | |
Increases or Decreases the multiplicity of a BSpline knot by the multiplicityincr param, which defaults to 1, if the result is multiplicity zero, the knot is removed. More... | |
void getGeoVertexIndex (int VertexId, int &GeoId, PointPos &PosId) const | |
retrieves for a Vertex number the corresponding GeoId and PosId More... | |
int getHighestVertexIndex (void) const | |
int getHighestCurveIndex (void) const | |
void rebuildVertexIndex (void) | |
int getVertexIndexGeoPos (int GeoId, PointPos PosId) const | |
retrieves for a GeoId and PosId the Vertex number More... | |
const std::vector< std::map< int, Sketcher::PointPos > > getCoincidenceGroups () | |
void isCoincidentWithExternalGeometry (int GeoId, bool &start_external, bool &mid_external, bool &end_external) | |
const std::map< int, Sketcher::PointPos > getAllCoincidentPoints (int GeoId, PointPos PosId) | |
void getDirectlyCoincidentPoints (int GeoId, PointPos PosId, std::vector< int > &GeoIdList, std::vector< PointPos > &PosIdList) | |
retrieves for a Vertex number a list with all coincident points (sharing a single coincidence constraint) More... | |
void getDirectlyCoincidentPoints (int VertexId, std::vector< int > &GeoIdList, std::vector< PointPos > &PosIdList) | |
bool arePointsCoincident (int GeoId1, PointPos PosId1, int GeoId2, PointPos PosId2) | |
double calculateAngleViaPoint (int geoId1, int geoId2, double px, double py) | |
bool isPointOnCurve (int geoIdCurve, double px, double py) | |
double calculateConstraintError (int ConstrId) | |
int changeConstraintsLocking (bool bLock) | |
changeConstraintsLocking locks or unlocks all tangent and perpendicular constraints. More... | |
bool constraintHasExpression (int constrid) const | |
returns whether a given constraint has an associated expression or not More... | |
int port_reversedExternalArcs (bool justAnalyze) | |
porting functions More... | |
virtual PyObject * getPyObject (void) | |
getPyObject returns the Python binding object More... | |
virtual unsigned int getMemSize (void) const | |
This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB? More... | |
virtual void Save (Base::Writer &) const | |
This method is used to save properties to an XML document. More... | |
virtual void Restore (Base::XMLReader &) | |
This method is used to restore properties from an XML document. More... | |
virtual int getAxisCount (void) const | |
returns the number of construction lines (to be used as axes) More... | |
virtual Base::Axis getAxis (int axId) const | |
retrieves an axis iterating through the construction lines of the sketch (indices start at 0) More... | |
virtual void acceptGeometry () | |
verify and accept the assigned geometry More... | |
bool evaluateConstraint (const Constraint *constraint) const | |
Check if constraint has invalid indexes. More... | |
bool evaluateConstraints () const | |
Check for constraints with invalid indexes. More... | |
void validateConstraints () | |
Remove constraints with invalid indexes. More... | |
bool evaluateSupport (void) | |
Checks if support is valid. More... | |
void validateExternalLinks (void) | |
validate External Links (remove invalid external links) More... | |
int getLastDoF () const | |
gets DoF of last solver execution More... | |
bool getLastHasConflicts () const | |
gets HasConflicts status of last solver execution More... | |
bool getLastHasRedundancies () const | |
gets HasRedundancies status of last solver execution More... | |
int getLastSolverStatus () const | |
gets solver status of last solver execution More... | |
float getLastSolveTime () const | |
gets solver SolveTime of last solver execution More... | |
const std::vector< int > & getLastConflicting (void) const | |
gets the conflicting constraints of the last solver execution More... | |
const std::vector< int > & getLastRedundant (void) const | |
gets the redundant constraints of last solver execution More... | |
Sketch & getSolvedSketch (void) | |
gets the solved sketch as a reference More... | |
void getGeometryWithDependentParameters (std::vector< std::pair< int, PointPos >> &geometrymap) | |
returns the geometric elements/vertex which the solver detects as having dependent parameters. More... | |
bool isAllowedOtherBody () const | |
Flag to allow external geometry from other bodies than the one this sketch belongs to. More... | |
void setAllowOtherBody (bool on) | |
bool isAllowedUnaligned () const | |
Flag to allow carbon copy from misaligned geometry. More... | |
void setAllowUnaligned (bool on) | |
bool isExternalAllowed (App::Document *pDoc, App::DocumentObject *pObj, eReasonList *rsn=0) const | |
Return true if this object is allowed as external geometry for the sketch. More... | |
bool isCarbonCopyAllowed (App::Document *pDoc, App::DocumentObject *pObj, bool &xinv, bool &yinv, eReasonList *rsn=0) const | |
int autoConstraint (double precision=Precision::Confusion() *1000, double angleprecision=M_PI/20, bool includeconstruction=true) | |
int detectMissingPointOnPointConstraints (double precision=Precision::Confusion() *1000, bool includeconstruction=true) | |
void analyseMissingPointOnPointCoincident (double angleprecision=M_PI/8) | |
int detectMissingVerticalHorizontalConstraints (double angleprecision=M_PI/8) | |
int detectMissingEqualityConstraints (double precision) | |
std::vector< ConstraintIds > & getMissingPointOnPointConstraints (void) | |
std::vector< ConstraintIds > & getMissingVerticalHorizontalConstraints (void) | |
std::vector< ConstraintIds > & getMissingLineEqualityConstraints (void) | |
std::vector< ConstraintIds > & getMissingRadiusConstraints (void) | |
void setMissingRadiusConstraints (std::vector< ConstraintIds > &cl) | |
void setMissingLineEqualityConstraints (std::vector< ConstraintIds > &cl) | |
void setMissingVerticalHorizontalConstraints (std::vector< ConstraintIds > &cl) | |
void setMissingPointOnPointConstraints (std::vector< ConstraintIds > &cl) | |
void makeMissingPointOnPointCoincident (bool onebyone=false) | |
void makeMissingVerticalHorizontal (bool onebyone=false) | |
void makeMissingEquality (bool onebyone=true) | |
int autoRemoveRedundants (bool updategeo=true) | |
returns the number of redundant constraints detected More... | |
std::vector< Base::Vector3d > getOpenVertices (void) const | |
static void appendConflictMsg (const std::vector< int > &conflicting, std::string &msg) | |
generates a warning message about constraint conflicts and appends it to the given message More... | |
static void appendRedundantMsg (const std::vector< int > &redundant, std::string &msg) | |
generates a warning message about redundant constraints and appends it to the given message More... | |
virtual void onChanged (const App::Property *) | |
get called by the container when a property has changed More... | |
virtual void onDocumentRestored () | |
get called after a document has been fully restored More... | |
virtual void restoreFinished () | |
This method is used at the end of restoreFromStream() after all data files have been read in. More... | |
virtual void setExpression (const App::ObjectIdentifier &path, boost::shared_ptr< App::Expression > expr) | |
std::string validateExpression (const App::ObjectIdentifier &path, boost::shared_ptr< const App::Expression > expr) | |
void constraintsRenamed (const std::map< App::ObjectIdentifier, App::ObjectIdentifier > &renamed) | |
void constraintsRemoved (const std::set< App::ObjectIdentifier > &removed) | |
std::vector< Part::Geometry * > supportedGeometry (const std::vector< Part::Geometry * > &geoList) const | |
Returns a list of supported geometries from the input list. More... | |
int testDrivingChange (int ConstrId, bool isdriving) | |
Additional Inherited Members | |
![]() | |
enum ElementNameType { Normal =0, Import =1, Export =2 } | |
Specify the type of element name to return when calling getElementName() More... | |
![]() | |
enum GSReason { GS_DEFAULT, GS_SELECT } | |
reason of calling getSubObjects() More... | |
enum OutListOption { OutListNoExpression = 1, OutListNoHidden = 2, OutListNoXLinked = 4 } | |
DAG handling This part of the interface deals with viewing the document as a DAG (directed acyclic graph). More... | |
![]() | |
typedef std::map< Base::Type, App::Extension * >::iterator ExtensionIterator | |
![]() | |
static bool seekTrimPoints (const std::vector< Geometry * > &geomlist, int GeoId, const Base::Vector3d &point, int &GeoId1, Base::Vector3d &intersect1, int &GeoId2, Base::Vector3d &intersect2) | |
calculate the points where a curve with index GeoId should be trimmed with respect to the rest of the curves contained in the list geomlist and a picked point. More... | |
![]() | |
static TopoDS_Shape getShape (const App::DocumentObject *obj, const char *subname=0, bool needSubElement=false, Base::Matrix4D *pmat=0, App::DocumentObject **owner=0, bool resolveLink=true, bool transform=true) | |
Convenience function to extract shape from fully qualified subname. More... | |
static TopoShape getTopoShape (const App::DocumentObject *obj, const char *subname=0, bool needSubElement=false, Base::Matrix4D *pmat=0, App::DocumentObject **owner=0, bool resolveLink=true, bool transform=true, bool noElementMap=false) | |
static void clearShapeCache () | |
static App::DocumentObject * getShapeOwner (const App::DocumentObject *obj, const char *subname=0) | |
static bool hasShapeOwner (const App::DocumentObject *obj, const char *subname=0) | |
![]() | |
static DocumentObject * resolveElement (App::DocumentObject *obj, const char *subname, std::pair< std::string, std::string > &elementName, bool append=false, ElementNameType type=Normal, const DocumentObject *filter=0, const char **element=0, GeoFeature **geo=0) | |
Resolve both the new and old style element name. More... | |
![]() | |
static const char * hasHiddenMarker (const char *subname) | |
Check if the subname reference ends with hidden marker. More... | |
static const std::string & hiddenMarker () | |
Special marker to mark the object as hidden. More... | |
![]() | |
static void * create (void) | |
static std::string encodeAttribute (const std::string &) | |
Encodes an attribute upon saving. More... | |
static Base::Type getClassTypeId (void) | |
static void init (void) | |
![]() | |
static void * create (void) | |
static Type getClassTypeId (void) | |
static void init (void) | |
![]() | |
static const int H_Axis = -1 | |
static const int N_Axis = -3 | |
static const int V_Axis = -2 | |
![]() | |
static DocumentObjectExecReturn * StdReturn | |
![]() | |
void handleChangedPropertyType (Base::XMLReader &reader, const char *TypeName, App::Property *prop) override | |
PropertyContainer::handleChangedPropertyType is called during restore to possibly fix reading of older versions of the property container. More... | |
void handleChangedPropertyName (Base::XMLReader &reader, const char *TypeName, const char *PropName) override | |
PropertyContainer::handleChangedPropertyName is called during restore to possibly fix reading of older versions of this property container. More... | |
![]() | |
virtual App::DocumentObjectExecReturn * recompute () override | |
recompute only this object More... | |
ShapeHistory buildHistory (BRepBuilderAPI_MakeShape &, TopAbs_ShapeEnum type, const TopoDS_Shape &newS, const TopoDS_Shape &oldS) | |
Build a history of changes MakeShape: The operation that created the changes, e.g. More... | |
ShapeHistory joinHistory (const ShapeHistory &, const ShapeHistory &) | |
![]() | |
virtual void onBeforeChange (const Property *prop) override | |
get called before the value is changed More... | |
virtual void onPropertyStatusChanged (const Property &prop, unsigned long oldStatus) override | |
get called when a property status has changed More... | |
virtual void onSettingDocument () | |
get called after setting the document More... | |
void resetError (void) | |
void setDocument (App::Document *doc) | |
void setError (void) | |
virtual void setupObject () | |
get called after a brand new object was created More... | |
virtual void unsetupObject () | |
get called when object is going to be removed from the document More... | |
![]() | |
void onBeforeChangeProperty (Document *doc, const Property *prop) | |
![]() | |
virtual const PropertyData & getPropertyData (void) const | |
![]() | |
virtual void extensionOnChanged (const App::Property *) | |
virtual void extHandleChangedPropertyName (Base::XMLReader &reader, const char *TypeName, const char *PropName) | |
App::PropertyPlacement & getPlacement () const | |
![]() | |
void initExtensionType (Base::Type type) | |
![]() | |
static const PropertyData * getPropertyDataPtr (void) | |
![]() | |
static void initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=nullptr) | |
![]() | |
static void initExtensionSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Base::Type::instantiationMethod method=0) | |
![]() | |
std::string oldLabel | |
Old label; used for renaming expressions. More... | |
const std::string * pcNameInDocument | |
Py::Object PythonObject | |
python object of this class and all descendent More... | |
std::bitset< 32 > StatusBits | |
Status bits of the document object The first 8 bits are used for the base system the rest can be used in descendent classes to mark special statuses on the objects. More... | |
![]() | |
DynamicProperty dynamicProps | |
![]() | |
bool m_isPythonExtension = false | |
Py::Object ExtensionPythonObject | |
Member Enumeration Documentation
◆ eReasonList
Constructor & Destructor Documentation
◆ SketchObject()
SketchObject::SketchObject | ( | ) |
◆ ~SketchObject()
SketchObject::~SketchObject | ( | ) |
Member Function Documentation
◆ acceptGeometry()
|
virtual |
verify and accept the assigned geometry
Reimplemented from Part::Part2DObject.
◆ addConstraint()
int SketchObject::addConstraint | ( | const Constraint * | constraint | ) |
add constraint
References Sketcher::Constraint::clone(), Sketcher::Perpendicular, Sketcher::Tangent, and Sketcher::Constraint::Type.
Referenced by Sketcher::SketchObjectPy::addConstraint(), Sketcher::SketchAnalysis::makeMissingEquality(), Sketcher::SketchAnalysis::makeMissingPointOnPointCoincident(), and Sketcher::SketchAnalysis::makeMissingVerticalHorizontal().
◆ addConstraints()
int SketchObject::addConstraints | ( | const std::vector< Constraint * > & | ConstraintList | ) |
add all constraints in the list
References Sketcher::Perpendicular, and Sketcher::Tangent.
Referenced by Sketcher::SketchObjectPy::addConstraint(), Sketcher::SketchAnalysis::makeMissingEquality(), Sketcher::SketchAnalysis::makeMissingPointOnPointCoincident(), and Sketcher::SketchAnalysis::makeMissingVerticalHorizontal().
◆ addCopy()
int SketchObject::addCopy | ( | const std::vector< int > & | geoIdList, |
const Base::Vector3d & | displacement, | ||
bool | moveonly = false , |
||
bool | clone = false , |
||
int | csize = 2 , |
||
int | rsize = 1 , |
||
bool | constraindisplacement = false , |
||
double | perpscale = 1.0 |
||
) |
with default parameters adds a copy of the geometric elements displaced by the displacement vector.
It creates an array of csize elements in the direction of the displacement vector by rsize elements in the direction perpendicular to the displacement vector, wherein the modulus of this perpendicular vector is scaled by perpscale.
References Sketcher::Angle, Sketcher::Coincident, Base::Console(), Part::Geometry::Construction, Sketcher::Constraint::copy(), Part::Geometry::copy(), Sketcher::Diameter, Sketcher::Distance, Sketcher::DistanceX, Sketcher::DistanceY, Sketcher::end, Sketcher::Equal, Base::ConsoleSingleton::Error(), DraftVecUtils::find(), Sketcher::Constraint::First, Sketcher::Constraint::FirstPos, Sketcher::Constraint::GeoUndef, Part::GeomConic::getCenter(), Part::GeomArcOfConic::getCenter(), Base::Persistence::getClassTypeId(), Part::GeomLineSegment::getEndPoint(), Part::GeomPoint::getPoint(), Part::GeomBSplineCurve::getPoles(), Part::GeomBoundedCurve::getStartPoint(), Part::GeomArcOfConic::getStartPoint(), Part::GeomLineSegment::getStartPoint(), Base::Persistence::getTypeId(), Base::Vector3< _Precision >::Length(), Sketcher::mid, Sketcher::none, Sketcher::Parallel, Sketcher::Perpendicular, Sketcher::Radius, Sketcher::Constraint::Second, Sketcher::Constraint::SecondPos, Part::GeomConic::setCenter(), Part::GeomArcOfConic::setCenter(), Part::GeomPoint::setPoint(), Part::GeomLineSegment::setPoints(), Part::GeomBSplineCurve::setPoles(), Sketcher::Constraint::setValue(), Sketcher::start, Sketcher::Constraint::Third, and Sketcher::Constraint::Type.
Referenced by Sketcher::SketchObjectPy::addCopy(), Sketcher::SketchObjectPy::addMove(), and Sketcher::SketchObjectPy::addRectangularArray().
◆ addCopyOfConstraints()
int SketchObject::addCopyOfConstraints | ( | const SketchObject & | orig | ) |
Copy the constraints instead of cloning them and copying the expressions if any.
References Constraints, Sketcher::PropertyConstraintList::createPath(), App::PropertyExpressionEngine::ExpressionInfo::expression, App::DocumentObject::getExpression(), and Sketcher::PropertyConstraintList::getValues().
◆ addExternal()
int SketchObject::addExternal | ( | App::DocumentObject * | Obj, |
const char * | SubName | ||
) |
add an external geometry reference
References Base::Console(), Base::ConsoleSingleton::Error(), and App::DocumentObject::getDocument().
Referenced by Sketcher::SketchObjectPy::addExternal().
◆ addGeometry() [1/2]
int SketchObject::addGeometry | ( | const Part::Geometry * | geo, |
bool | construction = false |
||
) |
add unspecified geometry
References Part::Geometry::Construction, Part::Geometry::copy(), Base::Persistence::getClassTypeId(), and Base::Persistence::getTypeId().
Referenced by Sketcher::SketchObjectPy::addGeometry().
◆ addGeometry() [2/2]
int SketchObject::addGeometry | ( | const std::vector< Part::Geometry * > & | geoList, |
bool | construction = false |
||
) |
add unspecified geometry
References Base::Persistence::getClassTypeId().
◆ addSymmetric()
int SketchObject::addSymmetric | ( | const std::vector< int > & | geoIdList, |
int | refGeoId, | ||
Sketcher::PointPos | refPosId = Sketcher::none |
||
) |
adds symmetric geometric elements with respect to the refGeoId (line or point)
References Sketcher::Angle, Sketcher::Coincident, Base::Console(), Sketcher::Constraint::copy(), Part::Geometry::copy(), Sketcher::Diameter, Sketcher::Distance, Sketcher::DistanceX, Sketcher::DistanceY, Sketcher::end, Sketcher::Equal, Base::ConsoleSingleton::Error(), DraftVecUtils::find(), Sketcher::Constraint::First, Sketcher::Constraint::FirstPos, Base::fmod(), Sketcher::Constraint::GeoUndef, Part::GeomConic::getCenter(), Part::GeomArcOfConic::getCenter(), Base::Persistence::getClassTypeId(), Part::GeomBoundedCurve::getEndPoint(), Part::GeomArcOfConic::getEndPoint(), Part::GeomLineSegment::getEndPoint(), Part::GeomArcOfParabola::getFocus(), Part::GeomEllipse::getMajorAxisDir(), Part::GeomArcOfEllipse::getMajorAxisDir(), Part::GeomArcOfHyperbola::getMajorAxisDir(), Part::GeomEllipse::getMajorRadius(), Part::GeomArcOfEllipse::getMajorRadius(), Part::GeomArcOfHyperbola::getMajorRadius(), Part::GeomEllipse::getMinorRadius(), Part::GeomArcOfEllipse::getMinorRadius(), Part::GeomArcOfHyperbola::getMinorRadius(), Part::GeomPoint::getPoint(), Part::GeomBSplineCurve::getPoles(), Part::GeomArcOfEllipse::getRange(), Part::GeomArcOfHyperbola::getRange(), Part::GeomArcOfParabola::getRange(), Part::GeomBoundedCurve::getStartPoint(), Part::GeomArcOfConic::getStartPoint(), Part::GeomLineSegment::getStartPoint(), Base::Persistence::getTypeId(), Sketcher::mid, Sketcher::none, Sketcher::Parallel, Sketcher::Perpendicular, Base::Vector3< _Precision >::Perpendicular(), Sketcher::PointOnObject, Sketcher::Radius, Sketcher::Constraint::Second, Sketcher::Constraint::SecondPos, Part::GeomConic::setCenter(), Part::GeomArcOfConic::setCenter(), Part::GeomEllipse::setMajorAxisDir(), Part::GeomArcOfEllipse::setMajorAxisDir(), Part::GeomArcOfHyperbola::setMajorAxisDir(), Part::GeomPoint::setPoint(), Part::GeomLineSegment::setPoints(), Part::GeomBSplineCurve::setPoles(), Part::GeomArcOfCircle::setRange(), Part::GeomArcOfEllipse::setRange(), Part::GeomArcOfHyperbola::setRange(), Part::GeomArcOfParabola::setRange(), Sketcher::Constraint::setValue(), Part::GeomArcOfConic::setXAxisDir(), Sketcher::start, Sketcher::Tangent, Sketcher::Constraint::Third, Sketcher::Constraint::ThirdPos, Sketcher::Constraint::Type, Base::Vector3< _Precision >::x, and Base::Vector3< _Precision >::y.
Referenced by Sketcher::SketchObjectPy::addSymmetric().
◆ analyseMissingPointOnPointCoincident()
void SketchObject::analyseMissingPointOnPointCoincident | ( | double | angleprecision = M_PI/8 | ) |
◆ appendConflictMsg()
|
static |
generates a warning message about constraint conflicts and appends it to the given message
◆ appendRedundantMsg()
|
static |
generates a warning message about redundant constraints and appends it to the given message
◆ arePointsCoincident()
◆ autoConstraint()
int SketchObject::autoConstraint | ( | double | precision = Precision::Confusion() * 1000 , |
double | angleprecision = M_PI/20 , |
||
bool | includeconstruction = true |
||
) |
◆ autoRemoveRedundants()
int SketchObject::autoRemoveRedundants | ( | bool | updategeo = true | ) |
returns the number of redundant constraints detected
Referenced by Sketcher::SketchAnalysis::autoconstraint(), Sketcher::SketchObjectPy::autoRemoveRedundants(), Sketcher::SketchAnalysis::makeMissingEquality(), Sketcher::SketchAnalysis::makeMissingPointOnPointCoincident(), and Sketcher::SketchAnalysis::makeMissingVerticalHorizontal().
◆ calculateAngleViaPoint()
double SketchObject::calculateAngleViaPoint | ( | int | geoId1, |
int | geoId2, | ||
double | px, | ||
double | py | ||
) |
References Sketcher::Sketch::addGeometry(), and Sketcher::Sketch::calculateAngleViaPoint().
Referenced by CmdSketcherConstrainAngle::activated(), and CmdSketcherConstrainAngle::applyConstraint().
◆ calculateConstraintError()
double SketchObject::calculateConstraintError | ( | int | ConstrId | ) |
◆ carbonCopy()
int SketchObject::carbonCopy | ( | App::DocumentObject * | pObj, |
bool | construction = true |
||
) |
Carbon copy another sketch geometry and constraints.
References Sketcher::Angle, Base::Console(), Constraints, Part::Geometry::Construction, Sketcher::Constraint::copy(), Part::Geometry::copy(), Sketcher::PropertyConstraintList::createPath(), Sketcher::Diameter, Sketcher::Distance, Sketcher::DistanceX, Sketcher::DistanceY, Base::ConsoleSingleton::Error(), ExternalGeometry, Sketcher::Constraint::First, Sketcher::Constraint::GeoUndef, Base::Persistence::getClassTypeId(), App::DocumentObject::getDocument(), App::ObjectIdentifier::getDocumentObjectName(), getInternalGeometry(), App::ObjectIdentifier::String::getString(), Base::Persistence::getTypeId(), Sketcher::PropertyConstraintList::getValues(), App::Expression::parse(), Sketcher::Radius, Sketcher::Constraint::Second, Sketcher::SnellsLaw, Sketcher::Constraint::Third, and App::ObjectIdentifier::toString().
Referenced by Sketcher::SketchObjectPy::carbonCopy().
◆ changeConstraintsLocking()
int SketchObject::changeConstraintsLocking | ( | bool | bLock | ) |
changeConstraintsLocking locks or unlocks all tangent and perpendicular constraints.
(Constraint locking prevents it from flipping to another valid configuration, when e.g. external geometry is updated from outside.) The sketch solve is not triggered by the function, but the SketchObject is touched (a recompute will be necessary). The geometry should not be affected by the function. The bLock argument specifies, what to do. If true, all constraints are unlocked and locked again. If false, all tangent and perp. constraints are unlocked.
References Base::Console(), Base::ConsoleSingleton::Log(), Sketcher::Perpendicular, and Sketcher::Tangent.
◆ constraintHasExpression()
bool SketchObject::constraintHasExpression | ( | int | constrid | ) | const |
returns whether a given constraint has an associated expression or not
References App::PropertyExpressionEngine::ExpressionInfo::expression.
◆ constraintsRemoved()
|
protected |
Referenced by SketchObject().
◆ constraintsRenamed()
|
protected |
Referenced by SketchObject().
◆ convertToNURBS()
bool SketchObject::convertToNURBS | ( | int | GeoId | ) |
Approximates the given geometry with a B-spline.
- Parameters
-
GeoId - the geometry to approximate delgeoid - if true in addition to the unused internal geometry also deletes the GeoId geometry
- Return values
-
bool - returns true if the approximation succeeded, or false if it did not succeed.
References Sketcher::Coincident, Base::Console(), Base::ConsoleSingleton::Error(), Base::Persistence::getClassTypeId(), Part::GeomCurve::getFirstParameter(), Part::GeomCurve::getLastParameter(), Base::Persistence::getTypeId(), Base::BaseClass::isDerivedFrom(), Part::GeomArcOfConic::isReversed(), and Part::GeomCurve::toNurbs().
◆ delAllExternal()
int SketchObject::delAllExternal | ( | ) |
deletes all external geometry
References Sketcher::Constraint::clone(), Base::Console(), Base::ConsoleSingleton::Error(), Sketcher::Constraint::GeoUndef, and Sketcher::GeoEnum::RefExt.
◆ delConstraint()
int SketchObject::delConstraint | ( | int | ConstrId | ) |
delete constraint
◆ delConstraintOnPoint() [1/2]
◆ delConstraintOnPoint() [2/2]
int SketchObject::delConstraintOnPoint | ( | int | VertexId, |
bool | onlyCoincident = true |
||
) |
References Sketcher::GeoEnum::RtPnt, and Sketcher::start.
◆ delConstraints()
int SketchObject::delConstraints | ( | std::vector< int > | ConstrIds, |
bool | updategeometry = true |
||
) |
◆ delConstraintsToExternal()
int SketchObject::delConstraintsToExternal | ( | ) |
Deletes all constraints referencing an external geometry.
References Sketcher::Constraint::GeoUndef, and Sketcher::GeoEnum::RefExt.
Referenced by PartDesignGui::TaskFeaturePick::makeCopy().
◆ deleteAllConstraints()
int SketchObject::deleteAllConstraints | ( | ) |
deletes all the constraints of the sketch
Referenced by Sketcher::SketchAnalysis::autoconstraint().
◆ deleteAllGeometry()
int SketchObject::deleteAllGeometry | ( | ) |
deletes all the elements/constraints of the sketch except for external geometry
◆ deleteUnusedInternalGeometry()
int SketchObject::deleteUnusedInternalGeometry | ( | int | GeoId, |
bool | delgeoid = false |
||
) |
Deletes all unused (not further constrained) internal geometry.
- Parameters
-
GeoId - the geometry having the internal geometry to delete delgeoid - if true in addition to the unused internal geometry also deletes the GeoId geometry
- Return values
-
int - returns -1 on error, otherwise the number of deleted elements
References Sketcher::BSplineControlPoint, Sketcher::BSplineKnotPoint, Part::GeomBSplineCurve::countKnots(), Part::GeomBSplineCurve::countPoles(), Sketcher::Diameter, Sketcher::EllipseFocus1, Sketcher::EllipseFocus2, Sketcher::EllipseMajorDiameter, Sketcher::EllipseMinorDiameter, Sketcher::end, Sketcher::Equal, Base::Persistence::getClassTypeId(), Base::Persistence::getTypeId(), Sketcher::HyperbolaFocus, Sketcher::HyperbolaMajor, Sketcher::HyperbolaMinor, Sketcher::InternalAlignment, Sketcher::mid, Sketcher::ParabolaFocus, Sketcher::Radius, and Sketcher::start.
◆ delExternal()
int SketchObject::delExternal | ( | int | ExtGeoId | ) |
delete external ExtGeoId >= 0 with 0 corresponding to the first user defined external geometry
References Sketcher::Constraint::clone(), Base::Console(), Base::ConsoleSingleton::Error(), Sketcher::Constraint::First, Sketcher::Constraint::GeoUndef, Sketcher::GeoEnum::RefExt, Sketcher::Constraint::Second, and Sketcher::Constraint::Third.
◆ delGeometry()
int SketchObject::delGeometry | ( | int | GeoId, |
bool | deleteinternalgeo = true |
||
) |
Deletes indicated geometry (by geoid).
- Parameters
-
GeoId - the geometry to delete deleteinternalgeo - if true deletes the associated and unconstraint internal geometry, otherwise deletes only the GeoId
- Return values
-
int - 0 if successful
References Sketcher::Constraint::clone(), Sketcher::Constraint::First, Base::Persistence::getClassTypeId(), Base::Persistence::getTypeId(), Sketcher::mid, Sketcher::Constraint::Second, Sketcher::start, and Sketcher::Constraint::Third.
◆ detectMissingEqualityConstraints()
int SketchObject::detectMissingEqualityConstraints | ( | double | precision | ) |
◆ detectMissingPointOnPointConstraints()
int SketchObject::detectMissingPointOnPointConstraints | ( | double | precision = Precision::Confusion() * 1000 , |
bool | includeconstruction = true |
||
) |
◆ detectMissingVerticalHorizontalConstraints()
int SketchObject::detectMissingVerticalHorizontalConstraints | ( | double | angleprecision = M_PI/8 | ) |
◆ evaluateConstraint()
bool SketchObject::evaluateConstraint | ( | const Constraint * | constraint | ) | const |
Check if constraint has invalid indexes.
References Sketcher::Angle, Sketcher::Coincident, Sketcher::Diameter, Sketcher::Distance, Sketcher::DistanceX, Sketcher::DistanceY, Sketcher::Equal, Sketcher::Constraint::First, Sketcher::Constraint::GeoUndef, Sketcher::Horizontal, Sketcher::Parallel, Sketcher::Perpendicular, Sketcher::PointOnObject, Sketcher::Radius, Sketcher::Constraint::Second, Sketcher::SnellsLaw, Sketcher::Symmetric, Sketcher::Tangent, Sketcher::Constraint::Third, Sketcher::Constraint::Type, and Sketcher::Vertical.
Referenced by Sketcher::SketchObjectPy::addConstraint().
◆ evaluateConstraints()
bool SketchObject::evaluateConstraints | ( | ) | const |
Check for constraints with invalid indexes.
Referenced by SketcherGui::ViewProviderSketch::setEdit().
◆ evaluateSupport()
bool SketchObject::evaluateSupport | ( | void | ) |
Checks if support is valid.
References Base::Persistence::getClassTypeId(), Base::Persistence::getTypeId(), and Base::Type::isDerivedFrom().
◆ execute()
|
virtual |
recalculate the Feature (if no recompute is needed see also solve() and solverNeedsUpdate boolean)
Reimplemented from Part::Part2DObject.
References Base::Console(), Base::ConsoleSingleton::Error(), and App::DocumentObject::StdReturn.
Referenced by ArchSite.Compass::buildCoordinates(), ArchSchedule.CommandArchSchedule::IsActive(), and FeaturePython.DistanceBolt::onChanged().
◆ exposeInternalGeometry()
int SketchObject::exposeInternalGeometry | ( | int | GeoId | ) |
Exposes all internal geometry of an object supporting internal geometry.
- Returns
- -1 on error
References Sketcher::Constraint::AlignmentType, Sketcher::BSplineControlPoint, Sketcher::BSplineKnotPoint, Sketcher::Coincident, Part::Geometry::Construction, Part::GeomBSplineCurve::countKnots(), Part::GeomBSplineCurve::countPoles(), Sketcher::Diameter, Sketcher::EllipseFocus1, Sketcher::EllipseFocus2, Sketcher::EllipseMajorDiameter, Sketcher::EllipseMinorDiameter, Sketcher::end, Sketcher::Equal, Sketcher::Constraint::First, Sketcher::Constraint::FirstPos, Part::GeomArcOfConic::getCenter(), Base::Persistence::getClassTypeId(), Part::GeomArcOfParabola::getFocus(), Part::GeomBSplineCurve::getKnots(), Part::GeomArcOfEllipse::getMajorAxisDir(), Part::GeomArcOfHyperbola::getMajorAxisDir(), Part::GeomArcOfEllipse::getMajorRadius(), Part::GeomArcOfHyperbola::getMajorRadius(), Part::GeomArcOfEllipse::getMinorRadius(), Part::GeomArcOfHyperbola::getMinorRadius(), Part::GeomBSplineCurve::getPoles(), Base::Persistence::getTypeId(), Sketcher::HyperbolaFocus, Sketcher::HyperbolaMajor, Sketcher::HyperbolaMinor, Sketcher::InternalAlignment, Sketcher::Constraint::InternalAlignmentIndex, Sketcher::mid, Sketcher::none, Sketcher::ParabolaFocus, Part::GeomCurve::pointAtParameter(), Sketcher::Radius, Sketcher::Constraint::Second, Sketcher::Constraint::SecondPos, Part::GeomConic::setCenter(), Part::GeomPoint::setPoint(), Part::GeomLineSegment::setPoints(), Part::GeomCircle::setRadius(), Sketcher::start, Sketcher::Constraint::Type, Base::Vector3< _Precision >::x, and Base::Vector3< _Precision >::y.
◆ extend()
int SketchObject::extend | ( | int | geoId, |
double | increment, | ||
int | endPoint | ||
) |
extend a curve
References Sketcher::end, Base::Persistence::getClassTypeId(), Part::GeomLineSegment::getEndPoint(), Part::GeomLineSegment::getStartPoint(), Base::Persistence::getTypeId(), Base::Vector3< _Precision >::Length(), Base::Vector3< _Precision >::Normalize(), Base::Vector3< _Precision >::Scale(), and Sketcher::start.
◆ fillet() [1/2]
create a fillet
References Base::Persistence::getClassTypeId(), Part::GeomLineSegment::getEndPoint(), Part::GeomLineSegment::getStartPoint(), and Base::Persistence::getTypeId().
Referenced by Sketcher::SketchObjectPy::fillet().
◆ fillet() [2/2]
int SketchObject::fillet | ( | int | geoId1, |
int | geoId2, | ||
const Base::Vector3d & | refPnt1, | ||
const Base::Vector3d & | refPnt2, | ||
double | radius, | ||
bool | trim = true |
||
) |
References Part::GeomCurve::closestParameter(), Sketcher::Coincident, Base::Console(), Part::createFilletGeometry(), Base::Vector3< _Precision >::Cross(), DraftVecUtils::dist(), Base::Vector3< _Precision >::Dot(), Sketcher::end, Part::findFilletCenter(), Sketcher::Constraint::First, Part::GeomCurve::firstDerivativeAtParameter(), Sketcher::Constraint::FirstPos, Base::Persistence::getClassTypeId(), Part::GeomLineSegment::getEndPoint(), Part::GeomCurve::getFirstParameter(), Part::GeomLineSegment::getStartPoint(), Base::Persistence::getTypeId(), Part::GeomCurve::intersect(), Part::GeomTrimmedCurve::intersectBasisCurves(), Base::BaseClass::isDerivedFrom(), Base::Vector3< _Precision >::Length(), Base::ConsoleSingleton::Log(), Sketcher::none, Sketcher::Perpendicular, Part::GeomCurve::pointAtParameter(), Base::Vector3< _Precision >::ProjectToLine(), Sketcher::Constraint::Second, Sketcher::Constraint::SecondPos, Sketcher::start, Sketcher::Tangent, Part::GeomCurve::tangent(), Sketcher::Constraint::Type, Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.
◆ getActive()
int SketchObject::getActive | ( | int | ConstrId, |
bool & | isactive | ||
) |
get the driving status of this constraint
◆ getAllCoincidentPoints()
const std::map< int, Sketcher::PointPos > SketchObject::getAllCoincidentPoints | ( | int | GeoId, |
PointPos | PosId | ||
) |
◆ getAxis()
|
virtual |
retrieves an axis iterating through the construction lines of the sketch (indices start at 0)
Reimplemented from Part::Part2DObject.
References Part::Part2DObject::getAxis(), Base::Persistence::getClassTypeId(), Part::GeomLineSegment::getEndPoint(), and Part::GeomLineSegment::getStartPoint().
◆ getAxisCount()
|
virtual |
returns the number of construction lines (to be used as axes)
Reimplemented from Part::Part2DObject.
References Base::Persistence::getClassTypeId().
◆ getCoincidenceGroups()
const std::vector< std::map< int, Sketcher::PointPos > > SketchObject::getCoincidenceGroups | ( | ) |
References Sketcher::Coincident, and Sketcher::end.
◆ getCompleteGeometry()
std::vector< Part::Geometry * > SketchObject::getCompleteGeometry | ( | void | ) | const |
retrieves a vector containing both normal and external Geometry (including the sketch axes)
Referenced by SketcherGui::ViewProviderSketch::doBoxSelection(), and SketcherGui::DrawSketchHandler::seekAutoConstraint().
◆ getDirectlyCoincidentPoints() [1/2]
void SketchObject::getDirectlyCoincidentPoints | ( | int | GeoId, |
PointPos | PosId, | ||
std::vector< int > & | GeoIdList, | ||
std::vector< PointPos > & | PosIdList | ||
) |
retrieves for a Vertex number a list with all coincident points (sharing a single coincidence constraint)
References Sketcher::Coincident.
Referenced by SketcherGui::FilletSelection::allow(), and DrawSketchHandlerFillet::releaseButton().
◆ getDirectlyCoincidentPoints() [2/2]
void SketchObject::getDirectlyCoincidentPoints | ( | int | VertexId, |
std::vector< int > & | GeoIdList, | ||
std::vector< PointPos > & | PosIdList | ||
) |
◆ getDriving()
int SketchObject::getDriving | ( | int | ConstrId, |
bool & | isdriving | ||
) |
get the driving status of this constraint
◆ getExternalGeometry()
const std::vector<Part::Geometry *>& Sketcher::SketchObject::getExternalGeometry | ( | void | ) | const |
returns a list of projected external geometries
◆ getExternalGeometryCount()
int Sketcher::SketchObject::getExternalGeometryCount | ( | void | ) | const |
returns the number of external Geometry entities
Referenced by SketcherGui::ViewProviderSketch::doBoxSelection(), and isCarbonCopyAllowed().
◆ getGeometry()
const Part::Geometry * SketchObject::getGeometry | ( | int | GeoId | ) | const |
returns a pointer to a given Geometry index, possible indexes are: id>=0 for user defined geometries, id==-1 for the horizontal sketch axis, id==-2 for the vertical sketch axis id<=-3 for user defined projected external geometries,
Referenced by SketcherCopy::activate(), CmdSketcherConstrainHorizontal::activated(), CmdSketcherConstrainVertical::activated(), CmdSketcherConstrainDistance::activated(), CmdSketcherConstrainPointOnObject::activated(), CmdSketcherConstrainDistanceX::activated(), CmdSketcherConstrainDistanceY::activated(), CmdSketcherConstrainParallel::activated(), CmdSketcherConstrainPerpendicular::activated(), CmdSketcherConstrainTangent::activated(), CmdSketcherConstrainRadius::activated(), CmdSketcherConstrainDiameter::activated(), CmdSketcherConstrainAngle::activated(), CmdSketcherConstrainEqual::activated(), CmdSketcherConstrainSymmetric::activated(), SketcherGui::FilletSelection::allow(), SketcherGui::TrimmingSelection::allow(), SketcherGui::ExtendSelection::allow(), Sketcher::SketchAnalysis::analyseMissingPointOnPointCoincident(), CmdSketcherConstrainHorizontal::applyConstraint(), CmdSketcherConstrainVertical::applyConstraint(), CmdSketcherConstrainDistance::applyConstraint(), CmdSketcherConstrainPointOnObject::applyConstraint(), CmdSketcherConstrainDistanceX::applyConstraint(), CmdSketcherConstrainDistanceY::applyConstraint(), CmdSketcherConstrainParallel::applyConstraint(), CmdSketcherConstrainPerpendicular::applyConstraint(), CmdSketcherConstrainTangent::applyConstraint(), CmdSketcherConstrainRadius::applyConstraint(), CmdSketcherConstrainDiameter::applyConstraint(), CmdSketcherConstrainAngle::applyConstraint(), CmdSketcherConstrainSymmetric::applyConstraint(), SketcherGui::DrawSketchHandler::createAutoConstraints(), SketcherGui::isConstructionPoint(), DrawSketchHandlerExtend::mouseMove(), DrawSketchHandlerLineSet::pressButton(), DrawSketchHandlerLineSet::registerPressedKey(), DrawSketchHandlerFillet::releaseButton(), DrawSketchHandlerTrimming::releaseButton(), DrawSketchHandlerExtend::releaseButton(), SketcherGui::DrawSketchHandler::seekAutoConstraint(), and DrawSketchHandlerLineSet::updateTransitionData().
◆ getGeometryWithDependentParameters()
void SketchObject::getGeometryWithDependentParameters | ( | std::vector< std::pair< int, PointPos >> & | geometrymap | ) |
returns the geometric elements/vertex which the solver detects as having dependent parameters.
these parameters relate to not fully constraint edges/vertices.
References GCS::EigenDenseQR, GCS::EigenSparseQR, Sketcher::end, Base::Persistence::getClassTypeId(), Sketcher::mid, Sketcher::none, and Sketcher::start.
Referenced by Sketcher::SketchObjectPy::getGeometryWithDependentParameters().
◆ getGeoVertexIndex()
void SketchObject::getGeoVertexIndex | ( | int | VertexId, |
int & | GeoId, | ||
PointPos & | PosId | ||
) | const |
retrieves for a Vertex number the corresponding GeoId and PosId
References Sketcher::Constraint::GeoUndef, and Sketcher::none.
Referenced by SketcherCopy::activate(), SketcherGui::TaskSketcherElements::onSelectionChanged(), DrawSketchHandlerLineSet::pressButton(), DrawSketchHandlerCoincident::releaseButton(), DrawSketchHandlerFillet::releaseButton(), and SketcherGui::DrawSketchHandler::seekAutoConstraint().
◆ getHighestCurveIndex()
int Sketcher::SketchObject::getHighestCurveIndex | ( | void | ) | const |
Referenced by CmdSketcherConstrainPerpendicular::activated(), CmdSketcherConstrainPerpendicular::applyConstraint(), SketcherGui::ViewProviderSketch::doBoxSelection(), SketcherGui::DrawSketchHandler::getHighestCurveIndex(), SketcherGui::makeTangentToArcOfEllipseviaNewPoint(), SketcherGui::makeTangentToArcOfHyperbolaviaNewPoint(), SketcherGui::makeTangentToArcOfParabolaviaNewPoint(), and SketcherGui::makeTangentToEllipseviaNewPoint().
◆ getHighestVertexIndex()
int Sketcher::SketchObject::getHighestVertexIndex | ( | void | ) | const |
Referenced by SketcherGui::DrawSketchHandler::getHighestVertexIndex().
◆ getInternalGeometry()
const std::vector<Part::Geometry *>& Sketcher::SketchObject::getInternalGeometry | ( | void | ) | const |
returns a list of all internal geometries
Referenced by carbonCopy(), Sketcher::SketchAnalysis::detectMissingEqualityConstraints(), Sketcher::SketchAnalysis::detectMissingPointOnPointConstraints(), and Sketcher::SketchAnalysis::detectMissingVerticalHorizontalConstraints().
◆ getLastConflicting()
const std::vector<int>& Sketcher::SketchObject::getLastConflicting | ( | void | ) | const |
gets the conflicting constraints of the last solver execution
◆ getLastDoF()
int Sketcher::SketchObject::getLastDoF | ( | ) | const |
gets DoF of last solver execution
Referenced by Sketcher::SketchAnalysis::solvesketch().
◆ getLastHasConflicts()
bool Sketcher::SketchObject::getLastHasConflicts | ( | ) | const |
gets HasConflicts status of last solver execution
Referenced by CmdSketcherConstrainBlock::activated(), and Sketcher::SketchAnalysis::solvesketch().
◆ getLastHasRedundancies()
bool Sketcher::SketchObject::getLastHasRedundancies | ( | ) | const |
gets HasRedundancies status of last solver execution
Referenced by CmdSketcherConstrainBlock::activated(), and Sketcher::SketchAnalysis::solvesketch().
◆ getLastRedundant()
const std::vector<int>& Sketcher::SketchObject::getLastRedundant | ( | void | ) | const |
gets the redundant constraints of last solver execution
◆ getLastSolverStatus()
int Sketcher::SketchObject::getLastSolverStatus | ( | ) | const |
gets solver status of last solver execution
Referenced by CmdSketcherConstrainBlock::activated().
◆ getLastSolveTime()
float Sketcher::SketchObject::getLastSolveTime | ( | ) | const |
gets solver SolveTime of last solver execution
◆ getMemSize()
|
virtual |
This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB?
Reimplemented from App::PropertyContainer.
◆ getMissingLineEqualityConstraints()
std::vector< ConstraintIds > & SketchObject::getMissingLineEqualityConstraints | ( | void | ) |
◆ getMissingPointOnPointConstraints()
std::vector< ConstraintIds > & SketchObject::getMissingPointOnPointConstraints | ( | void | ) |
◆ getMissingRadiusConstraints()
std::vector< ConstraintIds > & SketchObject::getMissingRadiusConstraints | ( | void | ) |
Referenced by Sketcher::SketchObjectPy::getMissingRadiusConstraints().
◆ getMissingVerticalHorizontalConstraints()
std::vector< ConstraintIds > & SketchObject::getMissingVerticalHorizontalConstraints | ( | void | ) |
◆ getOpenVertices()
std::vector< Base::Vector3d > SketchObject::getOpenVertices | ( | void | ) | const |
Referenced by Sketcher::SketchObjectPy::getOpenVertices().
◆ getPoint()
Base::Vector3d SketchObject::getPoint | ( | int | GeoId, |
PointPos | PosId | ||
) | const |
retrieves the coordinates of a point
References Part::GeomArcOfConic::getCenter(), Base::Persistence::getClassTypeId(), Part::GeomBoundedCurve::getEndPoint(), Part::GeomArcOfConic::getEndPoint(), Part::GeomLineSegment::getEndPoint(), Part::GeomPoint::getPoint(), Part::GeomBoundedCurve::getStartPoint(), Part::GeomArcOfConic::getStartPoint(), Part::GeomLineSegment::getStartPoint(), Base::Persistence::getTypeId(), and Sketcher::mid.
Referenced by CmdSketcherConstrainLock::activated(), CmdSketcherConstrainDistance::activated(), CmdSketcherConstrainDistanceX::activated(), CmdSketcherConstrainDistanceY::activated(), CmdSketcherConstrainAngle::activated(), CmdSketcherConstrainLock::applyConstraint(), CmdSketcherConstrainDistance::applyConstraint(), CmdSketcherConstrainDistanceX::applyConstraint(), CmdSketcherConstrainDistanceY::applyConstraint(), CmdSketcherConstrainAngle::applyConstraint(), and SketcherGui::IsPointAlreadyOnCurve().
◆ getPyObject()
|
virtual |
getPyObject returns the Python binding object
- Returns
- the Python binding object
Reimplemented from Part::Feature.
◆ getSolvedSketch()
Sketch& Sketcher::SketchObject::getSolvedSketch | ( | void | ) |
gets the solved sketch as a reference
Referenced by SketcherGui::TaskSketcherSolverAdvanced::updateDefaultMethodParameters(), SketcherGui::TaskSketcherSolverAdvanced::updateRedundantMethodParameters(), and SketcherGui::TaskSketcherSolverAdvanced::updateSketchObject().
◆ getVertexIndexGeoPos()
int SketchObject::getVertexIndexGeoPos | ( | int | GeoId, |
PointPos | PosId | ||
) | const |
retrieves for a GeoId and PosId the Vertex number
Referenced by SketcherGui::TaskSketcherElements::on_listWidgetElements_itemEntered().
◆ getViewProviderName()
|
virtual |
returns the type name of the ViewProvider
Reimplemented from Part::Part2DObject.
◆ getVirtualSpace()
int SketchObject::getVirtualSpace | ( | int | ConstrId, |
bool & | isinvirtualspace | ||
) | const |
get the driving status of this constraint
◆ hasConflicts()
int SketchObject::hasConflicts | ( | void | ) | const |
returns non zero if the sketch contains conflicting constraints
Referenced by SketcherGui::EditDatumDialog::exec().
◆ increaseBSplineDegree()
bool SketchObject::increaseBSplineDegree | ( | int | GeoId, |
int | degreeincrement = 1 |
||
) |
Increases the degree of a BSpline by degreeincrement, which defaults to 1.
- Parameters
-
GeoId - the geometry of type bspline to increase the degree degreeincrement - the increment in number of degrees to effect
- Return values
-
bool - returns true if the increase in degree succeeded, or false if it did not succeed.
References Base::Console(), Base::ConsoleSingleton::Error(), Base::Persistence::getClassTypeId(), and Base::Persistence::getTypeId().
◆ isAllowedOtherBody()
bool Sketcher::SketchObject::isAllowedOtherBody | ( | ) | const |
Flag to allow external geometry from other bodies than the one this sketch belongs to.
◆ isAllowedUnaligned()
bool Sketcher::SketchObject::isAllowedUnaligned | ( | ) | const |
Flag to allow carbon copy from misaligned geometry.
◆ isCarbonCopyAllowed()
bool SketchObject::isCarbonCopyAllowed | ( | App::Document * | pDoc, |
App::DocumentObject * | pObj, | ||
bool & | xinv, | ||
bool & | yinv, | ||
eReasonList * | rsn = 0 |
||
) | const |
References Base::Console(), Part::BodyBase::findBodyOf(), Base::Persistence::getClassTypeId(), getExternalGeometryCount(), App::Part::getPartOfObject(), Base::Placement::getPosition(), Base::Placement::getRotation(), Base::Persistence::getTypeId(), App::PropertyPlacement::getValue(), Base::Rotation::multVec(), App::GeoFeature::Placement, and Base::ConsoleSingleton::Warning().
Referenced by SketcherGui::CarbonCopySelection::allow().
◆ isCoincidentWithExternalGeometry()
void SketchObject::isCoincidentWithExternalGeometry | ( | int | GeoId, |
bool & | start_external, | ||
bool & | mid_external, | ||
bool & | end_external | ||
) |
References Sketcher::end, Sketcher::mid, and Sketcher::start.
◆ isExternalAllowed()
bool SketchObject::isExternalAllowed | ( | App::Document * | pDoc, |
App::DocumentObject * | pObj, | ||
eReasonList * | rsn = 0 |
||
) | const |
Return true if this object is allowed as external geometry for the sketch.
rsn argument receives the reason for disallowing.
References Base::Console(), Part::BodyBase::findBodyOf(), App::Part::getPartOfObject(), and Base::ConsoleSingleton::Warning().
Referenced by Sketcher::SketchObjectPy::addExternal(), SketcherGui::ExternalSelection::allow(), and Sketcher::SketchObjectPy::carbonCopy().
◆ isPointOnCurve()
bool SketchObject::isPointOnCurve | ( | int | geoIdCurve, |
double | px, | ||
double | py | ||
) |
References Sketcher::Sketch::addGeometry(), Sketcher::Sketch::addPoint(), Sketcher::Sketch::addPointOnObjectConstraint(), Sketcher::Sketch::calculateConstraintError(), Sketcher::Sketch::getSolverPrecision(), Sketcher::start, Base::Vector3< _Precision >::x, and Base::Vector3< _Precision >::y.
Referenced by SketcherGui::IsPointAlreadyOnCurve().
◆ isSupportedGeometry()
bool SketchObject::isSupportedGeometry | ( | const Part::Geometry * | geo | ) | const |
Returns true if the sketcher supports the given geometry.
- Parameters
-
geo - the geometry
- Return values
-
bool - true if the geometry is supported
References Base::Persistence::getClassTypeId(), and Base::Persistence::getTypeId().
◆ makeMissingEquality()
void SketchObject::makeMissingEquality | ( | bool | onebyone = true | ) |
Referenced by Sketcher::SketchObjectPy::makeMissingEquality().
◆ makeMissingPointOnPointCoincident()
void SketchObject::makeMissingPointOnPointCoincident | ( | bool | onebyone = false | ) |
◆ makeMissingVerticalHorizontal()
void SketchObject::makeMissingVerticalHorizontal | ( | bool | onebyone = false | ) |
Referenced by Sketcher::SketchObjectPy::makeMissingVerticalHorizontal().
◆ modifyBSplineKnotMultiplicity()
bool SketchObject::modifyBSplineKnotMultiplicity | ( | int | GeoId, |
int | knotIndex, | ||
int | multiplicityincr = 1 |
||
) |
Increases or Decreases the multiplicity of a BSpline knot by the multiplicityincr param, which defaults to 1, if the result is multiplicity zero, the knot is removed.
- Parameters
-
GeoId - the geometry of type bspline to increase the degree knotIndex - the index of the knot to modify (note that index is OCC consistent, so 1<=knotindex<=knots) multiplicityincr - the increment (positive value) or decrement (negative value) of multiplicity of the knot
- Return values
-
bool - returns true if the operation succeeded, or false if it did not succeed.
References Sketcher::BSplineControlPoint, Sketcher::BSplineKnotPoint, Sketcher::Constraint::clone(), Part::Geometry::clone(), Base::Console(), Part::GeomBSplineCurve::countKnots(), Part::GeomBSplineCurve::countPoles(), Base::ConsoleSingleton::Error(), Base::Persistence::getClassTypeId(), Part::GeomBSplineCurve::getDegree(), Part::GeomBSplineCurve::getKnots(), Part::GeomBSplineCurve::getMultiplicity(), Part::GeomBSplineCurve::getPoles(), Base::Persistence::getTypeId(), Sketcher::InternalAlignment, and Sketcher::Constraint::InternalAlignmentIndex.
◆ moveDatumsToEnd()
int SketchObject::moveDatumsToEnd | ( | void | ) |
Move Dimensional constraints at the end of the properties array.
◆ movePoint()
int SketchObject::movePoint | ( | int | GeoId, |
PointPos | PosId, | ||
const Base::Vector3d & | toPoint, | ||
bool | relative = false , |
||
bool | updateGeoBeforeMoving = false |
||
) |
move this point to a new location and solve
Referenced by Sketcher::SketchObjectPy::movePoint().
◆ mustExecute()
|
virtual |
mustExecute We call this method to check if the object was modified to be invoked.
If the object label or an argument is modified. If we must recompute the object - to call the method execute(). 0: no recomputation is needed 1: recomputation needed
- Remarks
- If an object is marked as 'touched' then this does not necessarily mean that it will be recomputed. It only means that all objects that link it (i.e. its InList) will be recomputed.
Reimplemented from Part::Feature.
◆ onChanged()
|
protectedvirtual |
get called by the container when a property has changed
Reimplemented from Part::Feature.
References Part::Feature::onChanged().
Referenced by ArchSite.Compass::buildCoordinates(), and ArchAxis.CommandArchGrid::IsActive().
◆ onDocumentRestored()
|
protectedvirtual |
get called after a document has been fully restored
Reimplemented from App::DocumentObject.
References App::DocumentObject::onDocumentRestored().
◆ port_reversedExternalArcs()
int SketchObject::port_reversedExternalArcs | ( | bool | justAnalyze | ) |
porting functions
SketchObject::port_reversedExternalArcs finds constraints that link to endpoints of external-geometry arcs, and swaps the endpoints in the constraints. This is needed after CCW emulation was introduced, to port old sketches.
- Parameters
-
justAnalyze if true, nothing is actually done - only the number of constraints to be affected is returned.
- Returns
- the number of constraints changed/to be changed.
References Base::Console(), Sketcher::end, Sketcher::Constraint::First, Sketcher::Constraint::FirstPos, Base::Persistence::getClassTypeId(), Part::GeomArcOfConic::isReversed(), Base::ConsoleSingleton::Log(), Sketcher::none, Sketcher::GeoEnum::RefExt, Sketcher::Constraint::Second, Sketcher::Constraint::SecondPos, Sketcher::start, Sketcher::Constraint::Third, and Sketcher::Constraint::ThirdPos.
◆ rebuildExternalGeometry()
void SketchObject::rebuildExternalGeometry | ( | void | ) |
rebuilds external geometry (projection onto the sketch plane)
References Part::Geometry::Construction, Base::Distance(), Base::Persistence::getClassTypeId(), Base::Placement::getPosition(), Base::Placement::getRotation(), Part::Datum::getShape(), Part::PropertyPartShape::getShape(), Part::TopoShape::getSubShape(), Base::Persistence::getTypeId(), App::PropertyPlacement::getValue(), Base::Placement::inverse(), Base::Type::isDerivedFrom(), Base::Placement::multVec(), Base::Rotation::multVec(), App::GeoFeature::Placement, Part::GeomConic::setAngleXU(), Part::GeomConic::setCenter(), Part::GeomParabola::setFocal(), Part::GeomArcOfCircle::setHandle(), Part::GeomArcOfEllipse::setHandle(), Part::GeomArcOfHyperbola::setHandle(), Part::GeomArcOfParabola::setHandle(), Part::GeomHyperbola::setMajorRadius(), Part::GeomHyperbola::setMinorRadius(), Part::GeomLineSegment::setPoints(), Part::GeomCircle::setRadius(), Part::Feature::Shape, Base::Placement::toMatrix(), Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.
◆ rebuildVertexIndex()
void SketchObject::rebuildVertexIndex | ( | void | ) |
References Base::Persistence::getClassTypeId(), and Sketcher::mid.
Referenced by Sketcher::SketchObjectPy::setCustomAttributes().
◆ Restore()
|
virtual |
This method is used to restore properties from an XML document.
It uses the XMLReader class, which bases on SAX, to read the in Save() written information. Again the Vector as an example:
Reimplemented from Part::Part2DObject.
References Part::Part2DObject::Restore().
◆ restoreFinished()
|
protectedvirtual |
This method is used at the end of restoreFromStream() after all data files have been read in.
A subclass can set up some internals. The default implementation does nothing.
Reimplemented from Base::Persistence.
◆ Save()
|
virtual |
This method is used to save properties to an XML document.
A good example you'll find in PropertyStandard.cpp, e.g. the vector:
The writer.ind() expression writes the indentation, just for pretty printing of the XML. As you see, the writing of the XML document is not done with a DOM implementation because of performance reasons. Therefore the programmer has to take care that a valid XML document is written. This means closing tags and writing UTF-8.
- See also
- Base::Writer
Reimplemented from App::DocumentObject.
References App::DocumentObject::Save().
◆ setActive()
int SketchObject::setActive | ( | int | ConstrId, |
bool | isactive | ||
) |
set the driving status of this constraint and solve
References Sketcher::Constraint::isActive.
◆ setAllowOtherBody()
void Sketcher::SketchObject::setAllowOtherBody | ( | bool | on | ) |
Referenced by SketcherGui::CarbonCopySelection::allow().
◆ setAllowUnaligned()
void Sketcher::SketchObject::setAllowUnaligned | ( | bool | on | ) |
Referenced by SketcherGui::CarbonCopySelection::allow().
◆ setConstruction()
int SketchObject::setConstruction | ( | int | GeoId, |
bool | on | ||
) |
References Part::Geometry::Construction, and Base::Persistence::getClassTypeId().
◆ setDatum()
int SketchObject::setDatum | ( | int | ConstrId, |
double | Datum | ||
) |
set the datum of a Distance or Angle constraint and solve
References Sketcher::Diameter, Sketcher::Distance, Sketcher::Perpendicular, Sketcher::Radius, Sketcher::Constraint::setValue(), and Sketcher::Tangent.
Referenced by Sketcher::SketchObjectPy::setDatum().
◆ setDatumsDriving()
int SketchObject::setDatumsDriving | ( | bool | isdriving | ) |
Make all dimensionals Driving/non-Driving.
References Sketcher::Constraint::isDriving.
◆ setDriving()
int SketchObject::setDriving | ( | int | ConstrId, |
bool | isdriving | ||
) |
set the driving status of this constraint and solve
References Sketcher::Constraint::isDriving.
◆ setExpression()
|
protectedvirtual |
Reimplemented from App::DocumentObject.
◆ setMissingLineEqualityConstraints()
void SketchObject::setMissingLineEqualityConstraints | ( | std::vector< ConstraintIds > & | cl | ) |
◆ setMissingPointOnPointConstraints()
void SketchObject::setMissingPointOnPointConstraints | ( | std::vector< ConstraintIds > & | cl | ) |
◆ setMissingRadiusConstraints()
void SketchObject::setMissingRadiusConstraints | ( | std::vector< ConstraintIds > & | cl | ) |
Referenced by Sketcher::SketchObjectPy::setMissingRadiusConstraints().
◆ setMissingVerticalHorizontalConstraints()
void SketchObject::setMissingVerticalHorizontalConstraints | ( | std::vector< ConstraintIds > & | cl | ) |
◆ setUpSketch()
int SketchObject::setUpSketch | ( | ) |
sets the geometry of sketchObject as the solvedsketch geometry returns the DoF of such a geometry.
Referenced by Sketcher::SketchObjectPy::addConstraint(), and Sketcher::SketchAnalysis::solvesketch().
◆ setVirtualSpace()
int SketchObject::setVirtualSpace | ( | int | ConstrId, |
bool | isinvirtualspace | ||
) |
set the driving status of this constraint and solve
References Sketcher::Constraint::isInVirtualSpace.
◆ solve()
int SketchObject::solve | ( | bool | updateGeoAfterSolving = true | ) |
solves the sketch and updates the geometry, but not all the dependent features (does not recompute) When a recompute is necessary, recompute triggers execute() which solves the sketch and updates all dependent features When a solve only is necessary (e.g.
DoF changed), solve() solves the sketch and updates the geometry (if updateGeoAfterSolving==true), but does not trigger any recompute.
- Returns
- 0 if no error, if error, the following codes in this order of priority: -4 if overconstrained, -3 if conflicting, -1 if solver error, -2 if redundant constraints
References GCS::Failed.
Referenced by CmdSketcherConstrainCoincident::activated(), CmdSketcherConstrainTangent::activated(), CmdSketcherConstrainRadius::activated(), CmdSketcherConstrainDiameter::activated(), Sketcher::SketchObjectPy::addConstraint(), CmdSketcherConstrainRadius::applyConstraint(), CmdSketcherConstrainDiameter::applyConstraint(), Sketcher::SketchObjectPy::solve(), and Sketcher::SketchAnalysis::solvesketch().
◆ supportedGeometry()
|
protected |
Returns a list of supported geometries from the input list.
- Parameters
-
geoList - the geometry list
- Return values
-
list - the supported geometry list
◆ testDrivingChange()
|
protected |
◆ toggleActive()
int SketchObject::toggleActive | ( | int | ConstrId | ) |
toggle the driving status of this constraint
References Sketcher::Constraint::isActive.
◆ toggleConstruction()
int SketchObject::toggleConstruction | ( | int | GeoId | ) |
toggle geometry to draft line
References Part::Geometry::Construction, and Base::Persistence::getClassTypeId().
◆ toggleDriving()
int SketchObject::toggleDriving | ( | int | ConstrId | ) |
toggle the driving status of this constraint
References Part::Geometry::Construction, Sketcher::Constraint::GeoUndef, Base::Persistence::getClassTypeId(), Base::Persistence::getTypeId(), and Sketcher::Constraint::isDriving.
◆ toggleVirtualSpace()
int SketchObject::toggleVirtualSpace | ( | int | ConstrId | ) |
toggle the driving status of this constraint
References Sketcher::Constraint::isInVirtualSpace.
◆ transferConstraints()
int SketchObject::transferConstraints | ( | int | fromGeoId, |
PointPos | fromPosId, | ||
int | toGeoId, | ||
PointPos | toPosId | ||
) |
transfers all constraints of a point to a new point
References Sketcher::Angle, Sketcher::Coincident, Sketcher::Constraint::First, Sketcher::Constraint::FirstPos, Sketcher::Perpendicular, Sketcher::Constraint::Second, Sketcher::Constraint::SecondPos, Sketcher::Tangent, and Sketcher::Constraint::Type.
◆ trim()
int SketchObject::trim | ( | int | geoId, |
const Base::Vector3d & | point | ||
) |
trim a curve
References Sketcher::Constraint::AlignmentType, Sketcher::Coincident, Sketcher::EllipseMajorDiameter, Sketcher::EllipseMinorDiameter, Sketcher::end, Sketcher::Equal, Sketcher::Constraint::First, Sketcher::Constraint::FirstPos, Base::fmod(), Sketcher::Constraint::GeoUndef, Part::GeomArcOfConic::getAngleXU(), Part::GeomArcOfConic::getCenter(), Base::Persistence::getClassTypeId(), Part::GeomLineSegment::getEndPoint(), Part::GeomArcOfEllipse::getMajorAxisDir(), Part::GeomArcOfEllipse::getMajorRadius(), Part::GeomArcOfHyperbola::getMajorRadius(), Part::GeomArcOfEllipse::getMinorRadius(), Part::GeomArcOfHyperbola::getMinorRadius(), Part::GeomArcOfCircle::getRange(), Part::GeomArcOfEllipse::getRange(), Part::GeomArcOfHyperbola::getRange(), Part::GeomLineSegment::getStartPoint(), Base::Persistence::getTypeId(), Sketcher::InternalAlignment, Sketcher::mid, Sketcher::none, Sketcher::PointOnObject, Sketcher::Constraint::Second, Sketcher::Constraint::SecondPos, Part::GeomArcOfConic::setCenter(), Part::GeomArcOfEllipse::setMajorAxisDir(), Part::GeomArcOfEllipse::setMajorRadius(), Part::GeomArcOfEllipse::setMinorRadius(), Part::GeomArcOfCircle::setRadius(), Part::GeomArcOfCircle::setRange(), Part::GeomArcOfEllipse::setRange(), Part::GeomArcOfHyperbola::setRange(), Sketcher::start, Sketcher::Tangent, Sketcher::Constraint::Type, Base::Vector3< _Precision >::x, and Base::Vector3< _Precision >::y.
Referenced by Sketcher::SketchObjectPy::trim().
◆ validateConstraints()
void SketchObject::validateConstraints | ( | ) |
Remove constraints with invalid indexes.
◆ validateExpression()
|
protected |
References Sketcher::Constraint::isDriving.
Referenced by SketchObject().
◆ validateExternalLinks()
void SketchObject::validateExternalLinks | ( | void | ) |
validate External Links (remove invalid external links)
References Sketcher::Constraint::clone(), Sketcher::Constraint::First, Sketcher::Constraint::GeoUndef, Base::Persistence::getClassTypeId(), Part::Datum::getShape(), Part::PropertyPartShape::getShape(), Part::TopoShape::getSubShape(), Base::Persistence::getTypeId(), Base::Type::isDerivedFrom(), Sketcher::GeoEnum::RefExt, Sketcher::Constraint::Second, Part::Feature::Shape, and Sketcher::Constraint::Third.
Member Data Documentation
◆ Constraints
Sketcher::PropertyConstraintList Sketcher::SketchObject::Constraints |
Referenced by CmdSketcherConstrainHorizontal::activated(), CmdSketcherConstrainVertical::activated(), CmdSketcherConstrainLock::activated(), CmdSketcherConstrainBlock::activated(), CmdSketcherConstrainCoincident::activated(), CmdSketcherConstrainDistance::activated(), CmdSketcherConstrainDistanceX::activated(), CmdSketcherConstrainDistanceY::activated(), CmdSketcherConstrainTangent::activated(), CmdSketcherConstrainRadius::activated(), CmdSketcherConstrainDiameter::activated(), CmdSketcherConstrainAngle::activated(), Sketcher::SketchObjectPy::addConstraint(), addCopyOfConstraints(), CmdSketcherConstrainHorizontal::applyConstraint(), CmdSketcherConstrainVertical::applyConstraint(), CmdSketcherConstrainLock::applyConstraint(), CmdSketcherConstrainDistance::applyConstraint(), CmdSketcherConstrainDistanceX::applyConstraint(), CmdSketcherConstrainDistanceY::applyConstraint(), CmdSketcherConstrainRadius::applyConstraint(), CmdSketcherConstrainDiameter::applyConstraint(), CmdSketcherConstrainAngle::applyConstraint(), SketcherGui::areAllPointsOrSegmentsFixed(), SketcherGui::areBothPointsOrSegmentsFixed(), carbonCopy(), Sketcher::SketchAnalysis::detectMissingEqualityConstraints(), Sketcher::SketchAnalysis::detectMissingPointOnPointConstraints(), SketcherGui::EditDatumDialog::EditDatumDialog(), SketcherGui::EditDatumDialog::exec(), Sketcher::SketchObjectPy::getDatum(), SketcherGui::isPointOrSegmentFixed(), SketcherGui::TaskSketcherConstrains::on_listWidgetConstraints_itemChanged(), ExpressionDelegate::paint(), DrawSketchHandlerBSpline::releaseButton(), Sketcher::SketchObjectPy::renameConstraint(), Sketcher::SketchObjectPy::setDatum(), and SketcherGui::ConstraintView::swapNamedOfSelectedItems().
◆ ExternalGeometry
App ::PropertyLinkSubList Sketcher::SketchObject::ExternalGeometry |
Referenced by carbonCopy().
◆ Geometry
Part ::PropertyGeometryList Sketcher::SketchObject::Geometry |
Property.
◆ noRecomputes
bool Sketcher::SketchObject::noRecomputes |
SketchObject can work in two modes: Recompute Mode and noRecomputes Mode.
- In Recompute Mode, a recompute is necessary after each geometry addition to update the solver DoF (default)
- In NoRecomputes Mode, no recompute is necessary after a geometry addition. If a recompute is triggered it is just less efficient.
This flag does not regulate whether this object will recompute or not if execute() or a recompute() is actually executed, it just regulates whether the solver is called or not (i.e. whether it relies on the solve of execute for the calculation)
Referenced by CmdSketcherConstrainRadius::activated(), CmdSketcherConstrainDiameter::activated(), CmdSketcherConstrainRadius::applyConstraint(), CmdSketcherConstrainDiameter::applyConstraint(), and SketcherGui::TaskSketcherMessages::TaskSketcherMessages().
The documentation for this class was generated from the following files:
- src/Mod/Sketcher/App/SketchObject.h
- src/Mod/Sketcher/App/SketchObject.cpp