pointInstancer.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef USDGEOM_GENERATED_POINTINSTANCER_H
25 #define USDGEOM_GENERATED_POINTINSTANCER_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/usdGeom/api.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
34 #include "pxr/usd/usdGeom/tokens.h"
35 
36 #include "pxr/base/vt/value.h"
37 
38 #include "pxr/base/gf/vec3d.h"
39 #include "pxr/base/gf/vec3f.h"
40 #include "pxr/base/gf/matrix4d.h"
41 
42 #include "pxr/base/tf/token.h"
43 #include "pxr/base/tf/type.h"
44 
45 PXR_NAMESPACE_OPEN_SCOPE
46 
47 class SdfAssetPath;
48 
49 // -------------------------------------------------------------------------- //
50 // POINTINSTANCER //
51 // -------------------------------------------------------------------------- //
52 
270 {
271 public:
276 
281  explicit UsdGeomPointInstancer(const UsdPrim& prim=UsdPrim())
282  : UsdGeomBoundable(prim)
283  {
284  }
285 
289  explicit UsdGeomPointInstancer(const UsdSchemaBase& schemaObj)
290  : UsdGeomBoundable(schemaObj)
291  {
292  }
293 
295  USDGEOM_API
296  virtual ~UsdGeomPointInstancer();
297 
301  USDGEOM_API
302  static const TfTokenVector &
303  GetSchemaAttributeNames(bool includeInherited=true);
304 
314  USDGEOM_API
315  static UsdGeomPointInstancer
316  Get(const UsdStagePtr &stage, const SdfPath &path);
317 
340  USDGEOM_API
341  static UsdGeomPointInstancer
342  Define(const UsdStagePtr &stage, const SdfPath &path);
343 
344 protected:
348  USDGEOM_API
349  UsdSchemaKind _GetSchemaKind() const override;
350 
351 private:
352  // needs to invoke _GetStaticTfType.
353  friend class UsdSchemaRegistry;
354  USDGEOM_API
355  static const TfType &_GetStaticTfType();
356 
357  static bool _IsTypedSchema();
358 
359  // override SchemaBase virtuals.
360  USDGEOM_API
361  const TfType &_GetTfType() const override;
362 
363 public:
364  // --------------------------------------------------------------------- //
365  // PROTOINDICES
366  // --------------------------------------------------------------------- //
377  USDGEOM_API
379 
385  USDGEOM_API
386  UsdAttribute CreateProtoIndicesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
387 
388 public:
389  // --------------------------------------------------------------------- //
390  // IDS
391  // --------------------------------------------------------------------- //
404  USDGEOM_API
405  UsdAttribute GetIdsAttr() const;
406 
412  USDGEOM_API
413  UsdAttribute CreateIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
414 
415 public:
416  // --------------------------------------------------------------------- //
417  // POSITIONS
418  // --------------------------------------------------------------------- //
427  USDGEOM_API
429 
435  USDGEOM_API
436  UsdAttribute CreatePositionsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
437 
438 public:
439  // --------------------------------------------------------------------- //
440  // ORIENTATIONS
441  // --------------------------------------------------------------------- //
460  USDGEOM_API
462 
468  USDGEOM_API
469  UsdAttribute CreateOrientationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
470 
471 public:
472  // --------------------------------------------------------------------- //
473  // SCALES
474  // --------------------------------------------------------------------- //
485  USDGEOM_API
486  UsdAttribute GetScalesAttr() const;
487 
493  USDGEOM_API
494  UsdAttribute CreateScalesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
495 
496 public:
497  // --------------------------------------------------------------------- //
498  // VELOCITIES
499  // --------------------------------------------------------------------- //
517  USDGEOM_API
519 
525  USDGEOM_API
526  UsdAttribute CreateVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
527 
528 public:
529  // --------------------------------------------------------------------- //
530  // ACCELERATIONS
531  // --------------------------------------------------------------------- //
544  USDGEOM_API
546 
552  USDGEOM_API
553  UsdAttribute CreateAccelerationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
554 
555 public:
556  // --------------------------------------------------------------------- //
557  // ANGULARVELOCITIES
558  // --------------------------------------------------------------------- //
573  USDGEOM_API
575 
581  USDGEOM_API
582  UsdAttribute CreateAngularVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
583 
584 public:
585  // --------------------------------------------------------------------- //
586  // INVISIBLEIDS
587  // --------------------------------------------------------------------- //
596  USDGEOM_API
598 
604  USDGEOM_API
605  UsdAttribute CreateInvisibleIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
606 
607 public:
608  // --------------------------------------------------------------------- //
609  // PROTOTYPES
610  // --------------------------------------------------------------------- //
619  USDGEOM_API
621 
624  USDGEOM_API
626 
627 public:
628  // ===================================================================== //
629  // Feel free to add custom code below this line, it will be preserved by
630  // the code generator.
631  //
632  // Just remember to:
633  // - Close the class declaration with };
634  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
635  // - Close the include guard with #endif
636  // ===================================================================== //
637  // --(BEGIN CUSTOM CODE)--
638 
639  // --------------------------------------------------------------------- //
643  // --------------------------------------------------------------------- //
644 
651  USDGEOM_API
652  bool ActivateId(int64_t id) const;
653 
660  USDGEOM_API
661  bool ActivateIds(VtInt64Array const &ids) const;
662 
668  USDGEOM_API
669  bool ActivateAllIds() const;
670 
676  USDGEOM_API
677  bool DeactivateId(int64_t id) const;
678 
684  USDGEOM_API
685  bool DeactivateIds(VtInt64Array const &ids) const;
686 
687 
698  USDGEOM_API
699  bool VisId(int64_t id, UsdTimeCode const &time) const;
700 
711  USDGEOM_API
712  bool VisIds(VtInt64Array const &ids, UsdTimeCode const &time) const;
713 
720  USDGEOM_API
721  bool VisAllIds(UsdTimeCode const &time) const;
722 
731  USDGEOM_API
732  bool InvisId(int64_t id, UsdTimeCode const &time) const;
733 
742  USDGEOM_API
743  bool InvisIds(VtInt64Array const &ids, UsdTimeCode const &time) const;
744 
762  USDGEOM_API
763  std::vector<bool> ComputeMaskAtTime(UsdTimeCode time,
764  VtInt64Array const *ids = nullptr) const;
765 
778  template <class T>
779  static bool ApplyMaskToArray(std::vector<bool> const &mask,
780  VtArray<T> *dataArray,
781  const int elementSize = 1);
782 
783  // --------------------------------------------------------------------- //
785  // --------------------------------------------------------------------- //
786 
794  };
795 
796 
805  };
806 
807 
864  USDGEOM_API
865  bool
867  VtArray<GfMatrix4d>* xforms,
868  const UsdTimeCode time,
869  const UsdTimeCode baseTime,
870  const ProtoXformInclusion doProtoXforms = IncludeProtoXform,
871  const MaskApplication applyMask = ApplyMask) const;
872 
880  USDGEOM_API
881  bool
883  std::vector<VtArray<GfMatrix4d>>* xformsArray,
884  const std::vector<UsdTimeCode>& times,
885  const UsdTimeCode baseTime,
886  const ProtoXformInclusion doProtoXforms = IncludeProtoXform,
887  const MaskApplication applyMask = ApplyMask) const;
888 
938  USDGEOM_API
939  static bool
941  VtArray<GfMatrix4d>* xforms,
942  UsdStageWeakPtr& stage,
943  UsdTimeCode time,
944  const VtIntArray& protoIndices,
945  const VtVec3fArray& positions,
946  const VtVec3fArray& velocities,
947  UsdTimeCode velocitiesSampleTime,
948  const VtVec3fArray& accelerations,
949  const VtVec3fArray& scales,
950  const VtQuathArray& orientations,
951  const VtVec3fArray& angularVelocities,
952  UsdTimeCode angularVelocitiesSampleTime,
953  const SdfPathVector& protoPaths,
954  const std::vector<bool>& mask,
955  float velocityScale = 1.0);
956 
957 private:
958 
959  // Get the authored prototype paths. Fail if there are no authored prototype
960  // paths or the prototype indices are out of bounds.
961  bool _GetPrototypePathsForInstanceTransforms(
962  const VtIntArray& protoIndices,
963  SdfPathVector* protoPaths) const;
964 
965  // Get the authored prototype indices for instance transform computation.
966  // Fail if prototype indices are not authored.
967  bool _GetProtoIndicesForInstanceTransforms(
968  UsdTimeCode baseTime,
969  VtIntArray* protoIndices) const;
970 
971  // Fetches data from attributes specific to UsdGeomPointInstancer
972  // required for instance transform calculations; this includes
973  // protoIndices, protoPaths, and the mask.
974  bool _ComputePointInstancerAttributesPreamble(
975  const UsdTimeCode baseTime,
976  const ProtoXformInclusion doProtoXforms,
977  const MaskApplication applyMask,
978  VtIntArray* protoIndices,
979  SdfPathVector* protoPaths,
980  std::vector<bool>* mask) const;
981 
982 public:
983 
1019  USDGEOM_API
1020  bool ComputeExtentAtTime(
1021  VtVec3fArray* extent,
1022  const UsdTimeCode time,
1023  const UsdTimeCode baseTime) const;
1024 
1027  USDGEOM_API
1028  bool ComputeExtentAtTime(
1029  VtVec3fArray* extent,
1030  const UsdTimeCode time,
1031  const UsdTimeCode baseTime,
1032  const GfMatrix4d& transform) const;
1033 
1047  USDGEOM_API
1048  bool ComputeExtentAtTimes(
1049  std::vector<VtVec3fArray>* extents,
1050  const std::vector<UsdTimeCode>& times,
1051  const UsdTimeCode baseTime) const;
1052 
1056  USDGEOM_API
1057  bool ComputeExtentAtTimes(
1058  std::vector<VtVec3fArray>* extents,
1059  const std::vector<UsdTimeCode>& times,
1060  const UsdTimeCode baseTime,
1061  const GfMatrix4d& transform) const;
1062 
1068  USDGEOM_API
1069  size_t GetInstanceCount(UsdTimeCode timeCode = UsdTimeCode::Default()) const;
1070 
1071 private:
1072 
1073  bool _ComputeExtentAtTimePreamble(
1074  UsdTimeCode baseTime,
1075  VtIntArray* protoIndices,
1076  std::vector<bool>* mask,
1077  UsdRelationship* prototypes,
1078  SdfPathVector* protoPaths) const;
1079 
1080  bool _ComputeExtentFromTransforms(
1081  VtVec3fArray* extent,
1082  const VtIntArray& protoIndices,
1083  const std::vector<bool>& mask,
1084  const UsdRelationship& prototypes,
1085  const SdfPathVector& protoPaths,
1086  const VtMatrix4dArray& instanceTransforms,
1087  UsdTimeCode time,
1088  const GfMatrix4d* transform) const;
1089 
1090  bool _ComputeExtentAtTime(
1091  VtVec3fArray* extent,
1092  const UsdTimeCode time,
1093  const UsdTimeCode baseTime,
1094  const GfMatrix4d* transform) const;
1095 
1096  bool _ComputeExtentAtTimes(
1097  std::vector<VtVec3fArray>* extent,
1098  const std::vector<UsdTimeCode>& times,
1099  const UsdTimeCode baseTime,
1100  const GfMatrix4d* transform) const;
1101 };
1102 
1103 template <class T>
1104 bool
1105 UsdGeomPointInstancer::ApplyMaskToArray(std::vector<bool> const &mask,
1106  VtArray<T> *dataArray,
1107  const int elementSize)
1108 {
1109  if (!dataArray) {
1110  TF_CODING_ERROR("NULL dataArray.");
1111  return false;
1112  }
1113  size_t maskSize = mask.size();
1114  if (maskSize == 0 || dataArray->size() == (size_t)elementSize){
1115  return true;
1116  }
1117  else if ((maskSize * elementSize) != dataArray->size()){
1118  TF_WARN("Input mask's size (%zu) is not compatible with the "
1119  "input dataArray (%zu) and elementSize (%d).",
1120  maskSize, dataArray->size(), elementSize);
1121  return false;
1122  }
1123 
1124  T* beginData = dataArray->data();
1125  T* currData = beginData;
1126  size_t numPreserved = 0;
1127  for (size_t i = 0; i < maskSize; ++i) {
1128  // XXX Could add a fast-path for elementSize == 1 ?
1129  if (mask[i]) {
1130  for (int j = 0; j < elementSize; ++j) {
1131  *currData = beginData[i + j];
1132  ++currData;
1133  }
1134  numPreserved += elementSize;
1135  }
1136  }
1137  if (numPreserved < dataArray->size()) {
1138  dataArray->resize(numPreserved);
1139  }
1140  return true;
1141 }
1142 
1145 USDGEOM_API
1146 bool
1148 
1152 USDGEOM_API
1153 bool
1154 UsdGeomPointInstancerSetOrMergeOverOp(std::vector<int64_t> const &items,
1155  SdfListOpType op,
1156  UsdPrim const &prim,
1157  TfToken const &metadataName);
1158 
1159 PXR_NAMESPACE_CLOSE_SCOPE
1160 
1161 #endif
USDGEOM_API bool VisAllIds(UsdTimeCode const &time) const
Ensure that all instances are visible at time.
static USDGEOM_API const TfTokenVector & GetSchemaAttributeNames(bool includeInherited=true)
Return a vector of names of all pre-declared attributes for this schema class and all its ancestor cl...
Compute and apply the PointInstancer mask.
virtual USDGEOM_API ~UsdGeomPointInstancer()
Destructor.
static bool ApplyMaskToArray(std::vector< bool > const &mask, VtArray< T > *dataArray, const int elementSize=1)
Contract dataArray in-place to contain only the elements whose index in mask is true.
USDGEOM_API bool InvisIds(VtInt64Array const &ids, UsdTimeCode const &time) const
Ensure that the instances identified by ids are invisible at time.
USDGEOM_API UsdAttribute GetPositionsAttr() const
Required property.
UsdGeomPointInstancer(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomPointInstancer on UsdPrim prim .
size_t size() const
Return the total number of elements in this array.
Definition: array.h:486
#define TF_WARN(...)
Issue a warning, but continue execution.
Definition: diagnostic.h:149
USDGEOM_API UsdRelationship CreatePrototypesRel() const
See GetPrototypesRel(), and also Create vs Get Property Methods for when to use Get vs Create.
#define TF_CODING_ERROR(fmt, args)
Issue an internal programming error, but continue execution.
Definition: diagnostic.h:85
USDGEOM_API UsdAttribute GetOrientationsAttr() const
If authored, per-instance orientation of each instance about its prototype's origin,...
ProtoXformInclusion
Encodes whether to include each prototype's root prim's transformation as the most-local component of...
USDGEOM_API UsdAttribute CreateAngularVelocitiesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetAngularVelocitiesAttr(), and also Create vs Get Property Methods for when to use Get vs Create...
USDGEOM_API bool VisId(int64_t id, UsdTimeCode const &time) const
Ensure that the instance identified by id is visible at time.
static USDGEOM_API UsdGeomPointInstancer Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdGeomPointInstancer holding the prim adhering to this schema at path on stage.
USDGEOM_API UsdAttribute GetScalesAttr() const
If authored, per-instance scale to be applied to each instance, before any rotation is applied.
Exclude the transform on the proto's root.
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:176
USDGEOM_API UsdAttribute GetIdsAttr() const
Ids are optional; if authored, the ids array should be the same length as the protoIndices array,...
USDGEOM_API bool ActivateId(int64_t id) const
Ensure that the instance identified by id is active over all time.
USDGEOM_API UsdAttribute CreateVelocitiesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetVelocitiesAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
void resize(size_t newSize)
Resize this array.
Definition: array.h:545
USDGEOM_API UsdAttribute GetProtoIndicesAttr() const
Required property.
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
static USDGEOM_API UsdGeomPointInstancer Define(const UsdStagePtr &stage, const SdfPath &path)
Attempt to ensure a UsdPrim adhering to this schema at path is defined (according to UsdPrim::IsDefin...
USDGEOM_API UsdRelationship GetPrototypesRel() const
Required property.
USDGEOM_API bool ComputeExtentAtTimes(std::vector< VtVec3fArray > *extents, const std::vector< UsdTimeCode > &times, const UsdTimeCode baseTime) const
Compute the extent of the point instancer as in ComputeExtentAtTime , but across multiple times .
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:87
USDGEOM_API bool ComputeExtentAtTime(VtVec3fArray *extent, const UsdTimeCode time, const UsdTimeCode baseTime) const
Compute the extent of the point instancer based on the per-instance, "PointInstancer relative" transf...
Include the transform on the proto's root.
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:88
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:85
USDGEOM_API UsdAttribute GetVelocitiesAttr() const
If provided, per-instance 'velocities' will be used to compute positions between samples for the 'pos...
USDGEOM_API bool UsdGeomPointInstancerSetOrMergeOverOp(std::vector< int64_t > const &items, SdfListOpType op, UsdPrim const &prim, TfToken const &metadataName)
Applies a list operation of type op using items over the existing list operation on prim with the nam...
USDGEOM_API UsdAttribute CreateIdsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetIdsAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Boundable introduces the ability for a prim to persistently cache a rectilinear, local-space,...
Definition: boundable.h:82
Represents a concrete typed schema.
pointer data()
Return a non-const pointer to this array's data.
Definition: array.h:418
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:134
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:442
USDGEOM_API UsdAttribute CreateAccelerationsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetAccelerationsAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDGEOM_API UsdAttribute CreateProtoIndicesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetProtoIndicesAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDGEOM_API bool ComputeInstanceTransformsAtTime(VtArray< GfMatrix4d > *xforms, const UsdTimeCode time, const UsdTimeCode baseTime, const ProtoXformInclusion doProtoXforms=IncludeProtoXform, const MaskApplication applyMask=ApplyMask) const
Compute the per-instance, "PointInstancer relative" transforms given the positions,...
Represents an arbitrary dimensional rectangular container class.
Definition: array.h:228
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:290
USDGEOM_API bool UsdGeomPointInstancerApplyNewStyleListOps()
Returns true if list ops should be composed with SdfListOp::ApplyOperations() Returns false if list o...
A UsdRelationship creates dependencies between scenegraph objects by allowing a prim to target other ...
Definition: relationship.h:128
USDGEOM_API bool ActivateAllIds() const
Ensure that all instances are active over all time.
MaskApplication
Encodes whether to evaluate and apply the PointInstancer's mask to computed results.
USDGEOM_API UsdAttribute CreateInvisibleIdsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetInvisibleIdsAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
USDGEOM_API bool ComputeInstanceTransformsAtTimes(std::vector< VtArray< GfMatrix4d >> *xformsArray, const std::vector< UsdTimeCode > &times, const UsdTimeCode baseTime, const ProtoXformInclusion doProtoXforms=IncludeProtoXform, const MaskApplication applyMask=ApplyMask) const
Compute the per-instance transforms as in ComputeInstanceTransformsAtTime, but using multiple sample ...
USDGEOM_API UsdAttribute GetAngularVelocitiesAttr() const
If authored, per-instance angular velocity vector to be used for interoplating orientations.
static constexpr UsdTimeCode Default()
Produce a UsdTimeCode representing the sentinel value for 'default'.
Definition: timeCode.h:113
USDGEOM_API bool DeactivateIds(VtInt64Array const &ids) const
Ensure that the instances identified by ids are inactive over all time.
TfType represents a dynamic runtime type.
Definition: type.h:64
Singleton registry that provides access to schema type information and the prim definitions for regis...
USDGEOM_API UsdAttribute GetInvisibleIdsAttr() const
A list of id's to make invisible at the evaluation time.
Encodes vectorized instancing of multiple, potentially animated, prototypes (object/instance masters)...
USDGEOM_API size_t GetInstanceCount(UsdTimeCode timeCode=UsdTimeCode::Default()) const
Returns the number of instances as defined by the size of the protoIndices array at timeCode.
USDGEOM_API UsdAttribute CreatePositionsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetPositionsAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDGEOM_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
USDGEOM_API bool DeactivateId(int64_t id) const
Ensure that the instance identified by id is inactive over all time.
The base class for all schema types in Usd.
Definition: schemaBase.h:56
UsdGeomPointInstancer(const UsdSchemaBase &schemaObj)
Construct a UsdGeomPointInstancer on the prim held by schemaObj .
Ignore the PointInstancer mask.
USDGEOM_API bool VisIds(VtInt64Array const &ids, UsdTimeCode const &time) const
Ensure that the instances identified by ids are visible at time.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:166
USDGEOM_API std::vector< bool > ComputeMaskAtTime(UsdTimeCode time, VtInt64Array const *ids=nullptr) const
Computes a presence mask to be applied to per-instance data arrays based on authored inactiveIds,...
USDGEOM_API bool ActivateIds(VtInt64Array const &ids) const
Ensure that the instances identified by ids are active over all time.
USDGEOM_API UsdAttribute CreateScalesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetScalesAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
USDGEOM_API bool InvisId(int64_t id, UsdTimeCode const &time) const
Ensure that the instance identified by id is invisible at time.
USDGEOM_API UsdAttribute CreateOrientationsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetOrientationsAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDGEOM_API UsdAttribute GetAccelerationsAttr() const
If authored, per-instance 'accelerations' will be used with velocities to compute positions between s...