QCAD
Open Source 2D CAD
REntity Class Referenceabstract

Base class for all entity classes. More...

#include <REntity.h>

Inheritance diagram for REntity:
RObject RArcEntity RBlockReferenceEntity RCircleEntity RDimensionEntity REllipseEntity RFaceEntity RHatchEntity RImageEntity RLeaderEntity RLineEntity RPointEntity RPolylineEntity RRayEntity RSolidEntity RSplineEntity RTextBasedEntity RToleranceEntity RTraceEntity RViewportEntity RXLineEntity

Public Member Functions

virtual const RShapecastToConstShape () const
 
virtual RShapecastToShape ()
 
virtual bool clickReferencePoint (const RVector &referencePoint)
 Called when user clicks a reference point. More...
 
virtual REntityclone () const =0
 
virtual bool cloneOnChange () const
 
void copyAttributesFrom (const REntity *entity, bool copyBlockId=true)
 Copies all attributes (layer, block, color, line weight, line style) from the given entity. More...
 
void copyAttributesFrom (const REntityData &entityData, bool copyBlockId=true)
 
virtual void exportEntity (RExporter &e, bool preview=false, bool forceSelected=false) const =0
 Exports the entity to the given exporter. More...
 
virtual bool flipHorizontal ()
 
virtual bool flipVertical ()
 
RBlock::Id getBlockId () const
 
QString getBlockName () const
 
virtual RBox getBoundingBox (bool ignoreEmpty=false) const
 
virtual QList< RBoxgetBoundingBoxes (bool ignoreEmpty=false) const
 
virtual QList< RVectorgetCenterPoints (const RBox &queryBox=RDEFAULT_RBOX) const
 
virtual RVector getClosestPointOnEntity (const RVector &point, double range=RNANDOUBLE, bool limited=true) const
 
virtual QSharedPointer< RShapegetClosestShape (const RVector &pos, double range=RNANDOUBLE, bool ignoreComplex=false) const
 
virtual QSharedPointer< RShapegetClosestSimpleShape (const RVector &pos, double range=RNANDOUBLE) const
 
RColor getColor () const
 
RColor getColor (bool resolve, const QStack< REntity * > &blockRefStack)
 
RColor getColor (const RColor &unresolvedColor, const QStack< REntity * > &blockRefStack)
 
virtual int getComplexity () const
 
virtual const REntityDatagetData () const =0
 
virtual REntityDatagetData ()=0
 
RColor getDisplayColor ()
 
virtual double getDistanceTo (const RVector &point, bool limited=true, double range=0.0, bool draft=false, double strictRange=RMAXDOUBLE) const
 
int getDrawOrder () const
 
virtual QList< RVectorgetEndPoints (const RBox &queryBox=RDEFAULT_RBOX) const
 
virtual RPolyline getHull (double offset) const
 
virtual QList< RRefPointgetInternalReferencePoints (RS::ProjectionRenderingHint hint=RS::RenderTop) const
 Can be overwritten to return internal, resolved reference points. More...
 
virtual QList< RVectorgetIntersectionPoints (const REntity &other, bool limited=true, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true) const
 
virtual QList< RVectorgetIntersectionPoints (const RShape &shape, bool limited=true, const RBox &queryBox=RDEFAULT_RBOX, bool ignoreComplex=true) const
 
virtual QList< RVectorgetIntersectionPointsWithShape (const RShape &shape, bool limited=true, const RBox &queryBox=RDEFAULT_RBOX) const
 Make getIntersectionPoints with shape parameter accessible for script wrappers. More...
 
RLayer::Id getLayerId () const
 
QString getLayerName () const
 
RLinetype::Id getLinetypeId () const
 
RLinetype::Id getLinetypeId (bool resolve, const QStack< REntity * > &blockRefStack) const
 
RLinetypePattern getLinetypePattern () const
 
double getLinetypeScale () const
 
RLineweight::Lineweight getLineweight () const
 
RLineweight::Lineweight getLineweight (bool resolve, const QStack< REntity * > &blockRefStack) const
 
double getLineweightInUnits (const QStack< REntity * > &blockRefStack) const
 
virtual QList< RVectorgetMiddlePoints (const RBox &queryBox=RDEFAULT_RBOX) const
 
REntity::Id getParentId () const
 
virtual RVector getPointOnEntity () const
 
virtual QList< RVectorgetPointsWithDistanceToEnd (double distance, int from=RS::FromAny, const RBox &queryBox=RDEFAULT_RBOX) const
 
virtual QPair< QVariant, RPropertyAttributesgetProperty (RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false)
 
virtual QList< RRefPointgetReferencePoints (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 RVector getVectorTo (const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const
 
virtual bool intersectsWith (const RShape &shape) const
 
virtual bool isEditable (bool allowInvisible=false) const
 
virtual bool isInside (const RBox &box) const
 
virtual bool isInWorkingSet () const
 
virtual bool isOnEntity (const RVector &point, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const
 
virtual bool isPointType () const
 
virtual bool isSane () const
 
virtual bool isSelected () const
 Reimplemented by entities that are part of a block reference but not stored as part of the block definition (currently only block attributes). More...
 
virtual bool isSelectedWorkingSet () const
 
virtual bool isUpdatesEnabled () const
 
virtual bool isValid () const
 
virtual bool isVisible (RBlock::Id blockId=RBlock::INVALID_ID) 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...
 
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...
 
 REntity (const REntity &other)
 
 REntity (RDocument *document)
 
virtual bool rotate (double rotation, const RVector &center=RDEFAULT_RVECTOR)
 
virtual bool scale (const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)
 
virtual bool scale (double scaleFactor, const RVector &center=RDEFAULT_RVECTOR)
 
virtual QSharedPointer< REntityscaleNonUniform (const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)
 
virtual void scaleVisualProperties (double scaleFactor)
 
virtual void setAutoUpdatesBlocked (bool on)
 
void setBlockId (RBlock::Id blockId)
 
void setColor (const RColor &color)
 
void setDocument (RDocument *document)
 
void setDrawOrder (int drawOrder)
 Sets the draw order of this entity. More...
 
void setLayerId (RLayer::Id layerId)
 
void setLayerName (const QString &n)
 
void setLinetypeId (RLinetype::Id linetypeId)
 Sets the linetype of this entity to the given linetype ID. More...
 
void setLinetypePattern (const RLinetypePattern &linetypePattern)
 
void setLinetypeScale (double linetypeScale)
 
void setLineweight (RLineweight::Lineweight lineweight)
 
virtual bool setProperty (RPropertyTypeId propertyTypeId, const QVariant &value, RTransaction *transaction=NULL)
 Sets the given property to the given value. More...
 
virtual void setSelected (bool on)
 Selects or deselects this entity. More...
 
virtual void setSelectedWorkingSet (bool on)
 
void setUpdatesEnabled (bool on)
 
virtual void setViewportContext (const RViewportData &)
 
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 ()
 
void update () const
 Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty). More...
 
virtual ~REntity ()
 
- Public Member Functions inherited from RObject
void copyCustomPropertiesFrom (RObject *other, const QString &title=RDEFAULT_QSTRING, bool overwrite=false, const QStringList &ignoreList=RDEFAULT_QSTRINGLIST, const QString &mapKeyFrom=RDEFAULT_QSTRING, const QString &mapKeyTo=RDEFAULT_QSTRING)
 Copies all custom properties from the given object. More...
 
void dump () const
 
virtual bool getCustomBoolProperty (const QString &title, const QString &key, bool defaultValue) const
 
virtual double getCustomDoubleProperty (const QString &title, const QString &key, double defaultValue) const
 
virtual int getCustomIntProperty (const QString &title, const QString &key, int defaultValue) const
 
QMap< QString, QVariantMap > getCustomProperties () const
 
virtual QVariant getCustomProperty (const QString &title, const QString &key, const QVariant &defaultValue=RDEFAULT_QVARIANT) const
 
QStringList getCustomPropertyKeys (const QString &title) const
 
QStringList getCustomPropertyTitles () const
 
virtual QSet< RPropertyTypeIdgetCustomPropertyTypeIds () const
 
RDocumentgetDocument ()
 
const RDocumentgetDocument () const
 
bool getFlag (int flag) const
 
RObject::Handle getHandle () const
 
RObject::Id getId () const
 
virtual QSet< RPropertyTypeIdgetPropertyTypeIds (RPropertyAttributes::Option option=RPropertyAttributes::NoOptions) const
 
bool hasCustomProperties () const
 
bool hasCustomProperty (const QString &title, const QRegExp &key) const
 
bool hasCustomProperty (const QString &title, const QString &key) const
 
virtual bool hasPropertyType (RPropertyTypeId propertyTypeId)
 
bool isInvisible () const
 
bool isProtected () const
 
bool isUndone () const
 
virtual bool isWorkingSet () const
 
virtual bool mustAlwaysClone () const
 
virtual void removeCustomProperty (const QString &title, const QString &key)
 Removes the custom property with the given name. More...
 
 RObject (const RObject &other)
 
 RObject (RDocument *document=NULL)
 
virtual void setCustomProperties (const RQMapQStringQString &properties)
 
virtual void setCustomProperty (const QString &title, const QString &key, const QVariant &value)
 Sets a custom property with the given name. More...
 
void setDocument (RDocument *document)
 
void setFlag (int flag, bool on=true)
 
void setInvisible (bool on)
 
void setProtected (bool on)
 
virtual void setWorkingSet (bool on)
 
virtual bool validate ()
 
virtual ~RObject ()
 

Static Public Member Functions

static QSet< RPropertyTypeIdgetStaticPropertyTypeIds ()
 
static void init ()
 
static bool isComplex (const RS::EntityType type)
 
static bool isDimension (const RS::EntityType type)
 
static bool isTextBased (const RS::EntityType type)
 
- Static Public Member Functions inherited from RObject
static RPropertyAttributes getCustomPropertyAttributes (const QString &title, const QString &key)
 
static void init ()
 
static void setCustomPropertyAttributes (const QString &title, const QString &key, const RPropertyAttributes &att)
 Set attributes (read-only, invisible, ...) for the given custom property. More...
 
template<class T >
static bool setMember (T &variable, const QVariant &value, bool condition=true)
 

Static Public Attributes

static RPropertyTypeId PropertyBlock
 
static RPropertyTypeId PropertyColor
 
static RPropertyTypeId PropertyCustom
 Copyright (c) 2011-2018 by Andrew Mustun. More...
 
static RPropertyTypeId PropertyDisplayedColor
 
static RPropertyTypeId PropertyDrawOrder
 
static RPropertyTypeId PropertyHandle
 
static RPropertyTypeId PropertyLayer
 
static RPropertyTypeId PropertyLinetype
 
static RPropertyTypeId PropertyLinetypeScale
 
static RPropertyTypeId PropertyLineweight
 
static RPropertyTypeId PropertyMaxX
 
static RPropertyTypeId PropertyMaxY
 
static RPropertyTypeId PropertyMinX
 
static RPropertyTypeId PropertyMinY
 
static RPropertyTypeId PropertyProtected
 
static RPropertyTypeId PropertySizeX
 
static RPropertyTypeId PropertySizeY
 
static RPropertyTypeId PropertyType
 
static RPropertyTypeId PropertyWorkingSet
 
- Static Public Attributes inherited from RObject
static const Handle INVALID_HANDLE = -1
 
static const Id INVALID_ID = -1
 Copyright (c) 2011-2018 by Andrew Mustun. More...
 
static RPropertyTypeId PropertyCustom
 
static RPropertyTypeId PropertyHandle
 
static RPropertyTypeId PropertyInvisible
 
static RPropertyTypeId PropertyProtected
 
static RPropertyTypeId PropertySelected
 
static RPropertyTypeId PropertyType
 
static RPropertyTypeId PropertyWorkingSet
 

Protected Member Functions

virtual void print (QDebug dbg) const
 Stream operator for QDebug. More...
 
void setParentId (REntity::Id parentId)
 
- Protected Member Functions inherited from RObject
void setHandle (RObject::Handle h)
 
void setId (RObject::Id id)
 
bool setMemberFlag (int flag, const QVariant &value, bool condition=true)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
void setUndone (bool on)
 

Friends

class RStorage
 

Additional Inherited Members

- Public Types inherited from RObject
typedef int Handle
 
typedef int Id
 
enum  ObjectFlag {
  NoFlags = 0x000, Undone = 0x001, Protect = 0x002, Selected = 0x004,
  Invisible = 0x008, WorkingSet = 0x010
}
 
enum  XYZ { X, Y, Z }
 
- Static Protected Member Functions inherited from RObject
static bool setMember (bool &variable, const QVariant &value, bool condition=true)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
static bool setMember (double &variable, const QVariant &value, bool condition=true)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
static bool setMember (int &variable, const QVariant &value, bool condition=true)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
static bool setMember (QList< double > &variable, const QVariant &value, bool condition)
 
static bool setMember (QString &variable, const QVariant &value, bool condition=true)
 Sets the given property. More...
 
static bool setMemberVector (QList< RVector > &variable, const QVariant &value, RObject::XYZ xyz)
 
static bool setMemberX (QList< RVector > &variable, const QVariant &value, bool condition=true)
 
static bool setMemberY (QList< RVector > &variable, const QVariant &value, bool condition=true)
 
static bool setMemberZ (QList< RVector > &variable, const QVariant &value, bool condition=true)
 

Detailed Description

Base class for all entity classes.

Entities can be exported using an implementor of the exporter interface by calling exportEntity.

Scriptable:\nThis class is available in script environments.\n
Shared Pointer Support:\nObjects can be used in QSharedPointer.\n

Constructor & Destructor Documentation

◆ REntity() [1/2]

REntity::REntity ( RDocument document)

◆ REntity() [2/2]

REntity::REntity ( const REntity other)

◆ ~REntity()

REntity::~REntity ( )
virtual

Member Function Documentation

◆ castToConstShape()

virtual const RShape* REntity::castToConstShape ( ) const
inlinevirtual
Non-Scriptable:\nThis function is not available in script environments.\n

◆ castToShape()

virtual RShape* REntity::castToShape ( )
inlinevirtual

◆ clickReferencePoint()

virtual bool REntity::clickReferencePoint ( const RVector referencePoint)
inlinevirtual

Called when user clicks a reference point.

Returns
True if clicking the reference point had any immediate effect.

◆ clone()

◆ cloneOnChange()

virtual bool REntity::cloneOnChange ( ) const
inlinevirtual

◆ copyAttributesFrom() [1/2]

void REntity::copyAttributesFrom ( const REntity entity,
bool  copyBlockId = true 
)

Copies all attributes (layer, block, color, line weight, line style) from the given entity.

◆ copyAttributesFrom() [2/2]

void REntity::copyAttributesFrom ( const REntityData entityData,
bool  copyBlockId = true 
)

◆ exportEntity()

virtual void REntity::exportEntity ( RExporter e,
bool  preview = false,
bool  forceSelected = false 
) const
pure virtual

Exports the entity to the given exporter.

The exporter might be a file exporter, a graphics scene or any other platform one can export entities to.

Implemented in RLeaderEntity, RToleranceEntity, RPolylineEntity, RHatchEntity, RDimensionEntity, RSplineEntity, REllipseEntity, RTextBasedEntity, RArcEntity, RBlockReferenceEntity, RImageEntity, RFaceEntity, RSolidEntity, RTraceEntity, RViewportEntity, RRayEntity, RXLineEntity, RLineEntity, RCircleEntity, RPointEntity, and RAttributeEntity.

◆ flipHorizontal()

virtual bool REntity::flipHorizontal ( )
inlinevirtual

◆ flipVertical()

virtual bool REntity::flipVertical ( )
inlinevirtual

◆ getBlockId()

RBlock::Id REntity::getBlockId ( ) const
inline

◆ getBlockName()

QString REntity::getBlockName ( ) const
inline

◆ getBoundingBox()

virtual RBox REntity::getBoundingBox ( bool  ignoreEmpty = false) const
inlinevirtual

Returns
The bounding box that contains this entity.

◆ getBoundingBoxes()

virtual QList<RBox> REntity::getBoundingBoxes ( bool  ignoreEmpty = false) const
inlinevirtual

Returns
List of bounding boxes that contain this entity. This is used for complex entities such as block references to further optimize algorithms that depend on bounding boxes (e.g. spatial index algorithms). The default implementation returns the bounding box that contains the whole entity.

◆ getCenterPoints()

virtual QList<RVector> REntity::getCenterPoints ( const RBox queryBox = RDEFAULT_RBOX) const
inlinevirtual

Returns
Vector of center points of this entity. Used for snap to center points.

◆ getClosestPointOnEntity()

virtual RVector REntity::getClosestPointOnEntity ( const RVector point,
double  range = RNANDOUBLE,
bool  limited = true 
) const
inlinevirtual

Returns
Closest point to point on this entity. Used for snap to points on entity.

◆ getClosestShape()

virtual QSharedPointer<RShape> REntity::getClosestShape ( const RVector pos,
double  range = RNANDOUBLE,
bool  ignoreComplex = false 
) const
inlinevirtual

Returns
The one shape that is part of this entity which is the closest to the given position.

◆ getClosestSimpleShape()

virtual QSharedPointer<RShape> REntity::getClosestSimpleShape ( const RVector pos,
double  range = RNANDOUBLE 
) const
inlinevirtual

Returns
The one shape that is part of this entity which is the closest to the given position.

◆ getColor() [1/3]

RColor REntity::getColor ( ) const
inline

◆ getColor() [2/3]

RColor REntity::getColor ( bool  resolve,
const QStack< REntity * > &  blockRefStack 
)

◆ getColor() [3/3]

RColor REntity::getColor ( const RColor unresolvedColor,
const QStack< REntity * > &  blockRefStack 
)

◆ getComplexity()

virtual int REntity::getComplexity ( ) const
inlinevirtual

Reimplemented from RObject.

Reimplemented in RPolylineEntity, RSplineEntity, and RHatchEntity.

◆ getData() [1/2]

◆ getData() [2/2]

◆ getDisplayColor()

RColor REntity::getDisplayColor ( )
inline

◆ getDistanceTo()

virtual double REntity::getDistanceTo ( const RVector point,
bool  limited = true,
double  range = 0.0,
bool  draft = false,
double  strictRange = RMAXDOUBLE 
) const
inlinevirtual

◆ getDrawOrder()

int REntity::getDrawOrder ( ) const
inline

Returns
The draw order of this entity. Entities are usually drawn in ascending order of this number.

◆ getEndPoints()

virtual QList<RVector> REntity::getEndPoints ( const RBox queryBox = RDEFAULT_RBOX) const
inlinevirtual

Returns
Vector of end points of this entity. Used for snap to end points.

◆ getHull()

virtual RPolyline REntity::getHull ( double  offset) const
inlinevirtual

Returns
A polygon that contains this entity. Default implementation returns a polygon around the bounding box.

◆ getInternalReferencePoints()

virtual QList<RRefPoint> REntity::getInternalReferencePoints ( RS::ProjectionRenderingHint  hint = RS::RenderTop) const
inlinevirtual

Can be overwritten to return internal, resolved reference points.

This is used for example for block references in combination with snap to reference points. Default implementation returns same as getReferencePoints().

◆ getIntersectionPoints() [1/2]

QList< RVector > REntity::getIntersectionPoints ( const REntity other,
bool  limited = true,
const RBox queryBox = RDEFAULT_RBOX,
bool  ignoreComplex = true 
) const
virtual

◆ getIntersectionPoints() [2/2]

QList< RVector > REntity::getIntersectionPoints ( const RShape shape,
bool  limited = true,
const RBox queryBox = RDEFAULT_RBOX,
bool  ignoreComplex = true 
) const
virtual

◆ getIntersectionPointsWithShape()

virtual QList<RVector> REntity::getIntersectionPointsWithShape ( const RShape shape,
bool  limited = true,
const RBox queryBox = RDEFAULT_RBOX 
) const
inlinevirtual

Make getIntersectionPoints with shape parameter accessible for script wrappers.

◆ getLayerId()

RLayer::Id REntity::getLayerId ( ) const
inline

◆ getLayerName()

QString REntity::getLayerName ( ) const
inline

◆ getLinetypeId() [1/2]

RLinetype::Id REntity::getLinetypeId ( ) const
inline

Returns
Linetype ID of this entity. Note that this might be ByLayer or ByBlock.

◆ getLinetypeId() [2/2]

RLinetype::Id REntity::getLinetypeId ( bool  resolve,
const QStack< REntity * > &  blockRefStack 
) const

Returns
Linetype ID of this entity. Note that this might be ByLayer or ByBlock.

◆ getLinetypePattern()

RLinetypePattern REntity::getLinetypePattern ( ) const
inline

◆ getLinetypeScale()

double REntity::getLinetypeScale ( ) const
inline

◆ getLineweight() [1/2]

RLineweight::Lineweight REntity::getLineweight ( ) const
inline

◆ getLineweight() [2/2]

RLineweight::Lineweight REntity::getLineweight ( bool  resolve,
const QStack< REntity * > &  blockRefStack 
) const

◆ getLineweightInUnits()

double REntity::getLineweightInUnits ( const QStack< REntity * > &  blockRefStack) const

◆ getMiddlePoints()

virtual QList<RVector> REntity::getMiddlePoints ( const RBox queryBox = RDEFAULT_RBOX) const
inlinevirtual

Returns
Vector of middle points of this entity. Used for snap to middle points.

◆ getParentId()

REntity::Id REntity::getParentId ( ) const
inline

Returns
ID of parent entity (block reference for block attribute).

◆ getPointOnEntity()

virtual RVector REntity::getPointOnEntity ( ) const
inlinevirtual

Returns
A point that is on the entity. Used to check if an entity is inside a polygon.

◆ getPointsWithDistanceToEnd()

virtual QList<RVector> REntity::getPointsWithDistanceToEnd ( double  distance,
int  from = RS::FromAny,
const RBox queryBox = RDEFAULT_RBOX 
) const
inlinevirtual

Returns
Points on entity with given distance to either endpoint. Used for snap to points with distance on entity.

◆ getProperty()

QPair< QVariant, RPropertyAttributes > REntity::getProperty ( RPropertyTypeId propertyTypeId,
bool  humanReadable = false,
bool  noAttributes = false,
bool  showOnRequest = false 
)
virtual

◆ getReferencePoints()

virtual QList<RRefPoint> REntity::getReferencePoints ( RS::ProjectionRenderingHint  hint = RS::RenderTop) const
inlinevirtual

Returns
Vector of reference points of this entity. Reference points can usually be moved around by the user to change the geometry of the entity.

◆ getShapes()

virtual QList<QSharedPointer<RShape> > REntity::getShapes ( const RBox queryBox = RDEFAULT_RBOX,
bool  ignoreComplex = false,
bool  segment = false 
) const
inlinevirtual

Returns
Shapes that represent the geometry of this entity.
Parameters
queryBoxLimit returned shapes to query box
ignoreComplexIgnore complex shapes and explode those into simple shapes
segmentSplit up splines into spline segments

Reimplemented in RHatchEntity, and RTextBasedEntity.

◆ getStaticPropertyTypeIds()

static QSet<RPropertyTypeId> REntity::getStaticPropertyTypeIds ( )
inlinestatic

◆ getType()

virtual RS::EntityType REntity::getType ( ) const
inlinevirtual

Implements RObject.

◆ getVectorTo()

virtual RVector REntity::getVectorTo ( const RVector point,
bool  limited = true,
double  strictRange = RMAXDOUBLE 
) const
inlinevirtual

Returns
The distance vector from this entity to the given point.
Parameters
pointthe point to which the distance was measured
limitedIf true, an invalid vector is returned if the closest point on the entity is outside of the entity (e.g. in the extension line of a line or outside the start / end angle of an arc).

◆ init()

void REntity::init ( )
static

◆ intersectsWith()

virtual bool REntity::intersectsWith ( const RShape shape) const
inlinevirtual

Returns
True if this entity intersects with the given shape, false otherwise.
Todo:
better to pass another entity data object?

◆ isComplex()

bool REntity::isComplex ( const RS::EntityType  type)
static

◆ isDimension()

bool REntity::isDimension ( const RS::EntityType  type)
static

◆ isEditable()

bool REntity::isEditable ( bool  allowInvisible = false) const
virtual
Returns
true if this entity can be edited (i.e. is not on a locked layer).

◆ isInside()

virtual bool REntity::isInside ( const RBox box) const
inlinevirtual

Returns
True if this entity is completely inside the given box, false otherwise. Only geometry is accounted for, not the line width.

◆ isInWorkingSet()

bool REntity::isInWorkingSet ( ) const
virtual

◆ isOnEntity()

virtual bool REntity::isOnEntity ( const RVector point,
bool  limited = true,
double  tolerance = RDEFAULT_TOLERANCE_1E_MIN4 
) const
inlinevirtual

Returns
True if the given point is on this entity.

◆ isPointType()

virtual bool REntity::isPointType ( ) const
inlinevirtual

◆ isSane()

virtual bool REntity::isSane ( ) const
inlinevirtual

◆ isSelected()

virtual bool REntity::isSelected ( ) const
inlinevirtual

Reimplemented by entities that are part of a block reference but not stored as part of the block definition (currently only block attributes).

The default implementation returns false. Reimplemented by entities that do not want to be automatically painted

Returns
True if the entity is currently selected. This can for example influence the color in which the entity is exported.

Reimplemented from RObject.

◆ isSelectedWorkingSet()

virtual bool REntity::isSelectedWorkingSet ( ) const
inlinevirtual

Returns
True if the entity is currently selected to be added to the working set.

◆ isTextBased()

bool REntity::isTextBased ( const RS::EntityType  type)
static

◆ isUpdatesEnabled()

virtual bool REntity::isUpdatesEnabled ( ) const
inlinevirtual

◆ isValid()

virtual bool REntity::isValid ( ) const
inlinevirtual

Reimplemented in RSplineEntity.

◆ isVisible()

bool REntity::isVisible ( RBlock::Id  blockId = RBlock::INVALID_ID) const
virtual
Returns
true if this entity is visible (i.e. is on current or given block, is not on a frozen or hidden layer or in a frozen block).

◆ mirror() [1/2]

virtual bool REntity::mirror ( const RLine axis)
inlinevirtual

◆ mirror() [2/2]

virtual bool REntity::mirror ( const RVector axis1,
const RVector axis2 
)
inlinevirtual

◆ move()

virtual bool REntity::move ( const RVector offset)
inlinevirtual

Moves this entity by the given offset.

◆ moveReferencePoint()

virtual bool REntity::moveReferencePoint ( const RVector referencePoint,
const RVector targetPoint,
Qt::KeyboardModifiers  modifiers = Qt::NoModifier 
)
inlinevirtual

Moves the given reference point to the given target point or does nothing if this entity has no reference point as the given location.

Returns
True if a reference point has been moved successfully, false otherwise.

◆ print()

◆ rotate()

virtual bool REntity::rotate ( double  rotation,
const RVector center = RDEFAULT_RVECTOR 
)
inlinevirtual

◆ scale() [1/2]

virtual bool REntity::scale ( const RVector scaleFactors,
const RVector center = RDEFAULT_RVECTOR 
)
inlinevirtual

◆ scale() [2/2]

virtual bool REntity::scale ( double  scaleFactor,
const RVector center = RDEFAULT_RVECTOR 
)
inlinevirtual

◆ scaleNonUniform()

QSharedPointer< REntity > REntity::scaleNonUniform ( const RVector scaleFactors,
const RVector center = RDEFAULT_RVECTOR 
)
virtual

◆ scaleVisualProperties()

virtual void REntity::scaleVisualProperties ( double  scaleFactor)
inlinevirtual

◆ setAutoUpdatesBlocked()

virtual void REntity::setAutoUpdatesBlocked ( bool  on)
inlinevirtual

Reimplemented from RObject.

◆ setBlockId()

void REntity::setBlockId ( RBlock::Id  blockId)
inline

◆ setColor()

void REntity::setColor ( const RColor color)
inline

◆ setDocument()

void REntity::setDocument ( RDocument document)
inline

◆ setDrawOrder()

void REntity::setDrawOrder ( int  drawOrder)
inline

Sets the draw order of this entity.

◆ setLayerId()

void REntity::setLayerId ( RLayer::Id  layerId)
inline

◆ setLayerName()

void REntity::setLayerName ( const QString &  n)
inline

◆ setLinetypeId()

void REntity::setLinetypeId ( RLinetype::Id  linetypeId)
inline

Sets the linetype of this entity to the given linetype ID.

See also
RDocument::getLinetypeId

◆ setLinetypePattern()

void REntity::setLinetypePattern ( const RLinetypePattern linetypePattern)
inline

◆ setLinetypeScale()

void REntity::setLinetypeScale ( double  linetypeScale)
inline

◆ setLineweight()

void REntity::setLineweight ( RLineweight::Lineweight  lineweight)
inline

◆ setParentId()

void REntity::setParentId ( REntity::Id  parentId)
inlineprotected

◆ setProperty()

bool REntity::setProperty ( RPropertyTypeId  propertyTypeId,
const QVariant &  value,
RTransaction transaction = NULL 
)
virtual

Sets the given property to the given value.

If this property owner does not know a property with that ID, it is up to the property owner what happens. The property might be added into a list of dynamic properties or dropped.

Returns
True if the property owner was modified in any way, false otherwise.

Reimplemented from RObject.

Reimplemented in RDimAngular2LEntity, RDimArcLengthEntity, RAttributeEntity, RDimAngular3PEntity, RDimRotatedEntity, RPolylineEntity, RDimOrdinateEntity, RAttributeDefinitionEntity, RDimAlignedEntity, RDimDiametricEntity, RDimRadialEntity, RHatchEntity, RDimensionEntity, RSplineEntity, RDimLinearEntity, REllipseEntity, RTextBasedEntity, RArcEntity, RImageEntity, RBlockReferenceEntity, RFaceEntity, RSolidEntity, RTraceEntity, RViewportEntity, RRayEntity, RXLineEntity, RToleranceEntity, RLineEntity, RCircleEntity, RLeaderEntity, and RPointEntity.

◆ setSelected()

void REntity::setSelected ( bool  on)
virtual

Selects or deselects this entity.

Reimplemented from RObject.

◆ setSelectedWorkingSet()

virtual void REntity::setSelectedWorkingSet ( bool  on)
inlinevirtual

◆ setUpdatesEnabled()

void REntity::setUpdatesEnabled ( bool  on)
inline

◆ setViewportContext()

virtual void REntity::setViewportContext ( const RViewportData )
inlinevirtual

Reimplemented in RHatchEntity.

◆ setZ()

virtual void REntity::setZ ( double  z)
inlinevirtual

◆ stretch()

virtual bool REntity::stretch ( const RPolyline area,
const RVector offset 
)
inlinevirtual

Stretches the end points of this entity that are inside area by offset.

◆ to2D()

virtual void REntity::to2D ( )
inlinevirtual

◆ update()

void REntity::update ( ) const
inline

Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).

Friends And Related Function Documentation

◆ RStorage

friend class RStorage
friend

Member Data Documentation

◆ PropertyBlock

RPropertyTypeId REntity::PropertyBlock
static

◆ PropertyColor

RPropertyTypeId REntity::PropertyColor
static

◆ PropertyCustom

RPropertyTypeId REntity::PropertyCustom
static

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.

◆ PropertyDisplayedColor

RPropertyTypeId REntity::PropertyDisplayedColor
static

◆ PropertyDrawOrder

RPropertyTypeId REntity::PropertyDrawOrder
static

◆ PropertyHandle

RPropertyTypeId REntity::PropertyHandle
static

◆ PropertyLayer

RPropertyTypeId REntity::PropertyLayer
static

◆ PropertyLinetype

RPropertyTypeId REntity::PropertyLinetype
static

◆ PropertyLinetypeScale

RPropertyTypeId REntity::PropertyLinetypeScale
static

◆ PropertyLineweight

RPropertyTypeId REntity::PropertyLineweight
static

◆ PropertyMaxX

RPropertyTypeId REntity::PropertyMaxX
static

◆ PropertyMaxY

RPropertyTypeId REntity::PropertyMaxY
static

◆ PropertyMinX

RPropertyTypeId REntity::PropertyMinX
static

◆ PropertyMinY

RPropertyTypeId REntity::PropertyMinY
static

◆ PropertyProtected

RPropertyTypeId REntity::PropertyProtected
static

◆ PropertySizeX

RPropertyTypeId REntity::PropertySizeX
static

◆ PropertySizeY

RPropertyTypeId REntity::PropertySizeY
static

◆ PropertyType

RPropertyTypeId REntity::PropertyType
static

◆ PropertyWorkingSet

RPropertyTypeId REntity::PropertyWorkingSet
static

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