# formZ SDK

Description

formZ API Reference v 6.5.0.0. This document contains all the API functions, types, constants, etc., that are available to call or use within a plugin or script.
Some functions, types, and constants are only available in plugins and some are only available in scripts, but many are available in both. The icon denotes it is usable in a plugin, while the icon denotes it is usable in a script.
To use a function, type, or constant within a script, simply verify it is available to scripts. To use a function, type, or constant within a plugin, the appropriate API header file (listed with each description) needs to be included by the plugin, and also, for functions, the function set in which it belongs needs to be acquired by the plugin. (See the Plugin Manager (FZPL) section).
All the functionality provided by the formZ API is divided into two camps: the Callback Reference, and the API Reference. The Callback Reference contains descriptions of those functions that formZ calls, and that a plugin or script "fills in" with the algorithm to perform the task at hand. That is, formZ asks each extension to do certain tasks, and the callback functions provide the functionality behind those tasks. For example, formZ will ask a renderer plugin to "render" the scene by calling the plugin renderer's callback function fz_rndr_cbak_image_disp. The plugin renderer is in charge of supplying the functionality of what it means to render the scene. Or formZ may ask the renderer to do something as simple as providing its name, by calling the renderer's fz_rndr_cbak_name callback function.
The API Reference section contains descriptions of functions that a plugin or script calls to perform certain tasks, query information about an object, perform editing operations, create objects, lights, views, manipulate objects, lights, views, surface styles, texture maps, etc., or perform thousands of other operations that formZ can do.
These sections provide a very comprehensive and powerful way to customize and automate formZ. You can extend formZ to include new renderers, attributes, object types, shaders, tools, commands, palettes, etc. Also virtually, every conceivable thing that can be done to something within formZ in a manual way can be customized and/or automated by doing it through API function calls.