Effective AVANGO
AVANGO Type System
Treat Field Containers as Functions
Give Field Containers only one responsibility
Use fieldHasChanged judiciously
Store state in fields
Use fields as input or output
- Only read from input fields
- Only write to output fields
Avoid adding methods to Field Containers
Use the most generic field type possible
This include using SFContainer for almost any class derived from FieldContainer. Exceptions are direct subclasses that act as base classes for a large number of other classes, e.g. the OSG classes in avango.osg.
Reason: AVANGO type interface is dynamic anyway.
Application Structure
Avoid cycles in field connection graph
Avoid changing the field connection graph during evaluate()
Use Containers to modularize field connection graph
Always use *.nodes facility
Familiarize yourself with existing AVANGO modules
Especially avango.display and avango.build.
