SketcherGui::ViewProviderSketch Class Reference

The Sketch ViewProvider This class handles mainly the drawing and editing of the sketch. More...

#include <ViewProviderSketch.h>

Classes

struct  constrIconQueueItem
 Internal type used for drawing constraint icons. More...
 

Public Member Functions

void draw (bool temp=false, bool rebuildinformationlayer=true)
 draw the sketch in the inventor nodes temp => use temporary solver solution in SketchObject recreateinformationscenography => forces a rebuild of the information layer scenography More...
 
void drawConstraintIcons ()
 Draw all constraint icons. More...
 
void drawEdit (const std::vector< Base::Vector2d > &EditCurve)
 draw the edit curve More...
 
bool isSelectable (void) const override
 Is the view provider selectable. More...
 
virtual void onSelectionChanged (const Gui::SelectionChanges &msg) override
 Observer message from the Selection. More...
 
void showRestoreInformationLayer ()
 Show/Hide nodes from information layer. More...
 
 ViewProviderSketch ()
 constructor More...
 
virtual ~ViewProviderSketch ()
 destructor More...
 
handler control
void activateHandler (DrawSketchHandler *newHandler)
 sets an DrawSketchHandler in control More...
 
void purgeHandler (void)
 removes the active handler More...
 
void setAxisPickStyle (bool on)
 set the pick style of the sketch coordinate axes More...
 
helper functions
void getCoordsOnSketchPlane (double &u, double &v, const SbVec3f &point, const SbVec3f &normal)
 give the coordinates of a line on the sketch plane in sketcher (2D) coordinates More...
 
void getProjectingLine (const SbVec2s &, const Gui::View3DInventorViewer *viewer, SbLine &) const
 give projecting line of position More...
 
bool detectPreselection (const SoPickedPoint *Point, const Gui::View3DInventorViewer *viewer, const SbVec2s &cursorPos)
 helper to detect preselection More...
 
std::set< int > detectPreselectionConstr (const SoPickedPoint *Point, const Gui::View3DInventorViewer *viewer, const SbVec2s &cursorPos)
 Helper for detectPreselection(), for constraints only. More...
 
void centerSelection ()
 
void doBoxSelection (const SbVec2s &startPos, const SbVec2s &endPos, const Gui::View3DInventorViewer *viewer)
 box selection method More...
 
void updateColor (void)
 helper change the color of the sketch according to selection and solver status More...
 
Sketcher::SketchObjectgetSketchObject (void) const
 get the pointer to the sketch document object More...
 
const Sketcher::SketchgetSolvedSketch (void) const
 returns a const reference to the last solved sketch object. More...
 
void snapToGrid (double &x, double &y)
 snap points x,y (mouse coordinates) onto grid if enabled More...
 
void moveConstraint (int constNum, const Base::Vector2d &toPos)
 moves a selected constraint More...
 
Base::Vector3d seekConstraintPosition (const Base::Vector3d &origPos, const Base::Vector3d &norm, const Base::Vector3d &dir, float step, const SoNode *constraint)
 finds a free position for placing a constraint icon More...
 
float getScaleFactor ()
 
int getPreselectPoint (void) const
 
int getPreselectCurve (void) const
 
int getPreselectCross (void) const
 
- Public Member Functions inherited from PartGui::ViewProvider2DObjectGrid
SoSeparatorcreateGrid (void)
 creates the grid More...
 
 ViewProvider2DObjectGrid ()
 constructor More...
 
virtual ~ViewProvider2DObjectGrid ()
 destructor More...
 
- Public Member Functions inherited from PartGui::ViewProvider2DObject
virtual const char * getDefaultDisplayMode () const
 get the default display mode More...
 
virtual std::vector< std::string > getDisplayModes (void) const
 returns a list of all possible modes More...
 
 ViewProvider2DObject ()
 constructor More...
 
virtual ~ViewProvider2DObject ()
 destructor More...
 
- Public Member Functions inherited from PartGui::ViewProviderPart
 ViewProviderPart ()
 constructor More...
 
virtual ~ViewProviderPart ()
 destructor More...
 
- Public Member Functions inherited from PartGui::ViewProviderPartExt
bool changeFaceColors ()
 If no other task is pending it opens a dialog to allow to change face colors. More...
 
void reload ()
 Update the view representation. More...
 
virtual void setDisplayMode (const char *ModeName) override
 set the display mode More...
 
 ViewProviderPartExt ()
 constructor More...
 
virtual ~ViewProviderPartExt ()
 destructor More...
 
virtual bool useNewSelectionModel (void) const override
 indicates if the ViewProvider use the new Selection model More...
 
virtual std::string getElement (const SoDetail *) const override
 return a hit element to the selection path or 0 More...
 
virtual SoDetail * getDetail (const char *) const override
 return the coin node detail of the subelement More...
 
virtual std::vector< Base::Vector3dgetModelPoints (const SoPickedPoint *) const override
 
virtual std::vector< Base::Vector3dgetSelectionShape (const char *Element) const override
 return the highlight lines for a given element or the whole shape More...
 
void setHighlightedFaces (const std::vector< App::Color > &colors)
 
void setHighlightedFaces (const std::vector< App::Material > &colors)
 
void unsetHighlightedFaces ()
 
void setHighlightedEdges (const std::vector< App::Color > &colors)
 
void unsetHighlightedEdges ()
 
void setHighlightedPoints (const std::vector< App::Color > &colors)
 
void unsetHighlightedPoints ()
 
virtual std::map< std::string, App::ColorgetElementColors (const char *element=0) const override
 
virtual bool isUpdateForced () const override
 
virtual void forceUpdate (bool enable=true) override
 
virtual bool allowOverride (const App::DocumentObject &) const override
 Allow this class to be used as an override for the original view provider of the given object. More...
 
- Public Member Functions inherited from Gui::ViewProviderGeometryObject
SoPickedPoint * getPickedPoint (const SbVec2s &pos, const View3DInventorViewer &viewer) const
 This method is provided for convenience and does basically the same as getPickedPoints() unless that only the closest point to the camera will be picked. More...
 
SoPickedPointList getPickedPoints (const SbVec2s &pos, const View3DInventorViewer &viewer, bool pickAll=false) const
 Returns a list of picked points from the geometry under getRoot(). More...
 
 ViewProviderGeometryObject ()
 constructor. More...
 
virtual ~ViewProviderGeometryObject ()
 destructor. More...
 
virtual void showBoundingBox (bool)
 
- Public Member Functions inherited from Gui::ViewProviderDragger
 ViewProviderDragger ()
 constructor. More...
 
virtual ~ViewProviderDragger ()
 destructor. More...
 
virtual ViewProviderstartEditing (int ModNum=0) override
 
- Public Member Functions inherited from Gui::ViewProviderDocumentObject
virtual bool canDelete (App::DocumentObject *obj) const override
 Asks the view provider if the given object can be deleted. More...
 
virtual bool canDropObjectEx (App::DocumentObject *, App::DocumentObject *, const char *, const std::vector< std::string > &) const override
 Query object dropping with full qualified name. More...
 
virtual bool getDetailPath (const char *subname, SoFullPath *pPath, bool append, SoDetail *&det) const override
 return the coin node detail and path to the node of the subname More...
 
Gui::DocumentgetDocument () const
 Get the GUI document to this ViewProvider object. More...
 
virtual bool getElementPicked (const SoPickedPoint *, std::string &subname) const override
 return a hit element given the picked point which contains the full node path More...
 
App::DocumentObjectgetObject (void) const
 Get the object of this ViewProvider object. More...
 
PyObjectgetPyObject () override
 Get the python wrapper for that ViewProvider. More...
 
virtual void getTaskViewContent (std::vector< Gui::TaskView::TaskContent * > &) const override
 Get a list of TaskBoxes associated with this object. More...
 
virtual void hide (void) override
 Hide the object in the view. More...
 
virtual void reattach (App::DocumentObject *)
 
virtual int replaceObject (App::DocumentObject *, App::DocumentObject *) override
 Replace an object to the view provider by drag and drop. More...
 
void setActiveMode ()
 Set the active mode, i.e. the first item of the 'Display' property. More...
 
virtual void show (void) override
 Show the object in the view. More...
 
virtual bool showInTree () const override
 Tell the tree view if this object should appear there. More...
 
virtual void update (const App::Property *) override
 update the content of the ViewProvider this method have to implement the recalculation of the ViewProvider. More...
 
void updateView ()
 Run a redraw. More...
 
 ViewProviderDocumentObject ()
 constructor. More...
 
virtual ~ViewProviderDocumentObject ()
 destructor. More...
 
virtual void startRestoring ()
 
virtual void finishRestoring ()
 
virtual bool removeDynamicProperty (const char *prop) override
 
virtual App::PropertyaddDynamicProperty (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 ViewProviderDocumentObjectgetLinkedViewProvider (std::string *subname=0, bool recursive=false) const
 Return the linked view object. More...
 
virtual std::string getFullName () const override
 
void setShowable (bool enable)
 
bool isShowable () const
 
- Public Member Functions inherited from Gui::ViewProvider
virtual bool canAddToSceneGraph () const
 Indicate whether to be added to scene graph or not. More...
 
virtual std::vector< App::DocumentObject * > claimChildren3D (void) const
 deliver the children belonging to this object this method is used to deliver the objects to the 3DView which should be grouped under its scene graph. More...
 
SoSeparatorgetAnnotation (void)
 
virtual SoSeparatorgetBackRoot (void) const
 
virtual SoGroupgetChildRoot (void) const
 
virtual SoSeparatorgetFrontRoot (void) const
 
SoSwitch * getModeSwitch (void) const
 
virtual SoSeparatorgetRoot (void) const
 
SoTransform * getTransformNode () const
 
 ViewProvider ()
 constructor. More...
 
virtual ~ViewProvider ()
 destructor. More...
 
int partialRender (const std::vector< std::string > &subelements, bool clear)
 partial rendering setup More...
 
Base::BoundBox3d getBoundingBox (const char *subname=0, bool transform=true, MDIView *view=0) const
 Return the bound box of this view object. More...
 
virtual void beforeDelete ()
 Called before deletion. More...
 
virtual bool canDragObjects () const
 Check whether children can be removed from the view provider by drag and drop. More...
 
virtual bool canDragObject (App::DocumentObject *) const
 Check whether the object can be removed from the view provider by drag and drop. More...
 
virtual void dragObject (App::DocumentObject *)
 Remove a child from the view provider by drag and drop. More...
 
virtual bool canDropObjects () const
 Check whether objects can be added to the view provider by drag and drop or drop only. More...
 
virtual bool canDropObject (App::DocumentObject *) const
 Check whether the object can be dropped to the view provider by drag and drop or drop only. More...
 
virtual bool canDragAndDropObject (App::DocumentObject *) const
 Return false to force drop only operation for a given object. More...
 
virtual void dropObject (App::DocumentObject *)
 Add an object to the view provider by drag and drop. More...
 
virtual std::string getDropPrefix () const
 return a subname referencing the sub-object holding the dropped objects More...
 
virtual std::string dropObjectEx (App::DocumentObject *obj, App::DocumentObject *owner, const char *subname, const std::vector< std::string > &elements)
 Add an object with full qualified name to the view provider by drag and drop. More...
 
virtual bool canRemoveChildrenFromRoot () const
 Tell the tree view to remove children items from the tree root. More...
 
std::string getActiveDisplayMode (void) const
 
virtual bool isShow (void) const
 checks whether the view provider is visible or not More...
 
void setVisible (bool)
 
bool isVisible () const
 
void setLinkVisible (bool)
 
bool isLinkVisible () const
 
virtual void setOverrideMode (const std::string &mode)
 Overrides the display mode with mode. More...
 
const std::string getOverrideMode ()
 
bool isEditing () const
 
void finishEditing ()
 
bool isUpdatesEnabled () const
 
void setUpdatesEnabled (bool enable)
 
unsigned long getStatus () const
 return the status bits More...
 
bool testStatus (ViewStatus pos) const
 
void setStatus (ViewStatus pos, bool on)
 
std::string toString () const
 
virtual QIcon getIcon (void) const
 deliver the icon shown in the tree view More...
 
virtual std::vector< App::DocumentObject * > claimChildren (void) const
 deliver the children belonging to this object this method is used to deliver the objects to the tree framework which should be grouped under its label. More...
 
virtual void setElementColors (const std::map< std::string, App::Color > &colors)
 
virtual void setTransformation (const Base::Matrix4D &rcMatrix)
 set the viewing transformation of the provider More...
 
virtual void setTransformation (const SbMatrix &rcMatrix)
 
virtual MDIViewgetMDIView () const
 
bool isRestoring ()
 
void addDisplayMaskMode (SoNode *node, const char *type)
 Adds a new display mask mode. More...
 
void setDisplayMaskMode (const char *type)
 Activates the display mask mode type. More...
 
SoNodegetDisplayMaskMode (const char *type) const
 Get the node to the display mask mode type. More...
 
std::vector< std::string > getDisplayMaskModes () const
 Returns a list of added display mask modes. More...
 
void setDefaultMode (int)
 
int getDefaultMode () const
 
virtual void setRenderCacheMode (int)
 
- Public Member Functions inherited from App::TransactionalObject
 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 Save (Base::Writer &writer) const override
 This method is used to save properties to an XML document. More...
 
void saveExtensions (Base::Writer &writer) const
 
void restoreExtensions (Base::XMLReader &reader)
 
- Public Member Functions inherited from App::PropertyContainer
virtual App::PropertygetDynamicPropertyByName (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...
 
- Public Member Functions inherited from Base::Persistence
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...
 
- Public Member Functions inherited from Base::BaseClass
 BaseClass ()
 Construction. More...
 
bool isDerivedFrom (const Type type) const
 
virtual void setPyObject (PyObject *)
 
virtual ~BaseClass ()
 Destruction. More...
 
- Public Member Functions inherited from PartGui::ViewProviderAttachExtension
virtual QIcon extensionMergeColorfullOverlayIcons (const QIcon &orig) const override
 
virtual void extensionSetupContextMenu (QMenu *, QObject *, const char *) override
 
virtual void extensionUpdateData (const App::Property *) override
 
 ViewProviderAttachExtension (void)
 Constructor. More...
 
virtual ~ViewProviderAttachExtension ()=default
 
- Public Member Functions inherited from Gui::ViewProviderExtension
virtual void extensionAttach (App::DocumentObject *)
 
virtual void extensionBeforeDelete ()
 
virtual bool extensionCanDragAndDropObject (App::DocumentObject *) const
 
virtual bool extensionCanDragObject (App::DocumentObject *) const
 
virtual bool extensionCanDragObjects () const
 
virtual bool extensionCanDropObject (App::DocumentObject *) const
 
virtual bool extensionCanDropObjectEx (App::DocumentObject *, App::DocumentObject *, const char *, const std::vector< std::string > &) const
 
virtual bool extensionCanDropObjects () const
 
virtual std::vector< App::DocumentObject * > extensionClaimChildren (void) const
 
virtual std::vector< App::DocumentObject * > extensionClaimChildren3D (void) const
 
virtual void extensionDragObject (App::DocumentObject *)
 
virtual void extensionDropObject (App::DocumentObject *)
 
virtual std::string extensionDropObjectEx (App::DocumentObject *obj, App::DocumentObject *, const char *, const std::vector< std::string > &)
 
virtual void extensionFinishRestoring ()
 
virtual SoSeparatorextensionGetBackRoot (void) const
 
virtual SoGroupextensionGetChildRoot (void) const
 
virtual bool extensionGetDetailPath (const char *, SoFullPath *, SoDetail *&) const
 
virtual std::vector< std::string > extensionGetDisplayModes (void) const
 
virtual bool extensionGetElementPicked (const SoPickedPoint *, std::string &) const
 
virtual SoSeparatorextensionGetFrontRoot (void) const
 
virtual void extensionHide (void)
 Hides the view provider. More...
 
virtual QIcon extensionMergeGreyableOverlayIcons (const QIcon &orig) const
 
virtual void extensionModeSwitchChange (void)
 
virtual bool extensionOnDelete (const std::vector< std::string > &)
 
virtual void extensionReattach (App::DocumentObject *)
 
virtual int extensionReplaceObject (App::DocumentObject *, App::DocumentObject *)
 
virtual void extensionSetDisplayMode (const char *)
 
virtual void extensionShow (void)
 Shows the view provider. More...
 
virtual void extensionStartRestoring ()
 
Gui::ViewProviderDocumentObjectgetExtendedViewProvider ()
 
const Gui::ViewProviderDocumentObjectgetExtendedViewProvider () const
 
virtual PyObjectgetExtensionPyObject ()
 
bool ignoreOverlayIcon () const
 
void setIgnoreOverlayIcon (bool on)
 
 ViewProviderExtension ()
 
virtual ~ViewProviderExtension ()
 
- Public Member Functions inherited from App::Extension
 Extension ()
 
App::ExtensionContainergetExtendedContainer ()
 
const App::ExtensionContainergetExtendedContainer () const
 
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
 
- Public Member Functions inherited from Gui::SelectionObserver
void attachSelection ()
 Attaches to the selection. More...
 
bool blockConnection (bool block)
 
void detachSelection ()
 Detaches from the selection. More...
 
bool isConnectionAttached () const
 
bool isConnectionBlocked () const
 
 SelectionObserver (bool attach=true, int resolve=1)
 Constructor. More...
 
 SelectionObserver (const Gui::ViewProviderDocumentObject *vp, bool attach=true, int resolve=1)
 Constructor. More...
 
virtual ~SelectionObserver ()
 

Public Attributes

App::PropertyBool Autoconstraints
 
App::PropertyBool AvoidRedundant
 
App::PropertyString EditingWorkbench
 
App::PropertyBool HideDependent
 
App::PropertyBool RestoreCamera
 
App::PropertyBool ShowLinks
 
App::PropertyBool ShowSupport
 
App::PropertyPythonObject TempoVis
 
- Public Attributes inherited from PartGui::ViewProvider2DObjectGrid
App::PropertyBool GridAutoSize
 
App::PropertyLength GridSize
 
App::PropertyBool GridSnap
 
App::PropertyEnumeration GridStyle
 
App::PropertyInteger maxNumberOfLines
 
App::PropertyBool ShowGrid
 Property to switch the grid on and off. More...
 
App::PropertyBool ShowOnlyInEditMode
 
App::PropertyBool TightGrid
 
- Public Attributes inherited from PartGui::ViewProviderPartExt
App::PropertyAngle AngularDeflection
 
App::PropertyBool ControlPoints
 
App::PropertyFloatConstraint Deviation
 
App::PropertyColorList DiffuseColor
 
App::PropertyEnumeration DrawStyle
 
App::PropertyEnumeration Lighting
 
App::PropertyColor LineColor
 
App::PropertyColorList LineColorArray
 
App::PropertyMaterial LineMaterial
 
App::PropertyFloatConstraint LineWidth
 
App::PropertyColor PointColor
 
App::PropertyColorList PointColorArray
 
App::PropertyMaterial PointMaterial
 
App::PropertyFloatConstraint PointSize
 
- Public Attributes inherited from Gui::ViewProviderGeometryObject
App::PropertyBool BoundingBox
 
App::PropertyBool Selectable
 
App::PropertyColor ShapeColor
 
App::PropertyMaterial ShapeMaterial
 
App::PropertyPercent Transparency
 
- Public Attributes inherited from Gui::ViewProviderDocumentObject
App::PropertyEnumeration DisplayMode
 
App::PropertyEnumeration OnTopWhenSelected
 
App::PropertyEnumeration SelectionStyle
 
App::PropertyBool ShowInTree
 
App::PropertyBool Visibility
 
- Public Attributes inherited from Gui::ViewProvider
boost::signals2::signal< void()> signalChangeIcon
 signal on icon change More...
 
boost::signals2::signal< void(const QString &)> signalChangeToolTip
 signal on tooltip change More...
 
boost::signals2::signal< void(const QString &)> signalChangeStatusTip
 signal on status tip change More...
 

modus handling

enum  SketchMode {
  STATUS_NONE , STATUS_SELECT_Point , STATUS_SELECT_Edge , STATUS_SELECT_Constraint ,
  STATUS_SELECT_Cross , STATUS_SKETCH_DragPoint , STATUS_SKETCH_DragCurve , STATUS_SKETCH_DragConstraint ,
  STATUS_SKETCH_UseHandler , STATUS_SKETCH_StartRubberBand , STATUS_SKETCH_UseRubberBand
}
 mode table More...
 
void setSketchMode (SketchMode mode)
 is called by GuiCommands to set the drawing mode More...
 
SketchMode getSketchMode (void) const
 get the sketch mode More...
 

Protected helpers for drawing constraint icons

typedef std::vector< constrIconQueueItemIconQueue
 Internal type used for drawing constraint icons. More...
 
typedef std::pair< QRect, std::set< int > > ConstrIconBB
 For constraint icon bounding boxes. More...
 
typedef std::vector< ConstrIconBBConstrIconBBVec
 For constraint icon bounding boxes. More...
 
SketchMode Mode
 
float zCross
 
float zLowPoints
 
float zHighPoints
 
float zConstr
 
float zHighlight
 
float zText
 
float zEdit
 
float zHighLine
 
float zInfo
 
float zLowLines
 
float zMidLines
 
float zHighLines
 
double xInit
 
double yInit
 
bool relative
 
Gui::Rubberbandrubberband
 
bool visibleInformationChanged
 
double combrepscalehyst
 
std::string editDocName
 
std::string editObjName
 
std::string editSubName
 
bool isShownVirtualSpace
 
ShortcutListenerlistener
 
static SbColor VertexColor
 
static SbColor CurveColor
 
static SbColor CreateCurveColor
 
static SbColor CurveDraftColor
 
static SbColor CurveExternalColor
 
static SbColor CrossColorV
 
static SbColor CrossColorH
 
static SbColor FullyConstrainedColor
 
static SbColor ConstrDimColor
 
static SbColor ConstrIcoColor
 
static SbColor NonDrivingConstrDimColor
 
static SbColor ExprBasedConstrDimColor
 
static SbColor PreselectColor
 
static SbColor SelectColor
 
static SbColor PreselectSelectedColor
 
static SbColor InformationColor
 
static SbColor DeactivatedConstrDimColor
 
static SbColor InternalAlignedGeoColor
 
static SbColor FullyConstraintElementColor
 
static SbColor FullyConstraintConstructionElementColor
 
static SbColor FullyConstraintInternalAlignmentColor
 
static SbColor FullyConstraintConstructionPointColor
 
static SbColor InvalidSketchColor
 
static SbTime prvClickTime
 
static SbVec2s prvClickPos
 
static SbVec2s prvCursorPos
 
static SbVec2s newCursorPos
 
QString iconTypeFromConstraint (Sketcher::Constraint *constraint)
 
QColor constrColor (int constraintId)
 Returns a QColor object appropriate for constraint with given id. More...
 
int constrColorPriority (int constraintId)
 Used by drawMergedConstraintIcons to decide what color to make icons. More...
 
void combineConstraintIcons (IconQueue iconQueue)
 
void drawTypicalConstraintIcon (const constrIconQueueItem &i)
 Renders an icon for a single constraint and sends it to Coin. More...
 
void drawMergedConstraintIcons (IconQueue iconQueue)
 Combines multiple constraint icons and sends them to Coin. More...
 
QImage renderConstrIcon (const QString &type, const QColor &iconColor, const QStringList &labels, const QList< QColor > &labelColors, double iconRotation, std::vector< QRect > *boundingBoxes=NULL, int *vPad=NULL)
 Helper for drawMergedConstraintIcons and drawTypicalConstraintIcon. More...
 
void sendConstraintIconToCoin (const QImage &icon, SoImage *soImagePtr)
 Copies a QImage constraint icon into a SoImage*. More...
 
void clearCoinImage (SoImage *soImagePtr)
 Essentially a version of sendConstraintIconToCoin, with a blank icon. More...
 
SbVec3s getDisplayedSize (const SoImage *) const
 Returns the size that Coin should display the indicated image at. More...
 
void setPositionText (const Base::Vector2d &Pos, const SbString &txt)
 
void setPositionText (const Base::Vector2d &Pos)
 
void resetPositionText (void)
 
void setPreselectPoint (int PreselectPoint)
 
void resetPreselectPoint (void)
 
void addSelectPoint (int SelectPoint)
 
void removeSelectPoint (int SelectPoint)
 
void clearSelectPoints (void)
 

base class implementer

boost::signals2::signal< void()> signalConstraintsChanged
 signals if the constraints list has changed More...
 
boost::signals2::signal< void(QString msg)> signalSetUp
 signals if the sketch has been set up More...
 
boost::signals2::signal< void(QString msg)> signalSolved
 signals if the sketch has been solved More...
 
boost::signals2::signal< void()> signalElementsChanged
 signals if the elements list has changed More...
 
class DrawSketchHandler
 
struct ::EditData
 
EditDataedit
 pointer to the edit data structure if the ViewProvider is in edit. More...
 
boost::signals2::connection connectUndoDocument
 
boost::signals2::connection connectRedoDocument
 
virtual void attach (App::DocumentObject *) override
 Attaches the document object to this view provider. More...
 
virtual void updateData (const App::Property *) override
 
virtual void setupContextMenu (QMenu *menu, QObject *receiver, const char *member) override
 set up the context-menu with the supported edit modes More...
 
virtual bool onDelete (const std::vector< std::string > &) override
 is called when the Provider is in edit and a deletion request occurs More...
 
virtual const char * getTransactionText () const override
 Is called by the tree if the user double clicks on the object. More...
 
virtual bool doubleClicked (void) override
 is called by the tree if the user double clicks on the object More...
 
virtual bool mouseMove (const SbVec2s &pos, Gui::View3DInventorViewer *viewer) override
 is called when the Provider is in edit and the mouse is moved More...
 
virtual bool keyPressed (bool pressed, int key) override
 is called when the Provider is in edit and a key event ocours. Only ESC ends edit. More...
 
virtual bool mouseButtonPressed (int Button, bool pressed, const SbVec2s &cursorPos, const Gui::View3DInventorViewer *viewer) override
 is called when the Provider is in edit and the mouse is clicked More...
 
void deleteSelected ()
 
void updateVirtualSpace (void)
 updates the visibility of the virtual space More...
 
void setIsShownVirtualSpace (bool isshownvirtualspace)
 
bool getIsShownVirtualSpace (void) const
 
virtual QIcon mergeColorfulOverlayIcons (const QIcon &orig) const override
 Icons and Icon overlays. More...
 
void OnChange (Base::Subject< const char * > &rCaller, const char *sReason) override
 Observer for parameter group. More...
 
Base::Placement getEditingPlacement () const
 
virtual bool setEdit (int ModNum) override
 is called by the document when the provider goes in edit mode More...
 
virtual void unsetEdit (int ModNum) override
 is called when you lose the edit mode More...
 
virtual void setEditViewer (Gui::View3DInventorViewer *, int ModNum) override
 adjust viewer settings when editing a view provider More...
 
virtual void unsetEditViewer (Gui::View3DInventorViewer *) override
 restores viewer settings when leaving editing mode More...
 
void deactivateHandler ()
 
void UpdateSolverInformation (void)
 update solver information based on last solving at SketchObject More...
 
bool isPointOnSketch (const SoPickedPoint *pp) const
 helper to detect whether the picked point lies on the sketch More...
 
virtual void onChanged (const App::Property *prop) override
 get called by the container whenever a property has been changed More...
 
void editDoubleClicked (void)
 get called if a subelement is double clicked while editing More...
 
void createEditInventorNodes (void)
 set up the edition data structure EditData More...
 
void rebuildConstraintsVisual (void)
 build up the visual of the constraints More...
 
void slotUndoDocument (const Gui::Document &)
 
void slotRedoDocument (const Gui::Document &)
 
void initItemsSizes ()
 set icon & font sizes More...
 
void subscribeToParameters ()
 subscribe to parameter groups as an observer More...
 
void unsubscribeToParameters ()
 unsubscribe to parameter groups as an observer More...
 
void updateInventorNodeSizes ()
 updates the sizes of the edit mode inventor node More...
 
void forceUpdateData ()
 
QString getPresentationString (const Sketcher::Constraint *constraint)
 Return display string for constraint including hiding units if. More...
 
static QString appendConstraintMsg (const QString &singularmsg, const QString &pluralmsg, const std::vector< int > &vector)
 Auxiliary function to generate messages about conflicting, redundant and malformed constraints. More...
 

Additional Inherited Members

- Public Types inherited from Gui::ViewProvider
enum  EditMode { Default = 0 , Transform , Cutting , Color }
 
- Public Types inherited from App::ExtensionContainer
typedef std::map< Base::Type, App::Extension * >::iterator ExtensionIterator
 
- Static Public Member Functions inherited from Gui::ViewProviderDragger
static void updateTransform (const Base::Placement &from, SoTransform *to)
 
- Static Public Member Functions inherited from Gui::ViewProvider
static const std::string & hiddenMarker ()
 
static const char * hasHiddenMarker (const char *subname)
 
static SbMatrix convert (const Base::Matrix4D &rcMatrix)
 
static Base::Matrix4D convert (const SbMatrix &sbMat)
 
static void eventCallback (void *ud, SoEventCallback *node)
 
- 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 (void)
 
static Type getClassTypeId (void)
 
static void init (void)
 
- Protected Member Functions inherited from PartGui::ViewProvider2DObjectGrid
virtual void handleChangedPropertyType (Base::XMLReader &reader, const char *TypeName, App::Property *prop)
 PropertyContainer::handleChangedPropertyType is called during restore to possibly fix reading of older versions of the property container. More...
 
virtual void Restore (Base::XMLReader &reader)
 This method is used to restore properties from an XML document. More...
 
void updateGridExtent (float minx, float maxx, float miny, float maxy)
 
- Protected Member Functions inherited from PartGui::ViewProviderPart
void applyColor (const Part::ShapeHistory &hist, const std::vector< App::Color > &colBase, std::vector< App::Color > &colBool)
 
void applyTransparency (const float &transparency, std::vector< App::Color > &colors)
 
- Protected Member Functions inherited from PartGui::ViewProviderPartExt
bool loadParameter ()
 
void updateVisual ()
 
void getNormals (const TopoDS_Face &theFace, const Handle(Poly_Triangulation)&aPolyTri, TColgp_Array1OfDir &theNormals)
 
- Protected Member Functions inherited from Gui::ViewProviderGeometryObject
void setSelectable (bool Selectable=true)
 
virtual unsigned long getBoundColor () const
 
- Protected Member Functions inherited from Gui::ViewProviderDragger
- Protected Member Functions inherited from Gui::ViewProviderDocumentObject
virtual bool isAttachedToDocument () const override
 
virtual const char * detachFromDocument () override
 
virtual void onPropertyStatusChanged (const App::Property &prop, unsigned long oldStatus) override
 get called when a property status has changed More...
 
virtual void setModeSwitch () override
 Turn on mode switch. More...
 
Gui::MDIViewgetActiveView () const
 
Gui::MDIViewgetEditingView () const
 
Gui::MDIViewgetInventorView () const
 
Gui::MDIViewgetViewOfNode (SoNode *node) const
 
virtual void onBeforeChange (const App::Property *prop) override
 get called before the value is changed More...
 
SoNodefindFrontRootOfType (const SoType &type) const
 Searches in all view providers that are attached to an object that is part of the same document as the object this view provider is attached to for an front root of type. More...
 
- Protected Member Functions inherited from Gui::ViewProvider
int getEditingMode () const
 return the edit mode or -1 if nothing is being edited More...
 
virtual QIcon mergeGreyableOverlayIcons (const QIcon &orig) const
 
bool checkRecursion (SoNode *)
 Helper method to check that the node is valid, i.e. More...
 
SoPickedPoint * getPointOnRay (const SbVec2s &pos, const View3DInventorViewer *viewer) const
 Helper method to get picked entities while editing. More...
 
SoPickedPoint * getPointOnRay (const SbVec3f &pos, const SbVec3f &dir, const View3DInventorViewer *viewer) const
 Helper method to get picked entities while editing. 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...
 
- Protected Member Functions inherited from App::Extension
virtual void extensionOnChanged (const Property *p)
 
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=0)
 
- Protected Attributes inherited from PartGui::ViewProvider2DObjectGrid
SoSeparatorGridRoot
 
- Protected Attributes inherited from PartGui::ViewProviderPartExt
SoMaterialBinding * pcFaceBind
 
SoMaterialBinding * pcLineBind
 
SoMaterialBinding * pcPointBind
 
SoMaterial * pcLineMaterial
 
SoMaterial * pcPointMaterial
 
SoDrawStyle * pcLineStyle
 
SoDrawStyle * pcPointStyle
 
SoShapeHints * pShapeHints
 
SoCoordinate3 * coords
 
SoBrepFaceSetfaceset
 
SoNormal * norm
 
SoNormalBinding * normb
 
SoBrepEdgeSetlineset
 
SoBrepPointSetnodeset
 
bool VisualTouched
 
bool NormalsFromUV
 
- Protected Attributes inherited from Gui::ViewProviderGeometryObject
SoMaterial * pcShapeMaterial
 
SoFCBoundingBoxpcBoundingBox
 
SoSwitch * pcBoundSwitch
 
SoBaseColor * pcBoundColor
 
- Protected Attributes inherited from Gui::ViewProviderDragger
SoFCCSysDraggercsysDragger = nullptr
 
- Protected Attributes inherited from Gui::ViewProviderDocumentObject
App::DocumentObjectpcObject
 
Gui::DocumentpcDocument
 
- Protected Attributes inherited from Gui::ViewProvider
SoSeparatorpcRoot
 The root Separator of the ViewProvider. More...
 
SoTransform * pcTransform
 this is transformation for the provider More...
 
const char * sPixmap
 
SoSwitch * pcModeSwitch
 this is the mode switch, all the different viewing modes are collected here More...
 
SoSeparatorpcAnnotation
 The root separator for annotations. More...
 
ViewProviderPypyViewObject
 
std::string overrideMode
 
std::bitset< 32 > StatusBits
 
- Protected Attributes inherited from App::PropertyContainer
DynamicProperty dynamicProps
 
- Protected Attributes inherited from App::Extension
bool m_isPythonExtension = false
 
Py::Object ExtensionPythonObject
 
- Static Protected Attributes inherited from PartGui::ViewProvider2DObjectGrid
static App::PropertyQuantityConstraint::Constraints GridSizeRange = {0.001,DBL_MAX,1.0}
 
static const char * GridStyleEnums [] = {"Dashed","Light",NULL}
 

Detailed Description

The Sketch ViewProvider This class handles mainly the drawing and editing of the sketch.

It draws the geometry and the constraints applied to the sketch. It uses the class DrawSketchHandler to facilitate the creation of new geometry while editing.

Member Typedef Documentation

◆ ConstrIconBB

typedef std::pair<QRect, std::set<int> > SketcherGui::ViewProviderSketch::ConstrIconBB
protected

For constraint icon bounding boxes.

◆ ConstrIconBBVec

For constraint icon bounding boxes.

◆ IconQueue

Internal type used for drawing constraint icons.

Member Enumeration Documentation

◆ SketchMode

mode table

Enumerator
STATUS_NONE 

enum value View provider is in neutral.

STATUS_SELECT_Point 

enum value a point was selected.

STATUS_SELECT_Edge 

enum value an edge was selected.

STATUS_SELECT_Constraint 

enum value a constraint was selected.

STATUS_SELECT_Cross 

enum value the base coordinate system was selected.

STATUS_SKETCH_DragPoint 

enum value while dragging a point.

STATUS_SKETCH_DragCurve 

enum value while dragging a curve.

STATUS_SKETCH_DragConstraint 

enum value while dragging a compatible constraint.

STATUS_SKETCH_UseHandler 

enum value a DrawSketchHandler is in control.

STATUS_SKETCH_StartRubberBand 

enum value for initiating a rubber band selection

STATUS_SKETCH_UseRubberBand 

enum value when making a rubber band selection

enum value a DrawSketchHandler is in control.

Constructor & Destructor Documentation

◆ ViewProviderSketch()

◆ ~ViewProviderSketch()

ViewProviderSketch::~ViewProviderSketch ( )
virtual

destructor

Member Function Documentation

◆ activateHandler()

◆ addSelectPoint()

void ViewProviderSketch::addSelectPoint ( int  SelectPoint)
protected

◆ appendConstraintMsg()

QString ViewProviderSketch::appendConstraintMsg ( const QString &  singularmsg,
const QString &  pluralmsg,
const std::vector< int > &  vector 
)
staticprotected

Auxiliary function to generate messages about conflicting, redundant and malformed constraints.

◆ attach()

void ViewProviderSketch::attach ( App::DocumentObject pcObject)
overridevirtual

Attaches the document object to this view provider.

Reimplemented from PartGui::ViewProvider2DObjectGrid.

Referenced by SketcherGui::ViewProviderCustom::updateData().

◆ centerSelection()

void ViewProviderSketch::centerSelection ( )

Look at the center of the bounding of all selected items

References OfflineRenderingUtils::viewer().

Referenced by SketcherGui::TaskSketcherConstrains::on_listWidgetConstraints_emitCenterSelectedItems().

◆ clearCoinImage()

void ViewProviderSketch::clearCoinImage ( SoImage soImagePtr)
protected

Essentially a version of sendConstraintIconToCoin, with a blank icon.

◆ clearSelectPoints()

void ViewProviderSketch::clearSelectPoints ( void  )
protected

◆ combineConstraintIcons()

void ViewProviderSketch::combineConstraintIcons ( IconQueue  iconQueue)
protected

◆ constrColor()

QColor ViewProviderSketch::constrColor ( int  constraintId)
protected

Returns a QColor object appropriate for constraint with given id.

In the case of combined icons, the icon color is chosen based on the constraint with the highest priority from constrColorPriority()

◆ constrColorPriority()

int ViewProviderSketch::constrColorPriority ( int  constraintId)
protected

Used by drawMergedConstraintIcons to decide what color to make icons.

See constrColor()

◆ createEditInventorNodes()

void ViewProviderSketch::createEditInventorNodes ( void  )
protected

◆ deactivateHandler()

void ViewProviderSketch::deactivateHandler ( )
protected

◆ deleteSelected()

◆ detectPreselection()

bool ViewProviderSketch::detectPreselection ( const SoPickedPoint *  Point,
const Gui::View3DInventorViewer viewer,
const SbVec2s &  cursorPos 
)

◆ detectPreselectionConstr()

std::set< int > ViewProviderSketch::detectPreselectionConstr ( const SoPickedPoint *  Point,
const Gui::View3DInventorViewer viewer,
const SbVec2s &  cursorPos 
)

◆ doBoxSelection()

◆ doubleClicked()

bool ViewProviderSketch::doubleClicked ( void  )
overridevirtual

is called by the tree if the user double clicks on the object

Reimplemented from PartGui::ViewProviderPart.

References Gui::Application::activeDocument(), Gui::Application::Instance, and Gui::Document::setEdit().

◆ draw()

void ViewProviderSketch::draw ( bool  temp = false,
bool  rebuildinformationlayer = true 
)

draw the sketch in the inventor nodes temp => use temporary solver solution in SketchObject recreateinformationscenography => forces a rebuild of the information layer scenography

References DraftVecUtils::angle(), SketcherGui::SoDatumLabel::ANGLE, Sketcher::Block, Sketcher::BSplineControlPoint, Sketcher::Coincident, Gui::coinRemoveAllChildren(), Base::Console(), Part::GeomCurve::curvatureAt(), SketcherGui::SoDatumLabel::datumtype, Sketcher::Diameter, SketcherGui::SoDatumLabel::DIAMETER, Sketcher::Distance, SketcherGui::SoDatumLabel::DISTANCE, Sketcher::DistanceX, SketcherGui::SoDatumLabel::DISTANCEX, Sketcher::DistanceY, SketcherGui::SoDatumLabel::DISTANCEY, Sketcher::Equal, Base::ConsoleSingleton::Error(), DraftVecUtils::find(), Sketcher::Constraint::First, Sketcher::Constraint::FirstPos, App::GetApplication(), ParameterGrp::GetBool(), Part::GeomConic::getCenter(), Part::GeomArcOfConic::getCenter(), Base::BaseClass::getClassTypeId(), Base::Persistence::getClassTypeId(), Base::UnitsApi::getDecimals(), Part::GeomBSplineCurve::getDegree(), Part::GeomBoundedCurve::getEndPoint(), Part::GeomLineSegment::getEndPoint(), Part::GeomArcOfConic::getEndPoint(), Part::GeomCurve::getFirstParameter(), Part::GeomArcOfParabola::getFocal(), Part::GeomArcOfParabola::getFocus(), ParameterGrp::GetInt(), Part::GeomBSplineCurve::getKnots(), Part::GeomCurve::getLastParameter(), Part::GeomArcOfEllipse::getMajorAxisDir(), Part::GeomArcOfHyperbola::getMajorAxisDir(), Part::GeomArcOfEllipse::getMajorRadius(), Part::GeomArcOfHyperbola::getMajorRadius(), Part::GeomArcOfEllipse::getMinorRadius(), Part::GeomArcOfHyperbola::getMinorRadius(), Part::GeomBSplineCurve::getMultiplicities(), App::Application::GetParameterGroupByPath(), Part::GeomBSplineCurve::getPoles(), Sketcher::Constraint::getPresentationValue(), Part::GeomCircle::getRadius(), Part::GeomArcOfCircle::getRadius(), Part::GeomArcOfEllipse::getRange(), Part::GeomArcOfHyperbola::getRange(), Part::GeomArcOfParabola::getRange(), Part::GeomBoundedCurve::getStartPoint(), Part::GeomLineSegment::getStartPoint(), Part::GeomArcOfConic::getStartPoint(), Base::Persistence::getTypeId(), Base::Quantity::getUserString(), Sketcher::Constraint::getValue(), Part::GeomBSplineCurve::getWeights(), Part::GeomArcOfConic::getXAxisDir(), Sketcher::Horizontal, Sketcher::InternalAlignment, Base::BaseClass::isDerivedFrom(), Part::GeomBSplineCurve::isPeriodic(), Sketcher::Constraint::LabelDistance, Sketcher::Constraint::LabelPosition, draftfunctions.move::move(), Sketcher::none, Part::GeomCurve::normalAt(), Base::Vector3< _Precision >::Normalize(), Sketcher::NumConstraintTypes, Sketcher::Parallel, draftguitools.gui_annotationstyleeditor::param, SketcherGui::SoDatumLabel::param1, SketcherGui::SoDatumLabel::param2, SketcherGui::SoDatumLabel::param3, Sketcher::Perpendicular, SketcherGui::SoDatumLabel::pnts, Part::GeomCurve::pointAtParameter(), Sketcher::PointOnObject, Base::Vector3< _Precision >::ProjectToLine(), Sketcher::Radius, SketcherGui::SoDatumLabel::RADIUS, Base::Vector3< _Precision >::RotateZ(), Sketcher::Constraint::Second, Sketcher::Constraint::SecondPos, Sketcher::SnellsLaw, SketcherGui::SoDatumLabel::string, Sketcher::Symmetric, SketcherGui::SoDatumLabel::SYMMETRIC, Sketcher::Tangent, Sketcher::Constraint::Third, Sketcher::Constraint::ThirdPos, Sketcher::Constraint::Type, Sketcher::Vertical, Sketcher::Weight, Base::Vector3< _Precision >::x, and Base::Vector3< _Precision >::y.

Referenced by CmdSketcherConstrainRadius::activated(), CmdSketcherConstrainDiameter::activated(), CmdSketcherConstrainRadius::applyConstraint(), and CmdSketcherConstrainDiameter::applyConstraint().

◆ drawConstraintIcons()

◆ drawEdit()

void ViewProviderSketch::drawEdit ( const std::vector< Base::Vector2d > &  EditCurve)

draw the edit curve

Referenced by DrawSketchHandlerBox::mouseMove(), DrawSketchHandlerLineSet::mouseMove(), DrawSketchHandlerArc::mouseMove(), DrawSketchHandler3PointArc::mouseMove(), DrawSketchHandlerCircle::mouseMove(), DrawSketchHandlerEllipse::mouseMove(), DrawSketchHandlerArcOfEllipse::mouseMove(), DrawSketchHandlerArcOfHyperbola::mouseMove(), DrawSketchHandlerArcOfParabola::mouseMove(), DrawSketchHandlerBSpline::mouseMove(), DrawSketchHandler3PointCircle::mouseMove(), DrawSketchHandlerExtend::mouseMove(), DrawSketchHandlerSlot::mouseMove(), DrawSketchHandlerRegularPolygon::mouseMove(), DrawSketchHandlerCopy::mouseMove(), DrawSketchHandlerRectangularArray::mouseMove(), DrawSketchHandlerBox::pressButton(), DrawSketchHandlerLineSet::pressButton(), DrawSketchHandlerArc::pressButton(), DrawSketchHandler3PointArc::pressButton(), DrawSketchHandler3PointCircle::pressButton(), DrawSketchHandlerCopy::pressButton(), DrawSketchHandlerRectangularArray::pressButton(), DrawSketchHandlerLineSet::quit(), DrawSketchHandlerBSpline::quit(), SketcherGui::DrawSketchHandler::quit(), DrawSketchHandlerBox::releaseButton(), DrawSketchHandlerLineSet::releaseButton(), DrawSketchHandlerArc::releaseButton(), DrawSketchHandler3PointArc::releaseButton(), DrawSketchHandlerCircle::releaseButton(), DrawSketchHandlerArcOfEllipse::releaseButton(), DrawSketchHandler3PointCircle::releaseButton(), DrawSketchHandlerExtend::releaseButton(), DrawSketchHandlerSlot::releaseButton(), DrawSketchHandlerRegularPolygon::releaseButton(), DrawSketchHandlerCopy::releaseButton(), DrawSketchHandlerRectangularArray::releaseButton(), DrawSketchHandlerArcOfHyperbola::releaseButton(), DrawSketchHandlerArcOfParabola::releaseButton(), and DrawSketchHandlerBSpline::releaseButton().

◆ drawMergedConstraintIcons()

void ViewProviderSketch::drawMergedConstraintIcons ( IconQueue  iconQueue)
protected

Combines multiple constraint icons and sends them to Coin.

◆ drawTypicalConstraintIcon()

void ViewProviderSketch::drawTypicalConstraintIcon ( const constrIconQueueItem i)
protected

Renders an icon for a single constraint and sends it to Coin.

◆ editDoubleClicked()

void ViewProviderSketch::editDoubleClicked ( void  )
protected

◆ forceUpdateData()

void ViewProviderSketch::forceUpdateData ( )
protected

◆ getCoordsOnSketchPlane()

void ViewProviderSketch::getCoordsOnSketchPlane ( double &  u,
double &  v,
const SbVec3f &  point,
const SbVec3f &  normal 
)

◆ getDisplayedSize()

SbVec3s ViewProviderSketch::getDisplayedSize ( const SoImage iconPtr) const
protected

Returns the size that Coin should display the indicated image at.

◆ getEditingPlacement()

Base::Placement ViewProviderSketch::getEditingPlacement ( ) const
protected

◆ getIsShownVirtualSpace()

bool ViewProviderSketch::getIsShownVirtualSpace ( void  ) const

◆ getPreselectCross()

◆ getPreselectCurve()

◆ getPreselectPoint()

◆ getPresentationString()

◆ getProjectingLine()

void ViewProviderSketch::getProjectingLine ( const SbVec2s &  pnt,
const Gui::View3DInventorViewer viewer,
SbLine &  line 
) const

give projecting line of position

References OfflineRenderingUtils::viewer().

◆ getScaleFactor()

◆ getSketchMode()

SketchMode SketcherGui::ViewProviderSketch::getSketchMode ( void  ) const

get the sketch mode

Referenced by SketcherGui::ReleaseHandler().

◆ getSketchObject()

Sketcher::SketchObject * ViewProviderSketch::getSketchObject ( void  ) const

get the pointer to the sketch document object

Referenced by CmdSketcherConstrainHorizontal::applyConstraint(), CmdSketcherConstrainVertical::applyConstraint(), CmdSketcherConstrainLock::applyConstraint(), CmdSketcherConstrainCoincident::applyConstraint(), CmdSketcherConstrainDistance::applyConstraint(), CmdSketcherConstrainPointOnObject::applyConstraint(), CmdSketcherConstrainDistanceX::applyConstraint(), CmdSketcherConstrainDistanceY::applyConstraint(), CmdSketcherConstrainParallel::applyConstraint(), CmdSketcherConstrainPerpendicular::applyConstraint(), CmdSketcherConstrainTangent::applyConstraint(), CmdSketcherConstrainRadius::applyConstraint(), CmdSketcherConstrainDiameter::applyConstraint(), CmdSketcherConstrainAngle::applyConstraint(), CmdSketcherConstrainEqual::applyConstraint(), CmdSketcherConstrainSymmetric::applyConstraint(), SketcherGui::EditDatumDialog::EditDatumDialog(), SketcherGui::DrawSketchHandler::getHighestCurveIndex(), SketcherGui::DrawSketchHandler::getHighestVertexIndex(), DrawSketchHandlerExtend::mouseMove(), SketcherGui::TaskSketcherConstrains::on_listWidgetConstraints_itemChanged(), SketcherGui::TaskSketcherConstrains::on_listWidgetConstraints_itemSelectionChanged(), SketcherGui::TaskSketcherElements::on_listWidgetElements_itemEntered(), SketcherGui::TaskSketcherElements::on_listWidgetElements_itemSelectionChanged(), SketcherGui::TaskSketcherConstrains::onSelectionChanged(), SketcherGui::TaskSketcherElements::onSelectionChanged(), DrawSketchHandlerLineSet::pressButton(), DrawSketchHandlerLineSet::registerPressedKey(), DrawSketchHandlerCoincident::releaseButton(), DrawSketchHandlerFillet::releaseButton(), DrawSketchHandlerTrimming::releaseButton(), DrawSketchHandlerExtend::releaseButton(), SketcherGui::DrawSketchHandler::seekAutoConstraint(), SketcherGui::TaskSketcherMessages::TaskSketcherMessages(), SketcherGui::TaskSketcherSolverAdvanced::updateDefaultMethodParameters(), SketcherGui::TaskSketcherSolverAdvanced::updateRedundantMethodParameters(), SketcherGui::TaskSketcherSolverAdvanced::updateSketchObject(), and DrawSketchHandlerLineSet::updateTransitionData().

◆ getSolvedSketch()

const Sketcher::Sketch & ViewProviderSketch::getSolvedSketch ( void  ) const

returns a const reference to the last solved sketch object.

It guarantees that the solver object does not lose synchronisation with the SketchObject properties.

NOTE: Operations requiring write access to the solver must be done via SketchObject interface. See for example functions: -> inline void setRecalculateInitialSolutionWhileMovingPoint(bool recalculateInitialSolutionWhileMovingPoint) -> inline int initTemporaryMove(int geoId, PointPos pos, bool fine=true) -> inline int moveTemporaryPoint(int geoId, PointPos pos, Base::Vector3d toPoint, bool relative=false) -> inline void updateSolverExtension(int geoId, std::unique_ptr<Part::GeometryExtension> && ext)

◆ getTransactionText()

virtual const char* SketcherGui::ViewProviderSketch::getTransactionText ( ) const
overridevirtual

Is called by the tree if the user double clicks on the object.

It returns the string for the transaction that will be shown in the undo/redo dialog. If null is returned then no transaction will be opened.

Reimplemented from Gui::ViewProviderDocumentObject.

◆ iconTypeFromConstraint()

QString ViewProviderSketch::iconTypeFromConstraint ( Sketcher::Constraint constraint)
protected

◆ initItemsSizes()

void ViewProviderSketch::initItemsSizes ( )
protected

◆ isPointOnSketch()

bool ViewProviderSketch::isPointOnSketch ( const SoPickedPoint *  pp) const
protected

helper to detect whether the picked point lies on the sketch

◆ isSelectable()

bool ViewProviderSketch::isSelectable ( void  ) const
overridevirtual

Is the view provider selectable.

Reimplemented from Gui::ViewProviderGeometryObject.

References Gui::ViewProviderGeometryObject::isSelectable().

◆ keyPressed()

bool ViewProviderSketch::keyPressed ( bool  pressed,
int  key 
)
overridevirtual

is called when the Provider is in edit and a key event ocours. Only ESC ends edit.

Reimplemented from Gui::ViewProvider.

References Sketcher::none.

◆ mergeColorfulOverlayIcons()

QIcon ViewProviderSketch::mergeColorfulOverlayIcons ( const QIcon &  orig) const
overridevirtual

◆ mouseButtonPressed()

◆ mouseMove()

◆ moveConstraint()

◆ OnChange()

void ViewProviderSketch::OnChange ( Base::Subject< const char * > &  rCaller,
const char *  sReason 
)
override

Observer for parameter group.

◆ onChanged()

◆ onDelete()

◆ onSelectionChanged()

◆ purgeHandler()

◆ rebuildConstraintsVisual()

◆ removeSelectPoint()

void ViewProviderSketch::removeSelectPoint ( int  SelectPoint)
protected

◆ renderConstrIcon()

QImage ViewProviderSketch::renderConstrIcon ( const QString &  type,
const QColor &  iconColor,
const QStringList &  labels,
const QList< QColor > &  labelColors,
double  iconRotation,
std::vector< QRect > *  boundingBoxes = NULL,
int *  vPad = NULL 
)
protected

Helper for drawMergedConstraintIcons and drawTypicalConstraintIcon.

Note: labels, labelColors, and boundingBoxes are all assumed to be the same length.

Parameters
boundingBoxesGets populated with bounding boxes (in icon image coordinates) for the icon at left, then labels for different constraints.
vPadIf not NULL, gets set to the number of pixels that the text extends below the icon base.

References Gui::BitmapFactory(), Gui::QtTools::horizontalAdvance(), and Gui::BitmapFactoryInst::pixmapFromSvg().

◆ resetPositionText()

void ViewProviderSketch::resetPositionText ( void  )
protected

◆ resetPreselectPoint()

void ViewProviderSketch::resetPreselectPoint ( void  )
protected

◆ seekConstraintPosition()

Base::Vector3d ViewProviderSketch::seekConstraintPosition ( const Base::Vector3d origPos,
const Base::Vector3d norm,
const Base::Vector3d dir,
float  step,
const SoNode constraint 
)

◆ sendConstraintIconToCoin()

void ViewProviderSketch::sendConstraintIconToCoin ( const QImage &  icon,
SoImage soImagePtr 
)
protected

Copies a QImage constraint icon into a SoImage*.

Used by drawTypicalConstraintIcon() and drawMergedConstraintIcons()

References Gui::BitmapFactory(), and Gui::BitmapFactoryInst::convert().

◆ setAxisPickStyle()

void ViewProviderSketch::setAxisPickStyle ( bool  on)

◆ setEdit()

bool ViewProviderSketch::setEdit ( int  ModNum)
overrideprotectedvirtual

is called by the document when the provider goes in edit mode

Reimplemented from PartGui::ViewProvider2DObjectGrid.

References Gui::ControlSingleton::activeDialog(), Gui::Command::addModule(), draftgeoutils.faces::bind(), Gui::SelectionSingleton::clearSelection(), Base::Console(), Gui::Control(), Gui::Application::editDocument(), Base::ConsoleSingleton::Error(), Sketcher::SketchObject::evaluateConstraints(), App::GetApplication(), ParameterGrp::GetBool(), Gui::getMainWindow(), Gui::Command::getObjectCmd(), App::Application::GetParameterGroupByPath(), SketcherGui::TaskDlgEditSketch::getSketchView(), ParameterGrp::GetUnsigned(), Gui::Command::Gui, Gui::Application::Instance, Gui::ControlSingleton::reject(), Gui::SelectionSingleton::rmvPreselect(), Gui::Selection(), Gui::ControlSingleton::showDialog(), slotRedoDocument(), slotUndoDocument(), and Base::ConsoleSingleton::Warning().

Referenced by ArchAxis.ViewProviderArchGrid::doubleClicked(), ArchReference.ViewProviderArchReference::doubleClicked(), draftviewproviders.view_dimension.ViewProviderDimensionBase::doubleClicked(), PathScripts.PathPropertyBagGui.ViewProvider::doubleClicked(), PathScripts.PathSetupSheetGui.ViewProvider::doubleClicked(), PathScripts.PathToolBitGui.ViewProvider::doubleClicked(), Spreadsheet_legacy.ViewProviderSpreadsheet::doubleClicked(), ArchAxis.CommandArchGrid::IsActive(), ArchSchedule.CommandArchSchedule::IsActive(), PathScripts.PathIconViewProvider.ViewProvider::setupContextMenu(), PathScripts.PathJobGui.ViewProvider::setupContextMenu(), PathScripts.PathOpGui.ViewProvider::setupContextMenu(), and PathScripts.PathToolControllerGui.ViewProvider::setupContextMenu().

◆ setEditViewer()

◆ setIsShownVirtualSpace()

void ViewProviderSketch::setIsShownVirtualSpace ( bool  isshownvirtualspace)

◆ setPositionText() [1/2]

void ViewProviderSketch::setPositionText ( const Base::Vector2d Pos)
protected

◆ setPositionText() [2/2]

void ViewProviderSketch::setPositionText ( const Base::Vector2d Pos,
const SbString &  txt 
)
protected

◆ setPreselectPoint()

void ViewProviderSketch::setPreselectPoint ( int  PreselectPoint)
protected

◆ setSketchMode()

void SketcherGui::ViewProviderSketch::setSketchMode ( SketchMode  mode)

is called by GuiCommands to set the drawing mode

◆ setupContextMenu()

void ViewProviderSketch::setupContextMenu ( QMenu menu,
QObject receiver,
const char *  method 
)
overridevirtual

set up the context-menu with the supported edit modes

Reimplemented from PartGui::ViewProviderPartExt.

◆ showRestoreInformationLayer()

void ViewProviderSketch::showRestoreInformationLayer ( )

Show/Hide nodes from information layer.

◆ slotRedoDocument()

void ViewProviderSketch::slotRedoDocument ( const Gui::Document )
protected

Referenced by setEdit().

◆ slotUndoDocument()

void ViewProviderSketch::slotUndoDocument ( const Gui::Document )
protected

Referenced by setEdit().

◆ snapToGrid()

void ViewProviderSketch::snapToGrid ( double &  x,
double &  y 
)

snap points x,y (mouse coordinates) onto grid if enabled

◆ subscribeToParameters()

void ViewProviderSketch::subscribeToParameters ( )
protected

◆ unsetEdit()

◆ unsetEditViewer()

void ViewProviderSketch::unsetEditViewer ( Gui::View3DInventorViewer )
overrideprotectedvirtual

restores viewer settings when leaving editing mode

Reimplemented from Gui::ViewProviderDragger.

References OfflineRenderingUtils::viewer().

◆ unsubscribeToParameters()

void ViewProviderSketch::unsubscribeToParameters ( )
protected

unsubscribe to parameter groups as an observer

References Base::Subject< _MessageType >::Detach(), App::GetApplication(), and App::Application::GetParameterGroupByPath().

◆ updateColor()

◆ updateData()

◆ updateInventorNodeSizes()

void ViewProviderSketch::updateInventorNodeSizes ( )
protected

updates the sizes of the edit mode inventor node

References Gui::Inventor::MarkerBitmaps::getMarkerIndex().

◆ UpdateSolverInformation()

void ViewProviderSketch::UpdateSolverInformation ( void  )
protected

update solver information based on last solving at SketchObject

◆ updateVirtualSpace()

void ViewProviderSketch::updateVirtualSpace ( void  )

updates the visibility of the virtual space

Friends And Related Function Documentation

◆ ::EditData

friend struct ::EditData
friend

◆ DrawSketchHandler

friend class DrawSketchHandler
friend

Member Data Documentation

◆ Autoconstraints

◆ AvoidRedundant

◆ combrepscalehyst

double SketcherGui::ViewProviderSketch::combrepscalehyst
protected

◆ connectRedoDocument

boost::signals2::connection SketcherGui::ViewProviderSketch::connectRedoDocument
protected

◆ connectUndoDocument

boost::signals2::connection SketcherGui::ViewProviderSketch::connectUndoDocument
protected

◆ ConstrDimColor

SbColor ViewProviderSketch::ConstrDimColor
staticprotected

◆ ConstrIcoColor

SbColor ViewProviderSketch::ConstrIcoColor
staticprotected

◆ CreateCurveColor

SbColor ViewProviderSketch::CreateCurveColor
staticprotected

◆ CrossColorH

SbColor ViewProviderSketch::CrossColorH
staticprotected

◆ CrossColorV

SbColor ViewProviderSketch::CrossColorV
staticprotected

◆ CurveColor

SbColor ViewProviderSketch::CurveColor
staticprotected

◆ CurveDraftColor

SbColor ViewProviderSketch::CurveDraftColor
staticprotected

◆ CurveExternalColor

SbColor ViewProviderSketch::CurveExternalColor
staticprotected

◆ DeactivatedConstrDimColor

SbColor ViewProviderSketch::DeactivatedConstrDimColor
staticprotected

◆ edit

EditData* SketcherGui::ViewProviderSketch::edit
protected

pointer to the edit data structure if the ViewProvider is in edit.

Referenced by PathScripts.PathToolLibraryEditor.CommandToolLibraryEdit::Activated(), and ArchAxis.CommandArchGrid::IsActive().

◆ editDocName

std::string SketcherGui::ViewProviderSketch::editDocName
protected

◆ EditingWorkbench

App::PropertyString SketcherGui::ViewProviderSketch::EditingWorkbench

◆ editObjName

std::string SketcherGui::ViewProviderSketch::editObjName
protected

◆ editSubName

std::string SketcherGui::ViewProviderSketch::editSubName
protected

◆ ExprBasedConstrDimColor

SbColor ViewProviderSketch::ExprBasedConstrDimColor
staticprotected

◆ FullyConstrainedColor

SbColor ViewProviderSketch::FullyConstrainedColor
staticprotected

◆ FullyConstraintConstructionElementColor

SbColor ViewProviderSketch::FullyConstraintConstructionElementColor
staticprotected

◆ FullyConstraintConstructionPointColor

SbColor ViewProviderSketch::FullyConstraintConstructionPointColor
staticprotected

◆ FullyConstraintElementColor

SbColor ViewProviderSketch::FullyConstraintElementColor
staticprotected

◆ FullyConstraintInternalAlignmentColor

SbColor ViewProviderSketch::FullyConstraintInternalAlignmentColor
staticprotected

◆ HideDependent

App::PropertyBool SketcherGui::ViewProviderSketch::HideDependent

◆ InformationColor

SbColor ViewProviderSketch::InformationColor
staticprotected

◆ InternalAlignedGeoColor

SbColor ViewProviderSketch::InternalAlignedGeoColor
staticprotected

◆ InvalidSketchColor

SbColor ViewProviderSketch::InvalidSketchColor
staticprotected

◆ isShownVirtualSpace

bool SketcherGui::ViewProviderSketch::isShownVirtualSpace
protected

◆ listener

ShortcutListener* SketcherGui::ViewProviderSketch::listener
protected

◆ Mode

SketchMode SketcherGui::ViewProviderSketch::Mode
protected

◆ newCursorPos

SbVec2s ViewProviderSketch::newCursorPos
staticprotected

◆ NonDrivingConstrDimColor

SbColor ViewProviderSketch::NonDrivingConstrDimColor
staticprotected

◆ PreselectColor

SbColor ViewProviderSketch::PreselectColor
staticprotected

◆ PreselectSelectedColor

SbColor ViewProviderSketch::PreselectSelectedColor
staticprotected

◆ prvClickPos

SbVec2s ViewProviderSketch::prvClickPos
staticprotected

◆ prvClickTime

SbTime ViewProviderSketch::prvClickTime
staticprotected

◆ prvCursorPos

SbVec2s ViewProviderSketch::prvCursorPos
staticprotected

◆ relative

◆ RestoreCamera

App::PropertyBool SketcherGui::ViewProviderSketch::RestoreCamera

◆ rubberband

Gui::Rubberband* SketcherGui::ViewProviderSketch::rubberband
protected

◆ SelectColor

SbColor ViewProviderSketch::SelectColor
staticprotected

◆ ShowLinks

App::PropertyBool SketcherGui::ViewProviderSketch::ShowLinks

◆ ShowSupport

App::PropertyBool SketcherGui::ViewProviderSketch::ShowSupport

◆ signalConstraintsChanged

boost::signals2::signal<void ()> SketcherGui::ViewProviderSketch::signalConstraintsChanged

signals if the constraints list has changed

Referenced by SketcherGui::TaskSketcherConstrains::TaskSketcherConstrains().

◆ signalElementsChanged

boost::signals2::signal<void ()> SketcherGui::ViewProviderSketch::signalElementsChanged

signals if the elements list has changed

Referenced by SketcherGui::TaskSketcherElements::TaskSketcherElements().

◆ signalSetUp

boost::signals2::signal<void (QString msg)> SketcherGui::ViewProviderSketch::signalSetUp

signals if the sketch has been set up

Referenced by SketcherGui::TaskSketcherMessages::TaskSketcherMessages().

◆ signalSolved

boost::signals2::signal<void (QString msg)> SketcherGui::ViewProviderSketch::signalSolved

signals if the sketch has been solved

Referenced by SketcherGui::TaskSketcherMessages::TaskSketcherMessages().

◆ TempoVis

App::PropertyPythonObject SketcherGui::ViewProviderSketch::TempoVis

◆ VertexColor

SbColor ViewProviderSketch::VertexColor
staticprotected

◆ visibleInformationChanged

bool SketcherGui::ViewProviderSketch::visibleInformationChanged
protected

◆ xInit

double SketcherGui::ViewProviderSketch::xInit
protected

◆ yInit

double SketcherGui::ViewProviderSketch::yInit
protected

◆ zConstr

float SketcherGui::ViewProviderSketch::zConstr
protected

◆ zCross

float SketcherGui::ViewProviderSketch::zCross
protected

◆ zEdit

float SketcherGui::ViewProviderSketch::zEdit
protected

◆ zHighlight

float SketcherGui::ViewProviderSketch::zHighlight
protected

◆ zHighLine

float SketcherGui::ViewProviderSketch::zHighLine
protected

◆ zHighLines

float SketcherGui::ViewProviderSketch::zHighLines
protected

◆ zHighPoints

float SketcherGui::ViewProviderSketch::zHighPoints
protected

◆ zInfo

float SketcherGui::ViewProviderSketch::zInfo
protected

◆ zLowLines

float SketcherGui::ViewProviderSketch::zLowLines
protected

◆ zLowPoints

float SketcherGui::ViewProviderSketch::zLowPoints
protected

◆ zMidLines

float SketcherGui::ViewProviderSketch::zMidLines
protected

◆ zText

float SketcherGui::ViewProviderSketch::zText
protected

The documentation for this class was generated from the following files:
  • Sources/FreeCAD/src/Mod/Sketcher/Gui/ViewProviderSketch.h
  • Sources/FreeCAD/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp