mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-23 14:03:34 +00:00
73 lines
1.5 KiB
C++
73 lines
1.5 KiB
C++
#pragma once
|
|
#include "dpShapeBase.h"
|
|
#include <vector>
|
|
#include "NiPoint3.h"
|
|
#include "NiQuaternion.h"
|
|
|
|
class dpShapeBox : public dpShapeBase {
|
|
public:
|
|
dpShapeBox(dpEntity* parentEntity, float width, float height, float depth);
|
|
~dpShapeBox();
|
|
|
|
bool IsColliding(dpShapeBase* other);
|
|
|
|
const float GetScale() const { return m_Scale; }
|
|
|
|
const float GetWidth() const { return m_Width; }
|
|
const float GetHeight() const { return m_Height; }
|
|
const float GetDepth() const { return m_Depth; }
|
|
|
|
const float GetMaxWidth();
|
|
const float GetTop();
|
|
const float GetMaxDepth();
|
|
|
|
const float GetMinWidth();
|
|
const float GetBottom();
|
|
const float GetMinDepth();
|
|
|
|
void SetScale(float scale);
|
|
|
|
void SetRotation(const NiQuaternion& rotation);
|
|
|
|
const std::vector<NiPoint3>& GetVertices() const { return m_Vertices; }
|
|
|
|
bool IsVertInBox(const NiPoint3& vert);
|
|
|
|
void InitVertices();
|
|
|
|
void SetPosition(const NiPoint3& position);
|
|
|
|
//idc atm
|
|
float m_MinX = 9999.0f;
|
|
float m_MaxX = -9999.0f;
|
|
float m_MinY = 9999.0f;
|
|
float m_MaxY = -9999.0f;
|
|
float m_MinZ = 9999.0f;
|
|
float m_MaxZ = -9999.0f;
|
|
|
|
private:
|
|
float m_Width; //X
|
|
float m_Height; //Y
|
|
float m_Depth; //Z
|
|
|
|
std::vector<NiPoint3> m_Vertices;
|
|
|
|
NiPoint3 m_TopMinLeft;
|
|
NiPoint3 m_TopMinRight;
|
|
NiPoint3 m_TopMaxLeft;
|
|
NiPoint3 m_TopMaxRight;
|
|
|
|
NiPoint3 m_BottomMinLeft;
|
|
NiPoint3 m_BottomMinRight;
|
|
NiPoint3 m_BottomMaxLeft;
|
|
NiPoint3 m_BottomMaxRight;
|
|
|
|
float m_Scale;
|
|
|
|
bool m_HasBeenRotated = false;
|
|
bool isScaled = false;
|
|
bool isTransformed = false;
|
|
|
|
void InsertVertices();
|
|
};
|