Aspose.3D 17.7.0

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.

There is a newer version of this package available.
See the version list below for details.
Install-Package Aspose.3D -Version 17.7.0
dotnet add package Aspose.3D --version 17.7.0
<PackageReference Include="Aspose.3D" Version="17.7.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
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.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
19.11.0 74 11/5/2019
19.10.0 232 10/9/2019
19.9.0 408 9/9/2019
19.8.0 310 8/2/2019
19.7.0 485 7/8/2019
19.6.0 689 6/5/2019
19.5.0 503 5/12/2019
19.4.0 256 4/4/2019
19.3.0 455 3/8/2019
19.2.0 690 2/2/2019
19.1.0 259 1/9/2019
18.12.0 299 12/6/2018
18.11.0 483 11/6/2018
18.10.0 269 10/9/2018
18.9.0 775 9/6/2018
18.8.0 279 8/8/2018
18.7.0 636 7/11/2018
18.6.0 378 6/11/2018
18.5.0 674 5/10/2018
18.4.0 508 4/16/2018
18.3.0 389 3/14/2018
18.2.0 388 2/8/2018
18.1.0 568 1/8/2018
17.12.0 331 12/8/2017
17.11.0 725 11/6/2017
17.10.0 295 10/10/2017
17.9.0 412 9/7/2017
17.8.0 334 8/8/2017
17.7.0 347 7/17/2017
17.6.0 1,006 6/5/2017
17.5.0 588 5/8/2017
17.4.0 432 4/5/2017
17.3.0 422 3/6/2017
17.2.0 396 2/15/2017
17.1.0 450 1/5/2017
16.12.0 644 12/4/2016
16.11.0 418 11/1/2016
16.9.0 366 9/29/2016
2.1.0 361 8/30/2016
2.0.0 377 8/2/2016
1.7.0 405 6/29/2016
1.6.1 597 5/26/2016
1.5.0 396 4/27/2016
1.4.0 436 4/1/2016
1.3.0 500 2/23/2016
1.2.0 533 12/18/2015
1.1.0 471 11/27/2015
1.0.0 494 10/26/2015
Show less