@@ -171,7 +171,7 @@ func NewModel(b, f string, g bool) (Model, error) {
171
171
gobFile := b + gf
172
172
if _ , err := os .Stat (gobFile ); os .IsNotExist (err ) {
173
173
err := m .loadModel ()
174
- // m.Export()
174
+ m .Export ()
175
175
return m , err
176
176
}
177
177
err := m .Import ()
@@ -210,26 +210,12 @@ func (m *Model) Import() error {
210
210
defer dataFile .Close ()
211
211
212
212
dataDecoder := gob .NewDecoder (dataFile )
213
- err = dataDecoder .Decode (& m )
214
-
215
- if err != nil {
216
- return nil
217
- }
218
- for _ , mesh := range m .Meshes {
219
- mesh .setup ()
220
-
221
- fmt .Printf ("vertices: %d, indices: %d, textures: %d\n " , len (mesh .Vertices ), len (mesh .Indices ), len (mesh .Textures ))
222
-
223
- for _ , tex := range mesh .Textures {
224
- if val , ok := m .texturesLoaded [tex .Path ]; ok {
225
- fmt .Println ( val )
226
- } else {
227
-
228
- tex .id = m .textureFromFile (tex .Path )
229
- m .texturesLoaded [tex .Path ] = tex
230
- }
231
- }
213
+ if err := dataDecoder .Decode (& m ); err != nil {
214
+ return err
232
215
}
216
+
217
+ fmt .Printf ("Creating model from gob file: %s\n " , f )
218
+ m .initGL ()
233
219
return nil
234
220
}
235
221
@@ -257,7 +243,11 @@ func (m *Model) loadModel() error {
257
243
// Process ASSIMP's root node recursively
258
244
m .processNode (scene .RootNode (), scene )
259
245
m .wg .Wait ()
246
+ m .initGL ()
247
+ return nil
248
+ }
260
249
250
+ func (m * Model ) initGL () {
261
251
// using a for loop with a range doesnt work here?!
262
252
// also making a temp var inside the loop doesnt work either?!
263
253
for i := 0 ; i < len (m .Meshes ); i ++ {
@@ -271,9 +261,7 @@ func (m *Model) loadModel() error {
271
261
}
272
262
m .Meshes [i ].setup ()
273
263
}
274
- return nil
275
264
}
276
-
277
265
func (m * Model ) processNode (n * assimp.Node , s * assimp.Scene ) {
278
266
// Process each mesh located at the current node
279
267
m .wg .Add (n .NumMeshes () + n .NumChildren ())
0 commit comments