Base class of all shape feature classes in FreeCAD. More...
#include <PartFeature.h>
Public Member Functions | |
Feature (void) | |
Constructor. More... | |
virtual | ~Feature () |
![]() | |
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 void | transformPlacement (const Base::Placement &transform) |
transformPlacement applies transform to placement of this shape. 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 void | Save (Base::Writer &writer) const override |
This method is used to save properties to an XML document. More... | |
virtual int | setElementVisible (const char *element, bool visible) |
Child element handling. More... | |
virtual void | setExpression (const ObjectIdentifier &path, boost::shared_ptr< App::Expression > expr) |
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... | |
virtual void | Restore (Base::XMLReader &reader) override |
This method is used to restore properties from an XML document. 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 |
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... | |
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... | |
Public Attributes | |
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... | |
methods override feature | |
virtual short | mustExecute () const override |
mustExecute We call this method to check if the object was modified to be invoked. More... | |
virtual const char * | getViewProviderName () const override |
returns the type name of the ViewProvider More... | |
virtual const App::PropertyComplexGeoData * | getPropertyOfGeometry () const override |
This method returns the main property of a geometric object that holds the actual geometry. More... | |
virtual PyObject * | getPyObject () override |
getPyObject returns the Python binding object 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... | |
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) |
virtual App::DocumentObjectExecReturn * | recompute () override |
recompute only this object More... | |
virtual App::DocumentObjectExecReturn * | execute () override |
recalculate the feature More... | |
virtual void | onChanged (const App::Property *prop) override |
get called by the container when a property was changed 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 &) |
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 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 DocumentObjectExecReturn * | StdReturn |
![]() | |
App::DocumentObjectExecReturn * | executeExtensions () |
Executes the extensions of a document object. More... | |
virtual void | onBeforeChange (const Property *prop) override |
get called before the value is changed More... | |
virtual void | onDocumentRestored () |
get called after a document has been fully restored 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... | |
virtual void | onUndoRedoFinished () |
get called after an undo/redo transaction is finished 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 | handleChangedPropertyName (Base::XMLReader &reader, const char *TypeName, const char *PropName) |
PropertyContainer::handleChangedPropertyName is called during restore to possibly fix reading of older versions of this property container. More... | |
virtual void | handleChangedPropertyType (Base::XMLReader &reader, const char *TypeName, Property *prop) |
PropertyContainer::handleChangedPropertyType is called during restore to possibly fix reading of older versions of the property container. More... | |
![]() | |
static const PropertyData * | getPropertyDataPtr (void) |
![]() | |
static void | initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=nullptr) |
![]() | |
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 |
Detailed Description
Base class of all shape feature classes in FreeCAD.
Constructor & Destructor Documentation
◆ Feature()
Feature::Feature | ( | void | ) |
Constructor.
◆ ~Feature()
|
virtual |
Member Function Documentation
◆ buildHistory()
|
protected |
Build a history of changes MakeShape: The operation that created the changes, e.g.
BRepAlgoAPI_Common type: The type of object we are interested in, e.g. TopAbs_FACE newS: The new shape that was created by the operation oldS: The original shape prior to the operation
References Part::ShapeHistory::shapeMap, and Part::ShapeHistory::type.
Referenced by Part::Chamfer::execute(), Part::Fillet::execute(), Part::Boolean::execute(), Part::MultiCommon::execute(), and Part::MultiFuse::execute().
◆ clearShapeCache()
|
static |
References ShapeCache::cache.
◆ execute()
|
overrideprotectedvirtual |
recalculate the feature
Reimplemented from App::DocumentObject.
Reimplemented in Surface::Sections, Surface::Extend, Sketcher::SketchObject, PartDesign::SubShapeBinder, PartDesign::ShapeBinder, PartDesign::Chamfer, PartDesign::Boolean, PartDesign::Body, Part::Primitive, Part::Part2DObject, Part::Revolution, Part::Offset2D, Part::Offset, Part::Face, Part::Extrusion, Surface::Sewing, Surface::GeomFillSurface, Surface::Filling, Surface::Cut, Sketcher::SketchObjectSF, Path::FeatureAreaView, Path::FeatureArea, PartDesign::Transformed, PartDesign::Thickness, PartDesign::Revolution, PartDesign::Wedge, PartDesign::Prism, PartDesign::Torus, PartDesign::Ellipsoid, PartDesign::Cone, PartDesign::Sphere, PartDesign::Cylinder, PartDesign::Box, PartDesign::Pocket, PartDesign::Pipe, PartDesign::Pad, PartDesign::Loft, PartDesign::Hole, PartDesign::Helix, PartDesign::Groove, PartDesign::Fillet, PartDesign::Draft, PartDesign::FeatureBase, Part::Ellipse, Part::Wedge, Part::Spiral, Part::Helix, Part::Torus, Part::Cone, Part::RegularPolygon, Part::Prism, Part::Cylinder, Part::Ellipsoid, Part::Sphere, Part::Plane, Part::Line, Part::Vertex, Part::Reverse, Part::Refine, Part::Thickness, Part::Sweep, Part::Loft, Part::RuledSurface, Part::Polygon, Part::ImportStep, Part::ImportIges, Part::ImportBrep, Part::MultiFuse, Part::CurveNet, Part::MultiCommon, Part::Circle, Part::Box, Part::Boolean, Part::Mirroring, Part::FeatureGeometrySet, Part::Fillet, Part::Compound, Part::Chamfer, Part::CustomFeature, Drawing::FeatureProjection, and PartDesign::FeaturePrimitive.
References Shape, and App::Property::touch().
Referenced by draftobjects.facebinder.Facebinder::addSubobjects(), PathScripts.PathDressupDogbone.ObjectDressup::boneStateList(), ArchSite.Compass::buildCoordinates(), PartDesign::FeaturePrimitive::execute(), Part::Part2DObject::execute(), Part::Primitive::execute(), PartDesign::ShapeBinder::execute(), PartDesign::SubShapeBinder::execute(), PathScripts.PathDressupHoldingTags.ObjectTagDressup::generateTags(), ArchPanel.PanelCut::getWires(), ArchSchedule.CommandArchSchedule::IsActive(), Mod.PartDesign.Scripts.DistanceBolt.DistanceBolt::onChanged(), Mod.PartDesign.Scripts.Epitrochoid.Epitrochoid::onChanged(), Mod.PartDesign.Scripts.Parallelepiped.Parallelepiped::onChanged(), Mod.PartDesign.Scripts.Parallelepiped.BoxCylinder::onChanged(), Mod.PartDesign.Scripts.Spring.MySpring::onChanged(), FeaturePython.DistanceBolt::onChanged(), PathScripts.PathStock.StockFromBase::onChanged(), PathScripts.PathStock.StockCreateBox::onChanged(), PathScripts.PathStock.StockCreateCylinder::onChanged(), draftobjects.draftlink.DraftLink::onDocumentRestored(), draftobjects.patharray.PathArray::onDocumentRestored(), and draftobjects.pathtwistedarray.PathTwistedArray::onDocumentRestored().
◆ getLocation()
TopLoc_Location Feature::getLocation | ( | void | ) | const |
References DraftVecUtils::angle(), Base::Placement::getPosition(), Base::Placement::getRotation(), App::PropertyPlacement::getValue(), Base::Rotation::getValue(), App::GeoFeature::Placement, Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.
Referenced by PartDesign::FeaturePrimitive::execute(), PartDesign::Groove::execute(), PartDesign::Helix::execute(), PartDesign::Hole::execute(), PartDesign::Loft::execute(), PartDesign::Pad::execute(), PartDesign::Pipe::execute(), PartDesign::Pocket::execute(), PartDesign::Revolution::execute(), PartDesign::Transformed::execute(), PartDesign::Helix::generateHelixPath(), PartDesign::DressUp::getAddSubShape(), PartDesign::LinearPattern::getTransformations(), PartDesign::Mirrored::getTransformations(), and PartDesign::PolarPattern::getTransformations().
◆ getPropertyOfGeometry()
|
overridevirtual |
This method returns the main property of a geometric object that holds the actual geometry.
For a part object this is the Shape property, for a mesh object the Mesh property and so on. The default implementation returns null.
Reimplemented from App::GeoFeature.
References Shape.
◆ getPyObject()
|
overridevirtual |
getPyObject returns the Python binding object
- Returns
- the Python binding object
Reimplemented from App::GeoFeature.
Reimplemented in Sketcher::SketchObject, PartDesign::Body, Path::FeatureArea, PartDesign::Feature, PartDesign::FeaturePrimitive, Part::Primitive, and Part::BodyBase.
References App::DocumentObject::PythonObject.
Referenced by Part::ImportStepParts().
◆ getShape()
|
static |
Convenience function to extract shape from fully qualified subname.
- Parameters
-
obj the parent object subname dot separated full qualified subname needSubElement whether to ignore the non-object subelement reference inside subname
pmat used as current transformation on input, and return the accumulated transformation on output owner return the owner of the shape returned resolveLink if true, resolve link(s) of the returned 'owner' by calling its getLinkedObject(true) function transform if true, apply obj's transformation. Set to false if pmat already include obj's transformation matrix.
References Part::TopoShape::getShape(), and getTopoShape().
Referenced by Part::Extrusion::calculateShapeNormal(), PartGui::evaluateAngularPreSelection(), PartGui::evaluateLinearPreSelection(), Part::Chamfer::execute(), Part::Compound::execute(), Part::Fillet::execute(), Part::Mirroring::execute(), Part::Boolean::execute(), Part::MultiCommon::execute(), Part::MultiFuse::execute(), Part::Loft::execute(), Part::Sweep::execute(), Part::Extrusion::execute(), Part::Face::execute(), Part::Offset::execute(), Part::Revolution::execute(), Part::Extrusion::fetchAxisLink(), Part::Revolution::fetchAxisLink(), TechDrawGui::DrawGuiUtil::getProjDirFromFace(), Measure::Measurement::getShape(), PartGui::getShapeFromStrings(), TechDraw::ShapeExtractor::getShapes(), PartDesign::Scaled::getTransformations(), Measure::Measurement::getType(), TechDraw::ShapeExtractor::getXShapes(), PartGui::TaskCheckGeometryResults::goCheck(), and PartGui::ViewProviderPartExt::updateVisual().
◆ getShapeOwner()
|
static |
References App::DocumentObject::getLinkedObject(), and App::DocumentObject::getSubObject().
Referenced by PartGui::ViewProviderBoolean::updateData(), PartGui::ViewProviderMultiFuse::updateData(), PartGui::ViewProviderMultiCommon::updateData(), PartGui::ViewProviderCompound::updateData(), PartGui::ViewProviderFillet::updateData(), and PartGui::ViewProviderChamfer::updateData().
◆ getSubObject()
|
overridevirtual |
Get the sub element/object by name.
- Parameters
-
subname a string which is dot separated name to refer to a sub element or object. An empty string can be used to refer to the object itself pyObj if non zero, returns the python object corresponding to this sub object. The actual type of this python object is implementation dependent. For example, The current implementation of Part::Feature will return the TopoShapePy, event if there is no sub-element reference, in which case it returns the whole shape. mat If non zero, it is used as the current transformation matrix on input. And output as the accumulated transformation up until and include the transformation applied by the final object reference in subname
. For Part::Feature, the transformation is applied to the TopoShape insidepyObj
before returning.transform if false, then it will not apply the object's own transformation to mat
, which lets you override the object's placement (and possibly scale).depth depth limitation as hint for cyclic link detection
- Returns
- The last document object referred in subname. If subname is empty, then it shall return itself. If subname is invalid, then it shall return zero.
Reimplemented from App::DocumentObject.
Reimplemented in PartDesign::SubShapeBinder, PartDesign::CoordinateSystem, PartDesign::Body, and Part::Datum.
References App::GetApplication(), ParameterGrp::GetBool(), App::DocumentObject::getFullName(), App::Application::GetParameterGroupByPath(), Part::PropertyPartShape::getShape(), App::DocumentObject::getSubObject(), App::PropertyPlacement::getValue(), Part::TopoShape::hasSubShape(), Data::ComplexGeoData::isMappedElement(), App::GeoFeature::Placement, Shape, Part::shape2pyshape(), and Base::Placement::toMatrix().
Referenced by PartDesign::Body::getSubObject(), and PartDesign::SubShapeBinder::getSubObject().
◆ getTopoShape()
|
static |
Referenced by MeshPartGui::Tessellation::accept(), Part::Sweep::execute(), Part::Thickness::execute(), Part::Extrusion::fetchAxisLink(), Part::Revolution::fetchAxisLink(), PartGui::ViewProviderPartExt::getModelPoints(), PartDesign::ProfileBased::getProfileShape(), getShape(), Import::ImportOCAF2::loadShapes(), PartDesign::SubShapeBinder::update(), and MeshPartGui::Mesh2ShapeGmsh::writeProject().
◆ getViewProviderName()
|
overridevirtual |
returns the type name of the ViewProvider
Reimplemented from App::DocumentObject.
Reimplemented in Part::Datum, Surface::Sections, Surface::Extend, Sketcher::SketchObject, PartDesign::SubShapeBinder, PartDesign::ShapeBinder, PartDesign::FeaturePrimitive, PartDesign::Chamfer, PartDesign::Boolean, PartDesign::Point, PartDesign::CoordinateSystem, PartDesign::Body, Part::Part2DObject, Part::Revolution, Part::Offset2D, Part::Offset, Part::Face, Part::Extrusion, Surface::GeomFillSurface, Surface::Filling, Path::FeatureAreaView, Path::FeatureArea, PartDesign::Thickness, PartDesign::Scaled, PartDesign::Revolution, PartDesign::PolarPattern, PartDesign::Pocket, PartDesign::Pipe, PartDesign::Pad, PartDesign::MultiTransform, PartDesign::Mirrored, PartDesign::Loft, PartDesign::LinearPattern, PartDesign::Hole, PartDesign::Helix, PartDesign::Groove, PartDesign::Fillet, PartDesign::Draft, PartDesign::Plane, PartDesign::Line, Part::Ellipse, Part::Wedge, Part::Spiral, Part::Helix, Part::Torus, Part::Cone, Part::RegularPolygon, Part::Prism, Part::Cylinder, Part::Ellipsoid, Part::Sphere, Part::Plane, Part::Line, Part::Vertex, Part::Reverse, Part::Refine, Part::Thickness, Part::Sweep, Part::Loft, Part::RuledSurface, Part::FeatureExt, Part::Spline, Part::ImportStep, Part::ImportIges, Part::ImportBrep, Part::MultiFuse, Part::CurveNet, Part::MultiCommon, Part::Circle, Part::Box, Part::Boolean, Part::Mirroring, Part::FeatureGeometrySet, Part::Fillet, Part::Compound, Part::Chamfer, Part::CustomFeature, PartDesign::FeatureBase, and PartDesign::Feature.
◆ hasShapeOwner()
|
static |
◆ joinHistory()
|
protected |
References Part::ShapeHistory::shapeMap, and Part::ShapeHistory::type.
Referenced by Part::Boolean::execute(), Part::MultiCommon::execute(), and Part::MultiFuse::execute().
◆ mustExecute()
|
overridevirtual |
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 App::DocumentObject.
Reimplemented in PartDesign::ShapeBinder, Path::FeatureArea, PartDesign::FeatureBase, Part::CustomFeature, Surface::Extend, Sketcher::SketchObject, PartDesign::Chamfer, PartDesign::Boolean, PartDesign::FeatureAddSub, PartDesign::Body, Part::Primitive, Part::Revolution, Part::Offset2D, Part::Offset, Part::Face, Part::Extrusion, Surface::Sewing, Surface::GeomFillSurface, Surface::Filling, Surface::Cut, Sketcher::SketchObjectSF, PartDesign::Transformed, PartDesign::Thickness, PartDesign::ProfileBased, PartDesign::Scaled, PartDesign::Revolution, PartDesign::Wedge, PartDesign::Prism, PartDesign::Torus, PartDesign::Ellipsoid, PartDesign::Cone, PartDesign::Sphere, PartDesign::Cylinder, PartDesign::Box, PartDesign::PolarPattern, PartDesign::Pocket, PartDesign::Pipe, PartDesign::Pad, PartDesign::MultiTransform, PartDesign::Mirrored, PartDesign::Loft, PartDesign::LinearPattern, PartDesign::Hole, PartDesign::Helix, PartDesign::Groove, PartDesign::Fillet, PartDesign::DressUp, PartDesign::Draft, PartDesign::Feature, Part::Ellipse, Part::Wedge, Part::Spiral, Part::Helix, Part::Torus, Part::Cone, Part::RegularPolygon, Part::Prism, Part::Cylinder, Part::Ellipsoid, Part::Sphere, Part::Plane, Part::Line, Part::Vertex, Part::Thickness, Part::Sweep, Part::Loft, Part::RuledSurface, Part::FilletBase, Part::Section, Part::Polygon, Part::ImportStep, Part::ImportIges, Part::ImportBrep, Part::MultiFuse, Part::CurveNet, Part::MultiCommon, Part::Circle, Part::Box, Part::Boolean, Part::Mirroring, and Part::Compound.
Referenced by SurfaceGui::SectionsPanel::accept(), Part::Circle::mustExecute(), PartDesign::Feature::mustExecute(), Part::Face::mustExecute(), Part::Primitive::mustExecute(), PartDesign::Body::mustExecute(), Part::CustomFeature::mustExecute(), PartDesign::FeatureBase::mustExecute(), Path::FeatureArea::mustExecute(), and PartDesign::ShapeBinder::mustExecute().
◆ onChanged()
|
overrideprotectedvirtual |
get called by the container when a property was changed
Reimplemented from App::DocumentObject.
Reimplemented in Surface::Extend, PartDesign::SubShapeBinder, PartDesign::FeaturePrimitive, PartDesign::Boolean, PartDesign::Point, PartDesign::Body, Part::Primitive, Part::Revolution, Part::BodyBase, PartDesign::ProfileBased, PartDesign::Hole, PartDesign::DressUp, PartDesign::FeatureBase, PartDesign::Plane, PartDesign::Line, Part::Wedge, Part::Spiral, Part::Helix, Part::Sweep, Part::Loft, Part::RuledSurface, Part::Box, Part::Mirroring, Sketcher::SketchObject, PartDesign::Chamfer, Surface::GeomFillSurface, Part::Ellipse, Part::Line, Part::Vertex, and Part::Circle.
References Base::Placement::fromMatrix(), Part::PropertyPartShape::getShape(), Part::TopoShape::getTransform(), App::PropertyPlacement::getValue(), Part::PropertyPartShape::getValue(), App::DocumentObject::isRecomputing(), App::GeoFeature::Placement, Part::TopoShape::setTransform(), App::PropertyPlacement::setValue(), Shape, and Base::Placement::toMatrix().
Referenced by draftviewproviders.view_base.ViewProviderDraft::attach(), ArchSite.Compass::buildCoordinates(), draftobjects.wire.Wire::execute(), ArchAxis.CommandArchGrid::IsActive(), Part::Circle::onChanged(), Surface::GeomFillSurface::onChanged(), Sketcher::SketchObject::onChanged(), Part::Mirroring::onChanged(), Part::RuledSurface::onChanged(), Part::Loft::onChanged(), Part::Sweep::onChanged(), PartDesign::FeatureBase::onChanged(), PartDesign::DressUp::onChanged(), PartDesign::ProfileBased::onChanged(), Part::BodyBase::onChanged(), Part::Revolution::onChanged(), Part::Primitive::onChanged(), PartDesign::Boolean::onChanged(), PartDesign::FeaturePrimitive::onChanged(), PartDesign::SubShapeBinder::onChanged(), Surface::Extend::onChanged(), ArchBuildingPart.ViewProviderBuildingPart::updateData(), ArchPanel.ViewProviderPanelCut::updateData(), ArchPanel.ViewProviderPanelSheet::updateData(), draftviewproviders.view_label.ViewProviderLabel::updateData(), draftviewproviders.view_layer.ViewProviderLayer::updateData(), and draftviewproviders.view_wpproxy.ViewProviderWorkingPlaneProxy::updateData().
◆ recompute()
|
overrideprotectedvirtual |
recompute only this object
Reimplemented from App::DocumentObject.
References App::DocumentObject::recompute(), and App::DocumentObjectExecReturn::Why.
Referenced by Part::Circle::onChanged(), Part::Vertex::onChanged(), Part::Line::onChanged(), Part::Ellipse::onChanged(), Part::Mirroring::onChanged(), Part::Box::onChanged(), Part::Helix::onChanged(), Part::Spiral::onChanged(), Part::Wedge::onChanged(), Part::Primitive::onChanged(), draftguitools.gui_trackers.arcTracker::setApertureAngle(), draftguitools.gui_trackers.arcTracker::setEndAngle(), draftguitools.gui_trackers.arcTracker::setStartAngle(), draftguitools.gui_trackers.bsplineTracker::update(), and draftguitools.gui_trackers.bezcurveTracker::update().
Member Data Documentation
◆ Shape
PropertyPartShape Part::Feature::Shape |
Referenced by ReverseEngineeringGui::Segmentation::accept(), DraftUtils::DraftDxfRead::AddGraphics(), Import::ImpExpDxfRead::AddGraphics(), DraftUtils::DraftDxfRead::AddObject(), Import::ImpExpDxfRead::AddObject(), PartGui::DlgProjectionOnSurface::EdgeSelection::allow(), PartGui::DlgProjectionOnSurface::FaceSelection::allow(), PartGui::DlgExtrusion::EdgeSelection::allow(), PartGui::DlgRevolution::EdgeSelection::allow(), PartGui::CrossSections::apply(), PartDesign::ShapeBinder::buildShapeFromReferences(), Surface::GeomFillSurface::createFace(), execute(), PartDesign::FeaturePrimitive::execute(), Drawing::FeatureProjection::execute(), Fem::FemMeshShapeNetgenObject::execute(), Fem::FemMeshShapeObject::execute(), Inspection::Feature::execute(), Part::Chamfer::execute(), Part::Compound::execute(), Part::Fillet::execute(), Part::FeatureGeometrySet::execute(), Part::Mirroring::execute(), Part::Boolean::execute(), Part::Box::execute(), Part::Circle::execute(), Part::MultiCommon::execute(), Part::CurveNet::execute(), Part::MultiFuse::execute(), Part::ImportBrep::execute(), Part::ImportIges::execute(), Part::ImportStep::execute(), Part::RuledSurface::execute(), Part::Loft::execute(), Part::Sweep::execute(), Part::Thickness::execute(), Part::Refine::execute(), Part::Reverse::execute(), Part::Vertex::execute(), Part::Line::execute(), Part::Plane::execute(), Part::Sphere::execute(), Part::Ellipsoid::execute(), Part::Cylinder::execute(), Part::Prism::execute(), Part::RegularPolygon::execute(), Part::Cone::execute(), Part::Torus::execute(), Part::Helix::execute(), Part::Spiral::execute(), Part::Wedge::execute(), Part::Ellipse::execute(), PartDesign::FeatureBase::execute(), PartDesign::Fillet::execute(), PartDesign::Groove::execute(), PartDesign::Helix::execute(), PartDesign::Hole::execute(), PartDesign::Loft::execute(), PartDesign::Pad::execute(), PartDesign::Pipe::execute(), PartDesign::Pocket::execute(), PartDesign::Revolution::execute(), PartDesign::Thickness::execute(), PartDesign::Transformed::execute(), Path::FeatureArea::execute(), Path::FeatureAreaView::execute(), Path::FeatureShape::execute(), Surface::Cut::execute(), Surface::Filling::execute(), Surface::Sewing::execute(), Part::Extrusion::execute(), Part::Face::execute(), Part::Offset::execute(), Part::Offset2D::execute(), Part::Revolution::execute(), PartDesign::Body::execute(), PartDesign::Boolean::execute(), PartDesign::Chamfer::execute(), PartDesign::ShapeBinder::execute(), Surface::Extend::execute(), Surface::Sections::execute(), PartGui::DlgExtrusion::findShapes(), PartDesign::DressUp::getAddSubShape(), PartDesign::ProfileBased::getAxis(), Fem::Constraint::getBasePoint(), PartDesign::Feature::getBaseShape(), PartDesign::Feature::getBaseTopoShape(), Fem::Constraint::getCylinder(), Fem::Constraint::getDirection(), TechDraw::ShapeExtractor::getLocation3dFromFeat(), Sketcher::SketchAnalysis::getOpenVertices(), Fem::Constraint::getPoints(), PartDesign::ProfileBased::getProfileWires(), getPropertyOfGeometry(), TechDraw::ShapeExtractor::getShapes2d(), TechDraw::ShapeExtractor::getShapesFromObject(), getSubObject(), PartDesign::ProfileBased::getSupportFace(), PartDesign::LinearPattern::getTransformations(), PartDesign::Mirrored::getTransformations(), PartDesign::PolarPattern::getTransformations(), PartDesign::ProfileBased::getUpToFaceFromLinkSub(), PartDesign::ProfileBased::getVerifiedFace(), Surface::GeomFillSurface::getWire(), Part::ImportIgesParts(), Part::ImportStepParts(), Import::ImportOCAF2::loadShapes(), PartDesignGui::TaskFeaturePick::makeCopy(), Fem::Constraint::onChanged(), Fem::ConstraintBearing::onChanged(), Part::Box::onChanged(), PartDesign::DressUp::onChanged(), onChanged(), FemGui::TaskFemConstraintBearing::onSelectionChanged(), FemGui::TaskFemConstraintGear::onSelectionChanged(), SurfaceGui::FillingPanel::open(), Import::ExportOCAF::reallocateFreeShape(), Sketcher::SketchObject::rebuildExternalGeometry(), PartDesign::ProfileBased::remapSupportShape(), Part::Box::Restore(), Import::ExportOCAF::saveShape(), PartGui::ViewProviderMirror::setEdit(), PartDesign::SubShapeBinder::setLinks(), Path::Area::showShape(), PartDesignGui::ViewProviderBody::slotChangedObjectApp(), FemGui::TaskFemConstraintFluidBoundary::TaskFemConstraintFluidBoundary(), PartDesign::SubShapeBinder::update(), PartGui::ViewProviderBoolean::updateData(), PartGui::ViewProviderMultiFuse::updateData(), PartGui::ViewProviderMultiCommon::updateData(), PartGui::ViewProviderCompound::updateData(), PartGui::ViewProviderFillet::updateData(), PartGui::ViewProviderChamfer::updateData(), and Sketcher::SketchObject::validateExternalLinks().
The documentation for this class was generated from the following files:
- Sources/FreeCAD/src/Mod/Part/App/PartFeature.h
- Sources/FreeCAD/src/Mod/Part/App/PartFeature.cpp