Esempio n. 1
0
void
CloudEditorWidget::loadFilePCD(const std::string &filename)
{   
  PclCloudPtr pcl_cloud_ptr;
  Cloud3D tmp;
  if (pcl::io::loadPCDFile<Point3D>(filename, tmp) == -1)
    throw;
  pcl_cloud_ptr = PclCloudPtr(new Cloud3D(tmp));
  std::vector<int> index;
  pcl::removeNaNFromPointCloud(*pcl_cloud_ptr, *pcl_cloud_ptr, index);
  Statistics::clear();
  cloud_ptr_ = CloudPtr(new Cloud(*pcl_cloud_ptr, true));
  selection_ptr_ = SelectionPtr(new Selection(cloud_ptr_, true));
  copy_buffer_ptr_ = CopyBufferPtr(new CopyBuffer(true));
  cloud_ptr_->setPointSize(point_size_);
  cloud_ptr_->setHighlightPointSize(selected_point_size_);
  tool_ptr_ =
    boost::shared_ptr<CloudTransformTool>(new CloudTransformTool(cloud_ptr_));

  if (isColored(filename))
  {
    swapRBValues();
    color_scheme_ = COLOR_BY_RGB;
    is_colored_ = true;
  }
  else
  {
    color_scheme_ = COLOR_BY_Z;
    is_colored_ = false;
  }
}
Esempio n. 2
0
TransformCommand::TransformCommand(ConstSelectionPtr selection_ptr,
                                   CloudPtr cloud_ptr,
                                   const float *matrix,
                                   float translate_x,
                                   float translate_y,
                                   float translate_z)
  : selection_ptr_(selection_ptr), cloud_ptr_(cloud_ptr),
    translate_x_(translate_x), translate_y_(translate_y),
    translate_z_(translate_z)
{
  internal_selection_ptr_ = SelectionPtr(new Selection(*selection_ptr));
  std::copy(matrix, matrix+MATRIX_SIZE, transform_matrix_);
  const float *cloud_matrix = cloud_ptr_->getMatrix();
  std::copy(cloud_matrix, cloud_matrix+MATRIX_SIZE, cloud_matrix_);
  invertMatrix(cloud_matrix, cloud_matrix_inv_);
  cloud_ptr_->getCenter(cloud_center_[X], cloud_center_[Y], cloud_center_[Z]);
}
Esempio n. 3
0
  typedef std::deque<int> AidList;

  valarray<AidList *> *m_pMap;
  
  int m_nMinAtomMap;
  bool m_bUseBruteForce;
  AidList m_allList;
  
public:
  AtomPosMap() : m_dSpacing(10.0), m_pMap(NULL), m_nMinAtomMap(100), m_bUseBruteForce(false) {}
  ~AtomPosMap();

  void setTarget(MolCoordPtr pMol) { m_pMol = pMol; }
  void setSpacing(double d) { m_dSpacing = d; }

  void generate(SelectionPtr pSel = SelectionPtr());

  int searchNearestAtom(const Vector4D &pos);

  void dumpMaxSize();

  void setMinAtomMap(int n) { m_nMinAtomMap = n; }
  int getMinAtomMap() const { return m_nMinAtomMap; }

private:

  bool checkDist(int ix, int iy, int iz, const Vector4D &pos,
                 int &rimin, double &rdmin);

  void getNearGrid(const Vector4D &pos,
                   int &ix, int &iy, int &iz);