Skip to content

Commit 8b0c01f

Browse files
Merge pull request #1105 from hypar-io/check-for-lines
add edge material if there are line elements
2 parents 5cc9135 + db7350a commit 8b0c01f

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

Elements/src/Serialization/glTF/GltfExtensions.cs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,7 +1010,10 @@ internal static Gltf InitializeGlTF(Model model,
10101010

10111011
var materialsToAdd = model.AllElementsOfType<Material>().ToList();
10121012
materialsToAdd.AddRange(model.SubElementsFromSharedObjects.Values.OfType<Material>());
1013-
if (drawEdges)
1013+
var hasLineElements = model.Elements.Values.Any(e =>
1014+
e is ModelLines || e is GridLine || e is ModelCurve || e is ModelArrows);
1015+
1016+
if (drawEdges || hasLineElements)
10141017
{
10151018
materialsToAdd.Add(BuiltInMaterials.Edges);
10161019
}
@@ -1037,9 +1040,9 @@ internal static Gltf InitializeGlTF(Model model,
10371040

10381041
// Lines are stored in a list of lists
10391042
// according to the max available index size.
1040-
var lines = new List<List<Vector3>>();
1041-
var currLines = new List<Vector3>();
1042-
lines.Add(currLines);
1043+
var meshEdgeLines = new List<List<Vector3>>();
1044+
var currMeshEdgeLines = new List<Vector3>();
1045+
meshEdgeLines.Add(currMeshEdgeLines);
10431046

10441047
var accessors = new List<Accessor>();
10451048
var textures = new List<Texture>();
@@ -1056,10 +1059,10 @@ internal static Gltf InitializeGlTF(Model model,
10561059
// Check if we'll overrun the index size
10571060
// for the current line array. If so,
10581061
// create a new line array.
1059-
if (currLines.Count * 2 > ushort.MaxValue)
1062+
if (currMeshEdgeLines.Count * 2 > ushort.MaxValue)
10601063
{
1061-
currLines = new List<Vector3>();
1062-
lines.Add(currLines);
1064+
currMeshEdgeLines = new List<Vector3>();
1065+
meshEdgeLines.Add(currMeshEdgeLines);
10631066
}
10641067

10651068
try
@@ -1083,7 +1086,7 @@ internal static Gltf InitializeGlTF(Model model,
10831086
nodeElementMap,
10841087
meshTransformMap,
10851088
representationsMap,
1086-
currLines,
1089+
currMeshEdgeLines,
10871090
drawEdges,
10881091
updateElementsRepresentations,
10891092
mergeVertices);
@@ -1098,9 +1101,9 @@ internal static Gltf InitializeGlTF(Model model,
10981101
return null;
10991102
}
11001103

1101-
if (drawEdges && lines.Count() > 0)
1104+
if (drawEdges && meshEdgeLines.Count() > 0)
11021105
{
1103-
foreach (var lineSet in lines)
1106+
foreach (var lineSet in meshEdgeLines)
11041107
{
11051108
if (lineSet.Count == 0)
11061109
{

0 commit comments

Comments
 (0)