KiCad PCB EDA Suite
citemlayercsg2d.h File Reference
#include "cobject2d.h"
#include <vector>

Go to the source code of this file.

Classes

class  CITEMLAYERCSG2D
 

Macros

#define CSGITEM_EMPTY   0
 This class is used to make constructive solig geometry for items objects on layers. More...
 
#define CSGITEM_FULL   (COBJECT2D *)((size_t)(-1))
 

Macro Definition Documentation

#define CSGITEM_EMPTY   0

This class is used to make constructive solig geometry for items objects on layers.

The operation is in the form (A - B) /\ C For almost all of the layers it translate something like: A (a via, a track, pad, polygon), B (a via hole, a THT hole, .. ), C the board (epoxy) For layers like Solder mask that are negative: A ( epoxy ), B( pads, polygons, ..), C=1

Some notes: BODY = PCB_outlines - PCB_holes - (Modules_THT_holes + VIA_THT_holes)

Plated_vias_and_holes = Tracks.Vias + Modules.PlatedHoles

Layer.cu = ( Tracks.cu + Modules_Pads.cu + Modules_Graphics.cu + Layer_zones.cu + PCB_drawings.cu - Layer_VIA_holes ) & BODY

Layer.Mask = BODY - (PCB_drawing.Mask + Modules_Graphics.Mask + Modules_Pads.Mask + Layer_zones.Mask ) Layer.Paste = (PCB_drawing.Paste + Modules_Graphics.Paste + Modules_Pads.Paste + Layer_zones.Paste) & BODY Layer.Silk = (PCB_drawing.Silk + Modules_Graphics.Silk + Modules_Pads.Silk + Layer_zones.Paste) & BODY

BODY = A - B /\ 1 Layer.cu = A - B /\ C Layer.mask = A - B /\ 1 Layers.Paste = A - 0 /\ C Layers.Silk = A - 0 /\ C

BODY = P - T /\ 1 Layer.cu = T - H /\ BODY Layer.mask = BODY - M /\ 1 Layers.Paste = P - 0 /\ BODY Layers.Silk = S - 0 /\ BODY

Definition at line 75 of file citemlayercsg2d.h.

Referenced by C3D_RENDER_RAYTRACING::insert3DPadHole(), CITEMLAYERCSG2D::IsPointInside(), C3D_RENDER_RAYTRACING::reload(), and CITEMLAYERCSG2D::~CITEMLAYERCSG2D().

#define CSGITEM_FULL   (COBJECT2D *)((size_t)(-1))