HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
particleField3DGaussianSplat.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef USDVOL_GENERATED_PARTICLEFIELD3DGAUSSIANSPLAT_H
8 #define USDVOL_GENERATED_PARTICLEFIELD3DGAUSSIANSPLAT_H
9 
10 /// \file usdVol/particleField3DGaussianSplat.h
11 
12 #include "pxr/pxr.h"
13 #include "pxr/usd/usdVol/api.h"
15 #include "pxr/usd/usd/prim.h"
16 #include "pxr/usd/usd/stage.h"
17 #include "pxr/usd/usdVol/tokens.h"
18 
25 
26 
27 #include "pxr/base/vt/value.h"
28 
29 #include "pxr/base/gf/vec3d.h"
30 #include "pxr/base/gf/vec3f.h"
31 #include "pxr/base/gf/matrix4d.h"
32 
33 #include "pxr/base/tf/token.h"
34 #include "pxr/base/tf/type.h"
35 
37 
38 class SdfAssetPath;
39 
40 // -------------------------------------------------------------------------- //
41 // PARTICLEFIELD3DGAUSSIANSPLAT //
42 // -------------------------------------------------------------------------- //
43 
44 /// \class UsdVolParticleField3DGaussianSplat
45 ///
46 /// This is a concrete ParticleField representing the original 3D
47 /// Gaussian Splats technique (https://arxiv.org/abs/2308.04079).
48 ///
49 /// It inherits from the ParticleField base prim, and has a set of
50 /// applied schema automatically applied to provide the required
51 /// attributes to define the necessary data from the original 3DGS paper.
52 ///
53 /// It also contains some rendering hints that can optionally inform
54 /// how the splats should be rendered. These hints typically
55 /// corrolate with choices that were made when the data was trained.
56 ///
57 /// For any described attribute \em Fallback \em Value or \em Allowed \em Values below
58 /// that are text/tokens, the actual token is published and defined in \ref UsdVolTokens.
59 /// So to set an attribute to the value "rightHanded", use UsdVolTokens->rightHanded
60 /// as the value.
61 ///
63 {
64 public:
65  /// Compile time constant representing what kind of schema this class is.
66  ///
67  /// \sa UsdSchemaKind
69 
70  /// Construct a UsdVolParticleField3DGaussianSplat on UsdPrim \p prim .
71  /// Equivalent to UsdVolParticleField3DGaussianSplat::Get(prim.GetStage(), prim.GetPath())
72  /// for a \em valid \p prim, but will not immediately throw an error for
73  /// an invalid \p prim
75  : UsdVolParticleField(prim)
76  {
77  }
78 
79  /// Construct a UsdVolParticleField3DGaussianSplat on the prim held by \p schemaObj .
80  /// Should be preferred over UsdVolParticleField3DGaussianSplat(schemaObj.GetPrim()),
81  /// as it preserves SchemaBase state.
83  : UsdVolParticleField(schemaObj)
84  {
85  }
86 
87  /// Destructor.
90 
91  /// Return a vector of names of all pre-declared attributes for this schema
92  /// class and all its ancestor classes. Does not include attributes that
93  /// may be authored by custom/extended methods of the schemas involved.
95  static const TfTokenVector &
96  GetSchemaAttributeNames(bool includeInherited=true);
97 
98  /// Return a UsdVolParticleField3DGaussianSplat holding the prim adhering to this
99  /// schema at \p path on \p stage. If no prim exists at \p path on
100  /// \p stage, or if the prim at that path does not adhere to this schema,
101  /// return an invalid schema object. This is shorthand for the following:
102  ///
103  /// \code
104  /// UsdVolParticleField3DGaussianSplat(stage->GetPrimAtPath(path));
105  /// \endcode
106  ///
107  USDVOL_API
109  Get(const UsdStagePtr &stage, const SdfPath &path);
110 
111  /// Attempt to ensure a \a UsdPrim adhering to this schema at \p path
112  /// is defined (according to UsdPrim::IsDefined()) on this stage.
113  ///
114  /// If a prim adhering to this schema at \p path is already defined on this
115  /// stage, return that prim. Otherwise author an \a SdfPrimSpec with
116  /// \a specifier == \a SdfSpecifierDef and this schema's prim type name for
117  /// the prim at \p path at the current EditTarget. Author \a SdfPrimSpec s
118  /// with \p specifier == \a SdfSpecifierDef and empty typeName at the
119  /// current EditTarget for any nonexistent, or existing but not \a Defined
120  /// ancestors.
121  ///
122  /// The given \a path must be an absolute prim path that does not contain
123  /// any variant selections.
124  ///
125  /// If it is impossible to author any of the necessary PrimSpecs, (for
126  /// example, in case \a path cannot map to the current UsdEditTarget's
127  /// namespace) issue an error and return an invalid \a UsdPrim.
128  ///
129  /// Note that this method may return a defined prim whose typeName does not
130  /// specify this schema class, in case a stronger typeName opinion overrides
131  /// the opinion at the current EditTarget.
132  ///
133  USDVOL_API
135  Define(const UsdStagePtr &stage, const SdfPath &path);
136 
137 protected:
138  /// Returns the kind of schema this class belongs to.
139  ///
140  /// \sa UsdSchemaKind
141  USDVOL_API
142  UsdSchemaKind _GetSchemaKind() const override;
143 
144 private:
145  // needs to invoke _GetStaticTfType.
146  friend class UsdSchemaRegistry;
147  USDVOL_API
148  static const TfType &_GetStaticTfType();
149 
150  static bool _IsTypedSchema();
151 
152  // override SchemaBase virtuals.
153  USDVOL_API
154  const TfType &_GetTfType() const override;
155 
156 public:
157  // --------------------------------------------------------------------- //
158  // PROJECTIONMODEHINT
159  // --------------------------------------------------------------------- //
160  /// A hint for the renderer on how to project the gaussian to
161  /// achieve a perspective correct view. Renderers are free to
162  /// ignore this, but the hint is often valuable to tune the
163  /// rendering of the scene. It often corresponds to a choice made
164  /// when training the data.
165  ///
166  /// 'Perspective' projection is similar to standard object rendering
167  /// from a camera view. Gaussians are projected with scaling and
168  /// distortion based on depth.
169  ///
170  /// 'Tangential' projection treats the image plane as a tangent to
171  /// the viewing sphere. Gaussians are projected orthogonally,
172  /// preserving shape and scale better, which helps reduce distortion
173  /// for certain rendering applications like novel view synthesis.
174  ///
175  /// | ||
176  /// | -- | -- |
177  /// | Declaration | `uniform token projectionModeHint = "perspective"` |
178  /// | C++ Type | TfToken |
179  /// | \ref Usd_Datatypes "Usd Type" | SdfValueTypeNames->Token |
180  /// | \ref SdfVariability "Variability" | SdfVariabilityUniform |
181  /// | \ref UsdVolTokens "Allowed Values" | perspective, tangential |
182  USDVOL_API
184 
185  /// See GetProjectionModeHintAttr(), and also
186  /// \ref Usd_Create_Or_Get_Property for when to use Get vs Create.
187  /// If specified, author \p defaultValue as the attribute's default,
188  /// sparsely (when it makes sense to do so) if \p writeSparsely is \c true -
189  /// the default for \p writeSparsely is \c false.
190  USDVOL_API
191  UsdAttribute CreateProjectionModeHintAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
192 
193 public:
194  // --------------------------------------------------------------------- //
195  // SORTINGMODEHINT
196  // --------------------------------------------------------------------- //
197  /// A hint for the renderer on how to sort the gaussians while
198  /// drawing. Renderers are free to ignore this, but the hint is often
199  /// valuable to tune the rendering of the scene. It often corresponds to a
200  /// choice made when training the data.
201  ///
202  /// Rasterizers usually sort gaussians from back to front. This attribute
203  /// is a hint for the metric used to sort the gaussians with respect to the
204  /// camera.
205  ///
206  /// 'zDepth': The particles are sorted based on the z component of the
207  /// particle position when transformed in to the cameras local space.
208  ///
209  /// 'cameraDistance': The particles are sorted based on the euclidian
210  /// distance from the particle to the camera.
211  ///
212  /// 'rayHitDistance': The particles are sorted based on the distance from
213  /// the camera to where the ray hits the particle (used in ray tracing).
214  /// Rasterizers that do not support ray tracing may treat this as
215  /// 'cameraDistance'.
216  ///
217  /// | ||
218  /// | -- | -- |
219  /// | Declaration | `uniform token sortingModeHint = "zDepth"` |
220  /// | C++ Type | TfToken |
221  /// | \ref Usd_Datatypes "Usd Type" | SdfValueTypeNames->Token |
222  /// | \ref SdfVariability "Variability" | SdfVariabilityUniform |
223  /// | \ref UsdVolTokens "Allowed Values" | zDepth, cameraDistance, rayHitDistance |
224  USDVOL_API
226 
227  /// See GetSortingModeHintAttr(), and also
228  /// \ref Usd_Create_Or_Get_Property for when to use Get vs Create.
229  /// If specified, author \p defaultValue as the attribute's default,
230  /// sparsely (when it makes sense to do so) if \p writeSparsely is \c true -
231  /// the default for \p writeSparsely is \c false.
232  USDVOL_API
233  UsdAttribute CreateSortingModeHintAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
234 
235 public:
236  /// \name ParticleFieldPositionAttributeAPI
237  ///
238  /// Convenience accessors for the built-in UsdVolParticleFieldPositionAttributeAPI
239  ///
240  /// @{
241 
242  /// Constructs and returns a UsdVolParticleFieldPositionAttributeAPI object.
243  /// Use this object to access UsdVolParticleFieldPositionAttributeAPI custom methods.
244  USDVOL_API
246 
247  /// See UsdVolParticleFieldPositionAttributeAPI::GetPositionsAttr().
248  USDVOL_API
250 
251  /// See UsdVolParticleFieldPositionAttributeAPI::CreatePositionsAttr().
252  USDVOL_API
254  VtValue const &defaultValue = VtValue(),
255  bool writeSparsely=false) const;
256 
257  /// See UsdVolParticleFieldPositionAttributeAPI::GetPositionshAttr().
258  USDVOL_API
260 
261  /// See UsdVolParticleFieldPositionAttributeAPI::CreatePositionshAttr().
262  USDVOL_API
264  VtValue const &defaultValue = VtValue(),
265  bool writeSparsely=false) const;
266 
267  /// @}
268 public:
269  /// \name ParticleFieldOrientationAttributeAPI
270  ///
271  /// Convenience accessors for the built-in UsdVolParticleFieldOrientationAttributeAPI
272  ///
273  /// @{
274 
275  /// Constructs and returns a UsdVolParticleFieldOrientationAttributeAPI object.
276  /// Use this object to access UsdVolParticleFieldOrientationAttributeAPI custom methods.
277  USDVOL_API
279 
280  /// See UsdVolParticleFieldOrientationAttributeAPI::GetOrientationsAttr().
281  USDVOL_API
283 
284  /// See UsdVolParticleFieldOrientationAttributeAPI::CreateOrientationsAttr().
285  USDVOL_API
287  VtValue const &defaultValue = VtValue(),
288  bool writeSparsely=false) const;
289 
290  /// See UsdVolParticleFieldOrientationAttributeAPI::GetOrientationshAttr().
291  USDVOL_API
293 
294  /// See UsdVolParticleFieldOrientationAttributeAPI::CreateOrientationshAttr().
295  USDVOL_API
297  VtValue const &defaultValue = VtValue(),
298  bool writeSparsely=false) const;
299 
300  /// @}
301 public:
302  /// \name ParticleFieldScaleAttributeAPI
303  ///
304  /// Convenience accessors for the built-in UsdVolParticleFieldScaleAttributeAPI
305  ///
306  /// @{
307 
308  /// Constructs and returns a UsdVolParticleFieldScaleAttributeAPI object.
309  /// Use this object to access UsdVolParticleFieldScaleAttributeAPI custom methods.
310  USDVOL_API
312 
313  /// See UsdVolParticleFieldScaleAttributeAPI::GetScalesAttr().
314  USDVOL_API
315  UsdAttribute GetScalesAttr() const;
316 
317  /// See UsdVolParticleFieldScaleAttributeAPI::CreateScalesAttr().
318  USDVOL_API
320  VtValue const &defaultValue = VtValue(),
321  bool writeSparsely=false) const;
322 
323  /// See UsdVolParticleFieldScaleAttributeAPI::GetScaleshAttr().
324  USDVOL_API
326 
327  /// See UsdVolParticleFieldScaleAttributeAPI::CreateScaleshAttr().
328  USDVOL_API
330  VtValue const &defaultValue = VtValue(),
331  bool writeSparsely=false) const;
332 
333  /// @}
334 public:
335  /// \name ParticleFieldOpacityAttributeAPI
336  ///
337  /// Convenience accessors for the built-in UsdVolParticleFieldOpacityAttributeAPI
338  ///
339  /// @{
340 
341  /// Constructs and returns a UsdVolParticleFieldOpacityAttributeAPI object.
342  /// Use this object to access UsdVolParticleFieldOpacityAttributeAPI custom methods.
343  USDVOL_API
345 
346  /// See UsdVolParticleFieldOpacityAttributeAPI::GetOpacitiesAttr().
347  USDVOL_API
349 
350  /// See UsdVolParticleFieldOpacityAttributeAPI::CreateOpacitiesAttr().
351  USDVOL_API
353  VtValue const &defaultValue = VtValue(),
354  bool writeSparsely=false) const;
355 
356  /// See UsdVolParticleFieldOpacityAttributeAPI::GetOpacitieshAttr().
357  USDVOL_API
359 
360  /// See UsdVolParticleFieldOpacityAttributeAPI::CreateOpacitieshAttr().
361  USDVOL_API
363  VtValue const &defaultValue = VtValue(),
364  bool writeSparsely=false) const;
365 
366  /// @}
367 public:
368  /// \name ParticleFieldKernelGaussianEllipsoidAPI
369  ///
370  /// Convenience accessors for the built-in UsdVolParticleFieldKernelGaussianEllipsoidAPI
371  ///
372  /// @{
373 
374  /// Constructs and returns a UsdVolParticleFieldKernelGaussianEllipsoidAPI object.
375  /// Use this object to access UsdVolParticleFieldKernelGaussianEllipsoidAPI custom methods.
376  USDVOL_API
378 
379  /// @}
380 public:
381  /// \name ParticleFieldSphericalHarmonicsAttributeAPI
382  ///
383  /// Convenience accessors for the built-in UsdVolParticleFieldSphericalHarmonicsAttributeAPI
384  ///
385  /// @{
386 
387  /// Constructs and returns a UsdVolParticleFieldSphericalHarmonicsAttributeAPI object.
388  /// Use this object to access UsdVolParticleFieldSphericalHarmonicsAttributeAPI custom methods.
389  USDVOL_API
391 
392  /// See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::GetRadianceSphericalHarmonicsDegreeAttr().
393  USDVOL_API
395 
396  /// See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::CreateRadianceSphericalHarmonicsDegreeAttr().
397  USDVOL_API
399  VtValue const &defaultValue = VtValue(),
400  bool writeSparsely=false) const;
401 
402  /// See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::GetRadianceSphericalHarmonicsCoefficientsAttr().
403  USDVOL_API
405 
406  /// See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::CreateRadianceSphericalHarmonicsCoefficientsAttr().
407  USDVOL_API
409  VtValue const &defaultValue = VtValue(),
410  bool writeSparsely=false) const;
411 
412  /// See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::GetRadianceSphericalHarmonicsCoefficientshAttr().
413  USDVOL_API
415 
416  /// See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::CreateRadianceSphericalHarmonicsCoefficientshAttr().
417  USDVOL_API
419  VtValue const &defaultValue = VtValue(),
420  bool writeSparsely=false) const;
421 
422  /// @}
423 public:
424  // ===================================================================== //
425  // Feel free to add custom code below this line, it will be preserved by
426  // the code generator.
427  //
428  // Just remember to:
429  // - Close the class declaration with };
430  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
431  // - Close the include guard with #endif
432  // ===================================================================== //
433  // --(BEGIN CUSTOM CODE)--
434 
435  /// Determines if we should prefer positions over positionsh based on
436  /// whether positions has been authored to a non empty array. Assumes that
437  /// positions is empty if the earliest time sample or default value if
438  /// there are no time samples are empty.
439  /// \param positionsAttr the outparam for the corresponding attribute,
440  /// either positions or positionsh.
441  USDVOL_API
442  bool UsesFloatPositions(UsdAttribute *positionsAttr) const;
443 
444  /// \overload same functionality as UsesFloatPositions but populates a
445  /// TfToken instead.
446  /// \param positionsToken (optional) the outparam for the corresponding
447  /// attribute name, either positions or positionsh.
448  USDVOL_API
449  bool UsesFloatPositions(TfToken *positionsToken = nullptr) const;
450 
451  /// Determines if we should prefer orientations over orientationsh based on
452  /// whether orientations has been authored to a non empty array. Assumes
453  /// that orientations is empty if the earliest time sample or default value
454  /// if there are no time samples are empty.
455  /// \param orientationsAttr the outparam for the corresponding attribute,
456  /// either orientations or orientationsh.
457  USDVOL_API
458  bool UsesFloatOrientations(UsdAttribute *orientationsAttr) const;
459 
460  /// \overload same functionality as UsesFloatOrientations but populates a
461  /// TfToken instead.
462  /// \param orientationsToken (optional) the outparam for the corresponding
463  /// attribute name, either orientations or orientationsh.
464  USDVOL_API
465  bool UsesFloatOrientations(TfToken *orientationsToken = nullptr) const;
466 
467  /// Determines if we should prefer scales over scalesh based on whether
468  /// scales has been authored to a non empty array. Assumes that scales is
469  /// empty if the earliest time sample or default value if there are no time
470  /// samples are empty.
471  /// \param scalesAttr the outparam for the corresponding attribute, either
472  /// scales or scalesh.
473  USDVOL_API
474  bool UsesFloatScales(UsdAttribute *scalesAttr) const;
475 
476  /// \overload same functionality as UsesFloatScales but populates a TfToken
477  /// instead.
478  /// \param scalesToken (optional) the outparam for the corresponding
479  /// attribute name, either scales or scalesh.
480  USDVOL_API
481  bool UsesFloatScales(TfToken *scalesToken = nullptr) const;
482 
483  /// Determines if we should prefer opacities over opacitiesh based on
484  /// whether opacities has been authored to a non empty array. Assumes that
485  /// opacities is empty if the earliest time sample or default value if
486  /// there are no time samples are empty.
487  /// \param opacitiesAttr the outparam for the corresponding attribute,
488  /// either opacities or opacitiesh.
489  USDVOL_API
490  bool UsesFloatOpacities(UsdAttribute *opacitiesAttr) const;
491 
492  /// \overload same functionality as UsesFloatOpacities but populates a
493  /// TfToken instead.
494  /// \param opacitiesToken (optional) the outparam for the corresponding
495  /// attribute name, either opacities or opacitiesh.
496  USDVOL_API
497  bool UsesFloatOpacities(TfToken *opacitiesToken = nullptr) const;
498 
499  /// Determines if we should prefer radiance:sphericalHarmonicsCoefficients
500  /// over radiance:sphericalHarmonicsCoefficientsh based on whether
501  /// radiance:sphericalHarmonicsCoefficients has been authored to a non
502  /// empty array. Assumes that radiance:sphericalHarmonicsCoefficients is
503  /// empty if the earliest time sample or default value if there are no time
504  /// samples are empty.
505  /// \param radianceCoefficientsAttr the outparam for the corresponding
506  /// attribute, either radiance:sphericalHarmonicsCoefficients or
507  /// radiance:sphericalHarmonicsCoefficientsh.
508  USDVOL_API
510  UsdAttribute *radianceCoefficientsAttr) const;
511 
512  /// \overload same functionality as UsesFloatRadianceCoefficients but
513  /// populates a TfToken instead.
514  /// \param radianceCoefficientsToken (optional) the outparam for the
515  /// corresponding attribute name, either
516  /// radiance:sphericalHarmonicsCoefficients or
517  /// radiance:sphericalHarmonicsCoefficientsh.
518  USDVOL_API
520  TfToken *radianceCoefficientsToken = nullptr) const;
521 
522 private:
523  /// Helper function for UsesFloatFoo
524  bool _UsesFloatAttr(
525  TfToken const& floatName,
526  TfToken const& halfName,
527  UsdAttribute *outAttr) const;
528 
529  /// Helper function for UsesFloatFoo
530  bool _UsesFloatAttr(
531  TfToken const& floatName,
532  TfToken const& halfName,
533  TfToken *outToken) const;
534 };
535 
537 
538 #endif
USDVOL_API UsdAttribute GetSortingModeHintAttr() const
USDVOL_API UsdAttribute GetProjectionModeHintAttr() const
USDVOL_API UsdAttribute CreateRadianceSphericalHarmonicsCoefficientsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::CreateRadianceSphericalHarmonicsCoefficientsAt...
USDVOL_API UsdAttribute GetPositionshAttr() const
See UsdVolParticleFieldPositionAttributeAPI::GetPositionshAttr().
USDVOL_API UsdAttribute GetRadianceSphericalHarmonicsCoefficientshAttr() const
See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::GetRadianceSphericalHarmonicsCoefficientshAttr...
USDVOL_API bool UsesFloatOrientations(UsdAttribute *orientationsAttr) const
USDVOL_API UsdAttribute GetScaleshAttr() const
See UsdVolParticleFieldScaleAttributeAPI::GetScaleshAttr().
USDVOL_API bool UsesFloatOpacities(UsdAttribute *opacitiesAttr) const
USDVOL_API UsdVolParticleFieldKernelGaussianEllipsoidAPI ParticleFieldKernelGaussianEllipsoidAPI() const
USDVOL_API bool UsesFloatRadianceCoefficients(UsdAttribute *radianceCoefficientsAttr) const
static USDVOL_API UsdVolParticleField3DGaussianSplat Define(const UsdStagePtr &stage, const SdfPath &path)
USDVOL_API UsdAttribute CreateOrientationsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldOrientationAttributeAPI::CreateOrientationsAttr().
#define PXR_NAMESPACE_OPEN_SCOPE
Definition: pxr.h:73
GLsizei const GLchar *const * path
Definition: glcorearb.h:3341
USDVOL_API UsdAttribute GetOrientationshAttr() const
See UsdVolParticleFieldOrientationAttributeAPI::GetOrientationshAttr().
USDVOL_API UsdSchemaKind _GetSchemaKind() const override
USDVOL_API UsdAttribute GetPositionsAttr() const
See UsdVolParticleFieldPositionAttributeAPI::GetPositionsAttr().
USDVOL_API UsdAttribute CreateScaleshAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldScaleAttributeAPI::CreateScaleshAttr().
USDVOL_API UsdVolParticleFieldScaleAttributeAPI ParticleFieldScaleAttributeAPI() const
Definition: token.h:70
Represents a concrete typed schema.
static USDVOL_API const TfTokenVector & GetSchemaAttributeNames(bool includeInherited=true)
USDVOL_API UsdAttribute GetRadianceSphericalHarmonicsDegreeAttr() const
See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::GetRadianceSphericalHarmonicsDegreeAttr().
USDVOL_API UsdAttribute GetOpacitieshAttr() const
See UsdVolParticleFieldOpacityAttributeAPI::GetOpacitieshAttr().
USDVOL_API UsdVolParticleFieldOpacityAttributeAPI ParticleFieldOpacityAttributeAPI() const
USDVOL_API UsdAttribute GetOrientationsAttr() const
See UsdVolParticleFieldOrientationAttributeAPI::GetOrientationsAttr().
USDVOL_API bool UsesFloatPositions(UsdAttribute *positionsAttr) const
USDVOL_API UsdAttribute CreateScalesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldScaleAttributeAPI::CreateScalesAttr().
USDVOL_API UsdAttribute CreatePositionshAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldPositionAttributeAPI::CreatePositionshAttr().
USDVOL_API UsdVolParticleFieldPositionAttributeAPI ParticleFieldPositionAttributeAPI() const
USDVOL_API UsdAttribute CreateOpacitieshAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldOpacityAttributeAPI::CreateOpacitieshAttr().
USDVOL_API UsdAttribute CreateSortingModeHintAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
USDVOL_API UsdAttribute GetRadianceSphericalHarmonicsCoefficientsAttr() const
See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::GetRadianceSphericalHarmonicsCoefficientsAttr(...
Definition: prim.h:116
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:440
USDVOL_API UsdAttribute CreateRadianceSphericalHarmonicsDegreeAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::CreateRadianceSphericalHarmonicsDegreeAttr().
Definition: path.h:280
UsdSchemaKind
Definition: common.h:112
static USDVOL_API UsdVolParticleField3DGaussianSplat Get(const UsdStagePtr &stage, const SdfPath &path)
USDVOL_API UsdAttribute CreateProjectionModeHintAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
virtual USDVOL_API ~UsdVolParticleField3DGaussianSplat()
Destructor.
USDVOL_API UsdAttribute GetOpacitiesAttr() const
See UsdVolParticleFieldOpacityAttributeAPI::GetOpacitiesAttr().
USDVOL_API UsdAttribute CreateOpacitiesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldOpacityAttributeAPI::CreateOpacitiesAttr().
USDVOL_API UsdVolParticleFieldSphericalHarmonicsAttributeAPI ParticleFieldSphericalHarmonicsAttributeAPI() const
UsdVolParticleField3DGaussianSplat(const UsdSchemaBase &schemaObj)
USDVOL_API UsdAttribute GetScalesAttr() const
See UsdVolParticleFieldScaleAttributeAPI::GetScalesAttr().
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
Definition: type.h:47
#define USDVOL_API
Definition: api.h:23
USDVOL_API bool UsesFloatScales(UsdAttribute *scalesAttr) const
USDVOL_API UsdVolParticleFieldOrientationAttributeAPI ParticleFieldOrientationAttributeAPI() const
USDVOL_API UsdAttribute CreateOrientationshAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldOrientationAttributeAPI::CreateOrientationshAttr().
UsdVolParticleField3DGaussianSplat(const UsdPrim &prim=UsdPrim())
Definition: value.h:89
USDVOL_API UsdAttribute CreatePositionsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldPositionAttributeAPI::CreatePositionsAttr().
USDVOL_API UsdAttribute CreateRadianceSphericalHarmonicsCoefficientshAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See UsdVolParticleFieldSphericalHarmonicsAttributeAPI::CreateRadianceSphericalHarmonicsCoefficientshA...