/******************************************************************/ /* This file is part of the homework assignments for CSCI-427/527 */ /* at The College of William & Mary and authored by Pieter Peers. */ /* No part of this file, whether altered or in original form, can */ /* be distributed or used outside the context of CSCI-427/527 */ /* without consent of either the College of William & Mary or */ /* Pieter Peers. */ /******************************************************************/ #include #include "scene.h" #include "render_base.h" //////////////// // Inspectors // //////////////// const camera& scene::getCamera(void) const { return _camera; } const lightsource_base& scene::getLightsource(size_t idx) const { assert(idx < _lightsources.size()); return *(_lightsources[idx]); } size_t scene::numberOfLightsources(void) const { return _lightsources.size(); } bool scene::hasEnvironmentMap(void) const { return (_environmentMap != nullptr); } color scene::evaluateEnvironmentMap(const vec3d& direction) const { assert(_environmentMap); return (*_environmentMap)(direction); } ///////////// // Methods // ///////////// intersectionPoint scene::intersect(const ray& r) const { return _sceneGraphRoot->intersect(r); } image scene::render(void) const { return _renderEngine->render(*this); }