template <typename type> struct vec3{ type x , y , z; vec3(void){ x = y = z = 0; } vec3(type init_x , type init_y , type init_z){ x = init_x; y = init_y; z = init_z; } //operator = vec3 operator=(const vec3& a){ this->x = a.x; this->y = a.y; this->z = a.z; return *this; } vec3 operator=(const type a){ this->x = a; this->y = a; this->z = a; return *this; } //operator +vec3 vec3 operator+() { return