...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
3D point in Cartesian coordinate system
template<typename CoordinateType, typename CoordinateSystem> class model::d3::point_xyz : public model::point< CoordinateType, 3, cs::cartesian > { // ... };
Parameter |
Default |
Description |
---|---|---|
typename CoordinateType |
numeric type, for example, double, float, int |
|
typename CoordinateSystem |
cs::cartesian |
coordinate system, defaults to cs::cartesian |
Function |
Description |
Parameters |
---|---|---|
point_xyz()
|
Default constructor, no initialization. |
|
point_xyz(CoordinateType const & x, CoordinateType const & y, CoordinateType const & z)
|
Constructor with x/y/z values. |
CoordinateType const &: x: CoordinateType const &: y: CoordinateType const &: z: |
Function |
Description |
Parameters |
Returns |
---|---|---|---|
constexpr CoordinateType const & x()
|
Get x-value. |
||
constexpr CoordinateType const & y()
|
Get y-value. |
||
constexpr CoordinateType const & z()
|
Get z-value. |
||
void x(CoordinateType const & v)
|
Set x-value. |
CoordinateType const &: v: |
|
void y(CoordinateType const & v)
|
Set y-value. |
CoordinateType const &: v: |
|
void z(CoordinateType const & v)
|
Set z-value. |
CoordinateType const &: v: |
Either
#include <boost/geometry/geometries/geometries.hpp>
Or
#include <boost/geometry/geometries/point_xyz.hpp>
Declaration and use of the Boost.Geometry model::d3::point_xyz, modelling the Point Concept
#include <iostream> #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xyz.hpp> namespace bg = boost::geometry; int main() { bg::model::d3::point_xyz<double> point1; bg::model::d3::point_xyz<double> point2(3, 4, 5); bg::set<0>(point1, 1.0); point1.y(2.0); point1.z(4.0); double x = bg::get<0>(point1); double y = point1.y(); double z = point1.z(); std::cout << x << ", " << y << ", " << z << std::endl; return 0; }
Construct, assigning coordinates. |
|
Set a coordinate, generic. |
|
Set a coordinate, class-specific (Note:
prefer |
|
Get a coordinate, generic. |
|
Get a coordinate, class-specific (Note:
prefer |
Output:
1, 2, 4
Note | |
---|---|
Coordinates are not initialized. If the constructor with parameters is
not called and points are not assigned using |