/* Copyright 2003-2005 ROBLOX Corporation, All Rights Reserved */ #pragma once #include "G3D/Vector3int16.h" #include "G3DCore.h" namespace RBX { class Region3int16 { private: Vector3int16 minPos; Vector3int16 maxPos; public: Region3int16() { } Region3int16(const Vector3int16& min, const Vector3int16& max) : minPos(min) , maxPos(max) { } const Vector3int16& getMinPos() const { return minPos; } const Vector3int16& getMaxPos() const { return maxPos; } bool operator==(const Region3int16& other) const { return (minPos == other.minPos) && (maxPos == other.maxPos); } bool operator!=(const Region3int16& other) const { return !(*this == other); } bool contains(const Vector3int16& p) const { return static_cast(p.x - minPos.x) <= static_cast(maxPos.x - minPos.x) && static_cast(p.y - minPos.y) <= static_cast(maxPos.y - minPos.y) && static_cast(p.z - minPos.z) <= static_cast(maxPos.z - minPos.z); } bool empty() const { return minPos.x > maxPos.x || minPos.y > maxPos.y || minPos.z > maxPos.z; } }; }