#pragma once #include "point3d.h" class Plane; class Sphere SIGNATURED { public: Point3D center; Scalar radius; Sphere() {} Sphere(const Point3D &A_Point, Scalar Radius) : center(A_Point), radius(Radius) {} Sphere(Scalar X, Scalar Y, Scalar Z, Scalar Radius) : center(X,Y,Z), radius(Radius) {} // // Intersection functions // Logical Contains(const Point3D &point) const; Logical Intersects(const Sphere &sphere) const; Logical Intersects(const Plane &plane) const; friend std::ostream& operator<<(std::ostream& Stream, const Sphere &A_Sphere); };