Wings 3D Development Forum

Full Version: Parsing .obj file
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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.
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.