# Tool Types

In order to make development of new Tools quick, easy and relatively boilerplate-free, all Tools extend a base class, which provides the functionality required to integrate seamlessly into the cornerstoneTools framework.

Base classes have two types of methods of interest to Tool developers:

  • @abstract methods: These methods must be implemented by subclasses.
  • @virtual methods: These methods have default functionality, but may be overridden by subclasses to alter functionality.

Check the api docs (opens new window) for full documentation of the api.

{% include "./base-tool.md" %}

{% include "./base-annotation-tool.md" %}

{% include "./base-brush-tool.md" %}

{% include "./segmentation-tool.md" %}