KiCad PCB EDA Suite
SHAPE_CIRCLE Class Reference

#include <shape_circle.h>

Inheritance diagram for SHAPE_CIRCLE:
SHAPE SHAPE_BASE

Public Member Functions

 SHAPE_CIRCLE ()
 
 SHAPE_CIRCLE (const VECTOR2I &aCenter, int aRadius)
 
 SHAPE_CIRCLE (const CIRCLE &aCircle)
 
 SHAPE_CIRCLE (const SHAPE_CIRCLE &aOther)
 
 ~SHAPE_CIRCLE ()
 
SHAPEClone () const override
 Return a dynamically allocated copy of the shape. More...
 
SHAPE_CIRCLEoperator= (const SHAPE_CIRCLE &)=default
 
const BOX2I BBox (int aClearance=0) const override
 Compute a bounding box of the shape, with a margin of aClearance a collision. More...
 
bool Collide (const SEG &aSeg, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const override
 Check if the boundary of shape (this) lies closer to the segment aSeg than aClearance, indicating a collision. More...
 
void SetRadius (int aRadius)
 
void SetCenter (const VECTOR2I &aCenter)
 
int GetRadius () const
 
const VECTOR2I GetCenter () const
 
const CIRCLE GetCircle () const
 
void Move (const VECTOR2I &aVector) override
 
void Rotate (double aAngle, const VECTOR2I &aCenter={ 0, 0 }) override
 
bool IsSolid () const override
 
bool IsNull () const
 Return true if the shape is a null shape. More...
 
virtual bool Collide (const VECTOR2I &aP, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const
 Check if the boundary of shape (this) lies closer to the point aP than aClearance, indicating a collision. More...
 
virtual bool Collide (const SHAPE *aShape, int aClearance, VECTOR2I *aMTV) const
 Check if the boundary of shape (this) lies closer to the shape aShape than aClearance, indicating a collision. More...
 
virtual bool Collide (const SHAPE *aShape, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const
 
virtual VECTOR2I Centre () const
 Compute a center-of-mass of the shape. More...
 
virtual bool Parse (std::stringstream &aStream)
 
virtual const std::string Format () const
 
FACETNewFacet ()
 
SGNODECalcShape (SGNODE *aParent, SGNODE *aColor, WRL1_ORDER aVertexOrder, float aCreaseLimit=0.74317, bool isVRML2=false)
 
SHAPE_TYPE Type () const
 Return the type of the shape. More...
 
virtual bool HasIndexableSubshapes () const
 
virtual size_t GetIndexableSubshapeCount () const
 
virtual void GetIndexableSubshapes (std::vector< SHAPE * > &aSubshapes)
 

Static Public Attributes

static const int MIN_PRECISION_IU = 4
 This is the minimum precision for all the points in a shape. More...
 

Protected Types

typedef VECTOR2I::extended_type ecoord
 

Protected Attributes

SHAPE_TYPE m_type
 < type of our shape More...
 

Private Attributes

CIRCLE m_circle
 

Detailed Description

Definition at line 36 of file shape_circle.h.

Member Typedef Documentation

◆ ecoord

typedef VECTOR2I::extended_type SHAPE::ecoord
protectedinherited

Definition at line 236 of file shape.h.

Constructor & Destructor Documentation

◆ SHAPE_CIRCLE() [1/4]

SHAPE_CIRCLE::SHAPE_CIRCLE ( )
inline

Definition at line 39 of file shape_circle.h.

39  :
40  SHAPE( SH_CIRCLE ),
41  m_circle()
42  {}
SHAPE(SHAPE_TYPE aType)
Create an empty shape of type aType.
Definition: shape.h:127
CIRCLE m_circle
Definition: shape_circle.h:140
circle
Definition: shape.h:46

Referenced by Clone().

◆ SHAPE_CIRCLE() [2/4]

SHAPE_CIRCLE::SHAPE_CIRCLE ( const VECTOR2I aCenter,
int  aRadius 
)
inline

Definition at line 44 of file shape_circle.h.

44  :
45  SHAPE( SH_CIRCLE ),
46  m_circle( aCenter, aRadius )
47  {}
SHAPE(SHAPE_TYPE aType)
Create an empty shape of type aType.
Definition: shape.h:127
CIRCLE m_circle
Definition: shape_circle.h:140
circle
Definition: shape.h:46

◆ SHAPE_CIRCLE() [3/4]

SHAPE_CIRCLE::SHAPE_CIRCLE ( const CIRCLE aCircle)
inline

Definition at line 49 of file shape_circle.h.

49  :
50  SHAPE( SH_CIRCLE ),
51  m_circle( aCircle )
52  {}
SHAPE(SHAPE_TYPE aType)
Create an empty shape of type aType.
Definition: shape.h:127
CIRCLE m_circle
Definition: shape_circle.h:140
circle
Definition: shape.h:46

◆ SHAPE_CIRCLE() [4/4]

SHAPE_CIRCLE::SHAPE_CIRCLE ( const SHAPE_CIRCLE aOther)
inline

Definition at line 54 of file shape_circle.h.

54  :
55  SHAPE( SH_CIRCLE ),
56  m_circle( aOther.m_circle )
57  {};
SHAPE(SHAPE_TYPE aType)
Create an empty shape of type aType.
Definition: shape.h:127
CIRCLE m_circle
Definition: shape_circle.h:140
circle
Definition: shape.h:46

◆ ~SHAPE_CIRCLE()

SHAPE_CIRCLE::~SHAPE_CIRCLE ( )
inline

Definition at line 59 of file shape_circle.h.

60  {}

Member Function Documentation

◆ BBox()

const BOX2I SHAPE_CIRCLE::BBox ( int  aClearance = 0) const
inlineoverridevirtual

Compute a bounding box of the shape, with a margin of aClearance a collision.

Parameters
aClearancehow much the bounding box is expanded wrs to the minimum enclosing rectangle for the shape.
Returns
the bounding box.

Implements SHAPE.

Definition at line 69 of file shape_circle.h.

70  {
71  const VECTOR2I rc( m_circle.Radius + aClearance, m_circle.Radius + aClearance );
72 
73  return BOX2I( m_circle.Center - rc, rc * 2 );
74  }
BOX2< VECTOR2I > BOX2I
Definition: box2.h:506
CIRCLE m_circle
Definition: shape_circle.h:140
Define a general 2D-vector/point.
Definition: vector2d.h:61
int Radius
Public to make access simpler.
Definition: circle.h:115
VECTOR2I Center
Public to make access simpler.
Definition: circle.h:116

References CIRCLE::Center, m_circle, and CIRCLE::Radius.

◆ CalcShape()

SGNODE * SHAPE::CalcShape ( SGNODE aParent,
SGNODE aColor,
WRL1_ORDER  aVertexOrder,
float  aCreaseLimit = 0.74317,
bool  isVRML2 = false 
)
inherited

Definition at line 703 of file wrlfacet.cpp.

705 {
706  if( facets.empty() || !facets.front()->HasMinPoints() )
707  return nullptr;
708 
709  std::vector< std::list< FACET* > > flist;
710 
711  // determine the max. index and size flist as appropriate
712  std::list< FACET* >::iterator sF = facets.begin();
713  std::list< FACET* >::iterator eF = facets.end();
714 
715  int maxIdx = 0;
716  int tmi;
717  float maxV = 0.0;
718  float tV = 0.0;
719 
720  while( sF != eF )
721  {
722  tV = ( *sF )->CalcFaceNormal();
723  tmi = ( *sF )->GetMaxIndex();
724 
725  if( tmi > maxIdx )
726  maxIdx = tmi;
727 
728  if( tV > maxV )
729  maxV = tV;
730 
731  ++sF;
732  }
733 
734  ++maxIdx;
735 
736  if( maxIdx < 3 )
737  return nullptr;
738 
739  flist.resize( maxIdx );
740 
741  // create the lists of facets common to indices
742  sF = facets.begin();
743 
744  while( sF != eF )
745  {
746  ( *sF )->Renormalize( tV );
747  ( *sF )->CollectVertices( flist );
748  ++sF;
749  }
750 
751  // calculate the normals
752  size_t vs = flist.size();
753 
754  for( size_t i = 0; i < vs; ++i )
755  {
756  sF = flist[i].begin();
757  eF = flist[i].end();
758 
759  while( sF != eF )
760  {
761  ( *sF )->CalcVertexNormal( static_cast<int>( i ), flist[i], aCreaseLimit );
762  ++sF;
763  }
764  }
765 
766  std::vector< WRLVEC3F > vertices;
767  std::vector< WRLVEC3F > normals;
768  std::vector< SGCOLOR > colors;
769 
770  // push the facet data to the final output list
771  sF = facets.begin();
772  eF = facets.end();
773 
774  while( sF != eF )
775  {
776  ( *sF )->GetData( vertices, normals, colors, aVertexOrder );
777  ++sF;
778  }
779 
780  flist.clear();
781 
782  if( vertices.size() < 3 )
783  return nullptr;
784 
785  IFSG_SHAPE shapeNode( false );
786 
787  if( !isVRML2 )
788  {
789  shapeNode.NewNode( aParent );
790 
791  if( aColor )
792  {
793  if( nullptr == S3D::GetSGNodeParent( aColor ) )
794  shapeNode.AddChildNode( aColor );
795  else
796  shapeNode.AddRefNode( aColor );
797  }
798  }
799 
800  std::vector< SGPOINT > lCPts; // vertex points in SGPOINT (double) format
801  std::vector< SGVECTOR > lCNorm; // per-vertex normals
802  vs = vertices.size();
803 
804  for( size_t i = 0; i < vs; ++i )
805  {
806  SGPOINT pt;
807  pt.x = vertices[i].x;
808  pt.y = vertices[i].y;
809  pt.z = vertices[i].z;
810  lCPts.push_back( pt );
811  lCNorm.emplace_back( normals[i].x, normals[i].y, normals[i].z );
812  }
813 
814  vertices.clear();
815  normals.clear();
816 
817  IFSG_FACESET fsNode( false );
818 
819  if( !isVRML2 )
820  fsNode.NewNode( shapeNode );
821  else
822  fsNode.NewNode( aParent );
823 
824  IFSG_COORDS cpNode( fsNode );
825  cpNode.SetCoordsList( lCPts.size(), &lCPts[0] );
826  IFSG_COORDINDEX ciNode( fsNode );
827 
828  for( int i = 0; i < (int)lCPts.size(); ++i )
829  ciNode.AddIndex( i );
830 
831  IFSG_NORMALS nmNode( fsNode );
832  nmNode.SetNormalList( lCNorm.size(), &lCNorm[0] );
833 
834  if( !colors.empty() )
835  {
836  IFSG_COLORS nmColor( fsNode );
837  nmColor.SetColorList( colors.size(), &colors[0] );
838  colors.clear();
839  }
840 
841  if( !isVRML2 )
842  return shapeNode.GetRawPtr();
843 
844  return fsNode.GetRawPtr();
845 }
double x
Definition: sg_base.h:70
IFSG_COORDS is the wrapper for SGCOORDS.
Definition: ifsg_coords.h:40
IFSG_COORDINDEX is the wrapper for SGCOORDINDEX.
IFSG_COLORS is the wrapper for SGCOLORS.
Definition: ifsg_colors.h:41
SGLIB_API SGNODE * GetSGNodeParent(SGNODE *aNode)
Definition: ifsg_api.cpp:492
double y
Definition: sg_base.h:71
IFSG_NORMALS is the wrapper for the SGNORMALS class.
Definition: ifsg_normals.h:40
std::list< FACET * > facets
Definition: wrlfacet.h:143
IFSG_FACESET is the wrapper for the SGFACESET class.
Definition: ifsg_faceset.h:40
double z
Definition: sg_base.h:72
IFSG_SHAPE is the wrapper for the SGSHAPE class.
Definition: ifsg_shape.h:40

References IFSG_NODE::AddChildNode(), IFSG_INDEX::AddIndex(), IFSG_NODE::AddRefNode(), SHAPE::facets, IFSG_NODE::GetRawPtr(), S3D::GetSGNodeParent(), IFSG_SHAPE::NewNode(), IFSG_FACESET::NewNode(), IFSG_COLORS::SetColorList(), IFSG_COORDS::SetCoordsList(), IFSG_NORMALS::SetNormalList(), SGPOINT::x, SGPOINT::y, and SGPOINT::z.

Referenced by WRL1FACESET::TranslateToSG(), X3DIFACESET::TranslateToSG(), and WRL2FACESET::TranslateToSG().

◆ Centre()

virtual VECTOR2I SHAPE::Centre ( ) const
inlinevirtualinherited

Compute a center-of-mass of the shape.

Returns
the center-of-mass point

Definition at line 216 of file shape.h.

217  {
218  return BBox( 0 ).Centre(); // if nothing better is available....
219  }
virtual const BOX2I BBox(int aClearance=0) const =0
Compute a bounding box of the shape, with a margin of aClearance a collision.
Vec Centre() const
Definition: box2.h:63

References SHAPE::BBox(), and BOX2< Vec >::Centre().

Referenced by Collide().

◆ Clone()

SHAPE* SHAPE_CIRCLE::Clone ( ) const
inlineoverridevirtual

Return a dynamically allocated copy of the shape.

Return values
copyof the shape

Reimplemented from SHAPE.

Definition at line 62 of file shape_circle.h.

63  {
64  return new SHAPE_CIRCLE( *this );
65  }

References SHAPE_CIRCLE().

◆ Collide() [1/4]

bool SHAPE_CIRCLE::Collide ( const SEG aSeg,
int  aClearance = 0,
int *  aActual = nullptr,
VECTOR2I aLocation = nullptr 
) const
inlineoverridevirtual

Check if the boundary of shape (this) lies closer to the segment aSeg than aClearance, indicating a collision.

Parameters
aActual[out] an optional pointer to an int to be updated with the actual distance int the event of a collision.
aLocation[out] an option pointer to a point to store a nearby location in the event of a collision.
Returns
true, if there is a collision.

Implements SHAPE.

Definition at line 76 of file shape_circle.h.

78  {
79  int minDist = aClearance + m_circle.Radius;
80  VECTOR2I pn = aSeg.NearestPoint( m_circle.Center );
81  ecoord dist_sq = ( pn - m_circle.Center ).SquaredEuclideanNorm();
82 
83  if( dist_sq == 0 || dist_sq < SEG::Square( minDist ) )
84  {
85  if( aLocation )
86  *aLocation = pn;
87 
88  if( aActual )
89  *aActual = std::max( 0, (int) sqrt( dist_sq ) - m_circle.Radius );
90 
91  return true;
92  }
93 
94  return false;
95  }
CIRCLE m_circle
Definition: shape_circle.h:140
Define a general 2D-vector/point.
Definition: vector2d.h:61
static SEG::ecoord Square(int a)
Definition: seg.h:122
VECTOR2I::extended_type ecoord
const VECTOR2I NearestPoint(const VECTOR2I &aP) const
Compute a point on the segment (this) that is closest to point aP.
Definition: seg.cpp:227
int Radius
Public to make access simpler.
Definition: circle.h:115
VECTOR2I Center
Public to make access simpler.
Definition: circle.h:116

References CIRCLE::Center, m_circle, SEG::NearestPoint(), CIRCLE::Radius, and SEG::Square().

Referenced by Collide(), and SCH_JUNCTION::HitTest().

◆ Collide() [2/4]

virtual bool SHAPE::Collide ( const VECTOR2I aP,
int  aClearance = 0,
int *  aActual = nullptr,
VECTOR2I aLocation = nullptr 
) const
inlinevirtualinherited

Check if the boundary of shape (this) lies closer to the point aP than aClearance, indicating a collision.

Parameters
aActual[out] an optional pointer to an int to store the actual distance in the event of a collision.
aLocation[out] an option pointer to a point to store a nearby location in the event of a collision.
Returns
true, if there is a collision.

Reimplemented in SHAPE_POLY_SET, SHAPE_LINE_CHAIN_BASE, SHAPE_ARC, and SHAPE_SEGMENT.

Definition at line 165 of file shape.h.

167  {
168  return Collide( SEG( aP, aP ), aClearance, aActual, aLocation );
169  }
virtual bool Collide(const VECTOR2I &aP, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const
Check if the boundary of shape (this) lies closer to the point aP than aClearance,...
Definition: shape.h:165
Definition: seg.h:40

Referenced by DRC_RTREE::CheckColliding(), SHAPE_COMPOUND::Collide(), SHAPE_SEGMENT::Collide(), collide(), SHAPE_RECT::Collide(), SHAPE_ARC::Collide(), SHAPE_POLY_SET::Collide(), PNS::ITEM::collideSimple(), PNS::SHOVE::onCollidingVia(), PNS::HIT_VISITOR::operator()(), DRC_RTREE::QueryColliding(), DRC_TEST_PROVIDER_SILK_CLEARANCE::Run(), PNS::OPTIMIZER::smartPadsSingle(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::testAgainstEdge(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), and DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackAgainstItem().

◆ Collide() [3/4]

bool SHAPE::Collide ( const SHAPE aShape,
int  aClearance,
VECTOR2I aMTV 
) const
virtualinherited

Check if the boundary of shape (this) lies closer to the shape aShape than aClearance, indicating a collision.

Parameters
aShapeshape to check collision against
aClearanceminimum clearance
aMTVminimum translation vector
aActual[out] an optional pointer to an int to store the actual distance in the event of a collision.
aLocation[out] an option pointer to a point to store a nearby location in the event of a collision.
Returns
true, if there is a collision.

Reimplemented in SHAPE_RECT, SHAPE_SEGMENT, and SHAPE_COMPOUND.

Definition at line 1024 of file shape_collisions.cpp.

1025 {
1026  return collideShapes( this, aShape, aClearance, nullptr, nullptr, aMTV );
1027 }
static bool collideShapes(const SHAPE *aA, const SHAPE *aB, int aClearance, int *aActual, VECTOR2I *aLocation, VECTOR2I *aMTV)

References collideShapes().

◆ Collide() [4/4]

bool SHAPE::Collide ( const SHAPE aShape,
int  aClearance = 0,
int *  aActual = nullptr,
VECTOR2I aLocation = nullptr 
) const
virtualinherited

Reimplemented in SHAPE_POLY_SET, SHAPE_ARC, SHAPE_RECT, SHAPE_SEGMENT, and SHAPE_COMPOUND.

Definition at line 1030 of file shape_collisions.cpp.

1031 {
1032  return collideShapes( this, aShape, aClearance, aActual, aLocation, nullptr );
1033 }
static bool collideShapes(const SHAPE *aA, const SHAPE *aB, int aClearance, int *aActual, VECTOR2I *aLocation, VECTOR2I *aMTV)

References collideShapes().

◆ Format()

const std::string SHAPE::Format ( ) const
virtualinherited

Reimplemented in SHAPE_POLY_SET, SHAPE_LINE_CHAIN, SHAPE_RECT, SHAPE_SEGMENT, and SHAPE_COMPOUND.

Definition at line 35 of file shape.cpp.

36 {
37  assert( false );
38  return std::string( "" );
39 }

Referenced by SHAPE_FILE_IO::Write().

◆ GetCenter()

◆ GetCircle()

const CIRCLE SHAPE_CIRCLE::GetCircle ( ) const
inline

Definition at line 117 of file shape_circle.h.

118  {
119  return m_circle;
120  }
CIRCLE m_circle
Definition: shape_circle.h:140

References m_circle.

◆ GetIndexableSubshapeCount()

virtual size_t SHAPE_BASE::GetIndexableSubshapeCount ( ) const
inlinevirtualinherited

Reimplemented in SHAPE_POLY_SET, and SHAPE_COMPOUND.

Definition at line 104 of file shape.h.

104 { return 0; }

◆ GetIndexableSubshapes()

virtual void SHAPE_BASE::GetIndexableSubshapes ( std::vector< SHAPE * > &  aSubshapes)
inlinevirtualinherited

Reimplemented in SHAPE_POLY_SET, and SHAPE_COMPOUND.

Definition at line 106 of file shape.h.

106 { }

Referenced by SHAPE_COMPOUND::AddShape(), and ROUTER_PREVIEW_ITEM::ViewDraw().

◆ GetRadius()

◆ HasIndexableSubshapes()

virtual bool SHAPE_BASE::HasIndexableSubshapes ( ) const
inlinevirtualinherited

Reimplemented in SHAPE_POLY_SET, and SHAPE_COMPOUND.

Definition at line 99 of file shape.h.

100  {
101  return false;
102  }

Referenced by SHAPE_COMPOUND::AddShape(), and ROUTER_PREVIEW_ITEM::ViewDraw().

◆ IsNull()

bool SHAPE::IsNull ( ) const
inlineinherited

Return true if the shape is a null shape.

Return values
trueif null :-)

Definition at line 150 of file shape.h.

151  {
152  return m_type == SH_NULL;
153  }
SHAPE_TYPE m_type
< type of our shape
Definition: shape.h:110
empty shape (no shape...),
Definition: shape.h:51

References SHAPE_BASE::m_type, and SH_NULL.

◆ IsSolid()

bool SHAPE_CIRCLE::IsSolid ( ) const
inlineoverridevirtual

Implements SHAPE.

Definition at line 134 of file shape_circle.h.

135  {
136  return true;
137  }

◆ Move()

void SHAPE_CIRCLE::Move ( const VECTOR2I aVector)
inlineoverridevirtual

Implements SHAPE.

Definition at line 122 of file shape_circle.h.

123  {
124  m_circle.Center += aVector;
125  }
CIRCLE m_circle
Definition: shape_circle.h:140
VECTOR2I Center
Public to make access simpler.
Definition: circle.h:116

References CIRCLE::Center, and m_circle.

◆ NewFacet()

FACET * SHAPE::NewFacet ( )
inherited

Definition at line 695 of file wrlfacet.cpp.

696 {
697  FACET* fp = new FACET;
698  facets.push_back( fp );
699  return fp;
700 }
Definition: wrlfacet.h:42
std::list< FACET * > facets
Definition: wrlfacet.h:143

References SHAPE::facets.

Referenced by WRL1FACESET::TranslateToSG(), X3DIFACESET::TranslateToSG(), and WRL2FACESET::TranslateToSG().

◆ operator=()

SHAPE_CIRCLE& SHAPE_CIRCLE::operator= ( const SHAPE_CIRCLE )
default

◆ Parse()

bool SHAPE::Parse ( std::stringstream &  aStream)
virtualinherited

Reimplemented in SHAPE_POLY_SET, and SHAPE_LINE_CHAIN.

Definition at line 28 of file shape.cpp.

29 {
30  assert( false );
31  return false;
32 }

◆ Rotate()

void SHAPE_CIRCLE::Rotate ( double  aAngle,
const VECTOR2I aCenter = { 0, 0 } 
)
inlineoverridevirtual
Parameters
aCenteris the rotation center.
aAnglerotation angle in radians.

Implements SHAPE.

Definition at line 127 of file shape_circle.h.

127  { 0, 0 } ) override
128  {
129  m_circle.Center -= aCenter;
130  m_circle.Center = m_circle.Center.Rotate( aAngle );
131  m_circle.Center += aCenter;
132  }
CIRCLE m_circle
Definition: shape_circle.h:140
VECTOR2< T > Rotate(double aAngle) const
Rotate the vector by a given angle.
Definition: vector2d.h:371
VECTOR2I Center
Public to make access simpler.
Definition: circle.h:116

◆ SetCenter()

void SHAPE_CIRCLE::SetCenter ( const VECTOR2I aCenter)
inline

Definition at line 102 of file shape_circle.h.

103  {
104  m_circle.Center = aCenter;
105  }
CIRCLE m_circle
Definition: shape_circle.h:140
VECTOR2I Center
Public to make access simpler.
Definition: circle.h:116

References CIRCLE::Center, and m_circle.

Referenced by Collide(), and PNS::VIA::SetPos().

◆ SetRadius()

void SHAPE_CIRCLE::SetRadius ( int  aRadius)
inline

Definition at line 97 of file shape_circle.h.

98  {
99  m_circle.Radius = aRadius;
100  }
CIRCLE m_circle
Definition: shape_circle.h:140
int Radius
Public to make access simpler.
Definition: circle.h:115

References m_circle, and CIRCLE::Radius.

Referenced by PNS::VIA::SetDiameter(), and PNS::VIA::SetDrill().

◆ Type()

SHAPE_TYPE SHAPE_BASE::Type ( ) const
inlineinherited

Member Data Documentation

◆ m_circle

CIRCLE SHAPE_CIRCLE::m_circle
private

Definition at line 140 of file shape_circle.h.

Referenced by BBox(), Collide(), GetCenter(), GetCircle(), GetRadius(), Move(), SetCenter(), and SetRadius().

◆ m_type

SHAPE_TYPE SHAPE_BASE::m_type
protectedinherited

< type of our shape

Definition at line 110 of file shape.h.

Referenced by SHAPE::IsNull(), and SHAPE_BASE::Type().

◆ MIN_PRECISION_IU

const int SHAPE::MIN_PRECISION_IU = 4
staticinherited

This is the minimum precision for all the points in a shape.

Definition at line 122 of file shape.h.

Referenced by BOOST_AUTO_TEST_CASE(), DIRECTION_45::BuildInitialTrace(), CompareLength(), CIRCLE::Contains(), EDIT_TOOL::FilletTracks(), and CIRCLE::IntersectLine().


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