void CModelReaderNode100_Tex2DGroup::OnAttribute(_In_z_ const nfWChar * pAttributeName, _In_z_ const nfWChar * pAttributeValue) { __NMRASSERT(pAttributeName); __NMRASSERT(pAttributeValue); if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TEX2DGROUP_ID) == 0) { if (m_nID != 0) throw CNMRException(NMR_ERROR_DUPLICATERESOURCEID); // Convert to integer and make a input and range check! m_nID = fnWStringToUint32(pAttributeValue); } else if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TEX2DGROUP_TEXTUREID) == 0) { if (m_nTextureID != 0) throw CNMRException(NMR_ERROR_DUPLICATERESOURCEID); // Convert to integer and make a input and range check! ModelResourceID nID = fnWStringToUint32(pAttributeValue); if (nID == 0) m_pWarnings->addException(CNMRException(NMR_ERROR_INVALIDMODELRESOURCE), mrwInvalidMandatoryValue); m_nTextureID = nID; } else m_pWarnings->addException(CNMRException(NMR_ERROR_NAMESPACE_INVALID_ATTRIBUTE), mrwInvalidOptionalValue); }
void CModelReaderNode_Slices1507_Polygon::OnAttribute(_In_z_ const nfWChar * pAttributeName, _In_z_ const nfWChar * pAttributeValue) { if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_SLICEPOLYGON_STARTV) == 0) { m_StartV = fnWStringToUint32(pAttributeValue); } else throw CNMRException(NMR_ERROR_SLICE_INVALIDATTRIBUTE); }
void CModelReaderNode100_Colors::OnAttribute(_In_z_ const nfWChar * pAttributeName, _In_z_ const nfWChar * pAttributeValue) { __NMRASSERT(pAttributeName); __NMRASSERT(pAttributeValue); if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_COLORS_ID) == 0) { if (m_nID != 0) throw CNMRException(NMR_ERROR_DUPLICATERESOURCEID); // Convert to integer and make a input and range check! m_nID = fnWStringToUint32(pAttributeValue); } }
void CModelReaderNode093_Object::OnAttribute(_In_z_ const nfWChar * pAttributeName, _In_z_ const nfWChar * pAttributeValue) { __NMRASSERT(pAttributeName); __NMRASSERT(pAttributeValue); if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_OBJECT_ID) == 0) { if (m_nID != 0) throw CNMRException(NMR_ERROR_DUPLICATEOBJECTID); // Convert to integer and make a input and range check! m_nID = fnWStringToUint32(pAttributeValue); // Increase ID to avoid 0 (was allowed for 0.9.3) m_nID++; } if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_OBJECT_TYPE) == 0) { if (m_bHasType) throw CNMRException(NMR_ERROR_DUPLICATEOBJECTTYPE); // Convert to integer and make a input and range check! std::wstring sString(pAttributeValue); m_sType = sString; m_bHasType = true; } if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_OBJECT_NAME) == 0) { std::wstring sValue(pAttributeValue); m_sName = sValue; } if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_COLORID) == 0) { nfInt32 nValue = fnWStringToInt32(pAttributeValue); if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX)) { m_nColorID = nValue + 1; } } if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_MATERIALID) == 0) { nfInt32 nValue = fnWStringToInt32(pAttributeValue); if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX)) m_nMaterialID = nValue + 1; } }
void CModelReaderNode093_Color::OnAttribute(_In_z_ const nfWChar * pAttributeName, _In_z_ const nfWChar * pAttributeValue) { __NMRASSERT(pAttributeName); __NMRASSERT(pAttributeValue); if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_COLOR_VALUE) == 0) { std::wstring sValue(pAttributeValue); m_sColorString = sValue; } if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_COLOR_ID) == 0) { if (m_nResourceID != 0) throw CNMRException(NMR_ERROR_DUPLICATECOLORID); // Convert to integer and make a input and range check! m_nResourceID = fnWStringToUint32(pAttributeValue); m_nResourceID++; } }