KiCad PCB EDA Suite
AARC6 Struct Reference

#include <altium_parser_pcb.h>

Public Member Functions

 AARC6 (ALTIUM_PARSER &aReader)
 

Public Attributes

bool is_locked
 
bool is_keepout
 
bool is_polygonoutline
 
ALTIUM_LAYER layer
 
uint16_t net
 
uint16_t component
 
uint16_t subpolyindex
 
wxPoint center
 
uint32_t radius
 
double startangle
 
double endangle
 
uint32_t width
 

Detailed Description

Definition at line 511 of file altium_parser_pcb.h.

Constructor & Destructor Documentation

◆ AARC6()

AARC6::AARC6 ( ALTIUM_PARSER aReader)
explicit

Definition at line 485 of file altium_parser_pcb.cpp.

486 {
487  ALTIUM_RECORD recordtype = static_cast<ALTIUM_RECORD>( aReader.Read<uint8_t>() );
488  if( recordtype != ALTIUM_RECORD::ARC )
489  {
490  THROW_IO_ERROR( "Arcs6 stream has invalid recordtype" );
491  }
492 
493  // Subrecord 1
494  aReader.ReadAndSetSubrecordLength();
495 
496  layer = static_cast<ALTIUM_LAYER>( aReader.Read<uint8_t>() );
497 
498  uint8_t flags1 = aReader.Read<uint8_t>();
499  is_locked = ( flags1 & 0x04 ) == 0;
500  is_polygonoutline = ( flags1 & 0x02 ) != 0;
501 
502  uint8_t flags2 = aReader.Read<uint8_t>();
503  is_keepout = flags2 == 2;
504 
505  net = aReader.Read<uint16_t>();
506  subpolyindex = aReader.Read<uint16_t>();
507  component = aReader.Read<uint16_t>();
508  aReader.Skip( 4 );
509  center = aReader.ReadWxPoint();
510  radius = aReader.ReadKicadUnit();
511  startangle = aReader.Read<double>();
512  endangle = aReader.Read<double>();
513  width = aReader.ReadKicadUnit();
514 
515  aReader.SkipSubrecord();
516 
517  if( aReader.HasParsingError() )
518  {
519  THROW_IO_ERROR( "Arcs6 stream was not parsed correctly" );
520  }
521 }
uint32_t width
bool is_locked
double startangle
wxPoint center
ALTIUM_RECORD
void Skip(size_t aLength)
size_t ReadAndSetSubrecordLength()
double endangle
wxPoint ReadWxPoint()
uint16_t component
int32_t ReadKicadUnit()
bool is_keepout
bool is_polygonoutline
uint16_t subpolyindex
uint32_t radius
uint16_t net
ALTIUM_LAYER layer
void SkipSubrecord()
#define THROW_IO_ERROR(msg)
Definition: ki_exception.h:38
bool HasParsingError()

References ARC, center, component, endangle, ALTIUM_PARSER::HasParsingError(), is_keepout, is_locked, is_polygonoutline, layer, net, radius, ALTIUM_PARSER::Read(), ALTIUM_PARSER::ReadAndSetSubrecordLength(), ALTIUM_PARSER::ReadKicadUnit(), ALTIUM_PARSER::ReadWxPoint(), ALTIUM_PARSER::Skip(), ALTIUM_PARSER::SkipSubrecord(), startangle, subpolyindex, THROW_IO_ERROR, and width.

Member Data Documentation

◆ center

wxPoint AARC6::center

Definition at line 522 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ component

uint16_t AARC6::component

Definition at line 519 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ endangle

double AARC6::endangle

Definition at line 525 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ is_keepout

bool AARC6::is_keepout

Definition at line 514 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ is_locked

bool AARC6::is_locked

Definition at line 513 of file altium_parser_pcb.h.

Referenced by AARC6().

◆ is_polygonoutline

bool AARC6::is_polygonoutline

Definition at line 515 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ layer

ALTIUM_LAYER AARC6::layer

Definition at line 517 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ net

uint16_t AARC6::net

Definition at line 518 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ radius

uint32_t AARC6::radius

Definition at line 523 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ startangle

double AARC6::startangle

Definition at line 524 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ subpolyindex

uint16_t AARC6::subpolyindex

Definition at line 520 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().

◆ width

uint32_t AARC6::width

Definition at line 526 of file altium_parser_pcb.h.

Referenced by AARC6(), and ALTIUM_PCB::ParseArcs6Data().


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