ITool interface overview

File         : API\core\tools\ITool.h
Namespace    : core::tools
Included by  : zmodeler.h

Description

Interface that represents a tool. Each tool has a layout which is used by ZModeler when loading tools and apply function that allows to apply a tool. Classes that implement this interface have to be exported from a library with ZM_CLASS_TOOL class marker, so ZModeler can handle this tool properly.

It's recommended to inherit from helper classes implementation declared in file helpers/layout.h. Thus, the majority of tool-relatead and layout-realyed functions are already implemented.

Interface methods

requires Provides set of tool requirements flags.
getLayout Provides tool layout information as a core::layout::ILayout interface. Actually, each tool provides one if it's derived implementations (ILayoutCommandBar, ILayoutFloader etc.)
getLibrary Provides tool's ILibrary interface.
setLibrary Sets tool's ILibrary interface.
apply The primary tool's function. It's purpose is to apply the tool to supplied data subset.
done Notifies tool that zmodeler has done with it (interrupt or new tool was selected)

Interface-collection

class CToolCol : public ZUnknown,
      public ZIntrCollection<ITool>

CToolCol follows semantic of interfaces (includes references count via AddRef/Release, but does not provide any interfaces via QueryInterface) and follows semanic of interfaces collection template.

See Also:
overview of namespace core::tools
IModeler::getToolsSelection method