DD::Image::ModifyGeo Class Reference

Inherits DD::Image::GeoOp.

List of all members.

Protected Member Functions

 ModifyGeo (Node *node)
void geometry_engine (Scene &scene, GeometryList &out)
virtual void modify_geometry (int obj, Scene &, GeometryList &out)=0

Detailed Description

It's primary task is to make the geometry_engine() call more easy to implement by managing the modified point list prior to and after the engine call. In addition to automatically calling evaluate_transform() to see if the points must be transformed by the object matrix prior to manipulation, ModifyGeo copies the point list from the input so a plugin writer must only need to write a single point loop. The plugin author must at least implement the modify_geometry() method.


Member Function Documentation

void ModifyGeo::geometry_engine ( Scene scene,
GeometryList out 
) [protected, virtual]

Sub-class dependent portion of get_geometry(). This should be implemented on plugins to modify geometry. The default implementation gets the input's points then calls the single cache modify_geometry() on each GeoInfo in the output cache list.

Reimplemented from DD::Image::GeoOp.

References DD::Image::GeoOp::evaluate_transform(), DD::Image::GeoOp::get_geometry(), modify_geometry(), DD::Image::GeometryList::size(), and DD::Image::GeoInfo::validate().

virtual void DD::Image::ModifyGeo::modify_geometry ( int  obj,
Scene ,
GeometryList out 
) [protected, pure virtual]

Single object GeoInfo modify_geometry call so that plugins which apply the same function to all GeoInfos in the output list can just implement this one function. Pure virtual - must be implemented.

Referenced by geometry_engine().