All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 
275 {
276 public:
281 
286  explicit UsdGeomPointInstancer(const UsdPrim& prim=UsdPrim())
287  : UsdGeomBoundable(prim)
288  {
289  }
290 
294  explicit UsdGeomPointInstancer(const UsdSchemaBase& schemaObj)
295  : UsdGeomBoundable(schemaObj)
296  {
297  }
298 
300  USDGEOM_API
301  virtual ~UsdGeomPointInstancer();
302 
306  USDGEOM_API
307  static const TfTokenVector &
308  GetSchemaAttributeNames(bool includeInherited=true);
309 
319  USDGEOM_API
320  static UsdGeomPointInstancer
321  Get(const UsdStagePtr &stage, const SdfPath &path);
322 
345  USDGEOM_API
346  static UsdGeomPointInstancer
347  Define(const UsdStagePtr &stage, const SdfPath &path);
348 
349 protected:
353  USDGEOM_API
354  UsdSchemaKind _GetSchemaKind() const override;
355 
356 private:
357  // needs to invoke _GetStaticTfType.
358  friend class UsdSchemaRegistry;
359  USDGEOM_API
360  static const TfType &_GetStaticTfType();
361 
362  static bool _IsTypedSchema();
363 
364  // override SchemaBase virtuals.
365  USDGEOM_API
366  const TfType &_GetTfType() const override;
367 
368 public:
369  // --------------------------------------------------------------------- //
370  // PROTOINDICES
371  // --------------------------------------------------------------------- //
382  USDGEOM_API
384 
390  USDGEOM_API
391  UsdAttribute CreateProtoIndicesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
392 
393 public:
394  // --------------------------------------------------------------------- //
395  // IDS
396  // --------------------------------------------------------------------- //
409  USDGEOM_API
410  UsdAttribute GetIdsAttr() const;
411 
417  USDGEOM_API
418  UsdAttribute CreateIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
419 
420 public:
421  // --------------------------------------------------------------------- //
422  // POSITIONS
423  // --------------------------------------------------------------------- //
432  USDGEOM_API
434 
440  USDGEOM_API
441  UsdAttribute CreatePositionsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
442 
443 public:
444  // --------------------------------------------------------------------- //
445  // ORIENTATIONS
446  // --------------------------------------------------------------------- //
465  USDGEOM_API
467 
473  USDGEOM_API
474  UsdAttribute CreateOrientationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
475 
476 public:
477  // --------------------------------------------------------------------- //
478  // SCALES
479  // --------------------------------------------------------------------- //
490  USDGEOM_API
491  UsdAttribute GetScalesAttr() const;
492 
498  USDGEOM_API
499  UsdAttribute CreateScalesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
500 
501 public:
502  // --------------------------------------------------------------------- //
503  // VELOCITIES
504  // --------------------------------------------------------------------- //
522  USDGEOM_API
524 
530  USDGEOM_API
531  UsdAttribute CreateVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
532 
533 public:
534  // --------------------------------------------------------------------- //
535  // ACCELERATIONS
536  // --------------------------------------------------------------------- //
549  USDGEOM_API
551 
557  USDGEOM_API
558  UsdAttribute CreateAccelerationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
559 
560 public:
561  // --------------------------------------------------------------------- //
562  // ANGULARVELOCITIES
563  // --------------------------------------------------------------------- //
578  USDGEOM_API
580 
586  USDGEOM_API
587  UsdAttribute CreateAngularVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
588 
589 public:
590  // --------------------------------------------------------------------- //
591  // INVISIBLEIDS
592  // --------------------------------------------------------------------- //
601  USDGEOM_API
603 
609  USDGEOM_API
610  UsdAttribute CreateInvisibleIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
611 
612 public:
613  // --------------------------------------------------------------------- //
614  // PROTOTYPES
615  // --------------------------------------------------------------------- //
624  USDGEOM_API
626 
629  USDGEOM_API
631 
632 public:
633  // ===================================================================== //
634  // Feel free to add custom code below this line, it will be preserved by
635  // the code generator.
636  //
637  // Just remember to:
638  // - Close the class declaration with };
639  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
640  // - Close the include guard with #endif
641  // ===================================================================== //
642  // --(BEGIN CUSTOM CODE)--
643 
644  // --------------------------------------------------------------------- //
648  // --------------------------------------------------------------------- //
649 
656  USDGEOM_API
657  bool ActivateId(int64_t id) const;
658 
665  USDGEOM_API
666  bool ActivateIds(VtInt64Array const &ids) const;
667 
673  USDGEOM_API
674  bool ActivateAllIds() const;
675 
681  USDGEOM_API
682  bool DeactivateId(int64_t id) const;
683 
689  USDGEOM_API
690  bool DeactivateIds(VtInt64Array const &ids) const;
691 
692 
703  USDGEOM_API
704  bool VisId(int64_t id, UsdTimeCode const &time) const;
705 
716  USDGEOM_API
717  bool VisIds(VtInt64Array const &ids, UsdTimeCode const &time) const;
718 
725  USDGEOM_API
726  bool VisAllIds(UsdTimeCode const &time) const;
727 
736  USDGEOM_API
737  bool InvisId(int64_t id, UsdTimeCode const &time) const;
738 
747  USDGEOM_API
748  bool InvisIds(VtInt64Array const &ids, UsdTimeCode const &time) const;
749 
767  USDGEOM_API
768  std::vector<bool> ComputeMaskAtTime(UsdTimeCode time,
769  VtInt64Array const *ids = nullptr) const;
770 
783  template <class T>
784  static bool ApplyMaskToArray(std::vector<bool> const &mask,
785  VtArray<T> *dataArray,
786  const int elementSize = 1);
787 
788  // --------------------------------------------------------------------- //
790  // --------------------------------------------------------------------- //
791 
799  };
800 
801 
810  };
811 
812 
869  USDGEOM_API
870  bool
872  VtArray<GfMatrix4d>* xforms,
873  const UsdTimeCode time,
874  const UsdTimeCode baseTime,
875  const ProtoXformInclusion doProtoXforms = IncludeProtoXform,
876  const MaskApplication applyMask = ApplyMask) const;
877 
885  USDGEOM_API
886  bool
888  std::vector<VtArray<GfMatrix4d>>* xformsArray,
889  const std::vector<UsdTimeCode>& times,
890  const UsdTimeCode baseTime,
891  const ProtoXformInclusion doProtoXforms = IncludeProtoXform,
892  const MaskApplication applyMask = ApplyMask) const;
893 
945  USDGEOM_API
946  static bool
948  VtArray<GfMatrix4d>* xforms,
949  UsdStageWeakPtr& stage,
950  UsdTimeCode time,
951  const VtIntArray& protoIndices,
952  const VtVec3fArray& positions,
953  const VtVec3fArray& velocities,
954  UsdTimeCode velocitiesSampleTime,
955  const VtVec3fArray& accelerations,
956  const VtVec3fArray& scales,
957  const VtQuathArray& orientations,
958  const VtVec3fArray& angularVelocities,
959  UsdTimeCode angularVelocitiesSampleTime,
960  const SdfPathVector& protoPaths,
961  const std::vector<bool>& mask,
962  float velocityScale = 1.0);
963 
964 private:
965 
966  // Get the authored prototype paths. Fail if there are no authored prototype
967  // paths or the prototype indices are out of bounds.
968  bool _GetPrototypePathsForInstanceTransforms(
969  const VtIntArray& protoIndices,
970  SdfPathVector* protoPaths) const;
971 
972  // Get the authored prototype indices for instance transform computation.
973  // Fail if prototype indices are not authored.
974  bool _GetProtoIndicesForInstanceTransforms(
975  UsdTimeCode baseTime,
976  VtIntArray* protoIndices) const;
977 
978  // Fetches data from attributes specific to UsdGeomPointInstancer
979  // required for instance transform calculations; this includes
980  // protoIndices, protoPaths, and the mask.
981  bool _ComputePointInstancerAttributesPreamble(
982  const UsdTimeCode baseTime,
983  const ProtoXformInclusion doProtoXforms,
984  const MaskApplication applyMask,
985  VtIntArray* protoIndices,
986  SdfPathVector* protoPaths,
987  std::vector<bool>* mask) const;
988 
989 public:
990 
1026  USDGEOM_API
1027  bool ComputeExtentAtTime(
1028  VtVec3fArray* extent,
1029  const UsdTimeCode time,
1030  const UsdTimeCode baseTime) const;
1031 
1034  USDGEOM_API
1035  bool ComputeExtentAtTime(
1036  VtVec3fArray* extent,
1037  const UsdTimeCode time,
1038  const UsdTimeCode baseTime,
1039  const GfMatrix4d& transform) const;
1040 
1054  USDGEOM_API
1055  bool ComputeExtentAtTimes(
1056  std::vector<VtVec3fArray>* extents,
1057  const std::vector<UsdTimeCode>& times,
1058  const UsdTimeCode baseTime) const;
1059 
1063  USDGEOM_API
1064  bool ComputeExtentAtTimes(
1065  std::vector<VtVec3fArray>* extents,
1066  const std::vector<UsdTimeCode>& times,
1067  const UsdTimeCode baseTime,
1068  const GfMatrix4d& transform) const;
1069 
1075  USDGEOM_API
1076  size_t GetInstanceCount(UsdTimeCode timeCode = UsdTimeCode::Default()) const;
1077 
1078 private:
1079 
1080  bool _ComputeExtentAtTimePreamble(
1081  UsdTimeCode baseTime,
1082  VtIntArray* protoIndices,
1083  std::vector<bool>* mask,
1084  UsdRelationship* prototypes,
1085  SdfPathVector* protoPaths) const;
1086 
1087  bool _ComputeExtentFromTransforms(
1088  VtVec3fArray* extent,
1089  const VtIntArray& protoIndices,
1090  const std::vector<bool>& mask,
1091  const UsdRelationship& prototypes,
1092  const SdfPathVector& protoPaths,
1093  const VtMatrix4dArray& instanceTransforms,
1094  UsdTimeCode time,
1095  const GfMatrix4d* transform) const;
1096 
1097  bool _ComputeExtentAtTime(
1098  VtVec3fArray* extent,
1099  const UsdTimeCode time,
1100  const UsdTimeCode baseTime,
1101  const GfMatrix4d* transform) const;
1102 
1103  bool _ComputeExtentAtTimes(
1104  std::vector<VtVec3fArray>* extent,
1105  const std::vector<UsdTimeCode>& times,
1106  const UsdTimeCode baseTime,
1107  const GfMatrix4d* transform) const;
1108 };
1109 
1110 template <class T>
1111 bool
1112 UsdGeomPointInstancer::ApplyMaskToArray(std::vector<bool> const &mask,
1113  VtArray<T> *dataArray,
1114  const int elementSize)
1115 {
1116  if (!dataArray) {
1117  TF_CODING_ERROR("NULL dataArray.");
1118  return false;
1119  }
1120  size_t maskSize = mask.size();
1121  if (maskSize == 0 || dataArray->size() == (size_t)elementSize){
1122  return true;
1123  }
1124  else if ((maskSize * elementSize) != dataArray->size()){
1125  TF_WARN("Input mask's size (%zu) is not compatible with the "
1126  "input dataArray (%zu) and elementSize (%d).",
1127  maskSize, dataArray->size(), elementSize);
1128  return false;
1129  }
1130 
1131  T* beginData = dataArray->data();
1132  T* currData = beginData;
1133  size_t numPreserved = 0;
1134  for (size_t i = 0; i < maskSize; ++i) {
1135  // XXX Could add a fast-path for elementSize == 1 ?
1136  if (mask[i]) {
1137  for (int j = 0; j < elementSize; ++j) {
1138  *currData = beginData[i + j];
1139  ++currData;
1140  }
1141  numPreserved += elementSize;
1142  }
1143  }
1144  if (numPreserved < dataArray->size()) {
1145  dataArray->resize(numPreserved);
1146  }
1147  return true;
1148 }
1149 
1152 USDGEOM_API
1153 bool
1155 
1159 USDGEOM_API
1160 bool
1161 UsdGeomPointInstancerSetOrMergeOverOp(std::vector<int64_t> const &items,
1162  SdfListOpType op,
1163  UsdPrim const &prim,
1164  TfToken const &metadataName);
1165 
1166 PXR_NAMESPACE_CLOSE_SCOPE
1167 
1168 #endif
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 UsdRelationship CreatePrototypesRel() const
See GetPrototypesRel(), and also Create vs Get Property Methods for when to use Get vs Create...
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...
USDGEOM_API bool InvisId(int64_t id, UsdTimeCode const &time) const
Ensure that the instance identified by id is invisible at time.
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 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 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.
UsdGeomPointInstancer(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomPointInstancer on UsdPrim prim .
USDGEOM_API UsdAttribute GetAccelerationsAttr() const
If authored, per-instance &#39;accelerations&#39; will be used with velocities to compute positions between s...
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...
USDGEOM_API bool DeactivateId(int64_t id) const
Ensure that the instance identified by id is inactive over all time.
#define TF_WARN(...)
Issue a warning, but continue execution.
Definition: diagnostic.h:149
#define TF_CODING_ERROR(fmt, args)
Issue an internal programming error, but continue execution.
Definition: diagnostic.h:85
ProtoXformInclusion
Encodes whether to include each prototype&#39;s root prim&#39;s transformation as the most-local component of...
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...
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 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...
Exclude the transform on the proto&#39;s root.
Scenegraph object for authoring and retrieving numeric, string, and array valued data, sampled over time.
Definition: attribute.h:176
void resize(size_t newSize)
Resize this array.
Definition: array.h:564
USDGEOM_API UsdAttribute GetPositionsAttr() const
Required property.
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
USDGEOM_API bool DeactivateIds(VtInt64Array const &ids) const
Ensure that the instances identified by ids are inactive over all time.
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 bool InvisIds(VtInt64Array const &ids, UsdTimeCode const &time) const
Ensure that the instances identified by ids are invisible at time.
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:87
USDGEOM_API UsdAttribute GetAngularVelocitiesAttr() const
If authored, per-instance angular velocity vector to be used for interoplating orientations.
Include the transform on the proto&#39;s root.
USDGEOM_API UsdAttribute GetOrientationsAttr() const
If authored, per-instance orientation of each instance about its prototype&#39;s origin, represented as a unit length quaternion, which allows us to encode it with sufficient precision in a compact GfQuath.
USDGEOM_API bool ActivateIds(VtInt64Array const &ids) const
Ensure that the instances identified by ids are active over all time.
USDGEOM_API UsdAttribute GetIdsAttr() const
Ids are optional; if authored, the ids array should be the same length as the protoIndices array...
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 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...
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, extent.
Definition: boundable.h:82
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...
Represents a concrete typed schema.
pointer data()
Return a non-const pointer to this array&#39;s data.
Definition: array.h:437
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a &quot;Prim&quot; as ...
Definition: prim.h:132
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:442
size_t size() const
Return the total number of elements in this array.
Definition: array.h:505
USDGEOM_API bool ActivateId(int64_t id) const
Ensure that the instance identified by id is active over all time.
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:288
USDGEOM_API UsdAttribute GetScalesAttr() const
If authored, per-instance scale to be applied to each instance, before any rotation is applied...
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 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...
MaskApplication
Encodes whether to evaluate and apply the PointInstancer&#39;s mask to computed results.
USDGEOM_API UsdAttribute GetVelocitiesAttr() const
If provided, per-instance &#39;velocities&#39; will be used to compute positions between samples for the &#39;pos...
USDGEOM_API UsdAttribute GetProtoIndicesAttr() const
Required property.
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
USDGEOM_API bool ActivateAllIds() const
Ensure that all instances are active over all time.
USDGEOM_API UsdAttribute GetInvisibleIdsAttr() const
A list of id&#39;s to make invisible at the evaluation time.
USDGEOM_API bool VisId(int64_t id, UsdTimeCode const &time) const
Ensure that the instance identified by id is visible at time.
static constexpr UsdTimeCode Default()
Produce a UsdTimeCode representing the sentinel value for &#39;default&#39;.
Definition: timeCode.h:113
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, &quot;PointInstancer relative&quot; transf...
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...
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...
TfType represents a dynamic runtime type.
Definition: type.h:64
USDGEOM_API UsdRelationship GetPrototypesRel() const
Required property.
Singleton registry that provides access to schema type information and the prim definitions for regis...
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 ...
Encodes vectorized instancing of multiple, potentially animated, prototypes (object/instance masters)...
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, &quot;PointInstancer relative&quot; transforms given the positions, scales, orientations, velocities and angularVelocities at time, as described in Computing an Instance Transform .
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...
USDGEOM_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
USDGEOM_API bool VisAllIds(UsdTimeCode const &time) const
Ensure that all instances are visible at 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.
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 ...
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:168
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...