aboutsummaryrefslogtreecommitdiff
path: root/sdk/toolkit/include/NvBlastTkEvent.h
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2018-05-31 11:36:08 -0700
committerBryan Galdrikian <[email protected]>2018-05-31 11:36:08 -0700
commit7115f60b91b5717d90f643fd692010905c7004db (patch)
treeeffd68c6978751c517d54c2f2bb5bb6e7dc93e18 /sdk/toolkit/include/NvBlastTkEvent.h
parentUpdating BlastTool zip (diff)
downloadblast-7115f60b91b5717d90f643fd692010905c7004db.tar.xz
blast-7115f60b91b5717d90f643fd692010905c7004db.zip
Blast 1.1.3. See docs/release_notes.txt.v1.1.3_rc1
Diffstat (limited to 'sdk/toolkit/include/NvBlastTkEvent.h')
-rwxr-xr-x[-rw-r--r--]sdk/toolkit/include/NvBlastTkEvent.h368
1 files changed, 184 insertions, 184 deletions
diff --git a/sdk/toolkit/include/NvBlastTkEvent.h b/sdk/toolkit/include/NvBlastTkEvent.h
index ca2d5e9..8312741 100644..100755
--- a/sdk/toolkit/include/NvBlastTkEvent.h
+++ b/sdk/toolkit/include/NvBlastTkEvent.h
@@ -1,184 +1,184 @@
-// This code contains NVIDIA Confidential Information and is disclosed to you
-// under a form of NVIDIA software license agreement provided separately to you.
-//
-// Notice
-// NVIDIA Corporation and its licensors retain all intellectual property and
-// proprietary rights in and to this software and 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.
-//
-// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
-// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
-// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
-// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
-//
-// Information and code furnished is believed to be accurate and reliable.
-// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
-// information or for any infringement of patents or other rights of third parties that may
-// result from its use. No license is granted by implication or otherwise under any patent
-// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
-// This code supersedes and replaces all information previously supplied.
-// NVIDIA Corporation products are not authorized for use as critical
-// components in life support devices or systems without express written approval of
-// NVIDIA Corporation.
-//
-// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.
-
-
-#ifndef NVBLASTTKEVENT_H
-#define NVBLASTTKEVENT_H
-
-#include <vector>
-
-#include "NvBlastTypes.h"
-
-
-namespace Nv
-{
-namespace Blast
-{
-
-// Forward declarations
-class TkObject;
-class TkActor;
-class TkFamily;
-class TkJoint;
-
-
-/**
-By the time events are dispatched, a specific TkActor may have been split and became invalid.
-This structure caches the state before invalidation happened.
-*/
-struct TkActorData
-{
- TkFamily* family; //!< TkFamily of the originating TkActor
- void* userData; //!< TkActor.userData of the originating TkActor
- uint32_t index; //!< TkActor::getIndex() of the originating TkActor
-};
-
-
-/**
-Event data dispatched to TkEventListener objects. The user may implement the abstract TkEventListener interface
-and pass the listener object to a BlastTk object which dispatches events. (See for example TkFamily.)
-*/
-struct TkEvent
-{
- // Enums
- enum Type
- {
- Split, //!< Sent when a TkActor is split. See TkSplitEvent.
- FractureCommand, //!< Sent when a TkActor generated fracture commands using TkActor::generateFracture.
- FractureEvent, //!< Sent when a TkActor is fractured using TkActor::applyFracture.
- JointUpdate, //!< Sent when TkJoints change their attachment state. See TkJointUpdateEvent.
-
- TypeCount
- };
-
- // Data
- const void* payload; //!< Type-dependent payload data
- Type type; //!< See the Type enum, above
-
- /**
- Casts the payload data into its type-dependent format.
-
- \return the payload for an event of type T
- */
- template<typename T>
- const T* getPayload() const { return reinterpret_cast<const T*>(payload); }
-};
-
-
-/**
-Payload for TkEvent::Split events
-
-When this event is sent, the parent TkActor that was split is no longer valid. Therefore it is not referenced
-directly in the event data. Instead, its TkFamily, index within the TkFamily, and userData are stored. In addition,
-this event gives the child TkActors generated by the split.
-*/
-struct TkSplitEvent
-{
- enum { EVENT_TYPE = TkEvent::Split };
-
- TkActorData parentData; //!< The data of parent TkActor that was split
- uint32_t numChildren; //!< The number of children into which the parent TkActor was split
- TkActor** children; //!< An array of pointers to the children into which the TkActor was split
-};
-
-
-/**
-Payload for the TkEvent::FractureCommand events
-
-Fracture Commands used to apply fracture to a TkActor.
-*/
-struct TkFractureCommands
-{
- enum { EVENT_TYPE = TkEvent::FractureCommand };
-
- TkActorData tkActorData; //!< The data of TkActor that received the fracture command
- NvBlastFractureBuffers buffers; //!< The fracture commands used to modify the TkActor
-};
-
-
-/**
-Payload for the TkEvent::FractureEvent events
-
-Fracture Events resulting from applying fracture to a TkActor.
-*/
-struct TkFractureEvents
-{
- enum { EVENT_TYPE = TkEvent::FractureEvent };
-
- TkActorData tkActorData; //!< The data of TkActor that received the fracture command
- NvBlastFractureBuffers buffers; //!< The fracture result of the modified TkActor
- uint32_t bondsDamaged; //!< number of damaged bonds (health remains)
- uint32_t bondsBroken; //!< number of broken bonds (health exhausted)
- uint32_t chunksDamaged; //!< number of damaged chunks (health remains) including child chunks
- uint32_t chunksBroken; //!< number of broken chunks (health exhausted) including child chunks
-};
-
-
-/**
-Payload for the TkEvent::JointUpdate events
-
-Event type sent when a TkJoint's TkActor references change. This may indicate a joint becoming external,
-simply changing actors when split events occur on one or both of the actors, or when one or both of the actors
-are destroyed.
-*/
-struct TkJointUpdateEvent
-{
- enum { EVENT_TYPE = TkEvent::JointUpdate };
-
- enum Subtype
- {
- External, //!< A joint that used to be internal to a single TkActor now joins two different TkActors
- Changed, //!< One or both of the joint's attached TkActors has changed. The previous TkActors were distinct, however, differentiating this from the JointExternal case
- Unreferenced //!< The joint's actors have been set to NULL. The joint will not be used again, and the user may release the TkJoint at this time
- };
-
- TkJoint* joint; //!< The joint being updated
- Subtype subtype; //!< The type of update event this is (see Subtype)
-};
-
-
-/**
-Interface for a listener of TkEvent data. The user must implement this interface and pass it
-to the object which will dispatch the events.
-*/
-class TkEventListener
-{
-public:
- /**
- Interface to be implemented by the user. Events will be sent by BlastTk through a call to this function.
-
- \param[in] events The array of events being dispatched.
- \param[in] eventCount The number of events in the array.
- */
- virtual void receive(const TkEvent* events, uint32_t eventCount) = 0;
-};
-
-} // namespace Blast
-} // namespace Nv
-
-
-#endif // ifndef NVBLASTTKEVENT_H
+// This code contains NVIDIA Confidential Information and is disclosed to you
+// under a form of NVIDIA software license agreement provided separately to you.
+//
+// Notice
+// NVIDIA Corporation and its licensors retain all intellectual property and
+// proprietary rights in and to this software and 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.
+//
+// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+//
+// Information and code furnished is believed to be accurate and reliable.
+// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+// information or for any infringement of patents or other rights of third parties that may
+// result from its use. No license is granted by implication or otherwise under any patent
+// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+// This code supersedes and replaces all information previously supplied.
+// NVIDIA Corporation products are not authorized for use as critical
+// components in life support devices or systems without express written approval of
+// NVIDIA Corporation.
+//
+// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.
+
+
+#ifndef NVBLASTTKEVENT_H
+#define NVBLASTTKEVENT_H
+
+#include <vector>
+
+#include "NvBlastTypes.h"
+
+
+namespace Nv
+{
+namespace Blast
+{
+
+// Forward declarations
+class TkObject;
+class TkActor;
+class TkFamily;
+class TkJoint;
+
+
+/**
+By the time events are dispatched, a specific TkActor may have been split and became invalid.
+This structure caches the state before invalidation happened.
+*/
+struct TkActorData
+{
+ TkFamily* family; //!< TkFamily of the originating TkActor
+ void* userData; //!< TkActor.userData of the originating TkActor
+ uint32_t index; //!< TkActor::getIndex() of the originating TkActor
+};
+
+
+/**
+Event data dispatched to TkEventListener objects. The user may implement the abstract TkEventListener interface
+and pass the listener object to a BlastTk object which dispatches events. (See for example TkFamily.)
+*/
+struct TkEvent
+{
+ // Enums
+ enum Type
+ {
+ Split, //!< Sent when a TkActor is split. See TkSplitEvent.
+ FractureCommand, //!< Sent when a TkActor generated fracture commands using TkActor::generateFracture.
+ FractureEvent, //!< Sent when a TkActor is fractured using TkActor::applyFracture.
+ JointUpdate, //!< Sent when TkJoints change their attachment state. See TkJointUpdateEvent.
+
+ TypeCount
+ };
+
+ // Data
+ const void* payload; //!< Type-dependent payload data
+ Type type; //!< See the Type enum, above
+
+ /**
+ Casts the payload data into its type-dependent format.
+
+ \return the payload for an event of type T
+ */
+ template<typename T>
+ const T* getPayload() const { return reinterpret_cast<const T*>(payload); }
+};
+
+
+/**
+Payload for TkEvent::Split events
+
+When this event is sent, the parent TkActor that was split is no longer valid. Therefore it is not referenced
+directly in the event data. Instead, its TkFamily, index within the TkFamily, and userData are stored. In addition,
+this event gives the child TkActors generated by the split.
+*/
+struct TkSplitEvent
+{
+ enum { EVENT_TYPE = TkEvent::Split };
+
+ TkActorData parentData; //!< The data of parent TkActor that was split
+ uint32_t numChildren; //!< The number of children into which the parent TkActor was split
+ TkActor** children; //!< An array of pointers to the children into which the TkActor was split
+};
+
+
+/**
+Payload for the TkEvent::FractureCommand events
+
+Fracture Commands used to apply fracture to a TkActor.
+*/
+struct TkFractureCommands
+{
+ enum { EVENT_TYPE = TkEvent::FractureCommand };
+
+ TkActorData tkActorData; //!< The data of TkActor that received the fracture command
+ NvBlastFractureBuffers buffers; //!< The fracture commands used to modify the TkActor
+};
+
+
+/**
+Payload for the TkEvent::FractureEvent events
+
+Fracture Events resulting from applying fracture to a TkActor.
+*/
+struct TkFractureEvents
+{
+ enum { EVENT_TYPE = TkEvent::FractureEvent };
+
+ TkActorData tkActorData; //!< The data of TkActor that received the fracture command
+ NvBlastFractureBuffers buffers; //!< The fracture result of the modified TkActor
+ uint32_t bondsDamaged; //!< number of damaged bonds (health remains)
+ uint32_t bondsBroken; //!< number of broken bonds (health exhausted)
+ uint32_t chunksDamaged; //!< number of damaged chunks (health remains) including child chunks
+ uint32_t chunksBroken; //!< number of broken chunks (health exhausted) including child chunks
+};
+
+
+/**
+Payload for the TkEvent::JointUpdate events
+
+Event type sent when a TkJoint's TkActor references change. This may indicate a joint becoming external,
+simply changing actors when split events occur on one or both of the actors, or when one or both of the actors
+are destroyed.
+*/
+struct TkJointUpdateEvent
+{
+ enum { EVENT_TYPE = TkEvent::JointUpdate };
+
+ enum Subtype
+ {
+ External, //!< A joint that used to be internal to a single TkActor now joins two different TkActors
+ Changed, //!< One or both of the joint's attached TkActors has changed. The previous TkActors were distinct, however, differentiating this from the JointExternal case
+ Unreferenced //!< The joint's actors have been set to NULL. The joint will not be used again, and the user may release the TkJoint at this time
+ };
+
+ TkJoint* joint; //!< The joint being updated
+ Subtype subtype; //!< The type of update event this is (see Subtype)
+};
+
+
+/**
+Interface for a listener of TkEvent data. The user must implement this interface and pass it
+to the object which will dispatch the events.
+*/
+class TkEventListener
+{
+public:
+ /**
+ Interface to be implemented by the user. Events will be sent by BlastTk through a call to this function.
+
+ \param[in] events The array of events being dispatched.
+ \param[in] eventCount The number of events in the array.
+ */
+ virtual void receive(const TkEvent* events, uint32_t eventCount) = 0;
+};
+
+} // namespace Blast
+} // namespace Nv
+
+
+#endif // ifndef NVBLASTTKEVENT_H