KiCad PCB EDA Suite
|
A class that mananges "construction" objects and geometry. More...
#include <construction_manager.h>
Classes | |
struct | CONSTRUCTION_ITEM |
Items to be used for the construction of "virtual" anchors, for example, when snapping to a point involving an extension of an existing line or arc. More... | |
struct | PENDING_BATCH |
Public Types | |
enum class | SOURCE { FROM_ITEMS , FROM_SNAP_LINE } |
using | CONSTRUCTION_ITEM_BATCH = std::vector< CONSTRUCTION_ITEM > |
Public Member Functions | |
CONSTRUCTION_MANAGER (CONSTRUCTION_VIEW_HANDLER &aViewHandler) | |
~CONSTRUCTION_MANAGER () | |
void | ProposeConstructionItems (std::unique_ptr< CONSTRUCTION_ITEM_BATCH > aBatch, bool aIsPersistent) |
Add a batch of construction items to the helper. | |
void | CancelProposal () |
Cancel outstanding proposals for new geometry. | |
bool | InvolvesAllGivenRealItems (const std::vector< EDA_ITEM * > &aItems) const |
Check if all 'real' (non-null = constructed) the items in the batch are in the list of items currently 'involved' in an active construction. | |
void | GetConstructionItems (std::vector< CONSTRUCTION_ITEM_BATCH > &aToExtend) const |
bool | HasActiveConstruction () const |
Private Member Functions | |
void | acceptConstructionItems (std::unique_ptr< PENDING_BATCH > aAcceptedBatchHash) |
Private Attributes | |
CONSTRUCTION_VIEW_HANDLER & | m_viewHandler |
std::optional< CONSTRUCTION_ITEM_BATCH > | m_persistentConstructionBatch |
std::deque< CONSTRUCTION_ITEM_BATCH > | m_temporaryConstructionBatches |
std::set< EDA_ITEM * > | m_involvedItems |
std::unique_ptr< ACTIVATION_HELPER< std::unique_ptr< PENDING_BATCH > > > | m_activationHelper |
std::mutex | m_batchesMutex |
A class that mananges "construction" objects and geometry.
These are things like line extensions, arc centers, etc.
Definition at line 136 of file construction_manager.h.
using CONSTRUCTION_MANAGER::CONSTRUCTION_ITEM_BATCH = std::vector<CONSTRUCTION_ITEM> |
Definition at line 164 of file construction_manager.h.
|
strong |
Enumerator | |
---|---|
FROM_ITEMS | |
FROM_SNAP_LINE |
Definition at line 142 of file construction_manager.h.
CONSTRUCTION_MANAGER::CONSTRUCTION_MANAGER | ( | CONSTRUCTION_VIEW_HANDLER & | aViewHandler | ) |
Definition at line 176 of file construction_manager.cpp.
References acceptConstructionItems(), ADVANCED_CFG::GetCfg(), and m_activationHelper.
CONSTRUCTION_MANAGER::~CONSTRUCTION_MANAGER | ( | ) |
Definition at line 191 of file construction_manager.cpp.
|
private |
Definition at line 237 of file construction_manager.cpp.
References KIGFX::CONSTRUCTION_GEOM::AddDrawable(), KIGFX::CONSTRUCTION_GEOM::ClearDrawables(), CONSTRUCTION_VIEW_HANDLER::GetViewItem(), CONSTRUCTION_MANAGER::CONSTRUCTION_ITEM::Item, m_batchesMutex, m_involvedItems, m_persistentConstructionBatch, m_temporaryConstructionBatches, m_viewHandler, and CONSTRUCTION_VIEW_HANDLER::updateView().
Referenced by CONSTRUCTION_MANAGER().
void CONSTRUCTION_MANAGER::CancelProposal | ( | ) |
Cancel outstanding proposals for new geometry.
Definition at line 231 of file construction_manager.cpp.
References m_activationHelper.
Referenced by PCB_GRID_HELPER::BestSnapAnchor().
void CONSTRUCTION_MANAGER::GetConstructionItems | ( | std::vector< CONSTRUCTION_ITEM_BATCH > & | aToExtend | ) | const |
Definition at line 346 of file construction_manager.cpp.
References m_batchesMutex, m_persistentConstructionBatch, and m_temporaryConstructionBatches.
Referenced by SNAP_MANAGER::GetConstructionItems().
bool CONSTRUCTION_MANAGER::HasActiveConstruction | ( | ) | const |
Definition at line 361 of file construction_manager.cpp.
References m_batchesMutex, m_persistentConstructionBatch, and m_temporaryConstructionBatches.
Referenced by SNAP_MANAGER::updateView().
bool CONSTRUCTION_MANAGER::InvolvesAllGivenRealItems | ( | const std::vector< EDA_ITEM * > & | aItems | ) | const |
Check if all 'real' (non-null = constructed) the items in the batch are in the list of items currently 'involved' in an active construction.
Definition at line 332 of file construction_manager.cpp.
References m_involvedItems.
Referenced by PCB_GRID_HELPER::BestSnapAnchor().
void CONSTRUCTION_MANAGER::ProposeConstructionItems | ( | std::unique_ptr< CONSTRUCTION_ITEM_BATCH > | aBatch, |
bool | aIsPersistent | ||
) |
Add a batch of construction items to the helper.
aBatch | The batch of construction items to add. |
aIsPersistent | If true, the batch is considered "persistent" and will always be shown (and it will replace any previous persistent batch). If false, the batch is temporary and may be pushed out by other batches. |
Definition at line 213 of file construction_manager.cpp.
References HashConstructionBatchSources(), and m_activationHelper.
Referenced by PCB_GRID_HELPER::AddConstructionItems().
|
private |
Definition at line 211 of file construction_manager.h.
Referenced by CancelProposal(), CONSTRUCTION_MANAGER(), and ProposeConstructionItems().
|
mutableprivate |
Definition at line 214 of file construction_manager.h.
Referenced by acceptConstructionItems(), GetConstructionItems(), and HasActiveConstruction().
|
private |
Definition at line 209 of file construction_manager.h.
Referenced by acceptConstructionItems(), and InvolvesAllGivenRealItems().
|
private |
Definition at line 203 of file construction_manager.h.
Referenced by acceptConstructionItems(), GetConstructionItems(), and HasActiveConstruction().
|
private |
Definition at line 206 of file construction_manager.h.
Referenced by acceptConstructionItems(), GetConstructionItems(), and HasActiveConstruction().
|
private |
Definition at line 198 of file construction_manager.h.
Referenced by acceptConstructionItems().