NDEVR
API Documentation
DesignCommandExecutor.h
1/*--------------------------------------------------------------------------------------------
2Copyright (c) 2019, NDEVR LLC
3tyler.parke@ndevr.org
4 __ __ ____ _____ __ __ _______
5 | \ | | | __ \ | ___|\ \ / / | __ \
6 | \ | | | | \ \ | |___ \ \ / / | |__) |
7 | . \| | | |__/ / | |___ \ V / | _ /
8 | |\ |_|_____/__|_____|___\_/____| | \ \
9 |__| \__________________________________| \__\
10
11Subject to the terms of the Enterprise+ Agreement, NDEVR hereby grants
12Licensee a limited, non-exclusive, non-transferable, royalty-free license
13(without the right to sublicense) to use the API solely for the purpose of
14Licensee's internal development efforts to develop applications for which
15the API was provided.
16
17The above copyright notice and this permission notice shall be included in all
18copies or substantial portions of the Software.
19
20THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
21INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
22PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
23FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25DEALINGS IN THE SOFTWARE.
26
27Library: Design
28File: DesignCommandExecutor
29Included in API: False
30Author(s): Tyler Parke
31 *-----------------------------------------------------------------------------------------**/
32#pragma once
33#include "DLLInfo.h"
34#include <NDEVR/DesignObject.h>
35#include <NDEVR/ModelIterator.h>
36
37namespace NDEVR
38{
39 class Geometry;
40 class Model;
41 class TableColumn;
42 class DesignObject;
43 class DesignObjectLookup;
49 class NDEVR_DESIGN_API DesignParameterExecutor : public ModelIterator
50 {
51 public:
63 ParseResult process(Model& model) override;
70 ParseResult process(Model& model, Geometry& geo) override;
77 ParseResult process(Model& model, Material& mat) override;
84 protected:
90 virtual bool processDesignCommand(DesignObject& object);
91 protected:
94 };
95
96
97}
98
99
100
101
A core class where all Design Objects including models, materials, and geometries are stored.
A low-level database object that can be used to access general stored properties within the NDEVR Mod...
ParseResult process(Model &model, Material &mat) override
Processes a model and its associated material by applying the design command.
virtual bool processDesignCommand(DesignObject &object)
Applies the managed design command to the given design object.
DesignObjectLookup * m_lookup
The design object lookup for resolving objects.
ParseResult process(Model &model, Geometry &geo) override
Processes a model and its associated geometry by applying the design command.
bool shouldProcess(DesignObject &object)
Checks whether the given design object should be processed by this executor.
ManagedDesignCommand * m_command
The managed design command to execute.
ParseResult process(Model &model) override
Processes a model by applying the design command to it.
DesignParameterExecutor(ManagedDesignCommand *command, DesignObjectLookup *lookup)
Constructs a DesignParameterExecutor with the given command and lookup.
A core class within the model hierarchy containing vertex-based data (Usually 3D data) within a set c...
Definition Geometry.h:143
A DesignCommand subclass that dispatches common design operations based on a ManagedCommandType enum ...
Container responsible for storing and setting the appearance of a Model or Geometry within the NDEVR ...
Definition Material.h:153
ParseResult
The result returned by process functions to control iteration flow.
ModelIterator()
Default constructor.
A core class that represents a node on model hierarchy.
Definition Model.h:292
A virtual storage type that is used with Table class to store data where the actual mechanism for sto...
Definition TableColumn.h:86
The primary namespace for the NDEVR SDK.