PartDesign::Body Class Reference

#include <Body.h>

Public Member Functions

 Body ()
 True if this body feature is active or was active when the document was last closed. More...
 
- Public Member Functions inherited from Part::BodyBase
 BodyBase ()
 
std::vector< App::DocumentObject * > getFullModel ()
 Returns all Group objects prepanded by BaseFeature (if any) More...
 
virtual PyObjectgetPyObject () override
 getPyObject returns the Python binding object More...
 
bool isAfter (const App::DocumentObject *feature, const App::DocumentObject *target) const
 Return true if the feature belongs to the body and is located after the target. More...
 
- Public Member Functions inherited from Part::Feature
 Feature (void)
 Constructor. More...
 
virtual ~Feature ()
 
virtual const App::PropertyComplexGeoDatagetPropertyOfGeometry () const override
 This method returns the main property of a geometric object that holds the actual geometry. More...
 
TopLoc_Location getLocation () const
 
- Public Member Functions inherited from App::GeoFeature
 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...
 
virtual const PropertyComplexGeoDatagetPropertyOfGeometry () const
 This method returns the main property of a geometric object that holds the actual geometry. More...
 
virtual PyObjectgetPyObject (void)
 getPyObject returns the Python binding object 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 ()
 
- Public Member Functions inherited from App::DocumentObject
virtual App::PropertyaddDynamicProperty (const char *type, const char *name=nullptr, const char *group=nullptr, const char *doc=nullptr, short attr=0, bool ro=false, bool hidden=false) override
 
virtual bool adjustRelativeLinks (const std::set< App::DocumentObject * > &inList, std::set< App::DocumentObject * > *visited=nullptr)
 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 clearExpression (const ObjectIdentifier &path)
 
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::DocumentgetDocument (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...
 
DocumentObjectGroupgetGroup () 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=nullptr) 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 DocumentObjectgetLinkedObject (bool recurse=true, Base::Matrix4D *mat=nullptr, 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...
 
virtual PyObjectgetPyObject (void) override
 This method returns the Python wrapper for a C++ object. More...
 
unsigned long getStatus () const
 return the status bits More...
 
const char * getStatusString (void) const
 get the status Message More...
 
virtual DocumentObjectgetSubObject (const char *subname, PyObject **pyObj=nullptr, Base::Matrix4D *mat=nullptr, bool transform=true, int depth=0) const
 Get the sub element/object by name. 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 * getViewProviderName (void) const
 returns the type name of the ViewProvider 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
 
virtual short mustExecute (void) const
 mustExecute We call this method to check if the object was modified to be invoked. More...
 
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::DocumentObjectresolve (const char *subname, App::DocumentObject **parent=nullptr, std::string *childName=nullptr, const char **subElement=nullptr, PyObject **pyObj=nullptr, Base::Matrix4D *mat=nullptr, bool transform=true, int depth=0) const
 Resolve the last document object referenced in the subname. More...
 
App::DocumentObjectresolveRelativeLink (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, std::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 ()
 
- Public Member Functions inherited from App::TransactionalObject
virtual const char * detachFromDocument ()
 
virtual bool isAttachedToDocument () const
 
 TransactionalObject (void)
 Constructor. More...
 
virtual ~TransactionalObject ()
 
- Public Member Functions inherited from App::ExtensionContainer
ExtensionIterator extensionBegin ()
 
 ExtensionContainer ()
 
ExtensionIterator extensionEnd ()
 
App::ExtensiongetExtension (Base::Type, bool derived=true, bool no_except=false) const
 
App::ExtensiongetExtension (const std::string &name) const
 
template<typename ExtensionT >
ExtensionTgetExtensionByType (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 PropertygetPropertyByName (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)
 
- Public Member Functions inherited from App::PropertyContainer
virtual App::PropertyaddDynamicProperty (const char *type, const char *name=nullptr, const char *group=nullptr, const char *doc=nullptr, short attr=0, bool ro=false, bool hidden=false)
 
bool changeDynamicProperty (const Property *prop, const char *group, const char *doc)
 
virtual void editProperty (const char *)
 
virtual App::PropertygetDynamicPropertyByName (const char *name) const
 
DynamicProperty::PropData getDynamicPropertyData (const Property *prop) const
 
virtual std::vector< std::string > getDynamicPropertyNames () const
 
virtual std::string getFullName () 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...
 
virtual PropertygetPropertyByName (const char *name) const
 find a property by its name More...
 
virtual const char * getPropertyDocumentation (const char *name) const
 get the Group of a named Property More...
 
virtual const char * getPropertyDocumentation (const Property *prop) const
 get the Group of a Property More...
 
virtual const char * getPropertyGroup (const char *name) const
 get the Group of a named Property More...
 
virtual const char * getPropertyGroup (const Property *prop) const
 get the Group of a Property More...
 
virtual void getPropertyList (std::vector< Property * > &List) const
 get all properties of the class (including properties of the parent) More...
 
virtual void getPropertyMap (std::map< std::string, Property * > &Map) const
 get all properties of the class (including properties of the parent) More...
 
virtual const char * getPropertyName (const Property *prop) const
 get the name of a property More...
 
virtual void getPropertyNamedList (std::vector< std::pair< const char *, Property * > > &List) const
 get all properties with their names, may contain duplicates and aliases More...
 
const char * getPropertyPrefix () const
 
virtual short getPropertyType (const char *name) const
 get the Type of a named Property More...
 
virtual short getPropertyType (const Property *prop) const
 get the Type of a Property More...
 
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...
 
virtual void onPropertyStatusChanged (const Property &prop, unsigned long oldStatus)
 
 PropertyContainer ()
 A constructor. More...
 
virtual bool removeDynamicProperty (const char *name)
 
virtual void Restore (Base::XMLReader &reader)
 This method is used to restore properties from an XML document. More...
 
virtual void Save (Base::Writer &writer) const
 This method is used to save properties to an XML document. 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...
 
- Public Member Functions inherited from Base::Persistence
void dumpToStream (std::ostream &stream, int compression)
 
virtual unsigned int getMemSize () const =0
 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 Base::Type getTypeId (void) const
 
virtual void Restore (XMLReader &)=0
 This method is used to restore properties from an XML document. More...
 
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 Save (Writer &) const =0
 This method is used to save properties to an XML document. More...
 
virtual void SaveDocFile (Writer &) const
 This method is used to save large amounts of data to a binary file. More...
 
- Public Member Functions inherited from Base::BaseClass
 BaseClass ()
 Construction. More...
 
 BaseClass (const BaseClass &)=default
 
virtual PyObjectgetPyObject ()
 This method returns the Python wrapper for a C++ object. More...
 
virtual Type getTypeId () const
 
bool isDerivedFrom (const Type type) const
 
BaseClassoperator= (const BaseClass &)=default
 
virtual void setPyObject (PyObject *)
 
virtual ~BaseClass ()
 Destruction. More...
 
- Public Member Functions inherited from App::OriginGroupExtension
virtual std::vector< DocumentObject * > addObjects (std::vector< DocumentObject * > obj) override
 
virtual bool extensionGetSubObject (DocumentObject *&ret, const char *subname, PyObject **pyObj, Base::Matrix4D *mat, bool transform, int depth) const override
 Get the sub object by name. More...
 
virtual short extensionMustExecute () override
 Returns true on changing OriginFeature set. More...
 
virtual void extensionOnChanged (const Property *p) override
 
App::OrigingetOrigin () const
 Returns the origin link or throws an exception. More...
 
virtual const char * getViewProviderName () const
 returns the type name of the ViewProvider More...
 
virtual bool hasObject (const DocumentObject *obj, bool recursive=false) const override
 Checks whether the object obj is part of this group. More...
 
 OriginGroupExtension ()
 
void relinkToOrigin (App::DocumentObject *obj)
 
virtual ~OriginGroupExtension ()
 
- Public Member Functions inherited from App::GeoFeatureGroupExtension
virtual std::vector< DocumentObject * > addObjects (std::vector< DocumentObject * > obj) override
 
virtual bool extensionGetSubObject (DocumentObject *&ret, const char *subname, PyObject **pyObj, Base::Matrix4D *mat, bool transform, int depth) const override
 Get the sub object by name. More...
 
virtual bool extensionGetSubObjects (std::vector< std::string > &ret, int reason) const override
 Get name references of all sub objects. More...
 
virtual void extensionOnChanged (const Property *p) override
 
 GeoFeatureGroupExtension (void)
 Constructor. More...
 
Base::Placement globalGroupPlacement ()
 Calculates the global placement of this group. More...
 
virtual void initExtension (ExtensionContainer *obj) override
 
PropertyPlacementplacement ()
 
virtual std::vector< DocumentObject * > removeObjects (std::vector< DocumentObject * > obj) override
 Removes objects from this group. More...
 
virtual void transformPlacement (const Base::Placement &transform)
 transformPlacement applies transform to placement of this shape. More...
 
virtual ~GeoFeatureGroupExtension ()
 
- Public Member Functions inherited from App::GroupExtension
 GroupExtension (void)
 Constructor. More...
 
virtual ~GroupExtension ()
 
virtual DocumentObjectaddObject (const char *sType, const char *pObjectName)
 Adds an object of sType with pObjectName to the document this group belongs to and append it to this group as well. More...
 
virtual std::vector< DocumentObject * > setObjects (std::vector< DocumentObject * > obj)
 
virtual bool allowObject (DocumentObject *)
 
virtual std::vector< DocumentObject * > removeObject (DocumentObject *obj)
 Removes an object from this group. More...
 
virtual void removeObjectsFromDocument ()
 Removes all children objects from this group and the document. More...
 
DocumentObjectgetObject (const char *Name) const
 Returns the object of this group with Name. More...
 
bool isChildOf (const GroupExtension *group, bool recursive=true) const
 Checks whether this group object is a child (or sub-child if enabled) of the given group object. More...
 
const std::vector< DocumentObject * > & getObjects () const
 Returns a list of all objects this group does have. More...
 
std::vector< DocumentObject * > getObjectsOfType (const Base::Type &typeId) const
 Returns a list of all objects of typeId this group does have. More...
 
int countObjectsOfType (const Base::Type &typeId) const
 Returns the number of objects of typeId this group does have. More...
 
virtual PyObjectgetExtensionPyObject (void) override
 
std::vector< DocumentObject * > getAllChildren () const
 
void getAllChildren (std::vector< DocumentObject * > &, std::set< DocumentObject * > &) const
 
- Public Member Functions inherited from App::DocumentObjectExtension
 DocumentObjectExtension ()
 
virtual App::DocumentObjectExecReturnextensionExecute ()
 
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 short extensionMustExecute ()
 
virtual int extensionSetElementVisible (const char *, bool)
 
App::DocumentObjectgetExtendedObject ()
 
const App::DocumentObjectgetExtendedObject () const
 
virtual PyObjectgetExtensionPyObject () override
 
virtual const char * getViewProviderExtensionName () const
 returns the type name of the ViewProviderExtension which is automatically attached to the viewprovider object when it is initiated More...
 
virtual void onExtendedDocumentRestored ()
 get called after a document has been fully restored 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 ()
 
- Public Member Functions inherited from App::Extension
 Extension ()
 
App::ExtensionContainergetExtendedContainer ()
 
const App::ExtensionContainergetExtendedContainer () const
 
virtual PyObjectgetExtensionPyObject ()
 
virtual void initExtension (App::ExtensionContainer *obj)
 
bool isPythonExtension ()
 
std::string name () const
 
virtual ~Extension ()
 
virtual PropertyextensionGetPropertyByName (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
 

methods override feature

App::DocumentObjectExecReturnexecute (void) override
 recalculate the feature More...
 
short mustExecute () const override
 mustExecute We call this method to check if the object was modified to be invoked. More...
 
const char * getViewProviderName (void) const override
 returns the type name of the view provider More...
 
virtual std::vector< App::DocumentObject * > addObject (App::DocumentObject *) override
 Add the feature into the body at the current insert point. More...
 
virtual std::vector< DocumentObject * > addObjects (std::vector< DocumentObject * > obj) override
 
void insertObject (App::DocumentObject *feature, App::DocumentObject *target, bool after=false)
 Insert the feature into the body after the given feature. More...
 
void setBaseProperty (App::DocumentObject *feature)
 
virtual std::vector< DocumentObject * > removeObject (DocumentObject *obj) override
 Remove the feature from the body. More...
 
bool isAfterInsertPoint (App::DocumentObject *feature)
 Checks if the given document object lays after the current insert point (place before next solid after the Tip) More...
 
virtual bool allowObject (DocumentObject *f) override
 
PyObjectgetPyObject (void) override
 getPyObject returns the Python binding object More...
 
virtual std::vector< std::string > getSubObjects (int reason=0) const override
 Return name reference of all sub-objects. More...
 
virtual App::DocumentObjectgetSubObject (const char *subname, PyObject **pyObj, Base::Matrix4D *pmat, bool transform, int depth) const override
 Get the sub element/object by name. More...
 
void setShowTip (bool enable)
 
App::DocumentObjectgetPrevSolidFeature (App::DocumentObject *start=nullptr)
 Return the solid feature before the given feature, or before the Tip feature That is, sketches and datum features are skipped. More...
 
App::DocumentObjectgetNextSolidFeature (App::DocumentObject *start=nullptr)
 Return the next solid feature after the given feature, or after the Tip feature That is, sketches and datum features are skipped. More...
 
bool isSolid (void)
 
static bool isMemberOfMultiTransform (const App::DocumentObject *f)
 Return true if the given feature is member of a MultiTransform feature. More...
 
static bool isSolidFeature (const App::DocumentObject *f)
 Return true if the given feature is a solid feature allowed in a Body. More...
 
static bool isAllowed (const App::DocumentObject *f)
 Return true if the given feature is allowed in a Body. More...
 
static BodyfindBodyOf (const App::DocumentObject *feature)
 Return the body which this feature belongs too, or NULL The only difference to BodyBase::findBodyOf() is that this one casts value to Body*. More...
 
virtual void onSettingDocument () override
 get called after setting the document More...
 
virtual void onChanged (const App::Property *prop) override
 Adjusts the first solid's feature's base on BaseFeature getting set. More...
 
virtual void setupObject () override
 Creates the corresponding Origin object. More...
 
virtual void unsetupObject () override
 Removes all planes and axis if they are still linked to the document. More...
 
virtual void onDocumentRestored () override
 get called after a document has been fully restored More...
 

Additional Inherited Members

- Public Types inherited from App::GeoFeature
enum  ElementNameType { Normal =0 , Import =1 , Export =2 }
 Specify the type of element name to return when calling getElementName() More...
 
- Public Types inherited from App::DocumentObject
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...
 
- Public Types inherited from App::ExtensionContainer
typedef std::map< Base::Type, App::Extension * >::iterator ExtensionIterator
 
- Static Public Member Functions inherited from Part::BodyBase
static BodyBasefindBodyOf (const App::DocumentObject *f)
 Return the body which this feature belongs too, or NULL. More...
 
- Static Public Member Functions inherited from Part::Feature
static TopoDS_Shape getShape (const App::DocumentObject *obj, const char *subname=nullptr, bool needSubElement=false, Base::Matrix4D *pmat=nullptr, App::DocumentObject **owner=nullptr, 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=nullptr, bool needSubElement=false, Base::Matrix4D *pmat=nullptr, App::DocumentObject **owner=nullptr, bool resolveLink=true, bool transform=true, bool noElementMap=false)
 
static void clearShapeCache ()
 
static App::DocumentObjectgetShapeOwner (const App::DocumentObject *obj, const char *subname=nullptr)
 
static bool hasShapeOwner (const App::DocumentObject *obj, const char *subname=nullptr)
 
- Static Public Member Functions inherited from App::GeoFeature
static DocumentObjectresolveElement (App::DocumentObject *obj, const char *subname, std::pair< std::string, std::string > &elementName, bool append=false, ElementNameType type=Normal, const DocumentObject *filter=nullptr, const char **element=nullptr, GeoFeature **geo=nullptr)
 Resolve both the new and old style element name. More...
 
- Static Public Member Functions inherited from App::DocumentObject
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 Public Member Functions inherited from Base::Persistence
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 Public Member Functions inherited from Base::BaseClass
static void * create ()
 
static Type getClassTypeId ()
 
static void init ()
 
- Static Public Member Functions inherited from App::OriginGroupExtension
static DocumentObjectgetGroupOfObject (const DocumentObject *obj)
 Returns the origin group which contains this object. More...
 
- Static Public Member Functions inherited from App::GeoFeatureGroupExtension
static bool areLinksValid (const App::DocumentObject *obj)
 Checks if the links of the given object comply with all GeoFeatureGroup requirements, that means if normal links are only within the parent GeoFeatureGroup. More...
 
static std::vector< App::DocumentObject * > getCSRelevantLinks (const App::DocumentObject *obj)
 Collects all links that are relevant for the coordinate system, meaning all recursive links to obj and from obj excluding expressions and stopping the recursion at other geofeaturegroups. More...
 
static DocumentObjectgetGroupOfObject (const DocumentObject *obj)
 Returns the geo feature group which contains this object. More...
 
static void getInvalidLinkObjects (const App::DocumentObject *obj, std::vector< App::DocumentObject * > &vec)
 
static bool isLinkValid (App::Property *link)
 Checks if the given link complies with all GeoFeatureGroup requirements, that means if normal links are only within the parent GeoFeatureGroup. More...
 
static bool isNonGeoGroup (const DocumentObject *obj)
 Returns true if the given DocumentObject is DocumentObjectGroup but not GeoFeatureGroup. More...
 
- Static Public Member Functions inherited from App::GroupExtension
static DocumentObjectgetGroupOfObject (const DocumentObject *obj)
 Returns the object group of the document which the given object obj is part of. More...
 
- Public Attributes inherited from Part::BodyBase
App::PropertyLink BaseFeature
 A base object of the body, serves as a base object for the first feature of the body. More...
 
App::PropertyLink Tip
 The final feature of the body it is associated with. More...
 
- Public Attributes inherited from Part::Feature
PropertyPartShape Shape
 
- Public Attributes inherited from App::GeoFeature
PropertyPlacement Placement
 
- Public Attributes inherited from App::DocumentObject
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...
 
- Public Attributes inherited from App::OriginGroupExtension
PropertyLink Origin
 Origin linked to the group. More...
 
- Public Attributes inherited from App::GroupExtension
PropertyLinkList Group
 Properties. More...
 
- Static Public Attributes inherited from App::DocumentObject
static DocumentObjectExecReturnStdReturn
 
- Protected Member Functions inherited from Part::BodyBase
virtual 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 void onBeforeChange (const App::Property *prop) override
 If BaseFeature is getting changed and Tip points to it reset the Tip. More...
 
virtual void onChanged (const App::Property *prop) override
 If BaseFeature is set and Tip is null set the Tip to it. More...
 
- Protected Member Functions inherited from Part::Feature
virtual App::DocumentObjectExecReturnrecompute () 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 &)
 
- Protected Member Functions inherited from App::DocumentObject
virtual App::DocumentObjectExecReturnexecute (void)
 get called by the document to recompute this feature Normally this method get called in the processing of Document::recompute(). More...
 
App::DocumentObjectExecReturnexecuteExtensions ()
 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 onChanged (const Property *prop) override
 get called by the container when a property was 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...
 
virtual App::DocumentObjectExecReturnrecompute (void)
 recompute only this object 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...
 
- Protected Member Functions inherited from App::TransactionalObject
void onBeforeChangeProperty (Document *doc, const Property *prop)
 
- Protected Member Functions inherited from App::PropertyContainer
virtual const PropertyDatagetPropertyData (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...
 
virtual void onBeforeChange (const Property *)
 get called before the value is changed More...
 
virtual void onChanged (const Property *)
 get called by the container when a property has changed More...
 
- Protected Member Functions inherited from App::OriginGroupExtension
virtual App::DocumentObjectExecReturnextensionExecute () override
 Checks integrity of the Origin. More...
 
virtual void onExtendedSetupObject () override
 Creates the corresponding Origin object. More...
 
virtual void onExtendedUnsetupObject () override
 Removes all planes and axis if they are still linked to the document. More...
 
- Protected Member Functions inherited from App::Extension
void initExtensionType (Base::Type type)
 
- Static Protected Member Functions inherited from App::PropertyContainer
static const PropertyDatagetPropertyDataPtr (void)
 
- Static Protected Member Functions inherited from Base::BaseClass
static void initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=nullptr)
 
- Static Protected Member Functions inherited from App::Extension
static void initExtensionSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Base::Type::instantiationMethod method=nullptr)
 
- Protected Attributes inherited from App::DocumentObject
std::string oldLabel
 Old label; used for renaming expressions. More...
 
const std::string * pcNameInDocument
 
Py::SmartPtr 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...
 
- Protected Attributes inherited from App::PropertyContainer
DynamicProperty dynamicProps
 
- Protected Attributes inherited from App::Extension
bool m_isPythonExtension = false
 
Py::SmartPtr ExtensionPythonObject
 

Constructor & Destructor Documentation

◆ Body()

Body::Body ( )

True if this body feature is active or was active when the document was last closed.

References App::Property::Output, and App::DocumentObject::setStatus().

Referenced by Mod.PartDesign.PartDesignTests.TestBoolean.TestBoolean::testBooleanCommonCase(), Mod.PartDesign.PartDesignTests.TestBoolean.TestBoolean::testBooleanCutCase(), Mod.PartDesign.PartDesignTests.TestRevolve.TestRevolve::testGrooveFace(), Mod.PartDesign.PartDesignTests.TestLinearPattern.TestLinearPattern::testHorizontalSketchAxisLinearPattern(), Mod.PartDesign.PartDesignTests.TestPolarPattern.TestPolarPattern::testHorizontalSketchAxisPolarPattern(), Mod.PartDesign.PartDesignTests.TestMirrored.TestMirrored::testMirroredOffsetCase(), Mod.PartDesign.PartDesignTests.TestMirrored.TestMirrored::testMirroredPrimitiveCase(), Mod.PartDesign.PartDesignTests.TestLinearPattern.TestLinearPattern::testNormalSketchAxisLinearPattern(), Mod.PartDesign.PartDesignTests.TestPolarPattern.TestPolarPattern::testNormalSketchAxisPolarPattern(), Mod.PartDesign.PartDesignTests.TestPad.TestPad::testPadToFaceCase(), Mod.PartDesign.PartDesignTests.TestPad.TestPad::testPadToFirstCase(), Mod.PartDesign.PartDesignTests.TestPad.TestPad::testPadtoLastCase(), Mod.PartDesign.PartDesignTests.TestPad.TestPad::testPadTwoDimensionsCase(), Mod.PartDesign.PartDesignTests.TestPocket.TestPocket::testPocketThroughAllCase(), Mod.PartDesign.PartDesignTests.TestPocket.TestPocket::testPocketToFaceCase(), Mod.PartDesign.PartDesignTests.TestPocket.TestPocket::testPocketToFirstCase(), Mod.PartDesign.PartDesignTests.TestPrimitive.TestPrimitive::testPrimitiveCone(), Mod.PartDesign.PartDesignTests.TestPrimitive.TestPrimitive::testPrimitiveCylinder(), Mod.PartDesign.PartDesignTests.TestPrimitive.TestPrimitive::testPrimitiveEllipsoid(), Mod.PartDesign.PartDesignTests.TestPrimitive.TestPrimitive::testPrimitivePrism(), Mod.PartDesign.PartDesignTests.TestPrimitive.TestPrimitive::testPrimitiveSphere(), Mod.PartDesign.PartDesignTests.TestPrimitive.TestPrimitive::testPrimitiveTorus(), Mod.PartDesign.PartDesignTests.TestPrimitive.TestPrimitive::testPrimitiveWedge(), Mod.PartDesign.PartDesignTests.TestLoft.TestLoft::testSimpleSubtractiveLoftCase(), Mod.PartDesign.PartDesignTests.TestPipe.TestPipe::testSimpleSubtractivePipeCase(), Mod.PartDesign.PartDesignTests.TestLinearPattern.TestLinearPattern::testVerticalSketchAxisLinearPattern(), Mod.PartDesign.PartDesignTests.TestPolarPattern.TestPolarPattern::testVerticalSketchAxisPolarPattern(), Mod.PartDesign.PartDesignTests.TestLinearPattern.TestLinearPattern::testYAxisLinearPattern(), Mod.PartDesign.PartDesignTests.TestPolarPattern.TestPolarPattern::testYAxisPolarPattern(), Mod.PartDesign.PartDesignTests.TestLinearPattern.TestLinearPattern::testZAxisLinearPattern(), and Mod.PartDesign.PartDesignTests.TestPolarPattern.TestPolarPattern::testZAxisPolarPattern().

Member Function Documentation

◆ addObject()

◆ addObjects()

std::vector< App::DocumentObject * > Body::addObjects ( std::vector< DocumentObject * >  obj)
overridevirtual

◆ allowObject()

virtual bool PartDesign::Body::allowObject ( DocumentObject f)
overridevirtual

◆ execute()

App::DocumentObjectExecReturn * Body::execute ( void  )
overridevirtual

◆ findBodyOf()

◆ getNextSolidFeature()

App::DocumentObject * Body::getNextSolidFeature ( App::DocumentObject start = nullptr)

Return the next solid feature after the given feature, or after the Tip feature That is, sketches and datum features are skipped.

References DraftVecUtils::find(), App::PropertyLink::getValue(), App::PropertyListsT< T, ListT, ParentT >::getValues(), App::GroupExtension::Group, App::OriginGroupExtension::hasObject(), isSolidFeature(), and Part::BodyBase::Tip.

Referenced by addObject(), isAfterInsertPoint(), removeObject(), and setBaseProperty().

◆ getPrevSolidFeature()

App::DocumentObject * Body::getPrevSolidFeature ( App::DocumentObject start = nullptr)

Return the solid feature before the given feature, or before the Tip feature That is, sketches and datum features are skipped.

References DraftVecUtils::find(), App::PropertyLink::getValue(), App::PropertyListsT< T, ListT, ParentT >::getValues(), App::GroupExtension::Group, App::OriginGroupExtension::hasObject(), isSolidFeature(), and Part::BodyBase::Tip.

Referenced by removeObject(), and setBaseProperty().

◆ getPyObject()

PyObject * Body::getPyObject ( void  )
overridevirtual

getPyObject returns the Python binding object

Returns
the Python binding object

Reimplemented from Part::BodyBase.

References App::DocumentObject::PythonObject.

◆ getSubObject()

App::DocumentObject * Body::getSubObject ( const char *  subname,
PyObject **  pyObj,
Base::Matrix4D mat,
bool  transform,
int  depth 
) const
overridevirtual

Get the sub element/object by name.

Parameters
subnamea 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
pyObjif 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.
matIf 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 inside pyObj before returning.
transformif false, then it will not apply the object's own transformation to mat, which lets you override the object's placement (and possibly scale).
depthdepth 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 Part::Feature.

References Base::Persistence::getClassTypeId(), Part::Feature::getSubObject(), App::PropertyPlacement::getValue(), App::PropertyListsT< T, ListT, ParentT >::getValues(), App::GroupExtension::Group, Data::ComplexGeoData::isMappedElement(), App::GeoFeature::Placement, and Base::Placement::toMatrix().

◆ getSubObjects()

std::vector< std::string > Body::getSubObjects ( int  reason = 0) const
overridevirtual

Return name reference of all sub-objects.

Parameters
reasonindicate reason of obtaining the sub objects

The default implementation returns all object references in PropertyLink, and PropertyLinkList, if any

Returns
Return a vector of subname references for all sub-objects. In most cases, the name returned will be the object name plus an ending '.', which can be passed directly to getSubObject() to retrieve the name. The reason to return the name reference instead of the sub object itself is because there may be no real sub object, or the sub object need special transformation. For example, sub objects of an array type of object.

Reimplemented from App::DocumentObject.

References App::DocumentObject::getSubObjects(), and App::DocumentObject::GS_SELECT.

◆ getViewProviderName()

const char * PartDesign::Body::getViewProviderName ( void  ) const
overridevirtual

returns the type name of the view provider

Reimplemented from App::OriginGroupExtension.

◆ insertObject()

void Body::insertObject ( App::DocumentObject feature,
App::DocumentObject target,
bool  after = false 
)

Insert the feature into the body after the given feature.

Parameters
featureThe feature to insert into the body
targetThe feature relative which one should be inserted the given. If target is NULL than insert into the end if where is InsertBefore and into the begin if where is InsertAfter.
afterif true insert the feature after the target. Default is false.
Note
the method doesn't modify the Tip unlike addObject()

References DraftVecUtils::find(), Base::Persistence::getClassTypeId(), App::PropertyListsT< T, ListT, ParentT >::getValues(), App::GroupExtension::Group, App::OriginGroupExtension::hasObject(), Base::BaseClass::isDerivedFrom(), App::OriginGroupExtension::relinkToOrigin(), setBaseProperty(), and App::PropertyLinkList::setValues().

Referenced by addObject(), and onChanged().

◆ isAfterInsertPoint()

bool Body::isAfterInsertPoint ( App::DocumentObject feature)

Checks if the given document object lays after the current insert point (place before next solid after the Tip)

References getNextSolidFeature(), and Part::BodyBase::isAfter().

◆ isAllowed()

bool Body::isAllowed ( const App::DocumentObject f)
static

Return true if the given feature is allowed in a Body.

Currently allowed are all features derived from PartDesign::Feature and Part::Datum and sketches

References Base::Persistence::getClassTypeId().

Referenced by addObject(), PartDesignGui::ViewProviderBody::dropObject(), PartDesignGui::isPartDesignAwareObjecta(), and PartDesignGui::Workbench::setupContextMenu().

◆ isMemberOfMultiTransform()

bool Body::isMemberOfMultiTransform ( const App::DocumentObject f)
static

◆ isSolid()

bool Body::isSolid ( void  )

◆ isSolidFeature()

bool Body::isSolidFeature ( const App::DocumentObject f)
static

Return true if the given feature is a solid feature allowed in a Body.

Currently this is only valid for features derived from PartDesign::Feature Return false if the given feature is a Sketch or a Part::Datum feature

References Base::Persistence::getClassTypeId(), PartDesign::Feature::isDatum(), and isMemberOfMultiTransform().

Referenced by addObject(), getNextSolidFeature(), getPrevSolidFeature(), isSolid(), removeObject(), and setBaseProperty().

◆ mustExecute()

short Body::mustExecute ( ) const
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 Part::Feature.

References App::Property::isTouched(), Part::Feature::mustExecute(), and Part::BodyBase::Tip.

◆ onChanged()

◆ onDocumentRestored()

◆ onSettingDocument()

void Body::onSettingDocument ( )
overrideprotectedvirtual

get called after setting the document

Reimplemented from App::DocumentObject.

References App::DocumentObject::onSettingDocument().

◆ removeObject()

◆ setBaseProperty()

◆ setShowTip()

void PartDesign::Body::setShowTip ( bool  enable)

◆ setupObject()

void Body::setupObject ( )
overrideprotectedvirtual

Creates the corresponding Origin object.

Reimplemented from App::DocumentObject.

References App::DocumentObject::setupObject().

◆ unsetupObject()

void Body::unsetupObject ( void  )
overrideprotectedvirtual

Removes all planes and axis if they are still linked to the document.

Reimplemented from App::DocumentObject.

References App::DocumentObject::unsetupObject().


The documentation for this class was generated from the following files: