From 753ba63d7feeaa7ccbd0ca6c5bfdffdbdfbbfba0 Mon Sep 17 00:00:00 2001 From: Efi Fogel Date: Wed, 8 May 2013 21:04:45 +0300 Subject: [PATCH] added tests --- .../geodesic_arcs_on_sphere/test04.jpg | Bin 0 -> 33563 bytes .../geodesic_arcs_on_sphere/test04.txt | 16 ++ .../geodesic_arcs_on_sphere/test04.wrl | 265 ++++++++++++++++++ .../geodesic_arcs_on_sphere/test05.jpg | Bin 0 -> 31479 bytes .../geodesic_arcs_on_sphere/test05.txt | 15 + .../geodesic_arcs_on_sphere/test05.wrl | 264 +++++++++++++++++ ...t_construction.geodesic_arcs_on_sphere.cmd | 1 + 7 files changed, 561 insertions(+) create mode 100644 Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.jpg create mode 100644 Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.txt create mode 100644 Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.wrl create mode 100644 Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.jpg create mode 100644 Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.txt create mode 100644 Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.wrl diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.jpg b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.jpg new file mode 100644 index 0000000000000000000000000000000000000000..945e5fa8437c763a047e0c6180f7b6b137f2171a GIT binary patch literal 33563 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 ky3Tyf4k1k3{wCWd2P3H@xQFlK=n! literal 0 HcmV?d00001 diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.txt b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.txt new file mode 100644 index 00000000000..c20a698706e --- /dev/null +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.txt @@ -0,0 +1,16 @@ +4 +-1 -1 0 1 -1 0 0 +1 -1 0 0 0 1 0 +0 0 1 -1 -1 0 0 +-1 -2 1 1 -2 1 0 +0 +5 4 2 +-1 -1 0 +-1 -2 1 +1 -2 1 +1 -1 0 +0 0 1 +-1 -1 0 1 -1 0 0 1 +-1 -2 1 1 -2 1 0 1 +1 -1 0 0 0 1 0 1 +0 0 1 -1 -1 0 0 1 diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.wrl b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.wrl new file mode 100644 index 00000000000..a443773bb47 --- /dev/null +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test04.wrl @@ -0,0 +1,265 @@ +#VRML V2.0 utf8 +Configuration { + accumulation Accumulation { enabled TRUE } +} +ColorBackground { + color 1 1 1 1 + clearStencil TRUE +} +NavigationInfo { type [ "EXAMINE" "ANY" ] } +Viewpoint { + type "ORTHOGONAL" + fieldOfView 2.96 + # radiusScale 0.7 +} + +DEF TRANSFORMER_NAV NavigationInfo { type [ "TRANSFORM" ] } + +DEF DRAW_OPAQUE_KEY SingleKeySensor { key "o" } +DEF DRAW_HALOED_KEY SingleKeySensor { key "l" state TRUE } +DEF DRAW_SURFACE_KEY SingleKeySensor { key "b" state TRUE } +DEF EXPORT_KEY SingleKeySensor { key "O" } +DEF SNAP_KEY SingleKeySensor { key "S" } + +DEF VERTEX_SHAPE_KEY SingleKeySensor { + key "v" + boolean FALSE + numberOfStates 5 + intState 2 # disc +} + +DEF EDGE_SHAPE_KEY SingleKeySensor { + key "e" + boolean FALSE + numberOfStates 4 + intState 2 # strip +} + +DEF HIDE_SINGULARITIES_KEY SingleKeySensor { + boolean FALSE + key "s" +} + +DEF HIDE_DISCONTINUITY_KEY SingleKeySensor { + boolean FALSE + key "d" +} + +DEF SNAP Snapshot { + image Image { } + fileFormat "jpg" + sequence FALSE + dirName "." + fileName "test04" +} + +Transform { + rotation 1 0 0 -1.5708 + bboxCenter 0 0 0 + bboxSize 1.5 1.5 1.5 + children [ + Switch { + whichChoice 0 + children [ + DEF ARRANGMENT Group { + children [ + Shape { + drawDepth FALSE + appearance Appearance { + material Material { + diffuseColor 0.5 0.5 0.5 + ambientIntensity 0.7 + specularColor 0.5 0.5 0.5 + } + } + geometry Sphere { + slices 32 + stacks 32 + } + } + Shape { + appearance Appearance { + material Material { + transparency 0.0001 + } + } + geometry DEF GEOM ArrangementOnSphereMarked { + drawSurface FALSE +# drawOpaque TRUE + drawHaloed TRUE + aosEdgeStyle "strip" + aosEdgeRadius 0.03 + aosEdgeLineWidth 3 + aosVertexStyle "disc" + aosMarkedVertexStyle "none" + aosVertexRadius 0.1 + aosVertexPointSize 6 + aosIsolatedVertexStyle "disc" +# insertionStrategy "increment" + aosMarkedEdgeIndex 100 + aosMarkedVertexIndex 0 + coord DEF COORD ExactCoordinate { + ratPoint [-1 -1 0 + 1 -1 0, + 0 0 1, + -1 -2 1, + 1 -2 1 + ] + } + # Pointindex [6 7] + curveIndex [0 1 1 2 2 0 3 4] + } + } + ] + } + ] + } + + # The singularity points: + DEF SINGULARITIES_SWITCH Switch { + whichChoice 0 + children [ + Group { + children [ + Shape { + appearance DEF BOUNDARY_APP Appearance { + material Material { + # ambientIntensity 1 + diffuseColor 0.4 0.4 0.4 + # specularColor 0.8 0.8 0.8 + # transparency 0.0001 + } + } + geometry Sphere { + center 0 0 1 + radius 0.05 + } + } + Shape { + appearance USE AXES_APP + geometry Sphere { + center 0 0 -1 + radius 0.05 + } + } + ] + } + ] + } + + # The discontinuity arc: + DEF DISCONTINUITY_SWITCH Switch { + whichChoice 0 + children [ + Shape { + appearance USE BOUNDARY_APP + geometry Extrusion { + creaseAngle 2.0 + beginCap TRUE + endCap TRUE + loop FALSE + crossSectionRadius 0.025 + spine [ + 0 0 1, + -0.0980171 0 0.995185, + -0.19509 0 0.980785, + -0.290285 0 0.95694, + -0.382683 0 0.92388, + -0.471397 0 0.881921, + -0.55557 0 0.83147, + -0.634393 0 0.77301, + -0.707107 0 0.707107, + -0.77301 0 0.634393, + -0.83147 0 0.55557, + -0.881921 0 0.471397, + -0.92388 0 0.382683, + -0.95694 0 0.290285, + -0.980785 0 0.19509, + -0.995185 0 0.0980171, + -1 0 0, + -0.995185 0 -0.0980171, + -0.980785 0 -0.19509, + -0.95694 0 -0.290285, + -0.92388 0 -0.382683, + -0.881921 0 -0.471397, + -0.83147 0 -0.55557, + -0.77301 0 -0.634393, + -0.707107 0 -0.707107, + -0.634393 0 -0.77301, + -0.55557 0 -0.83147, + -0.471397 0 -0.881921, + -0.382683 0 -0.92388, + -0.290285 0 -0.95694, + -0.19509 0 -0.980785, + -0.0980171 0 -0.995185, + 0 0 -1, + ] + } + } + ] + } + + # The axes: + DEF AXES Transform { + scale 0.1 0.1 0.1 + children [ + Shape { + appearance DEF AXES_APP Appearance { + material Material { + # ambientIntensity 1 + diffuseColor 0.4 0.4 0.4 + # specularColor 0.3 0.3 0.3 + # transparency 0.0001 + } + } + geometry Sphere { radius 0.1 } + } + DEF CS_AXIS Transform { + translation 0 1.5 0 + children [ + Shape { + appearance USE AXES_APP + geometry Cylinder { + radius 0.1 + height 3 + set_is_bottom_visible FALSE + set_is_top_visible FALSE + } + } + Transform { + translation 0 1.7 0 + children [ + Shape { + appearance USE AXES_APP + geometry Cone { + bottomRadius 0.2 + height 0.4 + } + } + ] + } + ] + } + Transform { + rotation 0 0 -1 1.57 + children [ USE CS_AXIS ] + } + Transform { + rotation 1 0 0 1.57 + children [ USE CS_AXIS ] + } + ] + } + ] +} + +ROUTE DRAW_OPAQUE_KEY.state TO GEOM.drawOpaque +ROUTE DRAW_HALOED_KEY.state TO GEOM.drawHaloed +ROUTE SNAP_KEY.state TO SNAP.trigger +# ROUTE EXPORT_KEY.press TO GEOM.export + +ROUTE HIDE_DISCONTINUITY_KEY.intState TO DISCONTINUITY_SWITCH.whichChoice +ROUTE HIDE_SINGULARITIES_KEY.intState TO SINGULARITIES_SWITCH.whichChoice + +ROUTE VERTEX_SHAPE_KEY.intState TO GEOM.aosVertexStyleId +ROUTE EDGE_SHAPE_KEY.intState TO GEOM.aosEdgeStyleId diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.jpg b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.jpg new file mode 100644 index 0000000000000000000000000000000000000000..323ae5115672bac68839737c8b792b56fd86d8e7 GIT binary patch literal 31479 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℘Jb~`}?4L}HM!ddoU&X`O6ns9}^>ms-`hzcQ| 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 literal 0 HcmV?d00001 diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.txt b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.txt new file mode 100644 index 00000000000..44aa26cc32d --- /dev/null +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.txt @@ -0,0 +1,15 @@ +4 +-1 -1 0 1 -1 0 0 +1 -1 0 0 0 1 0 +0 0 1 -1 -1 0 0 +0 0 1 0 -1 1 0 +0 +4 4 2 +-1 -1 0 +0 -1 1 +1 -1 0 +0 0 1 +-1 -1 0 1 -1 0 0 1 +1 -1 0 0 0 1 0 1 +0 0 1 -1 -1 0 0 1 +0 0 1 0 -1 1 0 1 diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.wrl b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.wrl new file mode 100644 index 00000000000..f95dd63c57e --- /dev/null +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/data/test_construction/geodesic_arcs_on_sphere/test05.wrl @@ -0,0 +1,264 @@ +#VRML V2.0 utf8 +Configuration { + accumulation Accumulation { enabled TRUE } +} +ColorBackground { + color 1 1 1 1 + clearStencil TRUE +} +NavigationInfo { type [ "EXAMINE" "ANY" ] } +Viewpoint { + type "ORTHOGONAL" + fieldOfView 2.96 + # radiusScale 0.7 +} + +DEF TRANSFORMER_NAV NavigationInfo { type [ "TRANSFORM" ] } + +DEF DRAW_OPAQUE_KEY SingleKeySensor { key "o" } +DEF DRAW_HALOED_KEY SingleKeySensor { key "l" state TRUE } +DEF DRAW_SURFACE_KEY SingleKeySensor { key "b" state TRUE } +DEF EXPORT_KEY SingleKeySensor { key "O" } +DEF SNAP_KEY SingleKeySensor { key "S" } + +DEF VERTEX_SHAPE_KEY SingleKeySensor { + key "v" + boolean FALSE + numberOfStates 5 + intState 2 # disc +} + +DEF EDGE_SHAPE_KEY SingleKeySensor { + key "e" + boolean FALSE + numberOfStates 4 + intState 2 # strip +} + +DEF HIDE_SINGULARITIES_KEY SingleKeySensor { + boolean FALSE + key "s" +} + +DEF HIDE_DISCONTINUITY_KEY SingleKeySensor { + boolean FALSE + key "d" +} + +DEF SNAP Snapshot { + image Image { } + fileFormat "jpg" + sequence FALSE + dirName "." + fileName "test05" +} + +Transform { + rotation 1 0 0 -1.5708 + bboxCenter 0 0 0 + bboxSize 1.5 1.5 1.5 + children [ + Switch { + whichChoice 0 + children [ + DEF ARRANGMENT Group { + children [ + Shape { + drawDepth FALSE + appearance Appearance { + material Material { + diffuseColor 0.5 0.5 0.5 + ambientIntensity 0.7 + specularColor 0.5 0.5 0.5 + } + } + geometry Sphere { + slices 32 + stacks 32 + } + } + Shape { + appearance Appearance { + material Material { + transparency 0.0001 + } + } + geometry DEF GEOM ArrangementOnSphereMarked { + drawSurface FALSE +# drawOpaque TRUE + drawHaloed TRUE + aosEdgeStyle "strip" + aosEdgeRadius 0.03 + aosEdgeLineWidth 3 + aosVertexStyle "disc" + aosMarkedVertexStyle "none" + aosVertexRadius 0.1 + aosVertexPointSize 6 + aosIsolatedVertexStyle "disc" +# insertionStrategy "increment" + aosMarkedEdgeIndex 100 + aosMarkedVertexIndex 0 + coord DEF COORD ExactCoordinate { + ratPoint [-1 -1 0 + 1 -1 0, + 0 0 1, + 0 -1 1 + ] + } + # Pointindex [6 7] + curveIndex [0 1 1 2 2 0 2 3] + } + } + ] + } + ] + } + + # The singularity points: + DEF SINGULARITIES_SWITCH Switch { + whichChoice 0 + children [ + Group { + children [ + Shape { + appearance DEF BOUNDARY_APP Appearance { + material Material { + # ambientIntensity 1 + diffuseColor 0.4 0.4 0.4 + # specularColor 0.8 0.8 0.8 + # transparency 0.0001 + } + } + geometry Sphere { + center 0 0 1 + radius 0.05 + } + } + Shape { + appearance USE AXES_APP + geometry Sphere { + center 0 0 -1 + radius 0.05 + } + } + ] + } + ] + } + + # The discontinuity arc: + DEF DISCONTINUITY_SWITCH Switch { + whichChoice 0 + children [ + Shape { + appearance USE BOUNDARY_APP + geometry Extrusion { + creaseAngle 2.0 + beginCap TRUE + endCap TRUE + loop FALSE + crossSectionRadius 0.025 + spine [ + 0 0 1, + -0.0980171 0 0.995185, + -0.19509 0 0.980785, + -0.290285 0 0.95694, + -0.382683 0 0.92388, + -0.471397 0 0.881921, + -0.55557 0 0.83147, + -0.634393 0 0.77301, + -0.707107 0 0.707107, + -0.77301 0 0.634393, + -0.83147 0 0.55557, + -0.881921 0 0.471397, + -0.92388 0 0.382683, + -0.95694 0 0.290285, + -0.980785 0 0.19509, + -0.995185 0 0.0980171, + -1 0 0, + -0.995185 0 -0.0980171, + -0.980785 0 -0.19509, + -0.95694 0 -0.290285, + -0.92388 0 -0.382683, + -0.881921 0 -0.471397, + -0.83147 0 -0.55557, + -0.77301 0 -0.634393, + -0.707107 0 -0.707107, + -0.634393 0 -0.77301, + -0.55557 0 -0.83147, + -0.471397 0 -0.881921, + -0.382683 0 -0.92388, + -0.290285 0 -0.95694, + -0.19509 0 -0.980785, + -0.0980171 0 -0.995185, + 0 0 -1, + ] + } + } + ] + } + + # The axes: + DEF AXES Transform { + scale 0.1 0.1 0.1 + children [ + Shape { + appearance DEF AXES_APP Appearance { + material Material { + # ambientIntensity 1 + diffuseColor 0.4 0.4 0.4 + # specularColor 0.3 0.3 0.3 + # transparency 0.0001 + } + } + geometry Sphere { radius 0.1 } + } + DEF CS_AXIS Transform { + translation 0 1.5 0 + children [ + Shape { + appearance USE AXES_APP + geometry Cylinder { + radius 0.1 + height 3 + set_is_bottom_visible FALSE + set_is_top_visible FALSE + } + } + Transform { + translation 0 1.7 0 + children [ + Shape { + appearance USE AXES_APP + geometry Cone { + bottomRadius 0.2 + height 0.4 + } + } + ] + } + ] + } + Transform { + rotation 0 0 -1 1.57 + children [ USE CS_AXIS ] + } + Transform { + rotation 1 0 0 1.57 + children [ USE CS_AXIS ] + } + ] + } + ] +} + +ROUTE DRAW_OPAQUE_KEY.state TO GEOM.drawOpaque +ROUTE DRAW_HALOED_KEY.state TO GEOM.drawHaloed +ROUTE SNAP_KEY.state TO SNAP.trigger +# ROUTE EXPORT_KEY.press TO GEOM.export + +ROUTE HIDE_DISCONTINUITY_KEY.intState TO DISCONTINUITY_SWITCH.whichChoice +ROUTE HIDE_SINGULARITIES_KEY.intState TO SINGULARITIES_SWITCH.whichChoice + +ROUTE VERTEX_SHAPE_KEY.intState TO GEOM.aosVertexStyleId +ROUTE EDGE_SHAPE_KEY.intState TO GEOM.aosEdgeStyleId diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_construction.geodesic_arcs_on_sphere.cmd b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_construction.geodesic_arcs_on_sphere.cmd index 25a472fe313..70b6172d46b 100644 --- a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_construction.geodesic_arcs_on_sphere.cmd +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_construction.geodesic_arcs_on_sphere.cmd @@ -1,3 +1,4 @@ ./data/test_construction/geodesic_arcs_on_sphere/test01.txt ./data/test_construction/geodesic_arcs_on_sphere/test02.txt ./data/test_construction/geodesic_arcs_on_sphere/test03.txt +./data/test_construction/geodesic_arcs_on_sphere/test04.txt