Architecture Overview

Application

When the Autograph process is created, a single instance of the Application class is created and accessible with the Autograph.app attribute.

The Application handles all application-wide information about available classes, environment and also settings. It is responsible to create one or multiple Project instance(s) which can run in GUI mode or in the background.

Project

The Project is the main class containing all data related to a single project in Autograph. This is the class on which you will find project-wide functions and get access to any ProjectItem.

Note

Since the Application can have multiple projects opened concurrently, you may find useful to retrieve the project actively focused by the user with Autograph.Application.getActiveProject() .

ProjectItem

Represents any item in the Project Panel. A ProjectItem can contain an Effect, which can be used as a generator (see Autograph.Param.setGeneratorEffect()) on a Param.

Effect

A very generic base-class for anything that contains a set of Param . Generator effect can be set as generator on a Param with Autograph.Param.setGeneratorEffect() . Modifier effect can be added in the ModifierList of a Param using Autograph.Param.getModifiersList() . Generators and Modifiers can be created using the constructore taking a classID string. The classID must be one of the identifiers returned by Autograph.Application.getGeneratorsClassID() or Autograph.Application.getModifiersClassID() .

Param

An abstract base-class for any parameter on an Effect . Any parameter that you can manipulate in the timeline or the properties panel inherits this class. Some Param classes are responsible to store a value (number DoubleParamBase, string StringParamBase, complex objects such as Path2DParam …) and can optionnally give the user an interface to interact with. Some other Param classes are purely meant for the UI and do not store any value. Some Param classes can have child Params, such as Transform2DParam.

Composition

A ProjectItem can contain a Composition. To create a new Composition in the project, use Autograph.Project.createComposition() . The Composition contains a list of Layer, stored from bottom to top (i.e: in reverse order of the UI).

Layer

Each LayerBase class (and its derived classes Layer2D , Layer3D , CameraLayer , LightLayer) is an Effect class and thus contains a set of Param that the user can control.

Panel

Panels are the UI blocks that make up the window workspace, such as the TimelinePanel , PropertiesPanel , ViewerPanel etc….

RenderManager

This object is only accessible through Autograph.Project.getRenderManager() and controls anything related to the render queue and is responsible to start renders.