KiCad PCB EDA Suite
Loading...
Searching...
No Matches
CU_SHAPE_ARC Class Reference

Creepage: a conductive arc. More...

#include <drc_creepage_utils.h>

Inheritance diagram for CU_SHAPE_ARC:
CU_SHAPE_CIRCLE CU_SHAPE CREEP_SHAPE

Public Types

enum class  TYPE { UNDEFINED = 0 , POINT , CIRCLE , ARC }
 

Public Member Functions

 CU_SHAPE_ARC (VECTOR2I aPos, double aRadius, EDA_ANGLE aStartAngle, EDA_ANGLE aEndAngle, VECTOR2D aStartPoint, VECTOR2D aEndPoint)
 
std::vector< PATH_CONNECTIONPaths (const BE_SHAPE_POINT &aS2, double aMaxWeight, double aMaxSquaredWeight) const override
 
std::vector< PATH_CONNECTIONPaths (const BE_SHAPE_CIRCLE &aS2, double aMaxWeight, double aMaxSquaredWeight) const override
 
std::vector< PATH_CONNECTIONPaths (const BE_SHAPE_ARC &aS2, double aMaxWeight, double aMaxSquaredWeight) const override
 
std::vector< PATH_CONNECTIONPaths (const CU_SHAPE_SEGMENT &aS2, double aMaxWeight, double aMaxSquaredWeight) const override
 
std::vector< PATH_CONNECTIONPaths (const CU_SHAPE_CIRCLE &aS2, double aMaxWeight, double aMaxSquaredWeight) const override
 
std::vector< PATH_CONNECTIONPaths (const CU_SHAPE_ARC &aS2, double aMaxWeight, double aMaxSquaredWeight) const override
 
EDA_ANGLE GetStartAngle () const override
 
EDA_ANGLE GetEndAngle () const override
 
int GetRadius () const override
 
VECTOR2I GetStartPoint () const override
 
VECTOR2I GetEndPoint () const override
 
EDA_ANGLE AngleBetweenStartAndEnd (const VECTOR2I aPoint) const
 
double GetWidth () const
 
void SetWidth (double aW)
 
VECTOR2I GetPos () const
 
std::vector< PATH_CONNECTIONPaths (const CREEP_SHAPE &aS2, double aMaxWeight, double aMaxSquaredWeight) const
 
CREEP_SHAPE::TYPE GetType () const
 
const BOARD_ITEMGetParent () const
 
void SetParent (BOARD_ITEM *aParent)
 
virtual void ConnectChildren (std::shared_ptr< GraphNode > &a1, std::shared_ptr< GraphNode > &a2, CreepageGraph &aG) const
 
std::vector< PATH_CONNECTIONReversePaths (const std::vector< PATH_CONNECTION > &aV) const
 
bool IsConductive ()
 

Protected Attributes

bool m_conductive = false
 
BOARD_ITEMm_parent = nullptr
 
CREEP_SHAPE::TYPE m_type = CREEP_SHAPE::TYPE::UNDEFINED
 

Private Attributes

int m_width = 0
 
VECTOR2I m_pos = VECTOR2I( 0, 0 )
 
double m_radius = 1
 
EDA_ANGLE m_startAngle = EDA_ANGLE( 0 )
 
EDA_ANGLE m_endAngle = EDA_ANGLE( 180 )
 
VECTOR2I m_startPoint = VECTOR2I( 1, 0 )
 
VECTOR2I m_endPoint = VECTOR2I( -1, 0 )
 

Detailed Description

Creepage: a conductive arc.

Definition at line 358 of file drc_creepage_utils.h.

Member Enumeration Documentation

◆ TYPE

enum class CREEP_SHAPE::TYPE
stronginherited
Enumerator
UNDEFINED 
POINT 
CIRCLE 
ARC 

Definition at line 164 of file drc_creepage_utils.h.

Constructor & Destructor Documentation

◆ CU_SHAPE_ARC()

CU_SHAPE_ARC::CU_SHAPE_ARC ( VECTOR2I  aPos,
double  aRadius,
EDA_ANGLE  aStartAngle,
EDA_ANGLE  aEndAngle,
VECTOR2D  aStartPoint,
VECTOR2D  aEndPoint 
)
inline

Member Function Documentation

◆ AngleBetweenStartAndEnd()

EDA_ANGLE CU_SHAPE_ARC::AngleBetweenStartAndEnd ( const VECTOR2I  aPoint) const
inline

◆ ConnectChildren()

void CREEP_SHAPE::ConnectChildren ( std::shared_ptr< GraphNode > &  a1,
std::shared_ptr< GraphNode > &  a2,
CreepageGraph aG 
) const
virtualinherited

Reimplemented in BE_SHAPE_POINT, BE_SHAPE_CIRCLE, and BE_SHAPE_ARC.

Definition at line 704 of file drc_creepage_utils.cpp.

◆ GetEndAngle()

EDA_ANGLE CU_SHAPE_ARC::GetEndAngle ( ) const
inlineoverridevirtual

Reimplemented from CREEP_SHAPE.

Definition at line 394 of file drc_creepage_utils.h.

References m_endAngle.

Referenced by AngleBetweenStartAndEnd(), Paths(), CU_SHAPE_SEGMENT::Paths(), and CU_SHAPE_CIRCLE::Paths().

◆ GetEndPoint()

VECTOR2I CU_SHAPE_ARC::GetEndPoint ( ) const
inlineoverridevirtual

Reimplemented from CREEP_SHAPE.

Definition at line 399 of file drc_creepage_utils.h.

References m_endPoint.

Referenced by Paths(), CU_SHAPE_SEGMENT::Paths(), and CU_SHAPE_CIRCLE::Paths().

◆ GetParent()

const BOARD_ITEM * CREEP_SHAPE::GetParent ( ) const
inlineinherited

Definition at line 183 of file drc_creepage_utils.h.

References CREEP_SHAPE::m_parent.

◆ GetPos()

VECTOR2I CU_SHAPE_CIRCLE::GetPos ( ) const
inlineinherited

Definition at line 329 of file drc_creepage_utils.h.

References CU_SHAPE_CIRCLE::m_pos.

Referenced by Paths(), CU_SHAPE_CIRCLE::Paths(), and CU_SHAPE_SEGMENT::Paths().

◆ GetRadius()

int CU_SHAPE_ARC::GetRadius ( ) const
inlineoverridevirtual

Reimplemented from CU_SHAPE_CIRCLE.

Definition at line 395 of file drc_creepage_utils.h.

References m_radius.

Referenced by Paths(), CU_SHAPE_SEGMENT::Paths(), and CU_SHAPE_CIRCLE::Paths().

◆ GetStartAngle()

EDA_ANGLE CU_SHAPE_ARC::GetStartAngle ( ) const
inlineoverridevirtual

Reimplemented from CREEP_SHAPE.

Definition at line 393 of file drc_creepage_utils.h.

References m_startAngle.

Referenced by AngleBetweenStartAndEnd(), and Paths().

◆ GetStartPoint()

VECTOR2I CU_SHAPE_ARC::GetStartPoint ( ) const
inlineoverridevirtual

Reimplemented from CREEP_SHAPE.

Definition at line 398 of file drc_creepage_utils.h.

References m_startPoint.

Referenced by Paths(), CU_SHAPE_SEGMENT::Paths(), and CU_SHAPE_CIRCLE::Paths().

◆ GetType()

CREEP_SHAPE::TYPE CREEP_SHAPE::GetType ( ) const
inlineinherited

Definition at line 182 of file drc_creepage_utils.h.

References CREEP_SHAPE::m_type.

Referenced by areEquivalent(), and compareShapes().

◆ GetWidth()

double CU_SHAPE_ARC::GetWidth ( ) const
inline

Definition at line 410 of file drc_creepage_utils.h.

References m_width.

Referenced by Paths(), CU_SHAPE_SEGMENT::Paths(), and CU_SHAPE_CIRCLE::Paths().

◆ IsConductive()

bool CREEP_SHAPE::IsConductive ( )
inlineinherited

Definition at line 247 of file drc_creepage_utils.h.

References CREEP_SHAPE::m_conductive.

◆ Paths() [1/7]

std::vector< PATH_CONNECTION > CU_SHAPE_ARC::Paths ( const BE_SHAPE_ARC aS2,
double  aMaxWeight,
double  aMaxSquaredWeight 
) const
overridevirtual

◆ Paths() [2/7]

std::vector< PATH_CONNECTION > CU_SHAPE_ARC::Paths ( const BE_SHAPE_CIRCLE aS2,
double  aMaxWeight,
double  aMaxSquaredWeight 
) const
overridevirtual

◆ Paths() [3/7]

std::vector< PATH_CONNECTION > CU_SHAPE_ARC::Paths ( const BE_SHAPE_POINT aS2,
double  aMaxWeight,
double  aMaxSquaredWeight 
) const
overridevirtual

◆ Paths() [4/7]

std::vector< PATH_CONNECTION > CREEP_SHAPE::Paths ( const CREEP_SHAPE aS2,
double  aMaxWeight,
double  aMaxSquaredWeight 
) const
inlineinherited

Definition at line 203 of file drc_creepage_utils.h.

◆ Paths() [5/7]

std::vector< PATH_CONNECTION > CU_SHAPE_ARC::Paths ( const CU_SHAPE_ARC aS2,
double  aMaxWeight,
double  aMaxSquaredWeight 
) const
overridevirtual

◆ Paths() [6/7]

std::vector< PATH_CONNECTION > CU_SHAPE_ARC::Paths ( const CU_SHAPE_CIRCLE aS2,
double  aMaxWeight,
double  aMaxSquaredWeight 
) const
inlineoverridevirtual

Reimplemented from CU_SHAPE_CIRCLE.

Definition at line 384 of file drc_creepage_utils.h.

References CU_SHAPE_CIRCLE::Paths(), and CREEP_SHAPE::ReversePaths().

◆ Paths() [7/7]

std::vector< PATH_CONNECTION > CU_SHAPE_ARC::Paths ( const CU_SHAPE_SEGMENT aS2,
double  aMaxWeight,
double  aMaxSquaredWeight 
) const
inlineoverridevirtual

Reimplemented from CU_SHAPE_CIRCLE.

Definition at line 379 of file drc_creepage_utils.h.

References CU_SHAPE_SEGMENT::Paths(), and CREEP_SHAPE::ReversePaths().

◆ ReversePaths()

std::vector< PATH_CONNECTION > CREEP_SHAPE::ReversePaths ( const std::vector< PATH_CONNECTION > &  aV) const
inlineinherited

◆ SetParent()

void CREEP_SHAPE::SetParent ( BOARD_ITEM aParent)
inlineinherited

◆ SetWidth()

void CU_SHAPE_ARC::SetWidth ( double  aW)
inline

Definition at line 411 of file drc_creepage_utils.h.

References m_width.

Referenced by CreepageGraph::Addshape().

Member Data Documentation

◆ m_conductive

bool CREEP_SHAPE::m_conductive = false
protectedinherited

◆ m_endAngle

EDA_ANGLE CU_SHAPE_ARC::m_endAngle = EDA_ANGLE( 180 )
private

Definition at line 418 of file drc_creepage_utils.h.

Referenced by CU_SHAPE_ARC(), and GetEndAngle().

◆ m_endPoint

VECTOR2I CU_SHAPE_ARC::m_endPoint = VECTOR2I( -1, 0 )
private

Definition at line 420 of file drc_creepage_utils.h.

Referenced by CU_SHAPE_ARC(), and GetEndPoint().

◆ m_parent

BOARD_ITEM* CREEP_SHAPE::m_parent = nullptr
protectedinherited

◆ m_pos

VECTOR2I CU_SHAPE_ARC::m_pos = VECTOR2I( 0, 0 )
private

Definition at line 415 of file drc_creepage_utils.h.

Referenced by AngleBetweenStartAndEnd(), and CU_SHAPE_ARC().

◆ m_radius

double CU_SHAPE_ARC::m_radius = 1
private

Definition at line 416 of file drc_creepage_utils.h.

Referenced by CU_SHAPE_ARC(), and GetRadius().

◆ m_startAngle

EDA_ANGLE CU_SHAPE_ARC::m_startAngle = EDA_ANGLE( 0 )
private

Definition at line 417 of file drc_creepage_utils.h.

Referenced by CU_SHAPE_ARC(), and GetStartAngle().

◆ m_startPoint

VECTOR2I CU_SHAPE_ARC::m_startPoint = VECTOR2I( 1, 0 )
private

Definition at line 419 of file drc_creepage_utils.h.

Referenced by CU_SHAPE_ARC(), and GetStartPoint().

◆ m_type

CREEP_SHAPE::TYPE CREEP_SHAPE::m_type = CREEP_SHAPE::TYPE::UNDEFINED
protectedinherited

◆ m_width

int CU_SHAPE_ARC::m_width = 0
private

Definition at line 414 of file drc_creepage_utils.h.

Referenced by GetWidth(), and SetWidth().


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