I have two classes; primatives.h

```
class PS2Sprite
{
public:
PS2Sprite::PS2Sprite();
PS2Sprite::PS2Sprite(const float x, const float y);
PS2Sprite::~PS2Sprite();
virtual void Render(void) const;
virtual void RenderPerspective(void) const;
void MoveTo(const float x, const float y, const float z);
void Rotate(const float angle);
void Rotate(const float angle, const uint8 x, const uint8 y);
protected:
void Initialise(void); // Initialise variables
float m_x, m_y; // position on screen
float m_z; // z depth (big = near)
float m_w, m_h; // width and height
struct Point{
float x, y;
}m_TopLeft, m_BottomLeft, m_TopRight, m_BottomRight;
};
```

The rotate function in primatives.cpp

```
void PS2Sprite::Rotate(float angle)
{
Cmaths.Rotate(&m_TopLeft, angle);
Cmaths.Rotate(&m_BottomLeft, angle);
Cmaths.Rotate(&m_TopRight, angle);
Cmaths.Rotate(&m_BottomRight, angle);
}
```

My maths.h

```
#define Cmaths maths::GetSingleton()
class maths : public CSingleton<maths>
{
public:
maths::maths();
maths::~maths();
void Rotate(struct Point *point, const float angle);
protected:
float oldx, oldy; //store coordinates
};
```

and maths.cpp

```
void maths::Rotate(struct Point *point, float angle)
{
oldx= *point.x;
oldy= *point.y;
*point.x= oldx*Cos(angle)-oldy*Sin(angle);
*point.y= oldx*Sin(angle)+oldy*Cos(angle);
}
```

when I compile I get this error:

primitives.cpp: In method `void PS2Sprite::Rotate(float)':

primitives.cpp:133: no matching function for call to `maths::Rotate (PS2Sprite::Point *, float &)'

maths.h:21: candidates are: void maths::Rotate(Point *, float)

Am I coming at this in completely the wrong way or is it something small I've over looked?