コード例 #1
0
ファイル: testXmlParser.cpp プロジェクト: 976717326/visp
/*!
  Read the main class. This method corresponds to the parsing of the main 
  document (which contains the whole data in the class). At this point, the 
  document exists and is open. 
  
  \param doc : Pointer to the document to parse. 
  \param node : Pointer to the root node of the document. 
*/
void
vpExampleDataParser::readMainClass (xmlDocPtr doc, xmlNodePtr node)
{
  for(xmlNodePtr dataNode = node->xmlChildrenNode; dataNode != NULL;  dataNode = dataNode->next)  {
    if(dataNode->type == XML_ELEMENT_NODE){
      std::map<std::string, int>::iterator iter_data= this->nodeMap.find((char*)dataNode->name);
      if(iter_data != nodeMap.end()){
        switch (iter_data->second){
        case range:
          this->m_range = xmlReadDoubleChild(doc, dataNode);
          break;
        case step:
          this->m_step = xmlReadIntChild(doc, dataNode);
          break;
        case size_filter:
          this->m_size_filter = xmlReadIntChild(doc, dataNode);
          break;
        case name:{
          this->m_name = xmlReadStringChild(doc, dataNode);
        }break;
        default:
          vpTRACE("unknown tag in readConfigNode : %d, %s", iter_data->second, (iter_data->first).c_str());
          break;
        }
      }
    }
  }
}
コード例 #2
0
ファイル: vpMbXmlParser.cpp プロジェクト: tswang/visp
void
vpMbXmlParser::read_lod (xmlDocPtr doc, xmlNodePtr node) {
  bool use_lod_node = false;
  bool min_line_length_threshold_node = false;
  bool min_polygon_area_threshold_node = false;


  for(xmlNodePtr dataNode = node->xmlChildrenNode; dataNode != NULL;  dataNode = dataNode->next)  {
    if(dataNode->type == XML_ELEMENT_NODE){
      std::map<std::string, int>::iterator iter_data= this->nodeMap.find((char*)dataNode->name);
      if(iter_data != nodeMap.end()){
        switch (iter_data->second){
        case use_lod:
          useLod = (xmlReadIntChild(doc, dataNode) != 0);
          use_lod_node = true;
          break;
        case min_line_length_threshold:
          minLineLengthThreshold = xmlReadDoubleChild(doc, dataNode);
          min_line_length_threshold_node = true;
          break;
        case min_polygon_area_threshold:
          minPolygonAreaThreshold = xmlReadDoubleChild(doc, dataNode);
          min_polygon_area_threshold_node = true;
          break;
        default:{
//          vpTRACE("unknown tag in read_contrast : %d, %s", iter_data->second, (iter_data->first).c_str());
          }break;
        }
      }
    }
  }

  if(!use_lod_node)
    std::cout << "lod : use lod : " << useLod << " (default)" <<std::endl;
  else
    std::cout << "lod : use lod : " << useLod << std::endl;

  if(!min_line_length_threshold_node)
    std::cout <<"lod : min line length threshold : " << minLineLengthThreshold <<" (default)" <<std::endl;
  else
    std::cout <<"lod : min line length threshold : " << minLineLengthThreshold <<std::endl;

  if(!min_polygon_area_threshold_node)
    std::cout <<"lod : min polygon area threshold : " << minPolygonAreaThreshold <<" (default)" <<std::endl;
  else
    std::cout <<"lod : min polygon area threshold : " << minPolygonAreaThreshold <<std::endl;
}
コード例 #3
0
ファイル: vpMbXmlParser.cpp プロジェクト: tswang/visp
/*!
  Read face information.
  
  \throw vpException::fatalError if there was an unexpected number of data. 
  
  \param doc : Pointer to the document.
  \param node : Pointer to the node of the camera information.
*/
void 
vpMbXmlParser::read_face(xmlDocPtr doc, xmlNodePtr node)
{
  bool angle_appear_node = false;
  bool angle_disappear_node = false;
  bool near_clipping_node = false;
  bool far_clipping_node = false;
  bool fov_clipping_node = false;
  
  for(xmlNodePtr dataNode = node->xmlChildrenNode; dataNode != NULL;  dataNode = dataNode->next)  {
    if(dataNode->type == XML_ELEMENT_NODE){
      std::map<std::string, int>::iterator iter_data= this->nodeMap.find((char*)dataNode->name);
      if(iter_data != nodeMap.end()){
        switch (iter_data->second){
        case angle_appear:{
          angleAppear = xmlReadDoubleChild(doc, dataNode);
          angle_appear_node = true;
          }break;
        case angle_disappear:{
          angleDisappear = xmlReadDoubleChild(doc, dataNode);
          angle_disappear_node = true;
          }break;
        case near_clipping:{
          nearClipping = xmlReadDoubleChild(doc, dataNode);
          near_clipping_node = true;
          hasNearClipping = true;
          }break;
        case far_clipping:{
          farClipping = xmlReadDoubleChild(doc, dataNode);
          far_clipping_node = true;
          hasFarClipping = true;
          }break;
        case fov_clipping:{
          if (xmlReadIntChild(doc, dataNode))
            fovClipping = true;
          else
            fovClipping = false;
          fov_clipping_node = true;
          }break;
        default:{
//          vpTRACE("unknown tag in read_camera : %d, %s", iter_data->second, (iter_data->first).c_str());
          }break;
        }
      }
    }
  }
  
  if(!angle_appear_node)
    std::cout << "face : Angle Appear : "<< angleAppear << " (default)" <<std::endl;
  else
    std::cout << "face : Angle Appear : "<< angleAppear <<std::endl;
  
  if(!angle_disappear_node)
    std::cout << "face : Angle Disappear : "<< angleDisappear << " (default)" <<std::endl;
  else
    std::cout << "face : Angle Disappear : "<< angleDisappear <<std::endl;
  
  if(near_clipping_node)
    std::cout << "face : Near Clipping : "<< nearClipping <<std::endl;
  
  if(far_clipping_node)
    std::cout << "face : Far Clipping : "<< farClipping <<std::endl;
  
  if(fov_clipping_node) {
    if(fovClipping)
      std::cout << "face : Fov Clipping : True" <<std::endl;
    else
      std::cout << "face : Fov Clipping : False" <<std::endl;
  }
}