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"
31 #include "pxr/usd/usdGeom/boundable.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  UsdSchemaType _GetSchemaType() 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  // --------------------------------------------------------------------- //
381  USDGEOM_API
383 
389  USDGEOM_API
390  UsdAttribute CreateProtoIndicesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
391 
392 public:
393  // --------------------------------------------------------------------- //
394  // IDS
395  // --------------------------------------------------------------------- //
407  USDGEOM_API
408  UsdAttribute GetIdsAttr() const;
409 
415  USDGEOM_API
416  UsdAttribute CreateIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
417 
418 public:
419  // --------------------------------------------------------------------- //
420  // POSITIONS
421  // --------------------------------------------------------------------- //
429  USDGEOM_API
431 
437  USDGEOM_API
438  UsdAttribute CreatePositionsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
439 
440 public:
441  // --------------------------------------------------------------------- //
442  // ORIENTATIONS
443  // --------------------------------------------------------------------- //
461  USDGEOM_API
463 
469  USDGEOM_API
470  UsdAttribute CreateOrientationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
471 
472 public:
473  // --------------------------------------------------------------------- //
474  // SCALES
475  // --------------------------------------------------------------------- //
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  // --------------------------------------------------------------------- //
516  USDGEOM_API
518 
524  USDGEOM_API
525  UsdAttribute CreateVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
526 
527 public:
528  // --------------------------------------------------------------------- //
529  // ACCELERATIONS
530  // --------------------------------------------------------------------- //
542  USDGEOM_API
544 
550  USDGEOM_API
551  UsdAttribute CreateAccelerationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
552 
553 public:
554  // --------------------------------------------------------------------- //
555  // ANGULARVELOCITIES
556  // --------------------------------------------------------------------- //
570  USDGEOM_API
572 
578  USDGEOM_API
579  UsdAttribute CreateAngularVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
580 
581 public:
582  // --------------------------------------------------------------------- //
583  // INVISIBLEIDS
584  // --------------------------------------------------------------------- //
592  USDGEOM_API
594 
600  USDGEOM_API
601  UsdAttribute CreateInvisibleIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
602 
603 public:
604  // --------------------------------------------------------------------- //
605  // PROTOTYPES
606  // --------------------------------------------------------------------- //
615  USDGEOM_API
617 
620  USDGEOM_API
622 
623 public:
624  // ===================================================================== //
625  // Feel free to add custom code below this line, it will be preserved by
626  // the code generator.
627  //
628  // Just remember to:
629  // - Close the class declaration with };
630  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
631  // - Close the include guard with #endif
632  // ===================================================================== //
633  // --(BEGIN CUSTOM CODE)--
634 
635  // --------------------------------------------------------------------- //
639  // --------------------------------------------------------------------- //
640 
647  USDGEOM_API
648  bool ActivateId(int64_t id) const;
649 
656  USDGEOM_API
657  bool ActivateIds(VtInt64Array const &ids) const;
658 
664  USDGEOM_API
665  bool ActivateAllIds() const;
666 
672  USDGEOM_API
673  bool DeactivateId(int64_t id) const;
674 
680  USDGEOM_API
681  bool DeactivateIds(VtInt64Array const &ids) const;
682 
683 
694  USDGEOM_API
695  bool VisId(int64_t id, UsdTimeCode const &time) const;
696 
707  USDGEOM_API
708  bool VisIds(VtInt64Array const &ids, UsdTimeCode const &time) const;
709 
716  USDGEOM_API
717  bool VisAllIds(UsdTimeCode const &time) const;
718 
727  USDGEOM_API
728  bool InvisId(int64_t id, UsdTimeCode const &time) const;
729 
738  USDGEOM_API
739  bool InvisIds(VtInt64Array const &ids, UsdTimeCode const &time) const;
740 
758  USDGEOM_API
759  std::vector<bool> ComputeMaskAtTime(UsdTimeCode time,
760  VtInt64Array const *ids = nullptr) const;
761 
774  template <class T>
775  static bool ApplyMaskToArray(std::vector<bool> const &mask,
776  VtArray<T> *dataArray,
777  const int elementSize = 1);
778 
779  // --------------------------------------------------------------------- //
781  // --------------------------------------------------------------------- //
782 
790  };
791 
792 
801  };
802 
803 
860  USDGEOM_API
861  bool
863  VtArray<GfMatrix4d>* xforms,
864  const UsdTimeCode time,
865  const UsdTimeCode baseTime,
866  const ProtoXformInclusion doProtoXforms = IncludeProtoXform,
867  const MaskApplication applyMask = ApplyMask) const;
868 
876  USDGEOM_API
877  bool
879  std::vector<VtArray<GfMatrix4d>>* xformsArray,
880  const std::vector<UsdTimeCode>& times,
881  const UsdTimeCode baseTime,
882  const ProtoXformInclusion doProtoXforms = IncludeProtoXform,
883  const MaskApplication applyMask = ApplyMask) const;
884 
936  USDGEOM_API
937  static bool
939  VtArray<GfMatrix4d>* xforms,
940  UsdStageWeakPtr& stage,
941  UsdTimeCode time,
942  const VtIntArray& protoIndices,
943  const VtVec3fArray& positions,
944  const VtVec3fArray& velocities,
945  UsdTimeCode velocitiesSampleTime,
946  const VtVec3fArray& accelerations,
947  const VtVec3fArray& scales,
948  const VtQuathArray& orientations,
949  const VtVec3fArray& angularVelocities,
950  UsdTimeCode angularVelocitiesSampleTime,
951  const SdfPathVector& protoPaths,
952  const std::vector<bool>& mask,
953  float velocityScale = 1.0);
954 
955 private:
956 
957  // Get the authored prototype paths. Fail if there are no authored prototype
958  // paths or the prototype indices are out of bounds.
959  bool _GetPrototypePathsForInstanceTransforms(
960  const VtIntArray& protoIndices,
961  SdfPathVector* protoPaths) const;
962 
963  // Get the authored prototype indices for instance transform computation.
964  // Fail if prototype indices are not authored.
965  bool _GetProtoIndicesForInstanceTransforms(
966  UsdTimeCode baseTime,
967  VtIntArray* protoIndices) const;
968 
969  // Fetches data from attributes specific to UsdGeomPointInstancer
970  // required for instance transform calculations; this includes
971  // protoIndices, protoPaths, and the mask.
972  bool _ComputePointInstancerAttributesPreamble(
973  const UsdTimeCode baseTime,
974  const ProtoXformInclusion doProtoXforms,
975  const MaskApplication applyMask,
976  VtIntArray* protoIndices,
977  SdfPathVector* protoPaths,
978  std::vector<bool>* mask) const;
979 
980 public:
981 
1017  USDGEOM_API
1018  bool ComputeExtentAtTime(
1019  VtVec3fArray* extent,
1020  const UsdTimeCode time,
1021  const UsdTimeCode baseTime) const;
1022 
1025  USDGEOM_API
1026  bool ComputeExtentAtTime(
1027  VtVec3fArray* extent,
1028  const UsdTimeCode time,
1029  const UsdTimeCode baseTime,
1030  const GfMatrix4d& transform) const;
1031 
1045  USDGEOM_API
1046  bool ComputeExtentAtTimes(
1047  std::vector<VtVec3fArray>* extents,
1048  const std::vector<UsdTimeCode>& times,
1049  const UsdTimeCode baseTime) const;
1050 
1054  USDGEOM_API
1055  bool ComputeExtentAtTimes(
1056  std::vector<VtVec3fArray>* extents,
1057  const std::vector<UsdTimeCode>& times,
1058  const UsdTimeCode baseTime,
1059  const GfMatrix4d& transform) const;
1060 
1061 private:
1062 
1063  bool _ComputeExtentAtTimePreamble(
1064  UsdTimeCode baseTime,
1065  VtIntArray* protoIndices,
1066  std::vector<bool>* mask,
1067  UsdRelationship* prototypes,
1068  SdfPathVector* protoPaths) const;
1069 
1070  bool _ComputeExtentFromTransforms(
1071  VtVec3fArray* extent,
1072  const VtIntArray& protoIndices,
1073  const std::vector<bool>& mask,
1074  const UsdRelationship& prototypes,
1075  const SdfPathVector& protoPaths,
1076  const VtMatrix4dArray& instanceTransforms,
1077  UsdTimeCode time,
1078  const GfMatrix4d* transform) const;
1079 
1080  bool _ComputeExtentAtTime(
1081  VtVec3fArray* extent,
1082  const UsdTimeCode time,
1083  const UsdTimeCode baseTime,
1084  const GfMatrix4d* transform) const;
1085 
1086  bool _ComputeExtentAtTimes(
1087  std::vector<VtVec3fArray>* extent,
1088  const std::vector<UsdTimeCode>& times,
1089  const UsdTimeCode baseTime,
1090  const GfMatrix4d* transform) const;
1091 };
1092 
1093 template <class T>
1094 bool
1095 UsdGeomPointInstancer::ApplyMaskToArray(std::vector<bool> const &mask,
1096  VtArray<T> *dataArray,
1097  const int elementSize)
1098 {
1099  if (!dataArray) {
1100  TF_CODING_ERROR("NULL dataArray.");
1101  return false;
1102  }
1103  size_t maskSize = mask.size();
1104  if (maskSize == 0 || dataArray->size() == (size_t)elementSize){
1105  return true;
1106  }
1107  else if ((maskSize * elementSize) != dataArray->size()){
1108  TF_WARN("Input mask's size (%zu) is not compatible with the "
1109  "input dataArray (%zu) and elementSize (%d).",
1110  maskSize, dataArray->size(), elementSize);
1111  return false;
1112  }
1113 
1114  T* beginData = dataArray->data();
1115  T* currData = beginData;
1116  size_t numPreserved = 0;
1117  for (size_t i = 0; i < maskSize; ++i) {
1118  // XXX Could add a fast-path for elementSize == 1 ?
1119  if (mask[i]) {
1120  for (int j = 0; j < elementSize; ++j) {
1121  *currData = beginData[i + j];
1122  ++currData;
1123  }
1124  numPreserved += elementSize;
1125  }
1126  }
1127  if (numPreserved < dataArray->size()) {
1128  dataArray->resize(numPreserved);
1129  }
1130  return true;
1131 }
1132 
1135 USDGEOM_API
1136 bool
1138 
1142 USDGEOM_API
1143 bool
1144 UsdGeomPointInstancerSetOrMergeOverOp(std::vector<int64_t> const &items,
1145  SdfListOpType op,
1146  UsdPrim const &prim,
1147  TfToken const &metadataName);
1148 
1149 PXR_NAMESPACE_CLOSE_SCOPE
1150 
1151 #endif
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:153
#define TF_CODING_ERROR(fmt, args)
Issue an internal programming error, but continue execution.
Definition: diagnostic.h:87
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
Represents a concrete typed schema.
void resize(size_t newSize)
Resize this array.
Definition: array.h:481
USDGEOM_API UsdAttribute GetPositionsAttr() const
Required property.
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:89
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...
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...
UsdSchemaType
An enum representing which type of schema a given schema class belongs to.
Definition: common.h:149
pointer data()
Return a non-const pointer to this array&#39;s data.
Definition: array.h:383
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a &quot;Prim&quot; as ...
Definition: prim.h:131
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:438
size_t size() const
Return the total number of elements in this array.
Definition: array.h:428
USDGEOM_API bool ActivateId(int64_t id) const
Ensure that the instance identified by id is active over all time.
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:287
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 UsdSchemaType _GetSchemaType() const override
Returns the type of schema this class belongs to.
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:43
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.
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:70
USDGEOM_API UsdRelationship GetPrototypesRel() const
Required property.
Singleton registry that provides access to prim and property definition information for registered Us...
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)...
static const UsdSchemaType schemaType
Compile time constant representing what kind of schema this class is.
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 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:182