mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
0030409: Data Exchange - exception during VRML file export
VrmlData_ShapeConvert::addShape() - handle case when parent node is NULL.
This commit is contained in:
parent
eeabb8f86a
commit
7803c28d96
@ -683,7 +683,7 @@ void VrmlData_ShapeConvert::addShape (const Handle(VrmlData_Group)& theParent,
|
||||
aShapeNode->SetAppearance(makeMaterialFromColor(aColorL, aColorTool));
|
||||
}
|
||||
|
||||
myScene.AddNode(aShapeNode, Standard_False);
|
||||
myScene.AddNode(aShapeNode, theParent.IsNull() && aGroup.IsNull());
|
||||
aShapeNode->SetGeometry(aTShapeNode);
|
||||
if (aLoc.IsIdentity())
|
||||
{
|
||||
@ -692,7 +692,7 @@ void VrmlData_ShapeConvert::addShape (const Handle(VrmlData_Group)& theParent,
|
||||
{
|
||||
aGroup->AddNode(aShapeNode);
|
||||
}
|
||||
else
|
||||
else if (!theParent.IsNull())
|
||||
{
|
||||
theParent->AddNode(aShapeNode);
|
||||
}
|
||||
@ -709,12 +709,12 @@ void VrmlData_ShapeConvert::addShape (const Handle(VrmlData_Group)& theParent,
|
||||
aTrsf.SetTranslationPart(aTransl);
|
||||
}
|
||||
aTrans->SetTransform(aTrsf);
|
||||
myScene.AddNode(aTrans, Standard_False);
|
||||
myScene.AddNode(aTrans, theParent.IsNull() && aGroup.IsNull());
|
||||
if (!aGroup.IsNull())
|
||||
{
|
||||
aGroup->AddNode(aTrans);
|
||||
}
|
||||
else
|
||||
else if (!theParent.IsNull())
|
||||
{
|
||||
theParent->AddNode(aTrans);
|
||||
}
|
||||
|
14
tests/bugs/xde/bug30409
Normal file
14
tests/bugs/xde/bug30409
Normal file
@ -0,0 +1,14 @@
|
||||
puts "================"
|
||||
puts "0030409: Data Exchange - e x c e p t i o n during VRML file export"
|
||||
puts "================"
|
||||
puts ""
|
||||
|
||||
pload XDE MODELING VISUALIZATION
|
||||
box b 1 2 3
|
||||
incmesh b 1
|
||||
explode b F
|
||||
XNewDoc D
|
||||
XAddShape D b_1 0
|
||||
WriteVrml D $imagedir/${casename}.wrl
|
||||
loadvrml w $imagedir/${casename}.wrl
|
||||
checktrinfo w -tri 2 -nod 4
|
Loading…
x
Reference in New Issue
Block a user