BRepTools_ShapeSet now ignores myWithTriangles flag in case if triangulation is the only geometry representation.
Handle(BRep_TFace) TF = Handle(BRep_TFace)::DownCast(S.TShape());
if (!TF->Surface().IsNull()) mySurfaces.Add(TF->Surface());
- if (myWithTriangles) { // for XML Persistence
+ if (myWithTriangles || TF->Surface().IsNull()) { // for XML Persistence
Handle(Poly_Triangulation) Tr = TF->Triangulation();
if (!Tr.IsNull()) myTriangulations.Add(Tr);
}
OS << " " << 0;
OS << "\n";
}
- if (myWithTriangles) { // for XML Persistence
+ if (myWithTriangles || TF->Surface().IsNull()) { // for XML Persistence
if (!(TF->Triangulation()).IsNull()) {
OS << 2;
OS << " ";
set anImgDoc1 $imagedir/${casename}_doc1.png
set anImgDoc2 $imagedir/${casename}_doc2.png
set anImgDiff $imagedir/${casename}_diff.png
+set aTestFile $imagedir/${casename}.xbf
pload XDE OCAF MODELING VISUALIZATION
NewDocument D BinXCAF
XAddShape D s
XSetColor D s_1 1 0 0
-XShow D
+vclear
+vinit View1
vaxo
+XDisplay -dispMode 1 D
vfit
vrotate 3 0 0
-vsetdispmode 1
vdump $anImgDoc1
-file delete ${imagedir}/test.xbf
+file delete $aTestFile
StoreTriangulation 1
-SaveAs D ${imagedir}/test.xbf
+SaveAs D $aTestFile
Close D
-XOpen ${imagedir}/test.xbf D
-XShow D
-vsetdispmode 1
+XOpen $aTestFile D
+file delete $aTestFile
+vclear
+XDisplay -dispMode 1 D
vaxo
vfit
vrotate 3 0 0
vdump $anImgDoc2
set aDiffRes [diffimage $anImgDoc2 $anImgDoc1 0.0 0 0 $anImgDiff]
-if {$aDiffRes != 0} {
- puts "Error: document has changed after Save/Read"
-}
+if {$aDiffRes != 0} { puts "Error: document has changed after Save/Read" }
--- /dev/null
+puts "============"
+puts "0031050: Data Exchange - XmlXCAF persistence stores triangulation-only Faces without any geometry"
+puts "============"
+
+set anImgDoc1 $imagedir/${casename}_doc1.png
+set anImgDoc2 $imagedir/${casename}_doc2.png
+set anImgDiff $imagedir/${casename}_diff.png
+set aTestFile $imagedir/${casename}.xml
+
+pload XDE OCAF MODELING VISUALIZATION
+
+restore [locate_data_file bug27821_nullsurf.brep] s
+explode s F
+
+NewDocument D XmlXCAF
+XAddShape D s
+XSetColor D s_1 1 0 0
+vclear
+vinit View1
+vaxo
+XDisplay -dispMode 1 D
+vfit
+vrotate 3 0 0
+vdump $anImgDoc1
+
+file delete $aTestFile
+StoreTriangulation 1
+SaveAs D $aTestFile
+Close D
+
+XOpen $aTestFile D
+file delete $aTestFile
+vclear
+XDisplay -dispMode 1 D
+vdump $anImgDoc2
+
+set aDiffRes [diffimage $anImgDoc2 $anImgDoc1 0.0 0 0 $anImgDiff]
+if {$aDiffRes != 0} { puts "Error: document has changed after Save/Read" }