Mesh — Aspose.3D FOSS for Java
पैकेज: com.aspose.threed (aspose-3d-foss 26.1.0)
Mesh बहुभुज ज्यामिति को नियंत्रण बिंदुओं (वर्टेक्स स्थितियों) की सूची और बहुभुज चेहरों की सूची के रूप में संग्रहीत करता है। प्रत्येक बहुभुज चेहरा नियंत्रण बिंदुओं की सरणी में शून्य‑आधारित सूचकांकों की सूची होता है। चेहरे त्रिभुज, चतुर्भुज, या उच्च‑आर्की बहुभुज हो सकते हैं। अतिरिक्त प्रति‑वर्टेक्स डेटा — नॉर्मल्स, यूवी निर्देशांक, वर्टेक्स रंग — संलग्न किया जाता है जैसा कि VertexElement परतें।.
public class Mesh extends GeometryMethods
A3DObject -> SceneObject -> Entity -> Geometry -> Mesh
Methods
शुरुआत से एकल त्रिकोण मेष बनाएं:
import com.aspose.threed.Scene;
import com.aspose.threed.*;
// Create the mesh and add three vertex positions
Mesh mesh = new Mesh();
mesh.getControlPoints().add(new Vector4(0.0, 0.0, 0.0, 1.0)); // vertex 0
mesh.getControlPoints().add(new Vector4(1.0, 0.0, 0.0, 1.0)); // vertex 1
mesh.getControlPoints().add(new Vector4(0.5, 1.0, 0.0, 1.0)); // vertex 2
// Define one triangle face using vertex indices
mesh.createPolygon(0, 1, 2);
// Attach to a scene and save
Scene scene = new Scene();
scene.getRootNode().createChildNode("triangle", mesh);
scene.save("triangle.stl");एक चतुर्भुज मेष बनाएं (ध्यान दें: triangulate() एक स्टब है — नीचे चेतावनी देखें):
import com.aspose.threed.Scene;
import com.aspose.threed.*;
Mesh mesh = new Mesh();
// Four corners of a unit square in the XZ plane
mesh.getControlPoints().add(new Vector4(0, 0, 0, 1.0));
mesh.getControlPoints().add(new Vector4(1, 0, 0, 1.0));
mesh.getControlPoints().add(new Vector4(1, 0, 1, 1.0));
mesh.getControlPoints().add(new Vector4(0, 0, 1, 1.0));
// One quad face
mesh.createPolygon(0, 1, 2, 3);
System.out.println("Polygons before triangulate: " + mesh.getPolygonCount()); // 1
// WARNING: triangulate() is a stub — it returns a clone, NOT a triangulated mesh.
// The polygon count will remain 1 (not 2).
Mesh triangulated = mesh.triangulate();
System.out.println("Polygons after triangulate: " + triangulated.getPolygonCount()); // still 1
Scene scene = new Scene();
scene.getRootNode().createChildNode("quad", triangulated);
// When saving to STL, pass triangle-only meshes to avoid vertex loss or malformed output.
scene.save("quad.glb");Methods
| Methods | Methods | Methods | Methods | Methods |
|---|---|---|---|---|
controlPoints | List<Vector4> | getControlPoints() | – | वर्टेक्स पोजीशन एरे। प्रत्येक प्रविष्टि एक है Vector4(x, y, z, w) जहाँ w है 1.0 पोजीशन डेटा के लिए। कॉल करके वर्टिसेज़ जोड़ें add() वापसी की गई सूची पर।. |
polygonCount | int | getPolygonCount() | – | इस मेष पर परिभाषित बहुभुज चेहरों की संख्या।. |
polygons | List<int[]> | getPolygons() | – | सभी चेहरा परिभाषाएँ इंडेक्स एरे की सूची के रूप में। प्रत्येक आंतरिक एरे में शीर्ष बिंदु के इंडेक्स (में controlPoints) एक चेहरा के लिए।. |
edges | List<Integer> | getEdges() | – | कच्चा किनारा इंडेक्स डेटा। मुख्यतः आंतरिक उपयोग और उन्नत टोपोलॉजी क्वेरीज़ के लिए।. |
vertexElements | List<VertexElement> | getVertexElements() | – | इस मेष से वर्तमान में जुड़े सभी शीर्ष बिंदु तत्व परतें (नॉर्मल्स, UVs, रंग, आदि)।. |
visible | boolean | getVisible() | setVisible(boolean) | Methods false, मेष उन दर्शकों में छिपा रहता है जो दृश्यता का सम्मान करते हैं।. |
castShadows | boolean | getCastShadows() | setCastShadows(boolean) | क्या यह मेष उन रेंडरर्स में छायाएँ डालता है जो शैडो मैप्स का समर्थन करते हैं।. |
receiveShadows | boolean | getReceiveShadows() | setReceiveShadows(boolean) | क्या यह मेष अन्य छाया-निर्माण ज्यामिति से छायाएँ प्राप्त करता है।. |
Methods
createPolygon(int... indices)
एक नया बहुभुज चेहरा परिभाषित करें, क्रम में शीर्ष बिंदु के इंडेक्स प्रदान करके। इंडेक्स उन स्थितियों को संदर्भित करते हैं जिसमें getControlPoints(). त्रिभुज, चतुर्भुज और n-गॉन के लिए तीन या अधिक सूचकांक स्वीकार करता है।.
| Methods | Methods | Methods |
|---|---|---|
indices | int... | वर्टेक्स इंडेक्स तर्क विंडिंग क्रम में होते हैं (आमतौर पर बाहर से देखे जाने पर विपरीत-घड़ी दिशा में)।. |
रिटर्न: void
Mesh mesh = new Mesh();
// ... populate control points ...
mesh.createPolygon(0, 1, 2); // triangle
mesh.createPolygon(0, 1, 2, 3); // quad
System.out.println(mesh.getPolygonCount()); // 2triangulate()
स्टब: मूल mesh की एक क्लोन लौटाता है। सभी polygons को fan triangulation का उपयोग करके triangles में विभाजित करने के उद्देश्य से, लेकिन वास्तविक triangulation लॉजिक अभी लागू नहीं किया गया है। मूल mesh में कोई परिवर्तन नहीं किया जाता।.
रिटर्न: Mesh – मूल mesh की एक क्लोन (स्टब व्यवहार)।.
import com.aspose.threed.*;
Mesh mesh = new Mesh();
mesh.getControlPoints().add(new Vector4(0, 0, 0, 1.0));
mesh.getControlPoints().add(new Vector4(1, 0, 0, 1.0));
mesh.getControlPoints().add(new Vector4(1, 1, 0, 1.0));
mesh.getControlPoints().add(new Vector4(0, 1, 0, 1.0));
mesh.createPolygon(0, 1, 2, 3); // one quad
Mesh triMesh = mesh.triangulate();
// Note: currently returns a clone, not a triangulated mesh
System.out.println(triMesh.getPolygonCount());toMesh()
इसे लौटाएँ Mesh एक के रूप में Mesh इंस्टेंस। इसके लिए Mesh ऑब्जेक्ट्स के लिए यह एक पहचान ऑपरेशन है (लौटाता है this) Geometry base class ताकि generic रेफ़रेंसेज़ के साथ काम करते समय एक समान रूपांतरण इंटरफ़ेस प्रदान किया जा सके Geometry रेफ़रेंसेज़।.
रिटर्न्स: Mesh
import com.aspose.threed.*;
Mesh ensureMesh(Geometry geom) {
return geom.toMesh();
}createElement(VertexElementType elementType, MappingMode mappingMode, ReferenceMode referenceMode)
एक नया जोड़ें VertexElement लेयर को निर्दिष्ट प्रकार का मेष में जोड़ें। इसका उपयोग normals, tangents, binormals, vertex colours, और smoothing groups को संलग्न करने के लिए करें।.
| Methods | Methods | Methods |
|---|---|---|
elementType | VertexElementType | इस लेयर में रखे जाने वाले डेटा का प्रकार (उदा., VertexElementType.NORMAL). |
mappingMode | MappingMode | डेटा ज्यामिति से कैसे जुड़ता है: CONTROL_POINT, POLYGON_VERTEX, POLYGON, आदि।. |
referenceMode | ReferenceMode | इंडेक्स का उपयोग कैसे किया जाता है: DIRECT या INDEX_TO_DIRECT. |
वापसी: VertexElement
import com.aspose.threed.*;
Mesh mesh = new Mesh();
mesh.getControlPoints().add(new Vector4(0, 0, 0, 1));
mesh.getControlPoints().add(new Vector4(1, 0, 0, 1));
mesh.getControlPoints().add(new Vector4(0.5, 1, 0, 1));
mesh.createPolygon(0, 1, 2);
VertexElement normalElement = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT
);createElementUV(TextureMapping uvMapping, MappingMode mappingMode, ReferenceMode referenceMode)
मेश में एक UV कॉर्डिनेट लेयर जोड़ें। यह टेक्सचर कॉर्डिनेट डेटा संलग्न करने की पसंदीदा विधि है।.
| Methods | Methods | Methods |
|---|---|---|
uvMapping | TextureMapping | UV चैनल का उद्देश्य: DIFFUSE, SPECULAR, NORMAL, AMBIENT, आदि।. |
mappingMode | MappingMode | UV कैसे ज्यामिति तत्वों से मैप होते हैं।. |
referenceMode | ReferenceMode | इंडेक्सिंग मोड: DIRECT या INDEX_TO_DIRECT. |
वापसी: VertexElementUV
import com.aspose.threed.*;
Mesh mesh = new Mesh();
// ... define control points and polygons ...
VertexElementUV uvElement = mesh.createElementUV(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT
);बूलियन और ऑप्टिमाइज़ेशन मेथड्स (स्टब्स)
निम्नलिखित मेथड्स इस पर मौजूद हैं Mesh लेकिन हैं स्टब्स जो मूल मेष की एक क्लोन लौटाते हैं बिना उनके इच्छित ऑपरेशन को निष्पादित किए।.
महत्वपूर्ण: union, difference, intersect, और doBoolean हैं स्थैतिक मेथड्स, इंस्टेंस मेथड्स नहीं। इन्हें इस रूप में कॉल करें Mesh.union(a, b), नहीं a.union(b).
| Methods | रिटर्न टाइप | Methods |
|---|---|---|
static Mesh.union(Mesh a, Mesh b) | Mesh | स्टब: का एक क्लोन लौटाता है a. CSG यूनियन के लिए अभिप्रेत है।. |
static Mesh.difference(Mesh a, Mesh b) | Mesh | स्टब: का एक क्लोन लौटाता है a. CSG सब्ट्रैक्शन के लिए अभिप्रेत है।. |
static Mesh.intersect(Mesh a, Mesh b) | Mesh | स्टब: का एक क्लोन लौटाता है a. CSG इंटरसेक्शन के लिए अभिप्रेत।. |
static Mesh.doBoolean(BooleanOperation op, Mesh a, Matrix4 ma, Mesh b, Matrix4 mb) | Mesh | स्टब: की एक क्लोन लौटाता है a. ट्रांसफ़ॉर्म्स के साथ सामान्य CSG के लिए अभिप्रेत।. |
optimize(boolean removeVertices) | Mesh | स्टब: की एक क्लोन लौटाता है। चार पैरामीटर ओवरलोड्स: optimize(boolean), optimize(boolean, float), optimize(boolean, float, float), optimize(boolean, float, float, float). |
optimize2(boolean removeVertices) | Mesh | स्टब: की एक क्लोन लौटाता है। वैकल्पिक अनुकूलन प्रवेश बिंदु।. |