std::vector<unsigned> IdfExtensibleGroup::mf_indices() const { UnsignedVector result; if (!empty()) { for (unsigned i = 0, n = numFields(); i < n; ++i) { result.push_back(mf_toIndex(i)); } } return result; }
UnsignedVector IdfExtensibleGroup::mf_subsetAndToFieldIndices(UnsignedVector indices) const { UnsignedVector result; OS_ASSERT(!empty()); // downselect and convert to only this ExtensibleGroup for (unsigned index : indices) { if (index >= m_index) { unsigned fieldIndex = index - m_index; if (isValid(fieldIndex)) { result.push_back(fieldIndex); } } } return result; }
std::vector<unsigned> IdfExtensibleGroup::requiredFields() const { UnsignedVector result; if (!empty()) { IddFieldVector iddExtFields = m_impl->iddObject().extensibleGroup(); for (unsigned fieldIndex = 0, n = numFields(); fieldIndex < n; ++fieldIndex) { if (iddExtFields[fieldIndex].properties().required) { result.push_back(fieldIndex); } } } return result; }