1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-04 13:13:25 +03:00

0030180: Data Exchange - VrmlAPI_Writer is expected to return export state

The VrmlAPI_Writer::WriteDoc() and VrmlAPI_Writer::Write() methods now return the export state.
This commit is contained in:
mzernova
2019-09-16 13:44:02 +03:00
committed by bugmaster
parent 1f44d29a0f
commit c42ef16585
6 changed files with 45 additions and 22 deletions

View File

@@ -18,7 +18,7 @@
#include <VrmlAPI.hxx>
#include <VrmlAPI_Writer.hxx>
void VrmlAPI::Write(const TopoDS_Shape& aShape, const Standard_CString aFileName, const Standard_Integer aVersion) {
Standard_Boolean VrmlAPI::Write(const TopoDS_Shape& aShape, const Standard_CString aFileName, const Standard_Integer aVersion) {
VrmlAPI_Writer writer;
writer.Write(aShape, aFileName, aVersion);
return writer.Write(aShape, aFileName, aVersion);
}

View File

@@ -37,7 +37,7 @@ public:
//! With help of this class user can change parameters of writing.
//! Converts the shape aShape to VRML format of the passed version and writes it
//! to the file identified by aFileName using default parameters.
Standard_EXPORT static void Write (const TopoDS_Shape& aShape, const Standard_CString aFileName, const Standard_Integer aVersion = 2);
Standard_EXPORT static Standard_Boolean Write (const TopoDS_Shape& aShape, const Standard_CString aFileName, const Standard_Integer aVersion = 2);

View File

@@ -222,20 +222,26 @@ Handle(Vrml_Material) VrmlAPI_Writer::GetUnfreeBoundsMaterial() const
return myUnfreeBoundsMaterial;
}
void VrmlAPI_Writer::Write(const TopoDS_Shape& aShape,const Standard_CString aFile, const Standard_Integer aVersion) const
Standard_Boolean VrmlAPI_Writer::Write(const TopoDS_Shape& aShape,const Standard_CString aFile, const Standard_Integer aVersion) const
{
if (aVersion == 1)
write_v1(aShape, aFile);
return write_v1 (aShape, aFile);
else if (aVersion == 2)
write_v2(aShape, aFile);
return write_v2 (aShape, aFile);
return Standard_False;
}
void VrmlAPI_Writer::write_v1(const TopoDS_Shape& aShape,const Standard_CString aFile) const
Standard_Boolean VrmlAPI_Writer::write_v1(const TopoDS_Shape& aShape,const Standard_CString aFile) const
{
OSD_Path thePath(aFile);
TCollection_AsciiString theFile;thePath.SystemName(theFile);
std::ofstream outfile;
OSD_OpenStream(outfile, theFile.ToCString(), std::ios::out);
if (!outfile)
{
return Standard_False;
}
Handle(VrmlConverter_IsoAspect) ia = new VrmlConverter_IsoAspect; // UIso
Handle(VrmlConverter_IsoAspect) ia1 = new VrmlConverter_IsoAspect; //VIso
ia->SetMaterial(myUisoMaterial);
@@ -352,18 +358,21 @@ void VrmlAPI_Writer::write_v1(const TopoDS_Shape& aShape,const Standard_CString
VrmlConverter_WFDeflectionShape::Add(outfile,aShape,myDrawer);
Group2.Print(outfile);
}
S2.Print(outfile);
S1.Print(outfile);
S2.Print(outfile);
S1.Print(outfile);
outfile.close();
return outfile.good();
}
void VrmlAPI_Writer::write_v2(const TopoDS_Shape& aShape,const Standard_CString aFile) const
Standard_Boolean VrmlAPI_Writer::write_v2(const TopoDS_Shape& aShape,const Standard_CString aFile) const
{
Standard_Boolean anExtFace = Standard_False;
if(myRepresentation == VrmlAPI_ShadedRepresentation || myRepresentation == VrmlAPI_BothRepresentation)
anExtFace = Standard_True;
Standard_Boolean anExtEdge = Standard_False;
if(myRepresentation == VrmlAPI_WireFrameRepresentation|| myRepresentation == VrmlAPI_BothRepresentation)
if(myRepresentation == VrmlAPI_WireFrameRepresentation || myRepresentation == VrmlAPI_BothRepresentation)
anExtEdge = Standard_True;
VrmlData_Scene aScene;
@@ -373,17 +382,21 @@ void VrmlAPI_Writer::write_v2(const TopoDS_Shape& aShape,const Standard_CString
std::ofstream anOutStream;
OSD_OpenStream(anOutStream, aFile, std::ios::out);
if (!anOutStream.fail())
if (anOutStream)
{
anOutStream << aScene;
anOutStream << aScene;
anOutStream.close();
return anOutStream.good();
}
return Standard_False;
}
//=======================================================================
//function : WriteDoc
//purpose :
//=======================================================================
void VrmlAPI_Writer::WriteDoc(
Standard_Boolean VrmlAPI_Writer::WriteDoc(
const Handle(TDocStd_Document) &theDoc,
const Standard_CString theFile,
const Standard_Real theScale) const
@@ -394,9 +407,13 @@ void VrmlAPI_Writer::WriteDoc(
std::ofstream anOutStream;
OSD_OpenStream(anOutStream, theFile, std::ios::out);
if (!anOutStream.fail())
if (anOutStream)
{
anOutStream << aScene;
anOutStream << aScene;
anOutStream.close();
return anOutStream.good();
}
return Standard_False;
}

View File

@@ -105,12 +105,12 @@ public:
//! Converts the shape aShape to
//! VRML format of the passed version and writes it to the file identified by aFile.
Standard_EXPORT void Write (const TopoDS_Shape& aShape, const Standard_CString aFile,
Standard_EXPORT Standard_Boolean Write (const TopoDS_Shape& aShape, const Standard_CString aFile,
const Standard_Integer aVersion = 2) const;
//! Converts the document to VRML format of the passed version
//! and writes it to the file identified by aFile.
Standard_EXPORT void WriteDoc(
Standard_EXPORT Standard_Boolean WriteDoc(
const Handle(TDocStd_Document) &theDoc,
const Standard_CString theFile,
const Standard_Real theScale) const;
@@ -119,11 +119,11 @@ protected:
//! Converts the shape aShape to VRML format of version 1.0 and writes it
//! to the file identified by aFileName using default parameters.
Standard_EXPORT void write_v1 (const TopoDS_Shape& aShape, const Standard_CString aFileName) const;
Standard_EXPORT Standard_Boolean write_v1 (const TopoDS_Shape& aShape, const Standard_CString aFileName) const;
//! Converts the shape aShape to VRML format of version 2.0 and writes it
//! to the file identified by aFileName using default parameters.
Standard_EXPORT void write_v2 (const TopoDS_Shape& aShape, const Standard_CString aFileName) const;
Standard_EXPORT Standard_Boolean write_v2 (const TopoDS_Shape& aShape, const Standard_CString aFileName) const;
private: