Skip to content

Commit fdc26e2

Browse files
committed
[BeamLattice] Validate ball mode and radius, throw exception for invalid values
1 parent 7e97542 commit fdc26e2

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

Source/Model/Reader/BeamLattice1702/NMR_ModelReaderNode_BeamLattice1702_Ball.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ namespace NMR {
4747
return eModelBeamLatticeBallMode::MODELBEAMLATTICEBALLMODE_MIXED;
4848
if (strcmp(ballModeStr, XML_3MF_BEAMLATTICE_BALLMODE_ALL) == 0)
4949
return eModelBeamLatticeBallMode::MODELBEAMLATTICEBALLMODE_ALL;
50-
return eModelBeamLatticeBallMode::MODELBEAMLATTICEBALLMODE_NONE;
50+
if (strcmp(ballModeStr, XML_3MF_BEAMLATTICE_BALLMODE_NONE) == 0)
51+
return eModelBeamLatticeBallMode::MODELBEAMLATTICEBALLMODE_NONE;
52+
// Invalid ballmode value
53+
throw CNMRException(NMR_ERROR_BEAMLATTICEINVALIDATTRIBUTE);
5154
}
5255

5356
CModelReaderNode_BeamLattice1702_Ball::CModelReaderNode_BeamLattice1702_Ball(_In_ CModel* pModel, _In_ PModelWarnings pWarnings)

Source/Model/Reader/BeamLattice1702/NMR_ModelReaderNode_BeamLattice1702_BeamLattice.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ namespace NMR {
9393
void CModelReaderNode_BeamLattice1702_BeamLattice::validateBallOptions(_In_ PModelWarnings pWarnings)
9494
{
9595
if (m_pMesh->getBeamLatticeBallMode() != eModelBeamLatticeBallMode::MODELBEAMLATTICEBALLMODE_NONE) {
96-
if (m_pMesh->getDefaultBallRadius() <= 0 && m_pMesh->getDefaultBallRadius() >= XML_3MF_MAXIMUMCOORDINATEVALUE) {
96+
if (m_pMesh->getDefaultBallRadius() <= 0 || m_pMesh->getDefaultBallRadius() >= XML_3MF_MAXIMUMCOORDINATEVALUE) {
9797
pWarnings->addException(CNMRException(NMR_ERROR_BEAMLATTICEINVALIDATTRIBUTE), mrwInvalidOptionalValue);
9898
}
9999
}
@@ -177,7 +177,11 @@ namespace NMR {
177177
m_dDefaultBallRadius = dValue;
178178
m_pMesh->setDefaultBallRadius(dValue);
179179
}
180+
else
181+
m_pWarnings->addException(CNMRException(NMR_ERROR_NAMESPACE_INVALID_ATTRIBUTE), mrwInvalidOptionalValue);
180182
}
183+
else
184+
m_pWarnings->addException(CNMRException(NMR_ERROR_NAMESPACE_INVALID_ATTRIBUTE), mrwInvalidOptionalValue);
181185
}
182186

183187
void CModelReaderNode_BeamLattice1702_BeamLattice::OnNSChildElement(_In_z_ const nfChar * pChildName, _In_z_ const nfChar * pNameSpace, _In_ CXmlReader * pXMLReader)

0 commit comments

Comments
 (0)