修改水

This commit is contained in:
2026-01-01 22:00:33 +08:00
parent 040a222bd6
commit 9ceffccd39
1800 changed files with 103929 additions and 139495 deletions

View File

@@ -76,38 +76,30 @@ namespace Obi
ObiTriangleMeshHandle handle = new ObiTriangleMeshHandle(null);
if (source != null && !handles.TryGetValue(source, out handle))
{
if (source.isReadable)
{
var sourceTris = source.triangles;
var sourceVertices = source.vertices;
// Build a bounding interval hierarchy from the triangles:
IBounded[] t = new IBounded[sourceTris.Length/3];
for (int i = 0; i < t.Length; ++i)
{
var sourceTris = source.triangles;
var sourceVertices = source.vertices;
// Build a bounding interval hierarchy from the triangles:
IBounded[] t = new IBounded[sourceTris.Length / 3];
for (int i = 0; i < t.Length; ++i)
{
int t1 = sourceTris[i * 3];
int t2 = sourceTris[i * 3 + 1];
int t3 = sourceTris[i * 3 + 2];
t[i] = new Triangle(t1, t2, t3, sourceVertices[t1], sourceVertices[t2], sourceVertices[t3]);
}
var sourceBih = BIH.Build(ref t);
Triangle[] tris = Array.ConvertAll(t, x => (Triangle)x);
handle = new ObiTriangleMeshHandle(source, headers.count);
handles.Add(source, handle);
headers.Add(new TriangleMeshHeader(bihNodes.count, sourceBih.Length, triangles.count, tris.Length, vertices.count, sourceVertices.Length));
bihNodes.AddRange(sourceBih);
triangles.AddRange(tris);
vertices.AddRange(sourceVertices);
}
else
{
handle = new ObiTriangleMeshHandle(source);
handles.Add(source, handle);
int t1 = sourceTris[i * 3];
int t2 = sourceTris[i * 3 + 1];
int t3 = sourceTris[i * 3 + 2];
t[i] = new Triangle(t1,t2,t3, sourceVertices[t1], sourceVertices[t2], sourceVertices[t3]);
}
var sourceBih = BIH.Build(ref t);
Triangle[] tris = Array.ConvertAll(t, x => (Triangle)x);
handle = new ObiTriangleMeshHandle(source, headers.count);
handles.Add(source, handle);
headers.Add(new TriangleMeshHeader(bihNodes.count, sourceBih.Length, triangles.count, tris.Length, vertices.count, sourceVertices.Length));
bihNodes.AddRange(sourceBih);
triangles.AddRange(tris);
vertices.AddRange(sourceVertices);
}
return handle;