throws MatrixDimensionMismatchException { try { return add((BlockRealMatrix) m); } catch (ClassCastException cce) {
throws MatrixDimensionMismatchException { if (m instanceof BlockRealMatrix) { return add((BlockRealMatrix) m); } else {
throws MatrixDimensionMismatchException { try { return add((BlockRealMatrix) m); } catch (ClassCastException cce) {
@Override public RealMatrix calculate(final Mesh input) { final RealLocalizable cent = centroid.calculate(input); final double originX = cent.getDoublePosition(0); final double originY = cent.getDoublePosition(1); final double originZ = cent.getDoublePosition(2); BlockRealMatrix tensor = new BlockRealMatrix(3, 3); for (final Triangle triangle : input.triangles()) { final double x1 = triangle.v0x() - originX; final double y1 = triangle.v0y() - originY; final double z1 = triangle.v0z() - originZ; final double x2 = triangle.v1x() - originX; final double y2 = triangle.v1y() - originY; final double z2 = triangle.v1z() - originZ; final double x3 = triangle.v2x() - originX; final double y3 = triangle.v2y() - originY; final double z3 = triangle.v2z() - originZ; tensor = tensor.add(// tetrahedronInertiaTensor(x1, y1, z1, x2, y2, z2, x3, y3, z3)); } return tensor; }