QCAD
Open Source 2D CAD
RRestrictAngleLength Class Reference

Angle and length snap restriction implementation. More...

#include <RRestrictAngleLength.h>

Inheritance diagram for RRestrictAngleLength:
RSnapRestriction RRestrictAngleLengthExtension

Public Types

enum  AngleLengthMode { None, Angle, Length, AngleLength }
 

Public Member Functions

virtual RVector restrictSnap (const RVector &position, const RVector &relativeZero)
 Copyright (c) 2011-2018 by Andrew Mustun. More...
 
 RRestrictAngleLength (RDocumentInterface *documentInterface, double baseAngle, double angle, double baseLength, double length)
 
 RRestrictAngleLength (RDocumentInterface *documentInterface=NULL)
 
virtual void setAngle (double a)
 
virtual void setBaseAngle (double a)
 
virtual void setBaseLength (double l)
 
virtual void setLength (double l)
 
virtual void setRestrictAngle (bool on)
 
virtual void setRestrictLength (bool on)
 
virtual ~RRestrictAngleLength ()
 
- Public Member Functions inherited from RSnapRestriction
RVector getLastSnap () const
 
virtual void hideUiOptions ()
 
void reset ()
 
 RSnapRestriction (RDocumentInterface *documentInterface=NULL)
 
virtual void showUiOptions ()
 
virtual ~RSnapRestriction ()
 

Protected Attributes

double angle
 
double baseAngle
 
double baseLength
 
double length
 
AngleLengthMode mode
 
- Protected Attributes inherited from RSnapRestriction
RDocumentInterfacedocumentInterface
 
RVector lastSnap
 

Detailed Description

Angle and length snap restriction implementation.

Scriptable:\nThis class is available in script environments.\n
\generateScriptShell

Member Enumeration Documentation

◆ AngleLengthMode

Enumerator
None 
Angle 
Length 
AngleLength 

Constructor & Destructor Documentation

◆ RRestrictAngleLength() [1/2]

RRestrictAngleLength::RRestrictAngleLength ( RDocumentInterface documentInterface = NULL)
inline

◆ RRestrictAngleLength() [2/2]

RRestrictAngleLength::RRestrictAngleLength ( RDocumentInterface documentInterface,
double  baseAngle,
double  angle,
double  baseLength,
double  length 
)
inline

◆ ~RRestrictAngleLength()

virtual RRestrictAngleLength::~RRestrictAngleLength ( )
inlinevirtual

Member Function Documentation

◆ restrictSnap()

RVector RRestrictAngleLength::restrictSnap ( const RVector position,
const RVector relativeZero 
)
virtual

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.

Implements RSnapRestriction.

◆ setAngle()

virtual void RRestrictAngleLength::setAngle ( double  a)
inlinevirtual

◆ setBaseAngle()

virtual void RRestrictAngleLength::setBaseAngle ( double  a)
inlinevirtual

◆ setBaseLength()

virtual void RRestrictAngleLength::setBaseLength ( double  l)
inlinevirtual

◆ setLength()

virtual void RRestrictAngleLength::setLength ( double  l)
inlinevirtual

◆ setRestrictAngle()

virtual void RRestrictAngleLength::setRestrictAngle ( bool  on)
inlinevirtual

◆ setRestrictLength()

virtual void RRestrictAngleLength::setRestrictLength ( bool  on)
inlinevirtual

Member Data Documentation

◆ angle

double RRestrictAngleLength::angle
protected

◆ baseAngle

double RRestrictAngleLength::baseAngle
protected

◆ baseLength

double RRestrictAngleLength::baseLength
protected

◆ length

double RRestrictAngleLength::length
protected

◆ mode

AngleLengthMode RRestrictAngleLength::mode
protected

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