View Issue Details

IDProjectCategoryView StatusLast Update
0025279Open CASCADEOCCT:Data Exchangepublic2015-05-14 15:32
Reporteroan Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Target Version6.9.0Fixed in Version6.9.0 
Summary0025279: OCCT fails to read VRML file created by OCCT
DescriptionTry to create simple box and store to vrml. Restoring of stored file using Draw causes an error.
Steps To Reproducepload ALL
box b 10 10 10
writevrml b test.vrml

loadvrml test test.vrml
# ++ VRML Error: VrmlFormatError in line 7


Test script "bug25279" is attached
TagsNo tags attached.
Test case numberbugs stlvrml(018) bug25279

Attached Files

  • test.vrml (4,779 bytes)
  • bug25279 (850 bytes)

Relationships

parent of 0023328 closedbugmaster Community Importing VRML files with "scaleOrientation" not possible 
related to 0025825 closedabv Open CASCADE Draw Harness, XSDRAWSTLVRML - drop command tovrml and XSDRAWSTLVRML_ToVRML 
child of 0025050 closedbugmaster Open CASCADE Shape can not be stored to VRML format 

Activities

oan

2014-09-26 17:36

developer  

test.vrml (4,779 bytes)

akz

2015-01-15 16:56

developer   ~0036115

Last edited: 2015-01-15 17:21

"writevrml" command is an old functionality, which writes VRML files of version 1.0, but the reader can work only with version 2.0 as i understood.

Currently DRAW contains more recent command for writing a VRML files v2.0:
"storevrml"
This command write the file correctly, file can be read by reader after that.

abv

2015-01-15 17:28

manager   ~0036118

Do I understand correctly that writevrml writes in VRML 1.0 format? Some customers apply to third-party solutions where they could use plain OCCT just because they think OCCT can not write VRML 2.0...

Please remove command storevrml so that all functionality (both 1.0 and 2.0 versions) were provided by command writevrml. Version can be switched by specific option (2.0 by default). Please also document option "type" in command storevrml.

Please also make API function (VrmlAPI::Write()) configurable to be able to write VRML 2.0.

akz

2015-01-15 18:14

developer   ~0036125

Yes, all right - writevrml writes in format v1.0. I checked file test.vrml in the another tool (Cortona3D viewer), the file was read successfully.

abv

2015-01-15 18:27

manager   ~0036126

One more point: please change comment written in VRML 2.0 to be same as put in 1.0: "Generated by Open CASCADE Technology 6.8" (naturally version number is macro). Now it reads "Created by OPEN CASCADE (tm) VrmlData API".

akz

2015-01-19 14:46

developer   ~0036208

Due to suggestion http://tracker.dev.opencascade.org/view.php?id=25357#c36175
meshing will be removed from VRML as well.

git

2015-01-20 22:14

administrator   ~0036281

Branch CR25279 has been created by akz.

SHA-1: ee4ba80818b2f3458b0c7d3695c3e83b72d79f37


Detailed log of new commits:

Author: akz
Date: Tue Jan 20 22:14:23 2015 +0300

    Meshing is removed from writers of both (v1.0 and v2.0) versions.
    
    Shaded representation is skipped in case when a mesh does not exist.
    Wireframe representation checks the existence of a mesh before. If the mesh exists, a deflected edges are taken from the mesh, otherwise - are generated with the default deflection.
    
    Also removed drawing of redundant edges in wireframe representation of VRML version 1.0 (a grid on non-plane surfaces does not match a real edges of TopoDS_Shape and does not match representation in version 2.0).

Author: akz
Date: Tue Jan 20 12:27:00 2015 +0300

    0025279: OCCT fails to read VRML file created by OCCT
    
    Unification of the command to write VRML of both versions.
    Now "writevrml" command can write VRLM files of v1.0 and v2.0, with wireframe/shaded/both representations. Parameter "Deflection" was removed (next commit will remove meshing, so parameter will be useless).

git

2015-01-21 12:57

administrator   ~0036309

Branch CR25279 has been updated by akz.

SHA-1: c6b6cd1c7f36b7de5b9ffdbe5519d593d85b0fe9


Detailed log of new commits:

Author: akz
Date: Wed Jan 21 12:44:27 2015 +0300

    0025279: OCCT fails to read VRML file created by OCCT
    
    Return back the using Polygon3D for a free edges in VRML version 2.0

akz

2015-01-21 13:18

developer  

bug25279 (850 bytes)

akz

2015-01-21 13:19

developer   ~0036316

Branch CR25279 is ready to be reviewed

gka

2015-01-22 12:00

developer   ~0036370

Possibility of writing VRML files different version (1.0 or 2.0) should be implemented in class VrmlAPI_Writer. This class should have input parameter number of version. This functionality should be added in in method VrmlAPI::Write(). Default version for writing VRML in VRMLAPI_Writer should be set to 2.0.
Dram command "writevrml" should only call VrmlAPI_Writer with specified in draw command version.(default value is equal to 2.0)

git

2015-01-22 15:49

administrator   ~0036401

Branch CR25279 has been updated by akz.

SHA-1: 4aa85b445c91170eeb3c66b1f87668b946a34cc7


Detailed log of new commits:

Author: akz
Date: Thu Jan 22 15:48:57 2015 +0300

    0025279: OCCT fails to read VRML file created by OCCT
    
    Version of VRML format is added to VrmlAPI_Writer::Write() and VrmlAPI::Write() to allow use the both versions of the VRML by one writer.

akz

2015-01-22 15:51

developer   ~0036402

Writer can write the both versions now. Please, review.

gka

2015-01-22 16:00

developer   ~0036403

Branch CR25279 is ready to be tested

abv

2015-01-22 16:04

manager   ~0036404

Please squash all your changes in one commit and rebase on current master. Note that instead of dynamically printing a string in

> sprintf(anInfo, "Generated by Open CASCADE Technology %s", OCC_VERSION_STRING);

you could use plain C string concatenated by C preprocessor:

"Generated by Open CASCADE Technology " OCC_VERSION_STRING

git

2015-01-22 16:28

administrator   ~0036410

Branch CR25279_1 has been created by akz.

SHA-1: 59c905e127917bce80a2d1e6c753faf980ba6aca


Detailed log of new commits:

Author: akz
Date: Thu Jan 22 16:27:21 2015 +0300

    0025279: OCCT fails to read VRML file created by OCCT
    
    1) Version of VRML format is added to VrmlAPI_Writer::Write() and VrmlAPI::Write() to allow use the both versions of the VRML by one writer.
    2) Unification of the command to write VRML of both versions. Now "writevrml" command can write VRLM files of v1.0 and v2.0, with wireframe/shaded/both representations. Parameter "Deflection" was removed (next commit will remove meshing, so parameter will be useless).
    3) Meshing is removed from writers of both (v1.0 and v2.0) versions. Shaded representation is skipped in case when a mesh does not exist.
    Wireframe representation checks the existence of a mesh before. If the mesh exists, a deflected edges are taken from the mesh, otherwise - are generated with the default deflection.
    4) Drawing of redundant edges is removed in wireframe representation of VRML version 1.0 (a grid on non-plane surfaces does not match a real edges of TopoDS_Shape and does not match representation in version 2.0).

git

2015-01-22 16:28

administrator   ~0036411

Branch CR25279 has been deleted by akz.

SHA-1: 4aa85b445c91170eeb3c66b1f87668b946a34cc7

akz

2015-01-22 16:30

developer   ~0036412

All changes are squashed and rebased into branch CR25279_1

abv

2015-01-22 16:46

manager   ~0036415

No remarks, please test

git

2015-01-30 16:51

administrator   ~0036912

Branch CR25279_1 has been updated forcibly by mkv.

SHA-1: fe1fcd02e12f48c8983a790b0ebde457df8c61ba

mkv

2015-02-04 12:24

tester   ~0037049

Dear BugMaster,
Branch CR25279_1 was rebased on current master of occt git-repository.

mkv

2015-02-04 12:25

tester   ~0037050

Dear BugMaster,
Branch CR25279_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: fe1fcd02e12f48c8983a790b0ebde457df8c61ba

Number of compiler warnings:

occt component :
Linux: 18 (18 on master)
Windows: 0 (0 on master)

products component :
Linux: 11 (11 on master)
Windows: 1 (1 on master)

Regressions/Differences:
No regressions/differences

Testing cases:
http://occt-tests/CR25279-1-master-occt/Debian60-64/bugs/stlvrml/bug25279.html
http://occt-tests/CR25279-1-master-occt/Windows-32-VC10/bugs/stlvrml/bug25279.html
bugs stlvrml(018) bug25279: OK

Testing on Linux:
occt component :
Total MEMORY difference: 369766128 / 370076844
Total CPU difference: 54505.64999999997 / 49863.81000000002
products component :
Total MEMORY difference: 110199776 / 110223764
Total CPU difference: 16554.97 / 15770.609999999973

Testing on Windows:
occt component :
Total MEMORY difference: 275745776 / 276284192
Total CPU difference: 37042.90625 / 36894.109375
products component :
Total MEMORY difference: 72330324 / 71401072
Total CPU difference: 10985.265625 / 11731.96875

There are no differences in images found by testdiff.

git

2015-02-04 12:25

administrator   ~0037051

Branch CR25279_1 has been updated by mkv.

SHA-1: fc6a547b57166ee56af40988595e6d6acafa1ad0


Detailed log of new commits:

Author: mkv
Date: Wed Feb 4 12:23:55 2015 +0300

    Test case for issue CR25279

git

2015-03-18 13:33

administrator   ~0038512

Branch CR25279_1 has been deleted by inv.

SHA-1: fc6a547b57166ee56af40988595e6d6acafa1ad0

Related Changesets

occt: master f5fa6b33

2015-02-05 12:02:01

akz


Committer: bugmaster Details Diff
0025279: OCCT fails to read VRML file created by OCCT

1) Version of VRML format is added to VrmlAPI_Writer::Write() and VrmlAPI::Write() to allow use the both versions of the VRML by one writer.
2) Unification of the command to write VRML of both versions. Now "writevrml" command can write VRLM files of v1.0 and v2.0, with wireframe/shaded/both representations. Parameter "Deflection" was removed (next commit will remove meshing, so parameter will be useless).
3) Meshing is removed from writers of both (v1.0 and v2.0) versions. Shaded representation is skipped in case when a mesh does not exist.
Wireframe representation checks the existence of a mesh before. If the mesh exists, a deflected edges are taken from the mesh, otherwise - are generated with the default deflection.
4) Drawing of redundant edges is removed in wireframe representation of VRML version 1.0 (a grid on non-plane surfaces does not match a real edges of TopoDS_Shape and does not match representation in version 2.0).

Test case for issue CR25279
Affected Issues
0025279
mod - src/VrmlAPI/VrmlAPI.cdl Diff File
mod - src/VrmlAPI/VrmlAPI.cxx Diff File
mod - src/VrmlAPI/VrmlAPI_Writer.cdl Diff File
mod - src/VrmlAPI/VrmlAPI_Writer.cxx Diff File
mod - src/VrmlConverter/VrmlConverter.cdl Diff File
mod - src/VrmlConverter/VrmlConverter_DeflectionCurve.cdl Diff File
mod - src/VrmlConverter/VrmlConverter_DeflectionCurve.cxx Diff File
mod - src/VrmlConverter/VrmlConverter_ShadedShape.cxx Diff File
mod - src/VrmlConverter/VrmlConverter_WFDeflectionShape.cxx Diff File
mod - src/VrmlData/VrmlData_Scene.cxx Diff File
mod - src/VrmlData/VrmlData_ShapeConvert.cxx Diff File
mod - src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx Diff File
add - tests/bugs/stlvrml/bug25279 Diff File

Issue History

Date Modified Username Field Change
2014-09-26 17:36 oan New Issue
2014-09-26 17:36 oan Assigned To => gka
2014-09-26 17:36 oan File Added: test.vrml
2014-09-26 17:37 oan Relationship added child of 0025050
2014-09-26 18:12 abv Assigned To gka => dbv
2014-09-26 18:12 abv Status new => assigned
2014-09-26 18:12 abv Target Version 7.1.0 => 6.8.0
2014-10-29 06:57 abv Assigned To dbv => oan
2014-11-06 06:40 abv Target Version 6.8.0 => 7.1.0
2015-01-14 15:45 oan Relationship added parent of 0023328
2015-01-14 17:00 gka Assigned To oan => akz
2015-01-15 16:56 akz Note Added: 0036115
2015-01-15 16:56 akz Status assigned => feedback
2015-01-15 16:56 akz Assigned To akz => gka
2015-01-15 16:57 akz Note Edited: 0036115
2015-01-15 17:13 akz Note Edited: 0036115
2015-01-15 17:21 akz Note Edited: 0036115
2015-01-15 17:28 abv Note Added: 0036118
2015-01-15 17:36 gka Assigned To gka => akz
2015-01-15 17:36 gka Status feedback => assigned
2015-01-15 18:14 akz Note Added: 0036125
2015-01-15 18:27 abv Note Added: 0036126
2015-01-19 14:46 akz Note Added: 0036208
2015-01-20 22:14 git Note Added: 0036281
2015-01-21 12:57 git Note Added: 0036309
2015-01-21 13:18 akz File Added: bug25279
2015-01-21 13:19 akz Note Added: 0036316
2015-01-21 13:19 akz Assigned To akz => gka
2015-01-21 13:19 akz Status assigned => resolved
2015-01-21 13:19 akz Steps to Reproduce Updated
2015-01-22 12:00 gka Note Added: 0036370
2015-01-22 12:00 gka Assigned To gka => akz
2015-01-22 12:00 gka Status resolved => assigned
2015-01-22 15:49 git Note Added: 0036401
2015-01-22 15:51 akz Note Added: 0036402
2015-01-22 15:51 akz Assigned To akz => gka
2015-01-22 15:51 akz Status assigned => resolved
2015-01-22 16:00 gka Note Added: 0036403
2015-01-22 16:00 gka Assigned To gka => bugmaster
2015-01-22 16:00 gka Status resolved => reviewed
2015-01-22 16:04 abv Note Added: 0036404
2015-01-22 16:04 abv Assigned To bugmaster => akz
2015-01-22 16:04 abv Status reviewed => assigned
2015-01-22 16:28 git Note Added: 0036410
2015-01-22 16:28 git Note Added: 0036411
2015-01-22 16:30 akz Note Added: 0036412
2015-01-22 16:30 akz Assigned To akz => gka
2015-01-22 16:30 akz Status assigned => resolved
2015-01-22 16:46 abv Note Added: 0036415
2015-01-22 16:46 abv Assigned To gka => bugmaster
2015-01-22 16:46 abv Status resolved => reviewed
2015-01-30 14:43 mkv Assigned To bugmaster => mkv
2015-01-30 16:51 git Note Added: 0036912
2015-02-04 12:24 mkv Note Added: 0037049
2015-02-04 12:25 mkv Note Added: 0037050
2015-02-04 12:25 mkv Assigned To mkv => bugmaster
2015-02-04 12:25 mkv Status reviewed => tested
2015-02-04 12:25 git Note Added: 0037051
2015-02-04 12:25 mkv Test case number => bugs stlvrml(018) bug25279
2015-02-06 15:38 bugmaster Changeset attached => occt master f5fa6b33
2015-02-06 15:38 bugmaster Status tested => verified
2015-02-06 15:38 bugmaster Resolution open => fixed
2015-02-09 11:04 bugmaster Target Version 7.1.0 => 6.9.0
2015-02-13 11:49 kgv Relationship added related to 0025825
2015-03-18 13:33 git Note Added: 0038512
2015-05-14 15:29 aiv Status verified => closed
2015-05-14 15:32 aiv Fixed in Version => 6.9.0