|
HDK
|
#include <velocityMotionResolvingSceneIndex.h>
Inheritance diagram for HdsiVelocityMotionResolvingSceneIndex:Public Member Functions | |
| HDSI_API HdSceneIndexPrim | GetPrim (const SdfPath &primPath) const override |
| HDSI_API SdfPathVector | GetChildPrimPaths (const SdfPath &primPath) const override |
Public Member Functions inherited from HdSingleInputFilteringSceneIndexBase | |
| HD_API std::vector < HdSceneIndexBaseRefPtr > | GetInputScenes () const final |
Public Member Functions inherited from HdSceneIndexBase | |
| HD_API | HdSceneIndexBase () |
| HD_API | ~HdSceneIndexBase () override |
| HD_API void | AddObserver (const HdSceneIndexObserverPtr &observer) |
| HD_API void | RemoveObserver (const HdSceneIndexObserverPtr &observer) |
| HdDataSourceBaseHandle | GetDataSource (const SdfPath &primPath, const HdDataSourceLocator &locator) const |
| HD_API void | SystemMessage (const TfToken &messageType, const HdDataSourceBaseHandle &args) |
| HD_API std::string | GetDisplayName () const |
| HD_API void | SetDisplayName (const std::string &n) |
| HD_API void | AddTag (const TfToken &tag) |
| HD_API void | RemoveTag (const TfToken &tag) |
| HD_API bool | HasTag (const TfToken &tag) const |
| HD_API TfTokenVector | GetTags () const |
Public Member Functions inherited from TfRefBase | |
| TfRefBase () | |
| TfRefBase (TfRefBase const &) | |
| TfRefBase & | operator= (TfRefBase const &) |
| size_t | GetCurrentCount () const |
| Return the current reference count of this object. More... | |
| bool | IsUnique () const |
Return true if only one TfRefPtr points to this object. More... | |
| void | SetShouldInvokeUniqueChangedListener (bool shouldCall) |
Public Member Functions inherited from TfWeakBase | |
| TfWeakBase () | |
| TfWeakBase (const TfWeakBase &) | |
| const TfWeakBase & | __GetTfWeakBase__ () const |
| const TfWeakBase & | operator= (const TfWeakBase &) |
| void | EnableNotification2 () const |
| TF_API void const * | GetUniqueIdentifier () const |
Static Public Member Functions | |
| static HDSI_API HdsiVelocityMotionResolvingSceneIndexRefPtr | New (const HdSceneIndexBaseRefPtr &inputSceneIndex, const HdContainerDataSourceHandle &inputArgs=nullptr) |
| static HDSI_API bool | PrimTypeSupportsVelocityMotion (const TfToken &primType) |
Static Public Member Functions inherited from TfRefBase | |
| static TF_API void | SetUniqueChangedListener (UniqueChangedListener listener) |
Additional Inherited Members | |
Public Types inherited from TfRefBase | |
| typedef void(* | UniqueChangedFuncPtr )(TfRefBase const *, bool) |
Scene index that resolves velocity-based motion for all prims that support it. For a complete discussion of how velocity-based motion works, when it is valid, and how it is resolved, see the UsdGeom documentation here: https://openusd.org/dev/api/usd_geom_page_front.html#UsdGeom_VelocityInterpolation
This scene index performs all the necessary calculations so that downstream consumers do not need to worry about velocity-based motion. Downstream consumers need only make the usual call to GetContributingSampleTimesForInterval() for an affected primvar, then sample the primvar's value at the given times.
Affected primvars are: For points-based geometry:
There is no need for downstream consumers to query velocities, accelerations, or angularVelocities; their effects have already been applied to the sampled values when appropriate. Downstream consumers will only see motion (or none), again, as appropriate for the sampled primvar. Any distinction between motion due to velocities and motion due to USD value interpolation is intentionally lost.
Note that, where non-linear motion has been applied (i.e., points or instancePositions with accelerations, or instance rotations with angularVelocities), GetContributingSampleTimesForInterval() will provide the correct number of sample times for non-linear motion, taking UsdGeomMotionAPI's nonlinearSampleCount into consideration. (Downstream consumers should still check nonlinearSampleCount in the case of instanceRotations.)
Additionally, to support certain established workflows, the behavior of the scene index may be controlled by the prim-level Hydra parameter "__velocityMotionMode". This is never read from usd and must instead be authored in a preceding filtering scene index. It is a token with one of the following recognized values:
In all cases (except 'ignore'), __velocityMotionMode has no effect unless the authored velocity data is valid (see link above for what counts as valid). (In the case of 'ignore', validity is not evaluated.) Where the velocity data is not valid, the scene index makes no changes to the incoming scene data, which may indicate motion due to USD value interpolation where appropriate.
Definition at line 95 of file velocityMotionResolvingSceneIndex.h.
|
protected |
|
overrideprotectedvirtual |
Implements HdSingleInputFilteringSceneIndexBase.
|
overrideprotectedvirtual |
Implements HdSingleInputFilteringSceneIndexBase.
|
overrideprotectedvirtual |
Implements HdSingleInputFilteringSceneIndexBase.
|
overridevirtual |
Returns the paths of all scene index prims located immediately below primPath. This function can be used to traverse the scene by recursing from SdfPath::AbsoluteRootPath. The traveral is expected to give exactly the set of paths where prim exists as defined in GetPrim. The traversal is also expected to give the same set of prims as the flattening of the scene index's PrimsAdded and PrimsRemoved messages.
This function is expected to be threadsafe.
Implements HdSceneIndexBase.
|
overridevirtual |
Returns a pair of (prim type, datasource). A prim exists at primPath if and only if datasource is a non-null pointer. In particular, we consider the prim to exist even if the prim type or the container that datasource points to is empty.
Note that we require GetChildPrimPaths to be consistent with this notion of prim existence. That is, unless primPath is the absolute root path, the prim at primPath exists if and only if primPath is contained in GetChildPrimPaths of the parent path.
This function is expected to be threadsafe.
Implements HdSceneIndexBase.
|
static |
|
static |