#ifndef _EVAS_3D_OBJECT_EO_H_
#define _EVAS_3D_OBJECT_EO_H_

/**

 */
#define EVAS_3D_OBJECT_CLASS evas_3d_object_class_get()

const Eo_Class *evas_3d_object_class_get(void) EINA_CONST;

/**
 * @def evas_3d_object_change
 *
 * Notify the object regarding its state change.
 * 
 *
 * @param[in] state State that is changed
 * @param[in] ref The Object that caused the change
 *
 */
EAPI void  evas_3d_object_change(Evas_3D_State state, Evas_3D_Object *ref);

/**
 * @def evas_3d_object_type_get
 *
 * Returns the type of the object.
 * 
 *
 *
 */
EAPI Evas_3D_Object_Type  evas_3d_object_type_get(void);

/**
 * @def evas_3d_object_type_set
 *
 * Returns the type of the object.
 * 
 *
 * @param[in] type No description supplied.
 *
 */
EAPI void  evas_3d_object_type_set(Evas_3D_Object_Type type);

/**
 * @def evas_3d_object_dirty_get
 *
 * Returns the status of a particular state of the object.
 * 
 *
 * @param[in] state State whose status is being asked
 *
 */
EAPI Eina_Bool  evas_3d_object_dirty_get(Evas_3D_State state);

/**
 * @def evas_3d_object_update
 *
 * Update request for the object.
 * 
 *
 *
 */
EAPI void  evas_3d_object_update(void);

/**
 * @def evas_3d_object_update_notify
 *
 * Pure virtual update_notify function..
 * Update request for the object.
 * 
 *
 *
 */
EAPI void  evas_3d_object_update_notify(void);

/**
 * @def evas_3d_object_change_notify
 *
 * Pure virtual change_notify function..
 * Update request for the object.
 * 
 *
 * @param[in] state State that is changed
 * @param[in] ref The Object that caused the change
 *
 */
EAPI void  evas_3d_object_change_notify(Evas_3D_State state, Evas_3D_Object *ref);


#endif