![]() |
|
Represents a library of predicate functions for use with SdfPredicateExpression. More...
#include <predicateLibrary.h>
Public Types | |
| using | PredicateFunction = std::function< SdfPredicateFunctionResult(DomainType const &)> |
| The type of a bound function, the result of binding passed arguments. | |
Public Member Functions | |
| SdfPredicateLibrary ()=default | |
| Default constructor produces an empty library. | |
| SdfPredicateLibrary (SdfPredicateLibrary &&other)=default | |
Move-construct from an other library. | |
| SdfPredicateLibrary (SdfPredicateLibrary const &other) | |
Copy-construct from an other library. | |
| SdfPredicateLibrary & | operator= (SdfPredicateLibrary &&other)=default |
Move-assignment from an other library. | |
| SdfPredicateLibrary & | operator= (SdfPredicateLibrary const &other) |
Copy-assignment from an other library. | |
| template<class Fn > | |
| SdfPredicateLibrary & | Define (char const *name, Fn &&fn) |
Register a function with name name in this library. | |
| template<class Fn > | |
| SdfPredicateLibrary & | Define (std::string const &name, Fn &&fn, NamesAndDefaults const &namesAndDefaults) |
Register a function with name name in this library. | |
| template<class Fn > | |
| SdfPredicateLibrary & | DefineBinder (std::string const &name, Fn &&fn) |
Register a custom binding function for name in this library. | |
Friends | |
| SdfPredicateProgram< DomainType > | SdfLinkPredicateExpression (SdfPredicateExpression const &expr, SdfPredicateLibrary const &lib) |
Link expr with lib and return a callable program that evaluates expr on given objects of the DomainType. | |
Represents a library of predicate functions for use with SdfPredicateExpression.
Call SdfLinkPredicateExpression() with an expression and a library to produce a callable SdfPredicateProgram.
Definition at line 214 of file predicateLibrary.h.
| using PredicateFunction = std::function<SdfPredicateFunctionResult (DomainType const &)> |
The type of a bound function, the result of binding passed arguments.
Definition at line 225 of file predicateLibrary.h.
|
default |
Default constructor produces an empty library.
|
default |
Move-construct from an other library.
|
inline |
Copy-construct from an other library.
Definition at line 235 of file predicateLibrary.h.
|
inline |
Register a function with name name in this library.
The first argument must accept a DomainType instance. The remaining arguments must be convertible from bool, int, float, string.
Definition at line 261 of file predicateLibrary.h.
|
inline |
Register a function with name name in this library.
The first argument must accept a DomainType instance. The remaining arguments must be convertible from bool, int, float, string. Optional parameter names and default values may be supplied in namesAndDefaults.
Definition at line 271 of file predicateLibrary.h.
|
inline |
Register a custom binding function for name in this library.
The function must take a single argument of type std::vector<SdfPredicateExpression::FnArg>. When invoked, it must attempt to bind the arguments passed in the vector and return a bound PredicateFunction object. If the arguments are invalid, return an empty PredicateFunction.
Definition at line 293 of file predicateLibrary.h.
|
default |
Move-assignment from an other library.
|
inline |
Copy-assignment from an other library.
Definition at line 249 of file predicateLibrary.h.
|
friend |
Link expr with lib and return a callable program that evaluates expr on given objects of the DomainType.
If linking expr and lib fails, issue a TF_RUNTIME_ERROR with a message, and return an empty program.
Definition at line 147 of file predicateProgram.h.