15 const std::shared_ptr<Document> document,
16 const std::vector<entity::CADEntity_CSPtr> entitySet,
17 std::vector<entity::CADEntity_CSPtr>& workingBuffer,
18 std::vector<entity::CADEntity_CSPtr>& removals,
19 const std::vector<Base_SPtr>) {
43 const std::shared_ptr<Document> document,
44 const std::vector<entity::CADEntity_CSPtr> entitySet,
45 std::vector<entity::CADEntity_CSPtr>& _workingBuffer,
46 std::vector<entity::CADEntity_CSPtr>& removals,
47 const std::vector<Base_SPtr> _stack) {
48 std::vector<entity::CADEntity_CSPtr>
final;
51 std::vector<entity::CADEntity_CSPtr> _start;
53 for (
auto base : _stack) {
57 if (begin !=
nullptr) {
59 _start.insert(_start.end(), entities.begin(), entities.end());
65 std::vector<entity::CADEntity_CSPtr> entitySet2(entitySet);
68 for (
auto base : _stack) {
69 entitySet2 = base->process(document, entitySet2, _workingBuffer, removals, _stack);
87 const std::shared_ptr<Document> document,
88 const std::vector<entity::CADEntity_CSPtr> entitySet,
89 std::vector<entity::CADEntity_CSPtr>&,
90 std::vector<entity::CADEntity_CSPtr>&,
91 const std::vector<Base_SPtr>) {
92 std::vector<entity::CADEntity_CSPtr> newQueue;
94 for (
auto entity : entitySet) {
96 newQueue.push_back(e);
113 const std::shared_ptr<Document> document,
114 const std::vector<entity::CADEntity_CSPtr> entitySet,
115 std::vector<entity::CADEntity_CSPtr>& workingBuffer,
116 std::vector<entity::CADEntity_CSPtr>&,
117 const std::vector<Base_SPtr>) {
118 std::vector<entity::CADEntity_CSPtr> newQueue;
120 for (
auto entity : entitySet) {
121 auto e = entity->copy(
_offset);
122 workingBuffer.push_back(entity);
123 newQueue.push_back(e);
140 const std::shared_ptr<Document> document,
141 const std::vector<entity::CADEntity_CSPtr> entitySet,
142 std::vector<entity::CADEntity_CSPtr>&,
143 std::vector<entity::CADEntity_CSPtr>&,
144 const std::vector<Base_SPtr>) {
145 std::vector<entity::CADEntity_CSPtr> newQueue;
147 for (
auto entity : entitySet) {
149 newQueue.push_back(e);
166 const std::shared_ptr<Document> document,
167 const std::vector<entity::CADEntity_CSPtr> entitySet,
168 std::vector<entity::CADEntity_CSPtr>&,
169 std::vector<entity::CADEntity_CSPtr>&,
170 const std::vector<Base_SPtr>) {
171 std::vector<entity::CADEntity_CSPtr> newQueue;
173 for (
auto entity : entitySet) {
175 newQueue.push_back(e);
192 const std::shared_ptr<Document> document,
193 const std::vector<entity::CADEntity_CSPtr> entitySet,
194 std::vector<entity::CADEntity_CSPtr>& workingBuffer,
195 std::vector<entity::CADEntity_CSPtr>&,
196 const std::vector<Base_SPtr>) {
197 std::vector<entity::CADEntity_CSPtr> newQueue(workingBuffer);
198 newQueue.insert(newQueue.end(), entitySet.begin(), entitySet.end());
199 workingBuffer.clear();
210 SelectByLayer::SelectByLayer(
const Layer_CSPtr layer) :
Base(), _layer(layer) {
213 std::vector<entity::CADEntity_CSPtr> SelectByLayer::process(
214 const std::shared_ptr<Document> document,
215 const std::vector<entity::CADEntity_CSPtr>,
216 std::vector<entity::CADEntity_CSPtr>& workingBuffer,
217 std::vector<entity::CADEntity_CSPtr>&,
218 const std::vector<Base_SPtr>) {
220 std::vector<entity::CADEntity_CSPtr> e;
222 for(
auto it = workingBuffer.begin(); it != workingBuffer.end();) {
223 if((*it)->layer() == _layer) {
225 it = workingBuffer.erase(it);
235 SelectByLayer::~SelectByLayer() {
242 Remove::Remove() :
Base() {
245 std::vector<entity::CADEntity_CSPtr> Remove::process(
246 const std::shared_ptr<Document> document,
247 const std::vector<entity::CADEntity_CSPtr> entitySet,
248 std::vector<entity::CADEntity_CSPtr>&,
249 std::vector<entity::CADEntity_CSPtr>& removals,
250 const std::vector<Base_SPtr>) {
251 removals.insert(removals.end(), entitySet.begin(), entitySet.end());
252 std::vector<entity::CADEntity_CSPtr> e;
geo::Coordinate _rotation_center
std::vector< entity::CADEntity_CSPtr > getEntities() const
Copy(const geo::Coordinate &offset)
Move(const geo::Coordinate &offset)
virtual std::vector< entity::CADEntity_CSPtr > process(const std::shared_ptr< Document > document, std::vector< entity::CADEntity_CSPtr > entities, std::vector< entity::CADEntity_CSPtr > &workingBuffer, std::vector< entity::CADEntity_CSPtr > &removals, const std::vector< Base_SPtr > operationStack)
The begin class Allows for setting up the beginning of a loop (NOT YET IMPLEMENTED) ...
virtual std::vector< entity::CADEntity_CSPtr > process(const std::shared_ptr< Document > document, std::vector< entity::CADEntity_CSPtr > entities, std::vector< entity::CADEntity_CSPtr > &workingBuffer, std::vector< entity::CADEntity_CSPtr > &removals, const std::vector< Base_SPtr > operationStack)
geo::Coordinate _scale_center
virtual std::vector< entity::CADEntity_CSPtr > process(const std::shared_ptr< Document > document, std::vector< entity::CADEntity_CSPtr > entities, std::vector< entity::CADEntity_CSPtr > &workingBuffer, std::vector< entity::CADEntity_CSPtr > &removals, const std::vector< Base_SPtr > operationStack)
Scale(const geo::Coordinate &scale_center, const geo::Coordinate &scale_factor)
virtual std::vector< entity::CADEntity_CSPtr > process(const std::shared_ptr< Document > document, std::vector< entity::CADEntity_CSPtr > entities, std::vector< entity::CADEntity_CSPtr > &workingBuffer, std::vector< entity::CADEntity_CSPtr > &removals, const std::vector< Base_SPtr > operationStack)
geo::Coordinate _scale_factor
virtual std::vector< entity::CADEntity_CSPtr > process(const std::shared_ptr< Document > document, std::vector< entity::CADEntity_CSPtr > entities, std::vector< entity::CADEntity_CSPtr > &workingBuffer, std::vector< entity::CADEntity_CSPtr > &removals, const std::vector< Base_SPtr > operationStack)
Rotate(const geo::Coordinate &rotation_center, const double rotation_angle)
virtual std::vector< entity::CADEntity_CSPtr > process(const std::shared_ptr< Document > document, std::vector< entity::CADEntity_CSPtr > entities, std::vector< entity::CADEntity_CSPtr > &workingBuffer, std::vector< entity::CADEntity_CSPtr > &removals, const std::vector< Base_SPtr > operationStack)
virtual std::vector< entity::CADEntity_CSPtr > process(const Document_SPtr document, std::vector< entity::CADEntity_CSPtr > entities, std::vector< entity::CADEntity_CSPtr > &workingBuffer, std::vector< entity::CADEntity_CSPtr > &removals, const std::vector< Base_SPtr > operationStack)
std::vector< entity::CADEntity_CSPtr > _entities