23#ifndef VCL_MESH_VIEWS_COMPONENTS_COLORS_H
24#define VCL_MESH_VIEWS_COMPONENTS_COLORS_H
26#include <vclib/mesh/components/color.h>
27#include <vclib/mesh/components/wedge_colors.h>
29#include <vclib/base.h>
37inline constexpr auto color = [](
auto&& p) ->
decltype(
auto) {
38 if constexpr (IsPointer<
decltype(p)>)
46 constexpr ColorsView() =
default;
48 template<std::ranges::range R>
49 friend constexpr auto operator|(R&& r, ColorsView)
51 return std::forward<R>(r) | std::views::transform(color);
54 template<comp::HasWedgeColors R>
55 friend constexpr auto operator|(R&& r, ColorsView)
57 if constexpr (IsPointer<R>)
58 return r->wedgeColors();
60 return r.wedgeColors();
66inline constexpr detail::ColorsView colors;