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

📄 blocks.cpp.in

📁 学习 open inventor 的例子
💻 IN
📖 第 1 页 / 共 3 页
字号:
          }          if(!ok) break;        }        else if(piece[i][0] < piece[0][0]){          c[i-1] = 5;          d1 = 2*(piece[0][0] - piece[i][0]);          if((ok = !(piece[i][0] + d1 > 3))){            if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2]])) break;          }          if(!ok) break;        }        else{          c[i-1] = 6;          d1 = piece[0][2] - piece[i][2];          if((ok = !(piece[i][2] + d1 > 13))){            if((ok = !(piece[i][0] + d1 > 3))){              if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2] + d1])) break;            }          }          if(!ok) break;        }      }      else{        if(piece[i][0] > piece[0][0]){ // x          c[i-1] = 7;          d1 = piece[i][0] - piece[0][0];          if((ok = !(piece[i][0] - d1 < 0))){            if((ok = !(piece[i][2] + d1 > 13))){              if(!(ok = !room[piece[i][0] - d1][piece[i][1]][piece[i][2] + d1])) break;            }          }          if(!ok) break;        }        else if(piece[i][0] < piece[0][0]){          c[i-1] = 8;          d1 = piece[0][0] - piece[i][0];          if((ok = !(piece[i][2] - d1 < 0))){            if((ok = !(piece[i][0] + d1 > 3))){              if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2] - d1])) break;            }          }          if(!ok) break;        }      }    }    if(ok){      for(i = 1; i < 4; i++){        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(1.0);        switch(c[i-1]){        case 1:          d1 = 2*(piece[i][0] - piece[0][0]);          piece[i][0] -= d1;          break;        case 2:          d1 = 2*(piece[i][2] - piece[0][2]);          piece[i][2] -= d1;          break;        case 3:          d1 = piece[i][2] - piece[0][2];          piece[i][0] -= d1;          piece[i][2] -= d1;          break;        case 4:          d1 = 2*(piece[0][2] - piece[i][2]);          piece[i][2] += d1;          break;        case 5:          d1 = 2*(piece[0][0] - piece[i][0]);          piece[i][0] += d1;          break;        case 6:          d1 = piece[0][2] - piece[i][2];          piece[i][0] += d1;          piece[i][2] += d1;          break;        case 7:          d1 = piece[i][0] - piece[0][0];          piece[i][0] -= d1;          piece[i][2] += d1;          break;        case 8:          d1 = piece[0][0] - piece[i][0];          piece[i][0] += d1;          piece[i][2] -= d1;          break;        }      }      for(i = 1; i < 4; i++){        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->ambientColor = piecematerial->ambientColor;        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(0.0);      }    }    break;  case 2:    for(i = 1; i < 4; i++){      if(piece[i][1] > piece[0][1]){ // z        if(piece[i][0] > piece[0][0]){ // x          c[i-1] = 1;          d1 = 2*(piece[i][1] - piece[0][1]);          if((ok = !(piece[i][1] - d1 < 0))){            if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2]])) break;          }          if(!ok) break;        }        else if(piece[i][0] < piece[0][0]){          c[i-1] = 2;          d1 = 2*(piece[0][0] - piece[i][0]);          if((ok = !(piece[i][0] + d1 > 3))){            if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2]])) break;          }          if(!ok) break;        }        else{          c[i-1] = 3;          d1 = piece[i][1] - piece[0][1];          if((ok = !(piece[i][0] + d1 > 3))){            if((ok = !(piece[i][1] - d1 < 0))){              if(!(ok = !room[piece[i][0] + d1][piece[i][1] - d1][piece[i][2]])) break;            }          }          if(!ok) break;        }      }      else if(piece[i][1] < piece[0][1]){ // z        if(piece[i][0] > piece[0][0]){ // x          c[i-1] = 4;          d1 = 2*(piece[0][1] - piece[i][1]);          if((ok = !(piece[i][0] - d1 < 0))){            if(!(ok = !room[piece[i][0] - d1][piece[i][1]][piece[i][2]])) break;          }          if(!ok) break;        }        else if(piece[i][0] < piece[0][0]){          c[i-1] = 5;          d1 = 2*(piece[0][0] - piece[i][0]);          if((ok = !(piece[i][1] + d1 > 3))){            if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2]])) break;          }          if(!ok) break;        }        else{          c[i-1] = 6;          d1 = piece[0][1] - piece[i][1];          if((ok = !(piece[i][1] + d1 > 3))){            if((ok = !(piece[i][0] - d1 < 0))){              if(!(ok = !room[piece[i][0] - d1][piece[i][1] + d1][piece[i][2]])) break;            }          }          if(!ok) break;        }      }      else{        if(piece[i][0] > piece[0][0]){ // x          c[i-1] = 7;          d1 = piece[i][0] - piece[0][0];          if((ok = !(piece[i][0] - d1 < 0))){            if((ok = !(piece[i][1] - d1 < 0))){              if(!(ok = !room[piece[i][0] - d1][piece[i][1] - d1][piece[i][2]])) break;            }          }          if(!ok) break;        }        else if(piece[i][0] < piece[0][0]){          c[i-1] = 8;          d1 = piece[0][0] - piece[i][0];          if((ok = !(piece[i][1] + d1 > 3))){            if((ok = !(piece[i][0] + d1 > 3))){              if(!(ok = !room[piece[i][0] + d1][piece[i][1] + d1][piece[i][2]])) break;            }          }          if(!ok) break;        }      }    }    if(ok){      for(i = 1; i < 4; i++){        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(1.0);        switch(c[i-1]){        case 1:          d1 = 2*(piece[i][1] - piece[0][1]);          piece[i][1] -= d1;          break;        case 2:          d1 = 2*(piece[0][0] - piece[i][0]);          piece[i][0] += d1;          break;        case 3:          d1 = piece[i][1] - piece[0][1];          piece[i][0] += d1;          piece[i][1] -= d1;          break;        case 4:          d1 = 2*(piece[0][1] - piece[i][1]);          piece[i][0] -= d1;          break;        case 5:          d1 = 2*(piece[0][0] - piece[i][0]);          piece[i][1] += d1;          break;        case 6:          d1 = piece[0][1] - piece[i][1];          piece[i][0] -= d1;          piece[i][1] += d1;          break;        case 7:          d1 = piece[i][0] - piece[0][0];          piece[i][0] -= d1;          piece[i][1] -= d1;          break;        case 8:          d1 = piece[0][0] - piece[i][0];          piece[i][0] += d1;          piece[i][1] += d1;          break;        }      }      for(i = 1; i < 4; i++){        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->ambientColor = piecematerial->ambientColor;        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(0.0);      }    }    break;  case 3:    for(i = 1; i < 4; i++){      if(piece[i][1] > piece[0][1]){ // z        if(piece[i][0] > piece[0][0]){ // x          c[i-1] = 1;          d1 = 2*(piece[i][0] - piece[0][0]);          if((ok = !(piece[i][0] - d1 < 0))){            if(!(ok = !room[piece[i][0] - d1][piece[i][1]][piece[i][2]])) break;          }          if(!ok) break;        }        else if(piece[i][0] < piece[0][0]){          c[i-1] = 2;          d1 = 2*(piece[i][1] - piece[0][1]);          if((ok = !(piece[i][1] - d1 < 0))){            if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2]])) break;          }          if(!ok) break;        }        else{          c[i-1] = 3;          d1 = piece[i][1] - piece[0][1];          if((ok = !(piece[i][0] - d1 < 0))){            if((ok = !(piece[i][1] - d1 < 0))){              if(!(ok = !room[piece[i][0] - d1][piece[i][1] - d1][piece[i][2]])) break;            }          }          if(!ok) break;        }      }      else if(piece[i][1] < piece[0][1]){ // z        if(piece[i][0] > piece[0][0]){ // x          c[i-1] = 4;          d1 = 2*(piece[0][1] - piece[i][1]);          if((ok = !(piece[i][1] + d1 > 3))){            if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2]])) break;          }          if(!ok) break;        }        else if(piece[i][0] < piece[0][0]){          c[i-1] = 5;          d1 = 2*(piece[0][0] - piece[i][0]);          if((ok = !(piece[i][0] + d1 > 3))){            if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2]])) break;          }          if(!ok) break;        }        else{          c[i-1] = 6;          d1 = piece[0][1] - piece[i][1];          if((ok = !(piece[i][1] + d1 > 3))){            if((ok = !(piece[i][0] + d1 > 3))){              if(!(ok = !room[piece[i][0] + d1][piece[i][1] + d1][piece[i][2]])) break;            }          }          if(!ok) break;        }      }      else{        if(piece[i][0] > piece[0][0]){ // x          c[i-1] = 7;          d1 = piece[i][0] - piece[0][0];          if((ok = !(piece[i][0] - d1 < 0))){            if((ok = !(piece[i][1] + d1 > 3))){              if(!(ok = !room[piece[i][0] - d1][piece[i][1] + d1][piece[i][2]])) break;            }          }          if(!ok) break;        }        else if(piece[i][0] < piece[0][0]){          c[i-1] = 8;          d1 = piece[0][0] - piece[i][0];          if((ok = !(piece[i][1] - d1 < 0))){            if((ok = !(piece[i][0] + d1 > 3))){              if(!(ok = !room[piece[i][0] + d1][piece[i][1] - d1][piece[i][2]])) break;            }          }          if(!ok) break;        }      }    }    if(ok){      for(i = 1; i < 4; i++){        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(1.0);        switch(c[i-1]){        case 1:          d1 = 2*(piece[i][0] - piece[0][0]);          piece[i][0] -= d1;          break;        case 2:          d1 = 2*(piece[i][1] - piece[0][1]);          piece[i][1] -= d1;          break;        case 3:          d1 = piece[i][1] - piece[0][1];          piece[i][0] -= d1;          piece[i][1] -= d1;          break;        case 4:          d1 = 2*(piece[0][1] - piece[i][1]);          piece[i][1] += d1;          break;        case 5:          d1 = 2*(piece[0][0] - piece[i][0]);          piece[i][0] += d1;          break;        case 6:          d1 = piece[0][1] - piece[i][1];          piece[i][0] += d1;          piece[i][1] += d1;          break;        case 7:          d1 = piece[i][0] - piece[0][0];          piece[i][0] -= d1;          piece[i][1] += d1;          break;        case 8:          d1 = piece[0][0] - piece[i][0];          piece[i][0] += d1;          piece[i][1] -= d1;          break;        }      }      for(i = 1; i < 4; i++){        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->ambientColor = piecematerial->ambientColor;        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(0.0);      }    }    break;  case 5:    for(i = 1; i < 4; i++){      if(piece[i][2] > piece[0][2]){ // z        if(piece[i][1] > piece[0][1]){ // x          c[i-1] = 1;          d1 = 2*(piece[i][2] - piece[0][2]);          if((ok = !(piece[i][2] - d1 < 0))){            if(!(ok = !room[piece[i][0]][piece[i][1]][piece[i][2] - d1])) break;          }          if(!ok) break;        }        else if(piece[i][1] < piece[0][1]){          c[i-1] = 2;          d1 = 2*(piece[0][1] - piece[i][1]);          if((ok = !(piece[i][1] + d1 > 3))){            if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2]])) break;          }          if(!ok) break;        }        else{          c[i-1] = 3;          d1 = piece[i][2] - piece[0][2];          if((ok = !(piece[i][1] + d1 > 3))){            if((ok = !(piece[i][2] - d1 < 0))){              if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2] - d1])) break;            }          }          if(!ok) break;        }      }      else if(piece[i][2] < piece[0][2]){ // z        if(piece[i][1] > piece[0][1]){ // x          c[i-1] = 4;          d1 = 2*(piece[0][2] - piece[i][2]);          if((ok = !(piece[i][1] - d1 < 0))){            if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2]])) break;          }          if(!ok) break;        }        else if(piece[i][1] < piece[0][1]){          c[i-1] = 5;          d1 = 2*(piece[0][1] - piece[i][1]);          if((ok = !(piece[i][2] + d1 > 13))){            if(!(ok = !room[piece[i][0]][piece[i][1]][piece[i][2] + d1])) break;          }          if(!ok) break;        }        else{          c[i-1] = 6;          d1 = piece[0][2] - piece[i][2];          if((ok = !(piece[i][2] + d1 > 13))){            if((ok = !(piece[i][1] - d1 < 0))){              if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2] + d1])) break;            }          }          if(!ok) break;        }      }      else{        if(piece[i][1] > piece[0][1]){ // x          c[i-1] = 7;          d1 = piece[i][1] - piece[0][1];          if((ok = !(piece[i][1] - d1 < 0))){            if((ok = !(piece[i][2] - d1 < 0))){              if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2] - d1])) break;            }          }          if(!ok) break;        }        else if(piece[i][1] < piece[0][1]){          c[i-1] = 8;          d1 = piece[0][1] - piece[i][1];          if((ok = !(piece[i][2] + d1 > 13))){            if((ok = !(piece[i][1] + d1 > 3))){              if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2] + d1])) break;            }          }          if(!ok) break;        }      }    }    if(ok){      for(i = 1; i < 4; i++){        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(1.0);        switch(c[i-1]){        case 1:          d1 = 2*(piece[i][2] - piece[0][2]);          piece[i][2] -= d1;          break;        case 2:          d1 = 2*(piece[0][1] - piece[i][1]);          piece[i][1] += d1;          break;        case 3:          d1 = piece[i][2] - piece[0][2];          piece[i][1] += d1;          piece[i][2] -= d1;          break;        case 4:          d1 = 2*(piece[0][2] - piece[i][2]);          piece[i][1] -= d1;          break;        case 5:          d1 = 2*(piece[0][1] - piece[i][1]);          piece[i][2] += d1;          break;        case 6:          d1 = piece[0][2] - piece[i][2];          piece[i][1] -= d1;          piece[i][2] += d1;          break;        case 7:          d1 = piece[i][1] - piece[0][1];          piece[i][1] -= d1;          piece[i][2] -= d1;          break;        case 8:          d1 = piece[0][1] - piece[i][1];          piece[i][1] += d1;          piece[i][2] += d1;          break;        }      }      for(i = 1; i < 4; i++){        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->ambientColor = piecematerial->ambientColor;        roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(0.0);      }    }    break;  case 4:    for(i = 1; i < 4; i++){      if(piece[i][2] > piece[0][2]){ // z        if(piece[i][1] > piece[0][1]){ // x          c[i-1] = 1;          d1 = 2*(piece[i][1] - piece[0][1]);          if((ok = !(piece[i][1] - d1 < 0))){            if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2]])) break;          }          if(!ok) break;        }        else if(piece[i][1] < piece[0][1]){          c[i-1] = 2;          d1 = 2*(piece[i][2] - piece[0][2]);          if((ok = !(piece[i][2] - d1 < 0))){            if(!(ok = !room[piece[i][0]][piece[i][1]][piece[i][2] - d1])) break;          }          if(!ok) break;        }        else{          c[i-1] = 3;          d1 = piece[i][2] - piece[0][2];          if((ok = !(piece[i][1] - d1 < 0))){            if((ok = !(piece[i][2] - d1 < 0))){              if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2] - d1])) break;            }          }          if(!ok) break;        }      }      else if(piece[i][2] < piece[0][2]){ // z        if(piece[i][1] > piece[0][1]){ // x          c[i-1] = 4;          d1 = 2*(piece[0][2] - piece[i][2]);          if((ok = !(piece[i][2] + d1 > 13))){            if(!(ok = !room[piece[i][0]][piece[i][1]][piece[i][2] + d1])) break;

⌨️ 快捷键说明

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