void TR_SHELL02 :: SpatialLocalizerI_giveBBox(FloatArray &bb0, FloatArray &bb1) { FloatArray lt3, gt3; // global vector in the element thickness direction of lenght thickeness/2 const FloatMatrix *GtoLRotationMatrix = plate->computeGtoLRotationMatrix(); // setup vector in the element local cs. perpendicular to element plane of thickness/2 length lt3 = {0., 0., 1.}; //this->giveCrossSection()->give(CS_Thickness)/2.0; // HUHU // transform it to globa cs gt3.beTProductOf(* GtoLRotationMatrix, lt3); // use gt3 to construct element bounding box respecting true element volume FloatArray _c; for ( int i = 1; i <= this->giveNumberOfNodes(); ++i ) { FloatArray *coordinates = this->giveNode(i)->giveCoordinates(); _c = * coordinates; _c.add(gt3); if ( i == 1 ) { bb0 = bb1 = _c; } else { bb0.beMinOf(bb0, _c); bb1.beMaxOf(bb1, _c); } _c = * coordinates; _c.subtract(gt3); bb0.beMinOf(bb0, _c); bb1.beMaxOf(bb1, _c); } }