Logo Search packages:      
Sourcecode: blender version File versions

gim_basic_geometry_operations.h File Reference


Detailed Description

Author:
Francisco Len N▀jera type independant geometry routines

Definition in file gim_basic_geometry_operations.h.

#include "gim_linear_math.h"

Go to the source code of this file.

Defines

#define DISTANCE_PLANE_POINT(plane, point)   (VEC_DOT(plane,point) - plane[3])
#define EDGE_PLANE(e1, e2, n, plane)
 Calc a plane from an edge an a normal. plane is a vec4f.
#define PARALELENORMALS   0.000001f
#define PLANE_MINOR_AXES(plane, i0, i1)   VEC_MINOR_AXES(plane, i0, i1)
 Finds the 2 smallest cartesian coordinates of a plane normal.
#define PLANEDIREPSILON   0.0000001f
#define PROJECT_POINT_PLANE(point, plane, projected)
#define TRIANGLE_NORMAL(v1, v2, v3, n)
#define TRIANGLE_NORMAL_FAST(v1, v2, v3, n)
#define TRIANGLE_PLANE(v1, v2, v3, plane)
 plane is a vec4f
#define TRIANGLE_PLANE_FAST(v1, v2, v3, plane)
 plane is a vec4f

Enumerations

enum  eLINE_PLANE_INTERSECTION_TYPE {
  G_FRONT_PLANE_S1 = 0, G_FRONT_PLANE_S2, G_BACK_PLANE_S1, G_BACK_PLANE_S2,
  G_COLLIDE_PLANE_S1, G_COLLIDE_PLANE_S2
}
enum  ePLANE_INTERSECTION_TYPE { G_BACK_PLANE = 0, G_COLLIDE_PLANE, G_FRONT_PLANE }

Functions

template<typename T>
SIMD_FORCE_INLINE bool BOX_AXIS_INTERSECT (T pos, T dir, T bmin, T bmax, T &tfirst, T &tlast)
 Line box intersection in one dimension.
template<typename CLASS_POINT>
SIMD_FORCE_INLINE void CLOSEST_POINT_ON_SEGMENT (CLASS_POINT &cp, const CLASS_POINT &v, const CLASS_POINT &e1, const CLASS_POINT &e2)
template<typename CLASS_POINT, typename CLASS_PLANE>
SIMD_FORCE_INLINE bool INTERSECT_PLANES (const CLASS_PLANE &p1, const CLASS_PLANE &p2, CLASS_POINT &p, CLASS_POINT &d)
 Returns the Ray on which 2 planes intersect if they do. Written by Rodrigo Hernandez on ODE convex collision.
template<typename T, typename CLASS_POINT>
SIMD_FORCE_INLINE bool LINE_INTERSECTION_PARAMS (const CLASS_POINT &dir1, CLASS_POINT &point1, const CLASS_POINT &dir2, CLASS_POINT &point2, T &t1, T &t2)
 Finds the line params where these lines intersect.
template<typename T, typename CLASS_POINT, typename CLASS_PLANE>
SIMD_FORCE_INLINE GUINT LINE_PLANE_COLLISION (const CLASS_PLANE &plane, const CLASS_POINT &vDir, const CLASS_POINT &vPoint, CLASS_POINT &pout, T &tparam, T tmin, T tmax)
 line collision
template<typename CLASS_POINT, typename CLASS_PLANE>
SIMD_FORCE_INLINE void PLANE_CLIP_SEGMENT (const CLASS_POINT &s1, const CLASS_POINT &s2, const CLASS_PLANE &plane, CLASS_POINT &clipped)
template<typename CLASS_POINT, typename CLASS_PLANE>
SIMD_FORCE_INLINE
eLINE_PLANE_INTERSECTION_TYPE 
PLANE_CLIP_SEGMENT2 (const CLASS_POINT &s1, const CLASS_POINT &s2, const CLASS_PLANE &plane, CLASS_POINT &clipped)
 Confirms if the plane intersect the edge or nor.
template<typename CLASS_POINT, typename CLASS_PLANE>
SIMD_FORCE_INLINE
eLINE_PLANE_INTERSECTION_TYPE 
PLANE_CLIP_SEGMENT_CLOSEST (const CLASS_POINT &s1, const CLASS_POINT &s2, const CLASS_PLANE &plane, CLASS_POINT &clipped1, CLASS_POINT &clipped2)
 Confirms if the plane intersect the edge or not.
template<typename CLASS_POINT, typename CLASS_PLANE>
SIMD_FORCE_INLINE bool POINT_IN_HULL (const CLASS_POINT &point, const CLASS_PLANE *planes, GUINT plane_count)
 Verifies if a point is in the plane hull.
template<typename T, typename CLASS_POINT, typename CLASS_PLANE>
SIMD_FORCE_INLINE bool RAY_PLANE_COLLISION (const CLASS_PLANE &plane, const CLASS_POINT &vDir, const CLASS_POINT &vPoint, CLASS_POINT &pout, T &tparam)
 Ray plane collision in one way.
template<typename CLASS_POINT>
SIMD_FORCE_INLINE void SEGMENT_COLLISION (const CLASS_POINT &vA1, const CLASS_POINT &vA2, const CLASS_POINT &vB1, const CLASS_POINT &vB2, CLASS_POINT &vPointA, CLASS_POINT &vPointB)
 Find closest points on segments.
template<typename T>
SIMD_FORCE_INLINE void SORT_3_INDICES (const T *values, GUINT *order_indices)
 Sorts 3 componets.


Generated by  Doxygen 1.6.0   Back to index