pcl::PointCloud<pcl::PointXYZ>::Ptr zFilter (pcl::PointCloud<pcl::PointXYZ>::Ptr input_cloud, float min_ratio, float max_ratio) { std::vector<float> z_range = findZRange(input_cloud); pcl::PointCloud<pcl::PointXYZ>::Ptr filtered_cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::PassThrough<pcl::PointXYZ> pass; pass.setInputCloud(input_cloud); pass.setFilterFieldName("z"); pass.setFilterLimits(min_ratio * z_range[0], max_ratio * z_range[1]); pass.filter(*filtered_cloud); return filtered_cloud; }
double WScatterData::maximum(Axis axis) const { if (axis == XAxis_3D) { if (!xRangeCached_) { findXRange(); } return xMax_; } else if (axis == YAxis_3D) { if (!yRangeCached_) { findYRange(); } return yMax_; } else if (axis == ZAxis_3D) { if (!rangeCached_) { findZRange(); } return zMax_; } else { throw WException("WScatterData: unknown Axis-type"); } }