From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/Dynamics/TerrainCollider.h | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Runtime/Dynamics/TerrainCollider.h (limited to 'Runtime/Dynamics/TerrainCollider.h') diff --git a/Runtime/Dynamics/TerrainCollider.h b/Runtime/Dynamics/TerrainCollider.h new file mode 100644 index 0000000..1d01f41 --- /dev/null +++ b/Runtime/Dynamics/TerrainCollider.h @@ -0,0 +1,46 @@ +#pragma once + +#if ENABLE_TERRAIN && ENABLE_PHYSICS + +#include "Runtime/Math/Vector3.h" +#include "Runtime/Utilities/LinkedList.h" +#include "Runtime/Dynamics/Collider.h" + +class TerrainData; + +class TerrainCollider : public Collider +{ + PPtr m_TerrainData; + bool m_CreateTreeColliders; + ListNode m_Node; + std::vector m_TreeColliders; + Vector3f m_CachedInvSize; + + public: + + TerrainCollider (MemLabelId label, ObjectCreationMode mode); + + REGISTER_DERIVED_CLASS(TerrainCollider, Collider) + DECLARE_OBJECT_SERIALIZE(TerrainCollider) + + void ScaleChanged (){} + void FetchPoseFromTransform (); + + Vector3f GetCachedInvSize () { return m_CachedInvSize; } + + void SetTerrainData (PPtr map); + TerrainData* GetTerrainData (); + + void CreateTrees (); + virtual void TransformChanged (int changeMask); + void TerrainChanged (int changeMask); + virtual void Create (const Rigidbody* ignoreAttachRigidbody); + virtual void Cleanup (); + static void InitializeClass (); + static void CleanupClass () {} + + bool HasShape() const { return m_Shape != NULL; } + virtual bool SupportsMaterial () const { return false; } +}; + +#endif \ No newline at end of file -- cgit v1.1-26-g67d0