R
am besten:
1. auf using "namespace" verzichten !
2. damit kein knoten in die finger bekommst, typedefs verwenden
typedef std::vector<x3d> x3dvectorT; // hilft unwahrscheinlich ...
3. eigendefinitionen (typedefs), structs, enums etc die in den selben zusammenhang verwendest, in ne eigene schlanke headerdatei auslagern, die bei berdarf immer wieder includen kannst ....
4. frueher oder spaeter kommst dann zu dem punkt, wo die sachen, die immer im selben zusammenhang verwendest, in ne lib auslagerst, auch in nen eigenen namespace pappst .... spaetestens dann ueberlegst dir das using 2 oder 3 mal vorher aber das erst spaeter ....
In deinem Fall wuerd ich sowas machen:
/////////////////////////////////////////////////////////////////////////////
// XRayTypes.h
// Inlude Guards und so nicht vergessen !
#include <vector>
struct xray_3dpoint
{
float x, y, z; //position;
};
struct xray_3dcamera
{
xray_3dpoint pos; //position
float p, y, r, //direction: Pitch, Yaw, Roll
h, v; //open angle: horizontal,vertical
bool rad; //projection type: radial or normal
};
typedef std::vector<xray_3dpoint> x3dvector_t;
/////////////////////////////////////////////////////////////////////////////
// main.cpp
#include XRayTypes.h
void xray_drawto(SDL_Surface *surface, xray_3dcamera &cam, x3dvector_t & points)
{
...
}
int main()
{
// ... was auch immer du hier machen willst
return 0;
}
Wenn deine Funktionlaitaet zum zeichnen etc ungern ins hauptptogramm pappst, was durchaus sehr verständlich ist dann nen besseres objektorientiertes design, wo die funktionalitaet in den members von paar spezialisierten klassen liegt. include *.cpp macht ma wirklich nicht ....
und lose funktionen zum zeichnen sind eher mehr proceduraler stil anstatt objektorientierter ....
Ciao ...