Programming
Fundamentals
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes

Unigine::Geometry Class

Header:#include <UnigineGeometry.h>

Geometry Class

Members


void getClosestPointOnLine(const Math::dvec3 & point, const Math::dvec3 & p0, const Math::dvec3 & p1, Math::dvec3 & ret)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • Math::dvec3 & ret

void getClosestPointOnLine(const Math::vec3 & point, const Math::vec3 & p0, const Math::vec3 & p1, Math::vec3 & ret)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • Math::vec3 & ret

int getClosestPointOnTriangle(const Math::dvec3 & point, const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2, Math::dvec3 & ret)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2
  • Math::dvec3 & ret

int getClosestPointOnTriangle(const Math::vec3 & point, const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, Math::vec3 & ret)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2
  • Math::vec3 & ret

int getClosestPointsOnLines(const Math::dvec3 & p00, const Math::dvec3 & p01, const Math::dvec3 & p10, const Math::dvec3 & p11, Math::dvec3 & ret_0, Math::dvec3 & ret_1)

Arguments

  • const Math::dvec3 & p00
  • const Math::dvec3 & p01
  • const Math::dvec3 & p10
  • const Math::dvec3 & p11
  • Math::dvec3 & ret_0
  • Math::dvec3 & ret_1

int getClosestPointsOnLines(const Math::vec3 & p00, const Math::vec3 & p01, const Math::vec3 & p10, const Math::vec3 & p11, Math::vec3 & ret_0, Math::vec3 & ret_1)

Arguments

  • const Math::vec3 & p00
  • const Math::vec3 & p01
  • const Math::vec3 & p10
  • const Math::vec3 & p11
  • Math::vec3 & ret_0
  • Math::vec3 & ret_1

int irayBoundBoxIntersection(const Math::dvec3 & point, const Math::dvec3 & idirection, const Math::dvec3 & min, const Math::dvec3 & max)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & idirection
  • const Math::dvec3 & min
  • const Math::dvec3 & max

int irayBoundBoxIntersection(const Math::vec3 & point, const Math::vec3 & idirection, const Math::vec3 & min, const Math::vec3 & max)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & idirection
  • const Math::vec3 & min
  • const Math::vec3 & max

int linePlaneIntersection(const Math::vec3 & p0, const Math::vec3 & p1, const Math::vec4 & plane)

Arguments

  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • const Math::vec4 & plane

int linePlaneIntersection(const Math::vec3 & p0, const Math::vec3 & p1, const Math::vec3 & plane_point, const Math::vec3 & plane_normal, Math::vec3 & ret)

Arguments

  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • const Math::vec3 & plane_point
  • const Math::vec3 & plane_normal
  • Math::vec3 & ret

int linePlaneIntersection(const Math::dvec3 & p0, const Math::dvec3 & p1, const Math::dvec3 & plane_point, const Math::dvec3 & plane_normal)

Arguments

  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • const Math::dvec3 & plane_point
  • const Math::dvec3 & plane_normal

int linePlaneIntersection(const Math::dvec3 & p0, const Math::dvec3 & p1, const Math::dvec3 & plane_point, const Math::dvec3 & plane_normal, Math::dvec3 & ret)

Arguments

  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • const Math::dvec3 & plane_point
  • const Math::dvec3 & plane_normal
  • Math::dvec3 & ret

int linePlaneIntersection(const Math::vec3 & p0, const Math::vec3 & p1, const Math::vec3 & plane_point, const Math::vec3 & plane_normal)

Arguments

  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • const Math::vec3 & plane_point
  • const Math::vec3 & plane_normal

int linePlaneIntersection(const Math::dvec3 & p0, const Math::dvec3 & p1, const Math::dvec4 & plane, Math::dvec3 & ret)

Arguments

  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • const Math::dvec4 & plane
  • Math::dvec3 & ret

int linePlaneIntersection(const Math::vec3 & p0, const Math::vec3 & p1, const Math::vec4 & plane, Math::vec3 & ret)

Arguments

  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • const Math::vec4 & plane
  • Math::vec3 & ret

int linePlaneIntersection(const Math::dvec3 & p0, const Math::dvec3 & p1, const Math::dvec4 & plane)

Arguments

  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • const Math::dvec4 & plane

float normalizeAngle(float angle)

Arguments

  • float angle

void orthoBasis(const Math::vec3 & v, Math::vec3 & tangent, Math::vec3 & binormal)

Arguments

  • const Math::vec3 & v
  • Math::vec3 & tangent
  • Math::vec3 & binormal

void orthoBasis(const Math::dvec3 & v, Math::dvec3 & tangent, Math::dvec3 & binormal)

Arguments

  • const Math::dvec3 & v
  • Math::dvec3 & tangent
  • Math::dvec3 & binormal

Math::quat orthoTangent(const Math::vec3 & tangent, const Math::vec3 & binormal, const Math::vec3 & normal)

Arguments

  • const Math::vec3 & tangent
  • const Math::vec3 & binormal
  • const Math::vec3 & normal

Math::quat orthoTangent(const Math::vec4 & tangent, const Math::vec3 & normal)

Arguments

  • const Math::vec4 & tangent
  • const Math::vec3 & normal

void orthoTransform(const Math::dvec3 & v, Math::dmat4 & transform)

Arguments

  • const Math::dvec3 & v
  • Math::dmat4 & transform

void orthoTransform(const Math::vec3 & v, Math::mat4 & transform)

Arguments

  • const Math::vec3 & v
  • Math::mat4 & transform

float pointPolygonDistance(const Math::vec3 & point, const Math::vec3 * vertex, int[] indices, const Math::vec4 & plane)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 * vertex
  • int[] indices
  • const Math::vec4 & plane

double pointPolygonDistance(const Math::dvec3 & point, const Math::dvec3 * vertex, int[] indices, const Math::dvec4 & plane)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 * vertex
  • int[] indices
  • const Math::dvec4 & plane

int pointPolygonInside(const Math::vec3 & point, const Math::vec3 * vertex, int[] indices, const Math::vec3 & normal)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 * vertex
  • int[] indices
  • const Math::vec3 & normal

int pointPolygonInside(const Math::dvec3 & point, const Math::dvec3 * vertex, int[] indices, const Math::dvec3 & normal)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 * vertex
  • int[] indices
  • const Math::dvec3 & normal

void pointTriangleCoordinates(const Math::vec3 & point, const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, float & a, float & b)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2
  • float & a
  • float & b

void pointTriangleCoordinates(const Math::dvec3 & point, const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2, double & a, double & b)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2
  • double & a
  • double & b

double pointTriangleDistance(const Math::dvec3 & point, const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2, const Math::dvec4 & plane)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2
  • const Math::dvec4 & plane

float pointTriangleDistance(const Math::vec3 & point, const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, const Math::vec4 & plane)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2
  • const Math::vec4 & plane

int pointTriangleInside(const Math::vec3 & point, const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, const Math::vec3 & normal)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2
  • const Math::vec3 & normal

int pointTriangleInside(const Math::dvec3 & point, const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2, const Math::dvec3 & normal)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2
  • const Math::dvec3 & normal

int pointTriangleInside(const Math::dvec3 & point, const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2

int pointTriangleInside(const Math::vec3 & point, const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2

Math::vec4 polygonPlane(const Math::vec3 * vertex, int[] indices)

Arguments

  • const Math::vec3 * vertex
  • int[] indices

Math::dvec4 polygonPlane(const Math::dvec3 * vertex, int[] indices)

Arguments

  • const Math::dvec3 * vertex
  • int[] indices

Math::vec3 projectOntoPlane(const Math::vec3 & v, const Math::vec3 & plane_normal)

Arguments

  • const Math::vec3 & v
  • const Math::vec3 & plane_normal

Math::dvec3 projectOntoPlane(const Math::dvec3 & v, const Math::dvec3 & plane_normal)

Arguments

  • const Math::dvec3 & v
  • const Math::dvec3 & plane_normal

int rayBoundBoxIntersection(const Math::dvec3 & point, const Math::dvec3 & direction, const Math::dvec3 & min, const Math::dvec3 & max)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & direction
  • const Math::dvec3 & min
  • const Math::dvec3 & max

int rayBoundBoxIntersection(const Math::vec3 & point, const Math::vec3 & direction, const Math::vec3 & min, const Math::vec3 & max)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & direction
  • const Math::vec3 & min
  • const Math::vec3 & max

int rayPlaneIntersection(const Math::vec3 & point, const Math::vec3 & direction, const Math::vec4 & plane)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & direction
  • const Math::vec4 & plane

int rayPlaneIntersection(const Math::vec3 & point, const Math::vec3 & direction, const Math::vec3 & plane_point, const Math::vec3 & plane_normal)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & direction
  • const Math::vec3 & plane_point
  • const Math::vec3 & plane_normal

int rayPlaneIntersection(const Math::dvec3 & point, const Math::dvec3 & direction, const Math::dvec4 & plane, Math::dvec3 & ret)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & direction
  • const Math::dvec4 & plane
  • Math::dvec3 & ret

int rayPlaneIntersection(const Math::vec3 & point, const Math::vec3 & direction, const Math::vec3 & plane_point, const Math::vec3 & plane_normal, Math::vec3 & ret)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & direction
  • const Math::vec3 & plane_point
  • const Math::vec3 & plane_normal
  • Math::vec3 & ret

int rayPlaneIntersection(const Math::vec3 & point, const Math::vec3 & direction, const Math::vec4 & plane, Math::vec3 & ret)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & direction
  • const Math::vec4 & plane
  • Math::vec3 & ret

int rayPlaneIntersection(const Math::dvec3 & point, const Math::dvec3 & direction, const Math::dvec3 & plane_point, const Math::dvec3 & plane_normal)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & direction
  • const Math::dvec3 & plane_point
  • const Math::dvec3 & plane_normal

int rayPlaneIntersection(const Math::dvec3 & point, const Math::dvec3 & direction, const Math::dvec3 & plane_point, const Math::dvec3 & plane_normal, Math::dvec3 & ret)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & direction
  • const Math::dvec3 & plane_point
  • const Math::dvec3 & plane_normal
  • Math::dvec3 & ret

int rayPlaneIntersection(const Math::dvec3 & point, const Math::dvec3 & direction, const Math::dvec4 & plane)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & direction
  • const Math::dvec4 & plane

int rayTriangleIntersection(const Math::vec3 & point, const Math::vec3 & direction, const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2)

Arguments

  • const Math::vec3 & point
  • const Math::vec3 & direction
  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2

int rayTriangleIntersection(const Math::dvec3 & point, const Math::dvec3 & direction, const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2)

Arguments

  • const Math::dvec3 & point
  • const Math::dvec3 & direction
  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2

int segmentPlaneIntersection(const Math::vec3 & p0, const Math::vec3 & p1, const Math::vec4 & plane, Math::vec3 & ret)

Arguments

  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • const Math::vec4 & plane
  • Math::vec3 & ret

int segmentPlaneIntersection(const Math::vec3 & p0, const Math::vec3 & p1, const Math::vec3 & plane_point, const Math::vec3 & plane_normal)

Arguments

  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • const Math::vec3 & plane_point
  • const Math::vec3 & plane_normal

int segmentPlaneIntersection(const Math::vec3 & p0, const Math::vec3 & p1, const Math::vec4 & plane)

Arguments

  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • const Math::vec4 & plane

int segmentPlaneIntersection(const Math::vec3 & p0, const Math::vec3 & p1, const Math::vec3 & plane_point, const Math::vec3 & plane_normal, Math::vec3 & ret)

Arguments

  • const Math::vec3 & p0
  • const Math::vec3 & p1
  • const Math::vec3 & plane_point
  • const Math::vec3 & plane_normal
  • Math::vec3 & ret

int segmentPlaneIntersection(const Math::dvec3 & p0, const Math::dvec3 & p1, const Math::dvec4 & plane)

Arguments

  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • const Math::dvec4 & plane

int segmentPlaneIntersection(const Math::dvec3 & p0, const Math::dvec3 & p1, const Math::dvec3 & plane_point, const Math::dvec3 & plane_normal)

Arguments

  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • const Math::dvec3 & plane_point
  • const Math::dvec3 & plane_normal

int segmentPlaneIntersection(const Math::dvec3 & p0, const Math::dvec3 & p1, const Math::dvec4 & plane, Math::dvec3 & ret)

Arguments

  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • const Math::dvec4 & plane
  • Math::dvec3 & ret

int segmentPlaneIntersection(const Math::dvec3 & p0, const Math::dvec3 & p1, const Math::dvec3 & plane_point, const Math::dvec3 & plane_normal, Math::dvec3 & ret)

Arguments

  • const Math::dvec3 & p0
  • const Math::dvec3 & p1
  • const Math::dvec3 & plane_point
  • const Math::dvec3 & plane_normal
  • Math::dvec3 & ret

double triangleArea(const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2)

Arguments

  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2

float triangleArea(const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2)

Arguments

  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2

Math::dvec3 triangleNormal(const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2)

Arguments

  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2

Math::vec3 triangleNormal(const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2)

Arguments

  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2

Math::vec4 trianglePlane(const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2)

Arguments

  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2

Math::dvec4 trianglePlane(const Math::dvec3 & v0, const Math::dvec3 & v1, const Math::dvec3 & v2)

Arguments

  • const Math::dvec3 & v0
  • const Math::dvec3 & v1
  • const Math::dvec3 & v2

Math::vec4 triangleTangent(const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, const Math::vec2 & t0, const Math::vec2 & t1, const Math::vec2 & t2)

Arguments

  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2
  • const Math::vec2 & t0
  • const Math::vec2 & t1
  • const Math::vec2 & t2

Math::vec4 triangleTangent(const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, const Math::vec2 & t0, const Math::vec2 & t1, const Math::vec2 & t2, const Math::vec3 & normal)

Arguments

  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2
  • const Math::vec2 & t0
  • const Math::vec2 & t1
  • const Math::vec2 & t2
  • const Math::vec3 & normal

Math::vec4 triangleTangent(const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2)

Arguments

  • const Math::vec3 & v0
  • const Math::vec3 & v1
  • const Math::vec3 & v2
Last update: 2017-07-03