コード例 #1
0
	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);
	}
コード例 #2
0
	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);
	}
コード例 #3
0
	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);
		}

	}
コード例 #4
0
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;
    }


}
コード例 #5
0
	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++;
		}

	}