Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions src/SA3D.Modeling/Mesh/Converters/BasicConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ public static void ConvertWeightedToBasic(
weightedMesh.TriangleSets,
weightedMesh.Materials,
weightedMesh.HasColors,
weightedMesh.Label ?? "BASIC_" + StringExtensions.GenerateIdentifier());
weightedMesh.Label ?? ("BASIC_" + StringExtensions.GenerateIdentifier()));

if(optimize)
{
Expand Down Expand Up @@ -332,6 +332,7 @@ public static void ConvertPolygons(BasicMesh mesh, out BufferCorner[] corners, o
{
BufferCorner[] strip = new BufferCorner[poly.Indices.Length];

/* This is how NPolys should work IF sonic team had implemented them correctly
if(mesh.PolygonType == BasicPolygonType.NPoly)
{
strip[0] = new BufferCorner(
Expand Down Expand Up @@ -368,15 +369,14 @@ public static void ConvertPolygons(BasicMesh mesh, out BufferCorner[] corners, o

absoluteIndex += strip.Length;
}
else
*/

for(int i = 0; i < strip.Length; i++, absoluteIndex++)
{
for(int i = 0; i < strip.Length; i++, absoluteIndex++)
{
strip[i] = new BufferCorner(
poly.Indices[i],
mesh.Colors?[absoluteIndex] ?? BufferMesh.DefaultColor,
mesh.Texcoords?[absoluteIndex] ?? Vector2.Zero);
}
strip[i] = new BufferCorner(
poly.Indices[i],
mesh.Colors?[absoluteIndex] ?? BufferMesh.DefaultColor,
mesh.Texcoords?[absoluteIndex] ?? Vector2.Zero);
}

strips[stripNum] = strip;
Expand Down
6 changes: 3 additions & 3 deletions src/SA3D.Modeling/Mesh/Converters/ChunkConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ private static ChunkResult ConvertWeightedBinaryColored(WeightedMesh wba)
attaches.Add(new(new[] { lastVertexChunk }, polyChunks.ToArray()));

return new(
wba.Label ?? "CHUNK_" + StringExtensions.GenerateIdentifier(),
wba.Label ?? ("CHUNK_" + StringExtensions.GenerateIdentifier()),
sortedVertices.Length,
true,
nodeAttachIndices.ToArray(),
Expand Down Expand Up @@ -411,7 +411,7 @@ private static ChunkResult ConvertWeighted(WeightedMesh wba)
attaches.Add(new(lastVertexChunk, polyChunks.ToArray()));

return new(
wba.Label ?? "CHUNK_" + StringExtensions.GenerateIdentifier(),
wba.Label ?? ("CHUNK_" + StringExtensions.GenerateIdentifier()),
wba.Vertices.Length,
true,
nodeAttachIndices.ToArray(),
Expand Down Expand Up @@ -535,7 +535,7 @@ protected override ChunkResult ConvertWeightless(WeightedMesh wba, bool optimize
}

return new(
wba.Label ?? "CHUNK_" + StringExtensions.GenerateIdentifier(),
wba.Label ?? ("CHUNK_" + StringExtensions.GenerateIdentifier()),
vertices.Length,
false,
wba.RootIndices.ToArray(),
Expand Down
4 changes: 2 additions & 2 deletions src/SA3D.Modeling/Mesh/Converters/FromWeightedConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ protected override BufferResult ConvertWeighted(WeightedMesh wba, bool optimize)
attaches[lastIndex] = new(meshes.ToArray());

return new(
wba.Label ?? "BUFFER_" + StringExtensions.GenerateIdentifier(),
wba.Label ?? ("BUFFER_" + StringExtensions.GenerateIdentifier()),
wba.Vertices.Length,
true,
nodeIndices,
Expand Down Expand Up @@ -138,7 +138,7 @@ protected override BufferResult ConvertWeightless(WeightedMesh wba, bool optimiz
BufferMesh[] result = BufferMesh.CompressLayout(meshes);

return new(
wba.Label ?? "BUFFER_" + StringExtensions.GenerateIdentifier(),
wba.Label ?? ("BUFFER_" + StringExtensions.GenerateIdentifier()),
vertices.Length,
false,
wba.RootIndices.ToArray(),
Expand Down
6 changes: 3 additions & 3 deletions src/SA3D.Modeling/Mesh/Converters/FromWeldedBasicConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ private void CollectPolygons()
}
else
{
polygonCorners.Add(new(resultCorners));
polygonCorners.Add([.. resultCorners]);
materials.Add(material);
}
}
Expand All @@ -325,7 +325,7 @@ private void RemoveUnusedVertices()
.Select(x => x.VertexIndex)
.ToHashSet();

List<WeightedVertex> newVertices = new(_outVertices);
List<WeightedVertex> newVertices = [.. _outVertices];
ushort[] map = new ushort[_outVertices.Length];

ushort realIndex = (ushort)(usedVertices.Count - 1);
Expand Down Expand Up @@ -391,7 +391,7 @@ public static WeightedMesh[] CreateWeightedFromWeldedBasicModel(Node model, Node

foreach(Node[] group in weldingGroups)
{
SortedSet<int> dependencyNodes = new(group.Select(x => nodeIndices[x]));
SortedSet<int> dependencyNodes = [.. group.Select(x => nodeIndices[x])];
int rootNodeIndex = ToWeightedConverter.ComputeCommonNodeIndex(nodes, dependencyNodes);

WeightedMesh? mesh = new FromWeldedBasicConverter(nodes[rootNodeIndex], group, nodeIndices).Process();
Expand Down
2 changes: 1 addition & 1 deletion src/SA3D.Modeling/Mesh/Converters/GCConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ GCMesh[] ProcessBufferMeshes(List<int> meshIndices)

GCAttach result = new(vertexData, opaqueMeshes, translucentMeshes)
{
Label = weightedMesh.Label ?? "GC_" + StringExtensions.GenerateIdentifier()
Label = weightedMesh.Label ?? ("GC_" + StringExtensions.GenerateIdentifier())
};

if(optimize)
Expand Down
4 changes: 2 additions & 2 deletions src/SA3D.Modeling/Mesh/Converters/ToWeightedConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -412,9 +412,9 @@ private void EvaluateMesh()
}
else
{
SortedSet<int> absoluteDepends = new(dependingMeshNodeIndices.Select(x => _meshNodeIndexMapping[x]));
SortedSet<int> absoluteDepends = [.. dependingMeshNodeIndices.Select(x => _meshNodeIndexMapping[x])];
rootNodeIndex = ComputeCommonNodeIndex(_nodes, absoluteDepends);
dependingRelativeNodeIndices = new(absoluteDepends.Select(x => x - rootNodeIndex));
dependingRelativeNodeIndices = [.. absoluteDepends.Select(x => x - rootNodeIndex)];

vertices = EvaluateWeightVertices(dependingMeshNodeIndices, rootNodeIndex, out hasNormals);
label = _nodes[absoluteDepends.Max].Attach!.Label;
Expand Down
3 changes: 1 addition & 2 deletions src/SA3D.Modeling/Mesh/Gamecube/GCAttach.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,7 @@ public override bool CanWrite(ModelFormat format)
/// </summary>
public void OptimizeVertexData()
{
List<GCMesh> allMeshes = new(OpaqueMeshes);
allMeshes.AddRange(TransparentMeshes);
List<GCMesh> allMeshes = [.. OpaqueMeshes, .. TransparentMeshes];

foreach(GCVertexSet item in VertexData.Values)
{
Expand Down
6 changes: 3 additions & 3 deletions src/SA3D.Modeling/Mesh/Weighted/WeightedMesh.cs
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ private static void GetTexcoordPrecisionLevel(Node model, WeightedMesh[] meshes,
/// <exception cref="InvalidOperationException"></exception>
public Attach ToAttach(AttachFormat format, bool optimize, out int[]?[] vertexMapping)
{
HashSet<int> backup = new(RootIndices);
HashSet<int> backup = [.. RootIndices];
RootIndices.Clear();
RootIndices.Add(0);

Expand Down Expand Up @@ -662,8 +662,8 @@ public WeightedMesh Clone()
Vertices.ContentClone(),
TriangleSets.ContentClone(),
Materials.ToArray(),
new(RootIndices),
new(DependingNodeIndices),
[.. RootIndices],
[.. DependingNodeIndices],
HasColors,
HasNormals);
}
Expand Down
4 changes: 2 additions & 2 deletions src/SA3D.Modeling/ObjectData/LandTable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ LabeledArray<LandEntry> onReadGeometry(uint geometryAddr)

geometry = data.TryReadPointer(geometryLoc, out uint geometryAddr)
? lut.GetAddLabeledValue(geometryAddr, "collist_", onReadGeometry)
: (ILabeledArray<LandEntry>)new LabeledArray<LandEntry>("collist_" + identifier, 0);
: new LabeledArray<LandEntry>("collist_" + identifier, 0);

LabeledArray<LandEntryMotion> onReadAnims()
{
Expand All @@ -529,7 +529,7 @@ LabeledArray<LandEntryMotion> onReadAnims()

anim = animAddr != 0
? lut.GetAddLabeledValue(animAddr, "animlist_", onReadAnims)
: (ILabeledArray<LandEntryMotion>)new LabeledArray<LandEntryMotion>("animlist_" + identifier, 0);
: new LabeledArray<LandEntryMotion>("animlist_" + identifier, 0);

if(data.TryReadPointer(texNameLoc, out uint texNameAddr))
{
Expand Down
Loading