Browse our Products
Aspose.3D for .NET 19.10 Release Notes
Improvements and Changes
Key | Summary | Category |
---|---|---|
THREEDNET-567 | Problem converting RVM & ATT tile | Enhancement |
THREEDNET-570 | Calculation of bounding box of primitive shapes are incorrect | Enhancement |
THREEDNET-571 | Export primitive shapes to RVM file. | Enhancement |
THREEDNET-572 | Improve primitive export support in FBX. | Enhancement |
THREEDNET-573 | Special chars in object name cannot be exported correctly in FBX format | Bug |
THREEDNET-568 | Saved .glb files cannot be opened. | Bug |
THREEDNET-549 | Loading huge RVM takes much time and resources | Bug |
Public API and Backwards Incompatible Changes
See the list of any changes made to the public API such as added, renamed, removed or deprecated members as well as any non-backward compatible change made to Aspose.3D for .NET. If you have concerns about any change listed, please raise it on the Aspose.3D support forum.
New Class - Aspose.ThreeD.Entities.Dish
This is a new parameterized primitive shape.
Scene scene = new Scene();
scene.RootNode.CreateChildNode("dish", new Dish(), new PbrMaterial(Color.Coral));
New Class - Aspose.ThreeD.Entities.Pyramid
This is a new parameterized primitive shape.
Scene scene = new Scene();
scene.RootNode.CreateChildNode("pyramid", new Pyramid(), new PbrMaterial(Color.Coral));
New properties added to class Aspose.ThreeD.Entities.Box
The following properties have been added to Aspose.ThreeD.Entities.Box class.
/// <summary>
/// Gets or sets the length segments.
/// </summary>
public int LengthSegments{ get;set;}
/// <summary>
/// Gets or sets the width segments
/// </summary>
public int WidthSegments{ get;set;}
/// <summary>
/// gets or sets the height segments.
/// </summary>
public int HeightSegments{ get;set;}
Removed method FindNode in class Aspose.ThreeD.Node
This was scheduled to be removed since it’s been replaced by more advanced SelectSingleObject/SelectObjects.
New method added to class Aspose.ThreeD.Node
The following method has been added to Aspose.ThreeD.Node class which makes it more convenient to create a node with a Material.
/// <summary>
/// Create a new child node with given node name, and attach specified entity and a material
/// </summary>
/// <param name="nodeName">The new child node's name</param>
/// <param name="entity">Default entity attached to the node</param>
/// <param name="material">The material attached to the node</param>
/// <returns>The new child node.</returns>
public Node CreateChildNode(string nodeName, Entity entity, Material material);
Sample code
Scene scene = new Scene();
scene.RootNode.CreateChildNode("box", new Box(), new PbrMaterial(Color.Coral));
Removed methods from class Aspose.ThreeD.Formats.PlyFormat
The following methods have been replaced by PlyFormat.Encode which can also be used to encode point cloud.
public void EncodeMesh(Aspose.ThreeD.Entities.IMeshConvertible mesh, System.IO.Stream stream, Aspose.ThreeD.Formats.PlySaveOptions opt);
public void EncodeMesh(Aspose.ThreeD.Entities.IMeshConvertible mesh, string fileName, Aspose.ThreeD.Formats.PlySaveOptions opt);
Added new property to class Aspose.ThreeD.Formats.FBXSaveOptions
This property makes it handy to export big scenes that are composed of primitives.
/// <summary>
/// Reuse the mesh for the primitives with same parameters, this will significantly reduce the size of FBX output which scene was constructed by large set of primitive shapes(like imported from CAD files).
/// Default value is false
/// </summary>
public bool ReusePrimitiveMesh { get; set; }
Sample Code
Scene scene = new Scene();
scene.RootNode.CreateChildNode("dish A", new Dish(), new PbrMaterial(Color.Coral));
scene.RootNode.CreateChildNode("dish B", new Dish(), new PbrMaterial(Color.Coral));
scene.Save("file.fbx", new FBXSaveOptions(FileFormat.FBX7400ASCII) { ReusePrimitiveMesh = true });
Since the two parameterized shapes have the same parameters, they’ll definitely generate the same mesh. When this property is true, the generated FBX file will only generate one mesh and reuse it in different nodes.