QCAD
Open Source 2D CAD
|
Copyright (c) 2011-2018 by Andrew Mustun. More...
#include <RPointData.h>
Public Member Functions | |
virtual RShape * | castToShape () |
RVector | getPosition () const |
virtual QList< RRefPoint > | getReferencePoints (RS::ProjectionRenderingHint hint=RS::RenderTop) const |
virtual QList< QSharedPointer< RShape > > | getShapes (const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=false, bool segment=false) const |
virtual RS::EntityType | getType () const |
virtual bool | isPointType () const |
virtual bool | moveReferencePoint (const RVector &referencePoint, const RVector &targetPoint, Qt::KeyboardModifiers modifiers=Qt::NoModifier) |
Moves the given reference point to the given target point or does nothing if this entity has no reference point as the given location. More... | |
RPointData () | |
Copyright (c) 2011-2018 by Andrew Mustun. More... | |
RPointData (const RVector &point) | |
Public Member Functions inherited from REntityData | |
virtual const RShape * | castToConstShape () const |
virtual bool | clickReferencePoint (const RVector &referencePoint) |
Called when user clicks a reference point. More... | |
virtual bool | cloneOnChange () const |
Reimplement to force clone on change in transactions. More... | |
void | copyAttributesFrom (const REntityData &entityData, bool copyBlockId=true) |
virtual bool | flipHorizontal () |
virtual bool | flipVertical () |
virtual QList< RVector > | getArcReferencePoints (const RBox &queryBox=RDEFAULT_RBOX) const |
RBlock::Id | getBlockId () const |
QString | getBlockName () const |
virtual RBox | getBoundingBox (bool ignoreEmpty=false) const |
virtual QList< RBox > | getBoundingBoxes (bool ignoreEmpty=false) const |
virtual QList< RVector > | getCenterPoints (const RBox &queryBox=RDEFAULT_RBOX) const |
virtual RVector | getClosestPointOnEntity (const RVector &point, double range=RNANDOUBLE, bool limited=true) const |
virtual QSharedPointer< RShape > | getClosestShape (const RVector &pos, double range=RNANDOUBLE, bool ignoreComplex=false) const |
virtual RColor | getColor () const |
virtual RColor | getColor (bool resolve, const QStack< REntity * > &blockRefStack) const |
virtual RColor | getColor (const RColor &unresolvedColor, const QStack< REntity * > &blockRefStack) const |
virtual RColor | getDisplayColor () |
virtual double | getDistanceTo (const RVector &point, bool limited=true, double range=0.0, bool draft=false, double strictRange=RMAXDOUBLE) const |
RDocument * | getDocument () |
const RDocument * | getDocument () const |
virtual int | getDrawOrder () const |
virtual QList< RVector > | getEndPoints (const RBox &queryBox=RDEFAULT_RBOX) const |
virtual RPolyline | getHull (double offset) const |
virtual QList< RRefPoint > | getInternalReferencePoints (RS::ProjectionRenderingHint hint=RS::RenderTop) const |
Can be overwritten to return internal, resolved reference points. More... | |
virtual QList< RVector > | getIntersectionPoints (const REntityData &other, bool limited=true, bool same=false, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true) const |
virtual QList< RVector > | getIntersectionPoints (const RShape &shape, bool limited=true, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true) const |
RLayer::Id | getLayerId () const |
QString | getLayerName () const |
virtual RLinetype::Id | getLinetypeId () const |
virtual RLinetype::Id | getLinetypeId (bool resolve, const QStack< REntity * > &blockRefStack) const |
virtual RLinetypePattern | getLinetypePattern () const |
virtual double | getLinetypeScale () const |
virtual RLineweight::Lineweight | getLineweight () const |
virtual RLineweight::Lineweight | getLineweight (bool resolve, const QStack< REntity * > &blockRefStack) const |
double | getLineweightInUnits (const QStack< REntity * > &blockRefStack) const |
virtual QList< RVector > | getMiddlePoints (const RBox &queryBox=RDEFAULT_RBOX) const |
RObject::Id | getParentId () const |
virtual RVector | getPointOnEntity () const |
virtual QList< RVector > | getPointsWithDistanceToEnd (double distance, int from=RS::FromAny, const RBox &queryBox=RDEFAULT_RBOX) const |
virtual RVector | getVectorTo (const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const |
virtual bool | intersectsWith (const RShape &shape) const |
virtual bool | isInside (const RBox &box) const |
virtual bool | isOnEntity (const RVector &point, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const |
virtual bool | isSane () const |
virtual bool | isSelected () const |
virtual bool | isSelectedWorkingSet () const |
virtual bool | isUpdatesEnabled () const |
virtual bool | isValid () const |
virtual bool | mirror (const RLine &axis) |
virtual bool | mirror (const RVector &axis1, const RVector &axis2) |
virtual bool | move (const RVector &offset) |
Moves this entity by the given offset. More... | |
REntityData (RDocument *document=NULL) | |
Copyright (c) 2011-2018 by Andrew Mustun. More... | |
virtual bool | rotate (double rotation, const RVector ¢er=RDEFAULT_RVECTOR) |
virtual bool | scale (const RVector &scaleFactors, const RVector ¢er=RDEFAULT_RVECTOR) |
virtual bool | scale (double scaleFactor, const RVector ¢er=RDEFAULT_RVECTOR) |
virtual void | scaleVisualProperties (double scaleFactor) |
void | setAutoUpdatesBlocked (bool on) |
virtual void | setBlockId (RBlock::Id blockId) |
void | setColor (const RColor &color) |
void | setDocument (RDocument *document) |
virtual void | setDrawOrder (int drawOrder) |
Sets the draw order of this entity. More... | |
virtual void | setLayerId (RLayer::Id layerId) |
void | setLayerName (const QString &layerName) |
virtual void | setLinetypeId (RLinetype::Id linetypeId) |
Sets the linetype of this entity to the given linetype ID. More... | |
virtual void | setLinetypePattern (const RLinetypePattern &p) |
virtual void | setLinetypeScale (double linetypeScale) |
void | setLineweight (RLineweight::Lineweight lineweight) |
virtual void | setParentId (RObject::Id parentId) |
virtual void | setSelected (bool on) |
Selects or deselects this entity. More... | |
virtual void | setSelectedWorkingSet (bool on) |
Selects or deselects this entity for addition to the current working set. More... | |
void | setUpdatesEnabled (bool on) |
Enables / disables cache updates. More... | |
virtual void | setZ (double z) |
virtual bool | stretch (const RPolyline &area, const RVector &offset) |
Stretches the end points of this entity that are inside area by offset. More... | |
virtual void | to2D () |
virtual void | update () const |
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty). More... | |
virtual | ~REntityData () |
Protected Member Functions | |
RPointData (RDocument *document, const RPointData &data) | |
Protected Member Functions inherited from RPoint | |
virtual void | print (QDebug dbg) const |
virtual RPoint * | clone () const |
virtual bool | flipHorizontal () |
virtual bool | flipVertical () |
virtual double | getAngleAt (double distance, RS::From from=RS::FromStart) const |
virtual RBox | getBoundingBox () const |
virtual QList< RVector > | getCenterPoints () const |
virtual QList< RVector > | getEndPoints () const |
virtual double | getLength () const |
virtual QList< RVector > | getMiddlePoints () const |
virtual QList< RVector > | getPointCloud (double segmentLength) const |
virtual QList< RVector > | getPointsWithDistanceToEnd (double distance, int from=RS::FromAny) const |
RVector | getPosition () const |
virtual RShape::Type | getShapeType () const |
virtual QSharedPointer< RShape > | getTransformed (const QTransform &transform) const |
virtual QList< RVector > | getVectorProperties () const |
virtual RVector | getVectorTo (const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const |
virtual bool | mirror (const RLine &axis) |
virtual bool | move (const RVector &offset) |
virtual bool | rotate (double rotation, const RVector ¢er=RDEFAULT_RVECTOR) |
RPoint () | |
Copyright (c) 2011-2018 by Andrew Mustun. More... | |
RPoint (const RVector &position) | |
Creates a point object with the given position. More... | |
RPoint (double x, double y) | |
virtual bool | scale (const RVector &scaleFactors, const RVector ¢er=RDEFAULT_RVECTOR) |
void | setPosition (const RVector &p) |
virtual void | setZ (double z) |
virtual | ~RPoint () |
void | dump () const |
virtual bool | equals (const RShape &other, double tolerance=RS::PointTolerance) const |
virtual QList< RVector > | filterOnShape (const QList< RVector > &pointList, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const |
virtual double | getAngleAtPercent (double p) const |
virtual double | getAngleAtPoint (const RVector &pos) const |
virtual QList< RVector > | getArcReferencePoints () const |
virtual QList< bool > | getBoolProperties () const |
virtual RVector | getClosestPointOnShape (const RVector &p, bool limited=true, double strictRange=RMAXDOUBLE) const |
virtual double | getDirection1 () const |
virtual double | getDirection2 () const |
virtual double | getDistanceFromStart (const RVector &p) const |
virtual QList< double > | getDistancesFromStart (const RVector &p) const |
virtual double | getDistanceTo (const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const |
virtual QList< double > | getDoubleProperties () const |
virtual RVector | getEndPoint () const |
QList< RVector > | getIntersectionPoints (const RShape &other, bool limited=true, bool same=false, bool force=false) const |
virtual QList< int > | getIntProperties () const |
virtual double | getMaxDistanceTo (const QList< RVector > &points, bool limited=true, double strictRange=RMAXDOUBLE) const |
virtual RVector | getMiddlePoint () const |
virtual QList< QSharedPointer< RShape > > | getOffsetShapes (double distance, int number, RS::Side side, const RVector &position=RVector::invalid) |
virtual RVector | getPointAtPercent (double p) const |
virtual RVector | getPointOnShape () const |
virtual RVector | getPointWithDistanceToEnd (double distance) const |
virtual RVector | getPointWithDistanceToStart (double distance) const |
virtual QList< RVector > | getSelfIntersectionPoints () const |
virtual RS::Side | getSideOfPoint (const RVector &point) const |
virtual RVector | getStartPoint () const |
virtual RS::Ending | getTrimEnd (const RVector &trimPoint, const RVector &clickPoint) |
virtual RVector | getVectorFromEndpointTo (const RVector &point) const |
virtual bool | intersectsWith (const RShape &other, bool limited=true) const |
virtual bool | isDirected () const |
virtual bool | isInterpolated () const |
Reimplement and return true if this shape relies on interpolation for geometrical operations such as finding intersection points. More... | |
virtual bool | isOnShape (const RVector &point, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const |
virtual bool | reverse () |
RShape () | |
virtual bool | scale (double scaleFactor, const RVector ¢er=RVector()) |
virtual QList< QSharedPointer< RShape > > | splitAt (const QList< RVector > &points) const |
virtual bool | stretch (const RBox &area, const RVector &offset) |
virtual bool | stretch (const RPolyline &area, const RVector &offset) |
virtual void | to2D () |
Flattens this shape to the X/Y plane. More... | |
virtual bool | trimEndPoint (const RVector &trimPoint, const RVector &clickPoint=RVector::invalid, bool extend=false) |
virtual bool | trimEndPoint (double trimDist) |
virtual bool | trimStartPoint (const RVector &trimPoint, const RVector &clickPoint=RVector::invalid, bool extend=false) |
virtual bool | trimStartPoint (double trimDist) |
virtual | ~RShape () |
Friends | |
class | RPointEntity |
Additional Inherited Members | |
Static Public Member Functions inherited from REntityData | |
static int | getDefaultDrawOrder () |
Protected Types inherited from RShape | |
enum | Type { Unknown = -1, Point = 0, Line = 1, Arc = 2, Circle = 3, Ellipse = 4, Polyline = 5, Spline = 6, Triangle = 7, XLine = 8, Ray = 9 } |
Static Protected Member Functions inherited from RShape | |
static const RExplodable * | castToExplodable (const RShape *shape) |
static QSharedPointer< RShape > | ellipseToArcCircleEllipse (const REllipse &ellipse) |
static int | getErrorCode () |
static QList< RVector > | getIntersectionPoints (const RShape &shape1, const RShape &shape2, bool limited=true, bool same=false, bool force=false) |
static QList< RVector > | getIntersectionPointsAA (const RArc &arc1, const RArc &arc2, bool limited=true) |
static QList< RVector > | getIntersectionPointsAC (const RArc &arc1, const RCircle &circle2, bool limited=true) |
static QList< RVector > | getIntersectionPointsAE (const RArc &arc1, const REllipse &ellipse2, bool limited=true) |
static QList< RVector > | getIntersectionPointsAS (const RArc &arc1, const RSpline &spline2, bool limited=true) |
static QList< RVector > | getIntersectionPointsAT (const RArc &arc1, const RTriangle &triangle2, bool limited=true) |
static QList< RVector > | getIntersectionPointsAX (const RArc &arc1, const RExplodable &explodable2, bool limited=true) |
static QList< RVector > | getIntersectionPointsCC (const RCircle &circle1, const RCircle &circle2) |
static QList< RVector > | getIntersectionPointsCE (const RCircle &circle1, const REllipse &ellipse2) |
static QList< RVector > | getIntersectionPointsCS (const RCircle &circle1, const RSpline &spline2, bool limited=true) |
static QList< RVector > | getIntersectionPointsCX (const RCircle &circle1, const RExplodable &explodable2, bool limited=true) |
static QList< RVector > | getIntersectionPointsEE (const REllipse &ellipse1, const REllipse &ellipse2) |
Based on "Hughes and Chraibi (2011-2012), Calculating Ellipse Overlap Areas". More... | |
static QList< RVector > | getIntersectionPointsEE (const REllipse &ellipse1, const REllipse &ellipse2, bool limited) |
static QList< RVector > | getIntersectionPointsES (const REllipse &ellipse1, const RSpline &spline2, bool limited=true) |
static QList< RVector > | getIntersectionPointsEX (const REllipse &ellipse1, const RExplodable &explodable2, bool limited=true) |
static QList< RVector > | getIntersectionPointsLA (const RLine &line1, const RArc &arc2, bool limited1, bool limited2) |
static QList< RVector > | getIntersectionPointsLA (const RLine &line1, const RArc &arc2, bool limited=true) |
static QList< RVector > | getIntersectionPointsLC (const RLine &line1, const RCircle &circle2, bool limited=true) |
static QList< RVector > | getIntersectionPointsLE (const RLine &line1, const REllipse &ellipse2, bool limited1, bool limited2) |
static QList< RVector > | getIntersectionPointsLE (const RLine &line1, const REllipse &ellipse2, bool limited=true) |
static QList< RVector > | getIntersectionPointsLL (const RLine &line1, const RLine &line2, bool limited1, bool limited2) |
static QList< RVector > | getIntersectionPointsLL (const RLine &line1, const RLine &line2, bool limited=true) |
static QList< RVector > | getIntersectionPointsLS (const RLine &line1, const RSpline &spline2, bool limited=true) |
static QList< RVector > | getIntersectionPointsLT (const RLine &line1, const RTriangle &triangle2, bool limited1, bool limited2) |
static QList< RVector > | getIntersectionPointsLT (const RLine &line1, const RTriangle &triangle2, bool limited=true) |
static QList< RVector > | getIntersectionPointsLX (const RLine &line1, const RExplodable &explodable2, bool limited=true) |
static QList< RVector > | getIntersectionPointsSS (const RSpline &spline1, const RSpline &spline2, bool limited=true, bool same=false) |
static QList< RVector > | getIntersectionPointsSX (const RSpline &spline1, const RExplodable &explodable2, bool limited) |
static QList< RVector > | getIntersectionPointsXX (const RExplodable &explodable1, const RExplodable &explodable2, bool limited=true, bool same=false) |
static QList< QSharedPointer< RShape > > | getOffsetArcs (const RShape &shape, double distance, int number, RS::Side side, const RVector &position=RVector::invalid) |
static QList< QSharedPointer< RShape > > | getOffsetLines (const RShape &shape, double distance, int number, RS::Side side, const RVector &position=RVector::invalid) |
static QList< QSharedPointer< RShape > > | getReversedShapeList (const QList< QSharedPointer< RShape > > &shapes) |
static RShapeProxy * | getShapeProxy () |
static bool | hasProxy () |
static bool | isArcShape (const RShape &s) |
static bool | isCircleShape (const RShape &s) |
static bool | isEllipseShape (const RShape &s) |
static bool | isFullEllipseShape (const RShape &s) |
static bool | isLineShape (const RShape &s) |
static bool | isPointShape (const RShape &s) |
static bool | isPolylineShape (const RShape &s) |
static bool | isRayShape (const RShape &s) |
static bool | isSplineShape (const RShape &s) |
static bool | isTriangleShape (const RShape &s) |
static bool | isXLineShape (const RShape &s) |
static bool | order (QList< QList< QSharedPointer< RShape > > > &boundary) |
Orders the given list of loops into a list of closed loops in which all shapes are connected end to start point. More... | |
static QSharedPointer< RShape > | rayToLine (QSharedPointer< RShape > shape) |
static QList< QSharedPointer< RShape > > | roundAllCorners (const QList< QSharedPointer< RShape > > &shapes, double radius) |
Round every corner of the list of given (connected) shapes with the given radius. More... | |
static QList< QSharedPointer< RShape > > | roundShapes (const QSharedPointer< RShape > shape1, const RVector &clickPos1, const QSharedPointer< RShape > shape2, const RVector &clickPos2, bool trim, bool samePolyline, double radius, const RVector &pos) |
Rounds the given shape1 against shape2. More... | |
static QSharedPointer< RShape > | scaleArc (const RShape &shape, const RVector &scaleFactors, const RVector ¢er=RDEFAULT_RVECTOR) |
static void | setShapeProxy (RShapeProxy *p) |
static QSharedPointer< RShape > | transformArc (const RShape &shape, RShapeTransformation &transformation) |
static QList< QSharedPointer< RShape > > | trim (const RShape &trimShape, const RVector &trimClickPos, const RShape &limitingShape, const RVector &limitingClickPos, bool trimBoth, bool samePolyline) |
Trims a shape to another or two shapes to each other. More... | |
static QSharedPointer< RShape > | xLineToRay (QSharedPointer< RShape > shape) |
Protected Attributes inherited from REntityData | |
bool | autoUpdatesBlocked |
Block auto updates is true during imports, undo and redo. More... | |
RBlock::Id | blockId |
RColor | color |
RDocument * | document |
int | drawOrder |
RLayer::Id | layerId |
RLinetype::Id | linetypeId |
double | linetypeScale |
RLineweight::Lineweight | lineweight |
RObject::Id | parentId |
bool | selectionStatus |
bool | selectionStatusWorkingSet |
bool | updatesEnabled |
Protected Attributes inherited from RPoint | |
RVector | position |
Getter function for this property: getPosition Setter function for this property: setPosition More... | |
Static Protected Attributes inherited from RShape | |
static int | errorCode = 0 |
Copyright (c) 2011-2018 by Andrew Mustun.
All rights reserved.
This file is part of the QCAD project.
QCAD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
QCAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with QCAD. Stores and manages all data that defines the geometry and appearance of a point entity.
|
protected |
RPointData::RPointData | ( | ) |
Copyright (c) 2011-2018 by Andrew Mustun.
All rights reserved.
This file is part of the QCAD project.
QCAD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
QCAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with QCAD.
RPointData::RPointData | ( | const RVector & | point | ) |
|
inlinevirtual |
Reimplemented from REntityData.
|
inline |
|
virtual |
Implements REntityData.
|
inlinevirtual |
queryBox | Limit returned shapes to query box |
ignoreComplex | Ignore complex shapes and explode those into simple shapes |
segment | Split up splines into spline segments |
Reimplemented from REntityData.
|
inlinevirtual |
Reimplemented from REntityData.
|
inlinevirtual |
Reimplemented from REntityData.
|
virtual |
Moves the given reference point to the given target point or does nothing if this entity has no reference point as the given location.
Implements REntityData.
|
friend |