KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pcb_point_editor.cpp File Reference
#include <functional>
#include <memory>
#include <advanced_config.h>
#include <kiplatform/ui.h>
#include <view/view_controls.h>
#include <gal/graphics_abstraction_layer.h>
#include <geometry/corner_operations.h>
#include <geometry/geometry_utils.h>
#include <geometry/seg.h>
#include <geometry/vector_utils.h>
#include <confirm.h>
#include <tool/tool_manager.h>
#include <tool/point_editor_behavior.h>
#include <tool/selection_conditions.h>
#include <tools/pcb_actions.h>
#include <tools/pcb_selection_tool.h>
#include <tools/pcb_point_editor.h>
#include <tools/pcb_grid_helper.h>
#include <tools/generator_tool.h>
#include <dialogs/dialog_unit_entry.h>
#include <board_commit.h>
#include <pcb_edit_frame.h>
#include <pcb_reference_image.h>
#include <pcb_generator.h>
#include <pcb_dimension.h>
#include <pcb_textbox.h>
#include <pcb_tablecell.h>
#include <pcb_table.h>
#include <pad.h>
#include <zone.h>
#include <footprint.h>
#include <footprint_editor_settings.h>
#include <connectivity/connectivity_data.h>
#include <progress_reporter.h>

Go to the source code of this file.

Classes

class  RECTANGLE_POINT_EDIT_BEHAVIOR
 
class  ARC_POINT_EDIT_BEHAVIOR
 
class  ZONE_POINT_EDIT_BEHAVIOR
 
class  REFERENCE_IMAGE_POINT_EDIT_BEHAVIOR
 
class  PCB_TABLECELL_POINT_EDIT_BEHAVIOR
 
class  PAD_POINT_EDIT_BEHAVIOR
 
class  GENERATOR_POINT_EDIT_BEHAVIOR
 Point editor behavior for the PCB_GENERATOR class. More...
 
class  DIM_ALIGNED_TEXT_UPDATER
 Class to help update the text position of a dimension when the crossbar changes. More...
 
class  ALIGNED_DIMENSION_POINT_EDIT_BEHAVIOR
 This covers both aligned and the orthogonal sub-type. More...
 
class  DIM_CENTER_POINT_EDIT_BEHAVIOR
 
class  DIM_RADIAL_POINT_EDIT_BEHAVIOR
 
class  DIM_LEADER_POINT_EDIT_BEHAVIOR
 
class  TEXTBOX_POINT_EDIT_BEHAVIOR
 A textbox is edited as a rectnagle when it is orthogonally aligned. More...
 

Enumerations

enum  RECT_POINTS {
  RECT_TOP_LEFT , RECT_TOP_RIGHT , RECT_BOT_RIGHT , RECT_BOT_LEFT ,
  RECT_CENTER , RECT_MAX_POINTS
}
 
enum  RECT_LINES { RECT_TOP , RECT_RIGHT , RECT_BOT , RECT_LEFT }
 
enum  DIMENSION_POINTS {
  DIM_START , DIM_END , DIM_TEXT , DIM_CROSSBARSTART ,
  DIM_CROSSBAREND , DIM_KNEE = DIM_CROSSBARSTART , DIM_ALIGNED_MAX = DIM_CROSSBAREND + 1 , DIM_CENTER_MAX = DIM_END + 1 ,
  DIM_RADIAL_MAX = DIM_KNEE + 1 , DIM_LEADER_MAX = DIM_TEXT + 1
}
 
enum  TEXTBOX_POINT_COUNT { WHEN_RECTANGLE = RECT_MAX_POINTS , WHEN_POLYGON = 0 }
 

Functions

static bool canAddCorner (const EDA_ITEM &aItem)
 Condition to check if a point editor can add a corner to the given item.
 
static bool canChamferCorner (const EDA_ITEM &aItem)
 Condition to check if a point editor can add a chamfer to a corner of the given item.
 
static std::pair< bool, SHAPE_POLY_SET::VERTEX_INDEXfindVertex (SHAPE_POLY_SET &aPolySet, const EDIT_POINT &aPoint)
 

Enumeration Type Documentation

◆ DIMENSION_POINTS

Enumerator
DIM_START 
DIM_END 
DIM_TEXT 
DIM_CROSSBARSTART 
DIM_CROSSBAREND 
DIM_KNEE 
DIM_ALIGNED_MAX 
DIM_CENTER_MAX 
DIM_RADIAL_MAX 
DIM_LEADER_MAX 

Definition at line 84 of file pcb_point_editor.cpp.

◆ RECT_LINES

enum RECT_LINES
Enumerator
RECT_TOP 
RECT_RIGHT 
RECT_BOT 
RECT_LEFT 

Definition at line 78 of file pcb_point_editor.cpp.

◆ RECT_POINTS

Enumerator
RECT_TOP_LEFT 
RECT_TOP_RIGHT 
RECT_BOT_RIGHT 
RECT_BOT_LEFT 
RECT_CENTER 
RECT_MAX_POINTS 

Definition at line 66 of file pcb_point_editor.cpp.

◆ TEXTBOX_POINT_COUNT

Enumerator
WHEN_RECTANGLE 
WHEN_POLYGON 

Definition at line 101 of file pcb_point_editor.cpp.

Function Documentation

◆ canAddCorner()

static bool canAddCorner ( const EDA_ITEM aItem)
static

Condition to check if a point editor can add a corner to the given item.

Definition at line 1899 of file pcb_point_editor.cpp.

References ARC, EDA_SHAPE::GetShape(), PCB_SHAPE_T, PCB_ZONE_T, POLY, SEGMENT, and EDA_ITEM::Type().

Referenced by PCB_POINT_EDITOR::addCorner(), and PCB_POINT_EDITOR::Init().

◆ canChamferCorner()

static bool canChamferCorner ( const EDA_ITEM aItem)
static

Condition to check if a point editor can add a chamfer to a corner of the given item.

Definition at line 1921 of file pcb_point_editor.cpp.

References EDA_SHAPE::GetShape(), PCB_SHAPE_T, PCB_ZONE_T, POLY, and EDA_ITEM::Type().

Referenced by PCB_POINT_EDITOR::Init().

◆ findVertex()