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

📄 shadow.cpp

📁 最新osg包
💻 CPP
字号:
/* * The 3D Studio File Format Library * Copyright (C) 1996-2001 by J.E. Hoffmann <je-h@gmx.net> * All rights reserved. * * This program is  free  software;  you can redistribute it and/or modify it * under the terms of the  GNU Lesser General Public License  as published by  * the  Free Software Foundation;  either version 2.1 of the License,  or (at  * your option) any later version. * * This  program  is  distributed in  the  hope that it will  be useful,  but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or  FITNESS FOR A  PARTICULAR PURPOSE.  See the  GNU Lesser General Public   * License for more details. * * You should  have received  a copy of the GNU Lesser General Public License * along with  this program;  if not, write to the  Free Software Foundation, * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Id: shadow.cpp 1563 2003-01-24 15:12:54Z robert $ */#define LIB3DS_EXPORT#include "shadow.h"#include "chunk.h"#include "readwrite.h"#include <math.h>/*! * \defgroup shadow Shadow Map Settings * * \author J.E. Hoffmann <je-h@gmx.net> *//*! * \ingroup shadow  */Lib3dsBoollib3ds_shadow_read(Lib3dsShadow *shadow, FILE *f){  Lib3dsChunk c;  if (!lib3ds_chunk_read(&c, f)) {    return(LIB3DS_FALSE);  }    switch (c.chunk) {    case LIB3DS_SHADOW_MAP_SIZE:      {        shadow->map_size=lib3ds_intw_read(f);      }      break;    case LIB3DS_LO_SHADOW_BIAS:      {          shadow->lo_bias=lib3ds_float_read(f);      }      break;    case LIB3DS_HI_SHADOW_BIAS:      {        shadow->hi_bias=lib3ds_float_read(f);      }      break;    case LIB3DS_SHADOW_SAMPLES:      {        shadow->samples=lib3ds_intw_read(f);      }      break;    case LIB3DS_SHADOW_RANGE:      {        shadow->range=lib3ds_intd_read(f);      }      break;    case LIB3DS_SHADOW_FILTER:      {        shadow->filter=lib3ds_float_read(f);      }      break;    case LIB3DS_RAY_BIAS:      {        shadow->ray_bias=lib3ds_float_read(f);      }      break;  }    return(LIB3DS_TRUE);}/*! * \ingroup shadow  */Lib3dsBoollib3ds_shadow_write(Lib3dsShadow *shadow, FILE *f){  if (fabs(shadow->lo_bias)>LIB3DS_EPSILON) { /*---- LIB3DS_LO_SHADOW_BIAS ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_LO_SHADOW_BIAS;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(shadow->lo_bias,f);  }  if (fabs(shadow->hi_bias)>LIB3DS_EPSILON) { /*---- LIB3DS_HI_SHADOW_BIAS ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_HI_SHADOW_BIAS;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(shadow->hi_bias,f);  }  if (shadow->map_size) { /*---- LIB3DS_SHADOW_MAP_SIZE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_SHADOW_MAP_SIZE;    c.size=8;    lib3ds_chunk_write(&c,f);    lib3ds_intw_write(shadow->map_size,f);  }    if (shadow->samples) { /*---- LIB3DS_SHADOW_SAMPLES ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_SHADOW_SAMPLES;    c.size=8;    lib3ds_chunk_write(&c,f);    lib3ds_intw_write(shadow->samples,f);  }  if (shadow->range) { /*---- LIB3DS_SHADOW_RANGE ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_SHADOW_RANGE;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_intd_write(shadow->range,f);  }  if (fabs(shadow->filter)>LIB3DS_EPSILON) { /*---- LIB3DS_SHADOW_FILTER ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_SHADOW_FILTER;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(shadow->filter,f);  }  if (fabs(shadow->ray_bias)>LIB3DS_EPSILON) { /*---- LIB3DS_RAY_BIAS ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_RAY_BIAS;    c.size=10;    lib3ds_chunk_write(&c,f);    lib3ds_float_write(shadow->ray_bias,f);  }  return(LIB3DS_TRUE);}/*!\typedef Lib3dsShadow  \ingroup shadow  \sa _Lib3dsShadow*/

⌨️ 快捷键说明

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