| 76 | } |
| 77 | |
| 78 | void convertCurveGeometry(ISPCHairSet* hair, RTCScene scene_out, RTCBuildQuality quality) |
| 79 | { |
| 80 | RTCGeometry geom = rtcNewGeometry (g_device, hair->type); |
| 81 | rtcSetGeometryTimeStepCount(geom, hair->numTimeSteps); |
| 82 | rtcSetGeometryBuildQuality(geom, quality); |
| 83 | |
| 84 | for (size_t t=0; t<hair->numTimeSteps; t++) { |
| 85 | rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX, (unsigned int)t, RTC_FORMAT_FLOAT4, hair->positions[t], 0, sizeof(Vertex), hair->numVertices); |
| 86 | } |
| 87 | rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_INDEX, 0, RTC_FORMAT_UINT, hair->hairs, 0, sizeof(ISPCHair), hair->numHairs); |
| 88 | if (hair->type != RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE) |
| 89 | rtcSetGeometryTessellationRate(geom,(float)hair->tessellation_rate); |
| 90 | rtcCommitGeometry(geom); |
| 91 | rtcAttachGeometry(scene_out,geom); |
| 92 | rtcReleaseGeometry(geom); |
| 93 | } |
| 94 | |
| 95 | RTCScene createScene(RTCSceneFlags sflags, RTCBuildQuality qflags) |
| 96 | { |
no test coverage detected