#include <float.h>#include <vector>#include <type_traits>#include "../../Platforms/interface/PlatformDefinitions.h"#include "../../Primitives/interface/FlagEnum.h"#include "BasicMath.hpp"Classes | |
| struct | Diligent::Plane3D | 
| class | Diligent::Polygon2DTriangulator< IndexType > | 
| class | Diligent::Polygon3DTriangulator< IndexType, ComponentType > | 
| 3D polygon triangulator.  More... | |
Namespaces | |
| namespace | Diligent | 
| Graphics engine namespace.  | |
Enumerations | |
| enum class | Diligent::BoxVisibility { Diligent::Invisible , Diligent::Intersecting , Diligent::FullyVisible } | 
| Bounding box visibility.  More... | |
| enum | Diligent::TRIANGULATE_POLYGON_RESULT : Uint32 {  Diligent::TRIANGULATE_POLYGON_RESULT_OK = 0 , Diligent::TRIANGULATE_POLYGON_RESULT_TOO_FEW_VERTS = 1u << 0u , Diligent::TRIANGULATE_POLYGON_RESULT_VERTS_COLLINEAR = 1u << 1u , Diligent::TRIANGULATE_POLYGON_RESULT_INVALID_CONVEX = 1u << 2u , Diligent::TRIANGULATE_POLYGON_RESULT_INVALID_EAR = 1u << 3u , Diligent::TRIANGULATE_POLYGON_RESULT_NO_EAR_FOUND = 1u << 4u }  | 
| Triangulation result flags returned by the polygon triangulator.  More... | |
Functions | |
| void | Diligent::ExtractViewFrustumPlanesFromMatrix (const float4x4 &Matrix, ViewFrustum &Frustum, bool bIsOpenGL) | 
| float3 | Diligent::GetBoxNearestCorner (const float3 &Direction, const BoundBox &Box) | 
| Returns the nearest bounding box corner along the given direction.  | |
| float3 | Diligent::GetBoxFarthestCorner (const float3 &Direction, const BoundBox &Box) | 
| Returns the farthest bounding box corner along the given direction.  | |
| BoxVisibility | Diligent::GetBoxVisibilityAgainstPlane (const Plane3D &Plane, const BoundBox &Box) | 
| BoxVisibility | Diligent::GetBoxVisibilityAgainstPlane (const Plane3D &Plane, const OrientedBoundingBox &Box) | 
| void | Diligent::GetFrustumMinimumBoundingSphere (float Proj_00, float Proj_11, float NearPlane, float FarPlane, float3 &Center, float &Radius) | 
| Returns the minimum bounding sphere of a view frustum.   | |
| bool | Diligent::IntersectRayBox3D (const float3 &RayOrigin, const float3 &RayDirection, float3 BoxMin, float3 BoxMax, float &EnterDist, float &ExitDist) | 
| Intersects a ray with 3D box and computes distances to intersections.  | |
| bool | Diligent::IntersectRayAABB (const float3 &RayOrigin, const float3 &RayDirection, const BoundBox &AABB, float &EnterDist, float &ExitDist) | 
| Intersects a ray with the axis-aligned bounding box and computes distances to intersections.  | |
| bool | Diligent::IntersectRayBox2D (const float2 &RayOrigin, const float2 &RayDirection, float2 BoxMin, float2 BoxMax, float &EnterDist, float &ExitDist) | 
| Intersects a 2D ray with the 2D axis-aligned bounding box and computes distances to intersections.  | |
| float | Diligent::IntersectRayTriangle (const float3 &V0, const float3 &V1, const float3 &V2, const float3 &RayOrigin, const float3 &RayDirection, bool CullBackFace=false) | 
| template<typename TCallback> | |
| void | Diligent::TraceLineThroughGrid (float2 f2Start, float2 f2End, int2 i2GridSize, TCallback Callback) | 
| Traces a 2D line through the square cell grid and enumerates all cells the line touches.   | |
| template<typename T, typename IntermediateType> | |
| bool | Diligent::IsPointInsideTriangle (const Vector2< T > &V0, const Vector2< T > &V1, const Vector2< T > &V2, const Vector2< T > &Point, bool AllowEdges) | 
| Tests if a point is inside triangle.   | |
| template<typename T, class TCallback> | |
| void | Diligent::RasterizeTriangle (Vector2< T > V0, Vector2< T > V1, Vector2< T > V2, TCallback Callback) | 
| Rasterizes a triangle and calls the callback function for every sample covered.   | |
| template<bool AllowTouch, typename T> | |
| bool | Diligent::CheckBox2DBox2DOverlap (const Vector2< T > &Box0Min, const Vector2< T > &Box0Max, const Vector2< T > &Box1Min, const Vector2< T > &Box1Max) | 
| Checks if two 2D-boxes overlap.   | |
| template<bool AllowTouch, typename T> | |
| bool | Diligent::CheckLineSectionOverlap (T Min0, T Max0, T Min1, T Max1) | 
| Checks if two 1D-line sections overlap.   | |
Additional math functions and structures.