Loading...
Searching...
No Matches
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"
35
36#include "pxr/base/vt/value.h"
37
38#include "pxr/base/gf/vec3d.h"
39#include "pxr/base/gf/vec3f.h"
41
42#include "pxr/base/tf/token.h"
43#include "pxr/base/tf/type.h"
44
45PXR_NAMESPACE_OPEN_SCOPE
46
47class SdfAssetPath;
48
49// -------------------------------------------------------------------------- //
50// POINTINSTANCER //
51// -------------------------------------------------------------------------- //
52
279{
280public:
284 static const UsdSchemaKind schemaKind = UsdSchemaKind::ConcreteTyped;
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
306
310 USDGEOM_API
311 static const TfTokenVector &
312 GetSchemaAttributeNames(bool includeInherited=true);
313
323 USDGEOM_API
325 Get(const UsdStagePtr &stage, const SdfPath &path);
326
349 USDGEOM_API
351 Define(const UsdStagePtr &stage, const SdfPath &path);
352
353protected:
357 USDGEOM_API
359
360private:
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
372public:
373 // --------------------------------------------------------------------- //
374 // PROTOINDICES
375 // --------------------------------------------------------------------- //
386 USDGEOM_API
388
394 USDGEOM_API
395 UsdAttribute CreateProtoIndicesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
396
397public:
398 // --------------------------------------------------------------------- //
399 // IDS
400 // --------------------------------------------------------------------- //
413 USDGEOM_API
415
421 USDGEOM_API
422 UsdAttribute CreateIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
423
424public:
425 // --------------------------------------------------------------------- //
426 // POSITIONS
427 // --------------------------------------------------------------------- //
436 USDGEOM_API
438
444 USDGEOM_API
445 UsdAttribute CreatePositionsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
446
447public:
448 // --------------------------------------------------------------------- //
449 // ORIENTATIONS
450 // --------------------------------------------------------------------- //
469 USDGEOM_API
471
477 USDGEOM_API
478 UsdAttribute CreateOrientationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
479
480public:
481 // --------------------------------------------------------------------- //
482 // SCALES
483 // --------------------------------------------------------------------- //
494 USDGEOM_API
496
502 USDGEOM_API
503 UsdAttribute CreateScalesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
504
505public:
506 // --------------------------------------------------------------------- //
507 // VELOCITIES
508 // --------------------------------------------------------------------- //
526 USDGEOM_API
528
534 USDGEOM_API
535 UsdAttribute CreateVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
536
537public:
538 // --------------------------------------------------------------------- //
539 // ACCELERATIONS
540 // --------------------------------------------------------------------- //
553 USDGEOM_API
555
561 USDGEOM_API
562 UsdAttribute CreateAccelerationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
563
564public:
565 // --------------------------------------------------------------------- //
566 // ANGULARVELOCITIES
567 // --------------------------------------------------------------------- //
582 USDGEOM_API
584
590 USDGEOM_API
591 UsdAttribute CreateAngularVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
592
593public:
594 // --------------------------------------------------------------------- //
595 // INVISIBLEIDS
596 // --------------------------------------------------------------------- //
605 USDGEOM_API
607
613 USDGEOM_API
614 UsdAttribute CreateInvisibleIdsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
615
616public:
617 // --------------------------------------------------------------------- //
618 // PROTOTYPES
619 // --------------------------------------------------------------------- //
628 USDGEOM_API
630
633 USDGEOM_API
635
636public:
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
966private:
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
991public:
992
1028 USDGEOM_API
1030 VtVec3fArray* extent,
1031 const UsdTimeCode time,
1032 const UsdTimeCode baseTime) const;
1033
1036 USDGEOM_API
1038 VtVec3fArray* extent,
1039 const UsdTimeCode time,
1040 const UsdTimeCode baseTime,
1041 const GfMatrix4d& transform) const;
1042
1056 USDGEOM_API
1058 std::vector<VtVec3fArray>* extents,
1059 const std::vector<UsdTimeCode>& times,
1060 const UsdTimeCode baseTime) const;
1061
1065 USDGEOM_API
1067 std::vector<VtVec3fArray>* extents,
1068 const std::vector<UsdTimeCode>& times,
1069 const UsdTimeCode baseTime,
1070 const GfMatrix4d& transform) const;
1071
1077 USDGEOM_API
1079
1080private:
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
1112template <class T>
1113bool
1114UsdGeomPointInstancer::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
1154USDGEOM_API
1155bool
1157
1161USDGEOM_API
1162bool
1163UsdGeomPointInstancerSetOrMergeOverOp(std::vector<int64_t> const &items,
1164 SdfListOpType op,
1165 UsdPrim const &prim,
1166 TfToken const &metadataName);
1167
1168PXR_NAMESPACE_CLOSE_SCOPE
1169
1170#endif
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:88
Contains an asset path and an optional resolved path.
Definition: assetPath.h:47
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:291
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:88
TfType represents a dynamic runtime type.
Definition: type.h:65
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
Definition: attribute.h:176
Boundable introduces the ability for a prim to persistently cache a rectilinear, local-space,...
Definition: boundable.h:83
Encodes vectorized instancing of multiple, potentially animated, prototypes (object/instance masters)...
USDGEOM_API UsdAttribute GetScalesAttr() const
If authored, per-instance scale to be applied to each instance, before any rotation is applied.
USDGEOM_API bool VisIds(VtInt64Array const &ids, UsdTimeCode const &time) const
Ensure that the instances identified by ids are visible at time.
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 UsdAttribute GetProtoIndicesAttr() const
Required property.
USDGEOM_API bool ActivateIds(VtInt64Array const &ids) const
Ensure that the instances identified by ids are active over all time.
USDGEOM_API bool DeactivateIds(VtInt64Array const &ids) const
Ensure that the instances identified by ids are inactive over all time.
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 ComputeExtentAtTime(VtVec3fArray *extent, const UsdTimeCode time, const UsdTimeCode baseTime, const GfMatrix4d &transform) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
static USDGEOM_API bool ComputeInstanceTransformsAtTime(VtArray< GfMatrix4d > *xforms, UsdStageWeakPtr &stage, UsdTimeCode time, const VtIntArray &protoIndices, const VtVec3fArray &positions, const VtVec3fArray &velocities, UsdTimeCode velocitiesSampleTime, const VtVec3fArray &accelerations, const VtVec3fArray &scales, const VtQuathArray &orientations, const VtVec3fArray &angularVelocities, UsdTimeCode angularVelocitiesSampleTime, const SdfPathVector &protoPaths, const std::vector< bool > &mask, float velocityScale=1.0)
This is an overloaded member function, provided for convenience. It differs from the above function o...
USDGEOM_API UsdAttribute GetVelocitiesAttr() const
If provided, per-instance 'velocities' will be used to compute positions between samples for the 'pos...
USDGEOM_API UsdAttribute GetPositionsAttr() const
Required property.
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
UsdGeomPointInstancer(const UsdSchemaBase &schemaObj)
Construct a UsdGeomPointInstancer on the prim held by schemaObj .
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 UsdAttribute GetInvisibleIdsAttr() const
A list of id's to make invisible at the evaluation time.
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.
virtual USDGEOM_API ~UsdGeomPointInstancer()
Destructor.
USDGEOM_API UsdRelationship GetPrototypesRel() const
Required property.
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,...
USDGEOM_API bool ComputeExtentAtTimes(std::vector< VtVec3fArray > *extents, const std::vector< UsdTimeCode > &times, const UsdTimeCode baseTime, const GfMatrix4d &transform) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
USDGEOM_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
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,...
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 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.
USDGEOM_API bool ActivateAllIds() const
Ensure that all instances are active over all time.
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.
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 bool ActivateId(int64_t id) const
Ensure that the instance identified by id is active over all 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 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...
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 bool VisAllIds(UsdTimeCode const &time) const
Ensure that all instances are visible at 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 InvisId(int64_t id, UsdTimeCode const &time) const
Ensure that the instance identified by id is invisible at time.
ProtoXformInclusion
Encodes whether to include each prototype's root prim's transformation as the most-local component of...
@ ExcludeProtoXform
Exclude the transform on the proto's root.
@ IncludeProtoXform
Include the transform on the proto's root.
MaskApplication
Encodes whether to evaluate and apply the PointInstancer's mask to computed results.
@ ApplyMask
Compute and apply the PointInstancer mask.
@ IgnoreMask
Ignore the PointInstancer mask.
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 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 UsdAttribute GetIdsAttr() const
Ids are optional; if authored, the ids array should be the same length as the protoIndices array,...
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 bool VisId(int64_t id, UsdTimeCode const &time) const
Ensure that the instance identified by id is visible at time.
USDGEOM_API UsdAttribute GetAccelerationsAttr() const
If authored, per-instance 'accelerations' will be used with velocities to compute positions between s...
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 .
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 GetOrientationsAttr() const
If authored, per-instance orientation of each instance about its prototype's origin,...
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.
UsdGeomPointInstancer(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomPointInstancer on UsdPrim prim .
USDGEOM_API bool DeactivateId(int64_t id) const
Ensure that the instance identified by id is inactive over all time.
USDGEOM_API UsdAttribute GetAngularVelocitiesAttr() const
If authored, per-instance angular velocity vector to be used for interoplating orientations.
USDGEOM_API UsdRelationship CreatePrototypesRel() const
See GetPrototypesRel(), and also Create vs Get Property Methods for when to use Get vs Create.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:134
A UsdRelationship creates dependencies between scenegraph objects by allowing a prim to target other ...
Definition: relationship.h:128
The base class for all schema types in Usd.
Definition: schemaBase.h:56
Singleton registry that provides access to schema type information and the prim definitions for regis...
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:84
static constexpr UsdTimeCode Default()
Produce a UsdTimeCode representing the sentinel value for 'default'.
Definition: timeCode.h:112
Represents an arbitrary dimensional rectangular container class.
Definition: array.h:227
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:164
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:127
size_t size() const
Return the total number of elements in this array.
Definition: array.h:488
pointer data()
Return a non-const pointer to this array's data.
Definition: array.h:417
void resize(size_t newSize)
Resize this array.
Definition: array.h:557
#define TF_CODING_ERROR(fmt, args)
Issue an internal programming error, but continue execution.
Definition: diagnostic.h:85
#define TF_WARN(...)
Issue a warning, but continue execution.
Definition: diagnostic.h:149
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 bool UsdGeomPointInstancerApplyNewStyleListOps()
Returns true if list ops should be composed with SdfListOp::ApplyOperations() Returns false if list o...
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:442