All Classes Files Functions Variables Pages
physxForceFieldRingAPI.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 FORCEFIELDSCHEMA_GENERATED_PHYSXFORCEFIELDRINGAPI_H
25 #define FORCEFIELDSCHEMA_GENERATED_PHYSXFORCEFIELDRINGAPI_H
26 
28 
29 #include "pxr/pxr.h"
30 #include ".//api.h"
31 #include "pxr/usd/usd/apiSchemaBase.h"
32 #include "pxr/usd/usd/prim.h"
33 #include "pxr/usd/usd/stage.h"
34 #include ".//tokens.h"
35 
36 #include "pxr/base/vt/value.h"
37 
38 #include "pxr/base/gf/vec3d.h"
39 #include "pxr/base/gf/vec3f.h"
40 #include "pxr/base/gf/matrix4d.h"
41 
42 #include "pxr/base/tf/token.h"
43 #include "pxr/base/tf/type.h"
44 
45 PXR_NAMESPACE_OPEN_SCOPE
46 
47 class SdfAssetPath;
48 
49 // -------------------------------------------------------------------------- //
50 // PHYSXFORCEFIELDRINGAPI //
51 // -------------------------------------------------------------------------- //
52 
62 class ForceFieldSchemaPhysxForceFieldRingAPI : public UsdAPISchemaBase
63 {
64 public:
68  static const UsdSchemaKind schemaKind = UsdSchemaKind::MultipleApplyAPI;
69 
80  const UsdPrim& prim=UsdPrim(), const TfToken &name=TfToken())
81  : UsdAPISchemaBase(prim, /*instanceName*/ name)
82  { }
83 
89  const UsdSchemaBase& schemaObj, const TfToken &name)
90  : UsdAPISchemaBase(schemaObj, /*instanceName*/ name)
91  { }
92 
94  FORCEFIELDSCHEMA_API
96 
100  FORCEFIELDSCHEMA_API
101  static const TfTokenVector &
102  GetSchemaAttributeNames(bool includeInherited=true);
103 
109  FORCEFIELDSCHEMA_API
110  static TfTokenVector
111  GetSchemaAttributeNames(bool includeInherited, const TfToken &instanceName);
112 
114  TfToken GetName() const {
115  return _GetInstanceName();
116  }
117 
132  FORCEFIELDSCHEMA_API
134  Get(const UsdStagePtr &stage, const SdfPath &path);
135 
138  FORCEFIELDSCHEMA_API
140  Get(const UsdPrim &prim, const TfToken &name);
141 
144  FORCEFIELDSCHEMA_API
145  static std::vector<ForceFieldSchemaPhysxForceFieldRingAPI>
146  GetAll(const UsdPrim &prim);
147 
150  FORCEFIELDSCHEMA_API
151  static bool
152  IsSchemaPropertyBaseName(const TfToken &baseName);
153 
157  FORCEFIELDSCHEMA_API
158  static bool
159  IsPhysxForceFieldRingAPIPath(const SdfPath &path, TfToken *name);
160 
177  FORCEFIELDSCHEMA_API
178  static bool
179  CanApply(const UsdPrim &prim, const TfToken &name,
180  std::string *whyNot=nullptr);
181 
201  FORCEFIELDSCHEMA_API
203  Apply(const UsdPrim &prim, const TfToken &name);
204 
205 protected:
209  FORCEFIELDSCHEMA_API
210  UsdSchemaKind _GetSchemaKind() const override;
211 
212 private:
213  // needs to invoke _GetStaticTfType.
214  friend class UsdSchemaRegistry;
215  FORCEFIELDSCHEMA_API
216  static const TfType &_GetStaticTfType();
217 
218  static bool _IsTypedSchema();
219 
220  // override SchemaBase virtuals.
221  FORCEFIELDSCHEMA_API
222  const TfType &_GetTfType() const override;
223 
224 public:
225  // --------------------------------------------------------------------- //
226  // NORMALAXIS
227  // --------------------------------------------------------------------- //
235  FORCEFIELDSCHEMA_API
236  UsdAttribute GetNormalAxisAttr() const;
237 
243  FORCEFIELDSCHEMA_API
244  UsdAttribute CreateNormalAxisAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
245 
246 public:
247  // --------------------------------------------------------------------- //
248  // RADIUS
249  // --------------------------------------------------------------------- //
257  FORCEFIELDSCHEMA_API
258  UsdAttribute GetRadiusAttr() const;
259 
265  FORCEFIELDSCHEMA_API
266  UsdAttribute CreateRadiusAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
267 
268 public:
269  // --------------------------------------------------------------------- //
270  // CONSTANT
271  // --------------------------------------------------------------------- //
279  FORCEFIELDSCHEMA_API
280  UsdAttribute GetConstantAttr() const;
281 
287  FORCEFIELDSCHEMA_API
288  UsdAttribute CreateConstantAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
289 
290 public:
291  // --------------------------------------------------------------------- //
292  // LINEAR
293  // --------------------------------------------------------------------- //
301  FORCEFIELDSCHEMA_API
302  UsdAttribute GetLinearAttr() const;
303 
309  FORCEFIELDSCHEMA_API
310  UsdAttribute CreateLinearAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
311 
312 public:
313  // --------------------------------------------------------------------- //
314  // INVERSESQUARE
315  // --------------------------------------------------------------------- //
323  FORCEFIELDSCHEMA_API
324  UsdAttribute GetInverseSquareAttr() const;
325 
331  FORCEFIELDSCHEMA_API
332  UsdAttribute CreateInverseSquareAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
333 
334 public:
335  // --------------------------------------------------------------------- //
336  // SPINCONSTANT
337  // --------------------------------------------------------------------- //
345  FORCEFIELDSCHEMA_API
346  UsdAttribute GetSpinConstantAttr() const;
347 
353  FORCEFIELDSCHEMA_API
354  UsdAttribute CreateSpinConstantAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
355 
356 public:
357  // --------------------------------------------------------------------- //
358  // SPINLINEAR
359  // --------------------------------------------------------------------- //
367  FORCEFIELDSCHEMA_API
368  UsdAttribute GetSpinLinearAttr() const;
369 
375  FORCEFIELDSCHEMA_API
376  UsdAttribute CreateSpinLinearAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
377 
378 public:
379  // --------------------------------------------------------------------- //
380  // SPININVERSESQUARE
381  // --------------------------------------------------------------------- //
389  FORCEFIELDSCHEMA_API
390  UsdAttribute GetSpinInverseSquareAttr() const;
391 
397  FORCEFIELDSCHEMA_API
398  UsdAttribute CreateSpinInverseSquareAttr(VtValue const &defaultValue = VtValue(), bool writeSparsely=false) const;
399 
400 public:
401  // ===================================================================== //
402  // Feel free to add custom code below this line, it will be preserved by
403  // the code generator.
404  //
405  // Just remember to:
406  // - Close the class declaration with };
407  // - Close the namespace with PXR_NAMESPACE_CLOSE_SCOPE
408  // - Close the include guard with #endif
409  // ===================================================================== //
410  // --(BEGIN CUSTOM CODE)--
411 };
412 
413 PXR_NAMESPACE_CLOSE_SCOPE
414 
415 #endif
FORCEFIELDSCHEMA_API UsdAttribute CreateLinearAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetLinearAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.
static FORCEFIELDSCHEMA_API bool CanApply(const UsdPrim &prim, const TfToken &name, std::string *whyNot=nullptr)
Returns true if this multiple-apply API schema can be applied, with the given instance name...
FORCEFIELDSCHEMA_API UsdSchemaKind _GetSchemaKind() const override
Returns the kind of schema this class belongs to.
static FORCEFIELDSCHEMA_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...
FORCEFIELDSCHEMA_API UsdAttribute GetSpinLinearAttr() const
spinLinear applies a force that rotates bodies around the ring and varies with distance to the ring...
FORCEFIELDSCHEMA_API UsdAttribute GetSpinInverseSquareAttr() const
inverseSquare sets a force that rotates bodies around the ring and varies with the reciprocal of the ...
FORCEFIELDSCHEMA_API UsdAttribute CreateSpinInverseSquareAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetSpinInverseSquareAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create...
static FORCEFIELDSCHEMA_API bool IsSchemaPropertyBaseName(const TfToken &baseName)
Checks if the given name baseName is the base name of a property of PhysxForceFieldRingAPI.
FORCEFIELDSCHEMA_API UsdAttribute CreateSpinConstantAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetSpinConstantAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create...
FORCEFIELDSCHEMA_API UsdAttribute GetSpinConstantAttr() const
spinConstant applies a steady force that rotates bodies around the ring.
ForceFieldSchemaPhysxForceFieldRingAPI(const UsdSchemaBase &schemaObj, const TfToken &name)
Construct a ForceFieldSchemaPhysxForceFieldRingAPI on the prim held by schemaObj with name name...
FORCEFIELDSCHEMA_API UsdAttribute CreateNormalAxisAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetNormalAxisAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create...
FORCEFIELDSCHEMA_API UsdAttribute CreateInverseSquareAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetInverseSquareAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create...
FORCEFIELDSCHEMA_API UsdAttribute GetLinearAttr() const
linear applies a force that attracts bodies toward the ring and varies with distance to the ring...
static FORCEFIELDSCHEMA_API std::vector< ForceFieldSchemaPhysxForceFieldRingAPI > GetAll(const UsdPrim &prim)
Return a vector of all named instances of ForceFieldSchemaPhysxForceFieldRingAPI on the given prim...
static FORCEFIELDSCHEMA_API ForceFieldSchemaPhysxForceFieldRingAPI Apply(const UsdPrim &prim, const TfToken &name)
Applies this multiple-apply API schema to the given prim along with the given instance name...
FORCEFIELDSCHEMA_API UsdAttribute GetRadiusAttr() const
The distance from the normal axis to the center of the ring.
FORCEFIELDSCHEMA_API UsdAttribute CreateRadiusAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetRadiusAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create.
A force field that applies forces to rotate rigid bodies around a ring, defined by a normal axis thro...
TfToken GetName() const
Returns the name of this multiple-apply schema instance.
static FORCEFIELDSCHEMA_API ForceFieldSchemaPhysxForceFieldRingAPI Get(const UsdStagePtr &stage, const SdfPath &path)
Return a ForceFieldSchemaPhysxForceFieldRingAPI holding the prim adhering to this schema at path on s...
FORCEFIELDSCHEMA_API UsdAttribute GetInverseSquareAttr() const
inverseSquare applies a force that attracts bodies toward the ring and varies with the reciprocal of ...
static const UsdSchemaKind schemaKind
Compile time constant representing what kind of schema this class is.
static FORCEFIELDSCHEMA_API bool IsPhysxForceFieldRingAPIPath(const SdfPath &path, TfToken *name)
Checks if the given path path is of an API schema of type PhysxForceFieldRingAPI. ...
virtual FORCEFIELDSCHEMA_API ~ForceFieldSchemaPhysxForceFieldRingAPI()
Destructor.
ForceFieldSchemaPhysxForceFieldRingAPI(const UsdPrim &prim=UsdPrim(), const TfToken &name=TfToken())
Construct a ForceFieldSchemaPhysxForceFieldRingAPI on UsdPrim prim with name name ...
FORCEFIELDSCHEMA_API UsdAttribute CreateSpinLinearAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetSpinLinearAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create...
FORCEFIELDSCHEMA_API UsdAttribute GetConstantAttr() const
constant applies a steady force that attracts bodies toward the ring.
FORCEFIELDSCHEMA_API UsdAttribute CreateConstantAttr(VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
See GetConstantAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create...
FORCEFIELDSCHEMA_API UsdAttribute GetNormalAxisAttr() const
The normal axis through the center of the ring in world coordinates.