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

📄 node.cpp

📁 最新osg包
💻 CPP
📖 第 1 页 / 共 2 页
字号:
          }        }        break;      case LIB3DS_SCL_TRACK_TAG:        {          if (node->type==LIB3DS_OBJECT_NODE) {            if (!lib3ds_lin3_track_read(&node->data.object.scl_track, f)) {              return(LIB3DS_FALSE);            }          }          else {            lib3ds_chunk_unknown(chunk);          }        }        break;      case LIB3DS_FOV_TRACK_TAG:        {          if (node->type==LIB3DS_CAMERA_NODE) {            if (!lib3ds_lin1_track_read(&node->data.camera.fov_track, f)) {              return(LIB3DS_FALSE);            }          }          else {            lib3ds_chunk_unknown(chunk);          }        }        break;      case LIB3DS_HOT_TRACK_TAG:        {          if (node->type==LIB3DS_LIGHT_NODE) {            if (!lib3ds_lin1_track_read(&node->data.light.hotspot_track, f)) {              return(LIB3DS_FALSE);            }          }          else {            lib3ds_chunk_unknown(chunk);          }        }        break;      case LIB3DS_FALL_TRACK_TAG:        {          if (node->type==LIB3DS_LIGHT_NODE) {            if (!lib3ds_lin1_track_read(&node->data.light.falloff_track, f)) {              return(LIB3DS_FALSE);            }          }          else {            lib3ds_chunk_unknown(chunk);          }        }        break;      case LIB3DS_ROLL_TRACK_TAG:        {          Lib3dsBool result=LIB3DS_TRUE;          switch (node->type) {            case LIB3DS_CAMERA_NODE:              result=lib3ds_lin1_track_read(&node->data.camera.roll_track, f);              break;            case LIB3DS_LIGHT_NODE:              result=lib3ds_lin1_track_read(&node->data.light.roll_track, f);              break;            default:              lib3ds_chunk_unknown(chunk);          }          if (!result) {            return(LIB3DS_FALSE);          }        }        break;      case LIB3DS_HIDE_TRACK_TAG:        {          if (node->type==LIB3DS_OBJECT_NODE) {            if (!lib3ds_bool_track_read(&node->data.object.hide_track, f)) {              return(LIB3DS_FALSE);            }          }          else {            lib3ds_chunk_unknown(chunk);          }        }        break;      case LIB3DS_MORPH_SMOOTH:        {          if (node->type==LIB3DS_OBJECT_NODE) {            node->data.object.morph_smooth=lib3ds_float_read(f);          }          else {            lib3ds_chunk_unknown(chunk);          }        }        break;      case LIB3DS_MORPH_TRACK_TAG:        {          if (node->type==LIB3DS_OBJECT_NODE) {            if (!lib3ds_morph_track_read(&node->data.object.morph_track, f)) {              return(LIB3DS_FALSE);            }          }          else {            lib3ds_chunk_unknown(chunk);          }        }        break;      default:        lib3ds_chunk_unknown(chunk);    }  }  lib3ds_chunk_read_end(&c, f);  return(LIB3DS_TRUE);}/*! * \ingroup node */Lib3dsBoollib3ds_node_write(Lib3dsNode *node, Lib3dsFile *file, FILE *f){  Lib3dsChunk c;  switch (node->type) {    case LIB3DS_AMBIENT_NODE:      c.chunk=LIB3DS_AMBIENT_NODE_TAG;      break;    case LIB3DS_OBJECT_NODE:      c.chunk=LIB3DS_OBJECT_NODE_TAG;      break;    case LIB3DS_CAMERA_NODE:      c.chunk=LIB3DS_CAMERA_NODE_TAG;      break;    case LIB3DS_TARGET_NODE:      c.chunk=LIB3DS_TARGET_NODE_TAG;      break;    case LIB3DS_LIGHT_NODE:      if (lib3ds_file_node_by_name(file, node->name, LIB3DS_SPOT_NODE)) {        c.chunk=LIB3DS_SPOTLIGHT_NODE_TAG;      }      else {        c.chunk=LIB3DS_LIGHT_NODE_TAG;      }      break;    case LIB3DS_SPOT_NODE:      c.chunk=LIB3DS_L_TARGET_NODE_TAG;      break;    default:      return(LIB3DS_FALSE);  }  if (!lib3ds_chunk_write_start(&c,f)) {    return(LIB3DS_FALSE);  }  { /*---- LIB3DS_NODE_ID ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_NODE_ID;    c.size=8;    lib3ds_chunk_write(&c,f);    lib3ds_intw_write(node->node_id,f);  }  { /*---- LIB3DS_NODE_HDR ----*/    Lib3dsChunk c;    c.chunk=LIB3DS_NODE_HDR;    c.size=6+ 1+strlen(node->name) +2+2+2;    lib3ds_chunk_write(&c,f);    lib3ds_string_write(node->name,f);    lib3ds_word_write(node->flags1,f);    lib3ds_word_write(node->flags2,f);    lib3ds_word_write(node->parent_id,f);  }  switch (c.chunk) {    case LIB3DS_AMBIENT_NODE_TAG:      { /*---- LIB3DS_COL_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_COL_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.ambient.col_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      break;    case LIB3DS_OBJECT_NODE_TAG:      { /*---- LIB3DS_PIVOT ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_PIVOT;        c.size=18;        lib3ds_chunk_write(&c,f);        lib3ds_vector_write(node->data.object.pivot,f);      }      { /*---- LIB3DS_INSTANCE_NAME ----*/        Lib3dsChunk c;        const char *name;        if (strlen(node->data.object.instance)) {          name=node->data.object.instance;          c.chunk=LIB3DS_INSTANCE_NAME;          c.size=6+1+strlen(name);          lib3ds_chunk_write(&c,f);          lib3ds_string_write(name,f);        }      }      {        int i;        for (i=0; i<3; ++i) {          if ((fabs(node->data.object.bbox_min[i])>LIB3DS_EPSILON) ||            (fabs(node->data.object.bbox_max[i])>LIB3DS_EPSILON)) {            break;          }        }                if (i<3) { /*---- LIB3DS_BOUNDBOX ----*/          Lib3dsChunk c;          c.chunk=LIB3DS_BOUNDBOX;          c.size=30;          lib3ds_chunk_write(&c,f);          lib3ds_vector_write(node->data.object.bbox_min, f);          lib3ds_vector_write(node->data.object.bbox_max, f);        }      }      { /*---- LIB3DS_POS_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_POS_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.object.pos_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_ROT_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_ROT_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_quat_track_write(&node->data.object.rot_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_SCL_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_SCL_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.object.scl_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      if (node->data.object.hide_track.keyL) { /*---- LIB3DS_HIDE_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_HIDE_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_bool_track_write(&node->data.object.hide_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      if (fabs(node->data.object.morph_smooth)>LIB3DS_EPSILON){ /*---- LIB3DS_MORPH_SMOOTH ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_MORPH_SMOOTH;        c.size=10;        lib3ds_chunk_write(&c,f);        lib3ds_float_write(node->data.object.morph_smooth,f);      }      break;    case LIB3DS_CAMERA_NODE_TAG:      { /*---- LIB3DS_POS_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_POS_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.camera.pos_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_FOV_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_FOV_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin1_track_write(&node->data.camera.fov_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_ROLL_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_ROLL_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin1_track_write(&node->data.camera.roll_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      break;    case LIB3DS_TARGET_NODE_TAG:      { /*---- LIB3DS_POS_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_POS_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.target.pos_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      break;    case LIB3DS_LIGHT_NODE_TAG:      { /*---- LIB3DS_POS_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_POS_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.light.pos_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_COL_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_COL_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.light.col_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      break;    case LIB3DS_SPOTLIGHT_NODE_TAG:      { /*---- LIB3DS_POS_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_POS_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.light.pos_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_COL_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_COL_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.light.col_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_HOT_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_HOT_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin1_track_write(&node->data.light.hotspot_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_FALL_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_FALL_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin1_track_write(&node->data.light.falloff_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      { /*---- LIB3DS_ROLL_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_ROLL_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin1_track_write(&node->data.light.roll_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      break;    case LIB3DS_L_TARGET_NODE_TAG:      { /*---- LIB3DS_POS_TRACK_TAG ----*/        Lib3dsChunk c;        c.chunk=LIB3DS_POS_TRACK_TAG;        if (!lib3ds_chunk_write_start(&c,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_lin3_track_write(&node->data.spot.pos_track,f)) {          return(LIB3DS_FALSE);        }        if (!lib3ds_chunk_write_end(&c,f)) {          return(LIB3DS_FALSE);        }      }      break;    default:      return(LIB3DS_FALSE);  }  if (!lib3ds_chunk_write_end(&c,f)) {    return(LIB3DS_FALSE);  }  return(LIB3DS_TRUE);}/*!\typedef Lib3dsNodeTypes  \ingroup node*//*!\enum _Lib3dsNodeTypes  \ingroup node*//*!\typedef Lib3dsBoolKey  \ingroup node  \sa _Lib3dsBoolKey*//*!\typedef Lib3dsBoolTrack  \ingroup node  \sa _Lib3dsBoolTrack*//*!\typedef Lib3dsLin1Key  \ingroup node  \sa _Lib3dsLin1Key*//*!\typedef Lib3dsLin1Track  \ingroup node  \sa _Lib3dsLin1Track*//*!\typedef Lib3dsLin3Key  \ingroup node  \sa _Lib3dsLin3Key*//*!\typedef Lib3dsLin3Track  \ingroup node  \sa _Lib3dsLin3Track*//*!\typedef Lib3dsQuatKey  \ingroup node  \sa _Lib3dsQuatKey*//*!\typedef Lib3dsQuatTrack  \ingroup node  \sa _Lib3dsLin3Key*//*!\typedef Lib3dsMorphKey  \ingroup node  \sa _Lib3dsMorphKey*//*!\typedef Lib3dsMorphTrack  \ingroup node  \sa _Lib3dsMorphTrack*/

⌨️ 快捷键说明

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