19 explicit constexpr
ViewportId(
unsigned i ) noexcept : id_( i ) { }
21 constexpr unsigned value()
const {
return id_; }
22 bool valid()
const {
return id_ > 0; }
23 explicit operator bool()
const {
return id_ > 0; }
26 bool operator != (
ViewportId b )
const {
return id_ != b.id_; }
27 bool operator < (
ViewportId b )
const {
return id_ < b.id_; }
34#if !MR_PARSING_FOR_C_BINDINGS && !MR_COMPILING_C_BINDINGS
45 explicit constexpr
ViewportMask(
unsigned i ) noexcept : mask_( i ) { }
46 constexpr ViewportMask( ViewportId i ) noexcept : mask_( i.value() ) { }
52 constexpr unsigned value()
const {
return mask_; }
53 constexpr bool empty()
const {
return mask_ == 0; }
54 bool contains( ViewportId
id )
const { assert(
id.valid() );
return ( mask_ &
id.value() ) != 0; }
56 bool operator == (
ViewportMask b )
const {
return mask_ == b.mask_; }
57 bool operator != (
ViewportMask b )
const {
return mask_ != b.mask_; }
58 bool operator < (
ViewportMask b )
const {
return mask_ < b.mask_; }
66 void set( ViewportId
id,
bool on =
true ) { on ? ( mask_ |=
id.value() ) : ( mask_ &= ~id.value() ); }
70#if !MR_PARSING_FOR_C_BINDINGS && !MR_COMPILING_C_BINDINGS
84 using iterator_category = std::forward_iterator_tag;
85 using value_type = ViewportId;
100 ViewportMask mask()
const {
return mask_; }
101 ViewportId operator *()
const {
return id_; }
107 for( ; id_.
valid() && !mask_.contains( id_ ); id_ = id_.
next() );
111 assert( id_.
valid() );
112 for( id_ = id_.
next(); id_.
valid() && !mask_.contains( id_ ); id_ = id_.
next() );
116 ViewportMask mask_{0};
Definition MRViewportId.h:82
unsafe ViewportIterator()
Definition MRViewportId.h:42
unsafe void set(MR.ViewportId id, bool? on=null)
MR_BIND_IGNORE auto begin(const BitSet &a)
Definition MRMesh/MRBitSet.h:380
MRMESH_API bool operator==(const BitSet &a, const BitSet &b)
compare that two bit sets have the same set bits (they can be equal even if sizes are distinct but la...
BitSet operator&(const BitSet &a, const BitSet &b)
Definition MRMesh/MRBitSet.h:439
BitSet operator|(const BitSet &a, const BitSet &b)
Definition MRMesh/MRBitSet.h:440
MR_BIND_IGNORE auto end(const BitSet &)
Definition MRMesh/MRBitSet.h:382
BitSet operator^(const BitSet &a, const BitSet &b)
Definition MRMesh/MRBitSet.h:441
Definition MRCameraOrientationPlugin.h:8
static unsafe bool operator==(MR.ViewportId _this, MR.ViewportId b)
readonly unsafe bool valid()
readonly unsafe MR.ViewportId next()
readonly unsafe uint value()
readonly unsafe MR.ViewportId prev()