]> OCCT Git - occt-copy.git/commitdiff
0026683: VRML 2.0: ImageTexture node not written
authoragv <agv@opencascade.com>
Wed, 16 Sep 2015 09:55:49 +0000 (12:55 +0300)
committerabv <abv@opencascade.com>
Thu, 17 Sep 2015 11:33:23 +0000 (14:33 +0300)
src/VrmlData/VrmlData_ImageTexture.hxx
src/VrmlData/VrmlData_Node.cxx

index 212889239c00b1fd654ca3d4e5b238294f79044a..595ff3812353b0ceaef1dad5454d2277cc029511 100644 (file)
@@ -63,6 +63,12 @@ class VrmlData_ImageTexture : public VrmlData_Texture
   Standard_EXPORT virtual VrmlData_ErrorStatus
                         Read    (VrmlData_InBuffer& theBuffer);
 
+  /**
+   * Write the Node to output stream.
+   */
+  Standard_EXPORT virtual VrmlData_ErrorStatus
+                        Write   (const char * thePrefix) const;
+
  protected:
   // ---------- PROTECTED METHODS ----------
 
index efd9fb238f330d17eaeb70026d49fb00fa04665b..fe0c8b8c18381637b79c6c95a6be8e71b91f2b05 100644 (file)
@@ -574,11 +574,9 @@ Standard_Boolean VrmlData_Appearance::IsDefault () const
   Standard_Boolean aResult (Standard_True);
   if (myMaterial.IsNull() == Standard_False)
     aResult = myMaterial->IsDefault();
-  if (aResult == Standard_False)
-    if (myTexture.IsNull() == Standard_False)
+  if (aResult && myTexture.IsNull() == Standard_False)
       aResult = myTexture->IsDefault();
-  if (aResult == Standard_False)
-    if (myTTransform.IsNull() == Standard_False)
+  if (aResult && myTTransform.IsNull() == Standard_False)
       aResult = myTTransform->IsDefault();
   return aResult;
 }
@@ -647,3 +645,31 @@ VrmlData_ErrorStatus VrmlData_ImageTexture::Read (VrmlData_InBuffer& theBuffer)
   return aStatus;
 }
 
+//=======================================================================
+//function : Write
+//purpose  : 
+//=======================================================================
+
+VrmlData_ErrorStatus VrmlData_ImageTexture::Write(const char *thePrefix)  const
+{
+  VrmlData_ErrorStatus aStatus = VrmlData_StatusOK;
+  const VrmlData_Scene& aScene = Scene();
+  static char header[] = "ImageTexture {";
+  if (aScene.IsDummyWrite() == Standard_False &&
+      OK(aStatus, aScene.WriteLine(thePrefix, header, GlobalIndent())))
+  {
+    TCollection_AsciiString url = "\"";
+    url += URL().First();
+    url += "\"";
+
+    try {
+      aStatus = aScene.WriteLine("url ", url.ToCString());
+    }
+    catch (...)
+    {
+      
+    }
+    aStatus = WriteClosing();
+  }
+  return aStatus;
+}