Package

  • LXe_INCOMPATIBLE_SCENE

ILxSceneEvalListener

class ILxSceneEvalListener

Public Functions

void ChannelValue(LXtObjectID self, LXtObjectID item, unsigned index)

The Scene Evaluation Listener sends events related to the evaluation of the scene. The ChannelValue change signals that a channel value has changed. This is called whenever any evaluated channel value changes.

void ChannelPreValue(LXtObjectID self)

It can be useful to know about a series of related evaluated channel changes. These functions wrap the ChannelValue method call to signal the start and end of a series of changes.

void ChannelPostValue(LXtObjectID self)

ILxSceneEvalListener1

class ILxSceneEvalListener1

Public Functions

void ChannelValue(LXtObjectID self, LXtObjectID item, unsigned index)

The Scene Evaluation Listener sends events related to the evaluation of the scene. Currently, this is only used for signaling changes to evaluated channel values, and is called any time an evaluated channel value changes.

ILxSceneItemListener1

class ILxSceneItemListener1

Public Functions

void SceneCreate(LXtObjectID self, LXtObjectID scene)

Version 1, used only by recoil. Should be removed for 601.

void SceneDestroy(LXtObjectID self, LXtObjectID scene)
void SceneFilename(LXtObjectID self, LXtObjectID scene, const char *filename)
void SceneClear(LXtObjectID self, LXtObjectID scene)
void ItemPreChange(LXtObjectID self, LXtObjectID scene)
void ItemPostDelete(LXtObjectID self, LXtObjectID scene)
void ItemAdd(LXtObjectID self, LXtObjectID item)
void ItemRemove(LXtObjectID self, LXtObjectID item)
void ItemParent(LXtObjectID self, LXtObjectID item)
void ItemChild(LXtObjectID self, LXtObjectID item)
void ItemAddChannel(LXtObjectID self, LXtObjectID item)
void ItemLocal(LXtObjectID self, LXtObjectID item)
void ItemName(LXtObjectID self, LXtObjectID item)
void ItemSource(LXtObjectID self, LXtObjectID item)
void ItemPackage(LXtObjectID self, LXtObjectID item)
void ChannelValue(LXtObjectID self, const char *action, LXtObjectID item, unsigned index)

ILxSceneItemListener2

class ILxSceneItemListener2

Public Functions

void SceneCreate(LXtObjectID self, LXtObjectID scene)
void SceneDestroy(LXtObjectID self, LXtObjectID scene)
void SceneFilename(LXtObjectID self, LXtObjectID scene, const char *filename)
void SceneClear(LXtObjectID self, LXtObjectID scene)
void ItemPreChange(LXtObjectID self, LXtObjectID scene)
void ItemPostDelete(LXtObjectID self, LXtObjectID scene)
void ItemAdd(LXtObjectID self, LXtObjectID item)
void ItemRemove(LXtObjectID self, LXtObjectID item)
void ItemParent(LXtObjectID self, LXtObjectID item)
void ItemChild(LXtObjectID self, LXtObjectID item)
void ItemAddChannel(LXtObjectID self, LXtObjectID item)
void ItemLocal(LXtObjectID self, LXtObjectID item)
void ItemName(LXtObjectID self, LXtObjectID item)
void ItemSource(LXtObjectID self, LXtObjectID item)
void ItemPackage(LXtObjectID self, LXtObjectID item)
void ChannelValue(LXtObjectID self, const char *action, LXtObjectID item, unsigned index)
void LinkAdd(LXtObjectID self, const char *graph, LXtObjectID itemFrom, LXtObjectID itemTo)

Graph events, added in 501 SP1.

void LinkRemBefore(LXtObjectID self, const char *graph, LXtObjectID itemFrom, LXtObjectID itemTo)
void LinkRemAfter(LXtObjectID self, const char *graph, LXtObjectID itemFrom, LXtObjectID itemTo)
void LinkSet(LXtObjectID self, const char *graph, LXtObjectID itemFrom, LXtObjectID itemTo)
void ChanLinkAdd(LXtObjectID self, const char *graph, LXtObjectID itemFrom, unsigned chanFrom, LXtObjectID itemTo, unsigned chanTo)
void ChanLinkRemBefore(LXtObjectID self, const char *graph, LXtObjectID itemFrom, unsigned chanFrom, LXtObjectID itemTo, unsigned chanTo)
void ChanLinkRemAfter(LXtObjectID self, const char *graph, LXtObjectID itemFrom, unsigned chanFrom, LXtObjectID itemTo, unsigned chanTo)
void ChanLinkSet(LXtObjectID self, const char *graph, LXtObjectID itemFrom, unsigned chanFrom, LXtObjectID itemTo, unsigned chanTo)

ILxSceneItemListener

class ILxSceneItemListener

Public Functions

void SceneCreate(LXtObjectID self, LXtObjectID scene)
void SceneDestroy(LXtObjectID self, LXtObjectID scene)
void SceneFilename(LXtObjectID self, LXtObjectID scene, const char *filename)
void SceneClear(LXtObjectID self, LXtObjectID scene)
void ItemPreChange(LXtObjectID self, LXtObjectID scene)
void ItemPostDelete(LXtObjectID self, LXtObjectID scene)
void ItemAdd(LXtObjectID self, LXtObjectID item)
void ItemRemove(LXtObjectID self, LXtObjectID item)
void ItemParent(LXtObjectID self, LXtObjectID item)
void ItemChild(LXtObjectID self, LXtObjectID item)
void ItemAddChannel(LXtObjectID self, LXtObjectID item)
void ItemLocal(LXtObjectID self, LXtObjectID item)
void ItemName(LXtObjectID self, LXtObjectID item)
void ItemSource(LXtObjectID self, LXtObjectID item)
void ItemPackage(LXtObjectID self, LXtObjectID item)
void ChannelValue(LXtObjectID self, const char *action, LXtObjectID item, unsigned index)
void LinkAdd(LXtObjectID self, const char *graph, LXtObjectID itemFrom, LXtObjectID itemTo)
void LinkRemBefore(LXtObjectID self, const char *graph, LXtObjectID itemFrom, LXtObjectID itemTo)
void LinkRemAfter(LXtObjectID self, const char *graph, LXtObjectID itemFrom, LXtObjectID itemTo)
void LinkSet(LXtObjectID self, const char *graph, LXtObjectID itemFrom, LXtObjectID itemTo)
void ChanLinkAdd(LXtObjectID self, const char *graph, LXtObjectID itemFrom, unsigned chanFrom, LXtObjectID itemTo, unsigned chanTo)
void ChanLinkRemBefore(LXtObjectID self, const char *graph, LXtObjectID itemFrom, unsigned chanFrom, LXtObjectID itemTo, unsigned chanTo)
void ChanLinkRemAfter(LXtObjectID self, const char *graph, LXtObjectID itemFrom, unsigned chanFrom, LXtObjectID itemTo, unsigned chanTo)
void ChanLinkSet(LXtObjectID self, const char *graph, LXtObjectID itemFrom, unsigned chanFrom, LXtObjectID itemTo, unsigned chanTo)
void ItemTag(LXtObjectID self, LXtObjectID item)

Item Tag events, added in 901.

void ItemRemoveChannel(LXtObjectID self, LXtObjectID item)

User Channel events, added in 901. This function is triggered whenever a channel is removed. It is the opposite of the ItemAddChannel event.

void ItemChannelName(LXtObjectID self, LXtObjectID item, unsigned int index)

This function is triggered whenever the name or the username of a channel changes.

void ItemChannelDefault(LXtObjectID self, LXtObjectID item, unsigned int index)

This function is triggered whenever the default value of a channel is modified.

void ItemChannelMinMax(LXtObjectID self, LXtObjectID item, unsigned int index)

This function is triggered whenever the min/max of a channel is modified.

void ItemChannelType(LXtObjectID self, LXtObjectID item, unsigned int index)

This function is triggered whenever a channel type is modified.

ILxSceneLoaderTarget

class ILxSceneLoaderTarget

Public Functions

LxResult SetRootType(LXtObjectID self, const char *typeName)

Loading a scene sets the target info to the root item type and some flags.

LxResult SetFlags(LXtObjectID self, unsigned flags)
LxResult ClearFlags(LXtObjectID self, unsigned flags)

LXtSceneTarget

struct st_LXtSceneTarget

The following structure is used to store data during cinema loading. The item type member indicates the root item type for the cinema, if any. For example, this might be CIT_MESH when loading objects or CIT_CLIP when loading images. When loading a cinema it is sometimes necessary for the cinema to be parented to another cinema.

Public Members

int itemType
int flags

LXf_SCENETARG_SUBCINE

Flags are all initially clear, but can be set to indicate status of the load.

  • LXf_SCENETARG_NODEFAULTS

  • LXf_SCENETARG_CINECHANGED

  • LXf_SCENETARG_GONATIVE

ILxScene1

class ILxScene1

Public Functions

LxResult Lookup(LXtObjectID self, const char *id, void **ppvObj)

The ILxScene1 interface exposes a list of ILxItem1 objects, which can be accessed by name or index.

  • Lookup Lookup an item by unique identifier (!?)

  • ItemCount Count items of given type. If type is NULL, all items are counted.

  • ItemByIndex Lookup item by index

  • ItemByName Lookup item by name. Type is ignored.

  • NewItem Create a new item of the requested type.

int ItemCount(LXtObjectID self, const char *type)
LxResult ItemByIndex(LXtObjectID self, const char *type, unsigned int index, void **ppvObj)
LxResult ItemByName(LXtObjectID self, const char *type_is_ignored, const char *name, void **ppvObj)
LxResult NewItem(LXtObjectID self, const char *type, void **ppvObj)
void GetMeta(LXtObjectID self, void **xobj)

Metadata can do good stuff… presumably.

void SetMeta(LXtObjectID self, LXtObjectID xobj)
const char *GetTag(LXtObjectID self, LXtID4 type)

Scenes can be tagged.

void SetTag(LXtObjectID self, LXtID4 type, const char *tag)
LxResult Setup(LXtObjectID self, void **ppvObj)

This stuff remains opaque. NOTE: would be better to handle action through a separate interface defined in eval.

LxResult Edit(LXtObjectID self, void **ppvObj)
LxResult Action(LXtObjectID self, double time, void **ppvObj)
void ListenAction(LXtObjectID self, LXtObjectID xobj)
LxResult LoadImage(LXtObjectID self, const char *name, int *flags, LXtObjectID monitor, void **ppvObj)

LXf_LOADIMG_SEARCH_PATHS

Loading images requires some special tricks. They must be created as sub-cinemas, and in addition we want the option to ask the user for a replacement image, and to search along the system search paths. NOTE: this should be done through a service.

  • LoadImage Load the image specified by the path supplied. The two-way ‘flags’ argument should be set with the combination of LXf_LOADIMG_ flags specifying what steps may be taken to find the image. On successful return, the flags will be set to indicate what steps were actually taken, in this way the client can determine whether the image loaded differs from that specified due either to a user replacement, or to expansion to an absolute path.

  • LXf_LOADIMG_USER_REPLACE

ILxItem1

class ILxItem1

Public Functions

const char *Type(LXtObjectID self)

NOTE: perhaps access channel list through ILxAttributes interface. Could return default values.

  • FindXfrmChannel This returns an ILxItem1ID and channel index given a channel name. If the transform item does not yet exist, it will be created and returned. The client is is responsible for releasing the item.

LxResult TestType(LXtObjectID self, const char *type)
const char *Ident(LXtObjectID self)
const char *GetTag(LXtObjectID self, unsigned int tag)
void SetTag(LXtObjectID self, unsigned int type, const char *tag)
int SubItemCount(LXtObjectID self)
LxResult SubItemByIndex(LXtObjectID self, unsigned int index, void **ppvObj)
const char *Name(LXtObjectID self)
void SetName(LXtObjectID self, const char *name)
void Root(LXtObjectID self, void **ppvObj)
LxResult Parent(LXtObjectID self, void **ppvObj)
void SetParent(LXtObjectID self, LXtObjectID parent, int pos)
int ChannelCount(LXtObjectID self)
const char *ChannelName(LXtObjectID self, unsigned int index)
LxResult ChannelIndex(LXtObjectID self, const char *name, unsigned int *index)
LxResult FindXfrmChannel(LXtObjectID self, const char *name, unsigned int *index, void **ppvObj)
  • LXe_GRAPH_CYCLIC

ILxPackage

class ILxPackage

Public Functions

LxResult SetupChannels(LXtObjectID self, LXtObjectID addChan)

Packages are defined by a server interface that describes the channels for the package and adds instances to items. The SetupChannels() method is called once when the package is initialized to define the set of channels common to all item with this package. The Attach() method is called for each item to assign as the package is being attached, and should return an object implementing ILxPackageInstance.

LxResult Attach(LXtObjectID self, void **ppvObj)
LxResult TestInterface(LXtObjectID self, const LXtGUID *guid)
LxResult PostLoad(LXtObjectID self, LXtObjectID scene)
LxResult CollectItems(LXtObjectID self, LXtObjectID collection, unsigned mode)

LXsPKG_SUPERTYPE

Package servers can declare their supertype as a tag. The presense of this tag promotes a package to a full item type. For root types with no supertype the tag can be set to “.”.


LXsPKG_ITEMLIST_HIDE

Package servers may define their own graphs. This is a string of graph names separated by semicolons. The name may also be followed by a plus-sign and any of these single letter flags:

  • i Item graph, the default.

  • c Channel graph, mutually-exclusive with item.

  • t Tree rules, enforces that all elements in the graph have a single ancestor.

  • a Acyclic rules, enforces that there are no cycles in the graph. Superset of tree.

  • N, X Copy rules. Normally when items are copied their links are copied too. If ‘N’ is set then no copying of links is done, and the owner of the graph is expected to manage the links themself. If ‘X’ is set then links are copied between members of a group copy, but not outside the group.

By default, the item list shows all locator items, but the LXsPKG_ITEMLIST_HIDE can be used to hide them from users. The LXsPKG_ITEMLIST_ATTRIBUTE tag can be used to include the item as an attribute of the parent’s item.

  • LXsPKG_ITEMLIST_ATTRIBUTE

  • LXsPKG_GRAPHS


LXsPKG_CREATECMD

Item type packages can suppress the normal ability to create from scratch. If the item type requires a special command to create it, set this tag to “-“.

  • LXs_PKG_NODIRECTCREATE


LXsPKG_CONVERTCMD

Item type packages can also suppress the ability to allow another type to convert to them. This is usually set in the same places as NODIRECTCREATE, but not always (e.g. static meshes)

  • LXs_PKG_DIRECTCONVERTOK


LXsPKG_IS_MASK

Package servers can also be tagged as surface or mask item types. The presense of this tag is enough, the value has no meaning.


LXsPKG_SHADER_CONTEXT

Package servers can also be tagged with their shader context. By default the context is the render item


LXsPKG_SHADER_NODE

We can also tag the serves as shader nodes, this is generally the case for all textures and shader effects


LXsPKG_CREATE_INDIRECT

Package servers can also be tagged as surface or mask item types. The presense of this tag is enough, the value has no meaning.


LXsPKG_IS_COREVOLUME

Package servers can also be tagged as internal (core) MODO volumes to differentiate volumetric items from plugins and core. The presense of this tag is enough, the value has no meaning.


LXsPKG_NONEVALREAD

Package servers can also be tagged as allowing reads of non-evaluated channels. When this tag is present for a surface item, the surface is allocated using the channel read for the current state if deformers are not enabled, and the current evaluation context if they are. Without the tag, surfaces will always be allocated for the current evaluation context. The presense of this tag is enough, the value has no meaning.

ILxAddChannel

class ILxAddChannel

Public Functions

LxResult NewChannel(LXtObjectID self, const char *name, const char *type)

Channels are added to packages using an IlxAddChannel interface. The NewChannel() method starts a channel definition, and the rest of the methods qualify it until the next channel is started.

LxResult SetGradient(LXtObjectID self, const char *inType)

If the base type for the channel is floating point, then the channel can be made a gradient by calling this function. The gradient will have the base type as output and this type as input.

LxResult SetStorage(LXtObjectID self, const char *stType)

If the base type for the channel is numeric then actions will be able to store animated values for it. Likewise string channels can also have values stored in the action, albeit constant. All other types are assumed to evaluation channels only that is their values are only set during evaluation, not stored in actions. Calling this method sets the storage type of the channel, which is the type of value to be stored in the action, and can be different from the evaluation type.

LxResult SetVector(LXtObjectID self, const char *vecType)

Setting the vector type to one of the LXsCHANVEC defines will cause this one channel definition to create multiple channels comprising the vector.

LxResult SetDefault(LXtObjectID self, double defFlt, int defInt)

Numeric defaults can be set easily with these two methods.

LxResult SetDefaultVec(LXtObjectID self, const double *defVec)
LxResult SetHint(LXtObjectID self, const LXtTextValueHint *hint)

Text hints are described in detail in their documentation. There is one important difference in handling min/max for angle channels (and only angle channels): they are specified as degrees*10000 instead of radians*10000. This allows for accurate representation of 45 degrees and similar angles. Other places that use text hints (like commands) have access to another mechanism to set min/max that is not yet available to channels, so they don’t require this special case.

LxResult SetUserHint(LXtObjectID self, const LXtTextValueHint *hint)
LxResult SetDefaultObj(LXtObjectID self, void **ppvObj)

Default values for non-numeric storage channels can also be set by getting the value object for the default.

void SetInternal(LXtObjectID self)

This marks the channel as internal, hiding it from the user.

  • LXsCHANVEC_SCALAR

  • LXsCHANVEC_XY

  • LXsCHANVEC_XYZ

  • LXsCHANVEC_RGB

  • LXsCHANVEC_RGBA

  • LXsCHANVEC_UV

  • LXsCHANVEC_UVW

ILxAddChannel1

class ILxAddChannel1

This interface was retired in 10.2.

Public Functions

LxResult NewChannel(LXtObjectID self, const char *name, const char *type)
LxResult SetGradient(LXtObjectID self, const char *inType)
LxResult SetStorage(LXtObjectID self, const char *stType)
LxResult SetVector(LXtObjectID self, const char *vecType)
LxResult SetDefault(LXtObjectID self, double defFlt, int defInt)
LxResult SetDefaultVec(LXtObjectID self, const double *defVec)
LxResult SetHint(LXtObjectID self, const LXtTextValueHint *hint)
LxResult SetDefaultObj(LXtObjectID self, void **ppvObj)
void SetInternal(LXtObjectID self)

ILxItemCollection

class ILxItemCollection

Public Functions

LxResult Test(LXtObjectID self, LXtObjectID item)

Item collections are sets of items that can be expanded to include related items.

  • Test Test if an item is part of the collection

  • Count, ByIndex Enumerate through the items in the collection of a certain type.

  • Add Add an item to the collection.

LxResult Count(LXtObjectID self, int type, unsigned *count)
LxResult ByIndex(LXtObjectID self, int type, unsigned index, void **ppvObj)
LxResult Add(LXtObjectID self, LXtObjectID item)

LXiCOLLECT_NONE

Packages can manipulate collections with their CollectItems() method. The package then adds other items based on the mode.

  • NONE Can be used where a collection mode is used but none desired.

  • IMPORT Add items that should also be imported if the collection is an import. Note that this same collection is also used for export, because an export is an import when viewed from the other side.

  • DEL_SHALLOW Add items that must also be deleted if the collection is a deletion. This is a shallow delete and should leave any items that the user might still want.

  • DEL_DEEP Add items that can also be deleted if the collection is a deletion. This is a deep delete, so we want to get rid of anything that would be superfluous once the main items are deleted.

  • INSTANCES This just gets all the instances of any items in the collection. The packages aren’t involved in this one; it’s a core feature.

  • LXiCOLLECT_IMPORT

  • LXiCOLLECT_DEL_SHALLOW

  • LXiCOLLECT_DEL_DEEP

  • LXiCOLLECT_INSTANCES

  • LXxCOLLECT_IS_DELETE

ILxPackageInstance

class ILxPackageInstance

Public Functions

LxResult Initialize(LXtObjectID self, LXtObjectID item, LXtObjectID super)

The implementation of a package (or item type) is a package instace object. These are allocated by the Attach() method of the package interface, and may optionally implement this interface to be informed of changes to the item. N5: init and cleanup are not really necessary. The arguments to init can be sent to attach, and cleanup can be done in instance destroy.

  • Initialize This is called when package is attached to the item. The item is passed, and for item types with supertypes the package instance for the supertype package is also passed. The item is not yet part of the scene, so any complex processing should wait until the Newborn() or Loaded() methods.

  • SynthName This allows the package to set the synthetic name for an item with no explicitly set user name. Return NOTIMPL to get default behavior.

  • DupType Returns the item type code to use when an item of this type is instanced. Return zero to use the same item type.

  • TestParent Can return LXe_FALSE to disallow this item from being parented to the candidate parent.

  • Newborn, Loading One of these is called (depending on how the item was created) after the item has been added to the scene. For item duplication or instancing the Newborn() method gets the original item. This is only called the first time, and so only undoable actions should be performed.

  • AfterLoad Called after load (or import) of the scene is complete.

  • Add Called after item is added to the scene. This will be called the first time and any subsequent times caused by undos.

  • Remove Called as the item is being removed from the scene. This will be called the first time and any subsequent times caused by undos.

  • Doomed Called while the item is still part of the scene, but is destined to be destroyed. This may allow the item to clean up any links or related items. This is only called the first time so should make changes that can be undone.

  • Cleanup Called just before deletion.

void Cleanup(LXtObjectID self)
LxResult SynthName(LXtObjectID self, char *buf, unsigned len)
unsigned DupType(LXtObjectID self)
LxResult TestParent(LXtObjectID self, LXtObjectID item)
LxResult Newborn(LXtObjectID self, LXtObjectID original, unsigned flags)
LxResult Loading(LXtObjectID self)
LxResult AfterLoad(LXtObjectID self)
void Doomed(LXtObjectID self)
LxResult Add(LXtObjectID self)
LxResult Remove(LXtObjectID self)
  • LXfNEWBORN_REPLACE

ILxAssemblyAlias

class ILxAssemblyAlias

The assembly alias allows one item type to act as an alias for an alias. This interface is added to any package that can act as an alias for an assembly. The assembly alias interface is relatively simple; when an assembly alias is created, the test function is called to see if the operation is allowed. If it is, the alias is created and the configure function is called to perform any required setup. When the properties of the assembly change, the configure will be called again, describing the change.

Public Functions

LxResult Test(LXtObjectID self, LXtObjectID assembly, LXtObjectID other)

The test function is called with two items; the assembly and item within the assembly that provides some unique functionality for the assembly. The function should return LXe_TRUE if the assembly can be aliased by this AssemblyAlias, and LXe_FALSE if it cannot.

LxResult Configure(LXtObjectID self, LXtObjectID assembly, LXtObjectID other, LXtObjectID alias, const unsigned int change)
LxResult SuperType(LXtObjectID self, LXtItemType *type)

The SuperType function should return the supertype of the item that will be created for the alias. For example, if the assembly alias intends to act like a channel modifier, the function should return the chanmodify supertype.

LxResult Flags(LXtObjectID self, unsigned int *flags)

LXf_ALIAS_ALIAS

The Configure function is used for sending events to the alias, allowing it to configure it’s properties, and initialize any state.

  • ALIAS The ALIAS event is sent when the item is initially aliased. This should only be sent once when the alias is first created and can be used for any initial setup.

  • UNALIAS The UNALIAS event is sent when the alias is about to be destroyed. This should only be sent once when the alias is removed or deleted, and can be used for any final cleanup.

  • CHANNELS The CHANNELS event is sent whenever the state of channels on the alias has changed in some way. This could be channels being added, removed, or the hints on the channel changing that define the username, min, max…etc.

  • LOADPRESET The LOADPRESET event is sent when the assembly alias is loaded from a preset. The function can do whatever setup is needed to integrate the loaded alias item into the scene.

  • LXf_ALIAS_UNALIAS

  • LXf_ALIAS_CHANNELS

  • LXf_ALIAS_LOADPRESET


LXf_ALIAS_NEEDSOURCE

The Flags function is called to query the assembly alias for flags.


LXi_CIT_GROUP

Some item type codes are needed for the scene loading interface. These MUST keep in sync with the CIT_ definitions!

  • LXi_CIT_CLIP

  • LXi_CIT_LOCATOR

  • LXi_CIT_MESH

  • LXi_CIT_LIGHT

  • LXi_CIT_CAMERA

  • LXi_CIT_INSTANCE

  • LXi_CIT_T_LOC

  • LXi_CIT_RENDER

  • LXi_CIT_ENVIRON

  • LXi_CIT_BACKDROP

  • LXi_CIT_TLAYER

ILxPackageInstance1

class ILxPackageInstance1

Public Functions

LxResult Initialize(LXtObjectID self, LXtObjectID item, LXtObjectID super)
void Cleanup(LXtObjectID self)
LxResult SynthName(LXtObjectID self, char *buf, unsigned len)
unsigned DupType(LXtObjectID self)
LxResult TestParent(LXtObjectID self, LXtObjectID item)
LxResult Newborn(LXtObjectID self, LXtObjectID original)
LxResult Loading(LXtObjectID self)
LxResult AfterLoad(LXtObjectID self)
void Doomed(LXtObjectID self)

ILxPackage1

class ILxPackage1

Public Functions

LxResult SetupChannels(LXtObjectID self, LXtObjectID addChan)
LxResult Attach(LXtObjectID self, void **ppvObj)
LxResult TestInterface(LXtObjectID self, const LXtGUID *guid)
LxResult PostLoad(LXtObjectID self, LXtObjectID scene)