An abstract base class (i.e. a class containing one or more abstract virtual functions) is called an interface in the 3ds Max SDK documentation. In 3ds Max interfaces are used to expose services from 3ds Max to plug-ins (called the core interfaces).
Core interfaces are interfaces to a singleton object that exposes services provided by 3ds Max. The most recent version which should be used in new plug-ins is the COREInterface16
class. A pointer to this class can be relieved using the function GetCOREInterface16()
. The most recent core interface version is also returned by GetCoreInterface()
.
Plug-in interfaces are the base classes that a plug-in implements in order to expose functionality to 3ds Max. The most important plug-in base classes are derived from Animatable (see the list of Plug-in Base Classes). Additional interfaces such as IPainterInterface_V5
can also be implemented in order to expose additional functionality to 3ds Max.
The plug-in interfaces can be broken up roughly into two categories:
Animatable
derived classes. E.g. Control
, Modifier
, and GeomObject
. The animatable derived classes are usually not referred to as interfaces in the documentation, except in the context of the function Animatable::GetInterface()
.BaseInterface
derived classes. E.g. IPainter
, IMaterial
, and IGeometryChecker
. When writing objects that support interfaces we recommend that you derive from FPMixinInterface
so that you can provide function publishing functionality either immediately or in the future. For more information see the topic Function Publishing.Both classes derive from the InterfaceServer
base class which provides an interface querying mechanism.