hi everyone im using winapi and i want to do a square in 3d im defining the points to unite them with a function and ive been trying 3 functions but i cant make them work i get the same error in the 3 of em >.<
The Error says
In member function `void Cube::Show(void)':|
cannot convert `const Cube::Show()::POINT3D**' to `const POINT*'
for argument `2' to `BOOL Polygon(HDC__*, const POINT*, int)'|
The error is pointing when im using either Polygon function or polybezier or polyline
Plz Any Help would really be appreciated
void Cube::Show(void)
{
typedef struct point3d
{
double x;
double y;
double z;
} POINT3D;
POINT3D Face1[] = {
{ 20.0,-20.0,-20.0},
{-20.0,-20.0,-20.0},
{-20.0, 20.0,-20.0},
{ 20.0, 20.0,-20.0}
};
POINT3D Face2[] = {
{-20.0,-20.0,-20.0},
{-20.0,-20.0, 20.0},
{-20.0, 20.0, 20.0},
{-20.0, 20.0,-20.0}
};
POINT3D Face3[] = {
{ 20.0, 20.0, 20.0},
{-20.0, 20.0, 20.0},
{-20.0,-20.0, 20.0},
{ 20.0,-20.0, 20.0}
};
POINT3D Face4[] = {
{ 20.0,-20.0, 20.0},
{ 20.0,-20.0,-20.0},
{ 20.0, 20.0,-20.0},
{ 20.0, 20.0, 20.0}
};
POINT3D Face5[] = {
{ 20.0,-20.0, 20.0},
{-20.0,-20.0, 20.0},
{-20.0,-20.0,-20.0},
{ 20.0,-20.0,-20.0}
};
POINT3D Face6[] = {
{ 20.0, 20.0,-20.0},
{-20.0, 20.0,-20.0},
{-20.0, 20.0, 20.0},
{ 20.0, 20.0, 20.0}
};
POINT3D *Faces[] = {Face1,Face2,Face3,Face4,Face5,Face6};
Rectangle(this->_hdc,this->DrawArea.left,this->DrawArea.top,this->DrawArea.right,this->DrawArea.bottom);
Polygon(_hdc,Faces,6);
/*BeginPath(_hdc);
PolyBezier(Faces,6);
EndPath(_hdc);*/
//Polyline(_hdc,Faces,6);
}
You’re passing in your version of POINT the POINT3D not the POINT from the global namespace. Of the structures are the same just cast. In addition you’re passing in an array of arrays not a single array.
So I suggest you revist the API to see what it needs – something like