Set value of type 'type' pointed to by 'val'.
| 168 | |
| 169 | // Set value of type 'type' pointed to by 'val'. |
| 170 | void setField(Dimension::Id dim, Dimension::Type type, PointId idx, const void *val) |
| 171 | { |
| 172 | Everything e; |
| 173 | |
| 174 | memcpy(&e, val, Dimension::size(type)); |
| 175 | switch (type) |
| 176 | { |
| 177 | case Dimension::Type::Float: |
| 178 | setField(dim, idx, e.f); |
| 179 | break; |
| 180 | case Dimension::Type::Double: |
| 181 | setField(dim, idx, e.d); |
| 182 | break; |
| 183 | case Dimension::Type::Signed8: |
| 184 | setField(dim, idx, e.s8); |
| 185 | break; |
| 186 | case Dimension::Type::Signed16: |
| 187 | setField(dim, idx, e.s16); |
| 188 | break; |
| 189 | case Dimension::Type::Signed32: |
| 190 | setField(dim, idx, e.s32); |
| 191 | break; |
| 192 | case Dimension::Type::Signed64: |
| 193 | setField(dim, idx, e.s64); |
| 194 | break; |
| 195 | case Dimension::Type::Unsigned8: |
| 196 | setField(dim, idx, e.u8); |
| 197 | break; |
| 198 | case Dimension::Type::Unsigned16: |
| 199 | setField(dim, idx, e.u16); |
| 200 | break; |
| 201 | case Dimension::Type::Unsigned32: |
| 202 | setField(dim, idx, e.u32); |
| 203 | break; |
| 204 | case Dimension::Type::Unsigned64: |
| 205 | setField(dim, idx, e.u64); |
| 206 | break; |
| 207 | case Dimension::Type::None: |
| 208 | break; |
| 209 | } |
| 210 | } |
| 211 | |
| 212 | template <typename T> |
| 213 | bool compare(Dimension::Id dim, PointId id1, PointId id2) const |