! * Struct holding Attribute flags used by the AttributeManager for * updating/computing attribute values */
| 42 | * updating/computing attribute values |
| 43 | */ |
| 44 | struct AttributeProperties |
| 45 | { |
| 46 | AttributeProperties() = default; |
| 47 | |
| 48 | AttributeProperties( bool is_assignable, bool is_interpolable ) |
| 49 | : assignable( is_assignable ), interpolable( is_interpolable ) |
| 50 | { |
| 51 | } |
| 52 | |
| 53 | AttributeProperties( |
| 54 | bool is_assignable, bool is_interpolable, bool is_transferable ) |
| 55 | : assignable( is_assignable ), |
| 56 | interpolable( is_interpolable ), |
| 57 | transferable( is_transferable ) |
| 58 | { |
| 59 | } |
| 60 | |
| 61 | template < typename Archive > |
| 62 | void serialize( Archive& serializer ) |
| 63 | { |
| 64 | serializer.ext( *this, |
| 65 | Growable< Archive, AttributeProperties >{ |
| 66 | { []( Archive& archive, AttributeProperties& properties ) { |
| 67 | archive.value1b( properties.assignable ); |
| 68 | archive.value1b( properties.interpolable ); |
| 69 | }, |
| 70 | []( Archive& archive, |
| 71 | AttributeProperties& properties ) { |
| 72 | archive.value1b( properties.assignable ); |
| 73 | archive.value1b( properties.interpolable ); |
| 74 | archive.value1b( properties.transferable ); |
| 75 | } } } ); |
| 76 | } |
| 77 | |
| 78 | bool assignable{ false }; |
| 79 | bool interpolable{ false }; |
| 80 | bool transferable{ true }; |
| 81 | }; |
| 82 | |
| 83 | /*! |
| 84 | * Helper struct to interpolate an Attribute value. |
nothing calls this directly
no outgoing calls
no test coverage detected