QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
InfoWireCentroid Class Reference

This action adds a wire 2D Centroid marker and text labels for a selection. More...

Inheritance diagram for InfoWireCentroid:
InfoCentroids MiscInformation EAction RActionAdapter RAction

Public Member Functions

void beginEvent ()
 This GUI action adds a 2D Centroid marker and detail labels for selected entities.
 
void getArcWireCentroid (void arc)
 Arc RShape centroid data, including length (+).
 
void getCircleWireCentroid (void circle)
 OK closed format Called by Main Circle RShape centroid data, including length (+).
 
void getEllipseArcWireCentroid (void ellipse)
 Ellipse arc RShape centroid data, including length (+).
 
void getEllipseWireCentroid (void ellipse)
 Ellipse RShape centroid data, including length (+).
 
void getFullEllipseCircumISC (void a, void b, void terms)
 Full ellipse circumference (+) by series expansion, best suited for elongated ellipses.
 
void getFullEllipseCircumISGK (void a, void b, void terms)
 Full ellipse circumference (+) by series expansion, best suited for round ellipses.
 
void getFullEllipseWireCentroid (void ellipse)
 Full ellipse RShape centroid data, including circumference (+).
 
void getLineWireCentroid (void line)
 Line segment RShape centroid data, including length (+).
 
void getPolygonWireCentroid (void polygon)
 Closed or open polyline RShape with line segments centroid data, including length (+).
 
void getPolylineWireCentroid (void polyline)
 Polyline RShape centroid data, including length (+).
 
void getSplineWireCentroid (void spline)
 Spline RShape centroid data, including length (+).
 
void getSupportedWireCentroidType (void entity)
 Diversifies uniform density wire centroids supported entity type or -1 when not supported.
 
void InfoWireCentroid (void guiAction)
 
void selectionsWireCentroid (void di)
 Main WireCentroid Main InfoWireCentroid loop.
 
- Public Member Functions inherited from InfoCentroids
void addCentroidMarker (void doc, void op, void dataC, void radius, void preview)
 Adding 2D Centroid marker to a given operation.
 
void addTextLabel (void doc, void op, void pos, void offset, void text)
 Adding text labels to a given operation.
 
void advanceSelection (void di, void transaction)
 Advance the selection to the added marker (polyline).
 
void formatCmdValue (void value, void digits)
 Format a value textual for reporting on the command History.
 
void formatCoordinate (void valueX, void valueY)
 Format a pair of values textual as coordinate.
 
void formatLabelValue (void value, void decPnt, void digits, void trailingZ)
 Format a value textual for a 2D Centroid label.
 
void formatPropValue (void value)
 Format a value textual for storing properties.
 
void getMarkerSize ()
 Defines a 2D Centroid marker size based on overall box and drawing font size.
 
void getRunningSumKBK (void list)
 Sums values in an array by 'A generalized Kahan–Babuška-Summation-Algorithm' proposed by Klein.
 
void getTitle ()
 
void InfoCentroids (void guiAction)
 
void mergeBoxWith (void item)
 Accumulate a given item to an overall box size.
 
- Public Member Functions inherited from MiscInformation
void getTitle ()
 
void MiscInformation (void guiAction)
 
- Public Member Functions inherited from EAction
void applyCommand (void event, void preview)
 High level event triggered when a command line command should be applied or previewed.
 
void applyOperation ()
 Applies the operation returned by this.getOperation().
 
void commandEvent (void event)
 Default implementation.
 
void commandEventPreview (void event)
 Default implementation.
 
void complementOperation (void op)
 Can be reimplemented to complement the operation of an action.
 
void coordinateEvent (void event)
 Default implementation.
 
void coordinateEventPreview (void event)
 Default implementation.
 
void createDialog (void uiFile, void parent)
 Creates a new dialog based on the given UI file with the given parent.
 
void createWidget (void uiFile, void parent)
 Creates a new widget based on the given UI file with the given parent.
 
void EAction (void guiAction)
 
void enterEvent ()
 Called when user presses enter.
 
void entityPickEvent (void event)
 Default implementation.
 
void entityPickEventPreview (void event)
 Default implementation.
 
void escapeEvent ()
 Called when the user presses Escape or clicks the right mouse button.
 
void finishEvent ()
 Called when this action is terminated.
 
void getAuxPreview ()
 Called by updatePreview.
 
void getClassName ()
 
void getDocumentInterface ()
 
void getEntityId (void event, void preview, void selectable)
 
void getGraphicsView ()
 
void getGraphicsViews ()
 
void getHighlightedEntities ()
 Called by updatePreview.
 
void getOperation (void preview)
 Called by updatePreview and applyOperation.
 
void getScales ()
 
void getToolTitle ()
 
void handlePreviewError ()
 Called by updatePreview.
 
void hideOptionsToolBarWidgets (void widgets, void noSyncWidgets)
 Hides all widgets in the options tool bar which are shown in the tool dialog instead.
 
void hideUiOptions (void saveToSettings)
 Hides the UI options of this action.
 
void initDialog (void dialog)
 Called before dialog is shown.
 
void initState ()
 Called to initialize a new state of this action.
 
void initUiOptions (void resume, void optionsToolBar, void forDialog)
 Overwrite to initialize combo boxes and other UI elements of the options tool bar.
 
void isEntityEditable (void e)
 
void isEntitySnappable (void e)
 
void keyPressEvent (void event)
 Called when the user presses a key.
 
void keyReleaseEvent (void event)
 Called when the user releases a key.
 
void mouseDoubleClickEvent (void event)
 
void mousePressEvent (void event)
 Does nothing.
 
void mouseReleaseEvent (void event)
 
void pickCoordinate (void event, void preview)
 High level event triggered when a coordinate was specified by the user of a coordinate specification should be previewed.
 
void pickEntity (void event, void preview)
 High level event triggered when an entity was picked by the user or to preview picking an entity.
 
void postOperation (void transaction)
 Can be reimplemented to work with the transaction returned by the operation.
 
void propertyChangeEvent (void event)
 Allows all actions to handle property change events.
 
void resumeEvent ()
 Called whenever the action resumes its operation, for example after it was temporary suspended for another action.
 
void setArrowCursor ()
 Sets the current cursor of the current document interface (all views attached to it) to the normal arrow cursor.
 
void setCommandPrompt (void prompt)
 
void setCrosshairCursor ()
 Sets the current cursor of the current document interface (all views attached to it) to crosshair cursor.
 
void setCursor (void cursor, void name)
 
void setLeftMouseTip (void tip)
 
void setRightMouseTip (void tip)
 
void setState (void state)
 Set the state of this action.
 
void setUiOptions (void uiFile, void split)
 Sets the UI options toolbar content for this tool.
 
void showDialog ()
 Show dialog to enter some or all of the options.
 
void showUiOptions (void resume, void restoreFromSettings)
 Shows the UI options of this action if this.uiFile is set.
 
void simulateMouseMoveEvent ()
 
void slotReset ()
 Called if the user clicks the reset button of an action.
 
void suspendEvent ()
 Called whenever the action is suspended, for example if another action is started while this action is active.
 
void updatePreview (void clear)
 Updates the preview based on the operation returned by getOperation and the auxiliary construction returned be getAuxPreview.
 
- Public Member Functions inherited from RActionAdapter
virtual void commandEvent (RCommandEvent &)
 Called when a command is entered in the command line.
 
virtual void commandEventPreview (RCommandEvent &)
 Called when a command is being edited in the command line.
 
virtual void coordinateEvent (RCoordinateEvent &)
 Called for every coordinate event.
 
virtual void coordinateEventPreview (RCoordinateEvent &)
 Called if the action is in PickCoordinate mode and the mouse is moved around.
 
virtual void entityPickEvent (REntityPickEvent &)
 
virtual void entityPickEventPreview (REntityPickEvent &)
 
virtual void keyPressEvent (QKeyEvent &)
 
virtual void keyReleaseEvent (QKeyEvent &)
 
virtual void mouseDoubleClickEvent (RMouseEvent &)
 Called on mouse double click events.
 
virtual void mouseMoveEvent (RMouseEvent &)
 Called on mouse move events.
 
virtual void mousePressEvent (RMouseEvent &)
 Called on mouse press events.
 
virtual void mouseReleaseEvent (RMouseEvent &)
 Called on mouse release events.
 
virtual void panGestureEvent (QPanGesture &)
 Called on pan gesture events.
 
virtual void pinchGestureEvent (QPinchGesture &)
 Called on pinch gesture events.
 
virtual void propertyChangeEvent (RPropertyEvent &)
 Called when the value of a property is modified while this action is active.
 
 RActionAdapter (RGuiAction *guiAction=NULL)
 
virtual void setGraphicsView (RGraphicsView *)
 Called if this action is set as a navigation action of a graphics view.
 
virtual void swipeGestureEvent (QSwipeGesture &)
 Called on swipe gesture events.
 
virtual void tabletEvent (RTabletEvent &)
 Called on tablet events.
 
virtual void wheelEvent (RWheelEvent &)
 Called on mouse wheel events.
 
virtual void zoomChangeEvent (RGraphicsView &)
 Called when the zoom factor or offset changed in the given view.
 
virtual ~RActionAdapter ()
 
- Public Member Functions inherited from RAction
RAction::ClickMode getClickMode ()
 
virtual RDocumentgetDocument ()
 
QList< RGraphicsScene * > getGraphicsScenes ()
 
virtual RGuiActiongetGuiAction ()
 
RActiongetOverrideBase ()
 
RStoragegetStorage ()
 
QString getUniqueGroup ()
 
bool hasNoState ()
 
bool isOverride ()
 
bool isTerminated ()
 
 RAction (RGuiAction *guiAction=NULL)
 Copyright (c) 2011-2018 by Andrew Mustun.
 
void setClickMode (RAction::ClickMode m)
 Sets the current click mode.
 
virtual void setDocumentInterface (RDocumentInterface *di)
 
void setGuiAction (RGuiAction *guiAction)
 
void setNoState (bool on=true)
 
void setOverride ()
 
void setOverrideBase (RAction *base)
 
void setUniqueGroup (const QString &ug)
 
virtual RVector snap (RMouseEvent &event, bool preview=false)
 Uses the currently active snap function to snap to the closest object or grid point.
 
void terminate ()
 Terminates the action.
 
virtual ~RAction ()
 

Additional Inherited Members

- Public Types inherited from RAction
enum  ClickMode { PickCoordinate , PickCoordinateNoSnap , PickEntity , PickingDisabled }
 Current mouse click mode. More...
 
- Public Attributes inherited from EAction
int additionalOptionsToolBars
 
int delegate
 
int dialogUiFile
 
int guiAction
 
int includeBasePath
 
int optionsToolBarEnabled
 
int optOutRelativeZeroResume
 
int relativeZeroPos
 
int resuming
 
int settingsGroup
 
int splitUiOptions
 
int state
 
int uiFile
 
int useDialog
 
int waitingForContextMenu
 
- Protected Attributes inherited from RAction
RAction::ClickMode clickMode
 
RDocumentInterfacedocumentInterface
 
RGuiActionguiAction
 
bool noState
 Indicates whether this action is stateless (i.e.
 
bool override
 
RActionoverrideBase
 
bool terminated
 
QString uniqueGroup
 

Detailed Description

This action adds a wire 2D Centroid marker and text labels for a selection.

Author
CVH © 2021

Constructor & Destructor Documentation

◆ InfoWireCentroid()

void InfoWireCentroid::InfoWireCentroid ( void guiAction)
inline

Member Function Documentation

◆ beginEvent()

void InfoWireCentroid::beginEvent ( )
inlinevirtual

This GUI action adds a 2D Centroid marker and detail labels for selected entities.

Calculates overall centroid position and total length assuming a uniform density wire. Casts additional details as text labels and reports them on the Command History. Stores full floating point data as marker custom properties. 2D Centroid markers are generated with a default density of 1.00 per unit. Supports single or multiple selected entities:

  • Line entity.
  • Arc entity.
  • Circle entity.
  • Ellipse entity, full or approximated as ellipse arc.
  • Polyline entity.
  • Spline entity as approximated polyline. Not interpolating with line segments, the methods sum lengths and centroids by shapes.

Included are various methods for wire 2D Centroids of RShapes.

Reimplemented from InfoCentroids.

◆ getArcWireCentroid()

void InfoWireCentroid::getArcWireCentroid ( void arc)
inline

Arc RShape centroid data, including length (+).

Considering a wire of uniform density.

Author
CVH © 2021
Parameters
arcAn arc RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getCircleWireCentroid()

void InfoWireCentroid::getCircleWireCentroid ( void circle)
inline

OK closed format Called by Main Circle RShape centroid data, including length (+).

Considering a wire of uniform density.

Author
CVH © 2021
Parameters
circleAn circle RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getEllipseArcWireCentroid()

void InfoWireCentroid::getEllipseArcWireCentroid ( void ellipse)
inline

Ellipse arc RShape centroid data, including length (+).

Considering a wire of uniform density. Approximated with a polyline given the XP method number of arc segments, at least 4096.

Author
CVH © 2021
Parameters
ellipseA spline RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getEllipseWireCentroid()

void InfoWireCentroid::getEllipseWireCentroid ( void ellipse)
inline

Ellipse RShape centroid data, including length (+).

Diversifies between a full ellipse or an ellipse arc. Considering a wire of uniform density. Ifso, approximated with a polyline given the XP method number of arc segments.

Author
CVH © 2021
Parameters
ellipseAn ellipse RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getFullEllipseCircumISC()

void InfoWireCentroid::getFullEllipseCircumISC ( void a,
void b,
void terms )
inline

Full ellipse circumference (+) by series expansion, best suited for elongated ellipses.

Fast converging exact infinite series expansion for a given number of terms. Also known as the 'Cayley's series expansion'. The first term is 4 times the major radius for a degenerated ellipse. Optimal used for ratio <= 0.35 within 20 terms, halts on converging numerical.

Author
CVH © 2021
Parameters
aFull ellipse major radius.
bFull ellipse minor radius.
termsLimit expansion to n terms. (4<=n<=20)
Returns
Unsigned circumference or 'NaN'.

◆ getFullEllipseCircumISGK()

void InfoWireCentroid::getFullEllipseCircumISGK ( void a,
void b,
void terms )
inline

Full ellipse circumference (+) by series expansion, best suited for round ellipses.

Exact infinite series expansion for a given number of terms. Also known as the 'Gauss-Kummer series expansion'. The first term is 2piR for a circular ellipse. Optimized with a list of factors, one for each expansion term. Optimal used for ratio > 0.35 within 20 terms.

Author
CVH © 2021
Parameters
aFull ellipse major radius.
bFull ellipse minor radius.
termsLimit expansion to n terms. (4<=n<=20)
Returns
Unsigned circumference or 'NaN'.

◆ getFullEllipseWireCentroid()

void InfoWireCentroid::getFullEllipseWireCentroid ( void ellipse)
inline

Full ellipse RShape centroid data, including circumference (+).

Considering a wire of uniform density. Centroid closed format equation, nearly exact circumference by infinite series expansion.

Author
CVH © 2021
Parameters
ellipseA full ellipse RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getLineWireCentroid()

void InfoWireCentroid::getLineWireCentroid ( void line)
inline

Line segment RShape centroid data, including length (+).

Considering a wire of uniform density. Excluding Rays and Xlines

Author
CVH © 2021
Parameters
lineA line RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getPolygonWireCentroid()

void InfoWireCentroid::getPolygonWireCentroid ( void polygon)
inline

Closed or open polyline RShape with line segments centroid data, including length (+).

Considering a wire of uniform density.

Author
CVH © 2021
Parameters
polygonA polyline RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getPolylineWireCentroid()

void InfoWireCentroid::getPolylineWireCentroid ( void polyline)
inline

Polyline RShape centroid data, including length (+).

Considering a wire of uniform density.

Author
CVH © 2021
Parameters
polylineA polyline RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getSplineWireCentroid()

void InfoWireCentroid::getSplineWireCentroid ( void spline)
inline

Spline RShape centroid data, including length (+).

Considering a wire of uniform density. Approximated with a polyline given the XP method tolerance.

Author
CVH © 2021
Parameters
splineA spline RShape.
Returns
[centroid.x, centroid.y, centroid, length] or 'undefined'.

◆ getSupportedWireCentroidType()

void InfoWireCentroid::getSupportedWireCentroidType ( void entity)
inline

Diversifies uniform density wire centroids supported entity type or -1 when not supported.

REntity based (Excludes RSolids and so).

◆ selectionsWireCentroid()

void InfoWireCentroid::selectionsWireCentroid ( void di)
inline

Main WireCentroid Main InfoWireCentroid loop.

A uniform wire should not be confused with a bended bar or hollow pipe for that matter. Can be a good 'better than nothing' approximation with a curved nature.

Author
CVH © 2021
Parameters
diA document interface.
Returns
Nothing. Casts 2D Centroid marker and text labels, reports on Command History.

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