struct box : public primitive { enum entype { type = 0 }; Matrix33 Basis; int bOriented; Vec3 center; Vec3 size; struct triangle : public primitive { enum entype { type = 1 }; Vec3 pt[3]; Vec3 n; struct indexed_triangle : public triangle { int idx; struct grid : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; vector2df step, stepr; vector2di size; vector2di stride; int bCyclic; struct heightfield : public grid { enum entype { type = 2 }; float heightscale; unsigned short typemask, heightmask; int typehole; int typepower; getHeightCallback fpGetHeightCallback; getSurfTypeCallback fpGetSurfTypeCallback; }; struct ray : public primitive { enum entype { type = 3 }; Vec3 origin; Vec3 dir; struct sphere : public primitive { enum entype { type = 4 }; Vec3 center; float r; struct cylinder : public primitive { enum entype { type = 5 }; Vec3 center; Vec3 axis; float r, hh; struct capsule : public cylinder { enum entype { type = 6 }; struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; }; struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; }; struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF< const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; }; }; }; }; }; }; }; }; };
primitives.h
enum entype { type = 0 };
primitives.h
struct triangle : public primitive { enum entype { type = 1 }; Vec3 pt[3]; Vec3 n; struct indexed_triangle : public triangle { int idx; struct grid : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; vector2df step, stepr; vector2di size; vector2di stride; int bCyclic; struct heightfield : public grid { enum entype { type = 2 }; float heightscale; unsigned short typemask, heightmask; int typehole; int typepower; getHeightCallback fpGetHeightCallback; getSurfTypeCallback fpGetSurfTypeCallback; }; struct ray : public primitive { enum entype { type = 3 }; Vec3 origin; Vec3 dir; struct sphere : public primitive { enum entype { type = 4 }; Vec3 center; float r; struct cylinder : public primitive { enum entype { type = 5 }; Vec3 center; Vec3 axis; float r, hh; struct capsule : public cylinder { enum entype { type = 6 }; struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; }; struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; }; struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF< const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; }; }; }; }; }; }; }; };
primitives.h
enum entype { type = 1 };
primitives.h
struct indexed_triangle : public triangle { int idx; struct grid : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; vector2df step, stepr; vector2di size; vector2di stride; int bCyclic; struct heightfield : public grid { enum entype { type = 2 }; float heightscale; unsigned short typemask, heightmask; int typehole; int typepower; getHeightCallback fpGetHeightCallback; getSurfTypeCallback fpGetSurfTypeCallback; }; struct ray : public primitive { enum entype { type = 3 }; Vec3 origin; Vec3 dir; struct sphere : public primitive { enum entype { type = 4 }; Vec3 center; float r; struct cylinder : public primitive { enum entype { type = 5 }; Vec3 center; Vec3 axis; float r, hh; struct capsule : public cylinder { enum entype { type = 6 }; struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; }; struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; }; struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF< const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; }; }; }; }; }; }; };
primitives.h
struct grid : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; vector2df step, stepr; vector2di size; vector2di stride; int bCyclic; struct heightfield : public grid { enum entype { type = 2 }; float heightscale; unsigned short typemask, heightmask; int typehole; int typepower; getHeightCallback fpGetHeightCallback; getSurfTypeCallback fpGetSurfTypeCallback; }; struct ray : public primitive { enum entype { type = 3 }; Vec3 origin; Vec3 dir; struct sphere : public primitive { enum entype { type = 4 }; Vec3 center; float r; struct cylinder : public primitive { enum entype { type = 5 }; Vec3 center; Vec3 axis; float r, hh; struct capsule : public cylinder { enum entype { type = 6 }; struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; }; struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; }; struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF< const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; }; }; }; }; }; };
primitives.h
struct heightfield : public grid { enum entype { type = 2 }; float heightscale; unsigned short typemask, heightmask; int typehole; int typepower; getHeightCallback fpGetHeightCallback; getSurfTypeCallback fpGetSurfTypeCallback; };
primitives.h
enum entype { type = 2 };
primitives.h
getHeightCallback fpGetHeightCallback;
getSurfTypeCallback fpGetSurfTypeCallback;
unsigned short heightmask;
float heightscale;
int typehole;
unsigned short typemask;
int typepower;
heightfield& operator =(const heightfield & src);
float getheight(int ix, int iy) const;
int gettype(int ix, int iy) const;
struct ray : public primitive { enum entype { type = 3 }; Vec3 origin; Vec3 dir; struct sphere : public primitive { enum entype { type = 4 }; Vec3 center; float r; struct cylinder : public primitive { enum entype { type = 5 }; Vec3 center; Vec3 axis; float r, hh; struct capsule : public cylinder { enum entype { type = 6 }; struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; }; struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; }; struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF< const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; }; }; }; }; };
primitives.h
Members |
Description |
const int NPRIMS = 8; |
since plane is currently not supported in collision checks |
Vec3 n1; |
normal of other object surface (or edge) |
Vec3 dir; |
unprojection direction |
float vel; |
original velocity along this direction, <0 if least squares normal was used |
int id[2]; |
external ids for colliding geometry parts |
int iNode[2]; |
BV-tree nodes of contacting primitives |
SPU_DOMAIN_LOCAL Vec3 * ptborder; |
intersection border |
(intidxborder2] )(); |
enum entype { type = 3 };
primitives.h
struct sphere : public primitive { enum entype { type = 4 }; Vec3 center; float r; struct cylinder : public primitive { enum entype { type = 5 }; Vec3 center; Vec3 axis; float r, hh; struct capsule : public cylinder { enum entype { type = 6 }; struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; }; struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; }; struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF< const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; }; }; }; };
primitives.h
Members |
Description |
const int NPRIMS = 8; |
since plane is currently not supported in collision checks |
Vec3 n1; |
normal of other object surface (or edge) |
Vec3 dir; |
unprojection direction |
float vel; |
original velocity along this direction, <0 if least squares normal was used |
int id[2]; |
external ids for colliding geometry parts |
int iNode[2]; |
BV-tree nodes of contacting primitives |
SPU_DOMAIN_LOCAL Vec3 * ptborder; |
intersection border |
(intidxborder2] )(); |
struct cylinder : public primitive { enum entype { type = 5 }; Vec3 center; Vec3 axis; float r, hh; struct capsule : public cylinder { enum entype { type = 6 }; struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; }; struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; }; struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF< const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; }; }; };
primitives.h
Members |
Description |
const int NPRIMS = 8; |
since plane is currently not supported in collision checks |
Vec3 n1; |
normal of other object surface (or edge) |
Vec3 dir; |
unprojection direction |
float vel; |
original velocity along this direction, <0 if least squares normal was used |
int id[2]; |
external ids for colliding geometry parts |
int iNode[2]; |
BV-tree nodes of contacting primitives |
SPU_DOMAIN_LOCAL Vec3 * ptborder; |
intersection border |
(intidxborder2] )(); |
struct capsule : public cylinder { enum entype { type = 6 }; struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; }; struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; }; struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF< const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; }; };
primitives.h
Members |
Description |
const int NPRIMS = 8; |
since plane is currently not supported in collision checks |
Vec3 n1; |
normal of other object surface (or edge) |
Vec3 dir; |
unprojection direction |
float vel; |
original velocity along this direction, <0 if least squares normal was used |
int id[2]; |
external ids for colliding geometry parts |
int iNode[2]; |
BV-tree nodes of contacting primitives |
SPU_DOMAIN_LOCAL Vec3 * ptborder; |
intersection border |
(intidxborder2] )(); |
enum entype { type = 6 };
primitives.h
struct grid3d : public primitive { Matrix33 Basis; int bOriented; Vec3 origin; Vec3 step, stepr; Vec3i size; Vec3i stride; };
primitives.h
struct plane : public primitive { enum entype { type = 8 }; Vec3 n; Vec3 origin; struct coord_plane : public plane { Vec3 axes[2]; } AUTO_TYPE_INFO(primitives::getHeightCallback) AUTO_TYPE_INFO(primitives::getSurfTypeCallback) struct prim_inters { prim_inters() { minPtDist2=0.0f; ptbest.zero(); } Vec3 pt[2]; Vec3 n; unsigned char iFeature[2][2]; float minPtDist2; short id[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 *ptborder; int nborderpt, nbordersz; Vec3 ptbest; int nBestPtVal; }; struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; }; const int NPRIMS = 8; struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; }; const int IFEAT_LOG2 = 23; const int IDXMASK = ~(0xFF<const int TRIEND = 0x80< struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; }; };
primitives.h
Members |
Description |
const int NPRIMS = 8; |
since plane is currently not supported in collision checks |
Vec3 n1; |
normal of other object surface (or edge) |
Vec3 dir; |
unprojection direction |
float vel; |
original velocity along this direction, <0 if least squares normal was used |
int id[2]; |
external ids for colliding geometry parts |
int iNode[2]; |
BV-tree nodes of contacting primitives |
SPU_DOMAIN_LOCAL Vec3 * ptborder; |
intersection border |
(intidxborder2] )(); |
struct contact { real t, taux; Vec3 pt; Vec3 n; unsigned int iFeature[2]; };
primitives.h
struct coord_plane : public plane { Vec3 axes[2]; };
primitives.h
enum entype { type = 8 };
primitives.h
struct geom_contact { real t; Vec3 pt; Vec3 n; Vec3 dir; int iUnprojMode; float vel; int id[2]; int iPrim[2]; int iFeature[2]; int iNode[2]; SPU_DOMAIN_LOCAL Vec3 * ptborder; (intidxborder2] )(); int nborderpt; int bClosed; Vec3 center; bool bBorderConsecutive; SPU_DOMAIN_LOCAL geom_contact_area * parea; };
primitives.h
Members |
Description |
Vec3 dir; |
unprojection direction |
float vel; |
original velocity along this direction, <0 if least squares normal was used |
int id[2]; |
external ids for colliding geometry parts |
int iNode[2]; |
BV-tree nodes of contacting primitives |
SPU_DOMAIN_LOCAL Vec3 * ptborder; |
intersection border |
(intidxborder2] )(); |
struct geom_contact_area { enum entype { polygon, polyline }; int type; int npt; int nmaxpt; float minedge; SPU_DOMAIN_LOCAL int * piPrim[2]; SPU_DOMAIN_LOCAL int * piFeature[2]; Vec3 * pt; Vec3 n1; };
primitives.h
Members |
Description |
Vec3 n1; |
normal of other object surface (or edge) |
geometry contact structures
enum entype { polygon, polyline };
primitives.h
struct voxelgrid : public grid3d { enum entype { type = 7 }; Matrix33 R; Vec3 offset; float scale, rscale; strided_pointerpVtx; SPU_DOMAIN_LOCAL index_t * pIndices; SPU_DOMAIN_LOCAL Vec3 * pNormals; SPU_DOMAIN_LOCAL char * pIds; SPU_DOMAIN_LOCAL int * pCellTris; SPU_DOMAIN_LOCAL int * pTriBuf; };
primitives.h
enum entype { type = 7 };
primitives.h
enum entype { type = 5 };
primitives.h
enum entype { type = 4 };
primitives.h
Matrix33 Basis;
int bCyclic;
int bOriented;
Vec3 origin;
vector2di size;
vector2df step;
vector2df stepr;
vector2di stride;
int crop(int i, int icoord, int bAllowBorder = 1);
vector2di cropxy(const vector2di & ic, int bAllowBorder = 1);
int getcell_safe(int ix, int iy);
grid();
int inrange(int ix, int iy);
int iscyclic();
int idx;
typedef float (* getHeightCallback)(int ix,int iy);
typedef unsigned char (* getSurfTypeCallback)(int ix,int iy);
Vec3 n;
Vec3 pt[3];
Matrix33 Basis;
v_box = Basis*v_world; Basis = Rotation.T()
int bOriented;
Vec3 center;
Vec3 size;