Visual Computing Library  devel
Loading...
Searching...
No Matches
bit_flags.h
1/*****************************************************************************
2 * VCLib *
3 * Visual Computing Library *
4 * *
5 * Copyright(C) 2021-2025 *
6 * Visual Computing Lab *
7 * ISTI - Italian National Research Council *
8 * *
9 * All rights reserved. *
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the Mozilla Public License Version 2.0 as published *
13 * by the Mozilla Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 * This program is distributed in the hope that it will be useful, *
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
19 * Mozilla Public License Version 2.0 *
20 * (https://www.mozilla.org/en-US/MPL/2.0/) for more details. *
21 ****************************************************************************/
22
23#ifndef VCL_MESH_COMPONENTS_CONCEPTS_BIT_FLAGS_H
24#define VCL_MESH_COMPONENTS_CONCEPTS_BIT_FLAGS_H
25
26#include "../base/predicates.h"
27
28#include <vclib/space/core.h>
29#include <vclib/base.h>
30
31namespace vcl::comp {
32
33template<typename, bool>
34class BitFlags;
35
36template<int, typename, bool>
37class PolygonBitFlags;
38
39template<typename, bool>
40class TriangleBitFlags;
41
53template<typename T>
55 ITB::IsDerivedFromSpecializationOfV<T, PolygonBitFlags>;
56
68template<typename T>
70 TB::IsDerivedFromSpecializationOfV<T, TriangleBitFlags>;
71
85template<typename T>
87
100template<typename T>
101concept HasBitFlags =
102 HasFaceBitFlags<T> || TB::IsDerivedFromSpecializationOfV<T, BitFlags>;
103
104} // namespace vcl::comp
105
106#endif // VCL_MESH_COMPONENTS_CONCEPTS_BIT_FLAGS_H
A concept that checks whether a type T (that should be an Element) has the one of the BitFlags compon...
Definition bit_flags.h:101
A concept that checks whether a type T (that should be a Face Element) has either the PolygonBitFlags...
Definition bit_flags.h:86
A concept that checks whether a type T (that should be a Face Element) has the PolygonBitFlags compon...
Definition bit_flags.h:54
A concept that checks whether a type T (that should be a Face Element) has the TriangleBitFlags compo...
Definition bit_flags.h:69