Cult3D Java API Documentation Known bugs

Known limitations in Cult3D's Java support

- JVM version
  Most major web browsers only supports Java 1.1, if any at all.
  However there are separate plug-ins to download to different web browsers to upgrade the version of the Java Virtual Machine (JVM). When planning on displaying an object on a computer or on a public webpage, take in consideration that objects which take use of Java features of any other version than the current JVM installed will of natural causes not work properly. Also note that using a higher version a Java compiler and a lower version Java VM compatibility might cause incompabilities.

- Java GUI
  The GUI part of Java should be avoided. In particular AWT and Swing. Other parts of these packages might be used.

- Threads
  Use only one thread per Cult3D project.
  In order to have a fully functional Cult3D object with threads you should avoid restart/pause that single thread.
  Let the thread sleep in intervals and poll a variable to see if the thread should perform any action.

- Cult3D Designer preview
  You cannot preview the Java code in the Cult3D Designer. You must save the project as an Internet file (.co) and load that file in an appropriate Cult3D enhanced application, in order to see the result of your Java code.
  There is a third-party tool to simplify this process, and allows Java code to be previewed in the Designer, you can find the program "Cult3D Designer Extension" in www.WorldOf3D.com resources section. Please note that Cycore does not support that program.

- Textures and images
  When you create your model in your modeling application, please remember that you always should have the textures width and height in power of 2. Today Cult3D supports sizes of 1, 2, 4, 8, 16, 32, 64, 128, 246, 512, 1024 and 2048.
  Cult3D is not restricted to square textures, you can for instance use the texture size 512x64.

- Materials
  Indexes on multisub-materials are not constant during loads of the Cult3D object. And you can of that reason not assume materials indexes in your Java code.
  There are two things you can do to change materials with more than one indexes. You can use 5.3 way of handling Materials, read the com.cult3d.Material documentation, or you can traverse every material on your object and search for the one you are interested in. It is recommended to avoid Cult3D's Material class and substitute it with the Cult3D's texture class.

- Subworlds in Java
  There are some methods in the com.cult3d.World package that are reported having bugs.
  The methods reported are
  - java.lang.String getActionName(java.lang.String name)
  - java.lang.String getEventName(java.lang.String name)
  - java.lang.String getExpressionName(java.lang.String name)
  - java.lang.String getMaterialNameName(java.lang.String name)
  - java.lang.String getSceneGraphName(java.lang.String name)
  - java.lang.String getSoundName(java.lang.String name)
  - java.lang.String getTextureName(java.lang.String name
  - java.lang.String getToolTip Name(java.lang.String name)
  - java.lang.String getWorldName(java.lang.String name)
  These methods are supposed to get the new name assigned to it, if there is a conflict between names. But the Java methods often enough throws a com.cult3d.NameNotFoundException(), a workaround for this is to give every node, material, texture, world, etc a unique name and by that avoid the name-conflict, and therefore you don't need to use these methods.
  Note: Cycore will fix this bugs, in a near future, but can do so when releasing a small update of the viewers and or designer, without notify the users.

- Undocumented methods in the Java API
  Undocumented methods in the Java API are not supported by Cycore and Cul3D, you can test them if they work, but there are no guarantees that it will work, and how it will work in an other browser and operating system, and in different versions of Cult3D. Undocumented methods can be removed in a later version of Cult3D.

Last updated: 28:th of August, in the year of our lord 2002.