
#include <pw/core/vector.hpp>
#include <pw/core/serialize.hpp>

#include <iostream>

int main(int argc,char **argv) {

    pw::vector4<float> v4;

    v4.fill(1.5);

    std::cout << "v4 = " << pw::serialize::matrix(v4) << std::endl;

    std::cout << "row_stride() : " << v4.row_stride() << std::endl;
    std::cout << "col_stride() : " << v4.col_stride() << std::endl;
    std::cout << "rows()       : " << v4.rows() << std::endl;
    std::cout << "cols()       : " << v4.cols() << std::endl;
    std::cout << "data()       : " << v4.data() << std::endl;
    std::cout << "data()[0]    : " << v4.data()[0] << std::endl;
    std::cout << "at(0,0)      : " << v4.at(0,0) << std::endl;

    pw::vector3f v3 = v4.xyz();

    std::cout << "v3 = " << pw::serialize::matrix(v3) << std::endl;

    std::cout << "v3.normalized() = " << pw::serialize::matrix(v3.normalized()) << std::endl;


    return 0;
}
