Ürünlerimize göz atın
Aspose.3D for Java 22.5 lease elease Notes
Tonun sayfası Aspose.3D for Java 22.5 için sürüm notları bilgilerini içerir.
Improvements ve Changes
Key | Summary | Category |
---|---|---|
THREEDNET-1149 | Mesh triangulate haritalama modu ile VertexElementUserData olygon/Polygonerertex desteklemiyor | Ew ew Feature |
THREEDNET-1148 | Tdd Tin Tririesh desteği | Ew ew Feature |
THREEDNET-1138 | Allow İhracat VertexElementUserData glTF | Ew ew Feature |
THREEDNET-1119 | Support için GLTF Custom Vertex Attributes | Ew ew Feature |
API değişiklikleri
Property Map<String, Object>
ile Object
arasındaki mülk tipini com.aspose.threed.VertexElementUserData
sınıfında onayladı:
/**
* The user data attached in this element
*/
public Object getData();
/**
* The user data attached in this element
* @param value New value
*/
public void setData(Object value);
If eski kod, VertexElementUserData içinde birden fazla veri ekler, şimdi birden fazla VertexElementUserData kullanmalıdır.
With bu API değişiklikleri, biz VertexElementUserData ririesh dönüştürmek veya hatta glTF ihraç destekleyebilir:
Example kodu:
//Manually define a cube
Vector4[]controlPoints = new Vector4[]{
new Vector4(-5.0, 0.0, 5.0, 1.0),
new Vector4(5.0, 0.0, 5.0, 1.0),
new Vector4(5.0, 10.0, 5.0, 1.0),
new Vector4(-5.0, 10.0, 5.0, 1.0),
new Vector4(-5.0, 0.0, -5.0, 1.0),
new Vector4(5.0, 0.0, -5.0, 1.0),
new Vector4(5.0, 10.0, -5.0, 1.0),
new Vector4(-5.0, 10.0, -5.0, 1.0)
};
// Initialize mesh object
Mesh mesh = new Mesh();
// Add control points to the mesh
mesh.getControlPoints().addAll(Arrays.asList(controlPoints));
// Create polygons to mesh
// Front face (Z+)
mesh.createPolygon(0, 1, 2, 3);
// Right side (X+)
mesh.createPolygon(1, 5, 6, 2 );
// Back face (Z-)
mesh.createPolygon(5, 4, 7, 6);
// Left side (X-)
mesh.createPolygon(4, 0, 3, 7);
// Bottom face (Y-)
mesh.createPolygon(0, 4, 5, 1);
// Top face (Y+)
mesh.createPolygon(3, 2, 6, 7 );
//create a user data to store face id for each face, this is done by specifying MappingMode to Polygon
var userData = (VertexElementUserData)mesh.createElement(VertexElementType.USER_DATA, MappingMode.POLYGON, ReferenceMode.DIRECT);
//The name of the UserData will be used as the field's name
userData.setName("__FACE_ID");
userData.setData(new double[]{
0,1,2,3,4,5
});
var triMesh = TriMesh.fromMesh(mesh);
System.out.println("TriMesh:");
for(var vtx : triMesh)
{
System.out.println(vtx);
}
The çıktı:
TriMesh:
POSITION = (-5.0,0.0,5.0), __FACE_ID = 0.0
POSITION = (5.0,0.0,5.0), __FACE_ID = 0.0
POSITION = (5.0,10.0,5.0), __FACE_ID = 0.0
POSITION = (5.0,10.0,5.0), __FACE_ID = 0.0
POSITION = (-5.0,10.0,5.0), __FACE_ID = 0.0
POSITION = (5.0,0.0,5.0), __FACE_ID = 1.0
POSITION = (5.0,0.0,-5.0), __FACE_ID = 1.0
POSITION = (5.0,10.0,-5.0), __FACE_ID = 1.0
POSITION = (5.0,10.0,-5.0), __FACE_ID = 1.0
POSITION = (5.0,10.0,5.0), __FACE_ID = 1.0
POSITION = (5.0,0.0,-5.0), __FACE_ID = 2.0
POSITION = (-5.0,0.0,-5.0), __FACE_ID = 2.0
POSITION = (-5.0,10.0,-5.0), __FACE_ID = 2.0
POSITION = (-5.0,10.0,-5.0), __FACE_ID = 2.0
POSITION = (5.0,10.0,-5.0), __FACE_ID = 2.0
POSITION = (-5.0,0.0,-5.0), __FACE_ID = 3.0
POSITION = (-5.0,0.0,5.0), __FACE_ID = 3.0
POSITION = (-5.0,10.0,5.0), __FACE_ID = 3.0
POSITION = (-5.0,10.0,5.0), __FACE_ID = 3.0
POSITION = (-5.0,10.0,-5.0), __FACE_ID = 3.0
POSITION = (-5.0,0.0,5.0), __FACE_ID = 4.0
POSITION = (-5.0,0.0,-5.0), __FACE_ID = 4.0
POSITION = (5.0,0.0,-5.0), __FACE_ID = 4.0
POSITION = (5.0,0.0,-5.0), __FACE_ID = 4.0
POSITION = (5.0,0.0,5.0), __FACE_ID = 4.0
POSITION = (-5.0,10.0,5.0), __FACE_ID = 5.0
POSITION = (5.0,10.0,5.0), __FACE_ID = 5.0