------------------------------------------------------------------------------
| 1278 | |
| 1279 | //------------------------------------------------------------------------------ |
| 1280 | void vtkOpenGLGPUVolumeRayCastMapper::vtkInternal::SetCroppingRegions( |
| 1281 | vtkShaderProgram* prog, double loadedBounds[6]) |
| 1282 | { |
| 1283 | if (this->Parent->GetCropping()) |
| 1284 | { |
| 1285 | int cropFlags = this->Parent->GetCroppingRegionFlags(); |
| 1286 | double croppingRegionPlanes[6]; |
| 1287 | this->Parent->GetCroppingRegionPlanes(croppingRegionPlanes); |
| 1288 | |
| 1289 | // Clamp it |
| 1290 | croppingRegionPlanes[0] = |
| 1291 | croppingRegionPlanes[0] < loadedBounds[0] ? loadedBounds[0] : croppingRegionPlanes[0]; |
| 1292 | croppingRegionPlanes[0] = |
| 1293 | croppingRegionPlanes[0] > loadedBounds[1] ? loadedBounds[1] : croppingRegionPlanes[0]; |
| 1294 | croppingRegionPlanes[1] = |
| 1295 | croppingRegionPlanes[1] < loadedBounds[0] ? loadedBounds[0] : croppingRegionPlanes[1]; |
| 1296 | croppingRegionPlanes[1] = |
| 1297 | croppingRegionPlanes[1] > loadedBounds[1] ? loadedBounds[1] : croppingRegionPlanes[1]; |
| 1298 | |
| 1299 | croppingRegionPlanes[2] = |
| 1300 | croppingRegionPlanes[2] < loadedBounds[2] ? loadedBounds[2] : croppingRegionPlanes[2]; |
| 1301 | croppingRegionPlanes[2] = |
| 1302 | croppingRegionPlanes[2] > loadedBounds[3] ? loadedBounds[3] : croppingRegionPlanes[2]; |
| 1303 | croppingRegionPlanes[3] = |
| 1304 | croppingRegionPlanes[3] < loadedBounds[2] ? loadedBounds[2] : croppingRegionPlanes[3]; |
| 1305 | croppingRegionPlanes[3] = |
| 1306 | croppingRegionPlanes[3] > loadedBounds[3] ? loadedBounds[3] : croppingRegionPlanes[3]; |
| 1307 | |
| 1308 | croppingRegionPlanes[4] = |
| 1309 | croppingRegionPlanes[4] < loadedBounds[4] ? loadedBounds[4] : croppingRegionPlanes[4]; |
| 1310 | croppingRegionPlanes[4] = |
| 1311 | croppingRegionPlanes[4] > loadedBounds[5] ? loadedBounds[5] : croppingRegionPlanes[4]; |
| 1312 | croppingRegionPlanes[5] = |
| 1313 | croppingRegionPlanes[5] < loadedBounds[4] ? loadedBounds[4] : croppingRegionPlanes[5]; |
| 1314 | croppingRegionPlanes[5] = |
| 1315 | croppingRegionPlanes[5] > loadedBounds[5] ? loadedBounds[5] : croppingRegionPlanes[5]; |
| 1316 | |
| 1317 | float cropPlanes[6] = { static_cast<float>(croppingRegionPlanes[0]), |
| 1318 | static_cast<float>(croppingRegionPlanes[1]), static_cast<float>(croppingRegionPlanes[2]), |
| 1319 | static_cast<float>(croppingRegionPlanes[3]), static_cast<float>(croppingRegionPlanes[4]), |
| 1320 | static_cast<float>(croppingRegionPlanes[5]) }; |
| 1321 | |
| 1322 | prog->SetUniform1fv("in_croppingPlanes", 6, cropPlanes); |
| 1323 | constexpr int numberOfRegions = 32; |
| 1324 | int cropFlagsArray[numberOfRegions]; |
| 1325 | cropFlagsArray[0] = 0; |
| 1326 | int i = 1; |
| 1327 | while (cropFlags && i < 32) |
| 1328 | { |
| 1329 | cropFlagsArray[i] = cropFlags & 1; |
| 1330 | cropFlags = cropFlags >> 1; |
| 1331 | ++i; |
| 1332 | } |
| 1333 | for (; i < 32; ++i) |
| 1334 | { |
| 1335 | cropFlagsArray[i] = 0; |
| 1336 | } |
| 1337 |
no test coverage detected