//---------------------------------------------------------------------------- // William Baxter III's Ray Tracer // // Project for Comp 238, Raster Graphics // University of North Carolina at Chapel Hill // // $Id:$ //---------------------------------------------------------------------------- #ifndef WB3ARTIFACTSET_H #define WB3ARTIFACTSET_H #include "wb3TArray.h" #include "wb3Artifact.hpp" typedef wb3TArray wb3ArtifactArray; class wb3ArtifactSet : public wb3Artifact { public: wb3ArtifactSet(); ~wb3ArtifactSet(); void AddArtifact(wb3Artifact *obj); virtual const wb3Artifact* Intersect(const Ray3f& r, float *idist, const wb3Artifact* ignore = 0) const; virtual void GetNormal(const Ray3f& r, const Vec3f &isect, Vec3f& normal) const; protected: wb3ArtifactArray m_Artifacts; }; //---------------------------------------------------------------------------- inline wb3ArtifactSet::wb3ArtifactSet() { } //---------------------------------------------------------------------------- inline wb3ArtifactSet::~wb3ArtifactSet() { } //---------------------------------------------------------------------------- inline void wb3ArtifactSet::AddArtifact(wb3Artifact *obj) { m_Artifacts.Add(obj); } //---------------------------------------------------------------------------- inline void wb3ArtifactSet::GetNormal(const Ray3f& r, const Vec3f &isect, Vec3f& normal) const { // This should never be called because the set itself will never be the // object hit. normal.Set(0,0,0); } //---------------------------------------------------------------------------- #endif