Loading...
Searching...
No Matches
collisionGroup.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 USDPHYSICS_GENERATED_COLLISIONGROUP_H
25#define USDPHYSICS_GENERATED_COLLISIONGROUP_H
26
28
29#include "pxr/pxr.h"
30#include "pxr/usd/usdPhysics/api.h"
31#include "pxr/usd/usd/typed.h"
32#include "pxr/usd/usd/prim.h"
33#include "pxr/usd/usd/stage.h"
35
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// PHYSICSCOLLISIONGROUP //
53// -------------------------------------------------------------------------- //
54
67{
68public:
72 static const UsdSchemaKind schemaKind = UsdSchemaKind::ConcreteTyped;
73
79 : UsdTyped(prim)
80 {
81 }
82
86 explicit UsdPhysicsCollisionGroup(const UsdSchemaBase& schemaObj)
87 : UsdTyped(schemaObj)
88 {
89 }
90
92 USDPHYSICS_API
94
98 USDPHYSICS_API
99 static const TfTokenVector &
100 GetSchemaAttributeNames(bool includeInherited=true);
101
111 USDPHYSICS_API
113 Get(const UsdStagePtr &stage, const SdfPath &path);
114
137 USDPHYSICS_API
139 Define(const UsdStagePtr &stage, const SdfPath &path);
140
141protected:
145 USDPHYSICS_API
147
148private:
149 // needs to invoke _GetStaticTfType.
150 friend class UsdSchemaRegistry;
151 USDPHYSICS_API
152 static const TfType &_GetStaticTfType();
153
154 static bool _IsTypedSchema();
155
156 // override SchemaBase virtuals.
157 USDPHYSICS_API
158 const TfType &_GetTfType() const override;
159
160public:
161 // --------------------------------------------------------------------- //
162 // MERGEGROUPNAME
163 // --------------------------------------------------------------------- //
174 USDPHYSICS_API
176
182 USDPHYSICS_API
183 UsdAttribute CreateMergeGroupNameAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
184
185public:
186 // --------------------------------------------------------------------- //
187 // INVERTFILTEREDGROUPS
188 // --------------------------------------------------------------------- //
199 USDPHYSICS_API
201
207 USDPHYSICS_API
208 UsdAttribute CreateInvertFilteredGroupsAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
209
210public:
211 // --------------------------------------------------------------------- //
212 // FILTEREDGROUPS
213 // --------------------------------------------------------------------- //
217 USDPHYSICS_API
219
222 USDPHYSICS_API
224
225public:
226 // ===================================================================== //
227 // Feel free to add custom code below this line, it will be preserved by
228 // the code generator.
229 //
230 // Just remember to:
231 // - Close the class declaration with };
232 // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
233 // - Close the include guard with #endif
234 // ===================================================================== //
235 // --(BEGIN CUSTOM CODE)--
236
239 USDPHYSICS_API
241
246 {
249 USDPHYSICS_API
250 const SdfPathVector& GetCollisionGroups() const;
251
253 USDPHYSICS_API
254 bool IsCollisionEnabled(const unsigned int idxA,
255 const unsigned int idxB) const;
256
258 USDPHYSICS_API
259 bool IsCollisionEnabled(const SdfPath& primA,
260 const SdfPath& primB) const;
261
262 protected:
263 friend class UsdPhysicsCollisionGroup;
264 // < All collision groups known to this table
265 SdfPathVector _groups;
266 // < 2D table, with one element per collision-group-pair. Entry is false
267 // if collision is disabled by a filtering rule.
268 std::vector<bool> _enabled;
269 };
270
275 static USDPHYSICS_API
277};
278
279PXR_NAMESPACE_CLOSE_SCOPE
280
281#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:291
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
This is a general purpose API schema, used to describe a collection of heterogeneous objects within t...
Defines a collision group for coarse filtering.
USDPHYSICS_API UsdAttribute CreateInvertFilteredGroupsAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetInvertFilteredGroupsAttr(), and also Create vs Get Property Methods for when to use Get vs Cre...
USDPHYSICS_API UsdRelationship CreateFilteredGroupsRel() const
See GetFilteredGroupsRel(), and also Create vs Get Property Methods for when to use Get vs Create.
USDPHYSICS_API UsdAttribute GetMergeGroupNameAttr() const
If non-empty, any collision groups in a stage with a matching mergeGroup should be considered to refe...
USDPHYSICS_API UsdAttribute CreateMergeGroupNameAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetMergeGroupNameAttr(), 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.
USDPHYSICS_API UsdCollectionAPI GetCollidersCollectionAPI() const
Return the UsdCollectionAPI interface used for defining what colliders belong to the CollisionGroup.
static USDPHYSICS_API UsdPhysicsCollisionGroup Define(const UsdStagePtr &stage, const SdfPath &path)
Attempt to ensure a UsdPrim adhering to this schema at path is defined (according to UsdPrim::IsDefin...
virtual USDPHYSICS_API ~UsdPhysicsCollisionGroup()
Destructor.
UsdPhysicsCollisionGroup(const UsdPrim &prim=UsdPrim())
Construct a UsdPhysicsCollisionGroup on UsdPrim prim .
static USDPHYSICS_API CollisionGroupTable ComputeCollisionGroupTable(const UsdStage &stage)
Compute a table encoding all the collision groups filter rules for a stage.
UsdPhysicsCollisionGroup(const UsdSchemaBase &schemaObj)
Construct a UsdPhysicsCollisionGroup on the prim held by schemaObj .
static USDPHYSICS_API UsdPhysicsCollisionGroup Get(const UsdStagePtr &stage, const SdfPath &path)
Return a UsdPhysicsCollisionGroup holding the prim adhering to this schema at path on stage.
USDPHYSICS_API UsdAttribute GetInvertFilteredGroupsAttr() const
Normally, the filter will disable collisions against the selected filter groups.
static USDPHYSICS_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...
USDPHYSICS_API UsdRelationship GetFilteredGroupsRel() const
References a list of PhysicsCollisionGroups with which collisions should be ignored.
USDPHYSICS_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
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...
The outermost container for scene description, which owns and presents composed prims as a scenegraph...
Definition: stage.h:151
The base class for all typed schemas (those that can impart a typeName to a UsdPrim),...
Definition: typed.h:62
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
Utility structure generated by ComputeCollisionGroupTable(); contains a table describing which pairs ...
USDPHYSICS_API bool IsCollisionEnabled(const SdfPath &primA, const SdfPath &primB) const
Return true if the groups primA and primB collide.
USDPHYSICS_API const SdfPathVector & GetCollisionGroups() const
Return the set of all UsdPhysicsCollisionGroup which this table contains.
USDPHYSICS_API bool IsCollisionEnabled(const unsigned int idxA, const unsigned int idxB) const
Return true if the groups at indices idxA and idxB collide.
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