struct BlockPoint
{
double BBL[3];
double BBR[3];
double BFL[3];
double BFR[3];
double TBL[3];
double TBR[3];
double TFL[3];
double TFR[3];
};
BlockPoint GetBlockPoint(double Lenght, double Width, double High, double BaseP[3], double vecX[3], double vecY[3], double vecZ[3])
{
BlockPoint blockP;
UF_VEC3_affine_comb(BaseP, -Width * 0.5, vecX, blockP.BFL); //12,13,24,34
UF_VEC3_affine_comb(blockP.BFL, Width, vecX, blockP.BFR);
UF_VEC3_affine_comb(blockP.BFL, Lenght, vecY, blockP.BBL);
UF_VEC3_affine_comb(blockP.BFR, Lenght, vecY, blockP.BBR);
UF_VEC3_affine_comb(blockP.BFL, High, vecZ, blockP.TFL); // 15,26,37,48,57,68
UF_VEC3_affine_comb(blockP.BFR, High, vecZ, blockP.TFR );
UF_VEC3_affine_comb(blockP.BBL, High, vecZ, blockP.TBL);
UF_VEC3_affine_comb(blockP.BBR, High, vecZ, blockP.TBR);
return blockP;
}