Exemple #1
0
void Canvas::LoadVolume(std::string filename)
{
    volumeReader.Read(filename);
    volumeReader.CreateDeviceVolume(&deviceVolume);
    deviceVolume.SetClipPlane(glm::vec2(-1.f, 1.f), glm::vec2(-1.f, 1.f), glm::vec2(-1.f, 1.f));
    deviceVolume.SetDensityScale(1.f);
    setup_volume(deviceVolume);

    ZoomToExtent();
    camera.Setup(glm::vec3(0.f, 0.f, eyeDist), glm::vec3(0.f, 0.f, 0.f), glm::vec3(0.f, 1.f, 0.f), fov, apeture, focalLength, exposure, WIDTH, HEIGHT);
    viewMat = glm::lookAt(glm::vec3(0.f, 0.f, eyeDist), glm::vec3(0.f), glm::vec3(0.f, 1.f, 0.f));
    UpdateCamera();

    ready = true;
}
int read_volparams(void)

{

  int vol_params_read = FALSE;
  si32 nbytes_char;
  si32 nelev;
  si32 nheights;

  si32 *radar_elevations;
  si32 *plane_heights;
  si32 packet_id;
  
  vol_params_t *vol_params;
  
  /*
   * read in a packet
   */
  
  while (!vol_params_read) {
  
    if (read_packet(&packet_id) == CS_FAILURE) {
      return(CS_FAILURE);
    }
    
    /*
     * check for volume packet type
     */
    
    if (packet_id == VOL_PARAMS_PACKET_CODE) {
      
      vol_params = (vol_params_t *) Glob->packet;

      umalloc_verify();

      /*
       * decode the data from network byte order
       */

      BE_to_array_32((ui32 *) &vol_params->mid_time,
		     (ui32) sizeof(radtim_t));
      
      nbytes_char =
	(si32) BE_to_si32((ui32) vol_params->radar.nbytes_char);
      
      BE_to_array_32((ui32 *) &vol_params->radar,
		     (ui32) (sizeof(radar_params_t) - nbytes_char));
      
      nbytes_char =
	(si32) BE_to_si32((ui32) vol_params->cart.nbytes_char);
      
      BE_to_array_32((ui32 *) &vol_params->cart,
		     (ui32) (sizeof(cart_params_t) - nbytes_char));
      
      vol_params->nfields = (si32) BE_to_si32((ui32) vol_params->nfields);
      
      umalloc_verify();

      radar_elevations = (si32 *)
	((char *) vol_params + sizeof(vol_params_t));
      
      nelev = vol_params->radar.nelevations;

      BE_to_array_32((ui32 *) radar_elevations,
		     (ui32) (nelev * sizeof(si32)));
      
      plane_heights = radar_elevations + nelev;
      
      nheights = vol_params->cart.nz * N_PLANE_HEIGHT_VALUES;

      umalloc_verify();

      BE_to_array_32((ui32 *) plane_heights,
		     (ui32) (nheights * sizeof(si32)));
      
      /*
       * place this data in shared memory
       */
      
      umalloc_verify();

      setup_volume(vol_params, radar_elevations, plane_heights);
      
      vol_params_read = TRUE;
      
    } /* if (packet_id == VOL_PARAMS_PACKET_CODE) */
    
  } /* while (!vol_params_read) */
  
  return(CS_SUCCESS);
  
}