Classes
Name | Description |
---|---|
Geo::ConvexHull | A convex hull of a set of points. |
Geo::ConvexHullBuilder | Builds ConvexHull objects. |
Geo::CovarianceMatrix | A covariance matrix. |
Geo::CovarianceMatrixBuilder | Used for building CovarianceMatrix. |
Geo::DebugLine | A line between two points. |
Geo::Geo2DTransform | A class representing a 2d linear transform between UVs. |
Geo::GeoBlueNoise | class GeoBlueNoise Adapted from: Bridson, Robert, "Fast Poisson Sampling in Arbitrary Dimensions", ACM SIGGRAPH 2007 sketches |
Geo::GeoBlueNoiseDiskPalette | Builds a pallet of blue noise samples, each in a disk of radius 1. |
Geo::GeoBlueNoiseRayPalette | class GeoBlueNoiseRayPalette |
Geo::GeoBoundingBox | This class represents an axis aligned bounding box. |
Geo::GeoBoundingSphere | This class represents a bounding sphere. |
Geo::GeoIntRange | Represents a range of integers, e.g. between 10 and 20. |
Geo::GeoPoint2 | Single precision 2 dimensional point class. |
Geo::GeoPoint2D | Integer 2 dimensional point class. |
Geo::GeoPoint3 | Single precision 3 dimensional point class. |
Geo::GeoPoint3D | Integer 3 dimensional point class. |
Geo::GeoVector3 | Single precision 3 dimensional vector class. |
Geo::GeoVector4 | Single precision 4 dimensional vector class. |
Geo::GoodRNG | A Mersenne Twister RNG. |
Geo::Matrix4x4 | Single-precision 4x4 matrix class. |
Geo::SimpleRNG | The 'super-duper' random number generator with shuffle (an LCG). |
Geo::Statistics | Result structure used for comparing input lighting buffers. |
Geo::VectorD | Double precision vector class. |
Functions
Name | Description |
---|---|
BloatTriangle(ConvexHull *, Geo::v128, Geo::v128, Geo::v128, float, Geo::s32) | Bloat a triangle by a specified amount. |
CalcCubeMapCoordinatesForDirection(Geo::v128, Geo::s32, Geo::s32 &, float &, float &) | Compute the cube map texel coordinate for a given direction and cubemap resolution. |
CalcDirectionForCubeMapCoordinate(Geo::s32, Geo::s32, Geo::s32, Geo::s32) | Generate a direction vector for a cubemap texel coordinate. |
CalcDirectionForCubeMapTexel(Geo::s32, float, float) | Generate a direction vector for a cubemap texel UV coordinate. |
ClosestPointInBox(const Geo::v128 &) | Compute the closest point in the box to p. |
CombineStatistics(const Statistics &, const Statistics &) | Combine the values in statsA and statsB so that the properties of each member are retained over the whole set. |
ComputeStatistics(Statistics &, const Geo::v128 *, const Geo::v128 *, const Geo::s32, const Geo::v128 &) | Computes the difference between two vector arrays. |
ContainsBox(const Geo::GeoBoundingBox &) | Is a box contained by the box? |
ContainsPoint(const Geo::v128 &) | Is a point in the box? |
ContainsPoint2D(const Geo::v128 &) | Is a point in the box? Only tests xy. |
Cross(VectorD, VectorD) | Double precision vector operators. |
Dot(VectorD, VectorD) | Double precision vector operators. |
EnclosePoint(const v128 &) | Enlarge this bounding box to include the given point. |
ExpandBy(const v128 &) | Expands this bounding box by the given amount in each of the three axes (in both directions). |
GenerateGuidFromString(const GeoString< char > &) | Convert a string to a GUID by hashing. |
GenerateGuidFromString(GeoGuid &, const GeoString< char > &) | Convert a string to a GUID by hashing. |
GenerateUnitSquareFastPoissonDistribution(const s32 &, GeoArray< GeoPoint2 > &, const u32 &) | Helper function to generate fast poisson samples in the 2D unit square. |
GenerateUnitSquareSobolDistribution(const s32 &, GeoArray< GeoPoint2 > &, const u32 &) | Helper function to generate sobol samples in the 2D unit square. |
GeoBoundingBox(const GeoBoundingBox &) | Copy Constructor. |
GeoBoundingBox(float, float, float, float, float, float) | Create a bounding box defined by two extreme points. |
GeoBoundingBox() | Constructor - makes an empty bounding box. |
GeoRectFromCoords(float, float, float, float) | Function to construct a GeoRect from the minimum and maximum X and Y co-ordinates. |
GeoRectFromCoordsUnsafe(float, float, float, float) | Function to construct a GeoRect from the minimum and maximum X and Y co-ordinates. |
GeoRectFromSize(float, float, float, float) | Function to construct a GeoRect from a minimum X and Y co-ordinate, a width and a height. |
GeoRectHeight(GeoRect) | Functions to get various co-ordinates from a rect. |
GeoRectMaxX(GeoRect) | Functions to get various co-ordinates from a rect. |
GeoRectMaxY(GeoRect) | Functions to get various co-ordinates from a rect. |
GeoRectMinX(GeoRect) | Functions to get various co-ordinates from a rect. |
GeoRectMinY(GeoRect) | Functions to get various co-ordinates from a rect. |
GeoRectWidth(GeoRect) | Functions to get various co-ordinates from a rect. |
GetCenter() | Return the center of this bounding box. |
GetDistanceFrom(const GeoBoundingBox &) | Distance between two bounding boxes (0 if they intersect) |
GetDistanceFrom(const Geo::v128 &) | Compute the closest distance from p. |
GetLargestFace() | Return the largest face of this bounding box. |
GetLongestSide() | Return the longest side of this bounding box. |
GetMax() | Return the maxumum in each axis of this bounding box. |
GetMin() | Return the minimum in each axis of this bounding box. |
GetShortestSide() | Return the shortest side of this bounding box. |
GetSize() | Return the size of this bounding box in each axis. |
GetSurfaceArea() | Return the surface area of this bounding box. |
GetVolume() | Return the volume of this bounding box. |
HashBig(const void *, size_t, u32) | This is the same as HashWord() on big-endian machines. |
HashLittle(GeoStringView< char >) | This will create a simple u32 hash from the (case-sensitive) string supplied. |
HashLittle(const void *, size_t, u32) | Hash a variable-length key of bytes into a 32-bit value. |
HashSHA1(GeoFileStringView) | Hashes the given string using SHA1 and returns a GUID representing the hash. |
HashSHA1(const Geo::u8 *, Geo::s32, Geo::u8 *) | Hashes the given array of bytes using SHA1. The outputBytes parameter must have at least HASH_SIZE_SHA1 bytes allocated. |
HashSHA1(const Geo::u8 *, Geo::s32) | Hashes the given array of bytes using SHA1 and returns a string representing the hash. |
HashWord(const u32 *, size_t, u32) | Produce a hash from a string of Geo::u32 This works on all machines. |
IntersectsBoundingBox(const GeoBoundingBox &) | Returns true if the bounding boxes mutually olaps. |
IsEmpty() | Returns true if the bbox is empty (ie uninitialised) |
Length(VectorD) | Double precision vector operators. |
Max(const GeoPoint2D &, const GeoPoint2D &) | Gets the component-wise maximum of two points. |
Max(const GeoPoint3D &, const GeoPoint3D &) | Gets the component-wise maximum of two points. |
MConstructCubeMapInvViewMatrix(Geo::s32) | Construct the inverse of the view matrix for a specific cubemap face. |
MConstructCubeMapViewMatrix(Geo::s32) | Construct a view matrix for a specific cubemap face. |
Min(const GeoPoint3D &, const GeoPoint3D &) | Gets the component-wise minimum of two points. |
operator-(VectorD, VectorD) | Double precision vector operators. |
operator*(double, VectorD) | Double precision vector operators. |
operator/(VectorD, VectorD) | Double precision vector operators. |
operator[](Geo::u32) | Indexed access to the two extreme points that define this bounding box (index must be 0 or 1). |
operator+(const GeoBoundingBox &) | Compute and return the union of this bounding with another. |
operator+=(const v128 &) | Enlarge this bounding box to include the given point. |
operator+=(const GeoBoundingBox &) | Compute the inplace union of this bounding box and another. |
operator<(const GeoPoint3D &, const GeoPoint3D &) | Allow GeoPoint3D to be used as a key for GeoMap. |
operator<(const GeoPoint3 &, const GeoPoint3 &) | |
operator==(const GeoPoint3 &, const GeoPoint3 &) | Equality operator. |
ScaleRect(GeoRect, float) | Function to scale a bounding box. |
SetEmpty() | Resets the box to it's default empty state. |
TestSamplingDistributions(const char *, const s32 &) | Write out raysets representing the ray distributions for debugging and visualisation. |
UniformInteger(RNG &) | Random unsigned 32 bit integer, [0, 0xffffffff] (inclusive) |
UniformSignedUnitDouble(RNG &) | Random double, [-1, 1] (inclusive) |
UniformSignedUnitFloat(RNG &) | Random float, [-1, 1] (inclusive) |
UniformUnitClopenDouble(RNG &) | Random double, [0, 1) |
UniformUnitClopenFloat(RNG &) | Random float, [0, 1) |
UniformUnitDouble(RNG &) | Random double, [0, 1] (inclusive) |
UniformUnitFloat(RNG &) | Random float, [0, 1] (inclusive) |
UniformUnitOpenDouble(RNG &) | Random double, (0, 1) |
UniformUnitOpenFloat(RNG &) | Random float, (0, 1) |
UnionOfRects(GeoRect, GeoRect) | Union of two bounding boxes. |
VLeftOf2(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &) | Determines if the point 'c' is to the left of the line formed by joining 'a' and 'b'. |
VLength(VectorD) | Double precision vector operators. |
VRightOf2(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &) | Determines if the point 'c' is to the right of the line formed by joining 'a' and 'b'. |
VScaleAndAdd(const Geo::v128 &, float, const Geo::v128 &, float) | Calculates a * s + b * t. |
VSignedArea2(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &) | Calculates the signed area of the given triangle in 2D space (z-coordinates ignored) |
VSlerp2(const Geo::v128 &, const Geo::v128 &, float) | Spherical linear interpolation between 'a' and 'b', with weight 't'. |
Enums
Name | Description |
---|---|
Dimension3 | An enumeration of the dimensions of 3D space. |
Sign | A sign bit. |
Typedefs
Name | Description |
---|---|
v128 GeoRect | A GeoRect is actually just a 4-vector (Geo::v128). |
Variables
Name | Description |
---|---|
const Geo::s32 HASH_SIZE_SHA1 = 20 | The size of an SHA-1 hash. |
Anchor | ||||
---|---|---|---|---|
|
Geo::s32 Geo::BloatTriangle
...
public: Geo::s32 BloatTriangle
(
ConvexHull * out,
Geo::v128 a,
Geo::v128 b,
Geo::v128 c,
float bloat,
Geo::s32 cornerSmoothness
)
...
Bloat a triangle by a specified amount.
You can specify how refined you want the rounded corners to be, or 0 if you just want a single join point in the centre. The number correlates to how many segments the widest corner will have (and will scale from there). As this is a reasonably quick function, you should pass in a convex hull with the appropriate number of points allocated to it.
Returns
The number of points used, or -1 if there wasn't enough space.
Note | ||
---|---|---|
| ||
Passing NULL for outIS VALID : this will return the number of points the final result will use. Winding order is irrelevant: it is corrected internally. |
Anchor | ||||
---|---|---|---|---|
|
void GEO_CALL Geo::CalcCubeMapCoordinatesForDirection
...
public: void GEO_CALL CalcCubeMapCoordinatesForDirection
(
Geo::v128 direction,
Geo::s32 faceWidth,
Geo::s32 & faceIdx,
float & x,
float & y
)
...
Compute the cube map texel coordinate for a given direction and cubemap resolution.
Note | ||
---|---|---|
| ||
x and y are returned as floats but in texel coordinates rather than normalised UVs. |
Anchor | ||||
---|---|---|---|---|
|
Geo::v128 GEO_CALL Geo::CalcDirectionForCubeMapCoordinate
...
public: Geo::v128GEO_CALL CalcDirectionForCubeMapCoordinate
(
Geo::s32 faceIdx,
Geo::s32 x,
Geo::s32 y,
Geo::s32 faceWidth
)
...
Generate a direction vector for a cubemap texel coordinate.
Anchor | ||||
---|---|---|---|---|
|
Geo::v128 GEO_CALL Geo::CalcDirectionForCubeMapTexel
...
public: Geo::v128GEO_CALL CalcDirectionForCubeMapTexel
(
Geo::s32 faceIdx,
float u,
float v
)
...
Generate a direction vector for a cubemap texel UV coordinate.
Anchor | ||||
---|---|---|---|---|
|
Geo::v128 Geo::GeoBoundingBox::ClosestPointInBox
...
public: Geo::v128 ClosestPointInBox
(
const Geo::v128 & p
) const
...
Compute the closest point in the box to p.
Anchor | ||||
---|---|---|---|---|
|
Statistics GEO_CALL Geo::CombineStatistics
...
public: Statistics GEO_CALL CombineStatistics
(
const Statistics & statsA,
const Statistics & statsB
)
...
Combine the values in statsA and statsB so that the properties of each member are retained over the whole set.
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Geo::ComputeStatistics
...
public: bool GEO_CALL ComputeStatistics
(
Statistics & stats,
const Geo::v128 * vA,
const Geo::v128 * vB,
const Geo::s32 numValues,
const Geo::v128 & mask
)
...
Computes the difference between two vector arrays.
Returns TRUE on success. Vector array parameters must be valid non-null objects.
Parameters
[inout] | stats | Statistics on the difference. |
[in] | vA | The first vector to compare. |
[in] | vB | The second vector to compare. |
[in] | numValues | Number of elements in the two vectors. |
[in] | mask | Vector for masking out certain elements of the input vectors. |
Anchor | ||||
---|---|---|---|---|
|
bool Geo::GeoBoundingBox::ContainsBox
...
public: bool ContainsBox
(
const Geo::GeoBoundingBox & rhs
) const
...
Is a box contained by the box?
Anchor | ||||
---|---|---|---|---|
|
bool Geo::GeoBoundingBox::ContainsPoint
...
public: bool ContainsPoint
(
const Geo::v128 & p
) const
...
Is a point in the box?
Anchor | ||||
---|---|---|---|---|
|
bool Geo::GeoBoundingBox::ContainsPoint2D
...
public: bool ContainsPoint2D
(
const Geo::v128 & p
) const
...
Is a point in the box? Only tests xy.
Anchor | ||||
---|---|---|---|---|
|
VectorD Geo::Cross
...
public: VectorD Cross
(
VectorD u,
VectorD v
)
...
Double precision vector operators.
Anchor | ||||
---|---|---|---|---|
|
double Geo::Dot
...
public: double Dot
(
VectorD lhs,
VectorD rhs
)
...
Double precision vector operators.
Anchor | ||||
---|---|---|---|---|
|
void Geo::GeoBoundingBox::EnclosePoint
...
public: void EnclosePoint
(
const v128 & point
)
...
Enlarge this bounding box to include the given point.
Anchor | ||||
---|---|---|---|---|
|
void Geo::GeoBoundingBox::ExpandBy
...
public: void ExpandBy
(
const v128 & expansion
)
...
Expands this bounding box by the given amount in each of the three axes (in both directions).
Anchor | ||||
---|---|---|---|---|
|
GeoGuid Geo::GenerateGuidFromString
...
public: GeoGuid GenerateGuidFromString
(
const GeoString< char > & string
)
...
Convert a string to a GUID by hashing.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::GenerateGuidFromString
...
public: bool GenerateGuidFromString
(
GeoGuid & guidFromString,
const GeoString< char > & string
)
...
Convert a string to a GUID by hashing.
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Geo::GenerateUnitSquareFastPoissonDistribution
...
public: bool GEO_CALL GenerateUnitSquareFastPoissonDistribution
(
const s32 & numSamples,
GeoArray< GeoPoint2 > & samples,
const u32 & seed
)
...
Helper function to generate fast poisson samples in the 2D unit square.
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Geo::GenerateUnitSquareSobolDistribution
...
public: bool GEO_CALL GenerateUnitSquareSobolDistribution
(
const s32 & numSamples,
GeoArray< GeoPoint2 > & samples,
const u32 & seed
)
...
Helper function to generate sobol samples in the 2D unit square.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoBoundingBox::GeoBoundingBox
...
public: GeoBoundingBox
(
const GeoBoundingBox & from
)
...
Copy Constructor.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoBoundingBox::GeoBoundingBox
...
public: GeoBoundingBox
(
float x1,
float y1,
float z1,
float x2,
float y2,
float z2
)
...
Create a bounding box defined by two extreme points.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoBoundingBox::GeoBoundingBox
...
public: GeoBoundingBox()
...
Constructor - makes an empty bounding box.
Anchor | ||||
---|---|---|---|---|
|
GeoRect Geo::GeoRectFromCoords
...
public: GeoRect GeoRectFromCoords
(
float minX,
float minY,
float maxX,
float maxY
)
...
Function to construct a GeoRect from the minimum and maximum X and Y co-ordinates.
Anchor | ||||
---|---|---|---|---|
|
GeoRect Geo::GeoRectFromCoordsUnsafe
...
public: GeoRect GeoRectFromCoordsUnsafe
(
float minX,
float minY,
float maxX,
float maxY
)
...
Function to construct a GeoRect from the minimum and maximum X and Y co-ordinates.
Anchor | ||||
---|---|---|---|---|
|
GeoRect Geo::GeoRectFromSize
...
public: GeoRect GeoRectFromSize
(
float minX,
float minY,
float width,
float height
)
...
Function to construct a GeoRect from a minimum X and Y co-ordinate, a width and a height.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoRectHeight
...
public: float GeoRectHeight
(
GeoRect rect
)
...
Functions to get various co-ordinates from a rect.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoRectMaxX
...
public: float GeoRectMaxX
(
GeoRect rect
)
...
Functions to get various co-ordinates from a rect.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoRectMaxY
...
public: float GeoRectMaxY
(
GeoRect rect
)
...
Functions to get various co-ordinates from a rect.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoRectMinX
...
public: float GeoRectMinX
(
GeoRect rect
)
...
Functions to get various co-ordinates from a rect.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoRectMinY
...
public: float GeoRectMinY
(
GeoRect rect
)
...
Functions to get various co-ordinates from a rect.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoRectWidth
...
public: float GeoRectWidth
(
GeoRect rect
)
...
Functions to get various co-ordinates from a rect.
Anchor | ||||
---|---|---|---|---|
|
v128 Geo::GeoBoundingBox::GetCenter
...
public: v128 GetCenter() const
...
Return the center of this bounding box.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoBoundingBox::GetDistanceFrom
...
public: float GetDistanceFrom
(
const GeoBoundingBox & rhs
) const
...
Distance between two bounding boxes (0 if they intersect)
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoBoundingBox::GetDistanceFrom
...
public: float GetDistanceFrom
(
const Geo::v128 & p
) const
...
Compute the closest distance from p.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoBoundingBox::GetLargestFace
...
public: float GetLargestFace() const
...
Return the largest face of this bounding box.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoBoundingBox::GetLongestSide
...
public: float GetLongestSide() const
...
Return the longest side of this bounding box.
Anchor | ||||
---|---|---|---|---|
|
v128 Geo::GeoBoundingBox::GetMax
...
public: v128 GetMax() const
...
Return the maxumum in each axis of this bounding box.
Anchor | ||||
---|---|---|---|---|
|
v128 Geo::GeoBoundingBox::GetMin
...
public: v128 GetMin() const
...
Return the minimum in each axis of this bounding box.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoBoundingBox::GetShortestSide
...
public: float GetShortestSide() const
...
Return the shortest side of this bounding box.
Anchor | ||||
---|---|---|---|---|
|
v128 Geo::GeoBoundingBox::GetSize
...
public: v128 GetSize() const
...
Return the size of this bounding box in each axis.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoBoundingBox::GetSurfaceArea
...
public: float GetSurfaceArea() const
...
Return the surface area of this bounding box.
Anchor | ||||
---|---|---|---|---|
|
float Geo::GeoBoundingBox::GetVolume
...
public: float GetVolume() const
...
Return the volume of this bounding box.
Anchor | ||||
---|---|---|---|---|
|
u32 Geo::HashBig
...
public: u32 HashBig
(
const void * key,
size_t length,
u32 initval
)
...
This is the same as HashWord() on big-endian machines.
It is different from HashLittle() on all machines. HashBig() takes advantage of big-endian byte ordering.
Anchor | ||||
---|---|---|---|---|
|
u32 Geo::HashLittle
...
public: u32 HashLittle
(
GeoStringView< char > string
)
...
This will create a simple u32 hash from the (case-sensitive) string supplied.
Anchor | ||||
---|---|---|---|---|
|
u32 Geo::HashLittle
...
public: u32 HashLittle
(
const void * key,
size_t length,
u32 initval
)
...
Hash a variable-length key of bytes into a 32-bit value.
Every bit of the key affects every bit of the return value. Two keys differing by one or two bits will have totally different hash values.
The best hash table sizes are powers of 2. There is no need to do mod a prime (mod is sooo slow!). If you need less than 32 bits, use a bitmask. For example, if you need only 10 bits, do h = (h & hashmask(10)); In which case, the hash table should have hashsize(10) elements.
If you are hashing n strings (u8 **)k, do it like this: for (i=0, h=0; i<n; ++i) h = HashLittle( k[i], len[i], h);
By Bob Jenkins, 2006. bob_jenkins@burtleburtle.net. You may use this code any way you wish, private, educational, or commercial. It's free.
Use for hash table lookup, or anything where one collision in 2^^32 is acceptable. Do NOT use for cryptographic purposes.
Parameters
key | The key (the unaligned variable-length array of bytes) | |
length | The length of the key, counting by bytes | |
initval | Can be any 4-byte value |
Returns
Returns a 32-bit value.
Anchor | ||||
---|---|---|---|---|
|
GeoGuid Geo::HashSHA1
...
public: GeoGuid HashSHA1
(
GeoFileStringView string
)
...
Hashes the given string using SHA1 and returns a GUID representing the hash.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::HashSHA1
...
public: bool HashSHA1
(
const Geo::u8 * inputBytes,
Geo::s32 inputNumBytes,
Geo::u8 * outputBytes
)
...
Hashes the given array of bytes using SHA1. The outputBytes parameter must have at least HASH_SIZE_SHA1 bytes allocated.
Anchor | ||||
---|---|---|---|---|
|
Geo::GeoString<char> Geo::HashSHA1
...
public: Geo::GeoString< char > HashSHA1
(
const Geo::u8 * inputBytes,
Geo::s32 inputNumBytes
)
...
Hashes the given array of bytes using SHA1 and returns a string representing the hash.
Anchor | ||||
---|---|---|---|---|
|
u32 Geo::HashWord
...
public: u32 HashWord
(
const u32 * k,
size_t length,
u32 initval
)
...
Produce a hash from a string of Geo::u32 This works on all machines.
To be useful, it requires
That the key be an array of u32's, and
That all your machines have the same endianness, and
That the length be the number of u32's in the key The function HashWord() is identical to HashLittle() on little-endian machines, and identical to HashBig() on big-endian machines, except that the length has to be measured in u32s rather than in bytes. HashLittle() is more complicated than HashWord() only because HashLittle() has to dance around fitting the key bytes into registers.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::GeoBoundingBox::IntersectsBoundingBox
...
public: bool IntersectsBoundingBox
(
const GeoBoundingBox & rhs
) const
...
Returns true if the bounding boxes mutually olaps.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::GeoBoundingBox::IsEmpty
...
public: bool IsEmpty() const
...
Returns true if the bbox is empty (ie uninitialised)
Anchor | ||||
---|---|---|---|---|
|
double Geo::Length
...
public: double Length
(
VectorD v
)
...
Double precision vector operators.
Anchor | ||||
---|---|---|---|---|
|
GeoPoint2D Geo::Max
...
public: GeoPoint2D Max
(
const GeoPoint2D & a,
const GeoPoint2D & b
)
...
Gets the component-wise maximum of two points.
Anchor | ||||
---|---|---|---|---|
|
GeoPoint3D Geo::Max
...
public: GeoPoint3D Max
(
const GeoPoint3D & a,
const GeoPoint3D & b
)
...
Gets the component-wise maximum of two points.
Anchor | ||||
---|---|---|---|---|
|
Matrix GEO_CALL Geo::MConstructCubeMapInvViewMatrix
...
public: Matrix GEO_CALL MConstructCubeMapInvViewMatrix
(
Geo::s32 faceIdx
)
...
Construct the inverse of the view matrix for a specific cubemap face.
Anchor | ||||
---|---|---|---|---|
|
Matrix GEO_CALL Geo::MConstructCubeMapViewMatrix
...
public: Matrix GEO_CALL MConstructCubeMapViewMatrix
(
Geo::s32 faceIdx
)
...
Construct a view matrix for a specific cubemap face.
Anchor | ||||
---|---|---|---|---|
|
GeoPoint3D Geo::Min
...
public: GeoPoint3D Min
(
const GeoPoint3D & a,
const GeoPoint3D & b
)
...
Gets the component-wise minimum of two points.
Anchor | ||||
---|---|---|---|---|
|
VectorD Geo::operator-
...
public: VectorD operator-
(
VectorD lhs,
VectorD rhs
)
...
Double precision vector operators.
Anchor | ||||
---|---|---|---|---|
|
VectorD Geo::operator*
...
public: VectorD operator*
(
double lhs,
VectorD rhs
)
...
Double precision vector operators.
Anchor | ||||
---|---|---|---|---|
|
VectorD Geo::operator/
...
public: VectorD operator/
(
VectorD lhs,
VectorD rhs
)
...
Double precision vector operators.
Anchor | ||||
---|---|---|---|---|
|
const v128 & Geo::GeoBoundingBox::operator[]
...
public: const v128 & operator[]
(
Geo::u32 index
) const
...
Indexed access to the two extreme points that define this bounding box (index must be 0 or 1).
Anchor | ||||
---|---|---|---|---|
|
GeoBoundingBox Geo::GeoBoundingBox::operator+
...
public: GeoBoundingBox operator+
(
const GeoBoundingBox & rhs
) const
...
Compute and return the union of this bounding with another.
Anchor | ||||
---|---|---|---|---|
|
GeoBoundingBox & Geo::GeoBoundingBox::operator+=
...
public: GeoBoundingBox & operator+=
(
const v128 & rhs
)
...
Enlarge this bounding box to include the given point.
Anchor | ||||
---|---|---|---|---|
|
GeoBoundingBox & Geo::GeoBoundingBox::operator+=
...
public: GeoBoundingBox & operator+=
(
const GeoBoundingBox & rhs
)
...
Compute the inplace union of this bounding box and another.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::operator<
...
public: bool operator<
(
const GeoPoint3D & lhs,
const GeoPoint3D & rhs
)
...
Allow GeoPoint3D to be used as a key for GeoMap.
Although this will not give any kind of sensible spatial organisation, it is at least a stable, usable ordering.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::operator<
...
public: bool operator<
(
const GeoPoint3 & lhs,
const GeoPoint3 & rhs
)
...
Allow GeoPoint3 to be used as a key for GeoMap.
Although this will not give any kind of sensible spatial organisation, it is at least a stable, usable ordering.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::operator==
...
public: bool operator==
(
const GeoPoint3 & lhs,
const GeoPoint3 & rhs
)
...
Equality operator.
Anchor | ||||
---|---|---|---|---|
|
GeoRect Geo::ScaleRect
...
public: GeoRect ScaleRect
(
GeoRect rect,
float scale
)
...
Function to scale a bounding box.
Anchor | ||||
---|---|---|---|---|
|
void Geo::GeoBoundingBox::SetEmpty
...
public: void SetEmpty()
...
Resets the box to it's default empty state.
Anchor | ||||
---|---|---|---|---|
|
bool GEO_CALL Geo::TestSamplingDistributions
...
public: bool GEO_CALL TestSamplingDistributions
(
const char * filename,
const s32 & numSamples
)
...
Write out raysets representing the ray distributions for debugging and visualisation.
Anchor | ||||
---|---|---|---|---|
|
u32 Geo::UniformInteger
...
public: u32 UniformInteger
(
RNG & rng
)
...
Random unsigned 32 bit integer, [0, 0xffffffff] (inclusive)
Anchor | ||||
---|---|---|---|---|
|
double Geo::UniformSignedUnitDouble
...
public: double UniformSignedUnitDouble
(
RNG & rng
)
...
Random double, [-1, 1] (inclusive)
Anchor | ||||
---|---|---|---|---|
|
float Geo::UniformSignedUnitFloat
...
public: float UniformSignedUnitFloat
(
RNG & rng
)
...
Random float, [-1, 1] (inclusive)
Anchor | ||||
---|---|---|---|---|
|
double Geo::UniformUnitClopenDouble
...
public: double UniformUnitClopenDouble
(
RNG & rng
)
...
Random double, [0, 1)
Anchor | ||||
---|---|---|---|---|
|
float Geo::UniformUnitClopenFloat
...
public: float UniformUnitClopenFloat
(
RNG & rng
)
...
Random float, [0, 1)
Anchor | ||||
---|---|---|---|---|
|
double Geo::UniformUnitDouble
...
public: double UniformUnitDouble
(
RNG & rng
)
...
Random double, [0, 1] (inclusive)
Anchor | ||||
---|---|---|---|---|
|
float Geo::UniformUnitFloat
...
public: float UniformUnitFloat
(
RNG & rng
)
...
Random float, [0, 1] (inclusive)
Anchor | ||||
---|---|---|---|---|
|
double Geo::UniformUnitOpenDouble
...
public: double UniformUnitOpenDouble
(
RNG & rng
)
...
Random double, (0, 1)
Anchor | ||||
---|---|---|---|---|
|
float Geo::UniformUnitOpenFloat
...
public: float UniformUnitOpenFloat
(
RNG & rng
)
...
Random float, (0, 1)
Anchor | ||||
---|---|---|---|---|
|
GeoRect Geo::UnionOfRects
...
public: GeoRect UnionOfRects
(
GeoRect r1,
GeoRect r2
)
...
Union of two bounding boxes.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::VLeftOf2
...
public: bool VLeftOf2
(
const Geo::v128 & a,
const Geo::v128 & b,
const Geo::v128 & c
)
...
Determines if the point 'c' is to the left of the line formed by joining 'a' and 'b'.
Anchor | ||||
---|---|---|---|---|
|
VectorD Geo::VLength
...
public: VectorD VLength
(
VectorD v
)
...
Double precision vector operators.
Anchor | ||||
---|---|---|---|---|
|
bool Geo::VRightOf2
...
public: bool VRightOf2
(
const Geo::v128 & a,
const Geo::v128 & b,
const Geo::v128 & c
)
...
Determines if the point 'c' is to the right of the line formed by joining 'a' and 'b'.
Anchor | ||||
---|---|---|---|---|
|
Geo::v128 Geo::VScaleAndAdd
...
public: Geo::v128 VScaleAndAdd
(
const Geo::v128 & a,
float s,
const Geo::v128 & b,
float t
)
...
Calculates a * s + b * t.
Anchor | ||||
---|---|---|---|---|
|
float Geo::VSignedArea2
...
public: float VSignedArea2
(
const Geo::v128 & a,
const Geo::v128 & b,
const Geo::v128 & c
)
...
Calculates the signed area of the given triangle in 2D space (z-coordinates ignored)
Anchor | ||||
---|---|---|---|---|
|
Geo::v128 Geo::VSlerp2
...
public: Geo::v128 VSlerp2
(
const Geo::v128 & a,
const Geo::v128 & b,
float t
)
...
Spherical linear interpolation between 'a' and 'b', with weight 't'.
Anchor | ||||
---|---|---|---|---|
|
Dimension3
...
public: enum Dimension3
{
DIMENSION3_X = 0,
DIMENSION3_Y = 1,
DIMENSION3_Z = 2
}
...
An enumeration of the dimensions of 3D space.
enumerators
DIMENSION3_X | |
DIMENSION3_Y | |
DIMENSION3_Z |
Anchor | ||||
---|---|---|---|---|
|
Sign
...
public: enum Sign
{
SIGN_POSITIVE = 0,
SIGN_NEGATIVE = 1
}
...
A sign bit.
enumerators
SIGN_POSITIVE | |
SIGN_NEGATIVE |