TriMesh
Inheritance: java.lang.Object, com.aspose.threed.A3DObject, com.aspose.threed.SceneObject, com.aspose.threed.Entity
All Implemented Interfaces: java.lang.Iterable
public class TriMesh extends Entity implements Iterable<Vertex>
Ένα TriMesh περιέχει ακατέργαστα δεδομένα που μπορούν να χρησιμοποιηθούν απευθείας από το GPU. Αυτή η κλάση είναι ένα βοηθητικό εργαλείο για τη δημιουργία ενός πλέγματος που περιέχει μόνο δεδομένα ανά κορυφή. Παράδειγμα: Ο παρακάτω κώδικας δείχνει πώς να δημιουργήσετε ένα TriMesh με προσαρμοσμένη διάταξη μνήμης και να το εξάγετε σε αρχείο.
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to tri-mesh using specified memory layout
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(vd, mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
try(var s = new FileOutputStream("output.bin")) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
Κατασκευαστές
| Κατασκευαστής | Περιγραφή |
|---|---|
| TriMesh(String name, VertexDeclaration declaration) | Αρχικοποιήστε ένα στιγμιότυπο του TriMesh |
Μέθοδοι
| Μέθοδος | Περιγραφή |
|---|---|
| addTriangle(int a, int b, int c) | Προσθέστε ένα νέο τρίγωνο |
| beginVertex() | Ξεκινήστε την προσθήκη κορυφής |
| copyFrom(TriMesh input, VertexDeclaration vd) | Αντιγράψτε το TriMesh από την είσοδο με νέα διάταξη κορυφών |
| endVertex() | Τελειώστε την προσθήκη κορυφής |
| equals(Object arg0) | |
| findProperty(String propertyName) | Βρίσκει την ιδιότητα. |
| fromMesh(Mesh mesh) | Δημιουργήστε ένα TriMesh από το δοσμένο αντικείμενο πλέγματος, η δήλωση κορυφών βασίζεται στη δομή του εισαγόμενου πλέγματος. |
| fromMesh(Mesh mesh, boolean useFloat) | Δημιουργήστε ένα TriMesh από το δοσμένο αντικείμενο πλέγματος, η δήλωση κορυφών βασίζεται στη δομή του εισαγόμενου πλέγματος. |
| fromMesh(VertexDeclaration declaration, Mesh mesh) | Δημιουργήστε ένα TriMesh από το δοσμένο αντικείμενο πλέγματος με τη δοσμένη διάταξη κορυφών. |
| fromRawData(VertexDeclaration vd, byte[] vertices, int[] indices, boolean generateVertexMapping) | Δημιουργήστε TriMesh από ακατέργαστα δεδομένα |
| getBoundingBox() | Λαμβάνει το πλαίσιο περιβάλλουσας της τρέχουσας οντότητας στο σύστημα συντεταγμένων του χώρου αντικειμένου της. |
| getCapacity() | Η χωρητικότητα των προ-καθορισμένων κορυφών. |
| getClass() | |
| getEntityRendererKey() | Λαμβάνει το κλειδί του αποτυπωτή οντότητας που είναι καταχωρημένο στον αποτυπωτή |
| getExcluded() | Λαμβάνει αν θα εξαιρεθεί αυτή η οντότητα κατά την εξαγωγή. |
| getIndicesCount() | Ο αριθμός των δεικτών σε αυτό το TriMesh |
| getIntIndices() | Μετατρέψτε τους δείκτες σε πίνακα ακεραίων 32bit |
| getName() | Λαμβάνει το όνομα. |
| getParentNode() | Λαμβάνει τον πρώτο γονικό κόμβο, εάν οριστεί ο πρώτος γονικός κόμβος, αυτή η οντότητα θα αποσυνδεθεί από άλλους γονικούς κόμβους. |
| getParentNodes() | Λαμβάνει όλους τους γονικούς κόμβους, μια οντότητα μπορεί να προσαρτηθεί σε πολλούς γονικούς κόμβους για δημιουργία γεωμετρικών αντιγράφων. |
| getProperties() | Λαμβάνει τη συλλογή όλων των ιδιοτήτων. |
| getProperty(String property) | Λάβετε την τιμή της συγκεκριμένης ιδιότητας |
| getScene() | Λαμβάνει τη σκηνή στην οποία ανήκει αυτό το αντικείμενο |
| getShortIndices() | Μετατρέψτε τους δείκτες σε πίνακα ακεραίων 16bit |
| getUnmergedVerticesCount() | Ο αριθμός των μη συγχωνευμένων κορυφών που περάστηκαν από το beginVertex και το endVertex. |
| getVertexDeclaration() | Η διάταξη κορυφών του TriMesh. |
| getVerticesCount() | Ο αριθμός των κορυφών σε αυτό το TriMesh |
| getVerticesSizeInBytes() | Το συνολικό μέγεθος όλων των κορυφών σε bytes |
| hashCode() | |
| indicesToArray(int[][] result) | Μετατρέψτε τους δείκτες σε πίνακα ακεραίων 32bit |
| indicesToArray(short[][] result) | Μετατρέψτε τους δείκτες σε πίνακα ακεραίων 16bit |
| iterator() | Αποκτήστε τον απαριθμητή για να απαριθμήσετε Vertex |
| loadVerticesFromBytes(byte[] verticesInBytes) | Φορτώστε τις κορυφές από byte, το μήκος των byte πρέπει να είναι ακέραιο πολλαπλάσιο του μεγέθους της κορυφής. |
| notify() | |
| notifyAll() | |
| readDouble(int idx, VertexField field) | Διαβάστε το πεδίο double |
| readFVector2(int idx, VertexField field) | Διαβάστε το πεδίο vector2 |
| readFVector3(int idx, VertexField field) | Διαβάστε το πεδίο vector3 |
| readFVector4(int idx, VertexField field) | Διαβάστε το πεδίο vector4 |
| readFloat(int idx, VertexField field) | Διαβάστε το πεδίο float |
| readVector2(int idx, VertexField field) | Διαβάστε το πεδίο vector2 |
| readVector3(int idx, VertexField field) | Διαβάστε το πεδίο vector3 |
| readVector4(int idx, VertexField field) | Διαβάστε το πεδίο vector4 |
| removeProperty(Property property) | Αφαιρεί μια δυναμική ιδιότητα. |
| removeProperty(String property) | Αφαιρέστε την καθορισμένη ιδιότητα που προσδιορίζεται με όνομα |
| setExcluded(boolean value) | Ορίζει αν θα εξαιρεθεί αυτή η οντότητα κατά την εξαγωγή. |
| setName(String value) | Ορίζει το όνομα. |
| setParentNode(Node value) | Ορίζει τον πρώτο γονικό κόμβο, εάν οριστεί ο πρώτος γονικός κόμβος, αυτή η οντότητα θα αποσυνδεθεί από άλλους γονικούς κόμβους. |
| setProperty(String property, Object value) | Ορίζει την τιμή της συγκεκριμένης ιδιότητας |
| toString() | Λαμβάνει την αναπαράσταση συμβολοσειράς του TriMesh |
| verticesToArray() | Μετατρέψτε τα δεδομένα των κορυφών σε πίνακα byte |
| wait() | |
| wait(long arg0) | |
| wait(long arg0, int arg1) | |
| write16bIndicesTo(Stream stream) | Γράψτε τα δεδομένα δεικτών ως 16-bit ακέραιο στη ροή Παράδειγμα: |
| write16bIndicesTo(OutputStream stream) | Γράψτε τα δεδομένα δεικτών ως 16-bit ακέραιο στη ροή |
| write32bIndicesTo(Stream stream) | Γράψτε τα δεδομένα δεικτών ως 32-bit ακέραιο στη ροή Παράδειγμα: |
| write32bIndicesTo(OutputStream stream) | Γράψτε τα δεδομένα δεικτών ως 32-bit ακέραιο στη ροή |
| writeVerticesTo(Stream stream) | Γράψτε τα δεδομένα κορυφών στη καθορισμένη ροή |
| writeVerticesTo(OutputStream stream) | Γράψτε τα δεδομένα κορυφών στη καθορισμένη ροή |
TriMesh(String name, VertexDeclaration declaration)
public TriMesh(String name, VertexDeclaration declaration)
Αρχικοποιήστε ένα στιγμιότυπο του TriMesh
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| name | java.lang.String | Το όνομα αυτού του TriMesh |
| declaration | VertexDeclaration | Η δήλωση της κορυφής |
addTriangle(int a, int b, int c)
public void addTriangle(int a, int b, int c)
Προσθέστε ένα νέο τρίγωνο
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| α | int | Ο δείκτης της πρώτης κορυφής |
| b | int | Ο δείκτης της δεύτερης κορυφής |
| c | int | Ο δείκτης της τρίτης κορυφής |
beginVertex()
public Vertex beginVertex()
Ξεκινήστε την προσθήκη κορυφής
Returns: Vertex - The reference of internal vertex object in type Vertex
copyFrom(TriMesh input, VertexDeclaration vd)
public static TriMesh copyFrom(TriMesh input, VertexDeclaration vd)
Αντιγράψτε το TriMesh από την είσοδο με νέα διάταξη κορυφών
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| input | TriMesh | Το εισαγόμενο TriMesh για αντιγραφή |
| vd | VertexDeclaration | Η νέα δήλωση κορυφής του εξόδου TriMesh |
Returns: TriMesh - A new TriMesh instance with new vertex declaration. Example:
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var oldTriMesh = TriMesh.fromMesh((new Sphere()).toMesh());
//now create a new TriMesh from old TriMesh, using explicit memory layout defined by vd
var newTriMesh = TriMesh.copyFrom(oldTriMesh, vd);
endVertex()
public int endVertex()
Τελειώστε την προσθήκη κορυφής
Returns: int
equals(Object arg0)
public boolean equals(Object arg0)
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| arg0 | java.lang.Object |
Returns: boolean
findProperty(String propertyName)
public Property findProperty(String propertyName)
Βρίσκει την ιδιότητα. Μπορεί να είναι μια δυναμική ιδιότητα (Δημιουργήθηκε με CreateDynamicProperty/SetProperty) ή εγγενής ιδιότητα (Προσδιορίζεται με το όνομά της)
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| propertyName | java.lang.String | Όνομα ιδιότητας. |
Returns: Property - The property.
fromMesh(Mesh mesh)
public static TriMesh fromMesh(Mesh mesh)
Δημιουργήστε ένα TriMesh από το δοσμένο αντικείμενο πλέγματος, η δήλωση κορυφών βασίζεται στη δομή του εισαγόμενου πλέγματος.
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| mesh | Mesh |
Returns: TriMesh - The TriMesh generated from given Mesh Example: The following code shows how to create a TriMesh with custom memory layout, and export it to file.
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to tri-mesh using specified memory layout
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(vd, mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
try(var s = new FileOutputStream("output.bin")) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
fromMesh(Mesh mesh, boolean useFloat)
public static TriMesh fromMesh(Mesh mesh, boolean useFloat)
Δημιουργήστε ένα TriMesh από το δοσμένο αντικείμενο πλέγματος, η δήλωση κορυφών βασίζεται στη δομή του εισαγόμενου πλέγματος.
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| mesh | Mesh | |
| useFloat | boolean | Χρησιμοποιήστε τύπο float αντί για τύπο double για κάθε συνιστώσα στοιχείου κορυφής. |
Returns: TriMesh - The TriMesh generated from given Mesh Example: The following code shows how to create a TriMesh with custom memory layout, and export it to file.
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to tri-mesh using specified memory layout
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(vd, mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
try(var s = new FileOutputStream("output.bin")) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
fromMesh(VertexDeclaration declaration, Mesh mesh)
public static TriMesh fromMesh(VertexDeclaration declaration, Mesh mesh)
Δημιουργήστε ένα TriMesh από το δοσμένο αντικείμενο πλέγματος με τη δοσμένη διάταξη κορυφών.
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| declaration | VertexDeclaration | Ο ορισμός τύπου της κορυφής, ή η διάταξη μνήμης |
| mesh | Mesh | Πηγαίο πλέγμα |
Returns: TriMesh - Instance of TriMesh converted from input mesh with specified vertex’s memory layout Example: The following code shows how to create a TriMesh with custom memory layout, and export it to file.
//Define a vertex declaration as {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
vd.addField(VertexFieldDataType.F_VECTOR2, VertexFieldSemantic.UV);
//convert a mesh to tri-mesh using specified memory layout
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(vd, mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
try(var s = new FileOutputStream("output.bin")) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
fromRawData(VertexDeclaration vd, byte[] vertices, int[] indices, boolean generateVertexMapping)
public static TriMesh fromRawData(VertexDeclaration vd, byte[] vertices, int[] indices, boolean generateVertexMapping)
Δημιουργήστε TriMesh από ακατέργαστα δεδομένα
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| vd | VertexDeclaration | Η δήλωση κορυφών πρέπει να περιέχει τουλάχιστον ένα πεδίο. |
| vertices | byte[] | Τα δεδομένα εισόδου των κορυφών, το ελάχιστο μήκος των κορυφών πρέπει να είναι μεγαλύτερο ή ίσο με το μέγεθος της δήλωσης κορυφών. |
| δείκτες | int[] | Οι δείκτες τριγώνων |
| generateVertexMapping | boolean | Δημιουργήστε Vertex για κάθε κορυφή, το οποίο δεν είναι απαραίτητο μόνο για σειριοποίηση/αποσειριοποίηση. |
Returns: TriMesh - The TriMesh instance that encapsulated the input byte array. Remarks: The returned TriMesh will not copy the input byte array for performance, external changes on the array will be reflected to this instance. Example: The following code shows how to construct a TriMesh from raw bytes, this is useful when build your own 3D format
var indices = new int[] { 0, 1, 2 };
var vertices = new byte[]{
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 191,
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 63,
0, 0, 0, 63,
0, 0, 0, 0The string representation,
0, 0, 0, 63
};
VertexDeclaration vd = new VertexDeclaration();
vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position);
var triMesh = TriMesh.FromRawData(vd, vertices, indices, true);
getBoundingBox()
public BoundingBox getBoundingBox()
Λαμβάνει το πλαίσιο περιβάλλουσας της τρέχουσας οντότητας στο σύστημα συντεταγμένων του χώρου αντικειμένου της.
Returns: BoundingBox - the bounding box of current entity in its object space coordinate system. Example: The following code shows how to calculate the bounding box of a shape
Entity entity = new Sphere();
entity.setRadius(10);
var bbox = entity.getBoundingBox();
System.out.printf("The bounding box of the entity is %s ~ %s", bbox.getMinimum(), bbox.getMaximum());
getCapacity()
public int getCapacity()
Η χωρητικότητα των προ-καθορισμένων κορυφών.
Returns: int - Η χωρητικότητα των προ-κατανεμημένων κορυφών.
getClass()
public final native Class<?> getClass()
Returns: java.lang.Class
getEntityRendererKey()
public EntityRendererKey getEntityRendererKey()
Λαμβάνει το κλειδί του αποτυπωτή οντότητας που είναι καταχωρημένο στον αποτυπωτή
Returns: EntityRendererKey - the key of the entity renderer registered in the renderer
getExcluded()
public boolean getExcluded()
Λαμβάνει αν θα εξαιρεθεί αυτή η οντότητα κατά την εξαγωγή.
Returns: boolean - αν θα εξαιρεθεί αυτή η οντότητα κατά την εξαγωγή.
getIndicesCount()
public int getIndicesCount()
Ο αριθμός των δεικτών σε αυτό το TriMesh
Returns: int - Ο αριθμός των δεικτών σε αυτό το TriMesh
getIntIndices()
public int[] getIntIndices()
Μετατρέψτε τους δείκτες σε πίνακα ακεραίων 32bit
Returns: int[]
getName()
public String getName()
Λαμβάνει το όνομα.
Returns: java.lang.String - το όνομα.
getParentNode()
public Node getParentNode()
Λαμβάνει τον πρώτο γονικό κόμβο, εάν οριστεί ο πρώτος γονικός κόμβος, αυτή η οντότητα θα αποσυνδεθεί από άλλους γονικούς κόμβους.
Returns: Node - the first parent node, if set the first parent node, this entity will be detached from other parent nodes.
getParentNodes()
public ArrayList<Node> getParentNodes()
Λαμβάνει όλους τους γονικούς κόμβους, μια οντότητα μπορεί να προσαρτηθεί σε πολλούς γονικούς κόμβους για δημιουργία γεωμετρικών αντιγράφων.
Returns: java.util.ArrayList<com.aspose.threed.Node> - όλοι οι γονικοί κόμβοι, μια οντότητα μπορεί να προσαρτηθεί σε πολλούς γονικούς κόμβους για δημιουργία γεωμετρικών αντιτύπων
getProperties()
public PropertyCollection getProperties()
Λαμβάνει τη συλλογή όλων των ιδιοτήτων.
Returns: PropertyCollection - the collection of all properties.
getProperty(String property)
public Object getProperty(String property)
Λάβετε την τιμή της συγκεκριμένης ιδιότητας
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| ιδιότητα | java.lang.String | Όνομα ιδιότητας |
Returns: java.lang.Object - Η τιμή της ευρεθείσας ιδιότητας
getScene()
public Scene getScene()
Λαμβάνει τη σκηνή στην οποία ανήκει αυτό το αντικείμενο
Returns: Scene - the scene that this object belongs to
getShortIndices()
public short[] getShortIndices()
Μετατρέψτε τους δείκτες σε πίνακα ακεραίων 16bit
Returns: short[]
getUnmergedVerticesCount()
public int getUnmergedVerticesCount()
Ο αριθμός των μη συγχωνευμένων κορυφών που περάστηκαν από το beginVertex και το endVertex.
Returns: int - Ο αριθμός των μη συγχωνευμένων κορυφών που περάστηκαν από beginVertex και endVertex.
getVertexDeclaration()
public VertexDeclaration getVertexDeclaration()
Η διάταξη κορυφών του TriMesh.
Returns: VertexDeclaration - The vertex layout of the TriMesh.
getVerticesCount()
public int getVerticesCount()
Ο αριθμός των κορυφών σε αυτό το TriMesh
Returns: int - Ο αριθμός των κορυφών σε αυτό το TriMesh
getVerticesSizeInBytes()
public int getVerticesSizeInBytes()
Το συνολικό μέγεθος όλων των κορυφών σε bytes
Returns: int - Το συνολικό μέγεθος όλων των κορυφών σε bytes
hashCode()
public native int hashCode()
Returns: int
indicesToArray(int[][] result)
public void indicesToArray(int[][] result)
Μετατρέψτε τους δείκτες σε πίνακα ακεραίων 32bit
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| αποτέλεσμα | int[][] |
indicesToArray(short[][] result)
public void indicesToArray(short[][] result)
Μετατρέψτε τους δείκτες σε πίνακα ακεραίων 16bit
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| αποτέλεσμα | short[][] |
iterator()
public Iterator<Vertex> iterator()
Αποκτήστε τον απαριθμητή για να απαριθμήσετε Vertex
Returns: java.util.Iterator<com.aspose.threed.Vertex>
loadVerticesFromBytes(byte[] verticesInBytes)
public void loadVerticesFromBytes(byte[] verticesInBytes)
Φορτώστε κορυφές από byte, το μήκος των byte πρέπει να είναι ακέραιο πολλαπλάσιο του μεγέθους της κορυφής. Example: Ο παρακάτω κώδικας δείχνει πώς να δημιουργήσετε ένα κενό TriMesh και να φορτώσετε χειροκίνητα κορυφές από ακατέργαστα byte.
var indices = new int[] { 0, 1, 2 };
var vertices = new byte[]{
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 191,
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 63,
0, 0, 0, 63,
0, 0, 0, 0,
0, 0, 0, 63
};
VertexDeclaration vd = new VertexDeclaration();
vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position);
//create an empty TriMesh with specified vertex declaration
var triMesh = new TriMesh("", vd);
//load vertices directly from bytes
triMesh.LoadVerticesFromBytes(vertices);
triMesh.AddTriangle(0, 1, 2);
int[] indices = new int[] { 0, 1, 2 };
byte[] vertices = new byte[]{
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 191,
0, 0, 0, 191,
0, 0, 0, 0,
0, 0, 0, 63,
0, 0, 0, 63,
0, 0, 0, 0,
0, 0, 0, 63
};
VertexDeclaration vd = new VertexDeclaration();
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
//create an empty TriMesh with specified vertex declaration
var triMesh = new TriMesh("", vd);
//load vertices directly from bytes
triMesh.loadVerticesFromBytes(vertices);
triMesh.addTriangle(0, 1, 2);
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| verticesInBytes | byte[] |
notify()
public final native void notify()
notifyAll()
public final native void notifyAll()
readDouble(int idx, VertexField field)
public double readDouble(int idx, VertexField field)
Διαβάστε το πεδίο double
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| idx | int | Ο δείκτης της κορυφής για ανάγνωση |
| field | VertexField | Το πεδίο με συμβατό τύπο δεδομένων float/double |
Returns: double - Double τιμή του πεδίου της καθορισμένης κορυφής
readFVector2(int idx, VertexField field)
public FVector2 readFVector2(int idx, VertexField field)
Διαβάστε το πεδίο vector2
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| idx | int | Ο δείκτης της κορυφής για ανάγνωση |
| field | VertexField | Το πεδίο με τύπο δεδομένων Vector2/FVector2 |
Returns: FVector2 - FVector2 of specified vertex’s field
readFVector3(int idx, VertexField field)
public FVector3 readFVector3(int idx, VertexField field)
Διαβάστε το πεδίο vector3
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| idx | int | Ο δείκτης της κορυφής για ανάγνωση |
| field | VertexField | Το πεδίο με τύπο δεδομένων Vector3/FVector3 |
Returns: FVector3
readFVector4(int idx, VertexField field)
public FVector4 readFVector4(int idx, VertexField field)
Διαβάστε το πεδίο vector4
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| idx | int | Ο δείκτης της κορυφής για ανάγνωση |
| field | VertexField | Το πεδίο με τύπο δεδομένων Vector4/FVector4 |
Returns: FVector4
readFloat(int idx, VertexField field)
public float readFloat(int idx, VertexField field)
Διαβάστε το πεδίο float
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| idx | int | Ο δείκτης της κορυφής για ανάγνωση |
| field | VertexField | Το πεδίο με συμβατό τύπο δεδομένων float/double |
Returns: float - Float τιμή του πεδίου της καθορισμένης κορυφής
readVector2(int idx, VertexField field)
public Vector2 readVector2(int idx, VertexField field)
Διαβάστε το πεδίο vector2
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| idx | int | Ο δείκτης της κορυφής για ανάγνωση |
| field | VertexField | Το πεδίο με τύπο δεδομένων Vector2/FVector2 |
Returns: Vector2 - Vector2 of specified vertex’s field
readVector3(int idx, VertexField field)
public Vector3 readVector3(int idx, VertexField field)
Διαβάστε το πεδίο vector3
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| idx | int | Ο δείκτης της κορυφής για ανάγνωση |
| field | VertexField | Το πεδίο με τύπο δεδομένων Vector3/FVector3 |
Returns: Vector3
readVector4(int idx, VertexField field)
public Vector4 readVector4(int idx, VertexField field)
Διαβάστε το πεδίο vector4
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| idx | int | Ο δείκτης της κορυφής για ανάγνωση |
| field | VertexField | Το πεδίο με τύπο δεδομένων Vector4/FVector4 |
Returns: Vector4
removeProperty(Property property)
public boolean removeProperty(Property property)
Αφαιρεί μια δυναμική ιδιότητα.
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| property | Property | Ποια ιδιότητα να αφαιρεθεί |
Returns: boolean - true εάν η ιδιότητα αφαιρεθεί επιτυχώς
removeProperty(String property)
public boolean removeProperty(String property)
Αφαιρέστε την καθορισμένη ιδιότητα που προσδιορίζεται με όνομα
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| ιδιότητα | java.lang.String | Ποια ιδιότητα να αφαιρεθεί |
Returns: boolean - true εάν η ιδιότητα αφαιρεθεί επιτυχώς
setExcluded(boolean value)
public void setExcluded(boolean value)
Ορίζει αν θα εξαιρεθεί αυτή η οντότητα κατά την εξαγωγή.
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| τιμή | boolean | Νέα τιμή |
setName(String value)
public void setName(String value)
Ορίζει το όνομα.
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| τιμή | java.lang.String | Νέα τιμή |
setParentNode(Node value)
public void setParentNode(Node value)
Ορίζει τον πρώτο γονικό κόμβο, εάν οριστεί ο πρώτος γονικός κόμβος, αυτή η οντότητα θα αποσυνδεθεί από άλλους γονικούς κόμβους.
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| value | Node | Νέα τιμή |
setProperty(String property, Object value)
public void setProperty(String property, Object value)
Ορίζει την τιμή της συγκεκριμένης ιδιότητας
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| ιδιότητα | java.lang.String | Όνομα ιδιότητας |
| τιμή | java.lang.Object | Η τιμή της ιδιότητας |
toString()
public String toString()
Λαμβάνει την αναπαράσταση συμβολοσειράς του TriMesh
Returns: java.lang.String - Η αναπαράσταση της συμβολοσειράς
verticesToArray()
public byte[] verticesToArray()
Μετατρέψτε τα δεδομένα των κορυφών σε πίνακα byte
Returns: byte[]
wait()
public final void wait()
wait(long arg0)
public final void wait(long arg0)
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| arg0 | long |
wait(long arg0, int arg1)
public final void wait(long arg0, int arg1)
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| arg0 | long | |
| arg1 | int |
write16bIndicesTo(Stream stream)
public void write16bIndicesTo(Stream stream)
Γράψτε τα δεδομένα δεικτών ως 16-bit ακέραιο στη ροή Παράδειγμα:
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
var stream = new ByteArrayOutputStream();
try(var s = Stream.wrap(stream)) {
triMesh.writeVerticesTo(s);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(s);
}
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| stream | Stream |
write16bIndicesTo(OutputStream stream)
public void write16bIndicesTo(OutputStream stream)
Γράψτε τα δεδομένα δεικτών ως 16-bit ακέραιο στη ροή
Parameters:
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
| ροή | java.io.OutputStream |
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
var stream = new ByteArrayOutputStream();
triMesh.writeVerticesTo(stream);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(stream);
``` |
### write32bIndicesTo(Stream stream) {#write32bIndicesTo-com.aspose.threed.Stream-}
public void write32bIndicesTo(Stream stream)
Γράψτε τα δεδομένα δεικτών ως 32-bit ακέραιο στη ροή **Παράδειγμα:**
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh var mesh = (new Sphere()).toMesh(); var triMesh = TriMesh.fromMesh(mesh); //save it to a stream, 115 vertices * 32bytes per vertex var stream = new ByteArrayOutputStream(); try(var s = Stream.wrap(stream)) { triMesh.writeVerticesTo(s); //save indices as ushort to stream, 504 indices * 2 bytes per index triMesh.write32bIndicesTo(s); }
**Parameters:**
| Παράμετρος | Τύπος | Περιγραφή |
| --- | --- | --- |
| stream | [Stream](../../com.aspose.threed/stream) | |
### write32bIndicesTo(OutputStream stream) {#write32bIndicesTo-java.io.OutputStream-}
public void write32bIndicesTo(OutputStream stream)
Γράψτε τα δεδομένα δεικτών ως 32-bit ακέραιο στη ροή
**Parameters:**
| Παράμετρος | Τύπος | Περιγραφή |
| --- | --- | --- |
| | ροή | java.io.OutputStream | **Example:** |
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
var stream = new ByteArrayOutputStream();
triMesh.writeVerticesTo(stream);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write32bIndicesTo(stream);
### writeVerticesTo(Stream stream) {#writeVerticesTo-com.aspose.threed.Stream-}
public void writeVerticesTo(Stream stream)
Γράψτε τα δεδομένα κορυφών στη καθορισμένη ροή
**Parameters:**
| Παράμετρος | Τύπος | Περιγραφή |
| --- | --- | --- |
| | stream | [Stream](../../com.aspose.threed/stream) | Η ροή στην οποία θα γραφούν τα δεδομένα των κορυφών **Example:** |
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh var mesh = (new Sphere()).toMesh(); var triMesh = TriMesh.fromMesh(mesh); //save it to a stream, 115 vertices * 32bytes per vertex var stream = new ByteArrayOutputStream(); try(var s = Stream.wrap(stream)) { triMesh.writeVerticesTo(s); //save indices as ushort to stream, 504 indices * 2 bytes per index triMesh.write16bIndicesTo(s); }
### writeVerticesTo(OutputStream stream) {#writeVerticesTo-java.io.OutputStream-}
public void writeVerticesTo(OutputStream stream)
Γράψτε τα δεδομένα κορυφών στη καθορισμένη ροή
**Parameters:**
| Παράμετρος | Τύπος | Περιγραφή |
| --- | --- | --- |
| | ροή | java.io.OutputStream | Η ροή στην οποία θα γραφούν τα δεδομένα των κορυφών **Example:** |
//convert a mesh to TriMesh, the layout is automatically inferred from input mesh
var mesh = (new Sphere()).toMesh();
var triMesh = TriMesh.fromMesh(mesh);
//save it to a stream, 115 vertices * 32bytes per vertex
var stream = new ByteArrayOutputStream();
triMesh.writeVerticesTo(stream);
//save indices as ushort to stream, 504 indices * 2 bytes per index
triMesh.write16bIndicesTo(stream);