5 #ifndef _SPICA_ACCELERATOR_H_
6 #define _SPICA_ACCELERATOR_H_
11 #include "core/core.hpp"
12 #include "core/common.h"
13 #include "core/uncopyable.h"
14 #include "core/triangle.h"
15 #include "core/bounds3d.h"
16 #include "core/primitive.h"
26 explicit Accelerator(
const std::vector<std::shared_ptr<Primitive>>& primitives)
27 : primitives_{ primitives } {}
29 Accelerator(
const std::vector<std::shared_ptr<Primitive>> &primitives,
35 virtual void construct() = 0;
36 virtual Bounds3d worldBound()
const override {
40 inline const std::vector<std::shared_ptr<Primitive>>& primitives()
const {
46 struct IndexedTriangle;
47 struct AxisComparator;
50 std::vector<std::shared_ptr<Primitive>> primitives_;
56 #endif // _SPICA_ACCELERATOR_H_
Definition: primitive.h:59
Interface for intersection test accelerators.
Definition: accelerator.h:23
Definition: renderparams.h:27
Interface class which forbids copy and assignment.
Definition: uncopyable.h:15