static void object_flags_write(Lib3dsObjectFlags flags, Lib3dsIo io) { if (flags == 0) { return; } Lib3dsChunk c = new Lib3dsChunk(); c.size = 6; if ((flags & Lib3dsObjectFlags.LIB3DS_OBJECT_HIDDEN) != 0) { c.chunk = Lib3dsChunks.CHK_OBJ_HIDDEN; lib3ds_chunk_write(c, io); } if ((flags & Lib3dsObjectFlags.LIB3DS_OBJECT_VIS_LOFTER) != 0) { c.chunk = Lib3dsChunks.CHK_OBJ_VIS_LOFTER; lib3ds_chunk_write(c, io); } if ((flags & Lib3dsObjectFlags.LIB3DS_OBJECT_DOESNT_CAST) != 0) { c.chunk = Lib3dsChunks.CHK_OBJ_DOESNT_CAST; lib3ds_chunk_write(c, io); } if ((flags & Lib3dsObjectFlags.LIB3DS_OBJECT_MATTE) != 0) { c.chunk = Lib3dsChunks.CHK_OBJ_MATTE; lib3ds_chunk_write(c, io); } if ((flags & Lib3dsObjectFlags.LIB3DS_OBJECT_DONT_RCVSHADOW) != 0) { c.chunk = Lib3dsChunks.CHK_OBJ_DOESNT_CAST; lib3ds_chunk_write(c, io); } if ((flags & Lib3dsObjectFlags.LIB3DS_OBJECT_FAST) != 0) { c.chunk = Lib3dsChunks.CHK_OBJ_FAST; lib3ds_chunk_write(c, io); } if ((flags & Lib3dsObjectFlags.LIB3DS_OBJECT_FROZEN) != 0) { c.chunk = Lib3dsChunks.CHK_OBJ_FROZEN; lib3ds_chunk_write(c, io); } }
static void object_flags_write(Lib3dsObjectFlags flags, Lib3dsIo io) { if(flags==0) return; Lib3dsChunk c=new Lib3dsChunk(); c.size=6; if((flags&Lib3dsObjectFlags.LIB3DS_OBJECT_HIDDEN)!=0) { c.chunk=Lib3dsChunks.CHK_OBJ_HIDDEN; lib3ds_chunk_write(c, io); } if((flags&Lib3dsObjectFlags.LIB3DS_OBJECT_VIS_LOFTER)!=0) { c.chunk=Lib3dsChunks.CHK_OBJ_VIS_LOFTER; lib3ds_chunk_write(c, io); } if((flags&Lib3dsObjectFlags.LIB3DS_OBJECT_DOESNT_CAST)!=0) { c.chunk=Lib3dsChunks.CHK_OBJ_DOESNT_CAST; lib3ds_chunk_write(c, io); } if((flags&Lib3dsObjectFlags.LIB3DS_OBJECT_MATTE)!=0) { c.chunk=Lib3dsChunks.CHK_OBJ_MATTE; lib3ds_chunk_write(c, io); } if((flags&Lib3dsObjectFlags.LIB3DS_OBJECT_DONT_RCVSHADOW)!=0) { c.chunk=Lib3dsChunks.CHK_OBJ_DOESNT_CAST; lib3ds_chunk_write(c, io); } if((flags&Lib3dsObjectFlags.LIB3DS_OBJECT_FAST)!=0) { c.chunk=Lib3dsChunks.CHK_OBJ_FAST; lib3ds_chunk_write(c, io); } if((flags&Lib3dsObjectFlags.LIB3DS_OBJECT_FROZEN)!=0) { c.chunk=Lib3dsChunks.CHK_OBJ_FROZEN; lib3ds_chunk_write(c, io); } }
static void named_object_read(Lib3dsFile file, Lib3dsIo io) { Lib3dsChunk c = new Lib3dsChunk(); string name; Lib3dsChunks chunk; Lib3dsMesh mesh = null; Lib3dsCamera camera = null; Lib3dsLight light = null; Lib3dsObjectFlags object_flags = 0; lib3ds_chunk_read_start(c, Lib3dsChunks.CHK_NAMED_OBJECT, io); name = lib3ds_io_read_string(io, 64); lib3ds_io_log(io, Lib3dsLogLevel.LIB3DS_LOG_INFO, "NAME={0}", name); lib3ds_chunk_read_tell(c, io); while ((chunk = lib3ds_chunk_read_next(c, io)) != 0) { switch (chunk) { case Lib3dsChunks.CHK_N_TRI_OBJECT: mesh = lib3ds_mesh_new(name); lib3ds_file_insert_mesh(file, mesh, -1); lib3ds_chunk_read_reset(c, io); lib3ds_mesh_read(file, mesh, io); break; case Lib3dsChunks.CHK_N_CAMERA: camera = lib3ds_camera_new(name); lib3ds_file_insert_camera(file, camera, -1); lib3ds_chunk_read_reset(c, io); lib3ds_camera_read(camera, io); break; case Lib3dsChunks.CHK_N_DIRECT_LIGHT: light = lib3ds_light_new(name); lib3ds_file_insert_light(file, light, -1); lib3ds_chunk_read_reset(c, io); lib3ds_light_read(light, io); break; case Lib3dsChunks.CHK_OBJ_HIDDEN: object_flags |= Lib3dsObjectFlags.LIB3DS_OBJECT_HIDDEN; break; case Lib3dsChunks.CHK_OBJ_DOESNT_CAST: object_flags |= Lib3dsObjectFlags.LIB3DS_OBJECT_DOESNT_CAST; break; case Lib3dsChunks.CHK_OBJ_VIS_LOFTER: object_flags |= Lib3dsObjectFlags.LIB3DS_OBJECT_VIS_LOFTER; break; case Lib3dsChunks.CHK_OBJ_MATTE: object_flags |= Lib3dsObjectFlags.LIB3DS_OBJECT_MATTE; break; case Lib3dsChunks.CHK_OBJ_DONT_RCVSHADOW: object_flags |= Lib3dsObjectFlags.LIB3DS_OBJECT_DONT_RCVSHADOW; break; case Lib3dsChunks.CHK_OBJ_FAST: object_flags |= Lib3dsObjectFlags.LIB3DS_OBJECT_FAST; break; case Lib3dsChunks.CHK_OBJ_FROZEN: object_flags |= Lib3dsObjectFlags.LIB3DS_OBJECT_FROZEN; break; default: lib3ds_chunk_unknown(chunk, io); break; } } if (mesh != null) { mesh.object_flags = object_flags; } if (camera != null) { camera.object_flags = object_flags; } if (light != null) { light.object_flags = object_flags; } lib3ds_chunk_read_end(c, io); }