CanadianMachines / MachineLib / BezierEnd.h
BezierEnd.h
Raw
/**
 * @file BezierEnd.h
 * @author sriram
 *
 *
 */

#ifndef CANADIANEXPERIENCE_MACHINELIB_BEZIEREND_H
#define CANADIANEXPERIENCE_MACHINELIB_BEZIEREND_H

/**
 * class that defines points on bezier curves
 */
class BezierEnd
{
private:
	///postion of point
	wxPoint2DDouble mPosition;

	///rotation
	double mRotation=0;

	///speed at the point
	double mSpeed=100;
public:

	/// Default constructor
	BezierEnd(){}

	/// Copy constructor (disabled)
	BezierEnd(const BezierEnd &) = delete;

	/// Assignment operator
	void operator=(const BezierEnd &) = delete;

	/**
	 * setter for position
	 * @param x
	 * @param y
	 */
	virtual void SetPosition(double x, double y){mPosition=wxPoint2DDouble(x,y);}

	/**
	 * setter for rotation
	 * @param rotation
	 */
	virtual void SetRotation(double rotation){mRotation=rotation;}

	/**
	 * setter for speed
	 * @param speed
	 */
	virtual void SetSpeed(double speed){mSpeed=speed;}

	/**
	 * getter for position
	 * @return
	 */
	virtual wxPoint2DDouble GetPosition(){return mPosition;}

	/**
	 * getter for rotation
	 * @return
	 */
	virtual double GetRotation(){return mRotation;}

	/**
	 * getter for speed
	 * @return
	 */
	virtual double GetSpeed(){return mSpeed;}
};

#endif //CANADIANEXPERIENCE_MACHINELIB_BEZIEREND_H