|
Purpose:
|
This class provides an abstract draw primitive interface between the deformable modeling icons and the view-controller.
|
|
|
Derivation:
|
DM_draw_engine : -
|
|
|
Filename:
|
ds/dmicon/dm_draw_engine.hxx
|
|
|
Description:
|
The
DM_draw_engine interface classes provide abstract draw primitive methods to icons
Draw_point and
Draw_polyline. This decouples the icon library from rendering-context specifics, for example, OpenGL or DirectX commands.
|
|
|
Related classes: The draw engine uses the data encapsulated in a
DM_draw_args object for drawing. The
DM_draw_args object is passed through from the original view manager draw request. Icons only obtain concrete
DM_draw_engine objects from the (global)
DM_draw_engine_mgr.
|
|
|
Constructor:
|
protected: DM_draw_engine::DM_draw_engine
();
|
|
|
Default constructor.
|
|
|
|
|
|
Destructor:
|
public: virtual void DM_draw_engine::Lose
()=0;
|
|
|
Lose method for self-destruction.
|
|
|
|
|
|
|
protected: virtual DM_draw_engine::~DM_draw_engine
();
|
|
|
Destructor; use the
Release_this method.
|
|
|
|
|
Methods:
|
public: virtual void*
|
|
|
DM_draw_engine::Customer_cast ();
|
|
|
Casting operator; used for overriding.
|
|
|
|
|
|
|
public: virtual void DM_draw_engine::Draw_marker
(
|
|
|
Spatial_abs_hurler&,
|
// error handler
|
|
|
DS_dmod*,
|
// icon owner ID
|
|
|
int tag,
|
// icon owner ID
|
|
|
const double*,
|
// marker location (xyz)
|
|
|
double,
|
// color (r,g,b)
|
|
|
double,
|
// color (r,g,b)
|
|
|
double,
|
// color (r,g,b)
|
|
|
double,
|
// line width
|
|
|
const DM_def_icon_draw_args&
|
// draw args
|
|
|
) const =0;
|
|
|
Add a marker.
|
|
|
|
|
|
|
public: virtual void DM_draw_engine::Draw_polyline
(
|
|
|
Spatial_abs_hurler&,
|
// error handler
|
|
|
DS_dmod*,
|
// icon owner ID
|
|
|
int tag,
|
// icon owner ID
|
|
|
int,
|
// number of points
|
|
|
const double*,
|
// array of points
|
|
|
double,
|
// color (r,g,b)
|
|
|
double,
|
// color (r,g,b)
|
|
|
double,
|
// color (r,g,b)
|
|
|
double,
|
// line width
|
|
|
const DM_def_icon_draw_args&
|
// draw args
|
|
|
) const =0;
|
|
|
Add a polyline. The color values must be between 0 and 1.
|
|
|
|
|
|
|
public: virtual void DM_draw_engine::Mark_dirty
(
|
|
|
Spatial_abs_hurler&
|
// error handler
|
|
|
)=0;
|
|
|
Notify the draw engine of changes which may affect cached data.
|
|
|
|
|
|
|
public: virtual ADM_draw_engine*
|
|
|
DM_draw_engine::Spatial_cast ();
|
|
|
Casting operator; reserved for
DM_default_icons.
|