Renderers Interface
All input renderer in the Art Engine implement the RendererInterface<RendererDataType>
interface. This interface defines the basic structure that an renderer plugin should follow.
interface RendererInterface<RendererDataType> {
init: (props: RendererInitPropsInterface) => Promise<void>;
render: () => Promise<ItemsRenders<RendererDataType>>;
}
RendererInterface<RendererDataType>
: This interface outlines the structure that renderer plugins should follow. It's parameterized with a generic typeRendererDataType
which represents the type of data that the renderer plugin will produce.init(props: RendererInitPropsInterface) => Promise<void>
: This method initializes the renderer plugin. It takes an object of typeRendererInitPropsInterface
as an argument, containing the necessary initialization properties. The method returns a promise that resolves when the initialization is complete.render() => Promise<ItemsRenders<RendererDataType>>
: This method is responsible for performing the rendering process. It returns a promise that resolves to an object of typeItemsRenders<RendererDataType>
, which is the rendered data produced by the plugin.
interface ItemsRenders<RenderDataType> {
[itemUid: string]: ItemPropertiesInterface<RenderDataType>[];
}
ItemsRenders<RenderDataType>
: This is a data structure that represents the renders produced by a renderer plugin. It's an object where the keys are item UIDs (unique identifiers) and the values are arrays of render data of type RenderDataType
. This structure allows you to store multiple render data sets associated with different items.
interface RendererInitPropsInterface {
seed: string;
cachePath: string;
attributesGetter: ItemsDataManager["getAttributes"];
}
RendererInitPropsInterface
: This interface defines the properties required to initialize a renderer plugin. It includes the following properties:
seed
: A string value that serves as a seed for deterministic behavior. Similar to the input plugins, this can be used to ensure consistent results when rendering.cachePath
: A string representing the path where the renderer plugin can store temporary cache data. This can be used to store any intermediate files or data that the exporter might need to use.attributesGetter
: A reference to a function calledgetAttributes
from theItemsDataManager
. This function is used to access the attributes data generated by the generators.