الفئة TriMesh
محتويات
[
يخفي
]TriMesh class
TriMesh يحتوي على بيانات خام يمكن لوحدة معالجة الرسوميات (GPU) استخدامها مباشرة. هذه الفئة أداة للمساعدة في إنشاء شبكة تحتوي فقط على بيانات لكل رأس.
public class TriMesh : Entity, IEnumerable<Vertex>
المُنشئات
| الاسم | الوصف |
|---|---|
| TriMesh(string, VertexDeclaration) | تهيئة نسخة من TriMesh |
الخصائص
| الاسم | الوصف |
|---|---|
| Capacity { get; } | السعة المخصصة مسبقًا للرؤوس. |
| Excluded { get; set; } | يحصل أو يضبط ما إذا كان يجب استبعاد هذا الكيان أثناء التصدير. |
| IndicesCount { get; } | عدد الفهارس في هذا TriMesh |
| virtual Name { get; set; } | يحصل أو يعيّن الاسم. |
| ParentNode { get; set; } | يحصل أو يعيّن العقدة الأصلية الأولى، إذا تم تعيين العقدة الأصلية الأولى، سيتم فصل هذا الكيان عن العقد الأصلية الأخرى. |
| ParentNodes { get; } | يحصل على جميع العقد الأصلية، يمكن إرفاق كيان بعدة عقد أصلية لتكرار الهندسة. |
| Properties { get; } | يحصل على مجموعة جميع الخصائص. |
| Scene { get; } | يحصل على المشهد الذي ينتمي إليه هذا الكائن |
| UnmergedVerticesCount { get; } | عدد الرؤوس غير المدمجة التي تم تمريرها عبر BeginVertex وEndVertex. |
| VertexDeclaration { get; } | تخطيط الرؤوس لـ TriMesh. |
| VerticesCount { get; } | عدد الرؤوس في هذا TriMesh |
| VerticesSizeInBytes { get; } | الحجم الكلي لجميع الرؤوس بالبايت |
الطرق
| الاسم | الوصف |
|---|---|
| static CopyFrom(TriMesh, VertexDeclaration) | نسخ TriMesh من الإدخال مع تخطيط رؤوس جديد |
| static FromMesh(Mesh, bool) | إنشاء TriMesh من كائن شبكة مُعطى، حيث يتم بناء تعريف الرؤوس بناءً على بنية الشبكة المدخلة. |
| static FromMesh(VertexDeclaration, Mesh) | إنشاء TriMesh من كائن شبكة مُعطى مع تخطيط رؤوس محدد. |
| static FromRawData(VertexDeclaration, byte[], int[], bool) | إنشاء TriMesh من بيانات خام |
| AddTriangle(int, int, int) | إضافة مثلث جديد |
| BeginVertex() | بدء إضافة رأس |
| EndVertex() | إنهاء إضافة رأس |
| FindProperty(string) | يجد الخاصية. يمكن أن تكون خاصية ديناميكية (Created by CreateDynamicProperty/SetProperty) أو خاصية أصلية (Identified by its name) |
| GetBoundingBox() | يحصل على صندوق الحدود للكيان الحالي في نظام إحداثيات مساحة الكائن الخاصة به. |
| virtual GetEntityRendererKey() | يحصل على مفتاح عارض الكيان المسجل في العارض |
| GetEnumerator() | احصل على المُعدِّد لتعداد Vertex |
| GetProperty(string) | احصل على قيمة الخاصية المحددة |
| IndicesToArray(out int[]) | |
| IndicesToArray(out ushort[]) | |
| LoadVerticesFromBytes(byte[]) | تحميل الرؤوس من البايتات، يجب أن يكون طول البايتات مضاعفًا صحيحًا لحجم الرأس. |
| ReadDouble(int, VertexField) | اقرأ الحقل من نوع double |
| ReadFloat(int, VertexField) | اقرأ الحقل من نوع float |
| ReadFVector2(int, VertexField) | اقرأ الحقل من نوع vector2 |
| ReadFVector3(int, VertexField) | قراءة حقل vector3 |
| ReadFVector4(int, VertexField) | قراءة حقل vector4 |
| ReadVector2(int, VertexField) | اقرأ الحقل من نوع vector2 |
| ReadVector3(int, VertexField) | قراءة حقل vector3 |
| ReadVector4(int, VertexField) | قراءة حقل vector4 |
| RemoveProperty(Property) | يزيل خاصية ديناميكية. |
| RemoveProperty(string) | إزالة الخاصية المحددة بالاسم |
| SetProperty(string, object) | يضبط قيمة الخاصية المحددة |
| override ToString() | يحصل على تمثيل النص لـ TriMesh |
| VerticesToArray() | تحويل بيانات الرؤوس إلى مصفوفة بايت |
| Write16bIndicesTo(Stream) | اكتب بيانات الفهارس كعدد صحيح 16 بت إلى الدفق |
| Write32bIndicesTo(Stream) | اكتب بيانات الفهارس كعدد صحيح 32 بت إلى الدفق |
| WriteVerticesTo(Stream) | اكتب بيانات الرؤوس إلى الدفق المحدد |
أمثلة
الكود التالي يوضح كيفية إنشاء TriMesh بتخطيط ذاكرة مخصص، وتصديره إلى ملف.
//عرّف إعلان الرأس كـ {FVector3 Position; FVector3 Normal; FVector2 UV}
VertexDeclaration vd = new VertexDeclaration();
vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position);
vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Normal);
vd.AddField(VertexFieldDataType.FVector2, VertexFieldSemantic.UV);
//حوّل شبكة إلى شبكة ثلاثية الأضلاع باستخدام تخطيط الذاكرة المحدد
var mesh = (new Sphere()).ToMesh();
var triMesh = TriMesh.FromMesh(vd, mesh);
//احفظه إلى الدفق، 115 رأسًا * 32 بايت لكل رأس
using (var stream = new FileStream("output.bin", FileMode.Create))
{
triMesh.WriteVerticesTo(stream);
//احفظ الفهارس كـ ushort إلى الدفق، 504 فهرس * 2 بايت لكل فهرس
triMesh.Write16bIndicesTo(stream);
}
انظر أيضًا
- class Entity
- class Vertex
- namespace Aspose.ThreeD.Entities
- assembly Aspose.3D