|
KiCad PCB EDA Suite
|
Public Member Functions | |
| PCB_TABLECELL_POINT_EDIT_BEHAVIOR (PCB_TABLECELL &aCell) | |
| void | MakePoints (EDIT_POINTS &aPoints) override |
| Construct the initial set of edit points for the item and append to the given list. | |
| bool | UpdatePoints (EDIT_POINTS &aPoints) override |
| Update the list of the edit points for the item. | |
| void | UpdateItem (const EDIT_POINT &aEditedPoint, EDIT_POINTS &aPoints, COMMIT &aCommit, std::vector< EDA_ITEM * > &aUpdatedItems) override |
| Update the item with the new positions of the edit points. | |
| virtual void | FinalizeItem (EDIT_POINTS &aPoints, COMMIT &aCommit) |
| Finalize the edit operation. | |
| virtual OPT_VECTOR2I | Get45DegreeConstrainer (const EDIT_POINT &aEditedPoint, EDIT_POINTS &aPoints) const |
| Get the 45-degree constrainer for the item, when the given point is moved. | |
Protected Types | |
| enum | TABLECELL_POINTS { COL_WIDTH , ROW_HEIGHT , TABLECELL_MAX_POINTS } |
Static Protected Member Functions | |
| static bool | isModified (const EDIT_POINT &aEditedPoint, const EDIT_POINT &aPoint) |
| Checks if two points are the same instance - which means the point is being edited. | |
Private Member Functions | |
| VECTOR2I | edgeMidpoint (TABLECELL_POINTS aPoint) const |
| VECTOR2I | unturned (const VECTOR2I &aPoint) const |
Private Attributes | |
| PCB_TABLECELL & | m_cell |
Definition at line 1034 of file pcb_point_editor.cpp.
|
protectedinherited |
| Enumerator | |
|---|---|
| COL_WIDTH | |
| ROW_HEIGHT | |
| TABLECELL_MAX_POINTS | |
Definition at line 418 of file point_editor_behavior.h.
|
inline |
Definition at line 1037 of file pcb_point_editor.cpp.
References EDA_TABLECELL_POINT_EDIT_BEHAVIOR::EDA_TABLECELL_POINT_EDIT_BEHAVIOR(), and m_cell.
|
inlineprivate |
Definition at line 1096 of file pcb_point_editor.cpp.
References EDA_TABLECELL_POINT_EDIT_BEHAVIOR::COL_WIDTH, and m_cell.
Referenced by MakePoints(), and UpdatePoints().
|
inlinevirtualinherited |
Finalize the edit operation.
(optional)
This is called once, after the user has finished editing a point (e.g. released the mouse button).
| aPoints | The final positions of the edit points. |
| aCommit | The commit object to use to modify the item. |
Reimplemented in EDA_POLYGON_POINT_EDIT_BEHAVIOR, and POLYGON_POINT_EDIT_BEHAVIOR.
Definition at line 79 of file point_editor_behavior.h.
|
inlinevirtualinherited |
Get the 45-degree constrainer for the item, when the given point is moved.
Return std::nullopt if not, and the caller can decide.
If you want to actively disable constraining, return the aEditedPoint position.
Reimplemented in ALIGNED_DIMENSION_POINT_EDIT_BEHAVIOR, DIM_CENTER_POINT_EDIT_BEHAVIOR, DIM_RADIAL_POINT_EDIT_BEHAVIOR, EDA_ARC_POINT_EDIT_BEHAVIOR, EDA_CIRCLE_POINT_EDIT_BEHAVIOR, and EDA_SEGMENT_POINT_EDIT_BEHAVIOR.
Definition at line 106 of file point_editor_behavior.h.
|
inlinestaticprotectedinherited |
Checks if two points are the same instance - which means the point is being edited.
Definition at line 117 of file point_editor_behavior.h.
Referenced by ALIGNED_DIMENSION_POINT_EDIT_BEHAVIOR::Get45DegreeConstrainer(), DIM_CENTER_POINT_EDIT_BEHAVIOR::Get45DegreeConstrainer(), DIM_RADIAL_POINT_EDIT_BEHAVIOR::Get45DegreeConstrainer(), RECTANGLE_POINT_EDIT_BEHAVIOR::PinEditedCorner(), ALIGNED_DIMENSION_POINT_EDIT_BEHAVIOR::updateAlignedDimension(), BITMAP_POINT_EDIT_BEHAVIOR::UpdateItem(), DIM_CENTER_POINT_EDIT_BEHAVIOR::UpdateItem(), DIM_LEADER_POINT_EDIT_BEHAVIOR::UpdateItem(), DIM_RADIAL_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_ARC_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_BEZIER_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_ELLIPSE_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_SEGMENT_POINT_EDIT_BEHAVIOR::UpdateItem(), GRID_POINT_EDIT_BEHAVIOR::UpdateItem(), PAD_POINT_EDIT_BEHAVIOR::UpdateItem(), PCB_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), RECTANGLE_POINT_EDIT_BEHAVIOR::UpdateItem(), REFERENCE_IMAGE_POINT_EDIT_BEHAVIOR::UpdateItem(), SCH_TABLECELL_POINT_EDIT_BEHAVIOR::UpdateItem(), SHAPE_GROUP_POINT_EDIT_BEHAVIOR::UpdateItem(), SHEET_POINT_EDIT_BEHAVIOR::UpdateItem(), ALIGNED_DIMENSION_POINT_EDIT_BEHAVIOR::updateOrthogonalDimension(), and POLYGON_POINT_EDIT_BEHAVIOR::UpdateOutlineFromPoints().
|
inlineoverridevirtual |
Construct the initial set of edit points for the item and append to the given list.
| aPoints | The list of edit points to fill. |
Reimplemented from EDA_TABLECELL_POINT_EDIT_BEHAVIOR.
Definition at line 1042 of file pcb_point_editor.cpp.
References EDIT_POINTS::AddPoint(), EDA_TABLECELL_POINT_EDIT_BEHAVIOR::COL_WIDTH, edgeMidpoint(), and EDA_TABLECELL_POINT_EDIT_BEHAVIOR::ROW_HEIGHT.
Definition at line 1104 of file pcb_point_editor.cpp.
References BOX2< Vec >::GetCenter(), m_cell, BOX2< Vec >::Merge(), and RotatePoint().
Referenced by UpdateItem().
|
inlineoverridevirtual |
Update the item with the new positions of the edit points.
This method should all commit and add to the update list anything that is NOT the parent item of the EDIT_POINTs. For example, connected lines, parent tables, etc. The item itself is already handled (most behaviors don't need more than that).
| aEditedPoint | The point that was dragged. You can use this to check by address which point to update. |
| aPoints | The new positions of the edit points. |
| aCommit | The commit object to use to modify the item. |
| aUpdatedItems | The list of items that were updated by the edit (not only the item that was being edited, but also any other items that were affected, e.g. by being conneted to the edited item). |
Implements POINT_EDIT_BEHAVIOR.
Definition at line 1058 of file pcb_point_editor.cpp.
References CHECK_POINT_COUNT, EDA_TABLECELL_POINT_EDIT_BEHAVIOR::COL_WIDTH, EDIT_POINT::GetPosition(), POINT_EDIT_BEHAVIOR::isModified(), m_cell, COMMIT::Modify(), EDIT_POINTS::Point(), EDA_TABLECELL_POINT_EDIT_BEHAVIOR::ROW_HEIGHT, table, EDA_TABLECELL_POINT_EDIT_BEHAVIOR::TABLECELL_MAX_POINTS, unturned(), and VECTOR2< T >::x.
|
inlineoverridevirtual |
Update the list of the edit points for the item.
Be very careful not to overrun the list of points - this class knows how big they are because it made them in the first place.
If item has changed such that that number of points needs to change, this method has to handle that (probably by clearing the list and refilling it).
If the behavior itself must change (for instance, a rectangle is non-cardinallly rotated to a polygon), the method should return false.
| aPoints | The list of edit points to update. |
Reimplemented from EDA_TABLECELL_POINT_EDIT_BEHAVIOR.
Definition at line 1048 of file pcb_point_editor.cpp.
References EDA_TABLECELL_POINT_EDIT_BEHAVIOR::COL_WIDTH, edgeMidpoint(), EDIT_POINTS::Point(), EDIT_POINTS::PointsSize(), EDA_TABLECELL_POINT_EDIT_BEHAVIOR::ROW_HEIGHT, EDIT_POINT::SetPosition(), and EDA_TABLECELL_POINT_EDIT_BEHAVIOR::TABLECELL_MAX_POINTS.
|
private |
Definition at line 1116 of file pcb_point_editor.cpp.
Referenced by edgeMidpoint(), PCB_TABLECELL_POINT_EDIT_BEHAVIOR(), unturned(), and UpdateItem().