class CActor
	virtual void Action(float delta);
	virtual void Draw(llgfx_id id);
	virtual void SetPos(float x, float y);
	virtual void SetPos(int x, int y);
	int	 GetXPos() { return (int)m_position.m_u; };
	int	 GetYPos() { return (int)m_position.m_v; };
	virtual void TestCollision(CActor *actor_with);
	virtual void Collision_Player(CActor *player );
	virtual	void Collision_Shot(CActor *player, CActor *shot);
	virtual void AddScore(int score);
	virtual bool Message(const char *Type);
	virtual void SendMsg(const char *msg);
	virtual CActor * IsActor( const char *name);	// returned sich selbst wenn name entspricht
	virtual void SetDirectionD( float deg );
	virtual void SetDirectionR( float rad );
	virtual void InitTarget(float time, float target_x, float target_y );
	virtual void InitTarget(float time, CVec2f &targetpos );
	virtual void InitMove(float x_velocity, float y_velocity );
	virtual void InitMove(CVec2f &targetpos, float velocity );
	virtual bool MoveToTarget(float delta);	// returned true wenn target erreicht
	virtual bool MoveToTarget(float delta, CVec2f ¤t_pos, CVec2f &target_pos, CVec2f &direction);
	virtual void Move(float delta);
	virtual void GetBoundingRect(llgfx_sRECT *rect);
	virtual void RotateModel(float angle);	// winkel in radians
	virtual void RotateLocal(float angle);	// winkel in radians
	float GetAngleToPoint(float x, float y);
	void InitTargetAngleD(float time, float new_angle);	// newAngle in degree
	void InitTargetAngleR(float time, float new_angle);	// newAngle in radians
	float GetViewAngleD();
	float GetViewAngleR();
	virtual bool RotateToTargetAngle(float delta);	// return true wenn target angle erreicht
	void SetViewAngleD( float degree );
	void PlusViewAngleD( float degree );
	void MinusViewAngleD( float degree );
	void PlusViewAngleR( float radians );
	void MinusViewAngleR( float radians );
	void SetViewAngleR( float radians );
	void AddChild(CActor * actor );
	void SetParent(CActor * actor );
	void RemoveParent();
	void RemoveChild(CActor * actor);