⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 material.cpp

📁 最新osg包
💻 CPP
📖 第 1 页 / 共 2 页
字号:
          }        }        break;      case LIB3DS_MAT_OPACMASK:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->opacity_mask, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_BUMPMAP:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->bump_map, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_BUMPMASK:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->bump_mask, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_SPECMAP:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->specular_map, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_SPECMASK:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->specular_mask, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_SHINMAP:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->shininess_map, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_SHINMASK:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->shininess_mask, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_SELFIMAP:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->self_illum_map, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_SELFIMASK:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->self_illum_mask, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_REFLMAP:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->reflection_map, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_REFLMASK:        {          lib3ds_chunk_read_reset(&c, f);          if (!texture_map_read(&material->reflection_mask, f)) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_MAT_ACUBIC:        {          lib3ds_intb_read(f);          material->autorefl_map.level=lib3ds_intb_read(f);          material->autorefl_map.flags=lib3ds_intw_read(f);          material->autorefl_map.size=lib3ds_intd_read(f);          material->autorefl_map.frame_step=lib3ds_intd_read(f);        }        break;      default:        lib3ds_chunk_unknown(chunk);    }  }  lib3ds_chunk_read_end(&c, f);  return(LIB3DS_TRUE);}static Lib3dsBoolcolor_write(Lib3dsRgba rgb, FILE *f){  Lib3dsChunk c;  c.chunk=LIB3DS_COLOR_24;  c.size=9;  lib3ds_chunk_write(&c,f);  lib3ds_byte_write((Lib3dsByte)floor(255.0*rgb[0]+0.5),f);  lib3ds_byte_write((Lib3dsByte)floor(255.0*rgb[1]+0.5),f);  lib3ds_byte_write((Lib3dsByte)floor(255.0*rgb[2]+0.5),f);  c.chunk=LIB3DS_LIN_COLOR_24;  c.size=9;  lib3ds_chunk_write(&c,f);  lib3ds_byte_write((Lib3dsByte)floor(255.0*rgb[0]+0.5),f);  lib3ds_byte_write((Lib3dsByte)floor(255.0*rgb[1]+0.5),f);  lib3ds_byte_write((Lib3dsByte)floor(255.0*rgb[2]+0.5),f);  return(LIB3DS_TRUE);}static Lib3dsBoolint_percentage_write(Lib3dsFloat p, FILE *f){  Lib3dsChunk c;  c.chunk=LIB3DS_INT_PERCENTAGE;  c.size=8;  lib3ds_chunk_write(&c,f);  lib3ds_intw_write((Lib3dsByte)floor(100.0*p+0.5),f);  return(LIB3DS_TRUE);}static Lib3dsBooltexture_map_write(Lib3dsWord chunk, Lib3dsTextureMap *map, FILE *f){  Lib3dsChunk c;  if (strlen(map->name)==0) {    return(LIB3DS_TRUE);  }  c.chunk=chunk;  if (!lib3ds_chunk_write_start(&c,f)) {    return(LIB3DS_FALSE);  }    int_percentage_write(map->percent,f);  { /*---- LIB3DS_MAT_MAPNAME ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAPNAME;    c.size=6+strlen(map->name)+1;    lib3ds_chunk_write(&c,f);    lib3ds_string_write(map->name,f);  }  { /*---- LIB3DS_MAT_MAP_TILING ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_TILING;    c.size=8;    lib3ds_chunk_write(&c,f);    lib3ds_word_write((Lib3dsWord)map->flags,f);  }    { /*---- LIB3DS_MAT_MAP_TEXBLUR ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_TEXBLUR;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(map->blur,f);  }  { /*---- LIB3DS_MAT_MAP_USCALE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_USCALE;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(map->scale[0],f);  }  { /*---- LIB3DS_MAT_MAP_VSCALE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_VSCALE;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(map->scale[1],f);  }  { /*---- LIB3DS_MAT_MAP_UOFFSET ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_UOFFSET;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(map->offset[0],f);  }  { /*---- LIB3DS_MAT_MAP_VOFFSET ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_VOFFSET;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(map->offset[1],f);  }  { /*---- LIB3DS_MAT_MAP_ANG ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_ANG;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(map->rotation,f);  }  { /*---- LIB3DS_MAT_MAP_COL1 ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_COL1;    c.size=9;    lib3ds_chunk_write(&c,f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_1[0]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_1[1]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_1[2]+0.5), f);  }  { /*---- LIB3DS_MAT_MAP_COL2 ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_COL2;    c.size=9;    lib3ds_chunk_write(&c,f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_2[0]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_2[1]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_2[2]+0.5), f);  }    { /*---- LIB3DS_MAT_MAP_RCOL ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_RCOL;    c.size=9;    lib3ds_chunk_write(&c,f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_r[0]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_r[1]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_r[2]+0.5), f);  }  { /*---- LIB3DS_MAT_MAP_GCOL ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_GCOL;    c.size=9;    lib3ds_chunk_write(&c,f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_g[0]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_g[1]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_g[2]+0.5), f);  }    { /*---- LIB3DS_MAT_MAP_BCOL ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_MAP_BCOL;    c.size=9;    lib3ds_chunk_write(&c,f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_b[0]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_b[1]+0.5), f);    lib3ds_byte_write((Lib3dsByte)floor(255.0*map->tint_b[2]+0.5), f);  }  if (!lib3ds_chunk_write_end(&c,f)) {    return(LIB3DS_FALSE);  }  return(LIB3DS_TRUE);}/*! * \ingroup material */Lib3dsBoollib3ds_material_write(Lib3dsMaterial *material, FILE *f){  Lib3dsChunk c;  c.chunk=LIB3DS_MAT_ENTRY;  if (!lib3ds_chunk_write_start(&c,f)) {    return(LIB3DS_FALSE);  }  { /*---- LIB3DS_MAT_NAME ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_NAME;    c.size=6+strlen(material->name)+1;    lib3ds_chunk_write(&c,f);    lib3ds_string_write(material->name,f);  }  { /*---- LIB3DS_MAT_AMBIENT ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_AMBIENT;    c.size=24;    lib3ds_chunk_write(&c,f);    color_write(material->ambient,f);  }  { /*---- LIB3DS_MAT_DIFFUSE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_DIFFUSE;    c.size=24;    lib3ds_chunk_write(&c,f);    color_write(material->diffuse,f);  }  { /*---- LIB3DS_MAT_SPECULAR ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_SPECULAR;    c.size=24;    lib3ds_chunk_write(&c,f);    color_write(material->specular,f);  }  { /*---- LIB3DS_MAT_SHININESS ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_SHININESS;    c.size=14;    lib3ds_chunk_write(&c,f);    int_percentage_write(material->shininess,f);  }  { /*---- LIB3DS_MAT_SHIN2PCT ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_SHIN2PCT;    c.size=14;    lib3ds_chunk_write(&c,f);    int_percentage_write(material->shin_strength,f);  }  { /*---- LIB3DS_MAT_TRANSPARENCY ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_TRANSPARENCY;    c.size=14;    lib3ds_chunk_write(&c,f);    int_percentage_write(material->transparency,f);  }  { /*---- LIB3DS_MAT_XPFALL ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_XPFALL;    c.size=14;    lib3ds_chunk_write(&c,f);    int_percentage_write(material->falloff,f);  }  if (material->use_falloff) { /*---- LIB3DS_MAT_USE_XPFALL ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_USE_XPFALL;    c.size=6;    lib3ds_chunk_write(&c,f);  }  { /*---- LIB3DS_MAT_SHADING ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_SHADING;    c.size=8;    lib3ds_chunk_write(&c,f);    lib3ds_intw_write(material->shading,f);  }  { /*---- LIB3DS_MAT_REFBLUR ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_REFBLUR;    c.size=14;    lib3ds_chunk_write(&c,f);    int_percentage_write(material->blur,f);  }  if (material->use_blur) { /*---- LIB3DS_MAT_USE_REFBLUR ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_USE_REFBLUR;    c.size=6;    lib3ds_chunk_write(&c,f);  }  if (material->self_illum) { /*---- LIB3DS_MAT_SELF_ILLUM ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_SELF_ILLUM;    c.size=6;    lib3ds_chunk_write(&c,f);  }  if (material->two_sided) { /*---- LIB3DS_MAT_TWO_SIDE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_TWO_SIDE;    c.size=6;    lib3ds_chunk_write(&c,f);  }    if (material->map_decal) { /*---- LIB3DS_MAT_DECAL ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_DECAL;    c.size=6;    lib3ds_chunk_write(&c,f);  }  if (material->additive) { /*---- LIB3DS_MAT_ADDITIVE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_ADDITIVE;    c.size=6;    lib3ds_chunk_write(&c,f);  }  if (material->use_wire) { /*---- LIB3DS_MAT_WIRE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_WIRE;    c.size=6;    lib3ds_chunk_write(&c,f);  }  if (material->use_wire_abs) { /*---- LIB3DS_MAT_WIREABS ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_WIREABS;    c.size=6;    lib3ds_chunk_write(&c,f);  }  { /*---- LIB3DS_MAT_WIRE_SIZE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_WIRE_SIZE;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(material->wire_size,f);  }  if (material->face_map) { /*---- LIB3DS_MAT_FACEMAP ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_FACEMAP;    c.size=6;    lib3ds_chunk_write(&c,f);  }  if (material->soften) { /*---- LIB3DS_MAT_PHONGSOFT ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_MAT_PHONGSOFT;    c.size=6;    lib3ds_chunk_write(&c,f);  }  if (!texture_map_write(LIB3DS_MAT_TEXMAP, &material->texture1_map, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_TEXMASK, &material->texture1_mask, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_TEX2MAP, &material->texture2_map, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_TEX2MASK, &material->texture2_mask, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_OPACMAP, &material->opacity_map, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_OPACMASK, &material->opacity_mask, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_BUMPMAP, &material->bump_map, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_BUMPMASK, &material->bump_mask, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_SPECMAP, &material->specular_map, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_SPECMASK, &material->specular_mask, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_SHINMAP, &material->shininess_map, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_SHINMASK, &material->shininess_mask, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_SELFIMAP, &material->self_illum_map, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_SELFIMASK, &material->self_illum_mask, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_REFLMAP,  &material->reflection_map, f)) {    return(LIB3DS_FALSE);  }  if (!texture_map_write(LIB3DS_MAT_REFLMASK,  &material->reflection_mask, f)) {    return(LIB3DS_FALSE);  }  if (!lib3ds_chunk_write_end(&c,f)) {    return(LIB3DS_FALSE);  }  return(LIB3DS_TRUE);}/*!\typedef Lib3dsMaterial  \ingroup material  \sa _Lib3dsMaterial*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -