1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
Halofreak1990 e7a47c8ed9 Revamped the List class so that it can (properly) handle pointers as well
Added 'ValueTypes' Single and Double
Added some components in the new System::Net namespace
Added the Console class, which can be used to output text to the screen
Updated a bunch of structs to include the IComparable and IEquatable interfaces, and inheritance from Object to allow better interoperability between container classes and other types
Replaced all exception handling code with a report to stdout.txt - this will, I hope, eventually be reversed, but as of yet, there is no support for exceptions.

BEWARE! Even though all libraries correctly compile, you cannot use any class/structure that inherits from a template class, because stupid G++ wants to include exception handling for each template.
2011-11-07 01:29:50 +00:00

49 lines
1.2 KiB
C++

/********************************************************
* Ray.h *
* *
* XFX Ray definition file *
* Copyright © XFX Team. All Rights Reserved *
********************************************************/
#ifndef _XFX_RAY_
#define _XFX_RAY_
#include <System/Interfaces.h>
#include <System/Object.h>
using namespace System;
namespace XFX
{
struct BoundingBox;
struct BoundingSphere;
struct Plane;
struct Vector3;
// Defines a ray.
struct Ray : public IEquatable<Ray>, virtual Object
{
public:
Vector3 Direction;
Vector3 Position;
Ray(Vector3 direction, Vector3 position);
Ray(const Ray &obj);
Ray();
bool Equals(Ray other);
int GetHashCode();
float Intersects(BoundingBox boundingbox);
void Intersects(BoundingBox boundingbox, out float result);
float Intersects(BoundingSphere sphere);
void Intersects(BoundingSphere sphere, out float result);
float Intersects(Plane plane);
void Intersects(Plane plane, out float result);
bool operator==(const Ray right);
bool operator!=(const Ray right);
Ray operator=(const Ray right);
};
}
#endif //_XFX_RAY_