1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
XFXFramework/include/BoundingFrustrum.h
Tom Lint 52ef14a94b Transition from SVN to Git
Added implicit conversion to base types to all primary types (UInt32 et
al)
Added implicit conversion from System::String to const char*
2013-05-05 18:18:41 +02:00

87 lines
2.5 KiB
C++

/********************************************************
* BoundingFrustrum.h *
* *
* XFX BoundingFrustrum definition file *
* Copyright © XFX Team. All Rights Reserved *
********************************************************/
#ifndef _XFX_BOUNDINGFRUSTRUM_
#define _XFX_BOUNDINGFRUSTRUM_
#include "Enums.h"
#include "Matrix.h"
#include "Plane.h"
#include <System/Object.h>
#include <System/Types.h>
using namespace System;
namespace XFX
{
struct BoundingBox;
struct BoundingSphere;
struct Ray;
struct Vector3;
// Defines a frustum and helps determine whether forms intersect with it.
class BoundingFrustrum : virtual Object
{
private:
static const int BottomPlaneIndex;
Vector3 cornerArray[8];
static const int FarPlaneIndex;
static const int LeftPlaneIndex;
Matrix matrix;
static const int NearPlaneIndex;
static const int NumPlanes;
Plane planes[6];
static const int RightPlaneIndex;
static const int TopPlaneIndex;
static Vector3 ComputeIntersection(Plane plane, Ray ray);
static Ray ComputeIntersectionLine(Plane p1, Plane p2);
void SetMatrix(Matrix value);
void SupportMapping(Vector3 v, out Vector3 result);
public:
Plane Bottom();
static const int CornerCount;
Plane Far();
Plane Left();
Matrix Matrix_();
void Matrix_(Matrix value);
Plane Near();
Plane Right();
Plane Top();
BoundingFrustrum();
BoundingFrustrum(Matrix value);
BoundingFrustrum(const BoundingFrustrum &obj); // copy constructor
ContainmentType_t Contains(BoundingBox box);
ContainmentType_t Contains(BoundingFrustrum frustrum);
ContainmentType_t Contains(BoundingSphere sphere);
ContainmentType_t Contains(Vector3 point);
void Contains(BoundingBox box, out ContainmentType_t result);
void Contains(BoundingSphere sphere, out ContainmentType_t result);
void Contains(Vector3 point, out ContainmentType_t result);
bool Equals(BoundingFrustrum other);
Vector3* GetCorners();
void GetCorners(Vector3 corners[]);
int GetHashCode();
bool Intersects(BoundingBox box);
bool Intersects(BoundingFrustrum frustrum);
bool Intersects(BoundingSphere sphere);
PlaneIntersectionType_t Intersects(Plane plane);
float Intersects(Ray ray);
void Intersects(BoundingBox box, out bool result);
void Intersects(BoundingSphere sphere, out bool result);
void Intersects(Plane plane, out PlaneIntersectionType_t result);
void Intersects(Ray ray, out float result);
bool operator==(BoundingFrustrum other);
bool operator!=(BoundingFrustrum other);
};
}
#endif //_XFX_BOUNDINGFRUSTRUM_