QUAOAR STUDIO // Mobius API
mobius::core_OPERATOR Class Reference

#include <core_OPERATOR.h>

Inheritance diagram for mobius::core_OPERATOR:
Collaboration diagram for mobius::core_OPERATOR:

Protected Member Functions

mobiusCore_EXPORT core_OPERATOR (core_ProgressEntry progress, core_PlotterEntry plotter)
 
- Protected Member Functions inherited from mobius::core_IAlgorithm
mobiusCore_EXPORT core_IAlgorithm (core_ProgressEntry progress, core_PlotterEntry plotter)
 

Additional Inherited Members

- Public Member Functions inherited from mobius::core_IAlgorithm
core_ProgressEntryGetProgress () const
 
core_PlotterEntryGetPlotter () const
 
void SetStatusCode (const int status)
 
int GetStatusCode () const
 
void AddStatusCode (const int statBit)
 
bool HasStatusCode (const int statBit) const
 
- Public Member Functions inherited from mobius::core_OBJECT
mobiusCore_EXPORT void IncRef ()
 
mobiusCore_EXPORT void DecRef ()
 
mobiusCore_EXPORT int NbRefs () const
 
virtual mobiusCore_EXPORT void Dump (std::ostream *out) const
 
const mobiusCore_EXPORT std::string & GetName () const
 
mobiusCore_EXPORT void SetName (const std::string &name)
 
mobiusCore_EXPORT bool HasName () const
 
- Protected Attributes inherited from mobius::core_IAlgorithm
core_ProgressEntry m_progress
 Progress Notifier.
 
core_PlotterEntry m_plotter
 Imperative Plotter.
 
int m_iStatusCode
 

Detailed Description

Interface for modeling operators. By operator we understand something intuitively close to a symbol that can be used to denote a particular operation. The difference between operators, operations, algorithms, functions, and procedures is something not very clear. Here is the reasoning which we found very close to our own intuition [math.stackexchange.com]:

Function: a set of pairs constructed from two sets called the domain and codomain (target set). A function can be seen as an abstract (meaning "imagined" here) machine that consumes values from the domain and produces values from the codomain.

Operator: usually in higher math and physics contexts is a function whose domain includes other functions. Computer scientists call these "higher order functions."

Algorithm: a function with a well defined abstract implementation. Rather than just being a set theoretic invention (i.e., a set of pairs as functions are generally defined), algorithms are functions whose internal operations/calculation has a story. In the earlier analogy from functions, the abstract machines of algorithms can actually be picked apart and described. It is possible to talk about how long the machine runs, what subcomponents it has, how much space it uses etc... An algorithm is a "how" of a function.

Procedure: a super set of algorithms. Procedures do not have a connotation of mapping inputs to outputs, although they can if you want. A close notion to procedure is a "computational scheme," i.e., the algorithms combined to a super-algorithm.

Operation: a substitute for the word "function: usually used when you want to treat the function as a single atomic object. Ex: order of operations (here functions are the little things, and we are looking at a larger idea of how to evaluate them, what order, etc.). Another example: quicksort takes O(n log n) floating point operations on randomized inputs. Here operation is short hand for: addition, subtraction, division, multiplication, comparison. But those functions and their inputs (integers) really are not the main point. The main point is thatwe want to count how many times we do them, so we call them operations to make this context clear.

The operator for us a like a symbol, e.g., P1 P2 P3 s is a modeling chain composed of operators P3, then P2, then P1 applied to the abstract shape s. An operator can be seen as a function which maps one abstract shape with some representation scheme to another abstract shape possibly having a different representation scheme (e.g., voxels to b-rep mesh). An operator is also an algorithm, i.e., it is a sequence of operations to produce the result.

In Mobius, we have OBJECTs and OPERATORs working on them. Another way of seeing it is to say the OPERATOR is a modeling algorithm in Mobius.


The documentation for this class was generated from the following file: