76 std::vector<Point*>&& points, std::string& name,
78 double const eps = std::sqrt(std::numeric_limits<double>::epsilon()));
88 std::vector<Point*>&& points, std::string& name,
89 double const eps = std::sqrt(std::numeric_limits<double>::epsilon()));
94 const std::vector<Point*>*
getPointVec(
const std::string& name)
const;
107 static_cast<const GEOObjects&
>(*this).getPointVecObj(name));
117 void addStationVec(std::vector<Point*>&& stations, std::string& name);
121 const std::string& name)
const;
139 std::string
const& name,
150 const std::string& name);
155 const std::vector<Polyline*>*
getPolylineVec(
const std::string& name)
const;
168 static_cast<const GEOObjects&
>(*this).getPolylineVecObj(name));
180 const std::string& name,
191 const std::string& name);
194 const std::vector<Surface*>*
getSurfaceVec(
const std::string& name)
const;
200 static_cast<const GEOObjects&
>(*this).getSurfaceVecObj(name));
244 std::string& merged_geo_name);
251 std::string
const& new_name);
256 const std::string& geo_name,
258 const std::string& geo_obj_name)
const;
270 const std::string& geo_name,
const std::string& geo_obj_name)
const;
279 std::size_t
exists(
const std::string& geometry_name)
const;
295 [](std::string
const& ) {};
298 [](std::string
const& ) {};
301 [](std::string
const& ) {};
304 [](std::string
const& ) {};
307 [](std::string
const& ) {};
310 [](std::string
const& ) {};
321 void mergePoints(std::vector<std::string>
const& geo_names,
322 std::string& merged_geo_name,
323 std::vector<std::size_t>& pnt_offsets);
338 std::string
const& merged_geo_name,
339 std::vector<std::size_t>
const& pnt_offsets);
351 void mergeSurfaces(std::vector<std::string>
const& geo_names,
352 std::string
const& merged_geo_name,
353 std::vector<std::size_t>
const& pnt_offsets);
370 std::string& stn_name,
371 bool const only_unused_pnts =
true);
Container class for geometric objects.
void mergeSurfaces(std::vector< std::string > const &geo_names, std::string const &merged_geo_name, std::vector< std::size_t > const &pnt_offsets)
std::function< void(std::string const &)> appendSurfaceVecCallback
std::size_t exists(const std::string &geometry_name) const
PointVec * getPointVecObj(const std::string &name)
Returns a pointer to a PointVec object for the given name.
void mergePolylines(std::vector< std::string > const &geo_names, std::string const &merged_geo_name, std::vector< std::size_t > const &pnt_offsets)
std::function< void(std::string const &)> addSurfaceVecCallback
std::vector< std::string > getGeometryNames() const
Returns the names of all geometry vectors.
void addPolylineVec(std::vector< Polyline * > &&lines, std::string const &name, PolylineVec::NameIdMap &&ply_names)
bool appendSurfaceVec(const std::vector< Surface * > &surfaces, const std::string &name)
const std::vector< Point * > * getPointVec(const std::string &name) const
void addPointVec(std::vector< Point * > &&points, std::string &name, PointVec::NameIdMap &&pnt_id_name_map, double const eps=std::sqrt(std::numeric_limits< double >::epsilon()))
std::vector< PolylineVec * > const & getPolylines() const
Read access to polylines w/o using a name.
const PointVec * getPointVecObj(const std::string &name) const
void renameGeometry(std::string const &old_name, std::string const &new_name)
std::function< void(std::string const &)> addPolylineVecCallback
bool removePointVec(const std::string &name)
bool isUniquePointVecName(std::string &name) const
bool removeSurfaceVec(const std::string &name)
void addStationVec(std::vector< Point * > &&stations, std::string &name)
Adds a vector of stations with the given name and colour to GEOObjects.
void mergePoints(std::vector< std::string > const &geo_names, std::string &merged_geo_name, std::vector< std::size_t > &pnt_offsets)
SurfaceVec * getSurfaceVecObj(const std::string &name)
Returns the surface vector with the given name.
PolylineVec * getPolylineVecObj(const std::string &name)
Returns a pointer to a PolylineVec object for the given name.
const std::vector< Surface * > * getSurfaceVec(const std::string &name) const
Returns the surface vector with the given name as a const.
std::vector< PointVec * > _pnt_vecs
std::function< void(std::string const &)> appendPolylineVecCallback
std::vector< PolylineVec * > _ply_vecs
std::unique_ptr< Callbacks > _callbacks
std::vector< PointVec * > const & getPoints() const
Read access to points w/o using a name.
void addSurfaceVec(std::vector< Surface * > &&sfc, const std::string &name, SurfaceVec::NameIdMap &&sfc_names)
bool isPntVecUsed(const std::string &name) const
const PolylineVec * getPolylineVecObj(const std::string &name) const
bool removeStationVec(const std::string &name)
Removes the station vector with the given name from GEOObjects.
int mergeGeometries(std::vector< std::string > const &geo_names, std::string &merged_geo_name)
void getStationVectorNames(std::vector< std::string > &names) const
Returns the names of all station vectors.
const std::vector< Polyline * > * getPolylineVec(const std::string &name) const
std::function< void(std::string const &)> removePolylineVecCallback
bool appendPolylineVec(const std::vector< Polyline * > &polylines, const std::string &name)
std::function< void(std::string const &)> removeSurfaceVecCallback
std::vector< SurfaceVec * > _sfc_vecs
std::vector< SurfaceVec * > const & getSurfaces() const
Read access to surfaces w/o using a name.
const GeoLib::GeoObject * getGeoObject(const std::string &geo_name, GeoLib::GEOTYPE type, const std::string &geo_obj_name) const
const std::vector< GeoLib::Point * > * getStationVec(const std::string &name) const
Returns the station vector with the given name.
bool removePolylineVec(const std::string &name)
std::string getElementNameByID(const std::string &geometry_name, GeoLib::GEOTYPE type, std::size_t id) const
This class manages pointers to Points in a std::vector along with a name. It also handles the deletio...
std::map< std::string, std::size_t > NameIdMap
int geoPointsToStations(GEOObjects &geo_objects, std::string const &geo_name, std::string &stn_name, bool const only_unused_pnts)
Constructs a station-vector based on the points of a given geometry.
TemplateVec< GeoLib::Surface > SurfaceVec
TemplateVec< GeoLib::Polyline > PolylineVec
class PolylineVec encapsulate a std::vector of Polylines additional one can give the vector of polyli...
virtual void renameGeometry(std::string const &, std::string const &)
virtual void appendSurfaceVec(std::string const &)
virtual void removePolylineVec(std::string const &)
virtual void addSurfaceVec(std::string const &)
virtual void addStationVec(std::string const &)
virtual void removeSurfaceVec(std::string const &)
virtual void appendPolylineVec(std::string const &)
virtual ~Callbacks()=default
virtual void addPointVec(std::string const &)
virtual void removeStationVec(std::string const &)
virtual void removePointVec(std::string const &)
virtual void addPolylineVec(std::string const &)