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.