7 template <
typename Po
intT>
10 return lhs.x != rhs.x || lhs.y != rhs.y || lhs.z != rhs.z;
13 template <
typename Po
intT>
14 static std::ostream& out_xyz(std::ostream& os,
const PointT& rhs)
16 return os <<
"[" << rhs.x <<
" " << rhs.y <<
" " << rhs.z <<
"]";
20 template <
typename Po
intT>
21 static bool neq_rgba(
const PointT& lhs,
const PointT& rhs)
23 return lhs.r != rhs.r || lhs.g != rhs.g || lhs.b != rhs.b || lhs.a != rhs.a;
26 template <
typename Po
intT>
27 static std::ostream& out_rgba(std::ostream& os,
const PointT& rhs)
29 return os <<
"[" << rhs.r <<
" " << rhs.g <<
" " << rhs.b <<
" " << rhs.a <<
"]";
33 bool operator!=(
const PointXYZ& lhs,
const PointXYZ& rhs)
35 return neq_xyz(lhs, rhs);
38 std::ostream&
operator<<(std::ostream& os,
const PointXYZ& rhs)
40 return os <<
"[" << rhs.x <<
" " << rhs.y <<
" " << rhs.z <<
"]";
44 bool operator!=(
const PointXYZRGBA& lhs,
const PointXYZRGBA& rhs)
46 return neq_xyz(lhs, rhs) || neq_rgba(lhs, rhs);
49 std::ostream&
operator<<(std::ostream& os,
const PointXYZRGBA& rhs)
52 out_xyz(os, rhs) <<
" ";
53 return out_rgba(os, rhs) <<
")";
57 bool operator!=(
const PointXYZL& lhs,
const PointXYZL& rhs)
59 return neq_xyz(lhs, rhs) || lhs.label != rhs.label;
62 std::ostream&
operator<<(std::ostream& os,
const PointXYZL& rhs)
65 return out_xyz(os, rhs) <<
" " << rhs.label <<
")";