Wings 3D Development Forum
Parsing .obj file - Printable Version

+- Wings 3D Development Forum (https://www.wings3d.com/forum)
+-- Forum: Wings 3D (https://www.wings3d.com/forum/forumdisplay.php?fid=1)
+--- Forum: Programming (https://www.wings3d.com/forum/forumdisplay.php?fid=7)
+--- Thread: Parsing .obj file (/showthread.php?tid=1128)



Parsing .obj file - Namrata - 03-30-2015

Hi,

I imported a .obj file using the e3d_obj:import("filename") command.
Now I need to access all the vertices from that file. I have attached in the file the record that is created.

Could you please help me figure out how I can access all the values corresponding to 'vs' and store that as a separate list.


RE: Parsing .obj file - ggaliens - 03-30-2015

As you probably know ... #e3d_file is an intermediate data format. I will find you a snippet that converts into #we{ }

Code:
carveCSGImport(FileName) ->
    case e3d_obj:import( getTempDir() ++ "/" ++ FileName ) of
        {ok,{e3d_file,[],[],[],_}} ->
            { empty, error };
        {ok,E3dFile0} ->
            NameNow = io_lib:format("polyhead~p_~p_~p", tuple_to_list(erlang:now()) ),
            #e3d_file{} = E3dFile0,
            St0 = newSt(),  %% Worried about impact of this new wpa:import on coffin speed. Need test !
            St = wpa:import(E3dFile0, St0),
            Wes = gb_trees:values(St#st.shapes),
            WeNew = wings_we:merge(Wes),
            {ok,WeNew#we{name=NameNow}};
        _OTHER ->
            _OTHER
    end.

So ... wpa:import(E3dFile0, St0)

will get the data into the current wings state #st{}

And then you can just find the last item into that state if you want.