| 243 | } |
| 244 | |
| 245 | ExtensibleIndex IddObject_Impl::extensibleIndex(unsigned index) const { |
| 246 | if (!isExtensibleField(index)) { |
| 247 | LOG_AND_THROW("Field " << index << " is not an extensible field in IddObject " << name() << "."); |
| 248 | } |
| 249 | ExtensibleIndex result(0, 0); |
| 250 | result.field = (index - m_fields.size()) % m_properties.numExtensible; |
| 251 | result.group = (index - result.field - m_fields.size()) / m_properties.numExtensible; |
| 252 | return result; |
| 253 | } |
| 254 | |
| 255 | unsigned IddObject_Impl::index(ExtensibleIndex extensibleIndex) const { |
| 256 | if (!m_properties.extensible) { |