Loading...
Searching...
No Matches
pointBased.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_POINTBASED_H
25#define USDGEOM_GENERATED_POINTBASED_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// POINTBASED //
51// -------------------------------------------------------------------------- //
52
59{
60public:
64 static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractTyped;
65
70 explicit UsdGeomPointBased(const UsdPrim& prim=UsdPrim())
71 : UsdGeomGprim(prim)
72 {
73 }
74
78 explicit UsdGeomPointBased(const UsdSchemaBase& schemaObj)
79 : UsdGeomGprim(schemaObj)
80 {
81 }
82
84 USDGEOM_API
86
90 USDGEOM_API
91 static const TfTokenVector &
92 GetSchemaAttributeNames(bool includeInherited=true);
93
103 USDGEOM_API
104 static UsdGeomPointBased
105 Get(const UsdStagePtr &stage, const SdfPath &path);
106
107
108protected:
112 USDGEOM_API
114
115private:
116 // needs to invoke _GetStaticTfType.
117 friend class UsdSchemaRegistry;
118 USDGEOM_API
119 static const TfType &_GetStaticTfType();
120
121 static bool _IsTypedSchema();
122
123 // override SchemaBase virtuals.
124 USDGEOM_API
125 const TfType &_GetTfType() const override;
126
127public:
128 // --------------------------------------------------------------------- //
129 // POINTS
130 // --------------------------------------------------------------------- //
139 USDGEOM_API
141
147 USDGEOM_API
148 UsdAttribute CreatePointsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
149
150public:
151 // --------------------------------------------------------------------- //
152 // VELOCITIES
153 // --------------------------------------------------------------------- //
172 USDGEOM_API
174
180 USDGEOM_API
181 UsdAttribute CreateVelocitiesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
182
183public:
184 // --------------------------------------------------------------------- //
185 // ACCELERATIONS
186 // --------------------------------------------------------------------- //
199 USDGEOM_API
201
207 USDGEOM_API
208 UsdAttribute CreateAccelerationsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
209
210public:
211 // --------------------------------------------------------------------- //
212 // NORMALS
213 // --------------------------------------------------------------------- //
228 USDGEOM_API
230
236 USDGEOM_API
237 UsdAttribute CreateNormalsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
238
239public:
240 // ===================================================================== //
241 // Feel free to add custom code below this line, it will be preserved by
242 // the code generator.
243 //
244 // Just remember to:
245 // - Close the class declaration with };
246 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
247 // - Close the include guard with #endif
248 // ===================================================================== //
249 // --(BEGIN CUSTOM CODE)--
250
262 USDGEOM_API
264
275 USDGEOM_API
276 bool SetNormalsInterpolation(TfToken const &interpolation);
277
288 USDGEOM_API
289 static bool ComputeExtent(const VtVec3fArray& points, VtVec3fArray* extent);
290
293 USDGEOM_API
294 static bool ComputeExtent(const VtVec3fArray& points,
295 const GfMatrix4d& transform, VtVec3fArray* extent);
296
297public:
335 USDGEOM_API
336 bool
338 VtArray<GfVec3f>* points,
339 const UsdTimeCode time,
340 const UsdTimeCode baseTime) const;
341
348 USDGEOM_API
349 bool
351 std::vector<VtArray<GfVec3f>>* pointsArray,
352 const std::vector<UsdTimeCode>& times,
353 const UsdTimeCode baseTime) const;
354
377 USDGEOM_API
378 static bool
380 VtArray<GfVec3f>* points,
381 UsdStageWeakPtr& stage,
382 UsdTimeCode time,
383 const VtVec3fArray& positions,
384 const VtVec3fArray& velocities,
385 UsdTimeCode velocitiesSampleTime,
386 const VtVec3fArray& accelerations,
387 float velocityScale=1.0);
388
389};
390
391PXR_NAMESPACE_CLOSE_SCOPE
392
393#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
Base class for all geometric primitives.
Definition: gprim.h:67
Base class for all UsdGeomGprims that possess points, providing common attributes such as normals and...
Definition: pointBased.h:59
USDGEOM_API bool ComputePointsAtTime(VtArray< GfVec3f > *points, const UsdTimeCode time, const UsdTimeCode baseTime) const
Compute points given the positions, velocities and accelerations at time.
USDGEOM_API UsdAttribute CreateNormalsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetNormalsAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
USDGEOM_API UsdAttribute GetVelocitiesAttr() const
If provided, 'velocities' should be used by renderers to.
USDGEOM_API UsdAttribute CreatePointsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetPointsAttr(), 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.
Definition: pointBased.h:64
static USDGEOM_API bool ComputeExtent(const VtVec3fArray &points, const GfMatrix4d &transform, VtVec3fArray *extent)
This is an overloaded member function, provided for convenience. It differs from the above function o...
USDGEOM_API bool SetNormalsInterpolation(TfToken const &interpolation)
Set the interpolation for the normals attribute.
static USDGEOM_API bool ComputeExtent(const VtVec3fArray &points, VtVec3fArray *extent)
Compute the extent for the point cloud defined by points.
USDGEOM_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
USDGEOM_API bool ComputePointsAtTimes(std::vector< VtArray< GfVec3f > > *pointsArray, const std::vector< UsdTimeCode > &times, const UsdTimeCode baseTime) const
Compute points as in ComputePointsAtTime, but using multiple sample times.
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...
UsdGeomPointBased(const UsdSchemaBase &schemaObj)
Construct a UsdGeomPointBased on the prim held by schemaObj .
Definition: pointBased.h:78
UsdGeomPointBased(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomPointBased on UsdPrim prim .
Definition: pointBased.h:70
static USDGEOM_API UsdGeomPointBased Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdGeomPointBased holding the prim adhering to this schema at path on stage.
static USDGEOM_API bool ComputePointsAtTime(VtArray< GfVec3f > *points, UsdStageWeakPtr &stage, UsdTimeCode time, const VtVec3fArray &positions, const VtVec3fArray &velocities, UsdTimeCode velocitiesSampleTime, const VtVec3fArray &accelerations, float velocityScale=1.0)
This is an overloaded member function, provided for convenience. It differs from the above function o...
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 GetAccelerationsAttr() const
If provided, 'accelerations' should be used with velocities to compute positions between samples for ...
virtual USDGEOM_API ~UsdGeomPointBased()
Destructor.
USDGEOM_API UsdAttribute GetNormalsAttr() const
Provide an object-space orientation for individual points, which, depending on subclass,...
USDGEOM_API UsdAttribute GetPointsAttr() const
The primary geometry attribute for all PointBased primitives, describes points in (local) space.
USDGEOM_API TfToken GetNormalsInterpolation() const
Get the interpolation for the normals attribute.
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.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:134
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
Represents an arbitrary dimensional rectangular container class.
Definition: array.h:228
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:165
UsdSchemaKind
An enum representing which kind of schema a given schema class belongs to.
Definition: common.h:129
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:457