Mesh — Aspose.3D FOSS for Java

पैकेज: com.aspose.threed (aspose-3d-foss 26.1.0)

Mesh बहुभुज ज्यामिति को नियंत्रण बिंदुओं (वर्टेक्स स्थितियों) की सूची और बहुभुज चेहरों की सूची के रूप में संग्रहीत करता है। प्रत्येक बहुभुज चेहरा नियंत्रण बिंदुओं की सरणी में शून्य‑आधारित सूचकांकों की सूची होता है। चेहरे त्रिभुज, चतुर्भुज, या उच्च‑आर्की बहुभुज हो सकते हैं। अतिरिक्त प्रति‑वर्टेक्स डेटा — नॉर्मल्स, यूवी निर्देशांक, वर्टेक्स रंग — संलग्न किया जाता है जैसा कि VertexElement परतें।.

public class Mesh extends Geometry

Methods

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

MethodsMethodsMethodsMethodsMethods
controlPointsList<Vector4>getControlPoints()वर्टेक्स पोजीशन एरे। प्रत्येक प्रविष्टि एक है Vector4(x, y, z, w) जहाँ w है 1.0 पोजीशन डेटा के लिए। कॉल करके वर्टिसेज़ जोड़ें add() वापसी की गई सूची पर।.
polygonCountintgetPolygonCount()इस मेष पर परिभाषित बहुभुज चेहरों की संख्या।.
polygonsList<int[]>getPolygons()सभी चेहरा परिभाषाएँ इंडेक्स एरे की सूची के रूप में। प्रत्येक आंतरिक एरे में शीर्ष बिंदु के इंडेक्स (में controlPoints) एक चेहरा के लिए।.
edgesList<Integer>getEdges()कच्चा किनारा इंडेक्स डेटा। मुख्यतः आंतरिक उपयोग और उन्नत टोपोलॉजी क्वेरीज़ के लिए।.
vertexElementsList<VertexElement>getVertexElements()इस मेष से वर्तमान में जुड़े सभी शीर्ष बिंदु तत्व परतें (नॉर्मल्स, UVs, रंग, आदि)।.
visiblebooleangetVisible()setVisible(boolean)Methods false, मेष उन दर्शकों में छिपा रहता है जो दृश्यता का सम्मान करते हैं।.
castShadowsbooleangetCastShadows()setCastShadows(boolean)क्या यह मेष उन रेंडरर्स में छायाएँ डालता है जो शैडो मैप्स का समर्थन करते हैं।.
receiveShadowsbooleangetReceiveShadows()setReceiveShadows(boolean)क्या यह मेष अन्य छाया-निर्माण ज्यामिति से छायाएँ प्राप्त करता है।.

Methods

createPolygon(int... indices)

एक नया बहुभुज चेहरा परिभाषित करें, क्रम में शीर्ष बिंदु के इंडेक्स प्रदान करके। इंडेक्स उन स्थितियों को संदर्भित करते हैं जिसमें getControlPoints(). त्रिभुज, चतुर्भुज और n-गॉन के लिए तीन या अधिक सूचकांक स्वीकार करता है।.

MethodsMethodsMethods
indicesint...वर्टेक्स इंडेक्स तर्क विंडिंग क्रम में होते हैं (आमतौर पर बाहर से देखे जाने पर विपरीत-घड़ी दिशा में)।.

रिटर्न: 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());   // 2

triangulate()

स्टब: मूल 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 को संलग्न करने के लिए करें।.

MethodsMethodsMethods
elementTypeVertexElementTypeइस लेयर में रखे जाने वाले डेटा का प्रकार (उदा., VertexElementType.NORMAL).
mappingModeMappingModeडेटा ज्यामिति से कैसे जुड़ता है: CONTROL_POINT, POLYGON_VERTEX, POLYGON, आदि।.
referenceModeReferenceModeइंडेक्स का उपयोग कैसे किया जाता है: 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 कॉर्डिनेट लेयर जोड़ें। यह टेक्सचर कॉर्डिनेट डेटा संलग्न करने की पसंदीदा विधि है।.

MethodsMethodsMethods
uvMappingTextureMappingUV चैनल का उद्देश्य: DIFFUSE, SPECULAR, NORMAL, AMBIENT, आदि।.
mappingModeMappingModeUV कैसे ज्यामिति तत्वों से मैप होते हैं।.
referenceModeReferenceModeइंडेक्सिंग मोड: 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स्टब: की एक क्लोन लौटाता है। वैकल्पिक अनुकूलन प्रवेश बिंदु।.

संबंधित देखें

 हिन्दी