public static void lib3ds_viewport_read(Lib3dsViewport viewport, Lib3dsIo io) { Lib3dsChunk c=new Lib3dsChunk(); Lib3dsChunks chunk; viewport.Clear(); lib3ds_chunk_read_start(c, 0, io); switch(c.chunk) { case Lib3dsChunks.CHK_VIEWPORT_LAYOUT: viewport.layout_style=(Lib3dsLayoutStyle)lib3ds_io_read_word(io); viewport.layout_active=lib3ds_io_read_intw(io); lib3ds_io_read_intw(io); viewport.layout_swap=lib3ds_io_read_intw(io); lib3ds_io_read_intw(io); viewport.layout_swap_prior=lib3ds_io_read_intw(io); viewport.layout_swap_view=lib3ds_io_read_intw(io); lib3ds_chunk_read_tell(c, io); while((chunk=lib3ds_chunk_read_next(c, io))!=0) { switch(chunk) { case Lib3dsChunks.CHK_VIEWPORT_SIZE: viewport.layout_position[0]=lib3ds_io_read_word(io); viewport.layout_position[1]=lib3ds_io_read_word(io); viewport.layout_size[0]=lib3ds_io_read_word(io); viewport.layout_size[1]=lib3ds_io_read_word(io); break; case Lib3dsChunks.CHK_VIEWPORT_DATA_3: { lib3ds_io_read_intw(io); Lib3dsView layout_view=new Lib3dsView(); layout_view.axis_lock=lib3ds_io_read_word(io); layout_view.position[0]=lib3ds_io_read_intw(io); layout_view.position[1]=lib3ds_io_read_intw(io); layout_view.size[0]=lib3ds_io_read_intw(io); layout_view.size[1]=lib3ds_io_read_intw(io); layout_view.type=(Lib3dsViewType)lib3ds_io_read_word(io); layout_view.zoom=lib3ds_io_read_float(io); lib3ds_io_read_vector(io, layout_view.center); layout_view.horiz_angle=lib3ds_io_read_float(io); layout_view.vert_angle=lib3ds_io_read_float(io); lib3ds_io_read(io, layout_view.camera, 11); viewport.layout_views.Add(layout_view); } break; case Lib3dsChunks.CHK_VIEWPORT_DATA: break; // 3DS R2 & R3 chunk unsupported default: lib3ds_chunk_unknown(chunk, io); break; } } break; case Lib3dsChunks.CHK_DEFAULT_VIEW: while((chunk=lib3ds_chunk_read_next(c, io))!=0) { switch(chunk) { case Lib3dsChunks.CHK_VIEW_TOP: viewport.default_type=Lib3dsViewType.LIB3DS_VIEW_TOP; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width=lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_BOTTOM: viewport.default_type=Lib3dsViewType.LIB3DS_VIEW_BOTTOM; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width=lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_LEFT: viewport.default_type=Lib3dsViewType.LIB3DS_VIEW_LEFT; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width=lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_RIGHT: viewport.default_type=Lib3dsViewType.LIB3DS_VIEW_RIGHT; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width=lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_FRONT: viewport.default_type=Lib3dsViewType.LIB3DS_VIEW_FRONT; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width=lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_BACK: viewport.default_type=Lib3dsViewType.LIB3DS_VIEW_BACK; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width=lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_USER: viewport.default_type=Lib3dsViewType.LIB3DS_VIEW_USER; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width=lib3ds_io_read_float(io); viewport.default_horiz_angle=lib3ds_io_read_float(io); viewport.default_vert_angle=lib3ds_io_read_float(io); viewport.default_roll_angle=lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_CAMERA: viewport.default_type=Lib3dsViewType.LIB3DS_VIEW_CAMERA; lib3ds_io_read(io, viewport.default_camera, 11); break; default: lib3ds_chunk_unknown(chunk, io); break; } } break; } lib3ds_chunk_read_end(c, io); }
public static void lib3ds_viewport_read(Lib3dsViewport viewport, Lib3dsIo io) { Lib3dsChunk c = new Lib3dsChunk(); Lib3dsChunks chunk; viewport.Clear(); lib3ds_chunk_read_start(c, 0, io); switch (c.chunk) { case Lib3dsChunks.CHK_VIEWPORT_LAYOUT: viewport.layout_style = (Lib3dsLayoutStyle)lib3ds_io_read_word(io); viewport.layout_active = lib3ds_io_read_intw(io); lib3ds_io_read_intw(io); viewport.layout_swap = lib3ds_io_read_intw(io); lib3ds_io_read_intw(io); viewport.layout_swap_prior = lib3ds_io_read_intw(io); viewport.layout_swap_view = lib3ds_io_read_intw(io); lib3ds_chunk_read_tell(c, io); while ((chunk = lib3ds_chunk_read_next(c, io)) != 0) { switch (chunk) { case Lib3dsChunks.CHK_VIEWPORT_SIZE: viewport.layout_position[0] = lib3ds_io_read_word(io); viewport.layout_position[1] = lib3ds_io_read_word(io); viewport.layout_size[0] = lib3ds_io_read_word(io); viewport.layout_size[1] = lib3ds_io_read_word(io); break; case Lib3dsChunks.CHK_VIEWPORT_DATA_3: { lib3ds_io_read_intw(io); Lib3dsView layout_view = new Lib3dsView(); layout_view.axis_lock = lib3ds_io_read_word(io); layout_view.position[0] = lib3ds_io_read_intw(io); layout_view.position[1] = lib3ds_io_read_intw(io); layout_view.size[0] = lib3ds_io_read_intw(io); layout_view.size[1] = lib3ds_io_read_intw(io); layout_view.type = (Lib3dsViewType)lib3ds_io_read_word(io); layout_view.zoom = lib3ds_io_read_float(io); lib3ds_io_read_vector(io, layout_view.center); layout_view.horiz_angle = lib3ds_io_read_float(io); layout_view.vert_angle = lib3ds_io_read_float(io); lib3ds_io_read(io, layout_view.camera, 11); viewport.layout_views.Add(layout_view); } break; case Lib3dsChunks.CHK_VIEWPORT_DATA: break; // 3DS R2 & R3 chunk unsupported default: lib3ds_chunk_unknown(chunk, io); break; } } break; case Lib3dsChunks.CHK_DEFAULT_VIEW: while ((chunk = lib3ds_chunk_read_next(c, io)) != 0) { switch (chunk) { case Lib3dsChunks.CHK_VIEW_TOP: viewport.default_type = Lib3dsViewType.LIB3DS_VIEW_TOP; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width = lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_BOTTOM: viewport.default_type = Lib3dsViewType.LIB3DS_VIEW_BOTTOM; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width = lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_LEFT: viewport.default_type = Lib3dsViewType.LIB3DS_VIEW_LEFT; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width = lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_RIGHT: viewport.default_type = Lib3dsViewType.LIB3DS_VIEW_RIGHT; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width = lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_FRONT: viewport.default_type = Lib3dsViewType.LIB3DS_VIEW_FRONT; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width = lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_BACK: viewport.default_type = Lib3dsViewType.LIB3DS_VIEW_BACK; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width = lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_USER: viewport.default_type = Lib3dsViewType.LIB3DS_VIEW_USER; lib3ds_io_read_vector(io, viewport.default_position); viewport.default_width = lib3ds_io_read_float(io); viewport.default_horiz_angle = lib3ds_io_read_float(io); viewport.default_vert_angle = lib3ds_io_read_float(io); viewport.default_roll_angle = lib3ds_io_read_float(io); break; case Lib3dsChunks.CHK_VIEW_CAMERA: viewport.default_type = Lib3dsViewType.LIB3DS_VIEW_CAMERA; lib3ds_io_read(io, viewport.default_camera, 11); break; default: lib3ds_chunk_unknown(chunk, io); break; } } break; } lib3ds_chunk_read_end(c, io); }