|
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 232 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 243 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 253 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 279 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 289 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 311 of file predicateLibrary.h.
|
default |
Move-assignment from an other
library.
|
inline |
Copy-assignment from an other
library.
Definition at line 267 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 165 of file predicateProgram.h.