| 20 | using PathSegmentData = PGLPathSegmentData; |
| 21 | |
| 22 | inline bool isValid(const PathSegmentData &psd) |
| 23 | { |
| 24 | bool valid = true; |
| 25 | valid = valid && embree::isvalid(psd.position.x); |
| 26 | valid = valid && embree::isvalid(psd.position.y); |
| 27 | valid = valid && embree::isvalid(psd.position.z); |
| 28 | OPENPGL_ASSERT(valid); |
| 29 | |
| 30 | valid = valid && embree::isvalid(psd.directionIn.x); |
| 31 | valid = valid && psd.directionIn.x <= 1.0f && psd.directionIn.x >= -1.0f; |
| 32 | valid = valid && embree::isvalid(psd.directionIn.y); |
| 33 | valid = valid && psd.directionIn.y <= 1.0f && psd.directionIn.y >= -1.0f; |
| 34 | valid = valid && embree::isvalid(psd.directionIn.z); |
| 35 | valid = valid && psd.directionIn.z <= 1.0f && psd.directionIn.z >= -1.0f; |
| 36 | OPENPGL_ASSERT(valid); |
| 37 | |
| 38 | valid = valid && embree::isvalid(psd.directionOut.x); |
| 39 | valid = valid && psd.directionOut.x <= 1.0f && psd.directionOut.x >= -1.0f; |
| 40 | valid = valid && embree::isvalid(psd.directionOut.y); |
| 41 | valid = valid && psd.directionOut.y <= 1.0f && psd.directionOut.y >= -1.0f; |
| 42 | valid = valid && embree::isvalid(psd.directionOut.z); |
| 43 | valid = valid && psd.directionOut.z <= 1.0f && psd.directionOut.z >= -1.0f; |
| 44 | OPENPGL_ASSERT(valid); |
| 45 | |
| 46 | valid = valid && embree::isvalid(psd.normal.x); |
| 47 | valid = valid && psd.normal.x <= 1.0f && psd.normal.x >= -1.0f; |
| 48 | valid = valid && embree::isvalid(psd.normal.y); |
| 49 | valid = valid && psd.normal.y <= 1.0f && psd.normal.y >= -1.0f; |
| 50 | valid = valid && embree::isvalid(psd.normal.z); |
| 51 | valid = valid && psd.normal.z <= 1.0f && psd.normal.z >= -1.0f; |
| 52 | OPENPGL_ASSERT(valid); |
| 53 | |
| 54 | valid = valid && embree::isvalid(psd.pdfDirectionIn); |
| 55 | valid = valid && psd.pdfDirectionIn >= 0.f; |
| 56 | OPENPGL_ASSERT(valid); |
| 57 | |
| 58 | valid = valid && embree::isvalid(psd.scatteringWeight.x); |
| 59 | valid = valid && psd.scatteringWeight.x >= 0.0f; |
| 60 | valid = valid && embree::isvalid(psd.scatteringWeight.y); |
| 61 | valid = valid && psd.scatteringWeight.y >= 0.0f; |
| 62 | valid = valid && embree::isvalid(psd.scatteringWeight.z); |
| 63 | valid = valid && psd.scatteringWeight.z >= 0.0f; |
| 64 | OPENPGL_ASSERT(valid); |
| 65 | |
| 66 | valid = valid && embree::isvalid(psd.transmittanceWeight.x); |
| 67 | valid = valid && psd.transmittanceWeight.x >= 0.0f; |
| 68 | valid = valid && embree::isvalid(psd.transmittanceWeight.y); |
| 69 | valid = valid && psd.transmittanceWeight.y >= 0.0f; |
| 70 | valid = valid && embree::isvalid(psd.transmittanceWeight.z); |
| 71 | valid = valid && psd.transmittanceWeight.z >= 0.0f; |
| 72 | OPENPGL_ASSERT(valid); |
| 73 | |
| 74 | valid = valid && embree::isvalid(psd.directContribution.x); |
| 75 | valid = valid && psd.directContribution.x >= 0.0f; |
| 76 | valid = valid && embree::isvalid(psd.directContribution.y); |
| 77 | valid = valid && psd.directContribution.y >= 0.0f; |
| 78 | valid = valid && embree::isvalid(psd.directContribution.z); |
| 79 | valid = valid && psd.directContribution.z >= 0.0f; |