| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629 |
- // ======================================================================== //
- // Copyright 2009-2017 Intel Corporation //
- // //
- // Licensed under the Apache License, Version 2.0 (the "License"); //
- // you may not use this file except in compliance with the License. //
- // You may obtain a copy of the License at //
- // //
- // http://www.apache.org/licenses/LICENSE-2.0 //
- // //
- // Unless required by applicable law or agreed to in writing, software //
- // distributed under the License is distributed on an "AS IS" BASIS, //
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
- // See the License for the specific language governing permissions and //
- // limitations under the License. //
- // ======================================================================== //
- #include "default.h"
- #include "scene.h"
- #if defined(__INTEL_COMPILER)
- #pragma warning (disable: 1478) // warning: function was declared deprecated
- #elif defined(_MSC_VER)
- #pragma warning (disable: 4996) // warning: function was declared deprecated
- #elif defined(__clang__)
- #pragma clang diagnostic ignored "-Wdeprecated-declarations" // warning: xxx is deprecated
- #elif defined(__GNUC__)
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations" // warning: xxx is deprecated
- #endif
- namespace embree
- {
- #define size_t int // FIXME: workaround for ISPC bug (ISPC bug still present in ISPC v1.8.2)
- #define ssize_t int // FIXME: workaround for ISPC bug (ISPC bug still present in ISPC v1.8.2)
- extern "C" RTCDevice ispcNewDevice(const char* cfg) {
- return rtcNewDevice(cfg);
- }
- extern "C" void ispcDeleteDevice(RTCDevice device) {
- rtcDeleteDevice(device);
- }
- extern "C" void ispcInit(const char* cfg) {
- rtcInit(cfg);
- }
-
- extern "C" void ispcExit() {
- rtcExit();
- }
- extern "C" void ispcSetParameter1i(const RTCParameter parm, ssize_t val) {
- rtcSetParameter1i(parm,val);
- }
- extern "C" ssize_t ispcGetParameter1i(const RTCParameter parm) {
- return ssize_t(rtcGetParameter1i(parm));
- }
- extern "C" void ispcDeviceSetParameter1i(RTCDevice device, const RTCParameter parm, ssize_t val) {
- rtcDeviceSetParameter1i(device,parm,val);
- }
- extern "C" ssize_t ispcDeviceGetParameter1i(RTCDevice device, const RTCParameter parm) {
- return ssize_t(rtcDeviceGetParameter1i(device,parm));
- }
- extern "C" RTCError ispcGetError() {
- return rtcGetError();
- }
- extern "C" RTCError ispcDeviceGetError(RTCDevice device) {
- return rtcDeviceGetError(device);
- }
- extern "C" void ispcSetErrorFunction(void* f) {
- return rtcSetErrorFunction((RTCErrorFunc)f);
- }
- extern "C" void ispcDeviceSetErrorFunction(RTCDevice device, void* f) {
- return rtcDeviceSetErrorFunction(device,(RTCErrorFunc)f);
- }
- extern "C" void ispcDeviceSetErrorFunction2(RTCDevice device, void* fptr, void* uptr) {
- return rtcDeviceSetErrorFunction2(device,(RTCErrorFunc2)fptr,uptr);
- }
- extern "C" void ispcSetMemoryMonitorFunction(void* f) {
- return rtcSetMemoryMonitorFunction((RTCMemoryMonitorFunc)f);
- }
- extern "C" void ispcDeviceSetMemoryMonitorFunction(RTCDevice device, void* f) {
- return rtcDeviceSetMemoryMonitorFunction(device,(RTCMemoryMonitorFunc)f);
- }
- extern "C" void ispcDeviceSetMemoryMonitorFunction2(RTCDevice device, void* fptr, void* uptr) {
- return rtcDeviceSetMemoryMonitorFunction2(device,(RTCMemoryMonitorFunc2)fptr,uptr);
- }
- extern "C" void ispcDebug() {
- rtcDebug();
- }
-
- extern "C" RTCScene ispcNewScene (RTCSceneFlags flags, RTCAlgorithmFlags aflags)
- {
- if (!isCoherent(flags) && !isIncoherent(flags)) flags = RTCSceneFlags(flags | RTC_SCENE_COHERENT);
- return rtcNewScene(flags,aflags);
- }
-
- extern "C" RTCScene ispcNewScene2 (RTCDevice device, RTCSceneFlags flags, RTCAlgorithmFlags aflags)
- {
- if (!isCoherent(flags) && !isIncoherent(flags)) flags = RTCSceneFlags(flags | RTC_SCENE_COHERENT);
- return rtcDeviceNewScene(device,flags,aflags);
- }
- extern "C" void ispcSetProgressMonitorFunction(RTCScene scene, void* func, void* ptr) {
- return rtcSetProgressMonitorFunction(scene,(RTCProgressMonitorFunc)func,ptr);
- }
- extern "C" void ispcCommit (RTCScene scene) {
- return rtcCommit(scene);
- }
- extern "C" void ispcCommitJoin (RTCScene scene) {
- return rtcCommitJoin(scene);
- }
- extern "C" void ispcCommitThread (RTCScene scene, unsigned int threadID, unsigned int numThreads) {
- return rtcCommitThread(scene,threadID,numThreads);
- }
- extern "C" void ispcGetBounds(RTCScene scene, RTCBounds& bounds_o) {
- rtcGetBounds(scene,bounds_o);
- }
- extern "C" void ispcGetLinearBounds(RTCScene scene, RTCBounds* bounds_o) {
- rtcGetLinearBounds(scene,bounds_o);
- }
-
- extern "C" void ispcIntersect1 (RTCScene scene, const RTCIntersectContext* context, RTCRay& ray) {
- rtcIntersect1Ex(scene,context,ray);
- }
-
- extern "C" void ispcIntersect4 (const void* valid, RTCScene scene, const RTCIntersectContext* context, RTCRay4& ray) {
- rtcIntersect4Ex(valid,scene,context,ray);
- }
-
- extern "C" void ispcIntersect8 (const void* valid, RTCScene scene, const RTCIntersectContext* context, RTCRay8& ray) {
- rtcIntersect8Ex(valid,scene,context,ray);
- }
-
- extern "C" void ispcIntersect16 (const void* valid, RTCScene scene, const RTCIntersectContext* context, RTCRay16& ray) {
- rtcIntersect16Ex(valid,scene,context,ray);
- }
- extern "C" void ispcIntersect1M (RTCScene scene, const RTCIntersectContext* context, RTCRay* rays, const size_t N, const size_t M, const size_t stride) {
- rtcIntersect1M(scene,context,rays,M,stride);
- }
- extern "C" void ispcIntersect1Mp (RTCScene scene, const RTCIntersectContext* context, RTCRay** rays, const size_t N, const size_t M, const size_t stride) {
- rtcIntersect1Mp(scene,context,rays,M);
- }
- extern "C" void ispcIntersectNM (RTCScene scene, const RTCIntersectContext* context, RTCRayN* rays, const size_t N, const size_t M, const size_t stride) {
- rtcIntersectNM(scene,context,rays,N,M,stride);
- }
- extern "C" void ispcIntersectNp (RTCScene scene, const RTCIntersectContext* context, const RTCRayNp& rays, const size_t N) {
- rtcIntersectNp(scene,context,rays,N);
- }
-
- extern "C" void ispcOccluded1 (RTCScene scene, RTCRay& ray) {
- rtcOccluded(scene,ray);
- }
-
- extern "C" void ispcOccluded4 (const void* valid, RTCScene scene, const RTCIntersectContext* context, RTCRay4& ray) {
- rtcOccluded4Ex(valid,scene,context,ray);
- }
-
- extern "C" void ispcOccluded8 (const void* valid, RTCScene scene, const RTCIntersectContext* context, RTCRay8& ray) {
- rtcOccluded8Ex(valid,scene,context,ray);
- }
-
- extern "C" void ispcOccluded16 (const void* valid, RTCScene scene, const RTCIntersectContext* context, RTCRay16& ray) {
- rtcOccluded16Ex(valid,scene,context,ray);
- }
- extern "C" void ispcOccluded1M (RTCScene scene, const RTCIntersectContext* context, RTCRay* rays, const size_t N, const size_t M, const size_t stride) {
- rtcOccluded1M(scene,context,rays,M,stride);
- }
- extern "C" void ispcOccluded1Mp (RTCScene scene, const RTCIntersectContext* context, RTCRay** rays, const size_t N, const size_t M, const size_t stride) {
- rtcOccluded1Mp(scene,context,rays,M);
- }
- extern "C" void ispcOccludedNM (RTCScene scene, const RTCIntersectContext* context, RTCRayN* rays, const size_t N, const size_t M, const size_t stride) {
- rtcOccludedNM(scene,context,(RTCRayN*)rays,N,M,stride);
- }
- extern "C" void ispcOccludedNp (RTCScene scene, const RTCIntersectContext* context, const RTCRayNp& rays, const size_t N) {
- rtcOccludedNp(scene,context,rays,N);
- }
-
- extern "C" void ispcDeleteScene (RTCScene scene) {
- rtcDeleteScene(scene);
- }
-
- extern "C" unsigned ispcNewInstance (RTCScene target, RTCScene source) {
- return rtcNewInstance(target,source);
- }
-
- extern "C" unsigned ispcNewInstance2 (RTCScene target, RTCScene source, size_t numTimeSteps) {
- return rtcNewInstance2(target,source,numTimeSteps);
- }
- extern "C" void ispcSetTransform (RTCScene scene, unsigned geomID, RTCMatrixType layout, const float* xfm) {
- return rtcSetTransform(scene,geomID,layout,xfm);
- }
- extern "C" void ispcSetTransform2 (RTCScene scene, unsigned geomID, RTCMatrixType layout, const float* xfm, size_t timeStep) {
- return rtcSetTransform2(scene,geomID,layout,xfm,timeStep);
- }
-
- extern "C" unsigned ispcNewUserGeometry (RTCScene scene, size_t numItems) {
- return rtcNewUserGeometry(scene,numItems);
- }
- extern "C" unsigned ispcNewUserGeometry2 (RTCScene scene, size_t numItems, size_t numTimeSteps) {
- return rtcNewUserGeometry2(scene,numItems,numTimeSteps);
- }
- extern "C" unsigned ispcNewUserGeometry3 (RTCScene scene, RTCGeometryFlags gflags, size_t numItems, size_t numTimeSteps) {
- return rtcNewUserGeometry3(scene,gflags,numItems,numTimeSteps);
- }
- extern "C" unsigned ispcNewTriangleMesh (RTCScene scene, RTCGeometryFlags flags, size_t numTriangles, size_t numVertices, size_t numTimeSteps) {
- return rtcNewTriangleMesh((RTCScene)scene,flags,numTriangles,numVertices,numTimeSteps);
- }
- extern "C" unsigned ispcNewQuadMesh (RTCScene scene, RTCGeometryFlags flags, size_t numQuads, size_t numVertices, size_t numTimeSteps) {
- return rtcNewQuadMesh((RTCScene)scene,flags,numQuads,numVertices,numTimeSteps);
- }
- extern "C" unsigned ispcNewLineSegments (RTCScene scene, RTCGeometryFlags flags, size_t numSegments, size_t numVertices, size_t numTimeSteps) {
- return rtcNewLineSegments(scene,flags,numSegments,numVertices,numTimeSteps);
- }
- extern "C" unsigned ispcNewHairGeometry (RTCScene scene, RTCGeometryFlags flags, size_t numCurves, size_t numVertices, size_t numTimeSteps) {
- return rtcNewHairGeometry(scene,flags,numCurves,numVertices,numTimeSteps);
- }
- extern "C" unsigned ispcNewCurveGeometry (RTCScene scene, RTCGeometryFlags flags, size_t numCurves, size_t numVertices, size_t numTimeSteps) {
- return rtcNewCurveGeometry(scene,flags,numCurves,numVertices,numTimeSteps);
- }
- extern "C" unsigned ispcNewSubdivisionMesh (RTCScene scene, RTCGeometryFlags flags, size_t numFaces, size_t numEdges,
- size_t numVertices, size_t numEdgeCreases, size_t numVertexCreases, size_t numHoles, size_t numTimeSteps)
- {
- return rtcNewSubdivisionMesh(scene,flags,numFaces,numEdges,numVertices,numEdgeCreases,numVertexCreases,numHoles,numTimeSteps);
- }
- extern "C" void ispcSetRayMask (RTCScene scene, unsigned geomID, int mask) {
- rtcSetMask(scene,geomID,mask);
- }
- extern "C" void ispcSetBoundaryMode (RTCScene scene, unsigned geomID, RTCBoundaryMode mode) {
- rtcSetBoundaryMode(scene,geomID,mode);
- }
- extern "C" void ispcSetSubdivisionMode (RTCScene scene, unsigned geomID, unsigned topologyID, RTCSubdivisionMode mode) {
- rtcSetSubdivisionMode(scene,geomID,topologyID,mode);
- }
- extern "C" void ispcSetIndexBuffer(RTCScene scene, unsigned geomID, RTCBufferType vertexBuffer, RTCBufferType indexBuffer) {
- rtcSetIndexBuffer(scene,geomID,vertexBuffer,indexBuffer);
- }
-
- extern "C" void* ispcMapBuffer(RTCScene scene, unsigned geomID, RTCBufferType type) {
- return rtcMapBuffer(scene,geomID,type);
- }
-
- extern "C" void ispcUnmapBuffer(RTCScene scene, unsigned geomID, RTCBufferType type) {
- rtcUnmapBuffer(scene,geomID,type);
- }
- extern "C" void ispcSetBuffer(RTCScene scene, unsigned geomID, RTCBufferType type, const void* ptr, size_t offset, size_t stride, size_t size) {
- rtcSetBuffer2(scene,geomID,type,ptr,offset,stride,size);
- }
- extern "C" void ispcEnable (RTCScene scene, unsigned geomID) {
- rtcEnable(scene,geomID);
- }
-
- extern "C" void ispcUpdate (RTCScene scene, unsigned geomID) {
- rtcUpdate(scene,geomID);
- }
- extern "C" void ispcUpdateBuffer (RTCScene scene, unsigned geomID, RTCBufferType type) {
- rtcUpdateBuffer(scene,geomID,type);
- }
-
- extern "C" void ispcDisable (RTCScene scene, unsigned geomID) {
- rtcDisable(scene,geomID);
- }
-
- extern "C" void ispcDeleteGeometry (RTCScene scene, unsigned geomID) {
- rtcDeleteGeometry(scene,geomID);
- }
- extern "C" void ispcSetTessellationRate (RTCScene hscene, unsigned geomID, float tessellationRate) {
- rtcSetTessellationRate(hscene,geomID,tessellationRate);
- }
-
- extern "C" void ispcSetUserData (RTCScene hscene, unsigned geomID, void* ptr)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetUserData);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- scene->get_locked(geomID)->setUserData(ptr);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void* ispcGetUserData (RTCScene hscene, unsigned geomID)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetUserData);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- return scene->get(geomID)->getUserData(); // this call is on purpose not thread safe
- RTCORE_CATCH_END(scene->device);
- return nullptr;
- }
- extern "C" void ispcSetBoundsFunction (RTCScene scene, unsigned geomID, RTCBoundsFunc bounds) {
- rtcSetBoundsFunction(scene,geomID,bounds);
- }
- extern "C" void ispcSetBoundsFunction2 (RTCScene scene, unsigned geomID, RTCBoundsFunc2 bounds, void* userPtr) {
- rtcSetBoundsFunction2(scene,geomID,bounds,userPtr);
- }
- extern "C" void ispcSetBoundsFunction3 (RTCScene scene, unsigned geomID, RTCBoundsFunc3 bounds, void* userPtr) {
- rtcSetBoundsFunction3(scene,geomID,bounds,userPtr);
- }
- extern "C" void ispcSetIntersectFunction1 (RTCScene hscene, unsigned geomID, RTCIntersectFunc intersect)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectFunction1);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- scene->get_locked(geomID)->setIntersectFunction(intersect,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetIntersectFunction4 (RTCScene hscene, unsigned geomID, RTCIntersectFunc4 intersect)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectFunction4);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- scene->get_locked(geomID)->setIntersectFunction4(intersect,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetIntersectFunction8 (RTCScene hscene, unsigned geomID, RTCIntersectFunc8 intersect)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectFunction8);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- scene->get_locked(geomID)->setIntersectFunction8(intersect,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetIntersectFunction16 (RTCScene hscene, unsigned geomID, RTCIntersectFunc16 intersect)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectFunction16);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setIntersectFunction16(intersect,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetIntersectFunction1Mp (RTCScene hscene, unsigned geomID, RTCIntersectFunc1Mp intersect)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectFunction1Mp);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- scene->get_locked(geomID)->setIntersectFunction1Mp(intersect);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetIntersectFunctionN (RTCScene hscene, unsigned geomID, RTCIntersectFuncN intersect)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectFunctionN);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setIntersectFunctionN(intersect);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetOccludedFunction1 (RTCScene hscene, unsigned geomID, RTCOccludedFunc occluded)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOccludedFunction1);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOccludedFunction(occluded,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetOccludedFunction4 (RTCScene hscene, unsigned geomID, RTCOccludedFunc4 occluded)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOccludedFunction4);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOccludedFunction4(occluded,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetOccludedFunction8 (RTCScene hscene, unsigned geomID, RTCOccludedFunc8 occluded)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOccludedFunction8);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOccludedFunction8(occluded,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetOccludedFunction16 (RTCScene hscene, unsigned geomID, RTCOccludedFunc16 occluded)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOccludedFunction16);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOccludedFunction16(occluded,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetOccludedFunction1Mp (RTCScene hscene, unsigned geomID, RTCOccludedFunc1Mp occluded)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOccludedFunction1Mp);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOccludedFunction1Mp(occluded);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetOccludedFunctionN (RTCScene hscene, unsigned geomID, RTCOccludedFuncN occluded)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOccludedFunctionN);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOccludedFunctionN(occluded);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetIntersectionFilterFunction1 (RTCScene hscene, unsigned geomID, RTCFilterFunc filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectionFilterFunction1);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setIntersectionFilterFunction(filter,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetIntersectionFilterFunction4 (RTCScene hscene, unsigned geomID, RTCFilterFunc4 filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectionFilterFunction4);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setIntersectionFilterFunction4(filter,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetIntersectionFilterFunction8 (RTCScene hscene, unsigned geomID, RTCFilterFunc8 filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectionFilterFunction8);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setIntersectionFilterFunction8(filter,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetIntersectionFilterFunction16 (RTCScene hscene, unsigned geomID, RTCFilterFunc16 filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectionFilterFunction16);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setIntersectionFilterFunction16(filter,true);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetIntersectionFilterFunctionN (RTCScene hscene, unsigned geomID, RTCFilterFuncN filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetIntersectionFilterFunctionN);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setIntersectionFilterFunctionN(filter);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetOcclusionFilterFunction1 (RTCScene hscene, unsigned geomID, RTCFilterFunc filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOcclusionFilterFunction1);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOcclusionFilterFunction(filter,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetOcclusionFilterFunction4 (RTCScene hscene, unsigned geomID, RTCFilterFunc4 filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOcclusionFilterFunction4);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOcclusionFilterFunction4(filter,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetOcclusionFilterFunction8 (RTCScene hscene, unsigned geomID, RTCFilterFunc8 filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOcclusionFilterFunction8);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOcclusionFilterFunction8(filter,true);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcSetOcclusionFilterFunction16 (RTCScene hscene, unsigned geomID, RTCFilterFunc16 filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOcclusionFilterFunction16);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOcclusionFilterFunction16(filter,true);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetOcclusionFilterFunctionN (RTCScene hscene, unsigned geomID, RTCFilterFuncN filter)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetOcclusionFilterFunctionN);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setOcclusionFilterFunctionN(filter);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetDisplacementFunction (RTCScene hscene, unsigned int geomID, void* func, RTCBounds* bounds)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetDisplacementFunction);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setDisplacementFunction((RTCDisplacementFunc)func,bounds);
- RTCORE_CATCH_END(scene->device);
- }
- extern "C" void ispcSetDisplacementFunction2 (RTCScene hscene, unsigned int geomID, void* func, RTCBounds* bounds)
- {
- Scene* scene = (Scene*) hscene;
- RTCORE_CATCH_BEGIN;
- RTCORE_TRACE(rtcSetDisplacementFunction2);
- RTCORE_VERIFY_HANDLE(scene);
- RTCORE_VERIFY_GEOMID(geomID);
- ((Scene*)scene)->get_locked(geomID)->setDisplacementFunction2((RTCDisplacementFunc2)func,bounds);
- RTCORE_CATCH_END(scene->device);
- }
-
- extern "C" void ispcInterpolateN(RTCScene scene, unsigned int geomID,
- const void* valid, const unsigned int* primIDs, const float* u, const float* v, size_t numUVs,
- RTCBufferType buffer,
- float* P, float* dPdu, float* dPdv, size_t numFloats)
- {
- rtcInterpolateN(scene,geomID,valid,primIDs,u,v,numUVs,buffer,P,dPdu,dPdv,numFloats);
- }
- extern "C" void ispcInterpolateN2(RTCScene scene, unsigned int geomID,
- const void* valid, const unsigned int* primIDs, const float* u, const float* v, size_t numUVs,
- RTCBufferType buffer,
- float* P, float* dPdu, float* dPdv,
- float* ddPdudu, float* ddPdvdv, float* ddPdudv,
- size_t numFloats)
- {
- rtcInterpolateN2(scene,geomID,valid,primIDs,u,v,numUVs,buffer,P,dPdu,dPdv,ddPdudu,ddPdvdv,ddPdudv,numFloats);
- }
- }
|