aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/include/PhysXObjectDesc.h
diff options
context:
space:
mode:
Diffstat (limited to 'APEX_1.4/include/PhysXObjectDesc.h')
-rw-r--r--APEX_1.4/include/PhysXObjectDesc.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/APEX_1.4/include/PhysXObjectDesc.h b/APEX_1.4/include/PhysXObjectDesc.h
new file mode 100644
index 00000000..f3666b98
--- /dev/null
+++ b/APEX_1.4/include/PhysXObjectDesc.h
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved.
+ *
+ * NVIDIA CORPORATION and its licensors retain all intellectual property
+ * and proprietary rights in and to this software, related documentation
+ * and any modifications thereto. Any use, reproduction, disclosure or
+ * distribution of this software and related documentation without an express
+ * license agreement from NVIDIA CORPORATION is strictly prohibited.
+ */
+
+
+#ifndef PHYS_XOBJECT_DESC_H
+#define PHYS_XOBJECT_DESC_H
+
+/*!
+\file
+\brief class PhysXObjectDesc
+*/
+
+#include "ApexUsingNamespace.h"
+
+namespace nvidia
+{
+namespace apex
+{
+
+class Actor;
+
+PX_PUSH_PACK_DEFAULT
+
+/**
+ * \brief PhysX object descriptor
+ *
+ * Class which describes how a PhysX object is being used by APEX. Data access is
+ * non virtual for performance reasons.
+ */
+class PhysXObjectDesc
+{
+protected:
+ /**
+ \brief Object interaction flags
+
+ These flags determine how this PhysX object should interact with user callbacks. For
+ instance whether contact callbacks with the object should be ignored.
+ */
+ uint32_t mFlags;
+
+ enum
+ {
+ TRANSFORM = (1U << 31), //!< If set, ignore this object's xform in active actor callbacks
+ RAYCASTS = (1U << 30), //!< If set, ignore this object in raycasts
+ CONTACTS = (1U << 29) //!< If set, ignore this object in contact callbacks
+ };
+
+
+public:
+ /** \brief Returns the number of Actors associated with the PhysX object */
+ virtual uint32_t getApexActorCount() const = 0;
+ /** \brief Returns the indexed Actor pointer */
+ virtual const Actor* getApexActor(uint32_t i) const = 0;
+
+ /** \brief Returns whether this object's xform should be ignored */
+ bool ignoreTransform() const
+ {
+ return (mFlags & (uint32_t)TRANSFORM) ? true : false;
+ }
+ /** \brief Returns whether this object should be ignored by raycasts */
+ bool ignoreRaycasts() const
+ {
+ return (mFlags & (uint32_t)RAYCASTS) ? true : false;
+ }
+ /** \brief Returns whether this object should be ignored by contact report callbacks */
+ bool ignoreContacts() const
+ {
+ return (mFlags & (uint32_t)CONTACTS) ? true : false;
+ }
+ /** \brief Returns a user defined status bit */
+ bool getUserDefinedFlag(uint32_t index) const
+ {
+ return (mFlags & (uint32_t)(1 << index)) ? true : false;
+ }
+
+ /**
+ \brief User data, for use by APEX
+
+ For internal use by APEX. Please do not modify this field. You may use the PhysX object
+ userData or Actor userData field.
+ */
+ void* userData;
+};
+
+// To get owning Actor's authorable object type name:
+// getActor()->getOwner()->getAuthObjName();
+// To get owning Actor's authorable object type ID:
+// getActor()->getOwner()->getAuthObjType();
+
+PX_POP_PACK
+
+}
+} // end namespace nvidia::apex
+
+#endif // PHYS_XOBJECT_DESC_H