mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2026-08-15 02:57:49 +04:00
docs improvements
This commit is contained in:
+13
-13
@@ -47,13 +47,13 @@ public static class Msh0x07
|
||||
|
||||
descriptors.Add(new TriangleDescriptor(
|
||||
Flags: (TriangleFlags)BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x00, 2)),
|
||||
Link0: BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x02, 2)),
|
||||
Link1: BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x04, 2)),
|
||||
Link2: BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x06, 2)),
|
||||
LinkedTriangleIndex0_0x07: BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x02, 2)),
|
||||
LinkedTriangleIndex1_0x07: BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x04, 2)),
|
||||
LinkedTriangleIndex2_0x07: BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x06, 2)),
|
||||
PackedNormalX: BinaryPrimitives.ReadInt16LittleEndian(element.Slice(0x08, 2)),
|
||||
PackedNormalY: BinaryPrimitives.ReadInt16LittleEndian(element.Slice(0x0A, 2)),
|
||||
PackedNormalZ: BinaryPrimitives.ReadInt16LittleEndian(element.Slice(0x0C, 2)),
|
||||
SelectorPacked: BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x0E, 2))));
|
||||
PackedSelector: BinaryPrimitives.ReadUInt16LittleEndian(element.Slice(0x0E, 2))));
|
||||
}
|
||||
|
||||
return descriptors;
|
||||
@@ -61,22 +61,22 @@ public static class Msh0x07
|
||||
|
||||
/// <summary>Описатель triangle MSH 0x07, length = 0x10.</summary>
|
||||
/// <param name="Flags">[0x00..0x02] Triangle flags. Используются GeometryWalkFilter require/exclude.</param>
|
||||
/// <param name="Link0">[0x02..0x04] Указывает на треугольники в 0x07 (текущем) компоненте.</param>
|
||||
/// <param name="Link1">[0x04..0x06] Указывает на треугольники в 0x07 (текущем) компоненте.</param>
|
||||
/// <param name="Link2">[0x06..0x08] Указывает на треугольники в 0x07 (текущем) компоненте.</param>
|
||||
/// <param name="LinkedTriangleIndex0_0x07">[0x02..0x04] Указывает на треугольники в 0x07 (текущем) компоненте.</param>
|
||||
/// <param name="LinkedTriangleIndex1_0x07">[0x04..0x06] Указывает на треугольники в 0x07 (текущем) компоненте.</param>
|
||||
/// <param name="LinkedTriangleIndex2_0x07">[0x06..0x08] Указывает на треугольники в 0x07 (текущем) компоненте.</param>
|
||||
/// <param name="PackedNormalX">[0x08..0x0A] Packed normal X, int16, scale = 1 / 32767.</param>
|
||||
/// <param name="PackedNormalY">[0x0A..0x0C] Packed normal Y, int16, scale = 1 / 32767.</param>
|
||||
/// <param name="PackedNormalZ">[0x0C..0x0E] Packed normal Z, int16, scale = 1 / 32767.</param>
|
||||
/// <param name="SelectorPacked">[0x0E..0x10] Packed selectors. 3 трактуется как 0xFFFF.</param>
|
||||
/// <param name="PackedSelector">[0x0E..0x10] Packed selectors. 3 трактуется как 0xFFFF.</param>
|
||||
public readonly record struct TriangleDescriptor(
|
||||
TriangleFlags Flags,
|
||||
ushort Link0,
|
||||
ushort Link1,
|
||||
ushort Link2,
|
||||
ushort LinkedTriangleIndex0_0x07,
|
||||
ushort LinkedTriangleIndex1_0x07,
|
||||
ushort LinkedTriangleIndex2_0x07,
|
||||
short PackedNormalX,
|
||||
short PackedNormalY,
|
||||
short PackedNormalZ,
|
||||
ushort SelectorPacked)
|
||||
ushort PackedSelector)
|
||||
{
|
||||
public Vector3 Normal => new(
|
||||
PackedNormalX * PackedNormalScale,
|
||||
@@ -90,7 +90,7 @@ public static class Msh0x07
|
||||
throw new ArgumentOutOfRangeException(nameof(index));
|
||||
}
|
||||
|
||||
var selector = (SelectorPacked >> (index * 2)) & 0b11;
|
||||
var selector = (PackedSelector >> (index * 2)) & 0b11;
|
||||
|
||||
return selector == 3
|
||||
? ushort.MaxValue
|
||||
|
||||
Reference in New Issue
Block a user