/******************************************************************/ /* 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 "lightsourceShader.h" #include "lightsourceGeometry.h" ///////////////// // Constructor // ///////////////// lightsourceGeometry::lightsourceGeometry(void) : boundedCompound() { // Nothing. } lightsourceGeometry::lightsourceGeometry(const std::shared_ptr& geometry, const std::shared_ptr& ls, const std::shared_ptr& material) : boundedCompound() { assert(geometry && ls); _geometry.push_back(geometry); _shader = std::shared_ptr(new lightsourceShader(ls, material)); // Done. initializeBoundingBox(); } ///////////// // Methods // ///////////// bool lightsourceGeometry::hasShader(void) const { // always has a shader by construction return true; } const std::vector>& lightsourceGeometry::compounds(void) const { return _geometry; } void lightsourceGeometry::_print(std::ostream& s) const { s << "lightsourceGeometry (" << _bb << ") -> [" << *_shader << "]"; }