VertexElement — Aspose.3D FOSS for Java
بسته: com.aspose.threed (aspose-3d-foss 26.1.0)
VertexElement کلاس پایهٔ انتزاعی برای لایههای دادهٔ مربوط به هر راس (یا هر چندضلعی، هر لبه) است که به یک Mesh.هر زیرکلاس یک نوع خاص از ویژگیهای هندسی را ذخیره میکند — نرمالها، مختصات UV، رنگهای راس، یا گروههای صافسازی.
Example
Example
| Example | Example | Example | Example | Example |
|---|---|---|---|---|
vertexElementType | VertexElementType | getVertexElementType() | – | نوع معنایی این عنصر (فقط‑خواندنی). |
mappingMode | MappingMode | getMappingMode() | setMappingMode(MappingMode) | تعیین میکند که هر مقدار به کدام primitive نگاشت شود. |
referenceMode | ReferenceMode | getReferenceMode() | setReferenceMode(ReferenceMode) | نحوهٔ ایندکسگذاری مقادیر را کنترل میکند. |
indices | List<Integer> | getIndices() | – | آرایهٔ ایندکس (استفاده میشود وقتی حالت مرجع است INDEX_TO_DIRECT). |
name | String | getName() | setName(String) | نام اختیاری این لایهٔ عنصر راس. |
VertexElementNormal
یک بردار نرمال برای هر راس یا هر گوشهٔ چندضلعی ذخیره میکند، بسته به getMappingMode(). مقادیر داده هستند Vector4 نمونهها با w استفاده نشده.
import com.aspose.threed.*;
VertexElement normals = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | بردارهای نرمال. این w مؤلفه استفاده نشده است (معمولاً 0.0). |
باز میگرداند: VertexElementUV
جفتهای مختصات بافت را ذخیره میکند (Vector2) به ازای هر راس یا گوشه چندضلعی. یک مش میتواند لایههای UV متعددی برای کانالهای بافت مختلف داشته باشد.
VertexElementUV uv = mesh.createElementUV(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT
);Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector2> | getData() | جفتهای مختصات UV. |
VertexElementVertexColor
دادههای رنگ RGBA را به ازای هر راس یا هر گوشه به صورت ذخیره میکند Vector4 (r, g, b, a در بازه ۰ تا ۱).
Example
| Example | Example | Example | Example |
|---|---|---|---|
data | List<Vector4> | getData() | مقادیر رنگ RGBA. |
شمارش VertexElementType
نقش معنایی یک لایهٔ عنصر راس را شناسایی میکند.
import com.aspose.threed.*;| Example | Example |
|---|---|
NORMAL | بردارهای نرمال سطح. |
UV | مختصات UV بافت. |
VERTEX_COLOR | رنگ RGBA به ازای هر راس. |
TANGENT | بردارهای تانژانت برای نگاشت نرمال. |
BINORMAL | بردارهای بینورمال (بیتانژانت). |
MATERIAL | شاخص ماده به ازای هر چندضلعی. |
POLYGON_GROUP | شاخص گروهبندی چندضلعیها. |
VERTEX_CREASE | وزنهای چینخورده راس در تقسیمبندی. |
EDGE_CREASE | وزنهای چینخورده لبه در تقسیمبندی. |
USER_DATA | دادههای دلخواه تعریفشده توسط کاربر. |
VISIBILITY | پرچمهای نمایش برای هر عنصر. |
SPECULAR | رنگ یا شدت بازتابی. |
WEIGHT | وزنهای ترکیب برای اسکینینگ. |
HOLE | پرچمهای حفره در چندضلعی. |
شمارش MappingMode
تعیین میکند که هر مقدار عنصر راس با کدام primitive هندسی مرتبط باشد.
| Example | Example |
|---|---|
CONTROL_POINT | یک مقدار برای هر نقطه کنترل (رأس). |
POLYGON_VERTEX | یک مقدار برای هر گوشهٔ چندضلعی (وجه‑رأس). |
POLYGON | یک مقدار برای هر چندضلعی. |
شمارش ReferenceMode
نحوهٔ ایندکسگذاری آرایهٔ دادهٔ عنصر راس را کنترل میکند.
| Example | Example |
|---|---|
DIRECT | دادهها بهصورت متوالی دسترسی میشوند بدون آرایهٔ ایندکس جداگانه. |
INDEX | دادهها از طریق آرایهٔ ایندکس جداگانه دسترسی میشوند. |
INDEX_TO_DIRECT | یک آرایهٔ ایندیسها هر پرمیٹیو نگاشت را به موقعیتی در آرایهٔ دادهها نگاشت میکند. |
Example
import com.aspose.threed.Scene;
import com.aspose.threed.*;
Scene scene = Scene.fromFile("model.obj");
for (Node node : scene.getRootNode().getChildNodes()) {
if (node.getEntity() instanceof Mesh) {
Mesh mesh = (Mesh) node.getEntity();
for (VertexElement ve : mesh.getVertexElements()) {
System.out.println(" Element: " + ve.getVertexElementType()
+ " mapping=" + ve.getMappingMode()
+ " ref=" + ve.getReferenceMode());
}
}
}