#pragma once #include "lib_begin.h" namespace cgv { namespace utils { /// check if a bit of a bit field is set CGV_API bool is_bit_set(unsigned int bit_idx, unsigned int bit_field); /// set all the bits of bit_field with index equal or larger than fst_bit_idx CGV_API void enable_upper_bits(unsigned int& bit_field, unsigned int fst_bit_idx); /// clear all the bits of bit_field with index equal or larger than fst_bit_idx CGV_API void disable_upper_bits(unsigned int& bit_field, unsigned int fst_bit_idx); /// set all the bits of bit_field with index equal or less than fst_bit_idx CGV_API void enable_lower_bits(unsigned int& bit_field, unsigned int fst_bit_idx); /// clear all the bits of bit_field with index equal or less than fst_bit_idx CGV_API void disable_lower_bits(unsigned int& bit_field, unsigned int fst_bit_idx); /// set n bits starting with index off of the given bit field from the first bits of the given integer value CGV_API void set_bits(unsigned int& bit_field, unsigned int off, unsigned int n, unsigned int value); } } #include