The VrmlAPI_Writer::WriteDoc() and VrmlAPI_Writer::Write() methods now return the export state.
#include <VrmlAPI.hxx>
#include <VrmlAPI_Writer.hxx>
#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) {
- writer.Write(aShape, aFileName, aVersion);
+ return writer.Write(aShape, aFileName, aVersion);
//! 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.
//! 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);
return myUnfreeBoundsMaterial;
}
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
- write_v1(aShape, aFile);
+ return write_v1 (aShape, aFile);
- 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);
{
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);
Handle(VrmlConverter_IsoAspect) ia = new VrmlConverter_IsoAspect; // UIso
Handle(VrmlConverter_IsoAspect) ia1 = new VrmlConverter_IsoAspect; //VIso
ia->SetMaterial(myUisoMaterial);
VrmlConverter_WFDeflectionShape::Add(outfile,aShape,myDrawer);
Group2.Print(outfile);
}
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;
{
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;
anExtEdge = Standard_True;
VrmlData_Scene aScene;
std::ofstream anOutStream;
OSD_OpenStream(anOutStream, aFile, std::ios::out);
std::ofstream anOutStream;
OSD_OpenStream(anOutStream, aFile, std::ios::out);
- if (!anOutStream.fail())
+ anOutStream << aScene;
+ anOutStream.close();
+ return anOutStream.good();
+
+ return Standard_False;
}
//=======================================================================
//function : WriteDoc
//purpose :
//=======================================================================
}
//=======================================================================
//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
const Handle(TDocStd_Document) &theDoc,
const Standard_CString theFile,
const Standard_Real theScale) const
std::ofstream anOutStream;
OSD_OpenStream(anOutStream, theFile, std::ios::out);
std::ofstream anOutStream;
OSD_OpenStream(anOutStream, theFile, std::ios::out);
- if (!anOutStream.fail())
+ anOutStream << aScene;
+ anOutStream.close();
+ return anOutStream.good();
+
+ return Standard_False;
//! Converts the shape aShape to
//! VRML format of the passed version and writes it to the file identified by aFile.
//! 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.
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;
const Handle(TDocStd_Document) &theDoc,
const Standard_CString theFile,
const Standard_Real theScale) const;
//! Converts the shape aShape to VRML format of version 1.0 and writes it
//! to the file identified by aFileName using default parameters.
//! 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.
//! 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;
Standard_Real anOCCLengthUnit =
UnitsMethods::GetLengthFactorValue(Interface_Static::IVal("xstep.cascade.unit"));
Standard_Real aScale = 0.001*anOCCLengthUnit;
Standard_Real anOCCLengthUnit =
UnitsMethods::GetLengthFactorValue(Interface_Static::IVal("xstep.cascade.unit"));
Standard_Real aScale = 0.001*anOCCLengthUnit;
- writer.WriteDoc(aDoc, argv[2], aScale);
+ if (!writer.WriteDoc(aDoc, argv[2], aScale))
+ {
+ di << "Error: File " << argv[2] << " was not written\n";
+ }
case 2: writer.SetRepresentation(VrmlAPI_BothRepresentation); break;
}
case 2: writer.SetRepresentation(VrmlAPI_BothRepresentation); break;
}
- writer.Write(aShape, argv[2], aVersion);
+ if (!writer.Write(aShape, argv[2], aVersion))
+ {
+ di << "Error: File " << argv[2] << " was not written\n";
+ }