#pragma once

#include "vec3.h"

class ray
{
public:
    ray() {}
    ray(const point3& origin, const vec3& direction) : 
        origin_(origin), 
        direction_(direction) 
    {}

    point3  origin()    const { return origin_; }
    vec3    direction() const { return direction_; }

    point3 at(double t) const
    {
        return origin_ + t * direction_;
    }

private:
    point3  origin_;
    vec3    direction_;
};
