Loading...
Searching...
No Matches
tetMesh.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_TETMESH_H
25#define USDGEOM_GENERATED_TETMESH_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/usd/usd/timeCode.h"
37
38#include "pxr/base/vt/value.h"
39
40#include "pxr/base/gf/vec3d.h"
41#include "pxr/base/gf/vec3f.h"
43
44#include "pxr/base/tf/token.h"
45#include "pxr/base/tf/type.h"
46
47PXR_NAMESPACE_OPEN_SCOPE
48
49class SdfAssetPath;
50
51// -------------------------------------------------------------------------- //
52// TETMESH //
53// -------------------------------------------------------------------------- //
54
68{
69public:
73 static const UsdSchemaKind schemaKind = UsdSchemaKind::ConcreteTyped;
74
79 explicit UsdGeomTetMesh(const UsdPrim& prim=UsdPrim())
80 : UsdGeomPointBased(prim)
81 {
82 }
83
87 explicit UsdGeomTetMesh(const UsdSchemaBase& schemaObj)
88 : UsdGeomPointBased(schemaObj)
89 {
90 }
91
93 USDGEOM_API
94 virtual ~UsdGeomTetMesh();
95
99 USDGEOM_API
100 static const TfTokenVector &
101 GetSchemaAttributeNames(bool includeInherited=true);
102
112 USDGEOM_API
113 static UsdGeomTetMesh
114 Get(const UsdStagePtr &stage, const SdfPath &path);
115
138 USDGEOM_API
139 static UsdGeomTetMesh
140 Define(const UsdStagePtr &stage, const SdfPath &path);
141
142protected:
146 USDGEOM_API
148
149private:
150 // needs to invoke _GetStaticTfType.
151 friend class UsdSchemaRegistry;
152 USDGEOM_API
153 static const TfType &_GetStaticTfType();
154
155 static bool _IsTypedSchema();
156
157 // override SchemaBase virtuals.
158 USDGEOM_API
159 const TfType &_GetTfType() const override;
160
161public:
162 // --------------------------------------------------------------------- //
163 // TETVERTEXINDICES
164 // --------------------------------------------------------------------- //
194 USDGEOM_API
196
202 USDGEOM_API
203 UsdAttribute CreateTetVertexIndicesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
204
205public:
206 // --------------------------------------------------------------------- //
207 // SURFACEFACEVERTEXINDICES
208 // --------------------------------------------------------------------- //
220 USDGEOM_API
222
228 USDGEOM_API
229 UsdAttribute CreateSurfaceFaceVertexIndicesAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
230
231public:
232 // ===================================================================== //
233 // Feel free to add custom code below this line, it will be preserved by
234 // the code generator.
235 //
236 // Just remember to:
237 // - Close the class declaration with };
238 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
239 // - Close the include guard with #endif
240 // ===================================================================== //
241 // --(BEGIN CUSTOM CODE)--
242
251 USDGEOM_API
252 static bool ComputeSurfaceFaces(const UsdGeomTetMesh& tetMesh,
253 VtVec3iArray* surfaceFaceIndices,
254 const UsdTimeCode timeCode = UsdTimeCode::Default());
255
256 USDGEOM_API
257 static VtVec3iArray ComputeSurfaceFaces(
258 const VtVec4iArray &tetVertexIndices);
259
266 USDGEOM_API
267 static bool FindInvertedElements(const UsdGeomTetMesh& tetMesh,
268 VtIntArray* invertedElements,
269 const UsdTimeCode timeCode = UsdTimeCode::Default());
270};
271
272PXR_NAMESPACE_CLOSE_SCOPE
273
274#endif
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:290
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 UsdGeomGprims that possess points, providing common attributes such as normals and...
Definition: pointBased.h:59
Encodes a tetrahedral mesh.
Definition: tetMesh.h:68
USDGEOM_API UsdAttribute GetSurfaceFaceVertexIndicesAttr() const
surfaceFaceVertexIndices defines the triangle surface faces indices wrt.
USDGEOM_API UsdAttribute CreateSurfaceFaceVertexIndicesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetSurfaceFaceVertexIndicesAttr(), and also Create vs Get Property Methods for when to use Get vs...
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
Definition: tetMesh.h:73
USDGEOM_API UsdAttribute GetTetVertexIndicesAttr() const
Flat list of the index (into the points attribute) of each vertex of each tetrahedron in the mesh.
static USDGEOM_API UsdGeomTetMesh Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdGeomTetMesh holding the prim adhering to this schema at path on stage.
virtual USDGEOM_API ~UsdGeomTetMesh()
Destructor.
USDGEOM_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
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...
UsdGeomTetMesh(const UsdSchemaBase &schemaObj)
Construct a UsdGeomTetMesh on the prim held by schemaObj .
Definition: tetMesh.h:87
USDGEOM_API UsdAttribute CreateTetVertexIndicesAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetTetVertexIndicesAttr(), and also Create vs Get Property Methods for when to use Get vs Create.
UsdGeomTetMesh(const UsdPrim &prim=UsdPrim())
Construct a UsdGeomTetMesh on UsdPrim prim .
Definition: tetMesh.h:79
static USDGEOM_API UsdGeomTetMesh Define(const UsdStagePtr &stage, const SdfPath &path)
Attempt to ensure a UsdPrim adhering to this schema at path is defined (according to UsdPrim::IsDefin...
static USDGEOM_API bool FindInvertedElements(const UsdGeomTetMesh &tetMesh, VtIntArray *invertedElements, const UsdTimeCode timeCode=UsdTimeCode::Default())
FindInvertedElements is used to determine if the tetMesh has inverted tetrahedral elements at the giv...
static USDGEOM_API bool ComputeSurfaceFaces(const UsdGeomTetMesh &tetMesh, VtVec3iArray *surfaceFaceIndices, const UsdTimeCode timeCode=UsdTimeCode::Default())
ComputeSurfaceFaces determines the vertex indices of the surface faces from tetVertexIndices.
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
static constexpr UsdTimeCode Default()
Produce a UsdTimeCode representing the sentinel value for 'default'.
Definition: timeCode.h:112
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: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