Aspose.3D 18.2.0

Aspose.3D for .NET

Aspose.3D is a class library for working with 3D files. It allows developers to create/manipulate/render 3D scene and work with FBX,STL,OBJ,3DS,U3D,DAE,PDF,DRC,GLTF files. It allows you to open files and manipulate the elements in the 3D scene, from line,mesh,nurbs curve, to more complex elements animation, and then export to FBX ASCII, FBX binary, STL ASCII, STL binary, Collada, Wavefront .obj, 3DS, PDF formats, glTF, glTF2, Google Draco.

Install-Package Aspose.3D -Version 18.2.0
dotnet add package Aspose.3D --version 18.2.0
paket add Aspose.3D --version 18.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

This page contains release notes for Aspose.3D for .NET 18.2.

Other Improvements and Changes
Key Summary Category

THREEDNET-335 Implement adding Targets to the MorphChannel
New feature

THREEDNET-348 Add support of skeleton/morphing animation exporting New feature

THREEDNET-332 Add support for NURBS curve New feature

THREEDNET-333 Add support for NURBS surface New feature

THREEDNET-338 Add support of Pre/Post Rotation New feature

THREEDNET-351 Cannot render transparency on PNG image of the scene Enhancement

THREEDNET-334 Output FBX - the null pointer error occurred 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.
Adds members to Aspose.ThreeD.Deformers.Bone classC#

/// <summary>
/// Gets the weight for control point specified by index
/// </summary>
/// <param name="index">Control point&#39;s index</param>
/// <returns>the weight at specified index, or 0 if the index is invalid</returns>
public double GetWeight(int index)
/// <summary>
/// Sets the weight for control point specified by index
/// </summary>
/// <param name="index">Control point&#39;s index</param>
/// <param name="weight">New weight</param>
public void SetWeight(int index, double weight)
/// <summary>
/// Gets the count of weight, this is automatically extended by <see cref="SetWeight"/>
/// </summary>
int WeightCount{ get;}
/// <summary>
/// Gets or sets the transform matrix of the bone.
/// </summary>
Aspose.ThreeD.Utilities.Matrix4 BoneTransform{ get;set;}

Adds members to Aspose.ThreeD.Deformers.MorphTargetChannel classC#

/// <summary>
/// Gets the weight for the specified target, if the target is not belongs to this channel, default value 0 is returned.
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public double GetWeight(Aspose.ThreeD.Entities.Geometry target)
/// <summary>
/// Sets the weight for the specified target, default value is 1, range should between 0~1
/// </summary>
/// <param name="target"></param>
/// <param name="weight"></param>
public void SetWeight(Aspose.ThreeD.Entities.Geometry target, double weight)

Adds members in class Aspose.ThreeD.Entities.NurbsCurve

/// <summary>
/// Evaluate the nurbs curve
/// </summary>
/// <param name="steps">The evaluation frequency between two neighbor knots, default value is 20</param>
/// <returns>Points in the curve</returns>
public Aspose.ThreeD.Utilities.Vector4[] Evaluate(double delta)
/// <summary>
/// Evaluate the curve&#39;s point at specified position
/// </summary>
/// <param name="u">The position in the curve, between 0 and 1</param>
/// <returns></returns>
public Aspose.ThreeD.Utilities.Vector4 EvaluateAt(double u)

Sample code:

public static void Main(string[] args)
   NurbsCurve curve = new NurbsCurve();
   curve.ControlPoints.AddRange(new Vector4[]{
       new Vector4(-28.0118217468262, 53.0359077453613, 0, 1),
       new Vector4(8.95330429077148, 64.7735290527344, 0, 1),
       new Vector4(35.7778739929199, 42.424259185791, 0, 1),
       new Vector4(24.8725852966309, -4.86993026733398, 0, 1),
       new Vector4(-35.7778739929199, -34.192684173584, 0, 1),
       new Vector4(-18.6066780090332, -57.1458396911621, 0, 1),
       new Vector4(17.733715057373, -64.7735290527344, 0, 1)
   curve.KnotVectors.AddRange(new double[]{0, 0, 0, 0, 0.25, 0.5, 0.75, 1, 1, 1, 1});
   foreach (var pt in curve.Evaluate())

Adds members to Aspose.ThreeD.Entities.NurbsCurve class

/// <summary>
/// Convert the nurbs surface to the mesh
/// </summary>
/// <returns></returns>
public Aspose.ThreeD.Entities.Mesh ToMesh()

With the recent version 18.2 of Aspose.3D for .NET, the NURBS surface is now render able.

The NURBS surface that has a periodic U/V direction is not supported yet, will be supported in the future versions.

Adds members to Aspose.ThreeD.Transform class

Some FBX files contain a non-zero pre/post rotation value for nodes, these two properties exposes them to the user and allow you to manipulate them.

/// <summary>
/// Gets or sets the pre-rotation represented in degree
/// </summary>
Aspose.ThreeD.Utilities.Vector3 PreRotation{ get;set;}
/// <summary>
/// Gets or sets the post-rotation represented in degree
/// </summary>
Aspose.ThreeD.Utilities.Vector3 PostRotation{ get;set;}

Adds members to Aspose.ThreeD.Utilities.MathUtils class

/// <summary>
/// Convert a number from radian to degree
/// </summary>
/// <param name="x">The x component in radian value.</param>
/// <param name="y">The y component in radian value.</param>
/// <param name="z">The z component in radian value.</param>
/// <returns>The degree value.</returns>
public static Aspose.ThreeD.Utilities.Vector3 ToDegree(double x, double y, double z)
/// <summary>
/// Convert a vector from degree to radian
/// </summary>
/// <param name="x">The x component in degree value.</param>
/// <param name="y">The y component in degree value.</param>
/// <param name="z">The z component in degree value.</param>
/// <returns>The radian value.</returns>
public static Aspose.ThreeD.Utilities.Vector3 ToRadian(double x, double y, double z)

The old code example:

MathUtils.ToDegree(new Vector3(x, y, z));
MathUtils.ToRadian(new Vector3(x, y, z));

It can now be simplified as:

MathUtils.ToDegree(x, y, z);
MathUtils.ToRadian(x, y, z);

The following changes should bring no code changes to user side, but they're required for the java version to keep consistent.

Member updated in Aspose.ThreeD.Formats.GLTFSaveOptions
Old definition

System.Func<Aspose.ThreeD.Shading.Material, Aspose.ThreeD.Shading.Material> MaterialConverter{ get;set;}

New definition

//New definition
Aspose.ThreeD.Formats.MaterialConverter MaterialConverter{ get;set;}

The definition of MaterialConverter has the same signature to the old Func<Material, Material>:

/// <summary>
/// Custom converter to convert the geometry&#39;s original material to GLTF&#39;s PBR material.
/// </summary>
/// <param name="mat">Old material instance</param>
/// <returns>New material instance</returns>
public delegate Material MaterialConverter(Material mat);

Adds a new class Aspose.ThreeD.Entities.VertexElementVector4
This class is the new base class of VertexElementNormal, VertexElementVertexColor, VertexElementBinormal, VertexElementTangent, VertexElementUV and VertexElementSpecular. It does not affect user's side code.
Member is modified to Aspose.ThreeD.Entities.NurbsCurve class
Old definition

System.Collections.Generic.List<double> KnotVectors{ get;}

New definition

IArrayList<double> KnotVectors{ get;}

Member is modified to Aspose.ThreeD.Entities.NurbsDirection class
Old definition

System.Collections.Generic.List<double> KnotVectors{ get;}

New definition

IArrayList<double> KnotVectors{ get;}

Usage Examples
Please check the list of help topics added or updated in the Aspose.3D Wiki docs:



This package has no dependencies.

Version History

Version Downloads Last updated
18.3.0 37 3/14/2018
18.2.0 (current version) 129 2/8/2018
18.1.0 176 1/8/2018
17.12.0 110 12/8/2017
17.11.0 199 11/6/2017
17.10.0 108 10/10/2017
17.9.0 199 9/7/2017
17.8.0 124 8/8/2017
17.7.0 134 7/17/2017
17.6.0 783 6/5/2017
17.5.0 156 5/8/2017
17.4.0 199 4/5/2017
17.3.0 182 3/6/2017
17.2.0 158 2/15/2017
17.1.0 225 1/5/2017
16.12.0 183 12/4/2016
16.11.0 209 11/1/2016
16.9.0 176 9/29/2016
2.1.0 157 8/30/2016
2.0.0 167 8/2/2016
1.7.0 177 6/29/2016
1.6.1 340 5/26/2016
1.5.0 176 4/27/2016
1.4.0 206 4/1/2016
1.3.0 206 2/23/2016
1.2.0 286 12/18/2015
1.1.0 193 11/27/2015
1.0.0 225 10/26/2015