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 
279 {
280 public:
285 
290  explicit UsdGeomPointInstancer(const UsdPrim& prim=UsdPrim())
291  : UsdGeomBoundable(prim)
292  {
293  }
294 
298  explicit UsdGeomPointInstancer(const UsdSchemaBase& schemaObj)
299  : UsdGeomBoundable(schemaObj)
300  {
301  }
302 
304  USDGEOM_API
305  virtual ~UsdGeomPointInstancer();
306 
310  USDGEOM_API
311  static const TfTokenVector &
312  GetSchemaAttributeNames(bool includeInherited=true);
313 
323  USDGEOM_API
324  static UsdGeomPointInstancer
325  Get(const UsdStagePtr &stage, const SdfPath &path);
326 
349  USDGEOM_API
350  static UsdGeomPointInstancer
351  Define(const UsdStagePtr &stage, const SdfPath &path);
352 
353 protected:
357  USDGEOM_API
358  UsdSchemaKind _GetSchemaKind() const override;
359 
360 private:
361  // needs to invoke _GetStaticTfType.
362  friend class UsdSchemaRegistry;
363  USDGEOM_API
364  static const TfType &_GetStaticTfType();
365 
366  static bool _IsTypedSchema();
367 
368  // override SchemaBase virtuals.
369  USDGEOM_API
370  const TfType &_GetTfType() const override;
371 
372 public:
373  // --------------------------------------------------------------------- //
374  // PROTOINDICES
375  // --------------------------------------------------------------------- //
386  USDGEOM_API
388 
394  USDGEOM_API
395  UsdAttribute CreateProtoIndicesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
396 
397 public:
398  // --------------------------------------------------------------------- //
399  // IDS
400  // --------------------------------------------------------------------- //
413  USDGEOM_API
414  UsdAttribute GetIdsAttr() const;
415 
421  USDGEOM_API
422  UsdAttribute CreateIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
423 
424 public:
425  // --------------------------------------------------------------------- //
426  // POSITIONS
427  // --------------------------------------------------------------------- //
436  USDGEOM_API
438 
444  USDGEOM_API
445  UsdAttribute CreatePositionsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
446 
447 public:
448  // --------------------------------------------------------------------- //
449  // ORIENTATIONS
450  // --------------------------------------------------------------------- //
469  USDGEOM_API
471 
477  USDGEOM_API
478  UsdAttribute CreateOrientationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
479 
480 public:
481  // --------------------------------------------------------------------- //
482  // SCALES
483  // --------------------------------------------------------------------- //
494  USDGEOM_API
495  UsdAttribute GetScalesAttr() const;
496 
502  USDGEOM_API
503  UsdAttribute CreateScalesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
504 
505 public:
506  // --------------------------------------------------------------------- //
507  // VELOCITIES
508  // --------------------------------------------------------------------- //
526  USDGEOM_API
528 
534  USDGEOM_API
535  UsdAttribute CreateVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
536 
537 public:
538  // --------------------------------------------------------------------- //
539  // ACCELERATIONS
540  // --------------------------------------------------------------------- //
553  USDGEOM_API
555 
561  USDGEOM_API
562  UsdAttribute CreateAccelerationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
563 
564 public:
565  // --------------------------------------------------------------------- //
566  // ANGULARVELOCITIES
567  // --------------------------------------------------------------------- //
582  USDGEOM_API
584 
590  USDGEOM_API
591  UsdAttribute CreateAngularVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
592 
593 public:
594  // --------------------------------------------------------------------- //
595  // INVISIBLEIDS
596  // --------------------------------------------------------------------- //
605  USDGEOM_API
607 
613  USDGEOM_API
614  UsdAttribute CreateInvisibleIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
615 
616 public:
617  // --------------------------------------------------------------------- //
618  // PROTOTYPES
619  // --------------------------------------------------------------------- //
628  USDGEOM_API
630 
633  USDGEOM_API
635 
636 public:
637  // ===================================================================== //
638  // Feel free to add custom code below this line, it will be preserved by
639  // the code generator.
640  //
641  // Just remember to:
642  // - Close the class declaration with };
643  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
644  // - Close the include guard with #endif
645  // ===================================================================== //
646  // --(BEGIN CUSTOM CODE)--
647 
648  // --------------------------------------------------------------------- //
652  // --------------------------------------------------------------------- //
653 
660  USDGEOM_API
661  bool ActivateId(int64_t id) const;
662 
669  USDGEOM_API
670  bool ActivateIds(VtInt64Array const &ids) const;
671 
677  USDGEOM_API
678  bool ActivateAllIds() const;
679 
685  USDGEOM_API
686  bool DeactivateId(int64_t id) const;
687 
693  USDGEOM_API
694  bool DeactivateIds(VtInt64Array const &ids) const;
695 
696 
707  USDGEOM_API
708  bool VisId(int64_t id, UsdTimeCode const &time) const;
709 
720  USDGEOM_API
721  bool VisIds(VtInt64Array const &ids, UsdTimeCode const &time) const;
722 
729  USDGEOM_API
730  bool VisAllIds(UsdTimeCode const &time) const;
731 
740  USDGEOM_API
741  bool InvisId(int64_t id, UsdTimeCode const &time) const;
742 
751  USDGEOM_API
752  bool InvisIds(VtInt64Array const &ids, UsdTimeCode const &time) const;
753 
771  USDGEOM_API
772  std::vector<bool> ComputeMaskAtTime(UsdTimeCode time,
773  VtInt64Array const *ids = nullptr) const;
774 
787  template <class T>
788  static bool ApplyMaskToArray(std::vector<bool> const &mask,
789  VtArray<T> *dataArray,
790  const int elementSize = 1);
791 
792  // --------------------------------------------------------------------- //
794  // --------------------------------------------------------------------- //
795 
803  };
804 
805 
814  };
815 
816 
873  USDGEOM_API
874  bool
876  VtArray<GfMatrix4d>* xforms,
877  const UsdTimeCode time,
878  const UsdTimeCode baseTime,
879  const ProtoXformInclusion doProtoXforms = IncludeProtoXform,
880  const MaskApplication applyMask = ApplyMask) const;
881 
889  USDGEOM_API
890  bool
892  std::vector<VtArray<GfMatrix4d>>* xformsArray,
893  const std::vector<UsdTimeCode>& times,
894  const UsdTimeCode baseTime,
895  const ProtoXformInclusion doProtoXforms = IncludeProtoXform,
896  const MaskApplication applyMask = ApplyMask) const;
897 
947  USDGEOM_API
948  static bool
950  VtArray<GfMatrix4d>* xforms,
951  UsdStageWeakPtr& stage,
952  UsdTimeCode time,
953  const VtIntArray& protoIndices,
954  const VtVec3fArray& positions,
955  const VtVec3fArray& velocities,
956  UsdTimeCode velocitiesSampleTime,
957  const VtVec3fArray& accelerations,
958  const VtVec3fArray& scales,
959  const VtQuathArray& orientations,
960  const VtVec3fArray& angularVelocities,
961  UsdTimeCode angularVelocitiesSampleTime,
962  const SdfPathVector& protoPaths,
963  const std::vector<bool>& mask,
964  float velocityScale = 1.0);
965 
966 private:
967 
968  // Get the authored prototype paths. Fail if there are no authored prototype
969  // paths or the prototype indices are out of bounds.
970  bool _GetPrototypePathsForInstanceTransforms(
971  const VtIntArray& protoIndices,
972  SdfPathVector* protoPaths) const;
973 
974  // Get the authored prototype indices for instance transform computation.
975  // Fail if prototype indices are not authored.
976  bool _GetProtoIndicesForInstanceTransforms(
977  UsdTimeCode baseTime,
978  VtIntArray* protoIndices) const;
979 
980  // Fetches data from attributes specific to UsdGeomPointInstancer
981  // required for instance transform calculations; this includes
982  // protoIndices, protoPaths, and the mask.
983  bool _ComputePointInstancerAttributesPreamble(
984  const UsdTimeCode baseTime,
985  const ProtoXformInclusion doProtoXforms,
986  const MaskApplication applyMask,
987  VtIntArray* protoIndices,
988  SdfPathVector* protoPaths,
989  std::vector<bool>* mask) const;
990 
991 public:
992 
1028  USDGEOM_API
1029  bool ComputeExtentAtTime(
1030  VtVec3fArray* extent,
1031  const UsdTimeCode time,
1032  const UsdTimeCode baseTime) const;
1033 
1036  USDGEOM_API
1037  bool ComputeExtentAtTime(
1038  VtVec3fArray* extent,
1039  const UsdTimeCode time,
1040  const UsdTimeCode baseTime,
1041  const GfMatrix4d& transform) const;
1042 
1056  USDGEOM_API
1057  bool ComputeExtentAtTimes(
1058  std::vector<VtVec3fArray>* extents,
1059  const std::vector<UsdTimeCode>& times,
1060  const UsdTimeCode baseTime) const;
1061 
1065  USDGEOM_API
1066  bool ComputeExtentAtTimes(
1067  std::vector<VtVec3fArray>* extents,
1068  const std::vector<UsdTimeCode>& times,
1069  const UsdTimeCode baseTime,
1070  const GfMatrix4d& transform) const;
1071 
1077  USDGEOM_API
1078  size_t GetInstanceCount(UsdTimeCode timeCode = UsdTimeCode::Default()) const;
1079 
1080 private:
1081 
1082  bool _ComputeExtentAtTimePreamble(
1083  UsdTimeCode baseTime,
1084  VtIntArray* protoIndices,
1085  std::vector<bool>* mask,
1086  UsdRelationship* prototypes,
1087  SdfPathVector* protoPaths) const;
1088 
1089  bool _ComputeExtentFromTransforms(
1090  VtVec3fArray* extent,
1091  const VtIntArray& protoIndices,
1092  const std::vector<bool>& mask,
1093  const UsdRelationship& prototypes,
1094  const SdfPathVector& protoPaths,
1095  const VtMatrix4dArray& instanceTransforms,
1096  UsdTimeCode time,
1097  const GfMatrix4d* transform) const;
1098 
1099  bool _ComputeExtentAtTime(
1100  VtVec3fArray* extent,
1101  const UsdTimeCode time,
1102  const UsdTimeCode baseTime,
1103  const GfMatrix4d* transform) const;
1104 
1105  bool _ComputeExtentAtTimes(
1106  std::vector<VtVec3fArray>* extent,
1107  const std::vector<UsdTimeCode>& times,
1108  const UsdTimeCode baseTime,
1109  const GfMatrix4d* transform) const;
1110 };
1111 
1112 template <class T>
1113 bool
1114 UsdGeomPointInstancer::ApplyMaskToArray(std::vector<bool> const &mask,
1115  VtArray<T> *dataArray,
1116  const int elementSize)
1117 {
1118  if (!dataArray) {
1119  TF_CODING_ERROR("NULL dataArray.");
1120  return false;
1121  }
1122  size_t maskSize = mask.size();
1123  if (maskSize == 0 || dataArray->size() == (size_t)elementSize){
1124  return true;
1125  }
1126  else if ((maskSize * elementSize) != dataArray->size()){
1127  TF_WARN("Input mask's size (%zu) is not compatible with the "
1128  "input dataArray (%zu) and elementSize (%d).",
1129  maskSize, dataArray->size(), elementSize);
1130  return false;
1131  }
1132 
1133  T* beginData = dataArray->data();
1134  T* currData = beginData;
1135  size_t numPreserved = 0;
1136  for (size_t i = 0; i < maskSize; ++i) {
1137  // XXX Could add a fast-path for elementSize == 1 ?
1138  if (mask[i]) {
1139  for (int j = 0; j < elementSize; ++j) {
1140  *currData = beginData[i + j];
1141  ++currData;
1142  }
1143  numPreserved += elementSize;
1144  }
1145  }
1146  if (numPreserved < dataArray->size()) {
1147  dataArray->resize(numPreserved);
1148  }
1149  return true;
1150 }
1151 
1154 USDGEOM_API
1155 bool
1157 
1161 USDGEOM_API
1162 bool
1163 UsdGeomPointInstancerSetOrMergeOverOp(std::vector<int64_t> const &items,
1164  SdfListOpType op,
1165  UsdPrim const &prim,
1166  TfToken const &metadataName);
1167 
1168 PXR_NAMESPACE_CLOSE_SCOPE
1169 
1170 #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:490
#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:559
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:87
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:84
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:419
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:135
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:229
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:112
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...