46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
// Copyright 2009-2021 Intel Corporation
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
#include "scene_user_geometry.h"
|
|
#include "scene.h"
|
|
|
|
namespace embree
|
|
{
|
|
#if defined(EMBREE_LOWEST_ISA)
|
|
|
|
UserGeometry::UserGeometry (Device* device, unsigned int items, unsigned int numTimeSteps)
|
|
: AccelSet(device,Geometry::GTY_USER_GEOMETRY,items,numTimeSteps) {}
|
|
|
|
void UserGeometry::addElementsToCount (GeometryCounts & counts) const
|
|
{
|
|
if (numTimeSteps == 1) counts.numUserGeometries += numPrimitives;
|
|
else counts.numMBUserGeometries += numPrimitives;
|
|
}
|
|
|
|
void UserGeometry::setMask (unsigned mask)
|
|
{
|
|
this->mask = mask;
|
|
Geometry::update();
|
|
}
|
|
|
|
void UserGeometry::setBoundsFunction (RTCBoundsFunction bounds, void* userPtr) {
|
|
this->boundsFunc = bounds;
|
|
}
|
|
|
|
void UserGeometry::setIntersectFunctionN (RTCIntersectFunctionN intersect) {
|
|
intersectorN.intersect = intersect;
|
|
}
|
|
|
|
void UserGeometry::setOccludedFunctionN (RTCOccludedFunctionN occluded) {
|
|
intersectorN.occluded = occluded;
|
|
}
|
|
|
|
#endif
|
|
|
|
namespace isa
|
|
{
|
|
UserGeometry* createUserGeometry(Device* device) {
|
|
return new UserGeometryISA(device);
|
|
}
|
|
}
|
|
}
|