mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-04 18:06:22 +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:
parent
1f44d29a0f
commit
c42ef16585
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
@ -597,7 +597,10 @@ static Standard_Integer WriteVrml(Draw_Interpretor& di, Standard_Integer argc, c
|
||||
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";
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -532,7 +532,10 @@ static Standard_Integer writevrml
|
||||
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";
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user