| 193 | } |
| 194 | |
| 195 | Instance* createInstance (RTCScene scene, RTCScene object, int userID, const Vec3fa& lower, const Vec3fa& upper) |
| 196 | { |
| 197 | Instance* instance = (Instance*) alignedMalloc(sizeof(Instance),16); |
| 198 | instance->object = object; |
| 199 | instance->userID = userID; |
| 200 | instance->lower = lower; |
| 201 | instance->upper = upper; |
| 202 | instance->local2world.l.vx = Vec3fa(1,0,0); |
| 203 | instance->local2world.l.vy = Vec3fa(0,1,0); |
| 204 | instance->local2world.l.vz = Vec3fa(0,0,1); |
| 205 | instance->local2world.p = Vec3fa(0,0,0); |
| 206 | instance->geometry = rtcNewGeometry(g_device, RTC_GEOMETRY_TYPE_USER); |
| 207 | rtcSetGeometryUserPrimitiveCount(instance->geometry,1); |
| 208 | rtcSetGeometryUserData(instance->geometry,instance); |
| 209 | rtcSetGeometryBoundsFunction(instance->geometry,instanceBoundsFunc,nullptr); |
| 210 | rtcSetGeometryIntersectFunction(instance->geometry,instanceIntersectFunc); |
| 211 | rtcSetGeometryPointQueryFunction(instance->geometry,instanceClosestPointFunc); |
| 212 | rtcCommitGeometry(instance->geometry); |
| 213 | rtcAttachGeometry(scene,instance->geometry); |
| 214 | rtcReleaseGeometry(instance->geometry); |
| 215 | return instance; |
| 216 | } |
| 217 | |
| 218 | void updateInstance (RTCScene scene, Instance* instance) |
| 219 | { |
nothing calls this directly
no test coverage detected