<commit_before>#pragma once

#include "vec.hpp"

namespace gml {
    struct Ray {
        Vec3 origin;
        Vec3 direction;

        Ray()
            : origin( Vec3( 0, 0, 0 ) )
            , direction( Vec3( 0, 0, -1 ) )
        {}

        Ray( Vec3 o, Vec3 d )
            : origin( o )
            , direction( d )
        {}

        inline Vec3 at( float t ) const { return origin + t * direction; }
    };

    struct Sphere {
        Vec3 center;
        float radius;
    };
}<commit_msg>sphere constructors<commit_after>#pragma once

#include "vec.hpp"

namespace gml {
    struct Ray {
        Vec3 origin;
        Vec3 direction;

        Ray()
            : origin( Vec3( 0, 0, 0 ) )
            , direction( Vec3( 0, 0, -1 ) )
        {}

        Ray( Vec3 o, Vec3 d )
            : origin( o )
            , direction( d )
        {}

        inline Vec3 at( float t ) const { return origin + t * direction; }
    };

    struct Sphere {
        Vec3 center;
        float radius;

        Sphere()
            : center( Vec3( 0, 0, 0 ) )
            , radius( 1 )
        {}

        Sphere( Vec3 c, float r )
            : center( c )
            , radius( r )
        {}
    };
}
{'fraction_non_alphanumeric': 0.115736885928393, 'fraction_numerical': 0.028309741881765195, 'mean_word_length': 1.2136279926335174, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4182668', 'n_tokens_mistral': 397, 'n_tokens_neox': 370, 'n_words': 114}