QCAD
Open Source 2D CAD
|
Base class for all entity classes. More...
#include <REntity.h>
Public Member Functions | |
virtual const RShape * | castToConstShape () const |
virtual RShape * | castToShape () |
virtual bool | clickReferencePoint (const RVector &referencePoint) |
Called when user clicks a reference point. More... | |
virtual REntity * | clone () 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< 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 QSharedPointer< RShape > | getClosestSimpleShape (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 REntityData & | getData () const =0 |
virtual REntityData & | getData ()=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< 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 REntity &other, bool limited=true, 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 |
virtual QList< RVector > | getIntersectionPointsWithShape (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< RVector > | getMiddlePoints (const RBox &queryBox=RDEFAULT_RBOX) const |
REntity::Id | getParentId () const |
virtual RVector | getPointOnEntity () const |
virtual QList< RVector > | getPointsWithDistanceToEnd (double distance, int from=RS::FromAny, const RBox &queryBox=RDEFAULT_RBOX) const |
virtual QPair< QVariant, RPropertyAttributes > | getProperty (RPropertyTypeId &propertyTypeId, bool humanReadable=false, bool noAttributes=false, bool showOnRequest=false) |
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 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 ¢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 QSharedPointer< REntity > | scaleNonUniform (const RVector &scaleFactors, const RVector ¢er=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< RPropertyTypeId > | getCustomPropertyTypeIds () const |
RDocument * | getDocument () |
const RDocument * | getDocument () const |
bool | getFlag (int flag) const |
RObject::Handle | getHandle () const |
RObject::Id | getId () const |
virtual QSet< RPropertyTypeId > | getPropertyTypeIds (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< RPropertyTypeId > | getStaticPropertyTypeIds () |
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) |
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) |
Base class for all entity classes.
Entities can be exported using an implementor of the exporter interface by calling exportEntity.
REntity::REntity | ( | RDocument * | document | ) |
REntity::REntity | ( | const REntity & | other | ) |
|
virtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Called when user clicks a reference point.
|
pure virtual |
Implements RObject.
Implemented in RDimAngular2LEntity, RDimArcLengthEntity, RDimAngular3PEntity, RDimRotatedEntity, RDimOrdinateEntity, RPolylineEntity, RDimAlignedEntity, RDimDiametricEntity, RDimRadialEntity, RSplineEntity, RAttributeEntity, REllipseEntity, RTextEntity, RAttributeDefinitionEntity, RImageEntity, RArcEntity, RFaceEntity, RSolidEntity, RTraceEntity, RHatchEntity, RBlockReferenceEntity, RViewportEntity, RRayEntity, RXLineEntity, RToleranceEntity, RLineEntity, RCircleEntity, RLeaderEntity, and RPointEntity.
|
inlinevirtual |
void REntity::copyAttributesFrom | ( | const REntity * | entity, |
bool | copyBlockId = true |
||
) |
Copies all attributes (layer, block, color, line weight, line style) from the given entity.
void REntity::copyAttributesFrom | ( | const REntityData & | entityData, |
bool | copyBlockId = true |
||
) |
|
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.
|
inlinevirtual |
|
inlinevirtual |
|
inline |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
point
on this entity. Used for snap to points on entity.
|
inlinevirtual |
|
inlinevirtual |
|
inline |
RColor REntity::getColor | ( | const RColor & | unresolvedColor, |
const QStack< REntity * > & | blockRefStack | ||
) |
|
inlinevirtual |
Reimplemented from RObject.
Reimplemented in RPolylineEntity, RSplineEntity, and RHatchEntity.
|
pure virtual |
Implemented in RDimensionEntity, RDimLinearEntity, RDimAngularEntity, RTextBasedEntity, RDimAngular2LEntity, RDimArcLengthEntity, RDimAngular3PEntity, RDimRotatedEntity, RDimOrdinateEntity, RPolylineEntity, RDimAlignedEntity, RDimDiametricEntity, RHatchEntity, RSplineEntity, RDimRadialEntity, REllipseEntity, RArcEntity, RBlockReferenceEntity, RImageEntity, RTextEntity, RFaceEntity, RSolidEntity, RTraceEntity, RAttributeEntity, RToleranceEntity, RViewportEntity, RRayEntity, RXLineEntity, RAttributeDefinitionEntity, RCircleEntity, RLeaderEntity, RLineEntity, and RPointEntity.
|
pure virtual |
Implemented in RDimensionEntity, RDimLinearEntity, RDimAngularEntity, RTextBasedEntity, RDimAngular2LEntity, RDimArcLengthEntity, RPolylineEntity, RDimAngular3PEntity, RDimRotatedEntity, RDimOrdinateEntity, RHatchEntity, RSplineEntity, RDimAlignedEntity, RDimDiametricEntity, RDimRadialEntity, REllipseEntity, RArcEntity, RBlockReferenceEntity, RImageEntity, RFaceEntity, RSolidEntity, RTraceEntity, RAttributeEntity, RViewportEntity, RRayEntity, RXLineEntity, RTextEntity, RAttributeDefinitionEntity, RCircleEntity, RLineEntity, RToleranceEntity, RLeaderEntity, and RPointEntity.
|
inline |
|
inlinevirtual |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
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().
|
virtual |
|
virtual |
|
inlinevirtual |
Make getIntersectionPoints with shape parameter accessible for script wrappers.
|
inline |
|
inline |
|
inline |
RLinetype::Id REntity::getLinetypeId | ( | bool | resolve, |
const QStack< REntity * > & | blockRefStack | ||
) | const |
|
inline |
|
inline |
|
inline |
RLineweight::Lineweight REntity::getLineweight | ( | bool | resolve, |
const QStack< REntity * > & | blockRefStack | ||
) | const |
double REntity::getLineweightInUnits | ( | const QStack< REntity * > & | blockRefStack | ) | const |
|
inlinevirtual |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
distance
to either endpoint. Used for snap to points with distance on entity.
|
virtual |
Reimplemented from RObject.
Reimplemented in RDimAngular2LEntity, RDimArcLengthEntity, RAttributeEntity, RDimAngular3PEntity, RDimRotatedEntity, RPolylineEntity, RDimOrdinateEntity, RAttributeDefinitionEntity, RHatchEntity, RDimAlignedEntity, RDimDiametricEntity, RDimRadialEntity, RDimensionEntity, RSplineEntity, RDimLinearEntity, REllipseEntity, RTextBasedEntity, RArcEntity, RImageEntity, RBlockReferenceEntity, RFaceEntity, RSolidEntity, RTraceEntity, RViewportEntity, RRayEntity, RXLineEntity, RToleranceEntity, RLineEntity, RCircleEntity, RLeaderEntity, and RPointEntity.
|
inlinevirtual |
|
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 in RHatchEntity, and RTextBasedEntity.
|
inlinestatic |
|
inlinevirtual |
Implements RObject.
|
inlinevirtual |
point | the point to which the distance was measured |
limited | If 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). |
|
static |
|
inlinevirtual |
|
static |
|
static |
|
virtual |
|
inlinevirtual |
|
virtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
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
Reimplemented from RObject.
|
inlinevirtual |
|
static |
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in RSplineEntity.
|
virtual |
|
inlinevirtual |
|
inlinevirtual |
Moves this entity by the given offset.
|
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.
|
protectedvirtual |
Stream operator for QDebug.
Reimplemented from RObject.
Reimplemented in RPolylineEntity, RSplineEntity, RTextBasedEntity, REllipseEntity, RDimensionEntity, RHatchEntity, RLeaderEntity, RBlockReferenceEntity, RViewportEntity, RArcEntity, RRayEntity, RXLineEntity, RImageEntity, RLineEntity, RDimOrdinateEntity, RFaceEntity, RSolidEntity, RDimAngular2LEntity, RDimRotatedEntity, RToleranceEntity, RTraceEntity, RDimAlignedEntity, RDimArcLengthEntity, RDimDiametricEntity, RDimAngular3PEntity, RAttributeEntity, RDimAngularEntity, RAttributeDefinitionEntity, RDimRadialEntity, RDimLinearEntity, RCircleEntity, RTextEntity, and RPointEntity.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
Reimplemented in REllipseEntity, RTextBasedEntity, RArcEntity, and RCircleEntity.
|
inlinevirtual |
|
inlinevirtual |
Reimplemented from RObject.
|
inline |
|
inline |
|
inline |
|
inline |
Sets the draw order of this entity.
|
inline |
|
inline |
|
inline |
Sets the linetype of this entity to the given linetype ID.
|
inline |
|
inline |
|
inline |
|
inlineprotected |
Use RStorage::setEntityParentId instead.
|
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.
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.
|
virtual |
Selects or deselects this entity.
Reimplemented from RObject.
|
inlinevirtual |
|
inline |
|
inlinevirtual |
Reimplemented in RHatchEntity.
|
inlinevirtual |
Stretches the end points of this entity that are inside area by offset.
|
inlinevirtual |
|
inline |
Entities can reimplement this function to invalidate any internal cache (mark the entity as dirty).
|
friend |
|
static |
|
static |
|
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.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |