My compiler begged to differ saying no constructor in Vector3 matches a constructor with 0 arguments
Not about the code you posted. The code you posted was perfectly fine. The problem is in the way you implement constructors:
Code:
Camera::Camera(float angle, Vector3 center, Vector3 Los){
Angle = angle;
Center = center;
VectorLOS = Los;
}
This is wrong. You should always use constructor initializers when you can. The problem here is that it first tries to default-initialize the vectors (but can't, because there is no default constructor) and then reassigns them. This constructor should look like this:
Code:
Camera::Camera(float angle, Vector3 center, Vector3 Los)
: Angle(angle), Center(center), VectorLOS(Los)
{}
This will work without giving Vector3 a default constructor. It can also save typing by removing the component-wise assignment you sometimes do.
Code:
Triangle::Triangle(Vector3 center, float width, float height)
Center(center), Width(width), Height(height)
{}
For that matter, why do you ever do a component-wise assignment?
Code:
void Triangle::MoveTo(Vector3 newCenter){
//Center.X = newCenter.X;
//Center.Y = newCenter.Y;
//Center.Z = newCenter.Z;
Center = newCenter;
}