aboutsummaryrefslogtreecommitdiff
path: root/NvBlast/examples/UnityExample/Assets/Plugins/Blast/NvBlastExtShadersWrapper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'NvBlast/examples/UnityExample/Assets/Plugins/Blast/NvBlastExtShadersWrapper.cs')
-rw-r--r--NvBlast/examples/UnityExample/Assets/Plugins/Blast/NvBlastExtShadersWrapper.cs42
1 files changed, 42 insertions, 0 deletions
diff --git a/NvBlast/examples/UnityExample/Assets/Plugins/Blast/NvBlastExtShadersWrapper.cs b/NvBlast/examples/UnityExample/Assets/Plugins/Blast/NvBlastExtShadersWrapper.cs
new file mode 100644
index 0000000..68b311d
--- /dev/null
+++ b/NvBlast/examples/UnityExample/Assets/Plugins/Blast/NvBlastExtShadersWrapper.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine;
+
+[StructLayout(LayoutKind.Sequential)]
+public class NvBlastExtRadialDamageDesc
+{
+ public float compressive; //!< compressive (radial) damage component
+ public float p0;
+ public float p1;
+ public float p2;
+ public float minRadius; //!< inner radius of damage action
+ public float maxRadius; //!< outer radius of damage action
+};
+
+[StructLayout(LayoutKind.Sequential)]
+public class NvBlastExtMaterial
+{
+ public float singleChunkThreshold; //!< subsupport chunks only take damage surpassing this value
+ public float graphChunkThreshold; //!< support chunks only take damage surpassing this value
+ public float bondTangentialThreshold; //!< bond only take damage surpassing this value
+ public float bondNormalThreshold; //!< currently unused - forward damage propagation
+ public float damageAttenuation; //!< factor of damage attenuation while forwarding
+};
+
+
+public static class NvBlastExtShadersWrapper
+{
+ public const string DLL_NAME = "NvBlastExtShaders" + NvBlastWrapper.DLL_POSTFIX + "_" + NvBlastWrapper.DLL_PLATFORM;
+
+ #region Dll
+ [DllImport(DLL_NAME)]
+ private static extern bool NvBlastExtDamageActorRadialFalloff(IntPtr actor, NvBlastFractureBuffers buffers, NvBlastExtRadialDamageDesc damageDescBuffer, UInt32 damageDescCount, NvBlastExtMaterial material, NvBlastWrapper.NvBlastLog logFn, NvBlastTimers timers);
+ #endregion
+
+ public static bool DamageRadialFalloff(this NvBlastActor actor, NvBlastFractureBuffers buffers, NvBlastExtRadialDamageDesc damageDescBuffer, UInt32 damageDescCount, NvBlastExtMaterial material)
+ {
+ return NvBlastExtDamageActorRadialFalloff(actor.ptr, buffers, damageDescBuffer, damageDescCount, material, NvBlastWrapper.Log, null);
+ }
+} \ No newline at end of file