@@ -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