Прочитать документ 3D
Contents
[
Hide
]
Список поддерживаемых форматов 3D (импорт)
Aspose.3D for Java API поддерживает чтение различных типов документов 3D. Доступные конструкторы класса Scene помогают это сделать, и они принимают правильную строку пути к файлу. Поддерживаемые форматы файлов для чтения являются следующими:
- FBX 7,5 (ASCII, двоичный)
- FBX 7,4 (ASCII, двоичный)
- FBX 7,3 (ASCII, двоичный)
- FBX 7,2 (ASCII, двоичный)
- STL (ASCII, двоичный)
- WavefrontOBJ
- Discreet3DS
- Universal3D
- Collada
- glTF
- DXF
- PLY (ASCII, двоичный)
- X (ASCII, двоичный)
- Draco
- 3MF
- RVM (Текстовый, двоичный)
- ASE
Конструкторы класса Scene определяют внутренний формат документа 3D.
Импортировать документ 3D
Aspose.3D for Java API поддерживает импорт различных типов документов 3D для изменения, добавления и обработки.
Чтение сцены 3D: Примеры программирования
// the path to the documents directory.
String MyDir = RunExamples.getDataDir();
// Initialize a Scene class object
Scene scene = new Scene();
// Load an existing 3D document
scene.open(MyDir + "document.fbx");Работа со свойствами 3D
Aspose.3D API позволяет читать свойства сцены 3D, используя дочерние узлы сцены. Следующий пример кода демонстрирует использование этой функции.
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-Java
String dataDir = RunExamples.getDataDir();
Scene scene = new Scene(dataDir+ "EmbeddedTexture.fbx");
Material material = scene.getRootNode().getChildNodes().get(0).getMaterial();
PropertyCollection props = material.getProperties();
//List all properties using for loop
for (Property prop:props)
{
System.out.println("Name" + prop.getName() + " Value = " + prop.getValue());
}
//or using ordinal for loop
for (int i = 0; i < props.size(); i++)
{
Property prop = props.get(i);
System.out.println("Name" + prop.getName() + " Value = " + prop.getValue());
}
//Get property value by name
Object diffuse = (Vector3)props.get("Diffuse");
System.out.println(diffuse);
//modify property value by name
props.set("Diffuse", new Vector3(1, 0, 1));
//Get property instance by name
Property pdiffuse = props.findProperty("Diffuse");
System.out.println(pdiffuse);
//Since Property is also inherited from A3DObject
//It's possible to get the property of the property
System.out.println("Property flags = " + pdiffuse.getProperty("flags"));
//and some properties that only defined in FBX file:
System.out.println("Label = " + pdiffuse.getProperty("label"));
System.out.println("Type Name = " + pdiffuse.getProperty("typeName"));
//so traversal on property's property is possible
for (Property pp: pdiffuse.getProperties())
{
System.out.println("Diffuse. " + pp.getName() + " = " + pp.getValue());
}