QCAD
Open Source 2D CAD
RPoint Class Reference

Copyright (c) 2011-2015 by Andrew Mustun. More...

#include <RPoint.h>

Inheritance diagram for RPoint:
RShape RPointData RTextLabel

Public Member Functions

virtual RPointclone () const
 
virtual bool flipHorizontal ()
 
virtual bool flipVertical ()
 
virtual double getAngleAt (double distance, RS::From from=RS::FromStart) const
 
virtual RBox getBoundingBox () const
 
virtual QList< RVectorgetCenterPoints () const
 
virtual QList< RVectorgetEndPoints () const
 
virtual double getLength () const
 
virtual QList< RVectorgetMiddlePoints () const
 
virtual QList< RVectorgetPointsWithDistanceToEnd (double distance, RS::From from=RS::FromAny) const
 
RVector getPosition () const
 
virtual QSharedPointer< RShapegetTransformed (const QTransform &transform) 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 &center=RDEFAULT_RVECTOR)
 
 RPoint ()
 Copyright (c) 2011-2015 by Andrew Mustun. More...
 
 RPoint (double x, double y)
 
 RPoint (const RVector &position)
 Creates a point object with the given position. More...
 
virtual bool scale (const RVector &scaleFactors, const RVector &center=RDEFAULT_RVECTOR)
 
void setPosition (const RVector &p)
 
virtual void to2D ()
 Flattens this shape to the X/Y plane. More...
 
virtual ~RPoint ()
 
- Public Member Functions inherited from RShape
void dump ()
 
virtual QList< RVectorfilterOnShape (const QList< RVector > &pointList, bool limited=true, double tolerance=RDEFAULT_TOLERANCE_1E_MIN4) const
 
virtual RVector getClosestPointOnShape (const RVector &p, bool limited=true, double strictRange=RMAXDOUBLE) const
 
virtual double getDistanceTo (const RVector &point, bool limited=true, double strictRange=RMAXDOUBLE) const
 
QList< RVectorgetIntersectionPoints (const RShape &other, bool limited=true, bool same=false, bool force=false) const
 
virtual RVector getPointAtPercent (double p) const
 
virtual RVector getVectorFromEndpointTo (const RVector &point) const
 
virtual bool intersectsWith (const RShape &other, bool limited=true) 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
 
 RShape ()
 
virtual bool scale (double scaleFactor, const RVector &center=RVector())
 
virtual bool stretch (const RBox &area, const RVector &offset)
 
virtual bool stretch (const RPolyline &area, const RVector &offset)
 
virtual ~RShape ()
 

Public Attributes

RVector position
 Getter function for this property: getPosition. More...
 

Protected Member Functions

virtual void print (QDebug dbg) const
 

Additional Inherited Members

- Static Public Member Functions inherited from RShape
static const RExplodablecastToExplodable (const RShape *shape)
 
static QList< RVectorgetIntersectionPoints (const RShape &shape1, const RShape &shape2, bool limited=true, bool same=false, bool force=false)
 
static QList< RVectorgetIntersectionPointsAA (const RArc &arc1, const RArc &arc2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsAC (const RArc &arc1, const RCircle &circle2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsAE (const RArc &arc1, const REllipse &ellipse2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsAS (const RArc &arc1, const RSpline &spline2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsAT (const RArc &arc1, const RTriangle &triangle2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsAX (const RArc &arc1, const RExplodable &explodable2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsCC (const RCircle &circle1, const RCircle &circle2)
 
static QList< RVectorgetIntersectionPointsCE (const RCircle &circle1, const REllipse &ellipse2)
 
static QList< RVectorgetIntersectionPointsCS (const RCircle &circle1, const RSpline &spline2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsCX (const RCircle &circle1, const RExplodable &explodable2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsEE (const REllipse &ellipse1, const REllipse &ellipse2)
 Based on "Hughes and Chraibi (2011-2012), Calculating Ellipse Overlap Areas". More...
 
static QList< RVectorgetIntersectionPointsEE (const REllipse &ellipse1, const REllipse &ellipse2, bool limited)
 
static QList< RVectorgetIntersectionPointsES (const REllipse &ellipse1, const RSpline &spline2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsEX (const REllipse &ellipse1, const RExplodable &explodable2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsLA (const RLine &line1, const RArc &arc2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsLA (const RLine &line1, const RArc &arc2, bool limited1, bool limited2)
 
static QList< RVectorgetIntersectionPointsLC (const RLine &line1, const RCircle &circle2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsLE (const RLine &line1, const REllipse &ellipse2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsLE (const RLine &line1, const REllipse &ellipse2, bool limited1, bool limited2)
 
static QList< RVectorgetIntersectionPointsLL (const RLine &line1, const RLine &line2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsLL (const RLine &line1, const RLine &line2, bool limited1, bool limited2)
 
static QList< RVectorgetIntersectionPointsLS (const RLine &line1, const RSpline &spline2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsLT (const RLine &line1, const RTriangle &triangle2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsLT (const RLine &line1, const RTriangle &triangle2, bool limited1, bool limited2)
 
static QList< RVectorgetIntersectionPointsLX (const RLine &line1, const RExplodable &explodable2, bool limited=true)
 
static QList< RVectorgetIntersectionPointsXX (const RExplodable &explodable1, const RExplodable &explodable2, bool limited=true, bool same=false)
 
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...
 

Detailed Description

Copyright (c) 2011-2015 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. Low-level mathematical representation of a point.

Scriptable:
This class is available in script environments.
Shared Pointer Support:
Objects can be used in QSharedPointer.
Copyable:
Objects are cleaned up automatically by the garbage collector of the script engine.
Stream Operator:
Object has a stream operator to present itself as string, for example when using toString() in a script.

Constructor & Destructor Documentation

RPoint::RPoint ( )

Copyright (c) 2011-2015 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. Creates a point object with an invalid position

RPoint::RPoint ( double  x,
double  y 
)
RPoint::RPoint ( const RVector position)

Creates a point object with the given position.

Parameters
positionthe position
RPoint::~RPoint ( )
virtual

Member Function Documentation

virtual RPoint* RPoint::clone ( ) const
inlinevirtual

Implements RShape.

Reimplemented in RTextLabel.

bool RPoint::flipHorizontal ( )
virtual

Reimplemented from RShape.

bool RPoint::flipVertical ( )
virtual

Reimplemented from RShape.

double RPoint::getAngleAt ( double  distance,
RS::From  from = RS::FromStart 
) const
virtual
Returns
Angle on the entity at the given distance from the start point.

Reimplemented from RShape.

RBox RPoint::getBoundingBox ( ) const
virtual
Returns
The bounding box of this shape.

Implements RShape.

QList< RVector > RPoint::getCenterPoints ( ) const
virtual
Returns
The center point(s) of this shape.

Implements RShape.

QList< RVector > RPoint::getEndPoints ( ) const
virtual
Returns
The end point(s) of this shape.

Implements RShape.

double RPoint::getLength ( ) const
virtual
Returns
The total length of this shape if applicable or NaN if not.

Implements RShape.

QList< RVector > RPoint::getMiddlePoints ( ) const
virtual
Returns
The middle point(s) of this shape.

Implements RShape.

QList< RVector > RPoint::getPointsWithDistanceToEnd ( double  distance,
RS::From  from = RS::FromAny 
) const
virtual
Returns
All points on this shape with the given distance to an endpoint.

Implements RShape.

RVector RPoint::getPosition ( ) const
inline
QSharedPointer< RShape > RPoint::getTransformed ( const QTransform &  transform) const
virtual

Implements RShape.

RVector RPoint::getVectorTo ( const RVector point,
bool  limited = true,
double  strictRange = RMAXDOUBLE 
) const
virtual
Returns
Shortest vector from this shape to the given point.
Parameters
pointthe given point
limitedIf false, the shape is treated as an unlimited shape that extends in a logical way. For example an unlimited line for a line, full circle for an arc or a plane for a triangle.

Implements RShape.

bool RPoint::mirror ( const RLine axis)
virtual

Implements RShape.

bool RPoint::move ( const RVector offset)
virtual

Implements RShape.

void RPoint::print ( QDebug  dbg) const
protectedvirtual

Reimplemented from RShape.

Reimplemented in RTextLabel.

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

Implements RShape.

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

Implements RShape.

void RPoint::setPosition ( const RVector p)
inline
void RPoint::to2D ( )
virtual

Flattens this shape to the X/Y plane.

Implements RShape.

Member Data Documentation

RVector RPoint::position

Getter function for this property: getPosition.

Setter function for this property: setPosition


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