Subversion Repositories Games.Carmageddon

Rev

Rev 18 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef _FINTERAY_H_
  2. #define _FINTERAY_H_
  3.  
  4. #include "brender/br_types.h"
  5. #include "dr_types.h"
  6.  
  7. extern int gPling_materials;
  8. extern br_material* gSub_material;
  9. extern br_material* gReal_material;
  10. extern int gNfaces;
  11. extern br_matrix34 gPick_model_to_view__finteray; // suffix added to avoid duplicate symbol
  12. extern int gTemp_group;
  13. extern br_model* gNearest_model;
  14. extern br_model* gSelected_model;
  15. extern int gNearest_face_group;
  16. extern int gNearest_face;
  17. extern br_scalar gNearest_T;
  18. extern tFace_ref* gPling_face;
  19.  
  20. // Suffix added to avoid duplicate symbol
  21. int BadDiv__finteray(br_scalar a, br_scalar b);
  22.  
  23. // Suffix added to avoid duplicate symbol
  24. void DRVector2AccumulateScale__finteray(br_vector2* a, br_vector2* b, br_scalar s);
  25.  
  26. // Suffix added to avoid duplicate symbol
  27. int PickBoundsTestRay__finteray(br_bounds* b, br_vector3* rp, br_vector3* rd, br_scalar t_near, br_scalar t_far, br_scalar* new_t_near, br_scalar* new_t_far);
  28.  
  29. int ActorRayPick2D(br_actor* ap, br_vector3* pPosition, br_vector3* pDir, br_model* model, br_material* material, dr_pick2d_cbfn* callback);
  30.  
  31. int DRSceneRayPick2D(br_actor* world, br_vector3* pPosition, br_vector3* pDir, dr_pick2d_cbfn* callback);
  32.  
  33. // Suffix added to avoid duplicate symbol
  34. int DRModelPick2D__finteray(br_model* model, br_material* material, br_vector3* ray_pos, br_vector3* ray_dir, br_scalar t_near, br_scalar t_far, dr_modelpick2d_cbfn* callback, void* arg);
  35.  
  36. // Suffix added to avoid duplicate symbol
  37. int FindHighestPolyCallBack__finteray(br_model* pModel, br_material* pMaterial, br_vector3* pRay_pos, br_vector3* pRay_dir, br_scalar pT, int pF, int pE, int pV, br_vector3* pPoint, br_vector2* pMap, void* pArg);
  38.  
  39. // Suffix added to avoid duplicate symbol
  40. int FindHighestCallBack__finteray(br_actor* pActor, br_model* pModel, br_material* pMaterial, br_vector3* pRay_pos, br_vector3* pRay_dir, br_scalar pT_near, br_scalar pT_far, void* pArg);
  41.  
  42. void FindFace(br_vector3* pPosition, br_vector3* pDir, br_vector3* nor, br_scalar* t, br_material** material);
  43.  
  44. void EnablePlingMaterials(void);
  45.  
  46. void DisablePlingMaterials(void);
  47.  
  48. void CheckSingleFace(tFace_ref* pFace, br_vector3* ray_pos, br_vector3* ray_dir, br_vector3* normal, br_scalar* rt);
  49.  
  50. void MultiRayCheckSingleFace(int pNum_rays, tFace_ref* pFace, br_vector3* ray_pos, br_vector3* ray_dir, br_vector3* normal, br_scalar* rt);
  51.  
  52. void GetNewBoundingBox(br_bounds* b2, br_bounds* b1, br_matrix34* m);
  53.  
  54. int FindFacesInBox(tBounds* bnds, tFace_ref* face_list, int max_face);
  55.  
  56. int FindFacesInBox2(tBounds* bnds, tFace_ref* face_list, int max_face);
  57.  
  58. int ActorBoxPick(tBounds* bnds, br_actor* ap, br_model* model, br_material* material, tFace_ref* face_list, int max_face, br_matrix34* pMat);
  59.  
  60. int ModelPickBox(br_actor* actor, tBounds* bnds, br_model* model, br_material* model_material, tFace_ref* face_list, int max_face, br_matrix34* pMat);
  61.  
  62. void ClipToPlaneGE(br_vector3* p, int* nv, int i, br_scalar limit);
  63.  
  64. void ClipToPlaneLE(br_vector3* p, int* nv, int i, br_scalar limit);
  65.  
  66. // Suffix added to avoid duplicate symbol
  67. int BoundsOverlapTest__finteray(br_bounds* b1, br_bounds* b2);
  68.  
  69. int BoundsTransformTest(br_bounds* b1, br_bounds* b2, br_matrix34* M);
  70.  
  71. int LineBoxColl(br_vector3* o, br_vector3* p, br_bounds* pB, br_vector3* pHit_point);
  72.  
  73. int SphereBoxIntersection(br_bounds* pB, br_vector3* pC, br_scalar pR_squared, br_vector3* pHit_point);
  74.  
  75. int LineBoxCollWithSphere(br_vector3* o, br_vector3* p, br_bounds* pB, br_vector3* pHit_point);
  76.  
  77. int CompVert(int v1, int v2);
  78.  
  79. void SetFacesGroup(int pFace);
  80.  
  81. void SelectFace(br_vector3* pDir);
  82.  
  83. void GetTilingLimits(br_vector2* min, br_vector2* max);
  84.  
  85. void Scale(int pD, int factor);
  86.  
  87. void ScaleUpX(void);
  88.  
  89. void ScaleDnX(void);
  90.  
  91. void ScaleUpY(void);
  92.  
  93. void ScaleDnY(void);
  94.  
  95. void SelectFaceForward(void);
  96.  
  97. void SelectFaceDown(void);
  98.  
  99. #endif
  100.