Aspose.3D 17.7.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 17.7.0
dotnet add package Aspose.3D --version 17.7.0
paket add Aspose.3D --version 17.7.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 17.7.

                   
   
Other Improvements and Changes
Key Summary Category

THREEDNET-265 Add support of exporting 3D scene to PLY format.
New feature


THREEDNET-271 Simplify the creation of transform matrix. New feature

THREEDNET-270 Allow generate mesh from grayscale image as a height map. New feature

THREEDNET-272 The FBX file generated cannot be edited by 3ds max. Bug

THREEDNET-274 UVs are corrupted when exporting a scene in FBX format. 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.Utilities.Matrix4 Class
C#

/// <summary>
/// Creates a translation matrix
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
public static Matrix4 Translate(Vector3 t);
/// <summary>
/// Creates a translation matrix
/// </summary>
/// <param name="tx"></param>
/// <param name="ty"></param>
/// <param name="tz"></param>
/// <returns></returns>
public static Matrix4 Translate(double tx, double ty, double tz);
/// <summary>
/// Create a scale matrix
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static Matrix4 Scale(Vector3 s);

/// <summary>
/// Create a scale matrix
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static Matrix4 Scale(double s);

/// <summary>
/// Create a scale matrix
/// </summary>
/// <param name="sx"></param>
/// <param name="sy"></param>
/// <param name="sz"></param>
/// <returns></returns>
public static Matrix4 Scale(double sx, double sy, double sz);

/// <summary>
/// Create a rotation matrix from euler angle
/// </summary>
/// <param name="eul">Rotation in radian</param>
/// <returns></returns>
public static Matrix4 RotateFromEuler(Vector3 eul);
/// <summary>
/// Create a rotation matrix from euler angle
/// </summary>
/// <param name="rx">Rotation in x axis in radian</param>
/// <param name="ry">Rotation in y axis in radian</param>
/// <param name="rz">Rotation in z axis in radian</param>
/// <returns></returns>
public static Matrix4 RotateFromEuler(double rx, double ry, double rz)

/// <summary>
/// Create a rotation matrix by rotation angle and axis
/// </summary>
/// <param name="angle">Rotate angle in radian</param>
/// <param name="axis">Rotation axis</param>
/// <returns></returns>
public static Matrix4 Rotate(double angle, Vector3 axis);

/// <summary>
/// Create a rotation matrix from a quaternion
/// </summary>
/// <param name="rotate"></param>
/// <returns></returns>
public static Matrix4 Rotate(Quaternion rotate);
 
//Create a transform that translates (1, 0, 0) then rotates alone the y axis pi radian.
var m  = Matrix4.RotateFromEuler(0, Math.PI, 0) * Matrix4.Translate(1, 0, 0);


Adds new classes Aspose.ThreeD.Utilities.ComposeOrder and Aspose.ThreeD.Utilities.TransformBuilder

The transform builder simplifies the creation of the transformation matrix by a chain of operations.
C#

//use prepend order so the calculation is performed from left to right:
var m = (new TransformBuilder(ComposeOrder.Prepend))
   //Change the (x, y, z) into (x + 1, y, z)
   .Translate(1, 0, 0)
   //Rotate alone with the Y axis with 180deg will change the (x, y, z) into (-x, y, -z)
   .RotateEulerDegree(0, 180, 0)
   //Scale by 2 will change the (x, y, z) into (2x, 2y, 2z)
   .Scale(2)
   //change the (x, y, z) into (z, y, x)
   .Rearrange(Axis.ZAxis, Axis.YAxis, Axis.XAxis)
   .Matrix;
   
//Apply this matrix on a (0, 0, 0) vector, then we get the right result (0, 0, -2)
var t = m * Vector3.Origin;


Members updated to Aspose.ThreeD.Formats

This change introduces a new class Aspose.ThreeD.Formats.PlyFormat, which allows you to encode single mesh instead of the whole scene:
C#

public static readonly Aspose.ThreeD.FileFormat PLY;
//Changed to
public static readonly Aspose.ThreeD.Formats.PlyFormat PLY;
 
// sample code
// Create a cylinder object and save it to ply file
FileFormat.PLY.EncodeMesh(new Cylinder(), "cylinder.ply");


Adds a new class Aspose.ThreeD.Formats.PlySaveOptions

Ply format has no an official standard, different application may have different definitions of its vertex format, this class allows you to define details of the Ply format.For example the default component name for texture coordinate components is 'u' and 'v', but some application uses 's' and 't', then you can change the name by using this class:
C#

//Save as binary PLY format, the default value is ASCII
PlySaveOptions opt = new PlySaveOptions(FileContentType.Binary);
//change the components to &#39;s&#39; and &#39;t&#39;
opt.TextureCoordinateComponents.Item1 = "s";
opt.TextureCoordinateComponents.Item2 = "t";
//save the mesh
FileFormat.PLY.EncodeMesh(new Cylinder(), "cylinder.ply", opt);


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

   
       

       
https://docs.aspose.com/display/3dnet/Aspose.3D+for+.NET+17.7+Release+Notes

Dependencies

This package has no dependencies.

Version History

Version Downloads Last updated
17.11.0 41 11/6/2017
17.10.0 79 10/10/2017
17.9.0 125 9/7/2017
17.8.0 102 8/8/2017
17.7.0 (current version) 109 7/17/2017
17.6.0 691 6/5/2017
17.5.0 134 5/8/2017
17.4.0 155 4/5/2017
17.3.0 154 3/6/2017
17.2.0 130 2/15/2017
17.1.0 201 1/5/2017
16.12.0 159 12/4/2016
16.11.0 184 11/1/2016
16.9.0 152 9/29/2016
2.1.0 133 8/30/2016
2.0.0 143 8/2/2016
1.7.0 151 6/29/2016
1.6.1 315 5/26/2016
1.5.0 152 4/27/2016
1.4.0 181 4/1/2016
1.3.0 182 2/23/2016
1.2.0 263 12/18/2015
1.1.0 169 11/27/2015
1.0.0 202 10/26/2015