KiCad PCB EDA Suite
Loading...
Searching...
No Matches
constraint_copy.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19
20#ifndef CONSTRAINT_COPY_H
21#define CONSTRAINT_COPY_H
22
23#include <map>
24#include <set>
25#include <vector>
26
27#include <kiid.h>
28#include <pcb_item_containers.h>
29
30class PCB_SELECTION;
31class PCB_CONSTRAINT;
32
33
41
42
45std::set<KIID> CollectConstraintScopeIds( const PCB_SELECTION& aSelection );
46
47
50bool ConstraintFullySelected( const PCB_CONSTRAINT* aConstraint, const std::set<KIID>& aScopeIds );
51
52
60std::vector<PCB_CONSTRAINT*> CloneFullySelectedConstraints( const CONSTRAINTS& aSource,
61 const std::map<KIID, KIID>& aIdMap );
62
63#endif // CONSTRAINT_COPY_H
A geometric constraint between board items (issue #2329).
std::set< KIID > CollectConstraintScopeIds(const PCB_SELECTION &aSelection)
Shared logic deciding which constraints follow items through copy paste or duplicate.
std::vector< PCB_CONSTRAINT * > CloneFullySelectedConstraints(const CONSTRAINTS &aSource, const std::map< KIID, KIID > &aIdMap)
Clone the constraints in aSource that a duplicate should carry.
bool ConstraintFullySelected(const PCB_CONSTRAINT *aConstraint, const std::set< KIID > &aScopeIds)
True when aConstraint has members and every one of them is present in aScopeIds, so the whole relatio...
std::deque< PCB_CONSTRAINT * > CONSTRAINTS