| 87 | } |
| 88 | |
| 89 | inline std::string toString(const SampleData &sd) |
| 90 | { |
| 91 | std::stringstream ss; |
| 92 | ss << "SampleData: "; |
| 93 | ss << "position = " << sd.position.x << "\t " << sd.position.y << "\t " << sd.position.z << "\t "; |
| 94 | pgl_vec3f direction = sd.direction; |
| 95 | ss << "\t direction = " << direction.x << "\t " << direction.y << "\t " << direction.z << "\t "; |
| 96 | ss << "\t weight = " << sd.weight << "\t "; |
| 97 | ss << "\t pdf = " << sd.pdf << "\t "; |
| 98 | ss << "\t distance = " << sd.distance << "\t "; |
| 99 | ss << "\t flags = " << sd.flags; |
| 100 | #ifdef OPENPGL_RADIANCE_CACHES |
| 101 | pgl_vec3f radianceIn = sd.radianceIn; |
| 102 | ss << "\t radianceIn = " << radianceIn.x << "\t " << radianceIn.y << "\t " << radianceIn.z << "\t "; |
| 103 | |
| 104 | ss << "\t radianceInMISWeight = " << sd.radianceInMISWeight; |
| 105 | |
| 106 | pgl_vec3f radianceOut = sd.radianceOut; |
| 107 | ss << "\t radianceOut = " << radianceOut.x << "\t " << radianceOut.y << "\t " << radianceOut.z << "\t "; |
| 108 | |
| 109 | pgl_vec3f directionOut = sd.directionOut; |
| 110 | ss << "\t directionOut = " << directionOut.x << "\t " << directionOut.y << "\t " << directionOut.z << "\t "; |
| 111 | #endif |
| 112 | ss << std::endl; |
| 113 | |
| 114 | return ss.str(); |
| 115 | } |
| 116 | |
| 117 | inline bool SampleDataEqual(const PGLSampleData &compA, const PGLSampleData &compB) |
| 118 | { |