Operators Class Reference
#include <Operators.h>
List of all members.
Detailed Description
Class defining the operators used in a style module. There are 4 classes of operators: Selection, Chaining, Splitting and Creating. All these operators are user controlled in the scripting language through Functors, Predicates and Shaders that are taken as arguments.
|
Static Public Member Functions |
void | select (UnaryPredicate1D &pred) |
void | chain (ViewEdgeInternal::ViewEdgeIterator &it, UnaryPredicate1D &pred, UnaryFunction1D< void > &modifier) |
void | chain (ViewEdgeInternal::ViewEdgeIterator &it, UnaryPredicate1D &pred) |
void | bidirectionalChain (ChainingIterator &it, UnaryPredicate1D &pred) |
void | bidirectionalChain (ChainingIterator &it) |
void | sequentialSplit (UnaryPredicate0D &startingPred, UnaryPredicate0D &stoppingPred, float sampling=0.f) |
void | sequentialSplit (UnaryPredicate0D &pred, float sampling=0.f) |
void | recursiveSplit (UnaryFunction0D< double > &func, UnaryPredicate1D &pred, float sampling=0) |
void | recursiveSplit (UnaryFunction0D< double > &func, UnaryPredicate0D &pred0d, UnaryPredicate1D &pred, float sampling=0) |
void | sort (BinaryPredicate1D &pred) |
void | create (UnaryPredicate1D &pred, vector< StrokeShader * > shaders) |
Member Function Documentation
|
The only difference with the above bidirectional chaining algorithm is that we don't need to pass a stopping criterion. This might be desirable when the stopping criterion is already contained in the iterator definition. Builds a set of chains from the current set of ViewEdges. Each ViewEdge of the current list potentially starts a new chain. The chaining operator then iterates over the ViewEdges of the ViewMap using the user specified iterator. This operator iterates both using the increment and decrement operators and is therefore bidirectional. This operator works with a ChainingIterator which contains the chaining rules. It is this last one which can be told to chain only edges that belong to the selection or not to process twice a ViewEdge during the chaining. Each time a ViewEdge is added to a chain, its chaining time stamp is incremented. This allows you to keep track of the number of chains to which a ViewEdge belongs to. - Parameters:
-
|
|
Builds a set of chains from the current set of ViewEdges. Each ViewEdge of the current list potentially starts a new chain. The chaining operator then iterates over the ViewEdges of the ViewMap using the user specified iterator. This operator iterates both using the increment and decrement operators and is therefore bidirectional. This operator works with a ChainingIterator which contains the chaining rules. It is this last one which can be told to chain only edges that belong to the selection or not to process twice a ViewEdge during the chaining. Each time a ViewEdge is added to a chain, its chaining time stamp is incremented. This allows you to keep track of the number of chains to which a ViewEdge belongs to. - Parameters:
-
| it | The ChainingIterator on the ViewEdges of the ViewMap. It contains the chaining rule. |
| pred | The predicate on the ViewEdge that expresses the stopping condition. |
|
|
Builds a set of chains from the current set of ViewEdges. Each ViewEdge of the current list starts a new chain. The chaining operator then iterates over the ViewEdges of the ViewMap using the user specified iterator. This operator only iterates using the increment operator and is therefore unidirectional. This chaining operator is different from the previous one because it doesn't take any modifier as argument. Indeed, the time stamp (insuring that a ViewEdge is processed one time) is automatically managed in this case. - Parameters:
-
| it | The iterator on the ViewEdges of the ViewMap. It contains the chaining rule. |
| pred | The predicate on the ViewEdge that expresses the stopping condition. |
|
|
Builds a set of chains from the current set of ViewEdges. Each ViewEdge of the current list starts a new chain. The chaining operator then iterates over the ViewEdges of the ViewMap using the user specified iterator. This operator only iterates using the increment operator and is therefore unidirectional. - Parameters:
-
| it | The iterator on the ViewEdges of the ViewMap. It contains the chaining rule. |
| pred | The predicate on the ViewEdge that expresses the stopping condition. |
| modifier | A function that takes a ViewEdge as argument and that is used to modify the processed ViewEdge state (the timestamp incrementation is a typical illustration of such a modifier) |
|
|
Creates and shades the strokes from the current set of chains. A predicate can be specified to make a selection pass on the chains. - Parameters:
-
| pred | The predicate that a chain must verify in order to be transform as a stroke |
| shaders | The list of shaders used to shade the strokes |
|
|
Splits the current set of chains in a recursive way. We process the points of each chain (with a specified sampling) to find the point minimizing a specified function. The chain is split in two at this point and the two new chains are processed in the same way. The user can specify a 0D predicate to make a first selection on the points that can potentially be split. A point that doesn't verify the 0D predicate won't be candidate in realizing the min. The recursivity level is controlled through a predicate 1D that expresses a stopping condition on the chain that is about to be processed. - Parameters:
-
| func | The Unary Function evaluated at each point of the chain. The splitting point is the point minimizing this function |
| pred0d | The Unary Predicate 0D used to select the candidate points where the split can occur. For example, it is very likely that would rather have your chain splitting around its middle point than around one of its extremities. A 0D predicate working on the curvilinear abscissa allows to add this kind of constraints. |
| pred | The Unary Predicate ex pressing the recursivity stopping condition. This predicate is evaluated for each curve before it actually gets split. If pred(chain) is true, the curve won't be split anymore. |
| sampling | The resolution used to sample the chain for the predicates evaluation. (The chain is not actually resampled, a virtual point only progresses along the curve using this resolution) |
|
|
Splits the current set of chains in a recursive way. We process the points of each chain (with a specified sampling) to find the point minimizing a specified function. The chain is split in two at this point and the two new chains are processed in the same way. The recursivity level is controlled through a predicate 1D that expresses a stopping condition on the chain that is about to be processed. - Parameters:
-
| func | The Unary Function evaluated at each point of the chain. The splitting point is the point minimizing this function |
| pred | The Unary Predicate ex pressing the recursivity stopping condition. This predicate is evaluated for each curve before it actually gets split. If pred(chain) is true, the curve won't be split anymore. |
| sampling | The resolution used to sample the chain for the predicates evaluation. (The chain is not actually resampled, a virtual point only progresses along the curve using this resolution) |
|
|
Selects the ViewEdges of the ViewMap verifying a specified condition. - Parameters:
-
| pred | The predicate expressing this condition |
|
|
Splits each chain of the current set of chains in a sequential way. The points of each chain are processed (with a specified sampling) sequentially and each time a user specified condition is verified, the chain is split into two chains. The resulting set of chains is a partition of the initial chain - Parameters:
-
| pred | The predicate on a point that expresses the splitting condition |
| sampling | The resolution used to sample the chain for the predicate evaluation. (The chain is not actually resampled, a virtual point only progresses along the curve using this resolution) |
|
|
Splits each chain of the current set of chains in a sequential way. The points of each chain are processed (with a specified sampling) sequentially. Each time a user specified starting condition is verified, a new chain begins and ends as soon as a user-defined stopping predicate is verified. This allows chains overlapping rather than chains partitioning. The first point of the initial chain is the first point of one of the resulting chains. The splitting ends when no more chain can start. - Parameters:
-
| startingPred | The predicate on a point that expresses the starting condition |
| stoppingPred | The predicate on a point that expresses the stopping condition |
| sampling | The resolution used to sample the chain for the predicates evaluation. (The chain is not actually resampled, a virtual point only progresses along the curve using this resolution) |
|
|
Sorts the current set of chains (or viewedges) according to the comparison predicate given as argument. - Parameters:
-
| pred | The binary predicate used for the comparison |
|
The documentation for this class was generated from the following file: