Autodesk



Your Ad Here


Release Notes Limitations > General limitations

OpenModel and OpenAlias limitations

Limitations related to OpenModel and OpenAlias.

UNIX-style pathnames are typically used in this section. For Windows paths, use backslashes (\) instead of slashes (/), starting at the drive and directory where the AliasStudio product is installed.

General information

General limitations

windows

Some general limitations include:

windows

Some general limitations from previous releases include:

windows

For the old blind data interface, special programming is required for API code that will run on both Windows and UNIX platforms and share blind data.

Byte ordering is reversed on the Windows platform when compared to IRIX. As a result, swapping macros are needed to orient blind data correctly. Individual types such as float, double, long etc. need to be swapped.

For more information, refer to the online OpenModel documentation.

This problem cannot be currently fixed within the API, because the API has no knowledge of the structures that API applications are using to store blind data.

windows

The AlPixFile class does not support GIF files.

windows

For the old blind data interface, using the C++ new and delete functions to create and destroy memory for blind data can lead to program errors. AliasStudio and OpenModel use malloc() and free() for its blind data memory creation and destruction routines. Problems can occur if the blind data has been created with the new command.

There are several cases where AliasStudio or OpenModel need to remove or re-create blind data memory storage during normal operations. For example, if a delete all operation is done, all blind data is removed. Also, if blind data is saved in the wire file, when the file is read in, the blind data storage is re-created.

windows

When you are retrieving files, the universe's blind data may get obscured because two blind data packets with the same user type have been attached to the universe.

To see two data packets with the same user type, you must remove the first one, and the second one will then be visible. Try to avoid using multiple packets with the same IDs. The order in which these packets are returned by the blindData() methods is undefined.

windows

AliasStudio and the API do not handle surface form the same way.

After AliasStudio builds a closed surface, the Information window will report that the surface is open. For efficiency, AliasStudio does not keep track of the closed state of a surface.

Use the API methods AlSurface::vForm() or uForm() to test the points of a surface to determine if it is closed or not.

windows

NURBS curves and surfaces are not parameterized from 0 to 1.

You must retrieve the knot vector for any geometry and use the minimum and maximum knot values as the limits of parameterization for the geometry.

windows

The firstShader() methods currently return the last shader that was evaluated.

Copying shaders from one object to another will reverse the shader list. (Write out the SDL to illustrate this behavior.) This behavior will lead to problems when layered shaders are used, because the order of the shaders will be incorrect.

Cache the shader list and add the shaders to the new object starting at the tail of the list. (Please keep in mind that if we fix this bug in future releases, this solution will cause the list to be in the wrong order again.)

windows

The AlSettable::addToSet() method incorrectly returns status values for sObjectInAnotherSet and sObjectInExclusiveSet situations.

Detect these two conditions by traversing the set lists in the universe before calling ::addToSet().

windows

If per polygon textures are being used in a polyset, then the AlPolygon::st() method returns a different value than the AlPolysetVertex::st() method, which does not take into account whether per polygon textures are on.

windows

Plug-ins are provided on an AS-IS basis.

In the directory $ALIAS_LOCATION/ODS/, there are a number of pre-compiled plug-ins and source code examples. These plug-ins and source code examples are provided to you on an "AS-IS" basis.

You are free to make use of these plug-ins and source code example; however Autodesk does not provide any support in connection with them.

Autodesk makes no warranties, express, implied, or arising by custom or trade usage, and to the extent permitted by applicable law, specifically disclaims any implied warranties of title, noninfringement or of fitness for a particular purpose to the extent permitted by applicable law, (i) Autodesk's liability in contract, tort or otherwise arising out of or in connection with the plug-ins or source code shall not exceed the purchase price paid by the customer for the plug-ins or source code examples, and (ii) in no event shall Autodesk be liable for any punitive damages or lost profits or other special, indirect, incidental, or consequential damages, including any damages resulting from loss of business arising out of or in connection with the performance of the plug-ins or source code examples, even if Autodesk has been advised of the possibility of such damages. The customer shall indemnify Autodesk and hold it harmless from and against any loss, claim or damage to any person arising out of the customer's use of the plug-ins or source code examples.

windows

The plug-in scheme editor options are not restored correctly when AliasStudio restarts.

Restore the options after the plug-in is loaded.

windows

Plug-in DSOs are not unloaded when AliasStudio exits. As a result, static destructors are not called when AliasStudio exits.

The plugin_exit() function will still be called when AliasStudio exits. Any saving of state required by a plug-in can be done in the plugin_exit() routine.

Unload the plug-in manually through the Plug-in Manager window to call the static destructors.

windows

Unloading an active continuous plug-in through the Plug-in Manager can cause a core dump under certain situations.

Do not allow the plug-in to be unloaded if it is active. You can set a global variable in the plug-in to track its active state. Set this variable to TRUE in the init() function and FALSE in the cleanup() function.

Within plugin_exit(), if the plug-in is active, return a 1 so that the unloading of the plug-in will fail. This test should be done before the deleteObject() methods are called in plugin_exit().

windows

When setting a plug-in's integer slider definition, you can set the range argument to any value in the integer range; however, the slider will only give values between -100 and 100.

Values less than -100 or greater than 100 can still be entered in the associated text field, but the slider will only give values between -100 and 100.

Use the undocumented argument slider_range to change the min/max slider range values from their defaults. For example, to define an integer slider with a range of -200 to 1000, use the following Scheme statement:

(list `slider_range -200 1000)
(list `range -200 1000)

windows

The AlAreEqual(const AlObject* o1, const AlObject* o2) method for detecting if two objects in AliasStudio are equal has a significant FALSE condition.

If both pointers, o1 and o2, are equal and NULL, FALSE is returned.

Test o1 and o2 before calling this function.

windows

AlContinuousFunction::setPrompt() does not display the prompt right away.

Use AlPrintf(kPrompt,...) to output the prompt string (without formatting) in the "init" callback of the continuous function. To exclude formatting, end the prompt string before the first % symbol.


Autodesk
www.autodesk.com
aliasstudio.docs@mail.autodesk.com

Return to AliasStudio Index


Your Ad Here