Roberto Fernandez Bautista
99442350a4
CADSTAR PCB: Fix loading of arc tracks following recent PCB_ARC changes
We no longer have any knowledge of the original start/end of the arc,
since SetArcAngleAndEnd swaps the start and end to ensure the arc is
always clockwise at the end.
Adds a method EDA_SHAPE::EndsSwapped() to notify whether the start/end
point of the shape were swapped.
4 years ago
Jeff Young
f9861b4a6c
Finish arc rework and push out to file formats.
4 years ago
Jeff Young
b52529521e
Replace individual LIB_* shapes with LIB_SHAPE (based on EDA_SHAPE).
Also moves to more capable FILL_T model that can be shared.
4 years ago
Jeff Young
9b9e379aa0
Overhaul arc internal model to not over-specify information.
4 years ago
Jeff Young
8b08c9e53f
Shorter names before things get out of hand.
Also, remove comments indicating CURVE is a Bezier. Just call it a
BEZIER.
4 years ago
Jeff Young
a41944020d
Push most of PCB_SHAPE impl down in to EDA_SHAPE.
4 years ago
jean-pierre charras
3316f3998a
Rename BuildPolyPointsList() to DupPolyPointsList() and optimize code
to avoid multiple useless copies of the list of polygon corners in code.
4 years ago
jean-pierre charras
49e1b5785f
PCB_SHAPE::GetFocusPosition(): returns a point on the outline instead of center.
This function is used in DRC to locate a graphic shape. For not filled shapes,
this point must be on the shape outline, not on the center of the shape (the center
shows nothing)
Fixes #8832
https://gitlab.com/kicad/code/kicad/issues/8832
4 years ago
Jeff Young
0fb864d596
Pull some name changes back from 7.0 to ease merging.
4 years ago
Wayne Stambaugh
cf00319c85
More NULL expunging.
4 years ago
Jeff Young
e61822c9e0
Naming conventions and a bug fix on arc points.
4 years ago
Wayne Stambaugh
2a6c7a7c0f
Pcbnew header housekeeping round 1.
5 years ago
Marek Roszko
eeb405c196
Cleanup some more excess math/util includes
5 years ago
Marek Roszko
21fde9b629
enum class PCB_SHAPE_TYPE_T
5 years ago
Jon Evans
18037e2f65
Rework bitmap system to load from archived PNGs
Bitmaps are now identified by an enum class instead of by pointers.
Bitmap loading and caching is now handled by a class in common, and
we no longer compile most bitmaps into the binary, so there is no
longer a bitmaps static library.
Instead, bitmaps are archived to a .tar.gz file which is installed
in ${KICAD_DATA}/resources/images.tar.gz
The source PNGs are checked in to Git as the original CPP files were,
so that people can build without the required dependencies to convert
SVGs to PNGs.
Initial support is also added for dark theme icons, although this
is not yet exposed in the GUI.
Stubs are present for multi-resolution image resources, but this is
not fully-baked yet and could use some refinement.
5 years ago
jean-pierre charras
34d7c3e31f
fp shape, ARC: fix incorrect arc end position after flipping/mirroring.
Add also comments in FP_SHAPE::SetAngle() to avoid a similar issue.
5 years ago
Jeff Young
0ded846130
Go back to previous arc midpoint editing routine.
It avoids erratic behaviour near the chord or end-points.
Fixes https://gitlab.com/kicad/code/kicad/issues/7135
5 years ago
Seth Hillbrand
b8dfcb34c4
Revert "Use less-sophisticated arc editing math."
This reverts commit 3b424d3868 . And fixes
issue with rouding causing arc errors
5 years ago
Jeff Young
3b424d3868
Use less-sophisticated arc editing math.
While it doesn't do the tangent retention that the old version did,
this one I can at least make work.
Fixes https://gitlab.com/kicad/code/kicad/issues/7135
5 years ago
Jeff Young
b227d2b910
More component -> symbol.
5 years ago
Jeff Young
3f1a58bd06
Replace "module" with "footprint" in PCB sexpr.
5 years ago
jean-pierre charras
9aa6e40b79
Eeschema, fields_grid_table.cpp: fix a crash when the eeschema settings are not available.
It happens if the svhematic is not open when opening the symbol editor.
Fix also a compil warning.
Fixes #6384
https://gitlab.com/kicad/code/kicad/issues/6384
5 years ago
Jeff Young
e97faa6afd
No need for LAST if the compiler still barks anyway.
5 years ago
Jeff Young
7bd31d5237
Naming conventions.
5 years ago
Jeff Young
8bae52d1c3
Correct naming conventions.
5 years ago
Jeff Young
74ad1562d9
Make FP_SHAPE GetEffectiveShape() relative to board, not footprint.
5 years ago
jean-pierre charras
c58b3fe8a4
Fix a compil issue.
5 years ago
Jeff Young
ec020dd19f
First-class support for filled shapes.
5 years ago
Jeff Young
86b6afd14b
More cleanup of MODULE to see if it fixes SWIG error.
5 years ago
Jeff Young
47e86d76fb
Cleanup prior to adding filled flag.
5 years ago
Jeff Young
bdbb68f813
MODULE -> FOOTPRINT.
5 years ago
Jeff Young
522d64968e
Yet more module -> footprint.
5 years ago
Jeff Young
7c60c2e404
Module -> footprint.
5 years ago
Marek Roszko
1984581c46
Remove common.h from more headers
5 years ago
Jeff Young
5ac17288a9
Work around missing copy constructor for PCB_SHAPE.
Also introduces performance enhancements so that single closed shapes
for board edges don't eliminate the effectiveness of the RTree.
Fixes https://gitlab.com/kicad/code/kicad/issues/5990
5 years ago
Jeff Young
1703729269
Require explicit decl of maxError and errorLocations.
This should reduce both performance issues and clearance issues.
5 years ago
Jeff Young
2f49db49bf
Fix fly-off arc handles and move Arc Properties to start/end/angle.
Fixes https://gitlab.com/kicad/code/kicad/issues/5791
5 years ago
Jeff Young
37906511f5
Class renaming.
DRAWSEGMENT -> PCB_SHAPE
EDGE_MODULE -> FP_SHAPE
TEXTE_PCB -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
5 years ago
Jeff Young
7a4900b8dc
PCB_LINE_T -> PCB_SHAPE_T and PCB_MODULE_EDGE_T -> PCB_FP_SHAPE_T
Also updated footprint text and zone types for consistencey.
5 years ago
qu1ck
636285311e
Make DRAWSEGMENT::GetRectCorners return vector
... instead of modifying the argument.
This will make the method usable in python API and will not incur
permormance penalty because named return value optimization (NRVO)
is a thing since C++11.
But even if copy is not elided vector is moved instead of copied.
https://en.cppreference.com/w/cpp/language/copy_elision
5 years ago
Jeff Young
6c74658a98
Finish arc implementation of m_ThirdPoint for EDGE_MODULEs.
Fixes https://gitlab.com/kicad/code/kicad/issues/5191
5 years ago
Jeff Young
393bb0fd83
Fix assert where geometry routine wasn't ready to handle layers.
This introduces layer handling to a lot of the geometry routines.
Many of them don't do much with it now, but it does help multi-layer
zones and will help when padstacks are implemented.
5 years ago
Fabien Corona
133d082cc5
Pcbnew fix arc edition
5 years ago
Tomasz Wlostowski
89a953e039
Migrated GetEffectiveShape(s) to SHAPE_COMPOUND
5 years ago
Tomasz Wlostowski
832a8c5bf7
pcbnew: implement SHAPE_COMPOUND-based GetEffectiveShape()
5 years ago
Seth Hillbrand
0a5f11fb37
Keep item ordering as much as possible
The ordering goes first by type and then by uuid. In the case of
DRAWSEGMENT and EDGE_MODULE, we also sort by shape type before UUID.
Fixes https://gitlab.com/kicad/code/kicad/issues/4068
5 years ago
Tomasz Wlostowski
8ffa86a63f
get it to compile after rebase
6 years ago
Maciej Suminski
a289056a9e
Properties meta-data for pcbnew classes
6 years ago
Maciej Suminski
89698a727b
Removed const modifier for returned non-reference types
6 years ago
Jeff Young
441dfa30f0
Return individual custom pad shapes instead of a SHAPE_POLY_SET.
Also implements an optional pointer to return the actual distance
from all the SHAPE collision routines.
Fixes https://gitlab.com/kicad/code/kicad/issues/4774
5 years ago