wx_BGI_Graphics
Classic BGI-compatible graphics API with modern OpenGL extension API
Loading...
Searching...
No Matches
Namespaces | Functions
bgi_ucs.h File Reference

Internal GLM-based math for User Coordinate System (UCS) transforms. More...

#include "bgi_types.h"
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
Include dependency graph for bgi_ucs.h:

Go to the source code of this file.

Namespaces

namespace  bgi
 

Functions

CoordSystem bgi::ucsFromNormal (float nx, float ny, float nz, float ox, float oy, float oz)
 Constructs a right-handed orthonormal frame from a surface normal.
 
void bgi::ucsLocalToWorld (const CoordSystem &cs, float lx, float ly, float lz, float &wx, float &wy, float &wz)
 Transforms a UCS local point into world-space coordinates.
 
glm::mat4 bgi::ucsLocalToWorldMatrix (const CoordSystem &cs)
 Returns the 4×4 matrix that transforms a point from UCS local space to world space.
 
void bgi::ucsOrthonormalise (CoordSystem &cs)
 Orthonormalises the three axis vectors of a CoordSystem in-place using the Gram-Schmidt process.
 
void bgi::ucsWorldToLocal (const CoordSystem &cs, float wx, float wy, float wz, float &lx, float &ly, float &lz)
 Transforms a world-space point into UCS local coordinates.
 
glm::mat4 bgi::ucsWorldToLocalMatrix (const CoordSystem &cs)
 Returns the 4×4 matrix that transforms a point from world space to UCS local space.
 
glm::vec3 bgi::worldExtentsCentre (const WorldExtents &extents)
 Returns the centre of the AABB as a vec3.
 
void bgi::worldExtentsExpand (WorldExtents &extents, float x, float y, float z)
 Expands extents to include the point (x, y, z).
 
glm::vec3 bgi::worldExtentsHalfSize (const WorldExtents &extents)
 Returns the half-extents (half-size of each axis) as a vec3.
 

Detailed Description

Internal GLM-based math for User Coordinate System (UCS) transforms.

A UCS is stored as a CoordSystem value: an origin point plus three orthonormal axis vectors, all expressed in world space.

Coordinate convention: Z-up, right-handed world space throughout.

None of these functions are part of the public C API. Consumers use the wxbgi_ucs_* functions declared in wx_bgi_3d.h.