Base class of all Constraint Objects of the Fem module. More...
#include <FemConstraint.h>
Public Member Functions | |
int | calcDrawScaleFactor () const |
Returns default scale factor of 1. More... | |
int | calcDrawScaleFactor (double lparam) const |
Calculates scale factor based on length of edge. More... | |
int | calcDrawScaleFactor (double lvparam, double luparam) const |
Calculates scale factor based on size of face. More... | |
Constraint () | |
virtual App::DocumentObjectExecReturn * | execute () |
Updates NormalDirection. More... | |
virtual const char * | getViewProviderName () const |
returns the type name of the ViewProvider More... | |
virtual | ~Constraint () |
Public Member Functions inherited from App::DocumentObject | |
virtual App::Property * | addDynamicProperty (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::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=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 DocumentObject * | getLinkedObject (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 PyObject * | getPyObject (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 DocumentObject * | getSubObject (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::DocumentObject * | resolve (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::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, 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::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) |
Public Member Functions inherited from App::PropertyContainer | |
virtual App::Property * | addDynamicProperty (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::Property * | getDynamicPropertyByName (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 Property * | getPropertyByName (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 PyObject * | getPyObject () |
This method returns the Python wrapper for a C++ object. More... | |
virtual Type | getTypeId () const |
bool | isDerivedFrom (const Type type) const |
BaseClass & | operator= (const BaseClass &)=default |
virtual void | setPyObject (PyObject *) |
virtual | ~BaseClass () |
Destruction. More... | |
Public Attributes | |
App::PropertyVector | NormalDirection |
Vector pointing into the effective direction of the constraint. More... | |
App::PropertyLinkSubList | References |
List of objects the constraints applies to. More... | |
App::PropertyInteger | Scale |
Supposed to reflect the size of the References. More... | |
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... | |
Protected Member Functions | |
Base::Vector3d | getBasePoint (const Base::Vector3d &base, const Base::Vector3d &axis, const App::PropertyLinkSub &location, const double &dist) |
Calculate point of cylidrical face where to render widget. More... | |
bool | getCylinder (double &radius, double &height, Base::Vector3d &base, Base::Vector3d &axis) const |
Extract properties of cylindrical face. More... | |
const Base::Vector3d | getDirection (const App::PropertyLinkSub &direction) |
Get normal vector of point calculated by getBasePoint. More... | |
bool | getPoints (std::vector< Base::Vector3d > &points, std::vector< Base::Vector3d > &normals, int *scale) const |
Returns data based on References relevant for rendering widgets. More... | |
virtual void | onChanged (const App::Property *prop) |
Updates NormalDirection if References change. More... | |
virtual void | onDocumentRestored () |
Triggers onChanged to update View Provider. More... | |
Protected Member Functions inherited from App::DocumentObject | |
virtual App::DocumentObjectExecReturn * | execute (void) |
get called by the document to recompute this feature Normally this method get called in the processing of Document::recompute(). More... | |
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 | 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::DocumentObjectExecReturn * | recompute (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 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... | |
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... | |
Additional Inherited Members | |
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 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 Attributes inherited from App::DocumentObject | |
static DocumentObjectExecReturn * | StdReturn |
Static Protected Member Functions inherited from App::PropertyContainer | |
static const PropertyData * | getPropertyDataPtr (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) |
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 |
Base class of all Constraint Objects of the Fem module.
Constraint isn't intended to be used directly. Actual Constraints used to specify a simulation are children of this class. The base class essentially does two things: Most importantely it has a property Constraint::References which is a list of all sub objects the constraint applies to. Defining it in the base class exposes a common interface to code using different constraints.
The second purpose of Constraint is to support the redering to the screen done by the View Provider FemGui::ViewProviderFemConstraint. The rendering is decoupled from the objects listed in the References property by using a point cloud a normal vector and a scale factor which is generated by this class. The View Provider doesn't know of the references it just asks Constraint for those values and renders a widget for each point scaled by the scale factor pointing in the direction of the normal vector. These values are exposed by the two properties NormalDirection and Scale and the protected method getPoints(points&, normals&, scale&).
Constraint::Constraint | ( | ) |
References App::Global, App::Prop_None, App::Prop_Output, and App::Prop_ReadOnly.
|
virtual |
int Constraint::calcDrawScaleFactor | ( | ) | const |
Returns default scale factor of 1.
This is just used to make code more understandable. Other versions (overloads) of this function do useful calculations based on faces or edges. Used by getPoints if no useful shape information is available.
Referenced by calcDrawScaleFactor(), and getPoints().
int Constraint::calcDrawScaleFactor | ( | double | lparam | ) | const |
Calculates scale factor based on length of edge.
Used to calculate the scale factor returned by getPoints when the scale factor is calculated for a face.
int Constraint::calcDrawScaleFactor | ( | double | lvparam, |
double | luparam | ||
) | const |
Calculates scale factor based on size of face.
Used to calculate the scale factor returned by getPoints when the scale factor is calculated for a edge.
References calcDrawScaleFactor().
|
virtual |
Updates NormalDirection.
Updates NormalDirection using new References. It does so by calling onChanged once with the References property and once with the Scale property. The second call doesn't do anything.
Reimplemented from App::DocumentObject.
Reimplemented in Fem::ConstraintBearing, Fem::ConstraintContact, Fem::ConstraintDisplacement, Fem::ConstraintFixed, Fem::ConstraintFluidBoundary, Fem::ConstraintForce, Fem::ConstraintGear, Fem::ConstraintHeatflux, Fem::ConstraintInitialTemperature, Fem::ConstraintPlaneRotation, Fem::ConstraintPressure, Fem::ConstraintPulley, Fem::ConstraintSpring, Fem::ConstraintTemperature, and Fem::ConstraintTransform.
References References, Scale, App::DocumentObject::StdReturn, and App::Property::touch().
Referenced by draftobjects.facebinder.Facebinder::addSubobjects(), PathScripts.PathDressupDogbone.ObjectDressup::boneStateList(), ArchSite.Compass::buildCoordinates(), Fem::ConstraintBearing::execute(), Fem::ConstraintContact::execute(), Fem::ConstraintDisplacement::execute(), Fem::ConstraintFixed::execute(), Fem::ConstraintFluidBoundary::execute(), Fem::ConstraintForce::execute(), Fem::ConstraintHeatflux::execute(), Fem::ConstraintInitialTemperature::execute(), Fem::ConstraintPlaneRotation::execute(), Fem::ConstraintPressure::execute(), Fem::ConstraintSpring::execute(), Fem::ConstraintTemperature::execute(), Fem::ConstraintTransform::execute(), PathScripts.PathDressupHoldingTags.ObjectTagDressup::generateTags(), ArchPanel.PanelCut::getWires(), ArchSchedule.CommandArchSchedule::IsActive(), onChanged(), 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().
|
protected |
Calculate point of cylidrical face where to render widget.
References DraftVecUtils::dist(), Part::PropertyPartShape::getShape(), Part::TopoShape::getSubShape(), Part::Feature::Shape, Base::Vector3< _Precision >::x, Base::Vector3< _Precision >::y, and Base::Vector3< _Precision >::z.
Referenced by Fem::ConstraintBearing::onChanged().
|
protected |
Extract properties of cylindrical face.
References Part::PropertyPartShape::getShape(), Part::TopoShape::getSubShape(), App::PropertyLinkSubList::getSubValues(), App::PropertyLinkSubList::getValues(), Part::TopoShape::isNull(), References, and Part::Feature::Shape.
Referenced by Fem::ConstraintBearing::onChanged(), and Fem::ConstraintTransform::onChanged().
|
protected |
Get normal vector of point calculated by getBasePoint.
References Base::Persistence::getClassTypeId(), Fem::Tools::getDirectionFromShape(), Part::PropertyPartShape::getShape(), App::PropertyLinkSub::getSubValues(), App::PropertyLinkSub::getValue(), Part::Feature::Shape, and draftgeoutils.general::vec().
Referenced by Fem::ConstraintFluidBoundary::onChanged(), Fem::ConstraintForce::onChanged(), and Fem::ConstraintGear::onChanged().
|
protected |
Returns data based on References relevant for rendering widgets.
Extracts data from all objects inside References relevant for widget rendering by the View Provider. This includes the points at which widgets shall be drawn, a vector per point indicating the direction the widget should face and a global scale factor for all widgets. Two vectors of equal length are used to return the points and their normal vectors. The normal vector of points[i] can be found with the same index in normals[i].
[out] | points | For each vertex a point equal to the location of that vertex is pushed into the points vector. For each edge at least to points, the beginning and the end of the edge, are pushed into the vector. Depending on the length of the edge more points may be added in between. For each face a number of points depending on the size of the face and the step size calculated internally are pushed into the vector. |
[out] | normals | For vertexes and edges normal vectors equal to the NormalDirection are pushed onto the vector. For each point of a face a Base::Vector3d equal to the normal vector of the face at that position is added to the vector. |
[out] | scale | The scale contains a scale value for the object in References that was processed last. For calculation various versions of calcDrawScaleFactor are used. |
References calcDrawScaleFactor(), Part::PropertyPartShape::getShape(), Part::TopoShape::getShape(), Part::TopoShape::getSubShape(), App::PropertyLinkSubList::getSubValues(), App::PropertyVector::getValue(), App::PropertyLinkSubList::getValues(), Part::TopoShape::isNull(), NormalDirection, References, and Part::Feature::Shape.
Referenced by Fem::ConstraintContact::onChanged(), Fem::ConstraintDisplacement::onChanged(), Fem::ConstraintFixed::onChanged(), Fem::ConstraintFluidBoundary::onChanged(), Fem::ConstraintForce::onChanged(), Fem::ConstraintHeatflux::onChanged(), Fem::ConstraintInitialTemperature::onChanged(), Fem::ConstraintPlaneRotation::onChanged(), Fem::ConstraintPressure::onChanged(), Fem::ConstraintSpring::onChanged(), Fem::ConstraintTemperature::onChanged(), and Fem::ConstraintTransform::onChanged().
|
virtual |
returns the type name of the ViewProvider
Reimplemented from App::DocumentObject.
Reimplemented in Fem::ConstraintBearing, Fem::ConstraintContact, Fem::ConstraintDisplacement, Fem::ConstraintFixed, Fem::ConstraintFluidBoundary, Fem::ConstraintForce, Fem::ConstraintGear, Fem::ConstraintHeatflux, Fem::ConstraintInitialTemperature, Fem::ConstraintPlaneRotation, Fem::ConstraintPressure, Fem::ConstraintPulley, Fem::ConstraintSpring, Fem::ConstraintTemperature, and Fem::ConstraintTransform.
|
protectedvirtual |
Updates NormalDirection if References change.
Reimplemented from App::DocumentObject.
Reimplemented in Fem::ConstraintBearing, Fem::ConstraintContact, Fem::ConstraintDisplacement, Fem::ConstraintFixed, Fem::ConstraintFluidBoundary, Fem::ConstraintForce, Fem::ConstraintGear, Fem::ConstraintHeatflux, Fem::ConstraintInitialTemperature, Fem::ConstraintPlaneRotation, Fem::ConstraintPressure, Fem::ConstraintPulley, Fem::ConstraintSpring, Fem::ConstraintTemperature, and Fem::ConstraintTransform.
References execute(), Part::PropertyPartShape::getShape(), Part::TopoShape::getShape(), Part::TopoShape::getSubShape(), App::PropertyLinkSubList::getSubValues(), App::PropertyLinkSubList::getValues(), App::DocumentObject::isRecomputing(), NormalDirection, App::DocumentObject::onChanged(), References, App::PropertyVector::setValue(), Part::Feature::Shape, and draftgeoutils.general::v1().
Referenced by ArchStructure.CommandStructuralSystem::Activated(), draftviewproviders.view_base.ViewProviderDraft::attach(), ArchSite.Compass::buildCoordinates(), draftobjects.wire.Wire::execute(), Fem::ConstraintBearing::onChanged(), Fem::ConstraintContact::onChanged(), Fem::ConstraintDisplacement::onChanged(), Fem::ConstraintFixed::onChanged(), Fem::ConstraintFluidBoundary::onChanged(), Fem::ConstraintForce::onChanged(), Fem::ConstraintHeatflux::onChanged(), Fem::ConstraintInitialTemperature::onChanged(), Fem::ConstraintPlaneRotation::onChanged(), Fem::ConstraintPressure::onChanged(), Fem::ConstraintSpring::onChanged(), Fem::ConstraintTemperature::onChanged(), Fem::ConstraintTransform::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().
|
protectedvirtual |
Triggers onChanged to update View Provider.
Reimplemented from App::DocumentObject.
References App::DocumentObject::onDocumentRestored(), References, and App::Property::touch().
App::PropertyVector Fem::Constraint::NormalDirection |
Vector pointing into the effective direction of the constraint.
If References contains only one face of a shape than NormalDirection is the normal vector of that face. If more than one face is referenced that it is the normal vector of the first face. If References is empty or doesn't contain a face the value of NormalDirection is the Z-axis or its previous value.
Referenced by getPoints(), onChanged(), Fem::ConstraintFluidBoundary::onChanged(), Fem::ConstraintForce::onChanged(), FemGui::ViewProviderFemConstraintBearing::updateData(), FemGui::ViewProviderFemConstraintFluidBoundary::updateData(), and FemGui::ViewProviderFemConstraintForce::updateData().
App::PropertyLinkSubList Fem::Constraint::References |
List of objects the constraints applies to.
This is a list of subobjects (e.g. Faces, Edges, ...) the constraint applies to. It's only supposed to contain objects of or derived from Part::Feature. Altering this property triggers a update of NormalDirection and Scale.
Referenced by execute(), getCylinder(), getPoints(), FemGui::ViewProviderFemConstraintOnBoundary::highlightReferences(), onChanged(), Fem::ConstraintBearing::onChanged(), Fem::ConstraintContact::onChanged(), Fem::ConstraintDisplacement::onChanged(), Fem::ConstraintFixed::onChanged(), Fem::ConstraintFluidBoundary::onChanged(), Fem::ConstraintForce::onChanged(), Fem::ConstraintHeatflux::onChanged(), Fem::ConstraintInitialTemperature::onChanged(), Fem::ConstraintPlaneRotation::onChanged(), Fem::ConstraintPressure::onChanged(), Fem::ConstraintSpring::onChanged(), Fem::ConstraintTemperature::onChanged(), Fem::ConstraintTransform::onChanged(), onDocumentRestored(), FemGui::TaskFemConstraint::onReferenceDeleted(), FemGui::TaskFemConstraintBearing::onSelectionChanged(), FemGui::TaskFemConstraintBearing::TaskFemConstraintBearing(), FemGui::TaskFemConstraintContact::TaskFemConstraintContact(), FemGui::TaskFemConstraintDisplacement::TaskFemConstraintDisplacement(), FemGui::TaskFemConstraintFixed::TaskFemConstraintFixed(), FemGui::TaskFemConstraintFluidBoundary::TaskFemConstraintFluidBoundary(), FemGui::TaskFemConstraintForce::TaskFemConstraintForce(), FemGui::TaskFemConstraintHeatflux::TaskFemConstraintHeatflux(), FemGui::TaskFemConstraintInitialTemperature::TaskFemConstraintInitialTemperature(), FemGui::TaskFemConstraintPlaneRotation::TaskFemConstraintPlaneRotation(), FemGui::TaskFemConstraintPressure::TaskFemConstraintPressure(), FemGui::TaskFemConstraintSpring::TaskFemConstraintSpring(), FemGui::TaskFemConstraintTemperature::TaskFemConstraintTemperature(), and FemGui::TaskFemConstraintTransform::TaskFemConstraintTransform().
App::PropertyInteger Fem::Constraint::Scale |
Supposed to reflect the size of the References.
This property should be a scale factor for the widgets rendered by the View Provider but it's always 1. It isn't updated when References changes.
Referenced by execute(), FemGui::TaskFemConstraint::getScale(), Fem::ConstraintContact::onChanged(), Fem::ConstraintDisplacement::onChanged(), Fem::ConstraintFixed::onChanged(), Fem::ConstraintFluidBoundary::onChanged(), Fem::ConstraintForce::onChanged(), Fem::ConstraintHeatflux::onChanged(), Fem::ConstraintInitialTemperature::onChanged(), Fem::ConstraintPlaneRotation::onChanged(), Fem::ConstraintPressure::onChanged(), Fem::ConstraintSpring::onChanged(), Fem::ConstraintTemperature::onChanged(), Fem::ConstraintTransform::onChanged(), FemGui::ViewProviderFemConstraintContact::updateData(), FemGui::ViewProviderFemConstraintDisplacement::updateData(), FemGui::ViewProviderFemConstraintFixed::updateData(), FemGui::ViewProviderFemConstraintFluidBoundary::updateData(), FemGui::ViewProviderFemConstraintForce::updateData(), FemGui::ViewProviderFemConstraintHeatflux::updateData(), FemGui::ViewProviderFemConstraintPlaneRotation::updateData(), FemGui::ViewProviderFemConstraintPressure::updateData(), FemGui::ViewProviderFemConstraintSpring::updateData(), FemGui::ViewProviderFemConstraintTemperature::updateData(), and FemGui::ViewProviderFemConstraintTransform::updateData().