| 955 | } |
| 956 | |
| 957 | void ConvertCurveGeometry(RTCDevice device, ISPCHairSet* mesh, RTCBuildQuality quality, RTCSceneFlags flags, RTCFeatureFlags& used_features) |
| 958 | { |
| 959 | if (mesh->geom.visited) return; |
| 960 | |
| 961 | switch (mesh->type) { |
| 962 | case RTC_GEOMETRY_TYPE_CONE_LINEAR_CURVE: used_features |= RTC_FEATURE_FLAG_CONE_LINEAR_CURVE; break; |
| 963 | case RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE: used_features |= RTC_FEATURE_FLAG_ROUND_LINEAR_CURVE ; break; |
| 964 | case RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE: used_features |= RTC_FEATURE_FLAG_FLAT_LINEAR_CURVE; break; |
| 965 | case RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE: used_features |= RTC_FEATURE_FLAG_ROUND_BEZIER_CURVE; break; |
| 966 | case RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE: used_features |= RTC_FEATURE_FLAG_FLAT_BEZIER_CURVE; break; |
| 967 | case RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE: used_features |= RTC_FEATURE_FLAG_NORMAL_ORIENTED_BEZIER_CURVE; break; |
| 968 | case RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE: used_features |= RTC_FEATURE_FLAG_ROUND_BSPLINE_CURVE; break; |
| 969 | case RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE: used_features |= RTC_FEATURE_FLAG_FLAT_BSPLINE_CURVE; break; |
| 970 | case RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE: used_features |= RTC_FEATURE_FLAG_NORMAL_ORIENTED_BSPLINE_CURVE; break; |
| 971 | case RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE: used_features |= RTC_FEATURE_FLAG_ROUND_HERMITE_CURVE; break; |
| 972 | case RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE: used_features |= RTC_FEATURE_FLAG_FLAT_HERMITE_CURVE; break; |
| 973 | case RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_HERMITE_CURVE: used_features |= RTC_FEATURE_FLAG_NORMAL_ORIENTED_HERMITE_CURVE; break; |
| 974 | case RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE: used_features |= RTC_FEATURE_FLAG_ROUND_CATMULL_ROM_CURVE; break; |
| 975 | case RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE: used_features |= RTC_FEATURE_FLAG_FLAT_CATMULL_ROM_CURVE; break; |
| 976 | case RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_CATMULL_ROM_CURVE: used_features |= RTC_FEATURE_FLAG_NORMAL_ORIENTED_CATMULL_ROM_CURVE; break; |
| 977 | default: assert(false); break; |
| 978 | } |
| 979 | if (mesh->numTimeSteps > 1) used_features |= RTC_FEATURE_FLAG_MOTION_BLUR; |
| 980 | |
| 981 | mesh->geom.visited = true; |
| 982 | rtcSetGeometryBuildQuality(mesh->geom.geometry, quality); |
| 983 | mesh->commit(); |
| 984 | } |
| 985 | |
| 986 | void ConvertPoints(RTCDevice device, ISPCPointSet* mesh, RTCBuildQuality quality, RTCSceneFlags flags, RTCFeatureFlags& used_features) |
| 987 | { |
no test coverage detected