Making a method called nodetoobj or spatialtoobj

I

Well, spatials and nodes don't have any geometry information, it is only when you get to TriMesh that the vertexes and tex-coords, etc are available. In the end, in jME 1.0 and before, you need to extract this info from a GeomBatch but typically TriMeshes only have one of them, so you can access it directly.

Here's some converter I made a while ago… not sure if it works and for what reason I made it exactly. It's for pre 1.0 jME version.


package com.gibbon.mfkarpg.model;

import com.jme.image.Texture;
import com.jme.math.Vector3f;
import com.jme.renderer.ColorRGBA;
import com.jme.scene.Node;
import com.jme.scene.Spatial;
import com.jme.scene.TriMesh;
import com.jme.scene.state.AlphaState;
import com.jme.scene.state.LightState;
import com.jme.scene.state.MaterialState;
import com.jme.scene.state.RenderState;
import com.jme.scene.state.TextureState;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URL;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;

/**
 * Converts jME scenes to an OBJ model
 * @author MomokoFan
 */
public class JmeToObj {
   
    protected JmeToObj() {
    }
   
    public static void convert(Spatial scene, File folder) throws IOException{
        File objf = new File(folder,scene.getName()+".obj");
        File mtlf = new File(folder,scene.getName()+".mtl");
       
        BufferedWriter objw = new BufferedWriter(new FileWriter(objf));
        BufferedWriter mtlw = new BufferedWriter(new FileWriter(mtlf));
       
        objw.append("# Generated by JmeToObjrnrn");
       
        objw.append("mtllib "+scene.getName()+".mtlrn");

        dumpSpatial(scene, objw, mtlw);
    }
   
    private static final String f2s(float f){
        return Float.toString(f);
    }
   
    public static boolean dumpMaterial(Spatial source, BufferedWriter writer) throws IOException{
        boolean hasMat = false;
       
        MaterialState ms = (MaterialState) source.getRenderState(RenderState.RS_MATERIAL);
       
        ColorRGBA color;
        if (ms != null){
            writer.append("newmtl "+source.getName());
            hasMat = true;
           
            color = ms.getAmbient();
            writer.append("Ka ")
                  .append(f2s(color.r)).append(' ')
                  .append(f2s(color.g)).append(' ')
                  .append(f2s(color.b)).append("rn");
           
           
            color = ms.getDiffuse();
            writer.append("Kd ")
                  .append(f2s(color.r)).append(' ')
                  .append(f2s(color.g)).append(' ')
                  .append(f2s(color.b)).append("rn");
           
            color = ms.getSpecular();
            writer.append("Ks ")
                  .append(f2s(color.r)).append(' ')
                  .append(f2s(color.g)).append(' ')
                  .append(f2s(color.b)).append("rn");
           
            writer.append("Ns ")
                  .append(f2s(ms.getShininess())).append("rn");
        }
       
        AlphaState as = (AlphaState) source.getRenderState(RenderState.RS_ALPHA);
        if (as != null){
            if (!hasMat){
                writer.append("newmtl "+source.getName()+"rn");
                hasMat = true;
            }
           
            writer.append("illum 9rn");
            if (ms != null)
                writer.append("d ").append(f2s(ms.getAmbient().a * ms.getDiffuse().a * ms.getEmissive().a));
        }else if (source.getLightCombineMode() != LightState.OFF){
            if (hasMat) writer.append("illum 2rn");
        }else{
            if (!hasMat){
                writer.append("newmtl "+source.getName()+"rn");
                hasMat = true;
            }
           
            writer.append("illum 0rn");
        }
       
        TextureState ts = (TextureState) source.getRenderState(RenderState.RS_TEXTURE);
        if (ts != null && ts.getTexture(0)!=null && ts.getTexture(0).getImageLocation()!=null){
            if (!hasMat){
                writer.append("newmtl "+source.getName()+"rn");
                hasMat = true;
            }
           
            Texture t = ts.getTexture(0);
            URL url = new URL(t.getImageLocation());
            writer.append("map_Kd ");
           
            if (t.getTranslation()!=null){
                writer.append("-o "+t.getTranslation().x+" "+t.getTranslation().y+" ");
            }
           
            if (t.getScale()!=null){
                writer.append("-s "+t.getScale().x+" "+t.getScale().y+" ");
            }
           
            if (t.getWrap()==Texture.WM_BCLAMP_S_BCLAMP_T
             || t.getWrap()==Texture.WM_CLAMP_S_CLAMP_T
             || t.getWrap()==Texture.WM_ECLAMP_S_ECLAMP_T){
                writer.append("-clamp on");
            }
           
            writer.append(url.getPath()).append("rn");
        }
       
        if (hasMat)
            writer.newLine();
       
        return hasMat;
    }
   
    public static void dumpSpatial(Spatial spat, BufferedWriter objs, BufferedWriter mtls) throws IOException{
        if (spat instanceof TriMesh){
            boolean mat = dumpMaterial(spat, mtls);
            dumpMesh((TriMesh)spat, mat, objs);
        }else if (spat instanceof Node){
            Node n = (Node)spat;
            if (n.getChildren() == null)
                return;
           
            for (Spatial s: n.getChildren()){
                dumpSpatial(s, objs, mtls);
            }
        }
    }
   
    public static void dumpMesh(TriMesh mesh, boolean hasMaterial, BufferedWriter writer) throws IOException{
        FloatBuffer vb = mesh.getVertexBuffer(0);
        FloatBuffer nb = mesh.getNormalBuffer(0);
        FloatBuffer tb = mesh.getTextureBuffer(0, 0);
        IntBuffer ib = mesh.getIndexBuffer(0);
       
        int len;
        Vector3f temp = new Vector3f();
       
        writer.append("o "+mesh.getName()).append("rn");
       
        Spatial s = mesh;
        writer.append("g ");
        while (s != null){
            writer.append(s.getName());
            s = s.getParent();
            if (s != null) writer.append(' ');
        }
        writer.append("rn");
       
        // Vertex data
        if (vb!=null){
            len = vb.limit() / 3;
            vb.rewind();
            for (int i = 0; i < len; i++ ){
                temp.set(vb.get(), vb.get(), vb.get());
                mesh.localToWorld(temp, temp);
                writer.append("v ")
                  .append(Float.toString(temp.x))
                  .append(' ')
                  .append(Float.toString(temp.y))
                  .append(' ')
                  .append(Float.toString(temp.z))
                  .append("rn");
            }

            writer.append("rn");
        }
       
        // Texture coordinates
        if (tb!=null){
            len = tb.limit() / 2;
            tb.rewind();
            for (int i = 0; i < len; i++){
                float x = tb.get(), y = tb.get();
                writer.append("vt ")
                  .append(Float.toString(x))
                  .append(' ')
                  .append(Float.toString(y))
                  .append("rn");
            }
            writer.append("rn");
        }
       
        // Normals
        if (nb!=null){
            len = nb.limit() / 3;
            nb.rewind();
            for (int i = 0; i < len; i++ ){
                temp.set(nb.get(), nb.get(), nb.get());
                mesh.getWorldRotation().mult(temp, temp);
                writer.append("vn ")
                  .append(Float.toString(temp.x))
                  .append(' ')
                  .append(Float.toString(temp.y))
                  .append(' ')
                  .append(Float.toString(temp.z))
                  .append("rn");
            }
            writer.append("rn");
        }
       
        if (hasMaterial){
            writer.append("usemtl ").append(mesh.getName()).append("rn");
        }
       
        // Face Indexes
        if (ib!=null){
            len = ib.limit() / 3;
            ib.rewind();
            for (int i = 0; i < len; i++){
                String v1 = Integer.toString(ib.get()+1), v2 = Integer.toString(ib.get()+1), v3 = Integer.toString(ib.get()+1);
                if (tb!=null && nb==null){
                    writer.append("f ")
                        .append(v1).append("/").append(v1)
                        .append(' ')
                        .append(v2).append("/").append(v2)
                        .append(' ')
                        .append(v3).append("/").append(v3)
                        .append("rn");
                }else if (tb==null && nb!=null){
                    writer.append("f ")
                        .append(v1).append("//").append(v1)
                        .append(' ')
                        .append(v2).append("//").append(v2)
                        .append(' ')
                        .append(v3).append("//").append(v3)
                        .append("rn");
                }else if (tb!=null && nb!=null){
                    writer.append("f ")
                        .append(v1).append("/").append(v1).append("/").append(v1)
                        .append(' ')
                        .append(v2).append("/").append(v2).append("/").append(v2)
                        .append(' ')
                        .append(v3).append("/").append(v3).append("/").append(v3)
                        .append("rn");
                }else{
                    writer.append("f ")
                        .append(v1)
                        .append(' ')
                        .append(v2)
                        .append(' ')
                        .append(v3)
                        .append("rn");
                }
               
            }
            writer.append("rn");
        }
    }
   
}

u have a good method here, i


vn -0.004464905 -0.9309662 0.36507794
vn -0.004464905 -0.9309662 0.36507794
vn -0.004464905 -0.9309662 0.36507794
vn -0.16244379 -0.9825666 0.09041496
vn -0.16244379 -0.9825666 0.09041496
...
vn 0.040765014 0.9690948 -0.2432971
vn 0.040765014 0.9690948 -0.2432971
vn 0.040765014 0.9690948 -0.2432971
vn -0.419399 0.7670375 -0.48554906
vn -0.419399 0.7670375 -0.48554906
vn -0.419399 0.7670375 -0.48554906
vn -0.30325484 0.7135624 -0.63155776
vn -0.30325484 0.7135624 -0.63155776
vn -0.30325484 0.7135624 -0.63155776
vn -0.43657076 0.87479365 -0.21010013
vn -0.43657076 0.87479365 -0.21010013
vn -0.43657076 0.87479365 -0.21010013
vn -0.3558877 0.7756901 -0.52119935
vn -0.3558877 0.7756901 -0.52119935
vn -0.3558877 0.7756901 -0.52119935
vn -0.33437148 0.76591074 -0.5491597
vn -0.33437148 0.76591074 -0.5491597
vn -0.33437148 0.76591074 -0.5491597
vn -0.3538057 0.7485491 -0.5607991
vn -0.3538057 0.7485491 -0.5607991
vn -0.3538057 0.7485491 -0.5607991
vn -0.532791 0.7973417 -0.28351367
vn -0.532791 0.7973417 -0.28351367
vn -0.532791 0.7973417 -0.28351367
vn -0.61935896 0.7744899 -0.12868547
vn -0.61935896 0.7744899 -0.12868547
vn -0.61935896 0.7744899 -0.12868547
vn 0.22002411 0.29500026 -0.92981946
vn 0.22002411 0.29500026 -0.92981946
vn 0.22002411 0.29500026 -0.92981946
vn -0.022723883 0.75531524 -0.65496755
vn -0.022723883 0.75531524 -0.65496755
vn -0.022723883 0.75531524 -0.65496755
vn -0.005775284 0.98865855 -0.15007
vn -0.005775284 0.98865855 -0.15007
vn -0.005775284 0.98865855 -0.15007
vn -0.36396632 0.072090186 -0.928618
vn -0.36396632 0.072090186 -0.928618
vn -0.36396632 0.072090186 -0.928618
vn -0.7268602 0.46313858 -0.50712615
vn -0.7268602 0.46313858 -0.50712615
vn -0.7268602 0.46313858 -0.50712615
vn -0.8023117 0.58247304 0.1304648
vn -0.8023117 0.58247304 0.1304648
vn -0.8023117 0.58247304 0.1304648
vn -0.79798144 0.5037967 0.33077866
vn -0.79798144 0.5037967 0.33077866
vn -0.79798144 0.5037967 0.33077866
vn -0.714445 0.6811524 -0.15999916
vn -0.714445 0.6811524 -0.15999916
vn -0.714445 0.6811524 -0.15999916
vn -0.8967878 0.44172353 -0.025533663
vn -0.8967878 0.44172353 -0.025533663
vn -0.8967878 0.44172353 -0.025533663
vn -0.5970089 0.6808056 -0.4243633
vn -0.5970089 0.6808056 -0.4243633
vn -0.5970089 0.6808056 -0.4243633
vn -0.68782675 0.527486 -0.4986512
vn -0.68782675 0.527486 -0.4986512
vn -0.68782675 0.527486 -0.4986512
vn -0.005388411 0.8612794 -0.508103
vn -0.005388411 0.8612794 -0.508103
vn -0.005388411 0.8612794 -0.508103
vn -0.14872038 0.881146 -0.44884723
vn -0.14872038 0.881146 -0.44884723
vn -0.14872038 0.881146 -0.44884723
vn -0.20146427 0.86653614 -0.4566478
vn -0.20146427 0.86653614 -0.4566478
vn -0.20146427 0.86653614 -0.4566478
vn -0.51898396 0.830296 0.20313595
vn -0.51898396 0.830296 0.20313595
vn -0.51898396 0.830296 0.20313595
vn -0.4811172 0.8676229 0.12552576
vn -0.4811172 0.8676229 0.12552576
vn -0.4811172 0.8676229 0.12552576
vn -0.75712746 0.6322297 0.16444968
vn -0.75712746 0.6322297 0.16444968
vn -0.75712746 0.6322297 0.16444968
vn -0.687524 0.656295 0.3107853
vn -0.687524 0.656295 0.3107853
vn -0.687524 0.656295 0.3107853
vn -0.80239546 0.51842344 0.29563272
vn -0.80239546 0.51842344 0.29563272
vn -0.80239546 0.51842344 0.29563272
vn -0.8278222 0.5407006 0.14951004
vn -0.8278222 0.5407006 0.14951004
vn -0.8278222 0.5407006 0.14951004
vn -0.7523248 0.6587837 -0.003377977
vn -0.7523248 0.6587837 -0.003377977
vn -0.7523248 0.6587837 -0.003377977
vn -0.013361025 -0.60840344 -0.79351544
vn -0.013361025 -0.60840344 -0.79351544
vn -0.013361025 -0.60840344 -0.79351544
vn 0.07745881 -0.6642926 -0.7434484
vn 0.07745881 -0.6642926 -0.7434484
vn 0.07745881 -0.6642926 -0.7434484
vn 0.5208745 0.30126044 -0.79870653
vn 0.5208745 0.30126044 -0.79870653
vn 0.5208745 0.30126044 -0.79870653
vn 0.6750327 -0.21048936 -0.7071245
vn 0.6750327 -0.21048936 -0.7071245
vn 0.6750327 -0.21048936 -0.7071245
vn 0.74702823 -0.18392433 -0.6388432
vn 0.74702823 -0.18392433 -0.6388432
vn 0.74702823 -0.18392433 -0.6388432
vn -0.25819102 -0.5816181 -0.7713999
vn -0.25819102 -0.5816181 -0.7713999
vn -0.25819102 -0.5816181 -0.7713999
vn -0.28900036 -0.5275763 -0.7988379
vn -0.28900036 -0.5275763 -0.7988379
vn -0.28900036 -0.5275763 -0.7988379
vn -0.90168536 -0.37587962 0.21372408
vn -0.90168536 -0.37587962 0.21372408
vn -0.90168536 -0.37587962 0.21372408
vn -0.88195926 -0.43808746 0.17385972
vn -0.88195926 -0.43808746 0.17385972
vn -0.88195926 -0.43808746 0.17385972
vn -0.47596034 -0.24182434 0.8455665
vn -0.47596034 -0.24182434 0.8455665
vn -0.47596034 -0.24182434 0.8455665
vn 0.24889526 -0.048744783 0.967303
vn 0.24889526 -0.048744783 0.967303
vn 0.24889526 -0.048744783 0.967303
vn 0.17647998 -0.06131381 0.9823927
vn 0.17647998 -0.06131381 0.9823927
vn 0.17647998 -0.06131381 0.9823927
vn 0.3387533 -0.32680175 0.8822963
vn 0.3387533 -0.32680175 0.8822963
vn 0.3387533 -0.32680175 0.8822963
vn 0.20703246 -0.22883943 0.9511941
vn 0.20703246 -0.22883943 0.9511941
vn 0.20703246 -0.22883943 0.9511941
vn 0.4296982 -0.32943246 0.8407341
vn 0.4296982 -0.32943246 0.8407341
vn 0.4296982 -0.32943246 0.8407341
vn 0.4512883 -0.31006646 0.8367781
vn 0.4512883 -0.31006646 0.8367781
vn 0.4512883 -0.31006646 0.8367781
vn -0.52578884 -0.09042024 0.8457956
vn -0.52578884 -0.09042024 0.8457956
vn -0.52578884 -0.09042024 0.8457956
vn 0.33518338 -0.07685505 0.939013
vn 0.33518338 -0.07685505 0.939013
vn 0.33518338 -0.07685505 0.939013
vn 0.45913166 -0.35535333 0.8142003
vn 0.45913166 -0.35535333 0.8142003
vn 0.45913166 -0.35535333 0.8142003
vn 0.47526562 -0.34689033 0.80857265
vn 0.47526562 -0.34689033 0.80857265
vn 0.47526562 -0.34689033 0.80857265
vn 0.6352152 -0.26954973 0.72377115
vn 0.6352152 -0.26954973 0.72377115
vn 0.6352152 -0.26954973 0.72377115
vn 0.6465163 -0.25781164 0.71801794
vn 0.6465163 -0.25781164 0.71801794
vn 0.6465163 -0.25781164 0.71801794
vn 0.80852675 -0.13532184 0.57268876
vn 0.80852675 -0.13532184 0.57268876
vn 0.80852675 -0.13532184 0.57268876
vn 0.8685526 -0.07330519 0.49014565
vn 0.8685526 -0.07330519 0.49014565
vn 0.8685526 -0.07330519 0.49014565
vn 0.9013937 0.29438153 0.31753567
vn 0.9013937 0.29438153 0.31753567
vn 0.9013937 0.29438153 0.31753567
vn 0.790162 0.55048656 0.26945937
vn 0.790162 0.55048656 0.26945937
vn 0.790162 0.55048656 0.26945937
vn 0.5291714 -0.7751168 -0.34521234
vn 0.5291714 -0.7751168 -0.34521234
vn 0.5291714 -0.7751168 -0.34521234
vn 0.6060522 -0.77279824 -0.18837062
vn 0.6060522 -0.77279824 -0.18837062
vn 0.6060522 -0.77279824 -0.18837062
vn 0.94695383 -0.09822174 -0.3059915
vn 0.94695383 -0.09822174 -0.3059915
vn 0.94695383 -0.09822174 -0.3059915
vn 0.92451644 0.013319046 -0.38090944
vn 0.92451644 0.013319046 -0.38090944
vn 0.92451644 0.013319046 -0.38090944
vn -0.6039214 0.7909289 0.09854207
vn -0.6039214 0.7909289 0.09854207
vn -0.6039214 0.7909289 0.09854207
vn -0.5332993 0.8389974 -0.10805156
vn -0.5332993 0.8389974 -0.10805156
vn -0.5332993 0.8389974 -0.10805156
vn -0.0118960515 0.47325805 0.8808435
vn -0.0118960515 0.47325805 0.8808435
vn -0.0118960515 0.47325805 0.8808435
vn -0.8046756 0.59165657 0.04939356
vn -0.8046756 0.59165657 0.04939356
vn -0.8046756 0.59165657 0.04939356
vn -0.88858587 -0.09968455 -0.4477479
vn -0.88858587 -0.09968455 -0.4477479
vn -0.88858587 -0.09968455 -0.4477479
vn -0.8384858 -0.096739635 -0.5362677
vn -0.8384858 -0.096739635 -0.5362677
vn -0.8384858 -0.096739635 -0.5362677
vn 0.11523204 -0.9750209 -0.18988362
vn 0.11523204 -0.9750209 -0.18988362
vn 0.11523204 -0.9750209 -0.18988362
vn -0.10489542 -0.9255043 -0.36392143
vn -0.10489542 -0.9255043 -0.36392143
vn -0.10489542 -0.9255043 -0.36392143
vn -0.2218327 -0.8881793 -0.4024025
vn -0.2218327 -0.8881793 -0.4024025
vn -0.2218327 -0.8881793 -0.4024025
vn 0.082692415 -0.7957943 0.59989446
vn 0.082692415 -0.7957943 0.59989446
vn 0.082692415 -0.7957943 0.59989446
vn 0.030791713 -0.8099849 0.5856417
vn 0.030791713 -0.8099849 0.5856417
vn 0.030791713 -0.8099849 0.5856417
vn 0.31737247 -0.9042865 0.28555325
vn 0.31737247 -0.9042865 0.28555325
vn 0.31737247 -0.9042865 0.28555325
vn 0.26427913 -0.89812523 0.35146496
vn 0.26427913 -0.89812523 0.35146496
vn 0.26427913 -0.89812523 0.35146496
vn -0.115218006 -0.98249876 -0.14635938
vn -0.115218006 -0.98249876 -0.14635938
vn -0.115218006 -0.98249876 -0.14635938
vn -0.16469927 -0.96059465 0.22390188
vn -0.16469927 -0.96059465 0.22390188
vn -0.16469927 -0.96059465 0.22390188
vn 0.029753033 -0.9426013 0.33259207
vn 0.029753033 -0.9426013 0.33259207
vn 0.029753033 -0.9426013 0.33259207
vn 0.031036112 -0.9839628 0.17565309
vn 0.031036112 -0.9839628 0.17565309
vn 0.031036112 -0.9839628 0.17565309
vn 0.0060056583 -0.93339103 0.35881072
vn 0.0060056583 -0.93339103 0.35881072
vn 0.0060056583 -0.93339103 0.35881072
vn -0.105837636 -0.9853075 -0.13404311
vn -0.105837636 -0.9853075 -0.13404311
vn -0.105837636 -0.9853075 -0.13404311
vn -0.052845243 -0.99076223 -0.12489003
vn -0.052845243 -0.99076223 -0.12489003
vn -0.052845243 -0.99076223 -0.12489003
vn 0.14300717 -0.81234366 0.5653731
vn 0.14300717 -0.81234366 0.5653731
vn 0.14300717 -0.81234366 0.5653731
vn 0.25751036 -0.7873879 0.56009704
vn 0.25751036 -0.7873879 0.56009704
vn 0.25751036 -0.7873879 0.56009704
vn -0.31072044 -0.88871294 0.33710846
vn -0.31072044 -0.88871294 0.33710846
vn -0.31072044 -0.88871294 0.33710846
vn -0.34878516 -0.7820955 0.51640624
vn -0.34878516 -0.7820955 0.51640624
vn -0.34878516 -0.7820955 0.51640624
vn 0.34184825 -0.7626796 -0.5490533
vn 0.34184825 -0.7626796 -0.5490533
vn 0.34184825 -0.7626796 -0.5490533
vn 0.14935996 -0.9580804 -0.24448614
vn 0.14935996 -0.9580804 -0.24448614
vn 0.14935996 -0.9580804 -0.24448614
vn -0.16053843 0.610321 -0.7757163
vn -0.16053843 0.610321 -0.7757163
vn -0.16053843 0.610321 -0.7757163
vn -0.21692106 -0.97371995 -0.06938724
vn -0.21692106 -0.97371995 -0.06938724
vn -0.21692106 -0.97371995 -0.06938724
vn -0.21529044 -0.97391534 -0.07168686
vn -0.21529044 -0.97391534 -0.07168686
vn -0.21529044 -0.97391534 -0.07168686
vn -0.21780573 -0.9693163 -0.11395813
vn -0.21780573 -0.9693163 -0.11395813
vn -0.21780573 -0.9693163 -0.11395813
vn -0.15998918 -0.9582132 -0.23713042
vn -0.15998918 -0.9582132 -0.23713042
vn -0.15998918 -0.9582132 -0.23713042
vn 0.36665788 0.12438682 -0.92200315
vn 0.36665788 0.12438682 -0.92200315
vn 0.36665788 0.12438682 -0.92200315
vn 0.28616518 0.23693396 -0.92842436
vn 0.28616518 0.23693396 -0.92842436
vn 0.28616518 0.23693396 -0.92842436
vn -0.49028325 0.8042717 0.33581156
vn -0.49028325 0.8042717 0.33581156
vn -0.49028325 0.8042717 0.33581156
vn -0.56816894 -0.7974062 -0.20329127
vn -0.56816894 -0.7974062 -0.20329127
vn -0.56816894 -0.7974062 -0.20329127
vn 0.88757443 -0.25016326 -0.3868203
vn 0.88757443 -0.25016326 -0.3868203
vn 0.88757443 -0.25016326 -0.3868203
vn 0.8851454 -0.23443112 -0.4019448
vn 0.8851454 -0.23443112 -0.4019448
vn 0.8851454 -0.23443112 -0.4019448
vn 0.98694515 -0.16042121 -0.014294145
vn 0.98694515 -0.16042121 -0.014294145
vn 0.98694515 -0.16042121 -0.014294145
vn 0.99277514 -0.11235258 -0.042122982
vn 0.99277514 -0.11235258 -0.042122982
vn 0.99277514 -0.11235258 -0.042122982
vn 0.85133785 -0.43177533 0.29798317
vn 0.85133785 -0.43177533 0.29798317
vn 0.85133785 -0.43177533 0.29798317
vn 0.8757766 -0.4057522 0.2614968
vn 0.8757766 -0.4057522 0.2614968
vn 0.8757766 -0.4057522 0.2614968
vn 0.4388425 -0.85531425 0.2754176
vn 0.4388425 -0.85531425 0.2754176
vn 0.4388425 -0.85531425 0.2754176
vn 0.62147045 -0.7656048 0.16620368
vn 0.62147045 -0.7656048 0.16620368
vn 0.62147045 -0.7656048 0.16620368
vn 0.3924484 0.4934023 0.7762335
vn 0.3924484 0.4934023 0.7762335
vn 0.3924484 0.4934023 0.7762335
vn 0.41380215 0.4114964 0.8120582
vn 0.41380215 0.4114964 0.8120582
vn 0.41380215 0.4114964 0.8120582
vn 0.37387827 -0.17873713 0.9100923
vn 0.37387827 -0.17873713 0.9100923
vn 0.37387827 -0.17873713 0.9100923
vn 0.4900554 -0.052155145 0.8701296
vn 0.4900554 -0.052155145 0.8701296
vn 0.4900554 -0.052155145 0.8701296
vn 0.28274807 -0.004810871 0.9591822
vn 0.28274807 -0.004810871 0.9591822
vn 0.28274807 -0.004810871 0.9591822
vn 0.3048283 -0.74803025 0.5895172
vn 0.3048283 -0.74803025 0.5895172
vn 0.3048283 -0.74803025 0.5895172
vn 0.22399038 -0.4349346 0.8721583
vn 0.22399038 -0.4349346 0.8721583
vn 0.22399038 -0.4349346 0.8721583
vn 0.31221637 -0.4295935 0.8473312
vn 0.31221637 -0.4295935 0.8473312
vn 0.31221637 -0.4295935 0.8473312
vn -0.120158605 0.08454874 0.98914784
vn -0.120158605 0.08454874 0.98914784
vn -0.120158605 0.08454874 0.98914784
vn -0.48208863 -0.64222026 0.5959393
vn -0.48208863 -0.64222026 0.5959393
vn -0.48208863 -0.64222026 0.5959393
vn -0.37216902 -0.80254006 0.4662828
vn -0.37216902 -0.80254006 0.4662828
vn -0.37216902 -0.80254006 0.4662828
vn -0.9537597 -0.09172106 -0.2862334
vn -0.9537597 -0.09172106 -0.2862334
vn -0.9537597 -0.09172106 -0.2862334
vn -0.7993339 -0.42696413 -0.42280856
vn -0.7993339 -0.42696413 -0.42280856
vn -0.7993339 -0.42696413 -0.42280856
vn -0.3626494 -0.50580555 -0.78271717
vn -0.3626494 -0.50580555 -0.78271717
vn -0.3626494 -0.50580555 -0.78271717
vn 0.7578391 0.0583479 -0.64982736
vn 0.7578391 0.0583479 -0.64982736
vn 0.7578391 0.0583479 -0.64982736
vn 0.32032272 0.36262503 -0.87515515
vn 0.32032272 0.36262503 -0.87515515
vn 0.32032272 0.36262503 -0.87515515
vn -0.34098902 -0.019048695 -0.9398743
vn -0.34098902 -0.019048695 -0.9398743
vn -0.34098902 -0.019048695 -0.9398743
vn -0.18296452 -0.0019774812 -0.9831175
vn -0.18296452 -0.0019774812 -0.9831175
vn -0.18296452 -0.0019774812 -0.9831175
vn -0.6597223 0.67035127 0.33969933
vn -0.6597223 0.67035127 0.33969933
vn -0.6597223 0.67035127 0.33969933
vn -0.6541895 0.68693614 0.31647208
vn -0.6541895 0.68693614 0.31647208
vn -0.6541895 0.68693614 0.31647208
vn -0.64100784 0.6798848 0.356182
vn -0.64100784 0.6798848 0.356182
vn -0.64100784 0.6798848 0.356182
vn -0.6768669 0.73440105 -0.050061908
vn -0.6768669 0.73440105 -0.050061908
vn -0.6768669 0.73440105 -0.050061908
vn -0.8034102 0.57751566 0.14494056
vn -0.8034102 0.57751566 0.14494056
vn -0.8034102 0.57751566 0.14494056
vn -0.16248217 0.9859251 -0.039386507
vn -0.16248217 0.9859251 -0.039386507
vn -0.16248217 0.9859251 -0.039386507
vn -0.05664384 0.99259996 -0.1074098
vn -0.05664384 0.99259996 -0.1074098
vn -0.05664384 0.99259996 -0.1074098
vn -0.60016555 0.56583524 -0.56535995
vn -0.60016555 0.56583524 -0.56535995
vn -0.60016555 0.56583524 -0.56535995
vn -0.6071626 0.54819304 -0.5751851
vn -0.6071626 0.54819304 -0.5751851
vn -0.6071626 0.54819304 -0.5751851
vn -0.9083049 0.32323745 -0.26551786
vn -0.9083049 0.32323745 -0.26551786
vn -0.9083049 0.32323745 -0.26551786
vn -0.7925824 0.59491575 -0.13374794
vn -0.7925824 0.59491575 -0.13374794
vn -0.7925824 0.59491575 -0.13374794
vn -0.6546407 0.7527747 -0.069106944
vn -0.6546407 0.7527747 -0.069106944
vn -0.6546407 0.7527747 -0.069106944
vn -0.6169714 0.7384861 -0.2720011
vn -0.6169714 0.7384861 -0.2720011
vn -0.6169714 0.7384861 -0.2720011
vn -0.7647508 0.61794955 0.18246807
vn -0.7647508 0.61794955 0.18246807
vn -0.7647508 0.61794955 0.18246807
vn -0.76549435 0.61782223 0.1797611
vn -0.76549435 0.61782223 0.1797611
vn -0.76549435 0.61782223 0.1797611
vn -0.5177679 0.8275629 -0.21692367
vn -0.5177679 0.8275629 -0.21692367
vn -0.5177679 0.8275629 -0.21692367
vn -0.054572597 0.4217413 -0.90507245
vn -0.054572597 0.4217413 -0.90507245
vn -0.054572597 0.4217413 -0.90507245
vn -0.77598995 0.542622 -0.32156023
vn -0.77598995 0.542622 -0.32156023
vn -0.77598995 0.542622 -0.32156023
vn 0.052436758 0.9103752 -0.41044772
vn 0.052436758 0.9103752 -0.41044772
vn 0.052436758 0.9103752 -0.41044772
vn -0.50629306 0.80790263 -0.30159697
vn -0.50629306 0.80790263 -0.30159697
vn -0.50629306 0.80790263 -0.30159697
vn -0.42577136 0.78047407 -0.45779794
vn -0.42577136 0.78047407 -0.45779794
vn -0.42577136 0.78047407 -0.45779794
vn 0.37164277 0.33448362 -0.8660268
vn 0.37164277 0.33448362 -0.8660268
vn 0.37164277 0.33448362 -0.8660268
vn -0.30086336 0.7480557 -0.59151834
vn -0.30086336 0.7480557 -0.59151834
vn -0.30086336 0.7480557 -0.59151834
vn -0.5485644 0.83212143 -0.0815542
vn -0.5485644 0.83212143 -0.0815542
vn -0.5485644 0.83212143 -0.0815542
vn -0.606544 0.7866366 -0.11535661
vn -0.606544 0.7866366 -0.11535661
vn -0.606544 0.7866366 -0.1153566



no indexes and several points with the same coordinates.