Changeset 2459


Ignore:
Timestamp:
Feb 20, 2013, 1:22:05 PM (10 years ago)
Author:
sam
Message:

math: add Box2D and Box3D classes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lol/math/geometry.h

    r2354 r2459  
    2828namespace lol
    2929{
    30     bool TriangleIsectTriangle(vec3 const &v00, vec3 const &v01, vec3 const &v02,
    31                                vec3 const &v10, vec3 const &v11, vec3 const &v12,
    32                                vec3 &iP00, vec3 &iP10);
    33     bool RayIsectTriangleSide(vec3 const &v0, vec3 const &v1, vec3 const &v2,
    34                               vec3 const &iP0, vec3 const &iP1,
    35                               vec3 &iV0, int &iIdx0, vec3 &iV1, int &iIdx1);
    36     bool RayIsectTriangle(vec3 const &rayP, vec3 const &rayD,
    37                           vec3 const &triV0, vec3 const &triV1, vec3 const &triV2,
    38                           vec3 &vi);
     30
     31struct Box2D
     32{
     33    inline Box2D(vec2 a, vec2 b)
     34      : A(a),
     35        B(b)
     36    {}
     37
     38    vec2 A, B;
     39};
     40
     41struct Box3D
     42{
     43    inline Box3D(vec3 a, vec3 b)
     44      : A(a),
     45        B(b)
     46    {}
     47
     48    vec3 A, B;
     49};
     50
     51bool TriangleIsectTriangle(vec3 const &v00, vec3 const &v01, vec3 const &v02,
     52                           vec3 const &v10, vec3 const &v11, vec3 const &v12,
     53                           vec3 &iP00, vec3 &iP10);
     54bool RayIsectTriangleSide(vec3 const &v0, vec3 const &v1, vec3 const &v2,
     55                          vec3 const &iP0, vec3 const &iP1,
     56                          vec3 &iV0, int &iIdx0, vec3 &iV1, int &iIdx1);
     57bool RayIsectTriangle(vec3 const &rayP, vec3 const &rayD,
     58                      vec3 const &triV0, vec3 const &triV1, vec3 const &triV2,
     59                      vec3 &vi);
    3960#define RAY_ISECT_NOTHING   0
    4061#define RAY_ISECT_ALL       1
     
    4263#define RAY_ISECT_P0        3
    4364#define RAY_ISECT_P1        4
    44     int RayIsectRay(vec3 const &rayP00, vec3 const &rayP01,
    45                     vec3 const &rayP10, vec3 const &rayP11,
    46                     vec3 &vIsec);
    47     vec3 ProjPointOnPlane(vec3 const &point, vec3 const &planeP, vec3 const &planeN);
    48     bool RayIsectPlane(vec3 const &rayP0, vec3 const &rayP1,
    49                        vec3 const &planeP, vec3 const &planeN,
    50                        vec3 &vIsec, bool test_line_only = false);
     65int RayIsectRay(vec3 const &rayP00, vec3 const &rayP01,
     66                vec3 const &rayP10, vec3 const &rayP11,
     67                vec3 &vIsec);
     68vec3 ProjPointOnPlane(vec3 const &point, vec3 const &planeP, vec3 const &planeN);
     69bool RayIsectPlane(vec3 const &rayP0, vec3 const &rayP1,
     70                   vec3 const &planeP, vec3 const &planeN,
     71                   vec3 &vIsec, bool test_line_only = false);
    5172
    5273} /* namespace lol */
Note: See TracChangeset for help on using the changeset viewer.