/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 - 2 0 2 1 ĠSl aw om ir ĠC zer win ski Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġit . c zer win ski . intellij . wave front . editor . gl . meshes Ċ Ċ import Ġgraphics . g limp se . G limp se Adapter Ċ import Ġgraphics . g limp se . buffers . Buffer Ċ import Ġgraphics . g limp se . buffers . toFloat BufferData Ċ import Ġgraphics . g limp se . meshes . Mesh Ċ import Ġit . c zer win ski . intellij . wave front . editor . model . GL Model Ċ Ċ object ĠWire frame Faces Mesh Factory Ġ: ĠF aces Mesh Factory Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠV ERT ICES _ PER _ LINE Ġ= Ġ 2 ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( gl : ĠG limp se Adapter , Ġmodel : ĠGL Model , Ġmaterial Part : ĠGL Model . Material Part ): ĠMesh Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġmaterial Part . faces . flatMap Ġ{ Ġface Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( face . face Vertex List Ġ+ Ġface . face Vertex List . first ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. zip With Next () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ( v 1 , Ġv 2 ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv 1 . vertex Index Ġto Ġv 2 . vertex Index ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. distinct () ĊĠĠĠĠĠĠĠ Ġval Ġpositions Data Ġ= Ġlines . flatMap Ġ{ Ġ( index 1 , Ġindex 2 ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( model . vertices [ index 1 . asList Index ()]. coordinates Ġ+ Ġmodel . vertices [ index 2 . asList Index ()]. coordinates ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġ?: Ġ 0 f Ġ} ĊĠĠĠĠĠĠĠ Ġ}. toFloat BufferData () ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Factory Ġ= ĠBuffer . Factory . newInstance ( gl ) ĊĠĠĠĠĠĠĠ Ġreturn ĠLines Mesh ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvertex Count Ġ= Ġlines . size Ġ* ĠV ERT ICES _ PER _ LINE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffers Ġ= Ġbuffer Factory . create Array Buffers ( positions Data ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ