Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SConstruct24
-rw-r--r--config/darwin-config.py17
-rw-r--r--config/linux2-config.py10
-rw-r--r--config/linuxcross-config.py12
-rw-r--r--config/openbsd3-config.py10
-rw-r--r--config/sunos5-config.py10
-rw-r--r--config/win32-mingw-config.py10
-rw-r--r--config/win32-vc-config.py10
-rw-r--r--extern/SConscript4
-rw-r--r--intern/guardedalloc/intern/mallocn.c9
-rw-r--r--intern/guardedalloc/intern/mmap_win.c261
-rw-r--r--intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj10
-rw-r--r--intern/guardedalloc/mmap_win.h52
-rw-r--r--release/datafiles/splash.jpgbin79258 -> 72804 bytes
-rw-r--r--release/scripts/DirectX8Exporter.py2
-rw-r--r--release/scripts/ac3d_export.py2
-rw-r--r--release/scripts/ac3d_import.py2
-rw-r--r--release/scripts/bevel_center.py2
-rw-r--r--release/scripts/config.py2
-rw-r--r--release/scripts/console.py10
-rw-r--r--release/scripts/envelope_symmetry.py2
-rw-r--r--release/scripts/export_lightwave_motion.py2
-rw-r--r--release/scripts/faceselect_same_weights.py6
-rw-r--r--release/scripts/flt_export.py2
-rw-r--r--release/scripts/flt_import.py2
-rw-r--r--release/scripts/flt_palettemanager.py2
-rw-r--r--release/scripts/flt_toolbar.py2
-rw-r--r--release/scripts/help_browser.py5
-rw-r--r--release/scripts/help_getting_started.py2
-rw-r--r--release/scripts/help_manual.py2
-rw-r--r--release/scripts/help_release_notes.py2
-rw-r--r--release/scripts/help_tutorials.py2
-rw-r--r--release/scripts/help_web_blender.py2
-rw-r--r--release/scripts/help_web_devcomm.py2
-rw-r--r--release/scripts/help_web_eshop.py2
-rw-r--r--release/scripts/help_web_usercomm.py2
-rw-r--r--release/scripts/image_edit.py2
-rw-r--r--release/scripts/import_lightwave_motion.py2
-rw-r--r--release/scripts/lightwave_export.py2
-rw-r--r--release/scripts/md2_export.py2
-rw-r--r--release/scripts/md2_import.py2
-rw-r--r--release/scripts/mesh_boneweight_copy.py6
-rw-r--r--release/scripts/mesh_cleanup.py6
-rw-r--r--release/scripts/mesh_edges2curves.py2
-rw-r--r--release/scripts/mesh_mirror_tool.py4
-rw-r--r--release/scripts/mesh_poly_reduce.py2
-rw-r--r--release/scripts/obdatacopier.py2
-rw-r--r--release/scripts/object_apply_def.py2
-rw-r--r--release/scripts/object_batch_name_edit.py2
-rw-r--r--release/scripts/off_export.py2
-rw-r--r--release/scripts/off_import.py2
-rw-r--r--release/scripts/paths_import.py2
-rw-r--r--release/scripts/raw_export.py2
-rw-r--r--release/scripts/raw_import.py2
-rw-r--r--release/scripts/renameobjectbyblock.py2
-rw-r--r--release/scripts/render_save_layers.py2
-rw-r--r--release/scripts/rvk1_torvk2.py2
-rw-r--r--release/scripts/save_theme.py2
-rw-r--r--release/scripts/scripttemplate_camer_object.py2
-rw-r--r--release/scripts/scripttemplate_ipo_gen.py92
-rw-r--r--release/scripts/scripttemplate_metaball_create.py2
-rw-r--r--release/scripts/scripttemplate_object_edit.py4
-rw-r--r--release/scripts/slp_import.py2
-rw-r--r--release/scripts/sysinfo.py2
-rw-r--r--release/scripts/unweld.py2
-rw-r--r--release/scripts/uv_from_adjacent.py2
-rw-r--r--release/scripts/uvcalc_follow_active_coords.py2
-rw-r--r--release/scripts/uvcalc_lightmap.py4
-rw-r--r--release/scripts/uvcalc_quad_clickproj.py6
-rw-r--r--release/scripts/uvcalc_smart_project.py2
-rw-r--r--release/scripts/uvcopy.py4
-rw-r--r--release/scripts/vertexpaint_gradient.py6
-rw-r--r--release/scripts/vertexpaint_selfshadow_ao.py6
-rw-r--r--release/scripts/vrml97_export.py2
-rw-r--r--release/scripts/weightpaint_clean.py6
-rw-r--r--release/scripts/weightpaint_gradient.py6
-rw-r--r--release/scripts/weightpaint_grow_shrink.py6
-rw-r--r--release/scripts/weightpaint_normalize.py6
-rw-r--r--release/scripts/widgetwizard.py2
-rw-r--r--release/scripts/xfig_export.py2
-rw-r--r--release/scripts/xsi_export.py2
-rw-r--r--source/blender/SConscript3
-rw-r--r--source/blender/blenkernel/BKE_particle.h1
-rw-r--r--source/blender/blenkernel/intern/anim.c19
-rw-r--r--source/blender/blenkernel/intern/image.c258
-rw-r--r--source/blender/blenkernel/intern/object.c6
-rw-r--r--source/blender/blenkernel/intern/particle.c2
-rw-r--r--source/blender/blenlib/BLI_winstuff.h3
-rw-r--r--source/blender/blenlib/intern/noise.c564
-rw-r--r--source/blender/blenlib/intern/psfont.c546
-rw-r--r--source/blender/blenlib/intern/util.c16
-rw-r--r--source/blender/blenlib/intern/winstuff.c21
-rw-r--r--source/blender/blenloader/intern/readfile.c4
-rw-r--r--source/blender/blenpluginapi/intern/pluginapi.c78
-rw-r--r--source/blender/freestyle/SConscript16
-rwxr-xr-xsource/blender/freestyle/intern/AUTHORS.TXT6
-rwxr-xr-xsource/blender/freestyle/intern/BUGS.TXT11
-rwxr-xr-xsource/blender/freestyle/intern/CHANGELOG.TXT47
-rwxr-xr-xsource/blender/freestyle/intern/COPYRIGHT.TXT9
-rwxr-xr-xsource/blender/freestyle/intern/Config.pri176
-rwxr-xr-xsource/blender/freestyle/intern/Freestyle-vc7-debug.sln113
-rwxr-xr-xsource/blender/freestyle/intern/Freestyle-vc7-release.sln111
-rwxr-xr-xsource/blender/freestyle/intern/Freestyle-vc8-debug.sln87
-rwxr-xr-xsource/blender/freestyle/intern/Freestyle-vc8-release.sln87
-rwxr-xr-xsource/blender/freestyle/intern/INSTALL.TXT79
-rwxr-xr-xsource/blender/freestyle/intern/LICENSE.TXT340
-rwxr-xr-xsource/blender/freestyle/intern/Makefile.pro18
-rwxr-xr-xsource/blender/freestyle/intern/README.TXT51
-rwxr-xr-xsource/blender/freestyle/intern/THANKS.TXT6
-rwxr-xr-xsource/blender/freestyle/intern/TODO.TXT9
-rwxr-xr-xsource/blender/freestyle/intern/app/AppAboutWindow.cpp36
-rwxr-xr-xsource/blender/freestyle/intern/app/AppAboutWindow.h40
-rwxr-xr-xsource/blender/freestyle/intern/app/AppCanvas.cpp404
-rwxr-xr-xsource/blender/freestyle/intern/app/AppCanvas.h84
-rwxr-xr-xsource/blender/freestyle/intern/app/AppConfig.cpp120
-rwxr-xr-xsource/blender/freestyle/intern/app/AppConfig.h125
-rwxr-xr-xsource/blender/freestyle/intern/app/AppDensityCurvesWindow.cpp65
-rwxr-xr-xsource/blender/freestyle/intern/app/AppDensityCurvesWindow.h85
-rwxr-xr-xsource/blender/freestyle/intern/app/AppGL2DCurvesViewer.cpp152
-rwxr-xr-xsource/blender/freestyle/intern/app/AppGL2DCurvesViewer.h80
-rwxr-xr-xsource/blender/freestyle/intern/app/AppGLWidget.cpp1049
-rwxr-xr-xsource/blender/freestyle/intern/app/AppGLWidget.h526
-rwxr-xr-xsource/blender/freestyle/intern/app/AppInteractiveShaderWindow.cpp119
-rwxr-xr-xsource/blender/freestyle/intern/app/AppInteractiveShaderWindow.h73
-rwxr-xr-xsource/blender/freestyle/intern/app/AppMainWindow.cpp288
-rwxr-xr-xsource/blender/freestyle/intern/app/AppMainWindow.h83
-rwxr-xr-xsource/blender/freestyle/intern/app/AppOptionsWindow.cpp410
-rwxr-xr-xsource/blender/freestyle/intern/app/AppOptionsWindow.h74
-rwxr-xr-xsource/blender/freestyle/intern/app/AppProgressBar.cpp78
-rwxr-xr-xsource/blender/freestyle/intern/app/AppProgressBar.h55
-rwxr-xr-xsource/blender/freestyle/intern/app/AppStyleWindow.cpp366
-rwxr-xr-xsource/blender/freestyle/intern/app/AppStyleWindow.h93
-rwxr-xr-xsource/blender/freestyle/intern/app/ConfigIO.cpp116
-rwxr-xr-xsource/blender/freestyle/intern/app/ConfigIO.h181
-rwxr-xr-xsource/blender/freestyle/intern/app/Controller.cpp1498
-rwxr-xr-xsource/blender/freestyle/intern/app/Controller.h232
-rwxr-xr-xsource/blender/freestyle/intern/app/Main.cpp57
-rwxr-xr-xsource/blender/freestyle/intern/app/QGLBasicWidget.cpp141
-rwxr-xr-xsource/blender/freestyle/intern/app/QGLBasicWidget.h102
-rwxr-xr-xsource/blender/freestyle/intern/app/QStyleModuleSyntaxHighlighter.cpp155
-rwxr-xr-xsource/blender/freestyle/intern/app/QStyleModuleSyntaxHighlighter.h57
-rwxr-xr-xsource/blender/freestyle/intern/app/app.pro179
-rwxr-xr-xsource/blender/freestyle/intern/app/appmainwindowbase4.ui237
-rwxr-xr-xsource/blender/freestyle/intern/app/densitycurveswindow4.ui442
-rwxr-xr-xsource/blender/freestyle/intern/app/freestyle.qrc23
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/add.pngbin0 -> 400 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/arrow_down.pngbin0 -> 813 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/arrow_left.pngbin0 -> 776 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/arrow_right.pngbin0 -> 773 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/arrow_up.pngbin0 -> 782 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/clear.pngbin0 -> 1057 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/close.pngbin0 -> 1437 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/edit.pngbin0 -> 896 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/eye0.pngbin0 -> 406 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/eye1.pngbin0 -> 402 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/folder.pngbin0 -> 1015 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/home.pngbin0 -> 1050 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/mod0.pngbin0 -> 910 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/mod1.pngbin0 -> 1051 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/ok.pngbin0 -> 769 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/reload.pngbin0 -> 1113 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/remove.pngbin0 -> 375 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/save.pngbin0 -> 1329 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/icons/save_as.pngbin0 -> 1024 bytes
-rwxr-xr-xsource/blender/freestyle/intern/app/interactiveshaderwindow4.ui103
-rwxr-xr-xsource/blender/freestyle/intern/app/optionswindow4.ui651
-rwxr-xr-xsource/blender/freestyle/intern/app/progressdialog4.ui26
-rwxr-xr-xsource/blender/freestyle/intern/app/src.pri50
-rwxr-xr-xsource/blender/freestyle/intern/app/stylewindow4.ui182
-rwxr-xr-xsource/blender/freestyle/intern/build_bundle.macosx.py183
-rwxr-xr-xsource/blender/freestyle/intern/geometry/BBox.h141
-rwxr-xr-xsource/blender/freestyle/intern/geometry/Bezier.cpp118
-rwxr-xr-xsource/blender/freestyle/intern/geometry/Bezier.h73
-rwxr-xr-xsource/blender/freestyle/intern/geometry/FastGrid.cpp62
-rwxr-xr-xsource/blender/freestyle/intern/geometry/FastGrid.h85
-rwxr-xr-xsource/blender/freestyle/intern/geometry/FitCurve.cpp602
-rwxr-xr-xsource/blender/freestyle/intern/geometry/FitCurve.h101
-rwxr-xr-xsource/blender/freestyle/intern/geometry/Geom.h78
-rwxr-xr-xsource/blender/freestyle/intern/geometry/GeomCleaner.cpp240
-rwxr-xr-xsource/blender/freestyle/intern/geometry/GeomCleaner.h219
-rwxr-xr-xsource/blender/freestyle/intern/geometry/GeomUtils.cpp742
-rwxr-xr-xsource/blender/freestyle/intern/geometry/GeomUtils.h309
-rwxr-xr-xsource/blender/freestyle/intern/geometry/Grid.cpp388
-rwxr-xr-xsource/blender/freestyle/intern/geometry/Grid.h358
-rwxr-xr-xsource/blender/freestyle/intern/geometry/HashGrid.cpp41
-rwxr-xr-xsource/blender/freestyle/intern/geometry/HashGrid.h109
-rwxr-xr-xsource/blender/freestyle/intern/geometry/Noise.cpp264
-rwxr-xr-xsource/blender/freestyle/intern/geometry/Noise.h77
-rwxr-xr-xsource/blender/freestyle/intern/geometry/Polygon.h215
-rwxr-xr-xsource/blender/freestyle/intern/geometry/SweepLine.h334
-rwxr-xr-xsource/blender/freestyle/intern/geometry/VecMat.h899
-rwxr-xr-xsource/blender/freestyle/intern/geometry/geometry.pro64
-rwxr-xr-xsource/blender/freestyle/intern/geometry/matrix_util.cpp265
-rwxr-xr-xsource/blender/freestyle/intern/geometry/matrix_util.h69
-rwxr-xr-xsource/blender/freestyle/intern/geometry/normal_cycle.cpp103
-rwxr-xr-xsource/blender/freestyle/intern/geometry/normal_cycle.h97
-rwxr-xr-xsource/blender/freestyle/intern/geometry/src.pri33
-rwxr-xr-xsource/blender/freestyle/intern/image/GaussianFilter.cpp96
-rwxr-xr-xsource/blender/freestyle/intern/image/GaussianFilter.h144
-rwxr-xr-xsource/blender/freestyle/intern/image/Image.h389
-rwxr-xr-xsource/blender/freestyle/intern/image/ImagePyramid.cpp166
-rwxr-xr-xsource/blender/freestyle/intern/image/ImagePyramid.h92
-rwxr-xr-xsource/blender/freestyle/intern/image/image.pro66
-rwxr-xr-xsource/blender/freestyle/intern/image/src.pri13
-rwxr-xr-xsource/blender/freestyle/intern/libconfig.pri110
-rwxr-xr-xsource/blender/freestyle/intern/makedsp.vcnet.debug.bat25
-rwxr-xr-xsource/blender/freestyle/intern/makedsp.vcnet.release.bat25
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLBBoxRenderer.cpp108
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLBBoxRenderer.h59
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLDebugRenderer.cpp197
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLDebugRenderer.h182
-rw-r--r--source/blender/freestyle/intern/rendering/GLFreeMemoryVisitor.cpp27
-rw-r--r--source/blender/freestyle/intern/rendering/GLFreeMemoryVisitor.h23
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLMonoColorRenderer.cpp43
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLMonoColorRenderer.h60
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLRenderer.cpp467
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLRenderer.h204
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLSelectRenderer.cpp159
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLSelectRenderer.h85
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLStrokeRenderer.cpp495
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLStrokeRenderer.h98
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLUtils.cpp68
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLUtils.h29
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLXOffscreenViewer.cpp86
-rwxr-xr-xsource/blender/freestyle/intern/rendering/GLXOffscreenViewer.h545
-rwxr-xr-xsource/blender/freestyle/intern/rendering/extgl.cpp2249
-rwxr-xr-xsource/blender/freestyle/intern/rendering/extgl.h5106
-rwxr-xr-xsource/blender/freestyle/intern/rendering/pbuffer.cpp292
-rwxr-xr-xsource/blender/freestyle/intern/rendering/pbuffer.h77
-rwxr-xr-xsource/blender/freestyle/intern/rendering/rendering.pro102
-rwxr-xr-xsource/blender/freestyle/intern/rendering/src.pri33
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/DrawingStyle.h82
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/IndexedFaceSet.cpp321
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/IndexedFaceSet.h222
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/LineRep.cpp58
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/LineRep.h130
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/Material.h304
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/MaxFileLoader.cpp388
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/MaxFileLoader.h94
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/Node.h97
-rw-r--r--source/blender/freestyle/intern/scene_graph/NodeCamera.cpp119
-rw-r--r--source/blender/freestyle/intern/scene_graph/NodeCamera.h192
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeDrawingStyle.cpp34
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeDrawingStyle.h70
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeGroup.cpp122
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeGroup.h84
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeLight.cpp80
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeLight.h86
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeShape.cpp51
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeShape.h89
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeTransform.cpp166
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/NodeTransform.h107
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/OrientedLineRep.cpp31
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/OrientedLineRep.h67
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/Rep.cpp1
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/Rep.h127
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/ScenePrettyPrinter.cpp86
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/ScenePrettyPrinter.h105
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/SceneVisitor.cpp1
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/SceneVisitor.h98
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/TriangleRep.cpp59
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/TriangleRep.h106
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/VertexRep.cpp29
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/VertexRep.h87
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/scene_graph.pro86
-rwxr-xr-xsource/blender/freestyle/intern/scene_graph/src.pri41
-rwxr-xr-xsource/blender/freestyle/intern/stroke/AdvancedFunctions0D.cpp85
-rwxr-xr-xsource/blender/freestyle/intern/stroke/AdvancedFunctions0D.h209
-rwxr-xr-xsource/blender/freestyle/intern/stroke/AdvancedFunctions1D.cpp108
-rwxr-xr-xsource/blender/freestyle/intern/stroke/AdvancedFunctions1D.h286
-rwxr-xr-xsource/blender/freestyle/intern/stroke/AdvancedPredicates1D.h81
-rwxr-xr-xsource/blender/freestyle/intern/stroke/AdvancedStrokeShaders.cpp423
-rwxr-xr-xsource/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h222
-rwxr-xr-xsource/blender/freestyle/intern/stroke/BasicStrokeShaders.cpp1100
-rwxr-xr-xsource/blender/freestyle/intern/stroke/BasicStrokeShaders.h791
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Canvas.cpp427
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Canvas.h198
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Chain.cpp126
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Chain.h82
-rwxr-xr-xsource/blender/freestyle/intern/stroke/ChainingIterators.cpp147
-rwxr-xr-xsource/blender/freestyle/intern/stroke/ChainingIterators.h364
-rwxr-xr-xsource/blender/freestyle/intern/stroke/ContextFunctions.cpp60
-rwxr-xr-xsource/blender/freestyle/intern/stroke/ContextFunctions.h124
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Curve.cpp818
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Curve.h463
-rwxr-xr-xsource/blender/freestyle/intern/stroke/CurveAdvancedIterators.h378
-rwxr-xr-xsource/blender/freestyle/intern/stroke/CurveIterators.h295
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Modifiers.h71
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Module.h72
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Operators.cpp862
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Operators.h311
-rwxr-xr-xsource/blender/freestyle/intern/stroke/PSStrokeRenderer.cpp89
-rwxr-xr-xsource/blender/freestyle/intern/stroke/PSStrokeRenderer.h63
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Predicates0D.h160
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Predicates1D.h438
-rwxr-xr-xsource/blender/freestyle/intern/stroke/QInformationMap.h58
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Stroke.cpp949
-rwxr-xr-xsource/blender/freestyle/intern/stroke/Stroke.h584
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h142
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeIO.cpp55
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeIO.h47
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeIterators.h227
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeLayer.cpp55
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeLayer.h75
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeRenderer.cpp146
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeRenderer.h140
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeRep.cpp820
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeRep.h138
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeShader.h119
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeTesselator.cpp88
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StrokeTesselator.h67
-rwxr-xr-xsource/blender/freestyle/intern/stroke/StyleModule.h144
-rwxr-xr-xsource/blender/freestyle/intern/stroke/TextStrokeRenderer.cpp73
-rwxr-xr-xsource/blender/freestyle/intern/stroke/TextStrokeRenderer.h68
-rwxr-xr-xsource/blender/freestyle/intern/stroke/src.pri54
-rwxr-xr-xsource/blender/freestyle/intern/stroke/stroke.pro89
-rwxr-xr-xsource/blender/freestyle/intern/swig/Freestyle.i283
-rwxr-xr-xsource/blender/freestyle/intern/swig/FreestyleWrapper.vc7.vcproj217
-rwxr-xr-xsource/blender/freestyle/intern/swig/FreestyleWrapper.vc8.vcproj283
-rwxr-xr-xsource/blender/freestyle/intern/swig/Makefile90
-rwxr-xr-xsource/blender/freestyle/intern/swig/Makefile.cygwin92
-rwxr-xr-xsource/blender/freestyle/intern/swig/Makefile.linux91
-rw-r--r--source/blender/freestyle/intern/swig/Makefile.mac91
-rwxr-xr-xsource/blender/freestyle/intern/swig/Makefile.noswig64
-rwxr-xr-xsource/blender/freestyle/intern/swig/ModuleWrapper.cpp111845
-rwxr-xr-xsource/blender/freestyle/intern/swig/ModuleWrapper.h1045
-rwxr-xr-xsource/blender/freestyle/intern/system/BaseIterator.h90
-rwxr-xr-xsource/blender/freestyle/intern/system/BaseObject.cpp1
-rwxr-xr-xsource/blender/freestyle/intern/system/BaseObject.h73
-rwxr-xr-xsource/blender/freestyle/intern/system/Cast.h44
-rwxr-xr-xsource/blender/freestyle/intern/system/Exception.cpp24
-rwxr-xr-xsource/blender/freestyle/intern/system/Exception.h64
-rwxr-xr-xsource/blender/freestyle/intern/system/FreestyleConfig.h152
-rwxr-xr-xsource/blender/freestyle/intern/system/Id.h126
-rwxr-xr-xsource/blender/freestyle/intern/system/Interpreter.h56
-rwxr-xr-xsource/blender/freestyle/intern/system/Precision.h39
-rwxr-xr-xsource/blender/freestyle/intern/system/ProgressBar.h85
-rwxr-xr-xsource/blender/freestyle/intern/system/PseudoNoise.cpp108
-rwxr-xr-xsource/blender/freestyle/intern/system/PseudoNoise.h58
-rwxr-xr-xsource/blender/freestyle/intern/system/PythonInterpreter.cpp25
-rwxr-xr-xsource/blender/freestyle/intern/system/PythonInterpreter.h111
-rwxr-xr-xsource/blender/freestyle/intern/system/RandGen.cpp86
-rwxr-xr-xsource/blender/freestyle/intern/system/RandGen.h48
-rwxr-xr-xsource/blender/freestyle/intern/system/StringUtils.cpp46
-rwxr-xr-xsource/blender/freestyle/intern/system/StringUtils.h51
-rwxr-xr-xsource/blender/freestyle/intern/system/TimeStamp.cpp25
-rwxr-xr-xsource/blender/freestyle/intern/system/TimeStamp.h71
-rwxr-xr-xsource/blender/freestyle/intern/system/TimeUtils.h58
-rwxr-xr-xsource/blender/freestyle/intern/system/src.pri30
-rwxr-xr-xsource/blender/freestyle/intern/system/system.pro73
-rwxr-xr-xsource/blender/freestyle/intern/view_map/FEdgeXDetector.cpp677
-rwxr-xr-xsource/blender/freestyle/intern/view_map/FEdgeXDetector.h150
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Functions0D.cpp356
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Functions0D.h487
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Functions1D.cpp209
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Functions1D.h537
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Interface0D.h351
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Interface1D.h202
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Silhouette.cpp370
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Silhouette.h1417
-rwxr-xr-xsource/blender/freestyle/intern/view_map/SilhouetteGeomEngine.cpp185
-rwxr-xr-xsource/blender/freestyle/intern/view_map/SilhouetteGeomEngine.h122
-rwxr-xr-xsource/blender/freestyle/intern/view_map/SteerableViewMap.cpp243
-rwxr-xr-xsource/blender/freestyle/intern/view_map/SteerableViewMap.h153
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewEdgeXBuilder.cpp666
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewEdgeXBuilder.h214
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMap.cpp703
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMap.h1487
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMapAdvancedIterators.h691
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMapBuilder.cpp1027
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMapBuilder.h224
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMapIO.cpp1245
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMapIO.h116
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMapIterators.h542
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMapTesselator.cpp36
-rwxr-xr-xsource/blender/freestyle/intern/view_map/ViewMapTesselator.h196
-rwxr-xr-xsource/blender/freestyle/intern/view_map/src.pri34
-rwxr-xr-xsource/blender/freestyle/intern/view_map/view_map.pro89
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/Curvature.cpp647
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/Curvature.h156
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/Nature.h75
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WEdge.cpp732
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WEdge.h952
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WFillGrid.cpp60
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WFillGrid.h80
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WSFillGrid.cpp60
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WSFillGrid.h79
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WXEdge.cpp296
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WXEdge.h582
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WXEdgeBuilder.cpp43
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WXEdgeBuilder.h51
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WingedEdgeBuilder.cpp362
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/WingedEdgeBuilder.h160
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/src.pri21
-rwxr-xr-xsource/blender/freestyle/intern/winged_edge/winged_edge.pro84
-rwxr-xr-xsource/blender/freestyle/style_modules/ChainingIterators.py731
-rwxr-xr-xsource/blender/freestyle/style_modules/Functions0D.py81
-rwxr-xr-xsource/blender/freestyle/style_modules/Functions1D.py45
-rwxr-xr-xsource/blender/freestyle/style_modules/PredicatesB1D.py70
-rwxr-xr-xsource/blender/freestyle/style_modules/PredicatesU0D.py103
-rwxr-xr-xsource/blender/freestyle/style_modules/PredicatesU1D.py381
-rwxr-xr-xsource/blender/freestyle/style_modules/anisotropic_diffusion.py75
-rwxr-xr-xsource/blender/freestyle/style_modules/apriori_and_causal_density.py45
-rwxr-xr-xsource/blender/freestyle/style_modules/apriori_density.py43
-rwxr-xr-xsource/blender/freestyle/style_modules/backbone_stretcher.py36
-rwxr-xr-xsource/blender/freestyle/style_modules/blueprint_circles.py46
-rwxr-xr-xsource/blender/freestyle/style_modules/blueprint_ellipses.py46
-rwxr-xr-xsource/blender/freestyle/style_modules/blueprint_squares.py45
-rwxr-xr-xsource/blender/freestyle/style_modules/cartoon.py42
-rwxr-xr-xsource/blender/freestyle/style_modules/contour.py42
-rwxr-xr-xsource/blender/freestyle/style_modules/curvature2d.py60
-rwxr-xr-xsource/blender/freestyle/style_modules/external_contour.py43
-rwxr-xr-xsource/blender/freestyle/style_modules/external_contour_sketchy.py48
-rwxr-xr-xsource/blender/freestyle/style_modules/external_contour_smooth.py44
-rwxr-xr-xsource/blender/freestyle/style_modules/extra-lines.sml3
-rwxr-xr-xsource/blender/freestyle/style_modules/haloing.py50
-rwxr-xr-xsource/blender/freestyle/style_modules/ignore_small_occlusions.py41
-rwxr-xr-xsource/blender/freestyle/style_modules/invisible_lines.py42
-rwxr-xr-xsource/blender/freestyle/style_modules/japanese_bigbrush.py59
-rwxr-xr-xsource/blender/freestyle/style_modules/logical_operators.py36
-rwxr-xr-xsource/blender/freestyle/style_modules/long_anisotropically_dense.py81
-rwxr-xr-xsource/blender/freestyle/style_modules/multiple_parameterization.py51
-rwxr-xr-xsource/blender/freestyle/style_modules/nature.py43
-rwxr-xr-xsource/blender/freestyle/style_modules/near_lines.py44
-rwxr-xr-xsource/blender/freestyle/style_modules/occluded_by_specific_object.py45
-rwxr-xr-xsource/blender/freestyle/style_modules/polygonalize.py40
-rwxr-xr-xsource/blender/freestyle/style_modules/qi0.py41
-rwxr-xr-xsource/blender/freestyle/style_modules/qi0_not_external_contour.py43
-rwxr-xr-xsource/blender/freestyle/style_modules/qi1.py42
-rwxr-xr-xsource/blender/freestyle/style_modules/qi2.py42
-rwxr-xr-xsource/blender/freestyle/style_modules/sequentialsplit_sketchy.py68
-rwxr-xr-xsource/blender/freestyle/style_modules/shaders.py1288
-rwxr-xr-xsource/blender/freestyle/style_modules/sketchy_multiple_parameterization.py48
-rwxr-xr-xsource/blender/freestyle/style_modules/sketchy_topology_broken.py89
-rwxr-xr-xsource/blender/freestyle/style_modules/sketchy_topology_preserved.py49
-rwxr-xr-xsource/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py40
-rwxr-xr-xsource/blender/freestyle/style_modules/split_at_tvertices.py42
-rwxr-xr-xsource/blender/freestyle/style_modules/stroke_texture.py43
-rwxr-xr-xsource/blender/freestyle/style_modules/suggestive.py43
-rwxr-xr-xsource/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py62
-rwxr-xr-xsource/blender/freestyle/style_modules/tipremover.py42
-rwxr-xr-xsource/blender/freestyle/style_modules/tvertex_remover.py42
-rwxr-xr-xsource/blender/freestyle/style_modules/uniformpruning_zsort.py40
-rwxr-xr-xsource/blender/freestyle/style_modules/vector.py241
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_api.cpp53
-rw-r--r--source/blender/imbuf/intern/radiance_hdr.c22
-rw-r--r--source/blender/imbuf/intern/readimage.c5
-rw-r--r--source/blender/makesdna/intern/CMakeLists.txt2
-rw-r--r--source/blender/makesdna/intern/SConscript2
-rw-r--r--source/blender/python/BPY_extern.h3
-rw-r--r--source/blender/python/BPY_interface.c32
-rw-r--r--source/blender/python/api2_2x/Node.c352
-rw-r--r--source/blender/python/api2_2x/doc/API_related.py6
-rw-r--r--source/blender/render/intern/source/rayshade.c6
-rw-r--r--source/blender/render/intern/source/rendercore.c101
-rw-r--r--source/blender/render/intern/source/shadeoutput.c40
-rw-r--r--source/blender/src/buttons_object.c31
-rw-r--r--source/blender/src/drawipo.c8
-rw-r--r--source/blender/src/editobject.c7
-rw-r--r--source/blender/src/filesel.c10
-rw-r--r--source/blender/src/header_script.c6
-rw-r--r--source/blender/src/headerbuttons.c10
-rw-r--r--source/blender/src/splash.jpg.c4756
-rw-r--r--source/blender/src/usiblender.c4
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.h1
-rw-r--r--source/gameengine/BlenderRoutines/mac_compat_glext.h132
-rw-r--r--source/gameengine/GamePlayer/common/SConscript1
-rw-r--r--source/gameengine/GamePlayer/ghost/SConscript1
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h3
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript2
-rw-r--r--source/gameengine/Rasterizer/SConscript2
-rw-r--r--tools/Blender.py10
-rwxr-xr-xtools/btools.py12
473 files changed, 185935 insertions, 4611 deletions
diff --git a/SConstruct b/SConstruct
index 869ba6454c8..341638c0e0c 100644
--- a/SConstruct
+++ b/SConstruct
@@ -264,18 +264,23 @@ if not quickie and do_clean:
if os.path.exists(B.root_build_dir):
print B.bc.HEADER+'Cleaning...'+B.bc.ENDC
dirs = os.listdir(B.root_build_dir)
- for entry in dirs:
- if os.path.isdir(B.root_build_dir + entry) == 1:
- print "clean dir %s"%(B.root_build_dir+entry)
- shutil.rmtree(B.root_build_dir+entry)
- else: # remove file
- print "remove file %s"%(B.root_build_dir+entry)
- os.remove(B.root_build_dir+entry)
+ for dir in dirs:
+ if os.path.isdir(B.root_build_dir + dir) == 1:
+ print "clean dir %s"%(B.root_build_dir+dir)
+ shutil.rmtree(B.root_build_dir+dir)
for confile in ['extern/ffmpeg/config.mak', 'extern/x264/config.mak',
- 'extern/xvidcore/build/generic/platform.inc']:
+ 'extern/xvidcore/build/generic/platform.inc','extern/freestyle/lib3ds/Makefile','extern/freestyle/swig/Makefile']:
if os.path.exists(confile):
print "clean file %s"%confile
os.remove(confile)
+
+ if platform in ('win32-vc', 'win32-mingw'):
+ makesdnafile = B.root_build_dir+'makesdna.exe'
+ else:
+ makesdnafile = B.root_build_dir+'makesdna'
+ if os.path.exists(makesdnafile):
+ print "removing", makesdnafile
+ os.remove(makesdnafile)
print B.bc.OKGREEN+'...done'+B.bc.ENDC
else:
print B.bc.HEADER+'Already Clean, nothing to do.'+B.bc.ENDC
@@ -335,12 +340,15 @@ if env['WITH_BF_PLAYER']:
playerlist = B.create_blender_liblist(env, 'player')
env.BlenderProg(B.root_build_dir, "blenderplayer", dobj + playerlist + thestatlibs, [], thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer')
+
+
##### Now define some targets
#------------ INSTALL
#-- binaries
+
blenderinstall = []
if env['OURPLATFORM']=='darwin':
for prg in B.program_list:
diff --git a/config/darwin-config.py b/config/darwin-config.py
index 8fd6c3251ba..9ceb1d1644b 100644
--- a/config/darwin-config.py
+++ b/config/darwin-config.py
@@ -143,7 +143,6 @@ BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE='true'
WITH_BF_PLAYER='true'
-WITH_BF_GLEXT= '1'
WITH_BF_ODE = 'false'
BF_ODE = LIBDIR + '/ode'
@@ -161,6 +160,22 @@ BF_SOLID_LIB = 'extern_solid'
WITH_BF_YAFRAY = 'true'
+WITH_BF_FREESTYLE = 'true'
+BF_FREESTYLE = '#extern/freestyle'
+BF_FREESTYLE_SRC = '#source/blender/freestyle/src'
+BF_SWIG = '${BF_FREESTYLE}/swig'
+BF_SWIG_LIB = 'extern_swig'
+BF_LIB3DS = '${BF_FREESTYLE}/lib3ds'
+BF_LIB3DS_LIB = 'extern_lib3ds'
+BF_LIB3DS_LIBPATH = '${BF_LIB3DS}/lib3ds/.libs'
+BF_LIB3DS_INC = '${BF_LIB3DS}/lib3ds'
+
+# WITH_BF_OPENEXR = 'true'
+# BF_OPENEXR = '${LCGDIR}/openexr'
+# BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR'
+# BF_OPENEXR_LIB = ' Iex Half IlmImf Imath IlmThread'
+# BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
+
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
diff --git a/config/linux2-config.py b/config/linux2-config.py
index 4d8b5c97512..3c8a48d12bc 100644
--- a/config/linux2-config.py
+++ b/config/linux2-config.py
@@ -86,6 +86,16 @@ BF_SOLID_LIB = 'extern_solid'
WITH_BF_YAFRAY = 'true'
+WITH_BF_FREESTYLE = 'true'
+BF_FREESTYLE = '#extern/freestyle'
+BF_FREESTYLE_SRC = '#source/blender/freestyle/src'
+BF_SWIG = '${BF_FREESTYLE}/swig'
+BF_SWIG_LIB = 'extern_swig'
+BF_LIB3DS = '${BF_FREESTYLE}/lib3ds'
+BF_LIB3DS_LIB = 'extern_lib3ds'
+BF_LIB3DS_LIBPATH = '${BF_LIB3DS}/lib3ds/.libs'
+BF_LIB3DS_INC = '${BF_LIB3DS}/lib3ds'
+
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
diff --git a/config/linuxcross-config.py b/config/linuxcross-config.py
index e6c4e8769b4..886b9f93f3f 100644
--- a/config/linuxcross-config.py
+++ b/config/linuxcross-config.py
@@ -6,6 +6,18 @@ BF_VERSE_INCLUDE = "#extern/verse/dist"
WITH_BF_YAFRAY = 'true'
+WITH_BF_FREESTYLE = 'true'
+BF_FREESTYLE = '#extern/freestyle'
+BF_FREESTYLE_SRC = '#source/blender/freestyle/src'
+BF_SWIG = '${BF_FREESTYLE}/swig'
+BF_SWIG_LIB = 'extern_swig'
+BF_LIB3DS = '${BF_FREESTYLE}/lib3ds'
+BF_LIB3DS_LIB = 'extern_lib3ds'
+BF_LIB3DS_LIBPATH = '${BF_LIB3DS}/lib3ds/.libs'
+BF_LIB3DS_INC = '${BF_LIB3DS}/lib3ds'
+
+###########################
+
BF_PYTHON = LIBDIR + '/python'
BF_PYTHON_VERSION = '2.5'
BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
diff --git a/config/openbsd3-config.py b/config/openbsd3-config.py
index f7f254973af..ad4891a0098 100644
--- a/config/openbsd3-config.py
+++ b/config/openbsd3-config.py
@@ -80,6 +80,16 @@ BF_SOLID_LIB = 'extern_solid'
WITH_BF_YAFRAY = 'true'
+WITH_BF_FREESTYLE = 'true'
+BF_FREESTYLE = '#extern/freestyle'
+BF_FREESTYLE_SRC = '#source/blender/freestyle/src'
+BF_SWIG = '${BF_FREESTYLE}/swig'
+BF_SWIG_LIB = 'extern_swig'
+BF_LIB3DS = '${BF_FREESTYLE}/lib3ds'
+BF_LIB3DS_LIB = 'extern_lib3ds'
+BF_LIB3DS_LIBPATH = '${BF_LIB3DS}/lib3ds/.libs'
+BF_LIB3DS_INC = '${BF_LIB3DS}/lib3ds'
+
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
diff --git a/config/sunos5-config.py b/config/sunos5-config.py
index b3ca0e267ff..6581ad2b692 100644
--- a/config/sunos5-config.py
+++ b/config/sunos5-config.py
@@ -82,6 +82,16 @@ BF_SOLID_LIB = 'extern_solid'
WITH_BF_YAFRAY = 'true'
+WITH_BF_FREESTYLE = 'true'
+BF_FREESTYLE = '#extern/freestyle'
+BF_FREESTYLE_SRC = '#source/blender/freestyle/src'
+BF_SWIG = '${BF_FREESTYLE}/swig'
+BF_SWIG_LIB = 'extern_swig'
+BF_LIB3DS = '${BF_FREESTYLE}/lib3ds'
+BF_LIB3DS_LIB = 'extern_lib3ds'
+BF_LIB3DS_LIBPATH = '${BF_LIB3DS}/lib3ds/.libs'
+BF_LIB3DS_INC = '${BF_LIB3DS}/lib3ds'
+
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
diff --git a/config/win32-mingw-config.py b/config/win32-mingw-config.py
index d9fd6ce8d4f..b0a3c3ae18d 100644
--- a/config/win32-mingw-config.py
+++ b/config/win32-mingw-config.py
@@ -97,6 +97,16 @@ BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
WITH_BF_YAFRAY = 'true'
+WITH_BF_FREESTYLE = 'true'
+BF_FREESTYLE = '#extern/freestyle'
+BF_FREESTYLE_SRC = '#source/blender/freestyle/src'
+BF_SWIG = '${BF_FREESTYLE}/swig'
+BF_SWIG_LIB = 'extern_swig'
+BF_LIB3DS = '${BF_FREESTYLE}/lib3ds'
+BF_LIB3DS_LIB = 'extern_lib3ds'
+BF_LIB3DS_LIBPATH = '${BF_LIB3DS}/lib3ds/.libs'
+BF_LIB3DS_INC = '${BF_LIB3DS}/lib3ds'
+
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
diff --git a/config/win32-vc-config.py b/config/win32-vc-config.py
index 32b6597b5d5..849b153378f 100644
--- a/config/win32-vc-config.py
+++ b/config/win32-vc-config.py
@@ -108,6 +108,16 @@ WITH_BF_YAFRAY = 'true'
WITH_BF_BINRELOC = 'false'
+WITH_BF_FREESTYLE = 'true'
+BF_FREESTYLE = '#extern/freestyle'
+BF_FREESTYLE_SRC = '#source/blender/freestyle/src'
+BF_SWIG = '${BF_FREESTYLE}/swig'
+BF_SWIG_LIB = 'extern_swig'
+BF_LIB3DS = '${BF_FREESTYLE}/lib3ds'
+BF_LIB3DS_LIB = 'extern_lib3ds'
+BF_LIB3DS_LIBPATH = '${BF_LIB3DS}/lib3ds/.libs'
+BF_LIB3DS_INC = '${BF_LIB3DS}/lib3ds'
+
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
diff --git a/extern/SConscript b/extern/SConscript
index 09eaf080c28..7997981b7f2 100644
--- a/extern/SConscript
+++ b/extern/SConscript
@@ -9,6 +9,10 @@ if env['WITH_BF_GAMEENGINE']:
if env['WITH_BF_BULLET']:
SConscript(['bullet2/src/SConscript'])
+if env['WITH_BF_FREESTYLE']:
+ SConscript(['freestyle/lib3ds/SConscript'])
+ SConscript(['freestyle/swig/SConscript'])
+
if env['WITH_BF_INTERNATIONAL']:
SConscript(['bFTGL/SConscript'])
diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c
index 25f2fd8d269..f95d9aa418a 100644
--- a/intern/guardedalloc/intern/mallocn.c
+++ b/intern/guardedalloc/intern/mallocn.c
@@ -38,10 +38,7 @@
#include <stdarg.h>
/* mmap exception */
-#if defined(AMIGA) || defined(__BeOS)
-#elif defined(WIN32)
-#include <sys/types.h>
-#include "mmap_win.h"
+#if defined(AMIGA) || defined(__BeOS) || defined(WIN32)
#else
#include <sys/types.h>
#include <sys/mman.h>
@@ -292,7 +289,7 @@ void *MEM_callocN(unsigned int len, const char *str)
/* note; mmap returns zero'd memory */
void *MEM_mapallocN(unsigned int len, const char *str)
{
-#if defined(AMIGA) || defined(__BeOS)
+#if defined(AMIGA) || defined(__BeOS) || defined(WIN32)
return MEM_callocN(len, str);
#else
MemHead *memh;
@@ -589,7 +586,7 @@ static void rem_memblock(MemHead *memh)
totblock--;
mem_in_use -= memh->len;
-#if defined(AMIGA) || defined(__BeOS)
+#if defined(AMIGA) || defined(__BeOS) || defined(WIN32)
free(memh);
#else
diff --git a/intern/guardedalloc/intern/mmap_win.c b/intern/guardedalloc/intern/mmap_win.c
deleted file mode 100644
index cc31cf5174e..00000000000
--- a/intern/guardedalloc/intern/mmap_win.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/**
- * $Id: $
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2008 Blender Foundation.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Andrea Weikert.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#if defined(WIN32)
-
-#include <windows.h>
-#include <errno.h>
-#include <io.h>
-#include <sys/types.h>
-#include <stdio.h>
-
-#include "mmap_win.h"
-
-#ifndef FILE_MAP_EXECUTE
-//not defined in earlier versions of the Platform SDK (before February 2003)
-#define FILE_MAP_EXECUTE 0x0020
-#endif
-
-/* --------------------------------------------------------------------- */
-/* local storage definitions */
-/* --------------------------------------------------------------------- */
-/* all memory mapped chunks are put in linked lists */
-typedef struct mmapLink
-{
- struct mmapLink *next,*prev;
-} mmapLink;
-
-typedef struct mmapListBase
-{
- void *first, *last;
-} mmapListBase;
-
-typedef struct MemMap {
- struct MemMap *next,*prev;
- void *mmap;
- HANDLE fhandle;
- HANDLE maphandle;
-} MemMap;
-
-/* --------------------------------------------------------------------- */
-/* local functions */
-/* --------------------------------------------------------------------- */
-
-static void mmap_addtail(volatile mmapListBase *listbase, void *vlink);
-static void mmap_remlink(volatile mmapListBase *listbase, void *vlink);
-static void *mmap_findlink(volatile mmapListBase *listbase, void *ptr);
-
-static int mmap_get_prot_flags (int flags);
-static int mmap_get_access_flags (int flags);
-
-/* --------------------------------------------------------------------- */
-/* vars */
-/* --------------------------------------------------------------------- */
-volatile static struct mmapListBase _mmapbase;
-volatile static struct mmapListBase *mmapbase = &_mmapbase;
-
-
-/* --------------------------------------------------------------------- */
-/* implementation */
-/* --------------------------------------------------------------------- */
-
-/* mmap for windows */
-void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset)
-{
- HANDLE fhandle = INVALID_HANDLE_VALUE;
- HANDLE maphandle;
- int prot_flags = mmap_get_prot_flags(prot);
- int access_flags = mmap_get_access_flags(prot);
- MemMap *mm = NULL;
- void *ptr = NULL;
-
- if ( flags & MAP_FIXED ) {
- return MAP_FAILED;
- }
-
- /*
- if ( fd == -1 ) {
- _set_errno( EBADF );
- return MAP_FAILED;
- }
- */
-
- if ( fd != -1 ) {
- fhandle = (HANDLE) _get_osfhandle (fd);
- }
- if ( fhandle == INVALID_HANDLE_VALUE ) {
- if (!(flags & MAP_ANONYMOUS)) {
- errno = EBADF;
- return MAP_FAILED;
- }
- } else {
- if ( !DuplicateHandle( GetCurrentProcess(), fhandle, GetCurrentProcess(),
- &fhandle, 0, FALSE, DUPLICATE_SAME_ACCESS ) ) {
- return MAP_FAILED;
- }
- }
-
- maphandle = CreateFileMapping(fhandle, NULL, prot_flags, 0, len, NULL);
- if ( maphandle == 0 ) {
- errno = EBADF;
- return MAP_FAILED;
- }
-
- ptr = MapViewOfFile(maphandle, access_flags, 0, offset, 0);
- if ( ptr == NULL ) {
- DWORD dwLastErr = GetLastError();
- if ( dwLastErr == ERROR_MAPPED_ALIGNMENT )
- errno=EINVAL;
- else
- errno=EACCES;
- CloseHandle(maphandle);
- return MAP_FAILED;
- }
-
- mm= (MemMap *)malloc(sizeof(MemMap));
- if (!mm) {
- errno=ENOMEM;
- }
- mm->fhandle = fhandle;
- mm->maphandle = maphandle;
- mm->mmap = ptr;
- mmap_addtail(mmapbase, mm);
-
- return ptr;
-}
-
-/* munmap for windows */
-long munmap(void *ptr, long size)
-{
- MemMap *mm = mmap_findlink(mmapbase, ptr);
- if (!mm) {
- errno=EINVAL;
- return -1;
- }
- UnmapViewOfFile( mm->mmap );
- CloseHandle( mm->maphandle );
- CloseHandle( mm->fhandle);
- mmap_remlink(mmapbase, mm);
- return 0;
-}
-
-/* --------------------------------------------------------------------- */
-/* local functions */
-/* --------------------------------------------------------------------- */
-
-static void mmap_addtail(volatile mmapListBase *listbase, void *vlink)
-{
- struct mmapLink *link= vlink;
-
- if (link == 0) return;
- if (listbase == 0) return;
-
- link->next = 0;
- link->prev = listbase->last;
-
- if (listbase->last) ((struct mmapLink *)listbase->last)->next = link;
- if (listbase->first == 0) listbase->first = link;
- listbase->last = link;
-}
-
-static void mmap_remlink(volatile mmapListBase *listbase, void *vlink)
-{
- struct mmapLink *link= vlink;
-
- if (link == 0) return;
- if (listbase == 0) return;
-
- if (link->next) link->next->prev = link->prev;
- if (link->prev) link->prev->next = link->next;
-
- if (listbase->last == link) listbase->last = link->prev;
- if (listbase->first == link) listbase->first = link->next;
-}
-
-static void *mmap_findlink(volatile mmapListBase *listbase, void *ptr)
-{
- MemMap *mmap_ptr = (MemMap*)ptr;
- MemMap *mm;
-
- if (ptr == 0) return NULL;
- if (listbase == 0) return NULL;
-
- mm = (MemMap *)listbase->first;
- while (mm) {
- if (mm->mmap == ptr) {
- return mm;
- }
- mm = mm->next;
- }
- return NULL;
-}
-
-static int mmap_get_prot_flags (int flags)
-{
- int prot = PAGE_NOACCESS;
-
- if ( ( flags & PROT_READ ) == PROT_READ ) {
- if ( ( flags & PROT_WRITE ) == PROT_WRITE ) {
- prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE;
- } else {
- prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READ : PAGE_READONLY;
- }
- } else if ( ( flags & PROT_WRITE ) == PROT_WRITE ) {
- prot = (flags & PROT_EXEC) ? PAGE_EXECUTE_READ : PAGE_WRITECOPY;
- } else if ( ( flags & PROT_EXEC ) == PROT_EXEC ) {
- prot = PAGE_EXECUTE_READ;
- }
- return prot;
-}
-
-static int mmap_get_access_flags (int flags)
-{
- int access = 0;
-
- if ( ( flags & PROT_READ ) == PROT_READ ) {
- if ( ( flags & PROT_WRITE ) == PROT_WRITE ) {
- access = FILE_MAP_WRITE;
- } else {
- access = (flags & PROT_EXEC) ? FILE_MAP_EXECUTE : FILE_MAP_READ;
- }
- } else if ( ( flags & PROT_WRITE ) == PROT_WRITE ) {
- access = FILE_MAP_COPY;
- } else if ( ( flags & PROT_EXEC ) == PROT_EXEC ) {
- access = FILE_MAP_EXECUTE;
- }
- return access;
-}
-
-
-#endif // WIN32
-
-
-
-
-
diff --git a/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj b/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj
index 40e88511d5d..cb3490716fa 100644
--- a/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj
+++ b/intern/guardedalloc/make/msvc_7_0/guardedalloc.vcproj
@@ -251,9 +251,6 @@ ECHO Done
<File
RelativePath="..\..\intern\mallocn.c">
</File>
- <File
- RelativePath="..\..\intern\mmap_win.c">
- </File>
</Filter>
<Filter
Name="Header Files"
@@ -264,13 +261,6 @@ ECHO Done
<File
RelativePath="..\..\MEM_guardedalloc.h">
</File>
- <File
- RelativePath="..\..\mmap_win.h">
- </File>
- </Filter>
- <Filter
- Name="intern"
- Filter="">
</Filter>
</Filter>
</Files>
diff --git a/intern/guardedalloc/mmap_win.h b/intern/guardedalloc/mmap_win.h
deleted file mode 100644
index f83a2d64b18..00000000000
--- a/intern/guardedalloc/mmap_win.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * $Id: $
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2008 Blender Foundation.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Andrea Weikert.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef MMAP_WIN_H
-#define MMAP_WIN_H
-
-#define PROT_NONE 0
-#define PROT_READ 1
-#define PROT_WRITE 2
-#define PROT_EXEC 4
-
-#define MAP_FILE 0
-#define MAP_SHARED 1
-#define MAP_PRIVATE 2
-#define MAP_TYPE 0xF
-#define MAP_FIXED 0x10
-#define MAP_ANONYMOUS 0x20
-#define MAP_ANON MAP_ANONYMOUS
-
-#define MAP_FAILED ((void *)-1)
-
-void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t offset);
-long munmap(void *ptr, long size);
-
-#endif
-
diff --git a/release/datafiles/splash.jpg b/release/datafiles/splash.jpg
index da88c0b8eaa..0d328ee4b7c 100644
--- a/release/datafiles/splash.jpg
+++ b/release/datafiles/splash.jpg
Binary files differ
diff --git a/release/scripts/DirectX8Exporter.py b/release/scripts/DirectX8Exporter.py
index 2ec42057039..3dbd8d9d539 100644
--- a/release/scripts/DirectX8Exporter.py
+++ b/release/scripts/DirectX8Exporter.py
@@ -7,7 +7,7 @@
# Tooltip: 'Export to DirectX text file format format for XNA Animation Component Library.'
"""
__author__ = "minahito (original:Arben (Ben) Omari)"
-__url__ = ("blender", "blenderartists.org", "Adjuster's site http://sunday-lab.blogspot.com/, Author's site http://www.omariben.too.it")
+__url__ = ("blender", "elysiun", "Adjuster's site http://sunday-lab.blogspot.com/, Author's site http://www.omariben.too.it")
__version__ = "3.0"
__bpydoc__ = """\
diff --git a/release/scripts/ac3d_export.py b/release/scripts/ac3d_export.py
index 57f27c7e3a2..bccb7978f5f 100644
--- a/release/scripts/ac3d_export.py
+++ b/release/scripts/ac3d_export.py
@@ -8,7 +8,7 @@ Tip: 'Export selected meshes to AC3D (.ac) format'
"""
__author__ = "Willian P. Germano"
-__url__ = ("blender", "blenderartists.org", "AC3D's homepage, http://www.ac3d.org",
+__url__ = ("blender", "elysiun", "AC3D's homepage, http://www.ac3d.org",
"PLib 3d gaming lib, http://plib.sf.net")
__version__ = "2.44 2007-05-05"
diff --git a/release/scripts/ac3d_import.py b/release/scripts/ac3d_import.py
index 6a2b290e010..9a7004e4b4d 100644
--- a/release/scripts/ac3d_import.py
+++ b/release/scripts/ac3d_import.py
@@ -8,7 +8,7 @@ Tip: 'Import an AC3D (.ac) file.'
"""
__author__ = "Willian P. Germano"
-__url__ = ("blender", "blenderartists.org", "AC3D's homepage, http://www.ac3d.org",
+__url__ = ("blender", "elysiun", "AC3D's homepage, http://www.ac3d.org",
"PLib 3d gaming lib, http://plib.sf.net")
__version__ = "2.43.1 2007-02-21"
diff --git a/release/scripts/bevel_center.py b/release/scripts/bevel_center.py
index 105112e6ec3..0ea305a0120 100644
--- a/release/scripts/bevel_center.py
+++ b/release/scripts/bevel_center.py
@@ -8,7 +8,7 @@ Tip: 'Bevel selected faces, edges, and vertices'
"""
__author__ = "Loic BERTHE"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "2.0"
__bpydoc__ = """\
diff --git a/release/scripts/config.py b/release/scripts/config.py
index 4251bad8654..69f929dab97 100644
--- a/release/scripts/config.py
+++ b/release/scripts/config.py
@@ -10,7 +10,7 @@ Tooltip: 'View and edit available scripts configuration data'
__author__ = "Willian P. Germano"
__version__ = "0.1 2005/04/14"
__email__ = ('scripts', 'Author, wgermano:ig*com*br')
-__url__ = ('blender', 'blenderartists.org')
+__url__ = ('blender', 'elysiun')
__bpydoc__ ="""\
This script can be used to view and edit configuration data stored
diff --git a/release/scripts/console.py b/release/scripts/console.py
index 9a18c724d47..62e0b2eb1d8 100644
--- a/release/scripts/console.py
+++ b/release/scripts/console.py
@@ -1,14 +1,14 @@
#!BPY
"""
-Name: 'Interactive Python Console'
-Blender: 245
+Name: 'Interactive Console'
+Blender: 237
Group: 'System'
Tooltip: 'Interactive Python Console'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = "Campbell Barton AKA Ideasman"
+__url__ = ["Author's homepage, http://members.iinet.net.au/~cpbarton/ideasman/", "blender", "elysiun", "Official Python site, http://www.python.org"]
__bpydoc__ = """\
This is an interactive console, similar to Python's own command line interpreter. Since it is embedded in Blender, it has access to all Blender Python modules.
@@ -26,6 +26,8 @@ Usage:<br>
- Ctrl + Enter: auto compleate based on variable names and modules loaded -- multiple choices popup a menu;<br>
- Shift + Enter: multiline functions -- delays executing code until only Enter is pressed.
"""
+__author__ = "Campbell Barton AKA Ideasman"
+__url__ = ["http://members.iinet.net.au/~cpbarton/ideasman/", "blender", "elysiun"]
# --------------------------------------------------------------------------
# ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/release/scripts/envelope_symmetry.py b/release/scripts/envelope_symmetry.py
index a52e622a65b..935dae9aabe 100644
--- a/release/scripts/envelope_symmetry.py
+++ b/release/scripts/envelope_symmetry.py
@@ -8,7 +8,7 @@ Tooltip: 'Make envelope symetrical'
"""
__author__ = "Jonas Petersen"
-__url__ = ("blender", "blenderartists.org", "Script's homepage, http://www.mindfloaters.de/blender/", "thread at blender.org, http://www.blender.org/modules.php?op=modload&name=phpBB2&file=viewtopic&t=4858 ")
+__url__ = ("blender", "elysiun", "Script's homepage, http://www.mindfloaters.de/blender/", "thread at blender.org, http://www.blender.org/modules.php?op=modload&name=phpBB2&file=viewtopic&t=4858 ")
__version__ = "0.9 2004-11-10"
__doc__ = """\
This script creates perfectly symmetrical envelope sets. It is part of the
diff --git a/release/scripts/export_lightwave_motion.py b/release/scripts/export_lightwave_motion.py
index 562e44f3a2b..93a5961baef 100644
--- a/release/scripts/export_lightwave_motion.py
+++ b/release/scripts/export_lightwave_motion.py
@@ -8,7 +8,7 @@ Tip: 'Export Loc Rot Size chanels to a Lightwave .mot file'
"""
__author__ = "Daniel Salazar (ZanQdo)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"e-mail: zanqdo@gmail.com")
__version__ = "16/04/08"
diff --git a/release/scripts/faceselect_same_weights.py b/release/scripts/faceselect_same_weights.py
index 967aedec363..b8d50cf09b6 100644
--- a/release/scripts/faceselect_same_weights.py
+++ b/release/scripts/faceselect_same_weights.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Same Weights...'
-Blender: 245
+Blender: 241
Group: 'FaceSelect'
Tooltip: 'Select same faces with teh same weight for the active group.'
"""
-__author__ = ["Campbell Barton aka ideasman42"]
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__ = """\
diff --git a/release/scripts/flt_export.py b/release/scripts/flt_export.py
index 35022a69bbb..80d68d10b62 100644
--- a/release/scripts/flt_export.py
+++ b/release/scripts/flt_export.py
@@ -8,7 +8,7 @@ Tip: 'Export to OpenFlight v16.0 (.flt)'
__author__ = "Greg MacDonald, Geoffrey Bantle"
__version__ = "2.0 11/21/07"
-__url__ = ("blender", "blenderartists.org", "Author's homepage, http://sourceforge.net/projects/blight/")
+__url__ = ("blender", "elysiun", "Author's homepage, http://sourceforge.net/projects/blight/")
__bpydoc__ = """\
This script exports v16.0 OpenFlight files. OpenFlight is a
registered trademark of MultiGen-Paradigm, Inc.
diff --git a/release/scripts/flt_import.py b/release/scripts/flt_import.py
index c924194f44b..d31376995d4 100644
--- a/release/scripts/flt_import.py
+++ b/release/scripts/flt_import.py
@@ -10,7 +10,7 @@ Tip: 'Import OpenFlight (.flt)'
__author__ = "Greg MacDonald, Campbell Barton, Geoffrey Bantle"
__version__ = "2.0 11/21/07"
-__url__ = ("blender", "blenderartists.org", "Author's homepage, http://sourceforge.net/projects/blight/")
+__url__ = ("blender", "elysiun", "Author's homepage, http://sourceforge.net/projects/blight/")
__bpydoc__ = """\
This script imports OpenFlight files into Blender. OpenFlight is a
registered trademark of MultiGen-Paradigm, Inc.
diff --git a/release/scripts/flt_palettemanager.py b/release/scripts/flt_palettemanager.py
index 6edaf2974ab..c641a0a4f08 100644
--- a/release/scripts/flt_palettemanager.py
+++ b/release/scripts/flt_palettemanager.py
@@ -10,7 +10,7 @@ Tooltip: 'Manage FLT colors'
__author__ = "Geoffrey Bantle"
__version__ = "1.0 11/21/2007"
__email__ = ('scripts', 'Author, ')
-__url__ = ('blender', 'blenderartists.org')
+__url__ = ('blender', 'elysiun')
__bpydoc__ ="""\
diff --git a/release/scripts/flt_toolbar.py b/release/scripts/flt_toolbar.py
index a707b87f846..565849859c1 100644
--- a/release/scripts/flt_toolbar.py
+++ b/release/scripts/flt_toolbar.py
@@ -10,7 +10,7 @@ Tooltip: 'Tools for working with FLT databases'
__author__ = "Geoffrey Bantle"
__version__ = "1.0 11/21/07"
__email__ = ('scripts', 'Author, ')
-__url__ = ('blender', 'blenderartists.org')
+__url__ = ('blender', 'elysiun')
__bpydoc__ ="""\
This script provides tools for working with OpenFlight databases in Blender. OpenFlight is a
diff --git a/release/scripts/help_browser.py b/release/scripts/help_browser.py
index 696dfd3ca2b..d321ffa6256 100644
--- a/release/scripts/help_browser.py
+++ b/release/scripts/help_browser.py
@@ -10,7 +10,7 @@ Tooltip: 'Show help information about a chosen installed script.'
__author__ = "Willian P. Germano"
__version__ = "0.1 11/02/04"
__email__ = ('scripts', 'Author, wgermano:ig*com*br')
-__url__ = ('blender', 'blenderartists.org')
+__url__ = ('blender', 'elysiun')
__bpydoc__ ="""\
This script shows help information for scripts registered in the menus.
@@ -84,7 +84,8 @@ DEFAULT_EMAILS = {
}
DEFAULT_LINKS = {
- 'blender': ["blender.org\'s Python forum", "http://www.blender.org/modules.php?op=modload&name=phpBB2&file=viewforum&f=9"]
+ 'blender': ["blender.org\'s Python forum", "http://www.blender.org/modules.php?op=modload&name=phpBB2&file=viewforum&f=9"],
+ 'elysiun': ["elYsiun\'s Python and Plugins forum", "http://www.elysiun.com/forum/viewforum.php?f=5"]
}
PADDING = 15
diff --git a/release/scripts/help_getting_started.py b/release/scripts/help_getting_started.py
index 81b002da4e4..19eac9e2e20 100644
--- a/release/scripts/help_getting_started.py
+++ b/release/scripts/help_getting_started.py
@@ -7,7 +7,7 @@ Tooltip: 'Help for new users'
"""
__author__ = "Matt Ebb"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
This script opens the user's default web browser at www.blender3d.org's
diff --git a/release/scripts/help_manual.py b/release/scripts/help_manual.py
index cf293bf7c2c..75d93522c31 100644
--- a/release/scripts/help_manual.py
+++ b/release/scripts/help_manual.py
@@ -7,7 +7,7 @@ Tooltip: 'The Blender reference manual'
"""
__author__ = "Matt Ebb"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
This script opens the user's default web browser at www.blender3d.org's
diff --git a/release/scripts/help_release_notes.py b/release/scripts/help_release_notes.py
index af7a7042489..49382755163 100644
--- a/release/scripts/help_release_notes.py
+++ b/release/scripts/help_release_notes.py
@@ -7,7 +7,7 @@ Tooltip: 'Information about the changes in this version of Blender'
"""
__author__ = "Matt Ebb"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
This script opens the user's default web browser at www.blender3d.org's
diff --git a/release/scripts/help_tutorials.py b/release/scripts/help_tutorials.py
index 04d6c799455..1fbabc43eb6 100644
--- a/release/scripts/help_tutorials.py
+++ b/release/scripts/help_tutorials.py
@@ -8,7 +8,7 @@ Tooltip: 'Tutorials for learning to use Blender'
"""
__author__ = "Matt Ebb"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
This script opens the user's default web browser at www.blender3d.org's
diff --git a/release/scripts/help_web_blender.py b/release/scripts/help_web_blender.py
index 0f9e32dea0e..999746c1f9c 100644
--- a/release/scripts/help_web_blender.py
+++ b/release/scripts/help_web_blender.py
@@ -8,7 +8,7 @@ Tooltip: 'The official Blender website'
"""
__author__ = "Matt Ebb"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
This script opens the user's default web browser at Blender's main site,
diff --git a/release/scripts/help_web_devcomm.py b/release/scripts/help_web_devcomm.py
index 344622cc113..afe9ef064d9 100644
--- a/release/scripts/help_web_devcomm.py
+++ b/release/scripts/help_web_devcomm.py
@@ -8,7 +8,7 @@ Tooltip: 'Get involved with Blender development'
"""
__author__ = "Matt Ebb"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
This script opens the user's default web browser at www.blender.org, the
diff --git a/release/scripts/help_web_eshop.py b/release/scripts/help_web_eshop.py
index 451fd735150..997d07ca255 100644
--- a/release/scripts/help_web_eshop.py
+++ b/release/scripts/help_web_eshop.py
@@ -8,7 +8,7 @@ Tooltip: 'Buy official Blender resources and merchandise online'
"""
__author__ = "Matt Ebb"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
This script opens the user's default web browser at www.blender3d.org's
diff --git a/release/scripts/help_web_usercomm.py b/release/scripts/help_web_usercomm.py
index fbe19956eb7..56f64764ac7 100644
--- a/release/scripts/help_web_usercomm.py
+++ b/release/scripts/help_web_usercomm.py
@@ -8,7 +8,7 @@ Tooltip: 'Get involved with other Blender users'
"""
__author__ = "Matt Ebb"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
This script opens the user's default web browser at www.blender3d.org's
diff --git a/release/scripts/image_edit.py b/release/scripts/image_edit.py
index a7132a4f986..14ab57515ba 100644
--- a/release/scripts/image_edit.py
+++ b/release/scripts/image_edit.py
@@ -7,7 +7,7 @@ Tooltip: 'Open in an application for editing. (hold Shift to configure)'
"""
__author__ = "Campbell Barton"
-__url__ = ["blender", "blenderartists.org"]
+__url__ = ["blender", "elysiun"]
__version__ = "1.0"
__bpydoc__ = """\
diff --git a/release/scripts/import_lightwave_motion.py b/release/scripts/import_lightwave_motion.py
index c242a9f6bd3..bec988c8da5 100644
--- a/release/scripts/import_lightwave_motion.py
+++ b/release/scripts/import_lightwave_motion.py
@@ -8,7 +8,7 @@ Tip: 'Import Loc Rot Size chanels from a Lightwave .mot file'
"""
__author__ = "Daniel Salazar (ZanQdo)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"e-mail: zanqdo@gmail.com")
__version__ = "16/04/08"
diff --git a/release/scripts/lightwave_export.py b/release/scripts/lightwave_export.py
index 458e61f3a28..b0fc1cc7faf 100644
--- a/release/scripts/lightwave_export.py
+++ b/release/scripts/lightwave_export.py
@@ -8,7 +8,7 @@ Tooltip: 'Export selected meshes to LightWave File Format (.lwo)'
"""
__author__ = "Anthony D'Agostino (Scorpius)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Author's homepage, http://www.redrival.com/scorpius")
__version__ = "Part of IOSuite 0.5"
diff --git a/release/scripts/md2_export.py b/release/scripts/md2_export.py
index 588336ed447..6fc7c1adfa2 100644
--- a/release/scripts/md2_export.py
+++ b/release/scripts/md2_export.py
@@ -10,7 +10,7 @@ Tooltip: 'Export to Quake file format (.md2).'
__author__ = 'Bob Holcomb'
__version__ = '0.18.1 patch 1'
__url__ = ["Bob's site, http://bane.servebeer.com",
- "Support forum, http://bane.servebeer.com", "blender", "blenderartists.org"]
+ "Support forum, http://bane.servebeer.com", "blender", "elysiun"]
__email__ = ["Bob Holcomb, bob_holcomb:hotmail*com", "scripts"]
__bpydoc__ = """\
This script Exports a Quake 2 file (MD2).
diff --git a/release/scripts/md2_import.py b/release/scripts/md2_import.py
index f52746259a6..ec778c1e1b8 100644
--- a/release/scripts/md2_import.py
+++ b/release/scripts/md2_import.py
@@ -10,7 +10,7 @@ Tooltip: 'Import from Quake file format (.md2).'
__author__ = 'Bob Holcomb'
__version__ = '0.16'
__url__ = ["Bob's site, http://bane.servebeer.com",
- "Support forum, http://scourage.servebeer.com/phpbb/", "blender", "blenderartists.org"]
+ "Support forum, http://scourage.servebeer.com/phpbb/", "blender", "elysiun"]
__email__ = ["Bob Holcomb, bob_holcomb:hotmail*com", "scripts"]
__bpydoc__ = """\
This script imports a Quake 2 file (MD2), textures,
diff --git a/release/scripts/mesh_boneweight_copy.py b/release/scripts/mesh_boneweight_copy.py
index d2a477fbc0b..8aa9a1e3213 100644
--- a/release/scripts/mesh_boneweight_copy.py
+++ b/release/scripts/mesh_boneweight_copy.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Bone Weight Copy'
-Blender: 245
+Blender: 243
Group: 'Object'
Tooltip: 'Copy Bone Weights from 1 mesh, to all other selected meshes.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__ = """\
diff --git a/release/scripts/mesh_cleanup.py b/release/scripts/mesh_cleanup.py
index 608201acb98..1eb3e3968b2 100644
--- a/release/scripts/mesh_cleanup.py
+++ b/release/scripts/mesh_cleanup.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Clean Meshes'
-Blender: 245
+Blender: 242
Group: 'Mesh'
Tooltip: 'Clean unused data from all selected mesh objects.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__ = """\
Clean Meshes
diff --git a/release/scripts/mesh_edges2curves.py b/release/scripts/mesh_edges2curves.py
index 006bdf10b49..f65eccae9a4 100644
--- a/release/scripts/mesh_edges2curves.py
+++ b/release/scripts/mesh_edges2curves.py
@@ -6,7 +6,7 @@ Group: 'Mesh'
Tip: 'Edges not used by a face are converted into polyline(s)'
"""
__author__ = ("Campbell Barton")
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0 2006/02/08"
__bpydoc__ = """\
diff --git a/release/scripts/mesh_mirror_tool.py b/release/scripts/mesh_mirror_tool.py
index 33ce6936c7f..045f37b8333 100644
--- a/release/scripts/mesh_mirror_tool.py
+++ b/release/scripts/mesh_mirror_tool.py
@@ -6,8 +6,8 @@ Group: 'Mesh'
Tooltip: 'Snap Verticies to X mirrord locations and weights.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__= ['Campbell Barton']
+__url__= ["blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/"]
__version__= '1.0'
__bpydoc__= '''\
This script is used to mirror vertex locations and weights
diff --git a/release/scripts/mesh_poly_reduce.py b/release/scripts/mesh_poly_reduce.py
index 6dfd7a90efc..9d8bb61f652 100644
--- a/release/scripts/mesh_poly_reduce.py
+++ b/release/scripts/mesh_poly_reduce.py
@@ -7,7 +7,7 @@ Tooltip: 'Removed polygons from a mesh while maintaining the shape, textures and
"""
__author__ = "Campbell Barton"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0 2006/02/07"
__bpydoc__ = """\
diff --git a/release/scripts/obdatacopier.py b/release/scripts/obdatacopier.py
index 2f5617951de..561e40e15da 100644
--- a/release/scripts/obdatacopier.py
+++ b/release/scripts/obdatacopier.py
@@ -8,7 +8,7 @@ Tip: 'Copy data from active object to other selected ones.'
"""
__author__ = "Jean-Michel Soler (jms), Campbell Barton (Ideasman42)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Script's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_lampdatacopier.htm",
"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
__version__ = "0.1.2"
diff --git a/release/scripts/object_apply_def.py b/release/scripts/object_apply_def.py
index c863fdb6962..67e4179a674 100644
--- a/release/scripts/object_apply_def.py
+++ b/release/scripts/object_apply_def.py
@@ -12,7 +12,7 @@ __author__ = "Martin Poirier (theeth), Jean-Michel Soler (jms), Campbell Barton
# Martin Poirier's Apply_Def.py and
# Jean-Michel Soler's Fix From Everything
-__url__ = ("http://www.blender.org", "http://blenderartists.org", "http://jmsoler.free.fr")
+__url__ = ("http://www.blender.org", "http://blenderartists.org", "http://members.iinet.net.au/~cpbarton/ideasman/", "http://jmsoler.free.fr")
__version__ = "1.6 07/07/2006"
__bpydoc__ = """\
diff --git a/release/scripts/object_batch_name_edit.py b/release/scripts/object_batch_name_edit.py
index 4db3a6210db..05ca5868d19 100644
--- a/release/scripts/object_batch_name_edit.py
+++ b/release/scripts/object_batch_name_edit.py
@@ -6,7 +6,7 @@ Group: 'Object'
Tooltip: 'Apply the chosen rule to rename all selected objects at once.'
"""
__author__ = "Campbell Barton"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
diff --git a/release/scripts/off_export.py b/release/scripts/off_export.py
index 6aac3ff885b..236e6195690 100644
--- a/release/scripts/off_export.py
+++ b/release/scripts/off_export.py
@@ -8,7 +8,7 @@ Tooltip: 'Export selected mesh to DEC Object File Format (*.off)'
"""
__author__ = "Anthony D'Agostino (Scorpius)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Author's homepage, http://www.redrival.com/scorpius")
__version__ = "Part of IOSuite 0.5"
diff --git a/release/scripts/off_import.py b/release/scripts/off_import.py
index e8ab96c51c5..50c0d3d6f7e 100644
--- a/release/scripts/off_import.py
+++ b/release/scripts/off_import.py
@@ -8,7 +8,7 @@ Tooltip: 'Import DEC Object File Format (*.off)'
"""
__author__ = "Anthony D'Agostino (Scorpius), Campbell Barton (Ideasman)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Author's homepage, http://www.redrival.com/scorpius")
__version__ = "Part of IOSuite 0.5"
diff --git a/release/scripts/paths_import.py b/release/scripts/paths_import.py
index 6afb5c8ebba..f36454978ba 100644
--- a/release/scripts/paths_import.py
+++ b/release/scripts/paths_import.py
@@ -13,7 +13,7 @@ Tip: 'Import a path from any of a set of formats (still experimental)'
"""
__author__ = "Jean-Michel Soler (jms)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"AI importer's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_import_ai.htm",
"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
__version__ = "0.1.1"
diff --git a/release/scripts/raw_export.py b/release/scripts/raw_export.py
index e3c588cac10..14de4b1e371 100644
--- a/release/scripts/raw_export.py
+++ b/release/scripts/raw_export.py
@@ -8,7 +8,7 @@ Tooltip: 'Export selected mesh to Raw Format (.raw)'
"""
__author__ = "Anthony D'Agostino (Scorpius)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Author's homepage, http://www.redrival.com/scorpius")
__version__ = "Part of IOSuite 0.5"
diff --git a/release/scripts/raw_import.py b/release/scripts/raw_import.py
index 76c03c77337..a77ed9cc03a 100644
--- a/release/scripts/raw_import.py
+++ b/release/scripts/raw_import.py
@@ -8,7 +8,7 @@ Tooltip: 'Import Raw Triangle File Format (.raw)'
"""
__author__ = "Anthony D'Agostino (Scorpius)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Author's homepage, http://www.redrival.com/scorpius")
__version__ = "Part of IOSuite 0.5"
diff --git a/release/scripts/renameobjectbyblock.py b/release/scripts/renameobjectbyblock.py
index eeea815c650..403aa32717e 100644
--- a/release/scripts/renameobjectbyblock.py
+++ b/release/scripts/renameobjectbyblock.py
@@ -8,7 +8,7 @@ Tip: 'GUI to select and rename objects.'
"""
__author__ = "Jean-Michel Soler (jms)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Script's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_renameobjectgui.htm",
"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
__version__ = "233"
diff --git a/release/scripts/render_save_layers.py b/release/scripts/render_save_layers.py
index 06f410b9783..04bedde6e8d 100644
--- a/release/scripts/render_save_layers.py
+++ b/release/scripts/render_save_layers.py
@@ -8,7 +8,7 @@ Tooltip: 'Save current renderlayers as a BPython script'
"""
__author__ = "Campbell Barton"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0"
__bpydoc__ = """\
diff --git a/release/scripts/rvk1_torvk2.py b/release/scripts/rvk1_torvk2.py
index c8d6fe0e741..754d2d0af2d 100644
--- a/release/scripts/rvk1_torvk2.py
+++ b/release/scripts/rvk1_torvk2.py
@@ -8,7 +8,7 @@ Tip: 'Copy deform data (not surf. subdiv) of active obj to rvk of the 2nd select
"""
__author__ = "Jean-Michel Soler (jms)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Script's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_rvk1versrvk2.htm",
"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
__version__ = "2007/04/27"
diff --git a/release/scripts/save_theme.py b/release/scripts/save_theme.py
index 1d23b12403a..a99050b404d 100644
--- a/release/scripts/save_theme.py
+++ b/release/scripts/save_theme.py
@@ -8,7 +8,7 @@ Tooltip: 'Save current theme as a BPython script'
"""
__author__ = "Willian P. Germano"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "2.43 2006/12/30"
__bpydoc__ = """\
diff --git a/release/scripts/scripttemplate_camer_object.py b/release/scripts/scripttemplate_camer_object.py
index cacc35ed1a5..b4df64d9108 100644
--- a/release/scripts/scripttemplate_camer_object.py
+++ b/release/scripts/scripttemplate_camer_object.py
@@ -98,7 +98,7 @@ SceneCheck()
'''
-new_text = bpy.data.texts.new('camobject_template.py')
+new_text = bpy.data.texts.new('pyconstraint_template.py')
new_text.write(script_data)
bpy.data.texts.active = new_text
Window.RedrawAll()
diff --git a/release/scripts/scripttemplate_ipo_gen.py b/release/scripts/scripttemplate_ipo_gen.py
deleted file mode 100644
index 791eaed2c6b..00000000000
--- a/release/scripts/scripttemplate_ipo_gen.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!BPY
-"""
-Name: 'Camera/Object Example'
-Blender: 245
-Group: 'ScriptTemplate'
-Tooltip: 'Script template for setting the camera direction'
-"""
-
-from Blender import Window
-import bpy
-
-script_data = \
-'''#!BPY
-"""
-Name: 'My Ipo Script'
-Blender: 245
-Group: 'Animation'
-Tooltip: 'Put some useful info here'
-"""
-
-# Add a licence here if you wish to re-distribute, we recommend the GPL
-
-from Blender import Ipo, Mathutils, Window
-import bpy, BPyMessages
-
-def makeRandomIpo(object, firstFrame, numberOfFrames, frameStep):
- # Create an new Ipo Curve of name myIpo and type Object
- myIpo = bpy.data.ipos.new('myIpo', 'Object')
-
- # Create LocX, LocY, and LocZ Ipo curves in our new Curve Object
- # and store them so we can access them later
- myIpo_x = myIpo.addCurve('LocX')
- myIpo_y = myIpo.addCurve('LocY')
- myIpo_z = myIpo.addCurve('LocZ')
-
- # What value we want to scale our random value by
- ipoScale = 4
-
- # This Calculates the End Frame for use in an xrange() expression
- endFrame = firstFrame + (numberOfFrames * frameStep) + frameStep
-
- for frame in xrange(firstFrame, endFrame, frameStep):
-
- # Use the Mathutils Rand() function to get random numbers
- ipoValue_x = Mathutils.Rand(-1, 1) * ipoScale
- ipoValue_y = Mathutils.Rand(-1, 1) * ipoScale
- ipoValue_z = Mathutils.Rand(-1, 1) * ipoScale
-
- # Append to the Ipo curve at location frame, with the value ipoValue_x
- # Note that we should pass the append function a tuple or a BezTriple
- myIpo_x.append((frame, ipoValue_x))
-
- # Similar to above
- myIpo_y.append((frame, ipoValue_y))
- myIpo_z.append((frame, ipoValue_z))
-
- # Link our new Ipo Curve to the passed object
- object.setIpo(myIpo)
- print object
-
-
-def main():
-
- # Get the active scene, since there can be multiple ones
- sce = bpy.data.scenes.active
-
- # Get the active object
- object = sce.objects.active
-
- # If there is no active object, pop up an error message
- if not object:
- BPyMessages.Error_NoActive()
-
- Window.WaitCursor(1)
-
- # Call our makeRandomIpo function
- # Pass it our object, Tell it to keys from the start frame until the end frame, at a step of 10 frames
- # between them
-
- makeRandomIpo(object, sce.render.sFrame, sce.render.eFrame, 10)
-
- Window.WaitCursor(0)
-
-if __name__ == '__main__':
- main()
-
-'''
-
-new_text = bpy.data.texts.new('ipo_template.py')
-new_text.write(script_data)
-bpy.data.texts.active = new_text
-Window.RedrawAll()
diff --git a/release/scripts/scripttemplate_metaball_create.py b/release/scripts/scripttemplate_metaball_create.py
index 28db9de3af6..881f9c4fc4b 100644
--- a/release/scripts/scripttemplate_metaball_create.py
+++ b/release/scripts/scripttemplate_metaball_create.py
@@ -70,7 +70,7 @@ if __name__ == '__main__':
main()
'''
-new_text = bpy.data.texts.new('metaball_template.py')
+new_text = bpy.data.texts.new('pyconstraint_template.py')
new_text.write(script_data)
bpy.data.texts.active = new_text
Window.RedrawAll()
diff --git a/release/scripts/scripttemplate_object_edit.py b/release/scripts/scripttemplate_object_edit.py
index 3ba20f20dd1..4f8e0bccfa2 100644
--- a/release/scripts/scripttemplate_object_edit.py
+++ b/release/scripts/scripttemplate_object_edit.py
@@ -13,7 +13,7 @@ script_data = \
'''#!BPY
"""
Name: 'My Object Script'
-Blender: 245
+Blender: 244
Group: 'Object'
Tooltip: 'Put some useful info here'
"""
@@ -78,4 +78,4 @@ if __name__ == '__main__':
new_text = bpy.data.texts.new('object_template.py')
new_text.write(script_data)
bpy.data.texts.active = new_text
-Window.RedrawAll()
+Window.RedrawAll() \ No newline at end of file
diff --git a/release/scripts/slp_import.py b/release/scripts/slp_import.py
index 30387ad7440..95f6900cf10 100644
--- a/release/scripts/slp_import.py
+++ b/release/scripts/slp_import.py
@@ -8,7 +8,7 @@ Tooltip: 'Import Pro Engineer (.slp) File Format'
"""
__author__ = "Anthony D'Agostino (Scorpius)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Author's homepage, http://www.redrival.com/scorpius")
__version__ = "Part of IOSuite 0.5"
diff --git a/release/scripts/sysinfo.py b/release/scripts/sysinfo.py
index 9f24885829c..01cff8ae57f 100644
--- a/release/scripts/sysinfo.py
+++ b/release/scripts/sysinfo.py
@@ -8,7 +8,7 @@ Tooltip: 'Information about your Blender environment, useful to diagnose problem
"""
__author__ = "Willian P. Germano"
-__url__ = ("blenderartists.org", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.1"
__bpydoc__ = """\
This script creates a text in Blender's Text Editor with information
diff --git a/release/scripts/unweld.py b/release/scripts/unweld.py
index 3385e66e2d8..34877837bb7 100644
--- a/release/scripts/unweld.py
+++ b/release/scripts/unweld.py
@@ -7,7 +7,7 @@ Tip: 'Unweld all faces from a (or several) selected and common vertex. Made vert
"""
__author__ = "Jean-Michel Soler (jms)"
-__url__ = ("blender", "blenderartists.org",
+__url__ = ("blender", "elysiun",
"Script's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_faces2vertex.htm#exemple",
"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
__version__ = "0.4.6 "
diff --git a/release/scripts/uv_from_adjacent.py b/release/scripts/uv_from_adjacent.py
index 285cca97d8b..dfdad3118d9 100644
--- a/release/scripts/uv_from_adjacent.py
+++ b/release/scripts/uv_from_adjacent.py
@@ -6,7 +6,7 @@ Group: 'UVCalculation'
Tooltip: 'Assign UVs to selected faces from surrounding unselected faces.'
"""
__author__ = "Campbell Barton"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0 2006/02/07"
__bpydoc__ = """\
diff --git a/release/scripts/uvcalc_follow_active_coords.py b/release/scripts/uvcalc_follow_active_coords.py
index 79a445329cc..2a79d0d05df 100644
--- a/release/scripts/uvcalc_follow_active_coords.py
+++ b/release/scripts/uvcalc_follow_active_coords.py
@@ -6,7 +6,7 @@ Group: 'UVCalculation'
Tooltip: 'Follow from active quads.'
"""
__author__ = "Campbell Barton"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.0 2006/02/07"
__bpydoc__ = """\
diff --git a/release/scripts/uvcalc_lightmap.py b/release/scripts/uvcalc_lightmap.py
index 3b7c3ac7cf9..af9acb09e17 100644
--- a/release/scripts/uvcalc_lightmap.py
+++ b/release/scripts/uvcalc_lightmap.py
@@ -5,8 +5,8 @@ Blender: 242
Group: 'UVCalculation'
Tooltip: 'Give each face non overlapping space on a texture.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ("blender", "blenderartists.org")
+__author__ = "Campbell Barton"
+__url__ = ("blender", "elysiun")
__version__ = "1.0 2006/02/07"
__bpydoc__ = """\
diff --git a/release/scripts/uvcalc_quad_clickproj.py b/release/scripts/uvcalc_quad_clickproj.py
index 0bba747e010..791fd661cc9 100644
--- a/release/scripts/uvcalc_quad_clickproj.py
+++ b/release/scripts/uvcalc_quad_clickproj.py
@@ -2,13 +2,13 @@
""" Registration info for Blender menus: <- these words are ignored
Name: 'Click project from face'
-Blender: 245
+Blender: 242
Group: 'UVCalculation'
Tooltip: '3 Clicks to project uvs onto selected faces.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__=\
'''
diff --git a/release/scripts/uvcalc_smart_project.py b/release/scripts/uvcalc_smart_project.py
index d622e1a2af8..49d52d12d47 100644
--- a/release/scripts/uvcalc_smart_project.py
+++ b/release/scripts/uvcalc_smart_project.py
@@ -9,7 +9,7 @@ Tooltip: 'UV Unwrap mesh faces for all select mesh objects'
__author__ = "Campbell Barton"
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.1 12/18/05"
__bpydoc__ = """\
diff --git a/release/scripts/uvcopy.py b/release/scripts/uvcopy.py
index 73206e47109..1ac63dd52b5 100644
--- a/release/scripts/uvcopy.py
+++ b/release/scripts/uvcopy.py
@@ -7,7 +7,9 @@ Tip: 'Copy UV coords from a mesh to another that has same vertex indices'
"""
__author__ = "Toni Alatalo, Martin Poirier et. al."
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun",
+"Script's homepage, http://www.elysiun.com/forum/viewtopic.php?t=14897",
+"Communicate problems and errors, http://www.elysiun.com/forum/viewtopic.php?t=14897")
__version__ = "0.2 01/2006"
__bpydoc__ = """\
diff --git a/release/scripts/vertexpaint_gradient.py b/release/scripts/vertexpaint_gradient.py
index 17eccb4f67f..d0b7de329df 100644
--- a/release/scripts/vertexpaint_gradient.py
+++ b/release/scripts/vertexpaint_gradient.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'VCol Gradient...'
-Blender: 245
+Blender: 241
Group: 'VertexPaint'
Tooltip: 'Click on the start and end grad points for the mesh for selected faces.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
# ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/release/scripts/vertexpaint_selfshadow_ao.py b/release/scripts/vertexpaint_selfshadow_ao.py
index 95ba7d2fb23..7a6f4f9176d 100644
--- a/release/scripts/vertexpaint_selfshadow_ao.py
+++ b/release/scripts/vertexpaint_selfshadow_ao.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Self Shadow VCols (AO)...'
-Blender: 245
+Blender: 241
Group: 'VertexPaint'
Tooltip: 'Generate Fake Ambient Occlusion with vertex colors.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__ = """\
diff --git a/release/scripts/vrml97_export.py b/release/scripts/vrml97_export.py
index eb3be80c99c..57ffd243bfc 100644
--- a/release/scripts/vrml97_export.py
+++ b/release/scripts/vrml97_export.py
@@ -10,7 +10,7 @@ Tooltip: 'Export to VRML97 file (.wrl)'
"""
__author__ = ("Rick Kimball", "Ken Miller", "Steve Matthews", "Bart")
-__url__ = ["blender", "blenderartists.org",
+__url__ = ["blender", "elysiun",
"Author's (Rick) homepage, http://kimballsoftware.com/blender",
"Author's (Bart) homepage, http://www.neeneenee.de/vrml"]
__email__ = ["Bart, bart:neeneenee*de"]
diff --git a/release/scripts/weightpaint_clean.py b/release/scripts/weightpaint_clean.py
index ba1896f011e..d6cddba5fa2 100644
--- a/release/scripts/weightpaint_clean.py
+++ b/release/scripts/weightpaint_clean.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Clean Weight...'
-Blender: 245
+Blender: 241
Group: 'WeightPaint'
Tooltip: 'Removed verts from groups below a weight limit.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__ = """\
diff --git a/release/scripts/weightpaint_gradient.py b/release/scripts/weightpaint_gradient.py
index eb7aff7eb89..a2bff999610 100644
--- a/release/scripts/weightpaint_gradient.py
+++ b/release/scripts/weightpaint_gradient.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Weight Gradient...'
-Blender: 245
+Blender: 241
Group: 'WeightPaint'
Tooltip: 'Click on the start and end grad points for the mesh for selected faces.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__=\
'''
diff --git a/release/scripts/weightpaint_grow_shrink.py b/release/scripts/weightpaint_grow_shrink.py
index 5c0f28685f9..5527f59e5ae 100644
--- a/release/scripts/weightpaint_grow_shrink.py
+++ b/release/scripts/weightpaint_grow_shrink.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Grow/Shrink Weight...'
-Blender: 245
+Blender: 241
Group: 'WeightPaint'
Tooltip: 'Grow/Shrink active vertex group.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__ = """\
diff --git a/release/scripts/weightpaint_normalize.py b/release/scripts/weightpaint_normalize.py
index 6059922eecb..1f6c3d201aa 100644
--- a/release/scripts/weightpaint_normalize.py
+++ b/release/scripts/weightpaint_normalize.py
@@ -1,13 +1,13 @@
#!BPY
"""
Name: 'Normalize/Scale Weight...'
-Blender: 245
+Blender: 241
Group: 'WeightPaint'
Tooltip: 'Normalize the weight of the active weightgroup.'
"""
-__author__ = "Campbell Barton aka ideasman42"
-__url__ = ["www.blender.org", "blenderartists.org", "www.python.org"]
+__author__ = ["Campbell Barton"]
+__url__ = ("blender", "elysiun", "http://members.iinet.net.au/~cpbarton/ideasman/")
__version__ = "0.1"
__bpydoc__ = """\
diff --git a/release/scripts/widgetwizard.py b/release/scripts/widgetwizard.py
index a7ddd68268a..8facf115d9e 100644
--- a/release/scripts/widgetwizard.py
+++ b/release/scripts/widgetwizard.py
@@ -8,7 +8,7 @@ Tip: 'Adds Widgets for Driven Shapes'
"""
__author__ = ["Johnny Matthews (guitargeek)"]
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "0.0.9 12/15/05"
__bpydoc__ = """\
diff --git a/release/scripts/xfig_export.py b/release/scripts/xfig_export.py
index ddc0dd4dcea..e8e0c0ded0e 100644
--- a/release/scripts/xfig_export.py
+++ b/release/scripts/xfig_export.py
@@ -7,7 +7,7 @@ Tooltip: 'Export selected mesh to xfig Format (.fig)'
"""
__author__ = 'Dino Ghilardi', 'Campbell Barton AKA Ideasman42'
-__url__ = ("blender", "blenderartists.org")
+__url__ = ("blender", "elysiun")
__version__ = "1.1"
__bpydoc__ = """\
diff --git a/release/scripts/xsi_export.py b/release/scripts/xsi_export.py
index d86d8cb82cf..62dc32cbc78 100644
--- a/release/scripts/xsi_export.py
+++ b/release/scripts/xsi_export.py
@@ -10,7 +10,7 @@ Tooltip: 'Export to a SoftImage XSI file'
__author__ = ("Elira")
__url__ = ["Author's site, http://www.creative-realms.net/~elira/blender.html",
-"SoftImage's site, www.softimage.com", "blenderartists.org"]
+"SoftImage's site, www.softimage.com", "elysiun"]
__email__ = ["scripts"]
__version__ = "2005/11/01"
diff --git a/source/blender/SConscript b/source/blender/SConscript
index 56a661238f8..09d30ddafd0 100644
--- a/source/blender/SConscript
+++ b/source/blender/SConscript
@@ -31,3 +31,6 @@ if env['WITH_BF_OPENEXR'] == 1:
if env['WITH_BF_QUICKTIME'] == 1:
SConscript (['quicktime/SConscript'])
+
+if env['WITH_BF_FREESTYLE'] == 1:
+ SConscript(['freestyle/SConscript'])
diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h
index 944a9081679..fbde861891d 100644
--- a/source/blender/blenkernel/BKE_particle.h
+++ b/source/blender/blenkernel/BKE_particle.h
@@ -231,7 +231,6 @@ struct ParticleSystemModifierData *psys_get_modifier(struct Object *ob, struct P
struct ParticleSettings *psys_new_settings(char *name, struct Main *main);
struct ParticleSettings *psys_copy_settings(struct ParticleSettings *part);
void psys_flush_settings(struct ParticleSettings *part, int event, int hair_recalc);
-void make_local_particlesettings(struct ParticleSettings *part);
struct LinkNode *psys_using_settings(struct ParticleSettings *part, int flush_update);
void psys_changed_type(struct ParticleSystem *psys);
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 8533175ad37..0d91f106ed7 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -733,7 +733,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_
ParticleSystemModifierData *psmd;
float ctime, pa_time, scale = 1.0f;
float tmat[4][4], mat[4][4], obrotmat[4][4], pamat[4][4], size=0.0;
- float (*obmat)[4];
+ float obmat[4][4], (*obmatlist)[4][4]=0;
float xvec[3] = {-1.0, 0.0, 0.0}, q[4];
int lay, a, b, k, step_nbr = 0, counter, hair = 0;
int totpart, totchild, totgroup=0, pa_num;
@@ -788,12 +788,17 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_
}
oblist= MEM_callocN(totgroup*sizeof(Object *), "dupgroup object list");
+ obmatlist= MEM_callocN(totgroup*sizeof(float)*4*4, "dupgroup obmat list");
go= part->dup_group->gobject.first;
- for(a=0; a<totgroup; a++, go=go->next)
+ for(a=0; a<totgroup; a++, go=go->next) {
oblist[a]=go->ob;
+ Mat4CpyMat4(obmatlist[a], go->ob->obmat);
+ }
}
- else
+ else {
ob = part->dup_ob;
+ Mat4CpyMat4(obmat, ob->obmat);
+ }
if(totchild==0 || part->draw & PART_DRAW_PARENT)
a=0;
@@ -829,10 +834,8 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_
b= a % totgroup;
ob = oblist[b];
- obmat= oblist[b]->obmat;
+ Mat4CpyMat4(obmat, obmatlist[b]);
}
- else
- obmat= ob->obmat;
for(k=0; k<=step_nbr; k++, counter++) {
if(hair) {
@@ -868,7 +871,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_
if(part->draw_as==PART_DRAW_GR && psys->part->draw & PART_DRAW_WHOLE_GR) {
for(go= part->dup_group->gobject.first, b=0; go; go= go->next, b++) {
- Mat4MulMat4(tmat, obmat, pamat);
+ Mat4MulMat4(tmat, obmatlist[b], pamat);
Mat4MulFloat3((float *)tmat, size*scale);
if(par_space_mat)
Mat4MulMat4(mat, tmat, par_space_mat);
@@ -909,6 +912,8 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Object *par, float par_
}
if(oblist)
MEM_freeN(oblist);
+ if(obmatlist)
+ MEM_freeN(obmatlist);
if(psys->lattice) {
end_latt_deform();
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index ff0b2e6db0a..b493f98b7fb 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -281,19 +281,15 @@ static Image *image_alloc(const char *name, short source, short type)
/* get the ibuf from an image cache, local use here only */
static ImBuf *image_get_ibuf(Image *ima, int index, int frame)
{
- /* this function is intended to be thread safe. with IMA_NO_INDEX this
- * should be OK, but when iterating over the list this is more tricky
- * */
if(index==IMA_NO_INDEX)
return ima->ibufs.first;
else {
ImBuf *ibuf;
-
+
index= IMA_MAKE_INDEX(frame, index);
for(ibuf= ima->ibufs.first; ibuf; ibuf= ibuf->next)
if(ibuf->index==index)
return ibuf;
-
return NULL;
}
}
@@ -321,16 +317,19 @@ static void image_assign_ibuf(Image *ima, ImBuf *ibuf, int index, int frame)
for(link= ima->ibufs.first; link; link= link->next)
if(link->index>=index)
break;
-
- ibuf->index= index;
-
- /* this function accepts link==NULL */
- BLI_insertlinkbefore(&ima->ibufs, link, ibuf);
-
/* now we don't want copies? */
- if(link && ibuf->index==link->index)
+ if(link && ibuf->index==link->index) {
+ ImBuf *prev= ibuf->prev;
image_remove_ibuf(ima, link);
+ link= prev;
+ }
+
+ /* this function accepts link==NULL */
+ BLI_insertlinkbefore(&ima->ibufs, link, ibuf);
+
+ ibuf->index= index;
}
+
}
/* checks if image was already loaded, then returns same image */
@@ -1502,12 +1501,12 @@ static ImBuf *image_load_sequence_file(Image *ima, ImageUser *iuser, int frame)
ibuf= NULL;
}
else {
- image_initialize_after_load(ima, ibuf);
image_assign_ibuf(ima, ibuf, 0, frame);
+ image_initialize_after_load(ima, ibuf);
}
#else
- image_initialize_after_load(ima, ibuf);
image_assign_ibuf(ima, ibuf, 0, frame);
+ image_initialize_after_load(ima, ibuf);
#endif
}
else
@@ -1543,9 +1542,8 @@ static ImBuf *image_load_sequence_multilayer(Image *ima, ImageUser *iuser, int f
// if(oldrr) printf("freed previous result %p\n", oldrr);
if(oldrr) RE_FreeRenderResult(oldrr);
}
- else {
+ else
ima->rr= oldrr;
- }
}
if(ima->rr) {
@@ -1560,8 +1558,8 @@ static ImBuf *image_load_sequence_multilayer(Image *ima, ImageUser *iuser, int f
ibuf->mall= IB_rectfloat;
ibuf->channels= rpass->channels;
- image_initialize_after_load(ima, ibuf);
image_assign_ibuf(ima, ibuf, iuser->multi_index, frame);
+ image_initialize_after_load(ima, ibuf);
}
// else printf("pass not found\n");
@@ -1607,8 +1605,8 @@ static ImBuf *image_load_movie_file(Image *ima, ImageUser *iuser, int frame)
ibuf = IMB_anim_absolute(ima->anim, fra);
if(ibuf) {
- image_initialize_after_load(ima, ibuf);
image_assign_ibuf(ima, ibuf, 0, frame);
+ image_initialize_after_load(ima, ibuf);
}
else
ima->ok= 0;
@@ -1627,7 +1625,6 @@ static ImBuf *image_load_image_file(Image *ima, ImageUser *iuser, int cfra)
{
struct ImBuf *ibuf;
char str[FILE_MAX];
- int assign = 0;
/* always ensure clean ima */
image_free_buffers(ima);
@@ -1660,8 +1657,8 @@ static ImBuf *image_load_image_file(Image *ima, ImageUser *iuser, int cfra)
ibuf= NULL;
}
else {
+ image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
image_initialize_after_load(ima, ibuf);
- assign= 1;
/* check if the image is a font image... */
detectBitmapFont(ibuf);
@@ -1677,9 +1674,6 @@ static ImBuf *image_load_image_file(Image *ima, ImageUser *iuser, int cfra)
else
ima->ok= 0;
- if(assign)
- image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
-
if(iuser)
iuser->ok= ima->ok;
@@ -1703,13 +1697,12 @@ static ImBuf *image_get_ibuf_multilayer(Image *ima, ImageUser *iuser)
if(rpass) {
ibuf= IMB_allocImBuf(ima->rr->rectx, ima->rr->recty, 32, 0, 0);
+ image_assign_ibuf(ima, ibuf, iuser?iuser->multi_index:IMA_NO_INDEX, 0);
image_initialize_after_load(ima, ibuf);
ibuf->rect_float= rpass->rect;
ibuf->flags |= IB_rectfloat;
ibuf->channels= rpass->channels;
-
- image_assign_ibuf(ima, ibuf, iuser?iuser->multi_index:IMA_NO_INDEX, 0);
}
}
@@ -1788,171 +1781,118 @@ static ImBuf *image_get_render_result(Image *ima, ImageUser *iuser)
return NULL;
}
-static ImBuf *image_get_ibuf_threadsafe(Image *ima, ImageUser *iuser, int *frame_r, int *index_r)
+/* Checks optional ImageUser and verifies/creates ImBuf. */
+/* returns ibuf */
+ImBuf *BKE_image_get_ibuf(Image *ima, ImageUser *iuser)
{
- ImBuf *ibuf = NULL;
- int frame = 0, index = 0;
+ ImBuf *ibuf= NULL;
+ float color[] = {0, 0, 0, 1};
- /* see if we already have an appropriate ibuf, with image source and type */
+ /* quick reject tests */
+ if(ima==NULL)
+ return NULL;
+ if(iuser) {
+ if(iuser->ok==0)
+ return NULL;
+ }
+ else if(ima->ok==0)
+ return NULL;
+
+ BLI_lock_thread(LOCK_IMAGE);
+
+ /* handle image source and types */
if(ima->source==IMA_SRC_MOVIE) {
- frame= iuser?iuser->framenr:ima->lastframe;
+ /* source is from single file, use flipbook to store ibuf */
+ int frame= iuser?iuser->framenr:ima->lastframe;
+
ibuf= image_get_ibuf(ima, 0, frame);
+ if(ibuf==NULL)
+ ibuf= image_load_movie_file(ima, iuser, frame);
}
else if(ima->source==IMA_SRC_SEQUENCE) {
+
if(ima->type==IMA_TYPE_IMAGE) {
- frame= iuser?iuser->framenr:ima->lastframe;
+ /* regular files, ibufs in flipbook, allows saving */
+ int frame= iuser?iuser->framenr:ima->lastframe;
+
ibuf= image_get_ibuf(ima, 0, frame);
+ if(ibuf==NULL)
+ ibuf= image_load_sequence_file(ima, iuser, frame);
+ else
+ BLI_strncpy(ima->name, ibuf->name, sizeof(ima->name));
}
- else if(ima->type==IMA_TYPE_MULTILAYER) {
- frame= iuser?iuser->framenr:ima->lastframe;
- index= iuser?iuser->multi_index:IMA_NO_INDEX;
+ /* no else; on load the ima type can change */
+ if(ima->type==IMA_TYPE_MULTILAYER) {
+ /* only 1 layer/pass stored in imbufs, no exrhandle anim storage, no saving */
+ int frame= iuser?iuser->framenr:ima->lastframe;
+ int index= iuser?iuser->multi_index:IMA_NO_INDEX;
+
ibuf= image_get_ibuf(ima, index, frame);
+ if(G.rt) printf("seq multi fra %d id %d ibuf %p %s\n", frame, index, ibuf, ima->id.name);
+ if(ibuf==NULL)
+ ibuf= image_load_sequence_multilayer(ima, iuser, frame);
+ else
+ BLI_strncpy(ima->name, ibuf->name, sizeof(ima->name));
}
+
}
else if(ima->source==IMA_SRC_FILE) {
- if(ima->type==IMA_TYPE_IMAGE)
+
+ if(ima->type==IMA_TYPE_IMAGE) {
ibuf= image_get_ibuf(ima, IMA_NO_INDEX, 0);
- else if(ima->type==IMA_TYPE_MULTILAYER)
+ if(ibuf==NULL)
+ ibuf= image_load_image_file(ima, iuser, G.scene->r.cfra); /* cfra only for '#', this global is OK */
+ }
+ /* no else; on load the ima type can change */
+ if(ima->type==IMA_TYPE_MULTILAYER) {
+ /* keeps render result, stores ibufs in listbase, allows saving */
ibuf= image_get_ibuf(ima, iuser?iuser->multi_index:IMA_NO_INDEX, 0);
+ if(ibuf==NULL)
+ ibuf= image_get_ibuf_multilayer(ima, iuser);
+ }
+
}
else if(ima->source == IMA_SRC_GENERATED) {
+ /* generated is: ibuf is allocated dynamically */
ibuf= image_get_ibuf(ima, IMA_NO_INDEX, 0);
+
+ if(ibuf==NULL) {
+ if(ima->type==IMA_TYPE_VERSE) {
+ /* todo */
+ }
+ else { /* always fall back to IMA_TYPE_UV_TEST */
+ /* UV testgrid or black or solid etc */
+ if(ima->gen_x==0) ima->gen_x= 256;
+ if(ima->gen_y==0) ima->gen_y= 256;
+ ibuf= add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 0, ima->gen_type, color);
+ image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
+ ima->ok= IMA_OK_LOADED;
+ }
+ }
}
else if(ima->source == IMA_SRC_VIEWER) {
if(ima->type==IMA_TYPE_R_RESULT) {
- /* always verify entirely, not that this shouldn't happen
- * during render anyway */
+ /* always verify entirely */
+ ibuf= image_get_render_result(ima, iuser);
}
else if(ima->type==IMA_TYPE_COMPOSITE) {
- frame= iuser?iuser->framenr:0;
+ int frame= iuser?iuser->framenr:0;
+
+ /* Composite Viewer, all handled in compositor */
ibuf= image_get_ibuf(ima, 0, frame);
- }
- }
-
- *frame_r = frame;
- *index_r = index;
-
- return ibuf;
-}
-
-/* Checks optional ImageUser and verifies/creates ImBuf. */
-/* returns ibuf */
-ImBuf *BKE_image_get_ibuf(Image *ima, ImageUser *iuser)
-{
- ImBuf *ibuf= NULL;
- float color[] = {0, 0, 0, 1};
- int frame= 0, index= 0;
-
- /* This function is intended to be thread-safe. It postpones the mutex lock
- * until it needs to load the image, if the image is already there it
- * should just get the pointer and return. The reason is that a lot of mutex
- * locks appears to be very slow on certain multicore macs, causing a render
- * with image textures to actually slow down as more threads are used.
- *
- * Note that all the image loading functions should also make sure they do
- * things in a threadsafe way for image_get_ibuf_threadsafe to work correct.
- * That means, the last two steps must be, 1) add the ibuf to the list and
- * 2) set ima/iuser->ok to 0 to IMA_OK_LOADED */
-
- /* quick reject tests */
- if(ima==NULL)
- return NULL;
- if(iuser) {
- if(iuser->ok==0)
- return NULL;
- }
- else if(ima->ok==0)
- return NULL;
-
- /* try to get the ibuf without locking */
- ibuf= image_get_ibuf_threadsafe(ima, iuser, &frame, &index);
-
- if(ibuf == NULL) {
- /* couldn't get ibuf and image is not ok, so let's lock and try to
- * load the image */
- BLI_lock_thread(LOCK_IMAGE);
-
- /* need to check ok flag and loading ibuf again, because the situation
- * might have changed in the meantime */
- if(iuser) {
- if(iuser->ok==0) {
- BLI_unlock_thread(LOCK_IMAGE);
- return NULL;
- }
- }
- else if(ima->ok==0) {
- BLI_unlock_thread(LOCK_IMAGE);
- return NULL;
- }
-
- ibuf= image_get_ibuf_threadsafe(ima, iuser, &frame, &index);
-
- if(ibuf == NULL) {
- /* we are sure we have to load the ibuf, using source and type */
- if(ima->source==IMA_SRC_MOVIE) {
- /* source is from single file, use flipbook to store ibuf */
- ibuf= image_load_movie_file(ima, iuser, frame);
- }
- else if(ima->source==IMA_SRC_SEQUENCE) {
- if(ima->type==IMA_TYPE_IMAGE) {
- /* regular files, ibufs in flipbook, allows saving */
- ibuf= image_load_sequence_file(ima, iuser, frame);
- }
- /* no else; on load the ima type can change */
- if(ima->type==IMA_TYPE_MULTILAYER) {
- /* only 1 layer/pass stored in imbufs, no exrhandle anim storage, no saving */
- ibuf= image_load_sequence_multilayer(ima, iuser, frame);
- }
-
- if(ibuf)
- BLI_strncpy(ima->name, ibuf->name, sizeof(ima->name));
- }
- else if(ima->source==IMA_SRC_FILE) {
-
- if(ima->type==IMA_TYPE_IMAGE)
- ibuf= image_load_image_file(ima, iuser, G.scene->r.cfra); /* cfra only for '#', this global is OK */
- /* no else; on load the ima type can change */
- if(ima->type==IMA_TYPE_MULTILAYER)
- /* keeps render result, stores ibufs in listbase, allows saving */
- ibuf= image_get_ibuf_multilayer(ima, iuser);
-
- }
- else if(ima->source == IMA_SRC_GENERATED) {
- /* generated is: ibuf is allocated dynamically */
- if(ima->type==IMA_TYPE_VERSE) {
- /* todo */
- }
- else { /* always fall back to IMA_TYPE_UV_TEST */
- /* UV testgrid or black or solid etc */
- if(ima->gen_x==0) ima->gen_x= 256;
- if(ima->gen_y==0) ima->gen_y= 256;
- ibuf= add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 0, ima->gen_type, color);
- image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
- ima->ok= IMA_OK_LOADED;
- }
- }
- else if(ima->source == IMA_SRC_VIEWER) {
- if(ima->type==IMA_TYPE_R_RESULT) {
- /* always verify entirely */
- ibuf= image_get_render_result(ima, iuser);
- }
- else if(ima->type==IMA_TYPE_COMPOSITE) {
- /* Composite Viewer, all handled in compositor */
- /* fake ibuf, will be filled in compositor */
- ibuf= IMB_allocImBuf(256, 256, 32, IB_rect, 0);
- image_assign_ibuf(ima, ibuf, 0, frame);
- }
+ if(ibuf==NULL) {
+ /* fake ibuf, will be filled in compositor */
+ ibuf= IMB_allocImBuf(256, 256, 32, IB_rect, 0);
+ image_assign_ibuf(ima, ibuf, 0, frame);
}
}
-
- BLI_unlock_thread(LOCK_IMAGE);
}
- /* we assuming that if it is not rendering, it's also not multithreaded
- * (a somewhat weak assumption) */
if(G.rendering==0)
tag_image_time(ima);
+ BLI_unlock_thread(LOCK_IMAGE);
+
return ibuf;
}
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 5594a1dfaf7..88f0971ac1d 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -1215,7 +1215,6 @@ Object *copy_object(Object *ob)
void expand_local_object(Object *ob)
{
bActionStrip *strip;
- ParticleSystem *psys;
int a;
id_lib_extern((ID *)ob->action);
@@ -1229,8 +1228,7 @@ void expand_local_object(Object *ob)
for (strip=ob->nlastrips.first; strip; strip=strip->next) {
id_lib_extern((ID *)strip->act);
}
- for(psys=ob->particlesystem.first; psys; psys=psys->next)
- id_lib_extern((ID *)psys->part);
+
}
void make_local_object(Object *ob)
@@ -1373,7 +1371,7 @@ void object_make_proxy(Object *ob, Object *target, Object *gob)
ob->mat = MEM_dupallocN(target->mat);
for(i=0; i<target->totcol; i++) {
/* dont need to run test_object_materials since we know this object is new and not used elsewhere */
- id_us_plus((ID *)ob->mat[i]);
+ id_us_plus(ob->mat[i]);
}
}
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index fec3da752ff..d0152de3091 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -3016,7 +3016,7 @@ ParticleSettings *psys_copy_settings(ParticleSettings *part)
return partn;
}
-void make_local_particlesettings(ParticleSettings *part)
+void psys_make_local_settings(ParticleSettings *part)
{
Object *ob;
ParticleSettings *par;
diff --git a/source/blender/blenlib/BLI_winstuff.h b/source/blender/blenlib/BLI_winstuff.h
index 9c192ba8b09..54d70626dd5 100644
--- a/source/blender/blenlib/BLI_winstuff.h
+++ b/source/blender/blenlib/BLI_winstuff.h
@@ -110,8 +110,7 @@ void RegisterBlendExtension(char * str);
DIR *opendir (const char *path);
struct dirent *readdir(DIR *dp);
int closedir (DIR *dp);
-void get_default_root(char *root);
-int check_file_chars(char *filename);
+void get_default_root(char* root);
#endif /* __WINSTUFF_H__ */
diff --git a/source/blender/blenlib/intern/noise.c b/source/blender/blenlib/intern/noise.c
index 0bd30a69d05..a678c44d4bf 100644
--- a/source/blender/blenlib/intern/noise.c
+++ b/source/blender/blenlib/intern/noise.c
@@ -387,521 +387,55 @@ static char p[512+2]= {
float g[512+2][3]= {
- {0.33783, 0.715698, -0.611206},
- {-0.944031, -0.326599, -0.045624},
- {-0.101074, -0.416443, -0.903503},
- {0.799286, 0.49411, -0.341949},
- {-0.854645, 0.518036, 0.033936},
- {0.42514, -0.437866, -0.792114},
- {-0.358948, 0.597046, 0.717377},
- {-0.985413, 0.144714, 0.089294},
- {-0.601776, -0.33728, -0.723907},
- {-0.449921, 0.594513, 0.666382},
- {0.208313, -0.10791, 0.972076},
- {0.575317, 0.060425, 0.815643},
- {0.293365, -0.875702, -0.383453},
- {0.293762, 0.465759, 0.834686},
- {-0.846008, -0.233398, -0.47934},
- {-0.115814, 0.143036, -0.98291},
- {0.204681, -0.949036, -0.239532},
- {0.946716, -0.263947, 0.184326},
- {-0.235596, 0.573822, 0.784332},
- {0.203705, -0.372253, -0.905487},
- {0.756989, -0.651031, 0.055298},
- {0.497803, 0.814697, -0.297363},
- {-0.16214, 0.063995, -0.98468},
- {-0.329254, 0.834381, 0.441925},
- {0.703827, -0.527039, -0.476227},
- {0.956421, 0.266113, 0.119781},
- {0.480133, 0.482849, 0.7323},
- {-0.18631, 0.961212, -0.203125},
- {-0.748474, -0.656921, -0.090393},
- {-0.085052, -0.165253, 0.982544},
- {-0.76947, 0.628174, -0.115234},
- {0.383148, 0.537659, 0.751068},
- {0.616486, -0.668488, -0.415924},
- {-0.259979, -0.630005, 0.73175},
- {0.570953, -0.087952, 0.816223},
- {-0.458008, 0.023254, 0.888611},
- {-0.196167, 0.976563, -0.088287},
- {-0.263885, -0.69812, -0.665527},
- {0.437134, -0.892273, -0.112793},
- {-0.621674, -0.230438, 0.748566},
- {0.232422, 0.900574, -0.367249},
- {0.22229, -0.796143, 0.562744},
- {-0.665497, -0.73764, 0.11377},
- {0.670135, 0.704803, 0.232605},
- {0.895599, 0.429749, -0.114655},
- {-0.11557, -0.474243, 0.872742},
- {0.621826, 0.604004, -0.498444},
- {-0.832214, 0.012756, 0.55426},
- {-0.702484, 0.705994, -0.089661},
- {-0.692017, 0.649292, 0.315399},
- {-0.175995, -0.977997, 0.111877},
- {0.096954, -0.04953, 0.994019},
- {0.635284, -0.606689, -0.477783},
- {-0.261261, -0.607422, -0.750153},
- {0.983276, 0.165436, 0.075958},
- {-0.29837, 0.404083, -0.864655},
- {-0.638672, 0.507721, 0.578156},
- {0.388214, 0.412079, 0.824249},
- {0.556183, -0.208832, 0.804352},
- {0.778442, 0.562012, 0.27951},
- {-0.616577, 0.781921, -0.091522},
- {0.196289, 0.051056, 0.979187},
- {-0.121216, 0.207153, -0.970734},
- {-0.173401, -0.384735, 0.906555},
- {0.161499, -0.723236, -0.671387},
- {0.178497, -0.006226, -0.983887},
- {-0.126038, 0.15799, 0.97934},
- {0.830475, -0.024811, 0.556458},
- {-0.510132, -0.76944, 0.384247},
- {0.81424, 0.200104, -0.544891},
- {-0.112549, -0.393311, -0.912445},
- {0.56189, 0.152222, -0.813049},
- {0.198914, -0.254517, -0.946381},
- {-0.41217, 0.690979, -0.593811},
- {-0.407257, 0.324524, 0.853668},
- {-0.690186, 0.366119, -0.624115},
- {-0.428345, 0.844147, -0.322296},
- {-0.21228, -0.297546, -0.930756},
- {-0.273071, 0.516113, 0.811798},
- {0.928314, 0.371643, 0.007233},
- {0.785828, -0.479218, -0.390778},
- {-0.704895, 0.058929, 0.706818},
- {0.173248, 0.203583, 0.963562},
- {0.422211, -0.904297, -0.062469},
- {-0.363312, -0.182465, 0.913605},
- {0.254028, -0.552307, -0.793945},
- {-0.28891, -0.765747, -0.574554},
- {0.058319, 0.291382, 0.954803},
- {0.946136, -0.303925, 0.111267},
- {-0.078156, 0.443695, -0.892731},
- {0.182098, 0.89389, 0.409515},
- {-0.680298, -0.213318, 0.701141},
- {0.062469, 0.848389, -0.525635},
- {-0.72879, -0.641846, 0.238342},
- {-0.88089, 0.427673, 0.202637},
- {-0.532501, -0.21405, 0.818878},
- {0.948975, -0.305084, 0.07962},
- {0.925446, 0.374664, 0.055817},
- {0.820923, 0.565491, 0.079102},
- {0.25882, 0.099792, -0.960724},
- {-0.294617, 0.910522, 0.289978},
- {0.137115, 0.320038, -0.937408},
- {-0.908386, 0.345276, -0.235718},
- {-0.936218, 0.138763, 0.322754},
- {0.366577, 0.925934, -0.090637},
- {0.309296, -0.686829, -0.657684},
- {0.66983, 0.024445, 0.742065},
- {-0.917999, -0.059113, -0.392059},
- {0.365509, 0.462158, -0.807922},
- {0.083374, 0.996399, -0.014801},
- {0.593842, 0.253143, -0.763672},
- {0.974976, -0.165466, 0.148285},
- {0.918976, 0.137299, 0.369537},
- {0.294952, 0.694977, 0.655731},
- {0.943085, 0.152618, -0.295319},
- {0.58783, -0.598236, 0.544495},
- {0.203796, 0.678223, 0.705994},
- {-0.478821, -0.661011, 0.577667},
- {0.719055, -0.1698, -0.673828},
- {-0.132172, -0.965332, 0.225006},
- {-0.981873, -0.14502, 0.121979},
- {0.763458, 0.579742, 0.284546},
- {-0.893188, 0.079681, 0.442474},
- {-0.795776, -0.523804, 0.303802},
- {0.734955, 0.67804, -0.007446},
- {0.15506, 0.986267, -0.056183},
- {0.258026, 0.571503, -0.778931},
- {-0.681549, -0.702087, -0.206116},
- {-0.96286, -0.177185, 0.203613},
- {-0.470978, -0.515106, 0.716095},
- {-0.740326, 0.57135, 0.354095},
- {-0.56012, -0.824982, -0.074982},
- {-0.507874, 0.753204, 0.417969},
- {-0.503113, 0.038147, 0.863342},
- {0.594025, 0.673553, -0.439758},
- {-0.119873, -0.005524, -0.992737},
- {0.098267, -0.213776, 0.971893},
- {-0.615631, 0.643951, 0.454163},
- {0.896851, -0.441071, 0.032166},
- {-0.555023, 0.750763, -0.358093},
- {0.398773, 0.304688, 0.864929},
- {-0.722961, 0.303589, 0.620544},
- {-0.63559, -0.621948, -0.457306},
- {-0.293243, 0.072327, 0.953278},
- {-0.491638, 0.661041, -0.566772},
- {-0.304199, -0.572083, -0.761688},
- {0.908081, -0.398956, 0.127014},
- {-0.523621, -0.549683, -0.650848},
- {-0.932922, -0.19986, 0.299408},
- {0.099426, 0.140869, 0.984985},
- {-0.020325, -0.999756, -0.002319},
- {0.952667, 0.280853, -0.11615},
- {-0.971893, 0.082581, 0.220337},
- {0.65921, 0.705292, -0.260651},
- {0.733063, -0.175537, 0.657043},
- {-0.555206, 0.429504, -0.712189},
- {0.400421, -0.89859, 0.179352},
- {0.750885, -0.19696, 0.630341},
- {0.785675, -0.569336, 0.241821},
- {-0.058899, -0.464111, 0.883789},
- {0.129608, -0.94519, 0.299622},
- {-0.357819, 0.907654, 0.219238},
- {-0.842133, -0.439117, -0.312927},
- {-0.313477, 0.84433, 0.434479},
- {-0.241211, 0.053253, 0.968994},
- {0.063873, 0.823273, 0.563965},
- {0.476288, 0.862152, -0.172516},
- {0.620941, -0.298126, 0.724915},
- {0.25238, -0.749359, -0.612122},
- {-0.577545, 0.386566, 0.718994},
- {-0.406342, -0.737976, 0.538696},
- {0.04718, 0.556305, 0.82959},
- {-0.802856, 0.587463, 0.101166},
- {-0.707733, -0.705963, 0.026428},
- {0.374908, 0.68457, 0.625092},
- {0.472137, 0.208405, -0.856506},
- {-0.703064, -0.581085, -0.409821},
- {-0.417206, -0.736328, 0.532623},
- {-0.447876, -0.20285, -0.870728},
- {0.086945, -0.990417, 0.107086},
- {0.183685, 0.018341, -0.982788},
- {0.560638, -0.428864, 0.708282},
- {0.296722, -0.952576, -0.0672},
- {0.135773, 0.990265, 0.030243},
- {-0.068787, 0.654724, 0.752686},
- {0.762604, -0.551758, 0.337585},
- {-0.819611, -0.407684, 0.402466},
- {-0.727844, -0.55072, -0.408539},
- {-0.855774, -0.480011, 0.19281},
- {0.693176, -0.079285, 0.716339},
- {0.226013, 0.650116, -0.725433},
- {0.246704, 0.953369, -0.173553},
- {-0.970398, -0.239227, -0.03244},
- {0.136383, -0.394318, 0.908752},
- {0.813232, 0.558167, 0.164368},
- {0.40451, 0.549042, -0.731323},
- {-0.380249, -0.566711, 0.730865},
- {0.022156, 0.932739, 0.359741},
- {0.00824, 0.996552, -0.082306},
- {0.956635, -0.065338, -0.283722},
- {-0.743561, 0.008209, 0.668579},
- {-0.859589, -0.509674, 0.035767},
- {-0.852234, 0.363678, -0.375977},
- {-0.201965, -0.970795, -0.12915},
- {0.313477, 0.947327, 0.06546},
- {-0.254028, -0.528259, 0.81015},
- {0.628052, 0.601105, 0.49411},
- {-0.494385, 0.868378, 0.037933},
- {0.275635, -0.086426, 0.957336},
- {-0.197937, 0.468903, -0.860748},
- {0.895599, 0.399384, 0.195801},
- {0.560791, 0.825012, -0.069214},
- {0.304199, -0.849487, 0.43103},
- {0.096375, 0.93576, 0.339111},
- {-0.051422, 0.408966, -0.911072},
- {0.330444, 0.942841, -0.042389},
- {-0.452362, -0.786407, 0.420563},
- {0.134308, -0.933472, -0.332489},
- {0.80191, -0.566711, -0.188934},
- {-0.987946, -0.105988, 0.112518},
- {-0.24408, 0.892242, -0.379791},
- {-0.920502, 0.229095, -0.316376},
- {0.7789, 0.325958, 0.535706},
- {-0.912872, 0.185211, -0.36377},
- {-0.184784, 0.565369, -0.803833},
- {-0.018463, 0.119537, 0.992615},
- {-0.259247, -0.935608, 0.239532},
- {-0.82373, -0.449127, -0.345947},
- {-0.433105, 0.659515, 0.614349},
- {-0.822754, 0.378845, -0.423676},
- {0.687195, -0.674835, -0.26889},
- {-0.246582, -0.800842, 0.545715},
- {-0.729187, -0.207794, 0.651978},
- {0.653534, -0.610443, -0.447388},
- {0.492584, -0.023346, 0.869934},
- {0.609039, 0.009094, -0.79306},
- {0.962494, -0.271088, -0.00885},
- {0.2659, -0.004913, 0.963959},
- {0.651245, 0.553619, -0.518951},
- {0.280548, -0.84314, 0.458618},
- {-0.175293, -0.983215, 0.049805},
- {0.035339, -0.979919, 0.196045},
- {-0.982941, 0.164307, -0.082245},
- {0.233734, -0.97226, -0.005005},
- {-0.747253, -0.611328, 0.260437},
- {0.645599, 0.592773, 0.481384},
- {0.117706, -0.949524, -0.29068},
- {-0.535004, -0.791901, -0.294312},
- {-0.627167, -0.214447, 0.748718},
- {-0.047974, -0.813477, -0.57959},
- {-0.175537, 0.477264, -0.860992},
- {0.738556, -0.414246, -0.53183},
- {0.562561, -0.704071, 0.433289},
- {-0.754944, 0.64801, -0.100586},
- {0.114716, 0.044525, -0.992371},
- {0.966003, 0.244873, -0.082764},
- {0.33783, 0.715698, -0.611206},
- {-0.944031, -0.326599, -0.045624},
- {-0.101074, -0.416443, -0.903503},
- {0.799286, 0.49411, -0.341949},
- {-0.854645, 0.518036, 0.033936},
- {0.42514, -0.437866, -0.792114},
- {-0.358948, 0.597046, 0.717377},
- {-0.985413, 0.144714, 0.089294},
- {-0.601776, -0.33728, -0.723907},
- {-0.449921, 0.594513, 0.666382},
- {0.208313, -0.10791, 0.972076},
- {0.575317, 0.060425, 0.815643},
- {0.293365, -0.875702, -0.383453},
- {0.293762, 0.465759, 0.834686},
- {-0.846008, -0.233398, -0.47934},
- {-0.115814, 0.143036, -0.98291},
- {0.204681, -0.949036, -0.239532},
- {0.946716, -0.263947, 0.184326},
- {-0.235596, 0.573822, 0.784332},
- {0.203705, -0.372253, -0.905487},
- {0.756989, -0.651031, 0.055298},
- {0.497803, 0.814697, -0.297363},
- {-0.16214, 0.063995, -0.98468},
- {-0.329254, 0.834381, 0.441925},
- {0.703827, -0.527039, -0.476227},
- {0.956421, 0.266113, 0.119781},
- {0.480133, 0.482849, 0.7323},
- {-0.18631, 0.961212, -0.203125},
- {-0.748474, -0.656921, -0.090393},
- {-0.085052, -0.165253, 0.982544},
- {-0.76947, 0.628174, -0.115234},
- {0.383148, 0.537659, 0.751068},
- {0.616486, -0.668488, -0.415924},
- {-0.259979, -0.630005, 0.73175},
- {0.570953, -0.087952, 0.816223},
- {-0.458008, 0.023254, 0.888611},
- {-0.196167, 0.976563, -0.088287},
- {-0.263885, -0.69812, -0.665527},
- {0.437134, -0.892273, -0.112793},
- {-0.621674, -0.230438, 0.748566},
- {0.232422, 0.900574, -0.367249},
- {0.22229, -0.796143, 0.562744},
- {-0.665497, -0.73764, 0.11377},
- {0.670135, 0.704803, 0.232605},
- {0.895599, 0.429749, -0.114655},
- {-0.11557, -0.474243, 0.872742},
- {0.621826, 0.604004, -0.498444},
- {-0.832214, 0.012756, 0.55426},
- {-0.702484, 0.705994, -0.089661},
- {-0.692017, 0.649292, 0.315399},
- {-0.175995, -0.977997, 0.111877},
- {0.096954, -0.04953, 0.994019},
- {0.635284, -0.606689, -0.477783},
- {-0.261261, -0.607422, -0.750153},
- {0.983276, 0.165436, 0.075958},
- {-0.29837, 0.404083, -0.864655},
- {-0.638672, 0.507721, 0.578156},
- {0.388214, 0.412079, 0.824249},
- {0.556183, -0.208832, 0.804352},
- {0.778442, 0.562012, 0.27951},
- {-0.616577, 0.781921, -0.091522},
- {0.196289, 0.051056, 0.979187},
- {-0.121216, 0.207153, -0.970734},
- {-0.173401, -0.384735, 0.906555},
- {0.161499, -0.723236, -0.671387},
- {0.178497, -0.006226, -0.983887},
- {-0.126038, 0.15799, 0.97934},
- {0.830475, -0.024811, 0.556458},
- {-0.510132, -0.76944, 0.384247},
- {0.81424, 0.200104, -0.544891},
- {-0.112549, -0.393311, -0.912445},
- {0.56189, 0.152222, -0.813049},
- {0.198914, -0.254517, -0.946381},
- {-0.41217, 0.690979, -0.593811},
- {-0.407257, 0.324524, 0.853668},
- {-0.690186, 0.366119, -0.624115},
- {-0.428345, 0.844147, -0.322296},
- {-0.21228, -0.297546, -0.930756},
- {-0.273071, 0.516113, 0.811798},
- {0.928314, 0.371643, 0.007233},
- {0.785828, -0.479218, -0.390778},
- {-0.704895, 0.058929, 0.706818},
- {0.173248, 0.203583, 0.963562},
- {0.422211, -0.904297, -0.062469},
- {-0.363312, -0.182465, 0.913605},
- {0.254028, -0.552307, -0.793945},
- {-0.28891, -0.765747, -0.574554},
- {0.058319, 0.291382, 0.954803},
- {0.946136, -0.303925, 0.111267},
- {-0.078156, 0.443695, -0.892731},
- {0.182098, 0.89389, 0.409515},
- {-0.680298, -0.213318, 0.701141},
- {0.062469, 0.848389, -0.525635},
- {-0.72879, -0.641846, 0.238342},
- {-0.88089, 0.427673, 0.202637},
- {-0.532501, -0.21405, 0.818878},
- {0.948975, -0.305084, 0.07962},
- {0.925446, 0.374664, 0.055817},
- {0.820923, 0.565491, 0.079102},
- {0.25882, 0.099792, -0.960724},
- {-0.294617, 0.910522, 0.289978},
- {0.137115, 0.320038, -0.937408},
- {-0.908386, 0.345276, -0.235718},
- {-0.936218, 0.138763, 0.322754},
- {0.366577, 0.925934, -0.090637},
- {0.309296, -0.686829, -0.657684},
- {0.66983, 0.024445, 0.742065},
- {-0.917999, -0.059113, -0.392059},
- {0.365509, 0.462158, -0.807922},
- {0.083374, 0.996399, -0.014801},
- {0.593842, 0.253143, -0.763672},
- {0.974976, -0.165466, 0.148285},
- {0.918976, 0.137299, 0.369537},
- {0.294952, 0.694977, 0.655731},
- {0.943085, 0.152618, -0.295319},
- {0.58783, -0.598236, 0.544495},
- {0.203796, 0.678223, 0.705994},
- {-0.478821, -0.661011, 0.577667},
- {0.719055, -0.1698, -0.673828},
- {-0.132172, -0.965332, 0.225006},
- {-0.981873, -0.14502, 0.121979},
- {0.763458, 0.579742, 0.284546},
- {-0.893188, 0.079681, 0.442474},
- {-0.795776, -0.523804, 0.303802},
- {0.734955, 0.67804, -0.007446},
- {0.15506, 0.986267, -0.056183},
- {0.258026, 0.571503, -0.778931},
- {-0.681549, -0.702087, -0.206116},
- {-0.96286, -0.177185, 0.203613},
- {-0.470978, -0.515106, 0.716095},
- {-0.740326, 0.57135, 0.354095},
- {-0.56012, -0.824982, -0.074982},
- {-0.507874, 0.753204, 0.417969},
- {-0.503113, 0.038147, 0.863342},
- {0.594025, 0.673553, -0.439758},
- {-0.119873, -0.005524, -0.992737},
- {0.098267, -0.213776, 0.971893},
- {-0.615631, 0.643951, 0.454163},
- {0.896851, -0.441071, 0.032166},
- {-0.555023, 0.750763, -0.358093},
- {0.398773, 0.304688, 0.864929},
- {-0.722961, 0.303589, 0.620544},
- {-0.63559, -0.621948, -0.457306},
- {-0.293243, 0.072327, 0.953278},
- {-0.491638, 0.661041, -0.566772},
- {-0.304199, -0.572083, -0.761688},
- {0.908081, -0.398956, 0.127014},
- {-0.523621, -0.549683, -0.650848},
- {-0.932922, -0.19986, 0.299408},
- {0.099426, 0.140869, 0.984985},
- {-0.020325, -0.999756, -0.002319},
- {0.952667, 0.280853, -0.11615},
- {-0.971893, 0.082581, 0.220337},
- {0.65921, 0.705292, -0.260651},
- {0.733063, -0.175537, 0.657043},
- {-0.555206, 0.429504, -0.712189},
- {0.400421, -0.89859, 0.179352},
- {0.750885, -0.19696, 0.630341},
- {0.785675, -0.569336, 0.241821},
- {-0.058899, -0.464111, 0.883789},
- {0.129608, -0.94519, 0.299622},
- {-0.357819, 0.907654, 0.219238},
- {-0.842133, -0.439117, -0.312927},
- {-0.313477, 0.84433, 0.434479},
- {-0.241211, 0.053253, 0.968994},
- {0.063873, 0.823273, 0.563965},
- {0.476288, 0.862152, -0.172516},
- {0.620941, -0.298126, 0.724915},
- {0.25238, -0.749359, -0.612122},
- {-0.577545, 0.386566, 0.718994},
- {-0.406342, -0.737976, 0.538696},
- {0.04718, 0.556305, 0.82959},
- {-0.802856, 0.587463, 0.101166},
- {-0.707733, -0.705963, 0.026428},
- {0.374908, 0.68457, 0.625092},
- {0.472137, 0.208405, -0.856506},
- {-0.703064, -0.581085, -0.409821},
- {-0.417206, -0.736328, 0.532623},
- {-0.447876, -0.20285, -0.870728},
- {0.086945, -0.990417, 0.107086},
- {0.183685, 0.018341, -0.982788},
- {0.560638, -0.428864, 0.708282},
- {0.296722, -0.952576, -0.0672},
- {0.135773, 0.990265, 0.030243},
- {-0.068787, 0.654724, 0.752686},
- {0.762604, -0.551758, 0.337585},
- {-0.819611, -0.407684, 0.402466},
- {-0.727844, -0.55072, -0.408539},
- {-0.855774, -0.480011, 0.19281},
- {0.693176, -0.079285, 0.716339},
- {0.226013, 0.650116, -0.725433},
- {0.246704, 0.953369, -0.173553},
- {-0.970398, -0.239227, -0.03244},
- {0.136383, -0.394318, 0.908752},
- {0.813232, 0.558167, 0.164368},
- {0.40451, 0.549042, -0.731323},
- {-0.380249, -0.566711, 0.730865},
- {0.022156, 0.932739, 0.359741},
- {0.00824, 0.996552, -0.082306},
- {0.956635, -0.065338, -0.283722},
- {-0.743561, 0.008209, 0.668579},
- {-0.859589, -0.509674, 0.035767},
- {-0.852234, 0.363678, -0.375977},
- {-0.201965, -0.970795, -0.12915},
- {0.313477, 0.947327, 0.06546},
- {-0.254028, -0.528259, 0.81015},
- {0.628052, 0.601105, 0.49411},
- {-0.494385, 0.868378, 0.037933},
- {0.275635, -0.086426, 0.957336},
- {-0.197937, 0.468903, -0.860748},
- {0.895599, 0.399384, 0.195801},
- {0.560791, 0.825012, -0.069214},
- {0.304199, -0.849487, 0.43103},
- {0.096375, 0.93576, 0.339111},
- {-0.051422, 0.408966, -0.911072},
- {0.330444, 0.942841, -0.042389},
- {-0.452362, -0.786407, 0.420563},
- {0.134308, -0.933472, -0.332489},
- {0.80191, -0.566711, -0.188934},
- {-0.987946, -0.105988, 0.112518},
- {-0.24408, 0.892242, -0.379791},
- {-0.920502, 0.229095, -0.316376},
- {0.7789, 0.325958, 0.535706},
- {-0.912872, 0.185211, -0.36377},
- {-0.184784, 0.565369, -0.803833},
- {-0.018463, 0.119537, 0.992615},
- {-0.259247, -0.935608, 0.239532},
- {-0.82373, -0.449127, -0.345947},
- {-0.433105, 0.659515, 0.614349},
- {-0.822754, 0.378845, -0.423676},
- {0.687195, -0.674835, -0.26889},
- {-0.246582, -0.800842, 0.545715},
- {-0.729187, -0.207794, 0.651978},
- {0.653534, -0.610443, -0.447388},
- {0.492584, -0.023346, 0.869934},
- {0.609039, 0.009094, -0.79306},
- {0.962494, -0.271088, -0.00885},
- {0.2659, -0.004913, 0.963959},
- {0.651245, 0.553619, -0.518951},
- {0.280548, -0.84314, 0.458618},
- {-0.175293, -0.983215, 0.049805},
- {0.035339, -0.979919, 0.196045},
- {-0.982941, 0.164307, -0.082245},
- {0.233734, -0.97226, -0.005005},
- {-0.747253, -0.611328, 0.260437},
- {0.645599, 0.592773, 0.481384},
- {0.117706, -0.949524, -0.29068},
- {-0.535004, -0.791901, -0.294312},
- {-0.627167, -0.214447, 0.748718},
- {-0.047974, -0.813477, -0.57959},
- {-0.175537, 0.477264, -0.860992},
- {0.738556, -0.414246, -0.53183},
- {0.562561, -0.704071, 0.433289},
- {-0.754944, 0.64801, -0.100586},
- {0.114716, 0.044525, -0.992371},
- {0.966003, 0.244873, -0.082764},
- {0.33783, 0.715698, -0.611206},
- {-0.944031, -0.326599, -0.045624},
-};
+0.33783,0.715698,-0.611206,-0.944031,-0.326599,-0.045624,-0.101074,-0.416443,-0.903503,0.799286,0.49411,-0.341949,-0.854645,0.518036,0.033936,0.42514,-0.437866,-0.792114,-0.358948,0.597046,0.717377,-0.985413,0.144714,0.089294,-0.601776,-0.33728,-0.723907,-0.449921,0.594513,0.666382,0.208313,-0.10791,
+0.972076,0.575317,0.060425,0.815643,0.293365,-0.875702,-0.383453,0.293762,0.465759,0.834686,-0.846008,-0.233398,-0.47934,-0.115814,0.143036,-0.98291,0.204681,-0.949036,-0.239532,0.946716,-0.263947,0.184326,-0.235596,0.573822,0.784332,0.203705,-0.372253,-0.905487,0.756989,-0.651031,0.055298,0.497803,
+0.814697,-0.297363,-0.16214,0.063995,-0.98468,-0.329254,0.834381,0.441925,0.703827,-0.527039,-0.476227,0.956421,0.266113,0.119781,0.480133,0.482849,0.7323,-0.18631,0.961212,-0.203125,-0.748474,-0.656921,-0.090393,-0.085052,-0.165253,0.982544,-0.76947,0.628174,-0.115234,0.383148,0.537659,0.751068,
+0.616486,-0.668488,-0.415924,-0.259979,-0.630005,0.73175,0.570953,-0.087952,0.816223,-0.458008,0.023254,0.888611,-0.196167,0.976563,-0.088287,-0.263885,-0.69812,-0.665527,0.437134,-0.892273,-0.112793,-0.621674,-0.230438,0.748566,0.232422,0.900574,-0.367249,0.22229,-0.796143,0.562744,-0.665497,-0.73764,
+0.11377,0.670135,0.704803,0.232605,0.895599,0.429749,-0.114655,-0.11557,-0.474243,0.872742,0.621826,0.604004,-0.498444,-0.832214,0.012756,0.55426,-0.702484,0.705994,-0.089661,-0.692017,0.649292,0.315399,-0.175995,-0.977997,0.111877,0.096954,-0.04953,0.994019,0.635284,-0.606689,-0.477783,-0.261261,
+-0.607422,-0.750153,0.983276,0.165436,0.075958,-0.29837,0.404083,-0.864655,-0.638672,0.507721,0.578156,0.388214,0.412079,0.824249,0.556183,-0.208832,0.804352,0.778442,0.562012,0.27951,-0.616577,0.781921,-0.091522,0.196289,0.051056,0.979187,-0.121216,0.207153,-0.970734,-0.173401,-0.384735,0.906555,
+0.161499,-0.723236,-0.671387,0.178497,-0.006226,-0.983887,-0.126038,0.15799,0.97934,0.830475,-0.024811,0.556458,-0.510132,-0.76944,0.384247,0.81424,0.200104,-0.544891,-0.112549,-0.393311,-0.912445,0.56189,0.152222,-0.813049,0.198914,-0.254517,-0.946381,-0.41217,0.690979,-0.593811,-0.407257,0.324524,
+0.853668,-0.690186,0.366119,-0.624115,-0.428345,0.844147,-0.322296,-0.21228,-0.297546,-0.930756,-0.273071,0.516113,0.811798,0.928314,0.371643,0.007233,0.785828,-0.479218,-0.390778,-0.704895,0.058929,0.706818,0.173248,0.203583,0.963562,0.422211,-0.904297,-0.062469,-0.363312,-0.182465,0.913605,0.254028,
+-0.552307,-0.793945,-0.28891,-0.765747,-0.574554,0.058319,0.291382,0.954803,0.946136,-0.303925,0.111267,-0.078156,0.443695,-0.892731,0.182098,0.89389,0.409515,-0.680298,-0.213318,0.701141,0.062469,0.848389,-0.525635,-0.72879,-0.641846,0.238342,-0.88089,0.427673,0.202637,-0.532501,-0.21405,0.818878,
+0.948975,-0.305084,0.07962,0.925446,0.374664,0.055817,0.820923,0.565491,0.079102,0.25882,0.099792,-0.960724,-0.294617,0.910522,0.289978,0.137115,0.320038,-0.937408,-0.908386,0.345276,-0.235718,-0.936218,0.138763,0.322754,0.366577,0.925934,-0.090637,0.309296,-0.686829,-0.657684,0.66983,0.024445,
+0.742065,-0.917999,-0.059113,-0.392059,0.365509,0.462158,-0.807922,0.083374,0.996399,-0.014801,0.593842,0.253143,-0.763672,0.974976,-0.165466,0.148285,0.918976,0.137299,0.369537,0.294952,0.694977,0.655731,0.943085,0.152618,-0.295319,0.58783,-0.598236,0.544495,0.203796,0.678223,0.705994,-0.478821,
+-0.661011,0.577667,0.719055,-0.1698,-0.673828,-0.132172,-0.965332,0.225006,-0.981873,-0.14502,0.121979,0.763458,0.579742,0.284546,-0.893188,0.079681,0.442474,-0.795776,-0.523804,0.303802,0.734955,0.67804,-0.007446,0.15506,0.986267,-0.056183,0.258026,0.571503,-0.778931,-0.681549,-0.702087,-0.206116,
+-0.96286,-0.177185,0.203613,-0.470978,-0.515106,0.716095,-0.740326,0.57135,0.354095,-0.56012,-0.824982,-0.074982,-0.507874,0.753204,0.417969,-0.503113,0.038147,0.863342,0.594025,0.673553,-0.439758,-0.119873,-0.005524,-0.992737,0.098267,-0.213776,0.971893,-0.615631,0.643951,0.454163,0.896851,-0.441071,
+0.032166,-0.555023,0.750763,-0.358093,0.398773,0.304688,0.864929,-0.722961,0.303589,0.620544,-0.63559,-0.621948,-0.457306,-0.293243,0.072327,0.953278,-0.491638,0.661041,-0.566772,-0.304199,-0.572083,-0.761688,0.908081,-0.398956,0.127014,-0.523621,-0.549683,-0.650848,-0.932922,-0.19986,0.299408,0.099426,
+0.140869,0.984985,-0.020325,-0.999756,-0.002319,0.952667,0.280853,-0.11615,-0.971893,0.082581,0.220337,0.65921,0.705292,-0.260651,0.733063,-0.175537,0.657043,-0.555206,0.429504,-0.712189,0.400421,-0.89859,0.179352,0.750885,-0.19696,0.630341,0.785675,-0.569336,0.241821,-0.058899,-0.464111,0.883789,
+0.129608,-0.94519,0.299622,-0.357819,0.907654,0.219238,-0.842133,-0.439117,-0.312927,-0.313477,0.84433,0.434479,-0.241211,0.053253,0.968994,0.063873,0.823273,0.563965,0.476288,0.862152,-0.172516,0.620941,-0.298126,0.724915,0.25238,-0.749359,-0.612122,-0.577545,0.386566,0.718994,-0.406342,-0.737976,
+0.538696,0.04718,0.556305,0.82959,-0.802856,0.587463,0.101166,-0.707733,-0.705963,0.026428,0.374908,0.68457,0.625092,0.472137,0.208405,-0.856506,-0.703064,-0.581085,-0.409821,-0.417206,-0.736328,0.532623,-0.447876,-0.20285,-0.870728,0.086945,-0.990417,0.107086,0.183685,0.018341,-0.982788,0.560638,
+-0.428864,0.708282,0.296722,-0.952576,-0.0672,0.135773,0.990265,0.030243,-0.068787,0.654724,0.752686,0.762604,-0.551758,0.337585,-0.819611,-0.407684,0.402466,-0.727844,-0.55072,-0.408539,-0.855774,-0.480011,0.19281,0.693176,-0.079285,0.716339,0.226013,0.650116,-0.725433,0.246704,0.953369,-0.173553,
+-0.970398,-0.239227,-0.03244,0.136383,-0.394318,0.908752,0.813232,0.558167,0.164368,0.40451,0.549042,-0.731323,-0.380249,-0.566711,0.730865,0.022156,0.932739,0.359741,0.00824,0.996552,-0.082306,0.956635,-0.065338,-0.283722,-0.743561,0.008209,0.668579,-0.859589,-0.509674,0.035767,-0.852234,0.363678,
+-0.375977,-0.201965,-0.970795,-0.12915,0.313477,0.947327,0.06546,-0.254028,-0.528259,0.81015,0.628052,0.601105,0.49411,-0.494385,0.868378,0.037933,0.275635,-0.086426,0.957336,-0.197937,0.468903,-0.860748,0.895599,0.399384,0.195801,0.560791,0.825012,-0.069214,0.304199,-0.849487,0.43103,0.096375,
+0.93576,0.339111,-0.051422,0.408966,-0.911072,0.330444,0.942841,-0.042389,-0.452362,-0.786407,0.420563,0.134308,-0.933472,-0.332489,0.80191,-0.566711,-0.188934,-0.987946,-0.105988,0.112518,-0.24408,0.892242,-0.379791,-0.920502,0.229095,-0.316376,0.7789,0.325958,0.535706,-0.912872,0.185211,-0.36377,
+-0.184784,0.565369,-0.803833,-0.018463,0.119537,0.992615,-0.259247,-0.935608,0.239532,-0.82373,-0.449127,-0.345947,-0.433105,0.659515,0.614349,-0.822754,0.378845,-0.423676,0.687195,-0.674835,-0.26889,-0.246582,-0.800842,0.545715,-0.729187,-0.207794,0.651978,0.653534,-0.610443,-0.447388,0.492584,-0.023346,
+0.869934,0.609039,0.009094,-0.79306,0.962494,-0.271088,-0.00885,0.2659,-0.004913,0.963959,0.651245,0.553619,-0.518951,0.280548,-0.84314,0.458618,-0.175293,-0.983215,0.049805,0.035339,-0.979919,0.196045,-0.982941,0.164307,-0.082245,0.233734,-0.97226,-0.005005,-0.747253,-0.611328,0.260437,0.645599,
+0.592773,0.481384,0.117706,-0.949524,-0.29068,-0.535004,-0.791901,-0.294312,-0.627167,-0.214447,0.748718,-0.047974,-0.813477,-0.57959,-0.175537,0.477264,-0.860992,0.738556,-0.414246,-0.53183,0.562561,-0.704071,0.433289,-0.754944,0.64801,-0.100586,0.114716,0.044525,-0.992371,0.966003,0.244873,-0.082764,
+0.33783,0.715698,-0.611206,-0.944031,-0.326599,-0.045624,-0.101074,-0.416443,-0.903503,0.799286,0.49411,-0.341949,-0.854645,0.518036,0.033936,0.42514,-0.437866,-0.792114,-0.358948,0.597046,0.717377,-0.985413,0.144714,0.089294,-0.601776,-0.33728,-0.723907,-0.449921,0.594513,0.666382,0.208313,-0.10791,
+0.972076,0.575317,0.060425,0.815643,0.293365,-0.875702,-0.383453,0.293762,0.465759,0.834686,-0.846008,-0.233398,-0.47934,-0.115814,0.143036,-0.98291,0.204681,-0.949036,-0.239532,0.946716,-0.263947,0.184326,-0.235596,0.573822,0.784332,0.203705,-0.372253,-0.905487,0.756989,-0.651031,0.055298,0.497803,
+0.814697,-0.297363,-0.16214,0.063995,-0.98468,-0.329254,0.834381,0.441925,0.703827,-0.527039,-0.476227,0.956421,0.266113,0.119781,0.480133,0.482849,0.7323,-0.18631,0.961212,-0.203125,-0.748474,-0.656921,-0.090393,-0.085052,-0.165253,0.982544,-0.76947,0.628174,-0.115234,0.383148,0.537659,0.751068,
+0.616486,-0.668488,-0.415924,-0.259979,-0.630005,0.73175,0.570953,-0.087952,0.816223,-0.458008,0.023254,0.888611,-0.196167,0.976563,-0.088287,-0.263885,-0.69812,-0.665527,0.437134,-0.892273,-0.112793,-0.621674,-0.230438,0.748566,0.232422,0.900574,-0.367249,0.22229,-0.796143,0.562744,-0.665497,-0.73764,
+0.11377,0.670135,0.704803,0.232605,0.895599,0.429749,-0.114655,-0.11557,-0.474243,0.872742,0.621826,0.604004,-0.498444,-0.832214,0.012756,0.55426,-0.702484,0.705994,-0.089661,-0.692017,0.649292,0.315399,-0.175995,-0.977997,0.111877,0.096954,-0.04953,0.994019,0.635284,-0.606689,-0.477783,-0.261261,
+-0.607422,-0.750153,0.983276,0.165436,0.075958,-0.29837,0.404083,-0.864655,-0.638672,0.507721,0.578156,0.388214,0.412079,0.824249,0.556183,-0.208832,0.804352,0.778442,0.562012,0.27951,-0.616577,0.781921,-0.091522,0.196289,0.051056,0.979187,-0.121216,0.207153,-0.970734,-0.173401,-0.384735,0.906555,
+0.161499,-0.723236,-0.671387,0.178497,-0.006226,-0.983887,-0.126038,0.15799,0.97934,0.830475,-0.024811,0.556458,-0.510132,-0.76944,0.384247,0.81424,0.200104,-0.544891,-0.112549,-0.393311,-0.912445,0.56189,0.152222,-0.813049,0.198914,-0.254517,-0.946381,-0.41217,0.690979,-0.593811,-0.407257,0.324524,
+0.853668,-0.690186,0.366119,-0.624115,-0.428345,0.844147,-0.322296,-0.21228,-0.297546,-0.930756,-0.273071,0.516113,0.811798,0.928314,0.371643,0.007233,0.785828,-0.479218,-0.390778,-0.704895,0.058929,0.706818,0.173248,0.203583,0.963562,0.422211,-0.904297,-0.062469,-0.363312,-0.182465,0.913605,0.254028,
+-0.552307,-0.793945,-0.28891,-0.765747,-0.574554,0.058319,0.291382,0.954803,0.946136,-0.303925,0.111267,-0.078156,0.443695,-0.892731,0.182098,0.89389,0.409515,-0.680298,-0.213318,0.701141,0.062469,0.848389,-0.525635,-0.72879,-0.641846,0.238342,-0.88089,0.427673,0.202637,-0.532501,-0.21405,0.818878,
+0.948975,-0.305084,0.07962,0.925446,0.374664,0.055817,0.820923,0.565491,0.079102,0.25882,0.099792,-0.960724,-0.294617,0.910522,0.289978,0.137115,0.320038,-0.937408,-0.908386,0.345276,-0.235718,-0.936218,0.138763,0.322754,0.366577,0.925934,-0.090637,0.309296,-0.686829,-0.657684,0.66983,0.024445,
+0.742065,-0.917999,-0.059113,-0.392059,0.365509,0.462158,-0.807922,0.083374,0.996399,-0.014801,0.593842,0.253143,-0.763672,0.974976,-0.165466,0.148285,0.918976,0.137299,0.369537,0.294952,0.694977,0.655731,0.943085,0.152618,-0.295319,0.58783,-0.598236,0.544495,0.203796,0.678223,0.705994,-0.478821,
+-0.661011,0.577667,0.719055,-0.1698,-0.673828,-0.132172,-0.965332,0.225006,-0.981873,-0.14502,0.121979,0.763458,0.579742,0.284546,-0.893188,0.079681,0.442474,-0.795776,-0.523804,0.303802,0.734955,0.67804,-0.007446,0.15506,0.986267,-0.056183,0.258026,0.571503,-0.778931,-0.681549,-0.702087,-0.206116,
+-0.96286,-0.177185,0.203613,-0.470978,-0.515106,0.716095,-0.740326,0.57135,0.354095,-0.56012,-0.824982,-0.074982,-0.507874,0.753204,0.417969,-0.503113,0.038147,0.863342,0.594025,0.673553,-0.439758,-0.119873,-0.005524,-0.992737,0.098267,-0.213776,0.971893,-0.615631,0.643951,0.454163,0.896851,-0.441071,
+0.032166,-0.555023,0.750763,-0.358093,0.398773,0.304688,0.864929,-0.722961,0.303589,0.620544,-0.63559,-0.621948,-0.457306,-0.293243,0.072327,0.953278,-0.491638,0.661041,-0.566772,-0.304199,-0.572083,-0.761688,0.908081,-0.398956,0.127014,-0.523621,-0.549683,-0.650848,-0.932922,-0.19986,0.299408,0.099426,
+0.140869,0.984985,-0.020325,-0.999756,-0.002319,0.952667,0.280853,-0.11615,-0.971893,0.082581,0.220337,0.65921,0.705292,-0.260651,0.733063,-0.175537,0.657043,-0.555206,0.429504,-0.712189,0.400421,-0.89859,0.179352,0.750885,-0.19696,0.630341,0.785675,-0.569336,0.241821,-0.058899,-0.464111,0.883789,
+0.129608,-0.94519,0.299622,-0.357819,0.907654,0.219238,-0.842133,-0.439117,-0.312927,-0.313477,0.84433,0.434479,-0.241211,0.053253,0.968994,0.063873,0.823273,0.563965,0.476288,0.862152,-0.172516,0.620941,-0.298126,0.724915,0.25238,-0.749359,-0.612122,-0.577545,0.386566,0.718994,-0.406342,-0.737976,
+0.538696,0.04718,0.556305,0.82959,-0.802856,0.587463,0.101166,-0.707733,-0.705963,0.026428,0.374908,0.68457,0.625092,0.472137,0.208405,-0.856506,-0.703064,-0.581085,-0.409821,-0.417206,-0.736328,0.532623,-0.447876,-0.20285,-0.870728,0.086945,-0.990417,0.107086,0.183685,0.018341,-0.982788,0.560638,
+-0.428864,0.708282,0.296722,-0.952576,-0.0672,0.135773,0.990265,0.030243,-0.068787,0.654724,0.752686,0.762604,-0.551758,0.337585,-0.819611,-0.407684,0.402466,-0.727844,-0.55072,-0.408539,-0.855774,-0.480011,0.19281,0.693176,-0.079285,0.716339,0.226013,0.650116,-0.725433,0.246704,0.953369,-0.173553,
+-0.970398,-0.239227,-0.03244,0.136383,-0.394318,0.908752,0.813232,0.558167,0.164368,0.40451,0.549042,-0.731323,-0.380249,-0.566711,0.730865,0.022156,0.932739,0.359741,0.00824,0.996552,-0.082306,0.956635,-0.065338,-0.283722,-0.743561,0.008209,0.668579,-0.859589,-0.509674,0.035767,-0.852234,0.363678,
+-0.375977,-0.201965,-0.970795,-0.12915,0.313477,0.947327,0.06546,-0.254028,-0.528259,0.81015,0.628052,0.601105,0.49411,-0.494385,0.868378,0.037933,0.275635,-0.086426,0.957336,-0.197937,0.468903,-0.860748,0.895599,0.399384,0.195801,0.560791,0.825012,-0.069214,0.304199,-0.849487,0.43103,0.096375,
+0.93576,0.339111,-0.051422,0.408966,-0.911072,0.330444,0.942841,-0.042389,-0.452362,-0.786407,0.420563,0.134308,-0.933472,-0.332489,0.80191,-0.566711,-0.188934,-0.987946,-0.105988,0.112518,-0.24408,0.892242,-0.379791,-0.920502,0.229095,-0.316376,0.7789,0.325958,0.535706,-0.912872,0.185211,-0.36377,
+-0.184784,0.565369,-0.803833,-0.018463,0.119537,0.992615,-0.259247,-0.935608,0.239532,-0.82373,-0.449127,-0.345947,-0.433105,0.659515,0.614349,-0.822754,0.378845,-0.423676,0.687195,-0.674835,-0.26889,-0.246582,-0.800842,0.545715,-0.729187,-0.207794,0.651978,0.653534,-0.610443,-0.447388,0.492584,-0.023346,
+0.869934,0.609039,0.009094,-0.79306,0.962494,-0.271088,-0.00885,0.2659,-0.004913,0.963959,0.651245,0.553619,-0.518951,0.280548,-0.84314,0.458618,-0.175293,-0.983215,0.049805,0.035339,-0.979919,0.196045,-0.982941,0.164307,-0.082245,0.233734,-0.97226,-0.005005,-0.747253,-0.611328,0.260437,0.645599,
+0.592773,0.481384,0.117706,-0.949524,-0.29068,-0.535004,-0.791901,-0.294312,-0.627167,-0.214447,0.748718,-0.047974,-0.813477,-0.57959,-0.175537,0.477264,-0.860992,0.738556,-0.414246,-0.53183,0.562561,-0.704071,0.433289,-0.754944,0.64801,-0.100586,0.114716,0.044525,-0.992371,0.966003,0.244873,-0.082764,
+0.33783,0.715698,-0.611206,-0.944031,-0.326599,-0.045624};
diff --git a/source/blender/blenlib/intern/psfont.c b/source/blender/blenlib/intern/psfont.c
index 8cdc0601c7e..441484fc88b 100644
--- a/source/blender/blenlib/intern/psfont.c
+++ b/source/blender/blenlib/intern/psfont.c
@@ -256,290 +256,290 @@ static int sp;
static int savesplines = 1;
static pschar ISOcharlist[NASCII] = {
- {"/space", 040, 0},
- {"/exclam", 041, 0},
- {"/quotedbl", 042, 0},
- {"/numbersign", 043, 0},
- {"/dollar", 044, 0},
- {"/percent", 045, 0},
- {"/ampersand", 046, 0},
- {"/quoteright", 047, 0},
-
- {"/parenleft", 050, 0},
- {"/parenright", 051, 0},
- {"/asterisk", 052, 0},
- {"/plus", 053, 0},
- {"/comma", 054, 0},
- {"/hyphen", 055, 0},
- {"/period", 056, 0},
- {"/slash", 057, 0},
-
- {"/zero", 060, 0},
- {"/one", 061, 0},
- {"/two", 062, 0},
- {"/three", 063, 0},
- {"/four", 064, 0},
- {"/five", 065, 0},
- {"/six", 066, 0},
- {"/seven", 067, 0},
-
- {"/eight", 070, 0},
- {"/nine", 071, 0},
- {"/colon", 072, 0},
- {"/semicolon", 073, 0},
- {"/less", 074, 0},
- {"/equal", 075, 0},
- {"/greater", 076, 0},
- {"/question", 077, 0},
-
- {"/at", 0100, 0},
- {"/A", 0101, 0},
- {"/B", 0102, 0},
- {"/C", 0103, 0},
- {"/D", 0104, 0},
- {"/E", 0105, 0},
- {"/F", 0106, 0},
- {"/G", 0107, 0},
-
- {"/H", 0110, 0},
- {"/I", 0111, 0},
- {"/J", 0112, 0},
- {"/K", 0113, 0},
- {"/L", 0114, 0},
- {"/M", 0115, 0},
- {"/N", 0116, 0},
- {"/O", 0117, 0},
-
- {"/P", 0120, 0},
- {"/Q", 0121, 0},
- {"/R", 0122, 0},
- {"/S", 0123, 0},
- {"/T", 0124, 0},
- {"/U", 0125, 0},
- {"/V", 0126, 0},
- {"/W", 0127, 0},
-
- {"/X", 0130, 0},
- {"/Y", 0131, 0},
- {"/Z", 0132, 0},
- {"/bracketleft", 0133, 0},
- {"/backslash", 0134, 0},
- {"/bracketright", 0135, 0},
- {"/asciicircum", 0136, 0},
- {"/underscore", 0137, 0},
-
- {"/quoteleft", 0140, 0},
- {"/a", 0141, 0},
- {"/b", 0142, 0},
- {"/c", 0143, 0},
- {"/d", 0144, 0},
- {"/e", 0145, 0},
- {"/f", 0146, 0},
- {"/g", 0147, 0},
-
- {"/h", 0150, 0},
- {"/i", 0151, 0},
- {"/j", 0152, 0},
- {"/k", 0153, 0},
- {"/l", 0154, 0},
- {"/m", 0155, 0},
- {"/n", 0156, 0},
- {"/o", 0157, 0},
-
- {"/p", 0160, 0},
- {"/q", 0161, 0},
- {"/r", 0162, 0},
- {"/s", 0163, 0},
- {"/t", 0164, 0},
- {"/u", 0165, 0},
- {"/v", 0166, 0},
- {"/w", 0167, 0},
-
- {"/x", 0170, 0},
- {"/y", 0171, 0},
- {"/z", 0172, 0},
- {"/braceleft", 0173, 0},
- {"/bar", 0174, 0},
- {"/braceright", 0175, 0},
- {"/asciitilde", 0176, 0},
- {"/", 0177, 0},
+ "/space", 040, 0,
+ "/exclam", 041, 0,
+ "/quotedbl", 042, 0,
+ "/numbersign", 043, 0,
+ "/dollar", 044, 0,
+ "/percent", 045, 0,
+ "/ampersand", 046, 0,
+ "/quoteright", 047, 0,
+
+ "/parenleft", 050, 0,
+ "/parenright", 051, 0,
+ "/asterisk", 052, 0,
+ "/plus", 053, 0,
+ "/comma", 054, 0,
+ "/hyphen", 055, 0,
+ "/period", 056, 0,
+ "/slash", 057, 0,
+
+ "/zero", 060, 0,
+ "/one", 061, 0,
+ "/two", 062, 0,
+ "/three", 063, 0,
+ "/four", 064, 0,
+ "/five", 065, 0,
+ "/six", 066, 0,
+ "/seven", 067, 0,
+
+ "/eight", 070, 0,
+ "/nine", 071, 0,
+ "/colon", 072, 0,
+ "/semicolon", 073, 0,
+ "/less", 074, 0,
+ "/equal", 075, 0,
+ "/greater", 076, 0,
+ "/question", 077, 0,
+
+ "/at", 0100, 0,
+ "/A", 0101, 0,
+ "/B", 0102, 0,
+ "/C", 0103, 0,
+ "/D", 0104, 0,
+ "/E", 0105, 0,
+ "/F", 0106, 0,
+ "/G", 0107, 0,
+
+ "/H", 0110, 0,
+ "/I", 0111, 0,
+ "/J", 0112, 0,
+ "/K", 0113, 0,
+ "/L", 0114, 0,
+ "/M", 0115, 0,
+ "/N", 0116, 0,
+ "/O", 0117, 0,
+
+ "/P", 0120, 0,
+ "/Q", 0121, 0,
+ "/R", 0122, 0,
+ "/S", 0123, 0,
+ "/T", 0124, 0,
+ "/U", 0125, 0,
+ "/V", 0126, 0,
+ "/W", 0127, 0,
+
+ "/X", 0130, 0,
+ "/Y", 0131, 0,
+ "/Z", 0132, 0,
+ "/bracketleft", 0133, 0,
+ "/backslash", 0134, 0,
+ "/bracketright", 0135, 0,
+ "/asciicircum", 0136, 0,
+ "/underscore", 0137, 0,
+
+ "/quoteleft", 0140, 0,
+ "/a", 0141, 0,
+ "/b", 0142, 0,
+ "/c", 0143, 0,
+ "/d", 0144, 0,
+ "/e", 0145, 0,
+ "/f", 0146, 0,
+ "/g", 0147, 0,
+
+ "/h", 0150, 0,
+ "/i", 0151, 0,
+ "/j", 0152, 0,
+ "/k", 0153, 0,
+ "/l", 0154, 0,
+ "/m", 0155, 0,
+ "/n", 0156, 0,
+ "/o", 0157, 0,
+
+ "/p", 0160, 0,
+ "/q", 0161, 0,
+ "/r", 0162, 0,
+ "/s", 0163, 0,
+ "/t", 0164, 0,
+ "/u", 0165, 0,
+ "/v", 0166, 0,
+ "/w", 0167, 0,
+
+ "/x", 0170, 0,
+ "/y", 0171, 0,
+ "/z", 0172, 0,
+ "/braceleft", 0173, 0,
+ "/bar", 0174, 0,
+ "/braceright", 0175, 0,
+ "/asciitilde", 0176, 0,
+ "/", 0177, 0,
/* nonstandard defs */
- {"/quotedblleft", 0200, 0},
- {"/quotedblright", 0201, 0},
- {"/quotedblbase", 0202, 0},
- {"/quotesinglbase", 0203, 0},
- {"/guilsinglleft", 0204, 0},
- {"/guilsinglright", 0205, 0},
- {"/endash", 0206, 0},
- {"/dagger", 0207, 0},
-
- {"/daggerdbl", 0210, 0},
- {"/trademark", 0211, 0},
- {"/bullet", 0212, 0},
- {"/perthousand", 0213, 0},
- {"/Lslash", 0214, 0},
- {"/OE", 0215, 0},
- {"/lslash", 0216, 0},
- {"/oe", 0217, 0},
+ "/quotedblleft", 0200, 0,
+ "/quotedblright", 0201, 0,
+ "/quotedblbase", 0202, 0,
+ "/quotesinglbase", 0203, 0,
+ "/guilsinglleft", 0204, 0,
+ "/guilsinglright", 0205, 0,
+ "/endash", 0206, 0,
+ "/dagger", 0207, 0,
+
+ "/daggerdbl", 0210, 0,
+ "/trademark", 0211, 0,
+ "/bullet", 0212, 0,
+ "/perthousand", 0213, 0,
+ "/Lslash", 0214, 0,
+ "/OE", 0215, 0,
+ "/lslash", 0216, 0,
+ "/oe", 0217, 0,
/* endnonstandard defs */
- {"/dotlessi", 0220, 0},
- {"/grave", 0221, 0},
- {"/acute", 0222, 0},
- {"/circumflex", 0223, 0},
- {"/tilde", 0224, 0},
- {"/", 0225, 0},
- {"/breve", 0226, 0},
- {"/dotaccent", 0227, 0},
-
- {"/", 0230, 0},
- {"/", 0231, 0},
- {"/ring", 0232, 0},
- {"/", 0233, 0},
- {"/", 0234, 0},
- {"/hungarumlaut", 0235, 0},
- {"/ogonek", 0236, 0},
- {"/caron", 0237, 0},
-
- {"/", 0240, 0},
- {"/exclamdown", 0241, 0},
- {"/cent", 0242, 0},
- {"/sterling", 0243, 0},
- {"/florin", 0244, 0},
- {"/yen", 0245, 0},
- {"/brokenbar", 0246, 0},
- {"/section", 0247, 0},
-
- {"/dieresis", 0250, 0},
- {"/copyright", 0251, 0},
- {"/ordfeminine", 0252, 0},
- {"/guillemotleft", 0253, 0},
- {"/logicalnot", 0254, 0},
- {"/hyphen", 0255, 0},
- {"/registered", 0256, 0},
- {"/macron", 0257, 0},
-
- {"/degree", 0260, 0},
- {"/plusminus", 0261, 0},
- {"/twosuperior", 0262, 0},
- {"/threesuperior", 0263, 0},
- {"/acute", 0264, 0},
- {"/mu", 0265, 0},
- {"/paragraph", 0266, 0},
- {"/periodcentered", 0267, 0},
-
- {"/cedilla", 0270, 0},
- {"/onesuperior", 0271, 0},
- {"/ordmasculine", 0272, 0},
- {"/guillemotright", 0273, 0},
- {"/onequarter", 0274, 0},
- {"/onehalf", 0275, 0},
- {"/threequarters", 0276, 0},
- {"/questiondown", 0277, 0},
-
- {"/Agrave", 0300, 0},
- {"/Aacute", 0301, 0},
- {"/Acircumflex", 0302, 0},
- {"/Atilde", 0303, 0},
- {"/Adieresis", 0304, 0},
- {"/Aring", 0305, 0},
- {"/AE", 0306, 0},
- {"/Ccedilla", 0307, 0},
-
- {"/Egrave", 0310, 0},
- {"/Eacute", 0311, 0},
- {"/Ecircumflex", 0312, 0},
- {"/Edieresis", 0313, 0},
- {"/Igrave", 0314, 0},
- {"/Iacute", 0315, 0},
- {"/Icircumflex", 0316, 0},
- {"/Idieresis", 0317, 0},
-
- {"/Eth", 0320, 0},
- {"/Ntilde", 0321, 0},
- {"/Ograve", 0322, 0},
- {"/Oacute", 0323, 0},
- {"/Ocircumflex", 0324, 0},
- {"/Otilde", 0325, 0},
- {"/Odieresis", 0326, 0},
- {"/multiply", 0327, 0},
-
- {"/Oslash", 0330, 0},
- {"/Ugrave", 0331, 0},
- {"/Uacute", 0332, 0},
- {"/Ucircumflex",0333, 0},
- {"/Udieresis", 0334, 0},
- {"/Yacute", 0335, 0},
- {"/Thorn", 0336, 0},
- {"/germandbls", 0337, 0},
-
- {"/agrave", 0340, 0},
- {"/aacute", 0341, 0},
- {"/acircumflex",0342, 0},
- {"/atilde", 0343, 0},
- {"/adieresis", 0344, 0},
- {"/aring", 0345, 0},
- {"/ae", 0346, 0},
- {"/ccedilla", 0347, 0},
-
- {"/egrave", 0350, 0},
- {"/eacute", 0351, 0},
- {"/ecircumflex", 0352, 0},
- {"/edieresis", 0353, 0},
- {"/igrave", 0354, 0},
- {"/iacute", 0355, 0},
- {"/icircumflex", 0356, 0},
- {"/idieresis", 0357, 0},
-
- {"/eth", 0360, 0},
- {"/ntilde", 0361, 0},
- {"/ograve", 0362, 0},
- {"/oacute", 0363, 0},
- {"/ocircumflex",0364, 0},
- {"/otilde", 0365, 0},
- {"/odieresis", 0366, 0},
- {"/divide", 0367, 0},
-
- {"/oslash", 0370, 0},
- {"/ugrave", 0371, 0},
- {"/uacute", 0372, 0},
- {"/ucircumflex",0373, 0},
- {"/udieresis", 0374, 0},
- {"/yacute", 0375, 0},
- {"/thorn", 0376, 0},
- {"/ydieresis", 0377, 0},
+ "/dotlessi", 0220, 0,
+ "/grave", 0221, 0,
+ "/acute", 0222, 0,
+ "/circumflex", 0223, 0,
+ "/tilde", 0224, 0,
+ "/", 0225, 0,
+ "/breve", 0226, 0,
+ "/dotaccent", 0227, 0,
+
+ "/", 0230, 0,
+ "/", 0231, 0,
+ "/ring", 0232, 0,
+ "/", 0233, 0,
+ "/", 0234, 0,
+ "/hungarumlaut", 0235, 0,
+ "/ogonek", 0236, 0,
+ "/caron", 0237, 0,
+
+ "/", 0240, 0,
+ "/exclamdown", 0241, 0,
+ "/cent", 0242, 0,
+ "/sterling", 0243, 0,
+ "/florin", 0244, 0,
+ "/yen", 0245, 0,
+ "/brokenbar", 0246, 0,
+ "/section", 0247, 0,
+
+ "/dieresis", 0250, 0,
+ "/copyright", 0251, 0,
+ "/ordfeminine", 0252, 0,
+ "/guillemotleft", 0253, 0,
+ "/logicalnot", 0254, 0,
+ "/hyphen", 0255, 0,
+ "/registered", 0256, 0,
+ "/macron", 0257, 0,
+
+ "/degree", 0260, 0,
+ "/plusminus", 0261, 0,
+ "/twosuperior", 0262, 0,
+ "/threesuperior", 0263, 0,
+ "/acute", 0264, 0,
+ "/mu", 0265, 0,
+ "/paragraph", 0266, 0,
+ "/periodcentered", 0267, 0,
+
+ "/cedilla", 0270, 0,
+ "/onesuperior", 0271, 0,
+ "/ordmasculine", 0272, 0,
+ "/guillemotright", 0273, 0,
+ "/onequarter", 0274, 0,
+ "/onehalf", 0275, 0,
+ "/threequarters", 0276, 0,
+ "/questiondown", 0277, 0,
+
+ "/Agrave", 0300, 0,
+ "/Aacute", 0301, 0,
+ "/Acircumflex", 0302, 0,
+ "/Atilde", 0303, 0,
+ "/Adieresis", 0304, 0,
+ "/Aring", 0305, 0,
+ "/AE", 0306, 0,
+ "/Ccedilla", 0307, 0,
+
+ "/Egrave", 0310, 0,
+ "/Eacute", 0311, 0,
+ "/Ecircumflex", 0312, 0,
+ "/Edieresis", 0313, 0,
+ "/Igrave", 0314, 0,
+ "/Iacute", 0315, 0,
+ "/Icircumflex", 0316, 0,
+ "/Idieresis", 0317, 0,
+
+ "/Eth", 0320, 0,
+ "/Ntilde", 0321, 0,
+ "/Ograve", 0322, 0,
+ "/Oacute", 0323, 0,
+ "/Ocircumflex", 0324, 0,
+ "/Otilde", 0325, 0,
+ "/Odieresis", 0326, 0,
+ "/multiply", 0327, 0,
+
+ "/Oslash", 0330, 0,
+ "/Ugrave", 0331, 0,
+ "/Uacute", 0332, 0,
+ "/Ucircumflex", 0333, 0,
+ "/Udieresis", 0334, 0,
+ "/Yacute", 0335, 0,
+ "/Thorn", 0336, 0,
+ "/germandbls", 0337, 0,
+
+ "/agrave", 0340, 0,
+ "/aacute", 0341, 0,
+ "/acircumflex", 0342, 0,
+ "/atilde", 0343, 0,
+ "/adieresis", 0344, 0,
+ "/aring", 0345, 0,
+ "/ae", 0346, 0,
+ "/ccedilla", 0347, 0,
+
+ "/egrave", 0350, 0,
+ "/eacute", 0351, 0,
+ "/ecircumflex", 0352, 0,
+ "/edieresis", 0353, 0,
+ "/igrave", 0354, 0,
+ "/iacute", 0355, 0,
+ "/icircumflex", 0356, 0,
+ "/idieresis", 0357, 0,
+
+ "/eth", 0360, 0,
+ "/ntilde", 0361, 0,
+ "/ograve", 0362, 0,
+ "/oacute", 0363, 0,
+ "/ocircumflex", 0364, 0,
+ "/otilde", 0365, 0,
+ "/odieresis", 0366, 0,
+ "/divide", 0367, 0,
+
+ "/oslash", 0370, 0,
+ "/ugrave", 0371, 0,
+ "/uacute", 0372, 0,
+ "/ucircumflex", 0373, 0,
+ "/udieresis", 0374, 0,
+ "/yacute", 0375, 0,
+ "/thorn", 0376, 0,
+ "/ydieresis", 0377, 0,
};
static short STDvsISO [][2] = {
- {0341, 0306}, /* AE */
- {0351, 0330}, /* Oslash */
- {0302, 0222}, /* acute */
- {0361, 0346}, /* ae */
- {0306, 0226}, /* breve */
- {0317, 0237}, /* caron */
- {0313, 0270}, /* cedilla */
- {0303, 0223}, /* circumflex */
- {0250, 0244}, /* currency */
- {0310, 0250}, /* dieresis */
- {0307, 0227}, /* dotaccent */
- {0365, 0220}, /* dotlessi */
- {0373, 0337}, /* germandbls */
- {0301, 0221}, /* grave */
- {0315, 0235}, /* hungarumlaut */
- {0055, 0255}, /* hyphen */
- {0305, 0257}, /* macron */
- {0316, 0236}, /* ogenek */
- {0343, 0252}, /* ordfeminine */
- {0353, 0272}, /* ordmasculine */
- {0371, 0370}, /* oslash */
- {0264, 0267}, /* periodcentered */
- {0312, 0232}, /* ring */
- {0304, 0224}, /* tilde */
+ 0341, 0306, /* AE */
+ 0351, 0330, /* Oslash */
+ 0302, 0222, /* acute */
+ 0361, 0346, /* ae */
+ 0306, 0226, /* breve */
+ 0317, 0237, /* caron */
+ 0313, 0270, /* cedilla */
+ 0303, 0223, /* circumflex */
+ 0250, 0244, /* currency */
+ 0310, 0250, /* dieresis */
+ 0307, 0227, /* dotaccent */
+ 0365, 0220, /* dotlessi */
+ 0373, 0337, /* germandbls */
+ 0301, 0221, /* grave */
+ 0315, 0235, /* hungarumlaut */
+ 0055, 0255, /* hyphen */
+ 0305, 0257, /* macron */
+ 0316, 0236, /* ogenek */
+ 0343, 0252, /* ordfeminine */
+ 0353, 0272, /* ordmasculine */
+ 0371, 0370, /* oslash */
+ 0264, 0267, /* periodcentered */
+ 0312, 0232, /* ring */
+ 0304, 0224, /* tilde */
};
/* from objfont.c, rest is in lfm_s !!*/
diff --git a/source/blender/blenlib/intern/util.c b/source/blender/blenlib/intern/util.c
index c85849b5ed4..04c4e97aef9 100644
--- a/source/blender/blenlib/intern/util.c
+++ b/source/blender/blenlib/intern/util.c
@@ -858,8 +858,6 @@ int BLI_strcaseeq(char *a, char *b) {
* take the dir name, make it absolute, and clean it up, replacing
* excess file entry stuff (like /tmp/../tmp/../)
* note that dir isn't protected for max string names...
- *
- * If relbase is NULL then its ignored
*/
void BLI_cleanup_dir(const char *relabase, char *dir)
@@ -876,9 +874,11 @@ void BLI_cleanup_file(const char *relabase, char *dir)
{
short a;
char *start, *eind;
+
if (relabase) {
BLI_convertstringcode(dir, relabase);
}
+
#ifdef WIN32
if(dir[0]=='.') { /* happens for example in FILE_MAIN */
get_default_root(dir);
@@ -956,7 +956,7 @@ void BLI_makestringcode(const char *relfile, char *file)
char * lslash;
char temp[FILE_MAXDIR+FILE_MAXFILE];
char res[FILE_MAXDIR+FILE_MAXFILE];
-
+
/* if file is already relative, bail out */
if(file[0]=='/' && file[1]=='/') return;
@@ -988,11 +988,7 @@ void BLI_makestringcode(const char *relfile, char *file)
BLI_char_switch(temp, '\\', '/');
BLI_char_switch(file, '\\', '/');
-
- /* remove /./ which confuse the following slash counting... */
- BLI_cleanup_file(NULL, file);
- BLI_cleanup_file(NULL, temp);
-
+
/* the last slash in the file indicates where the path part ends */
lslash = BLI_last_slash(temp);
@@ -1139,8 +1135,6 @@ int BLI_convertstringcode(char *path, const char *basepath)
BLI_strncpy(base, basepath, FILE_MAX);
- BLI_cleanup_file(NULL, base);
-
/* push slashes into unix mode - strings entering this part are
potentially messed up: having both back- and forward slashes.
Here we push into one conform direction, and at the end we
@@ -1177,7 +1171,7 @@ int BLI_convertstringcode(char *path, const char *basepath)
*/
BLI_char_switch(path+2, '/', '\\');
#endif
-
+
return wasrelative;
}
diff --git a/source/blender/blenlib/intern/winstuff.c b/source/blender/blenlib/intern/winstuff.c
index 666a54b54cc..ace677e6045 100644
--- a/source/blender/blenlib/intern/winstuff.c
+++ b/source/blender/blenlib/intern/winstuff.c
@@ -196,27 +196,6 @@ void get_default_root(char* root) {
}
}
-int check_file_chars(char *filename)
-{
- char *p = filename;
- while (*p) {
- switch (*p) {
- case ':':
- case '?':
- case '*':
- case '|':
- case '\\':
- case '/':
- case '\"':
- return 0;
- break;
- }
-
- p++;
- }
- return 1;
-}
-
#else
static void BLI_WINSTUFF_C_IS_EMPTY_FOR_UNIX(void)
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 8d315ba37e1..e69b2fb0326 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -720,7 +720,7 @@ BHead *blo_firstbhead(FileData *fd)
BHead *blo_prevbhead(FileData *fd, BHead *thisblock)
{
- BHeadN *bheadn= (BHeadN *) (((char *) thisblock) - GET_INT_FROM_POINTER( &((BHeadN*)0)->bhead) );
+ BHeadN *bheadn= (BHeadN *) (((char *) thisblock) - (int) (&((BHeadN*)0)->bhead));
BHeadN *prev= bheadn->prev;
return prev?&prev->bhead:NULL;
@@ -734,7 +734,7 @@ BHead *blo_nextbhead(FileData *fd, BHead *thisblock)
if (thisblock) {
// bhead is actually a sub part of BHeadN
// We calculate the BHeadN pointer from the BHead pointer below
- new_bhead = (BHeadN *) (((char *) thisblock) - GET_INT_FROM_POINTER( &((BHeadN*)0)->bhead) );
+ new_bhead = (BHeadN *) (((char *) thisblock) - (int) (&((BHeadN*)0)->bhead));
// get the next BHeadN. If it doesn't exist we read in the next one
new_bhead = new_bhead->next;
diff --git a/source/blender/blenpluginapi/intern/pluginapi.c b/source/blender/blenpluginapi/intern/pluginapi.c
index e65148a0b04..ee1ac8f0ae2 100644
--- a/source/blender/blenpluginapi/intern/pluginapi.c
+++ b/source/blender/blenpluginapi/intern/pluginapi.c
@@ -53,7 +53,6 @@
#include "BLI_blenlib.h" /* util and noise functions */
#include "BLI_threads.h" /* For threadsfe guardedalloc malloc/calloc/free */
#include "IMB_imbuf.h" /* image buffer stuff */
-#define GET_INT_FROM_POINTER(i) ((int)(long)(i)) /* should use BKE_utildefines.h */
/* -------------------------------------------------------------------------- */
/* stuff from util.h */
@@ -322,43 +321,42 @@ int pluginapi_force_ref(void);
int pluginapi_force_ref(void)
{
- return
- GET_INT_FROM_POINTER( mallocN ) +
- GET_INT_FROM_POINTER( callocN ) +
- GET_INT_FROM_POINTER( freeN ) +
- GET_INT_FROM_POINTER( mallocT ) +
- GET_INT_FROM_POINTER( callocT ) +
- GET_INT_FROM_POINTER( freeT ) +
- GET_INT_FROM_POINTER( allocImBuf ) +
- GET_INT_FROM_POINTER( dupImBuf ) +
- GET_INT_FROM_POINTER( freeImBuf ) +
- GET_INT_FROM_POINTER( converttocmap ) +
- GET_INT_FROM_POINTER( saveiff ) +
- GET_INT_FROM_POINTER( loadiffmem ) +
- GET_INT_FROM_POINTER( loadifffile ) +
- GET_INT_FROM_POINTER( loadiffname ) +
- GET_INT_FROM_POINTER( testiffname ) +
- GET_INT_FROM_POINTER( onehalf ) +
- GET_INT_FROM_POINTER( onethird ) +
- GET_INT_FROM_POINTER( halflace ) +
- GET_INT_FROM_POINTER( half_x ) +
- GET_INT_FROM_POINTER( half_y ) +
- GET_INT_FROM_POINTER( double_x ) +
- GET_INT_FROM_POINTER( double_y ) +
- GET_INT_FROM_POINTER( double_fast_x ) +
- GET_INT_FROM_POINTER( double_fast_y ) +
- GET_INT_FROM_POINTER( ispic ) +
- GET_INT_FROM_POINTER( dit2 ) +
- GET_INT_FROM_POINTER( dit0 ) +
- GET_INT_FROM_POINTER( scaleImBuf ) +
- GET_INT_FROM_POINTER( scalefastImBuf ) +
- GET_INT_FROM_POINTER( scalefieldImBuf ) +
- GET_INT_FROM_POINTER( scalefastfieldImBuf ) +
- GET_INT_FROM_POINTER( hnoise ) +
- GET_INT_FROM_POINTER( hnoisep ) +
- GET_INT_FROM_POINTER( turbulence ) +
- GET_INT_FROM_POINTER( turbulence1 ) +
- GET_INT_FROM_POINTER( de_interlace ) +
- GET_INT_FROM_POINTER( interlace ) +
- GET_INT_FROM_POINTER( gamwarp );
+ return (int) mallocN +
+ (int) callocN +
+ (int) freeN +
+ (int) mallocT +
+ (int) callocT +
+ (int) freeT +
+ (int) allocImBuf +
+ (int) dupImBuf +
+ (int) freeImBuf +
+ (int) converttocmap +
+ (int) saveiff +
+ (int) loadiffmem +
+ (int) loadifffile +
+ (int) loadiffname +
+ (int) testiffname +
+ (int) onehalf +
+ (int) onethird +
+ (int) halflace +
+ (int) half_x +
+ (int) half_y +
+ (int) double_x +
+ (int) double_y +
+ (int) double_fast_x +
+ (int) double_fast_y +
+ (int) ispic +
+ (int) dit2 +
+ (int) dit0 +
+ (int) scaleImBuf +
+ (int) scalefastImBuf +
+ (int) scalefieldImBuf +
+ (int) scalefastfieldImBuf +
+ (int) hnoise +
+ (int) hnoisep +
+ (int) turbulence +
+ (int) turbulence1 +
+ (int) de_interlace +
+ (int) interlace +
+ (int) gamwarp;
}
diff --git a/source/blender/freestyle/SConscript b/source/blender/freestyle/SConscript
new file mode 100644
index 00000000000..7e859e58c58
--- /dev/null
+++ b/source/blender/freestyle/SConscript
@@ -0,0 +1,16 @@
+#!/usr/bin/python
+import sys
+Import ('env')
+
+sources = []
+defs = []
+
+incs = '#/extern/freestyle/lib3ds #/extern/freestyle/swig'
+incs += ' ' + env['BF_LIB3DS_INC']
+
+# env.BlenderLib (libname="bf_freestyle",
+# sources=sources,
+# includes=Split(incs),
+# defines=defs,
+# libtype=['blender'],
+# priority = [15] ) \ No newline at end of file
diff --git a/source/blender/freestyle/intern/AUTHORS.TXT b/source/blender/freestyle/intern/AUTHORS.TXT
new file mode 100755
index 00000000000..27cdb70d5ec
--- /dev/null
+++ b/source/blender/freestyle/intern/AUTHORS.TXT
@@ -0,0 +1,6 @@
+Authors
+-------
+Frédo Durand <fredo@mit.edu>
+Stéphane Grabli <stephane.grabli@imag.fr>
+François Sillion <francois.sillion@imag.fr>
+Emmanuel Turquin <emmanuel.turquin@imag.fr>
diff --git a/source/blender/freestyle/intern/BUGS.TXT b/source/blender/freestyle/intern/BUGS.TXT
new file mode 100755
index 00000000000..c5bad029a47
--- /dev/null
+++ b/source/blender/freestyle/intern/BUGS.TXT
@@ -0,0 +1,11 @@
+* Application doesn't exit properly (eg style window still hangs out)
+* macosx: Window bar is unaccessible.
+* macosx: Build leds to an application that is half-bundle (for the executable) half UNIX-style (for libraries).
+* Strokes Strips are sometimes incorrect
+* TVertex sometimes points towards NULL ViewEdges
+* Some points are found to be outside of the grid. (for big models and mostly in release mode). Probably due to precision problems.
+* Operators::recursiveChains() and ViewEdgeIterator change ViewEdgeIterator so that it supports the copy of specialized types in a transparent way. It works here only because we're never copying it and because it is passed as a reference.
+* Functions0D takes a Interface0DIterator& insted of a const Interface0DIterator& as argument. dangerous.
+* crashes on big models
+
+
diff --git a/source/blender/freestyle/intern/CHANGELOG.TXT b/source/blender/freestyle/intern/CHANGELOG.TXT
new file mode 100755
index 00000000000..cb9f088bc1f
--- /dev/null
+++ b/source/blender/freestyle/intern/CHANGELOG.TXT
@@ -0,0 +1,47 @@
+2008-03-06 - freestyle-2.2.0
+ * Fixed a bug related to the ViewShape IDs that caused the ray casting to crash.
+ * Fixed a bug in the style module insertion.
+
+2008-03-02 - freestyle-2.1.1
+ * Added the management of texture coordinates in the scene graph and the rendering.
+ * The reps in the scene graph are now assigned ids based on the lib3ds nodes ids. These ids are transmitted to the WingedEdge Shapes.
+2007-10-05 - freestyle-2.0.1
+
+ * Enforced node construction from lib3ds (thanks to Thomas Netter)
+ * Reverted to not using bundles by default on MacOSX. Activating bundles can be made by uncommenting the lib_bundle line of the CONFIG variable in Config.pri
+ * Added a NodeCamera to the scene graph.
+ * Made sure the display lists were compiled AND executed (GL_COMPILE -> GL_COMPILE_AND_EXECUTE) for IndexedFaceSet.
+ * Added a visitor to deallocate memory on the graphics card (display lists right now).
+ * Modified the grid to use a visitor pattern for ray casting and grid traversal.
+
+
+
+2007-05-06 - freestyle-2.0.0
+
+ * Switched to Qt 4.2.3, swig 1.3.31, visual c++ 2005, gcc 4.0.1, qglviewer 2.2.5-1
+ * Added texture coordinates to scene graph
+ * Made the grid more robust
+ * Now compiles on MacOSX
+ * Fixed the brush texture problem: the full path to the texture was used instead of the base name and that was breaking the search path algorithm
+
+
+2006-06-18 - freestyle-1.0.2
+
+ * Fixed a bug related to the loading of OpenGL extensions.
+
+
+2005-07-25 - freestyle-1.0.1
+
+ * Upgrade to QGLViewer 2.0.4
+ * Added the FREESTYLE_DIR environment variable.
+ It must be set to the freestyle directory for
+ all releases except the pre-compiled windows version.
+ * Fixed the unix path separator.
+ * Added the "Help>Control bindings" menu action.
+ * Fixed the style modules according to Python 2.4 standards.
+
+
+2005-04-05 - freestyle-1.0.0
+
+ * Initial release
+
diff --git a/source/blender/freestyle/intern/COPYRIGHT.TXT b/source/blender/freestyle/intern/COPYRIGHT.TXT
new file mode 100755
index 00000000000..cd37bd16786
--- /dev/null
+++ b/source/blender/freestyle/intern/COPYRIGHT.TXT
@@ -0,0 +1,9 @@
+Freestyle
+
+Copyright (c) 2001-2007 by the following:
+
+
+Frédo Durand <fredo@mit.edu>
+Stéphane Grabli <stephane.grabli@gmail.com>
+François Sillion <francois.sillion@imag.fr>
+Emmanuel Turquin <emmanuel.turquin@imag.fr>
diff --git a/source/blender/freestyle/intern/Config.pri b/source/blender/freestyle/intern/Config.pri
new file mode 100755
index 00000000000..68763dba502
--- /dev/null
+++ b/source/blender/freestyle/intern/Config.pri
@@ -0,0 +1,176 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# A p p l i c a t i o n & L i b r a r i e s #
+# b u i l d c o n f i g u r a t i o n #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+#
+# APPLICATION
+#
+#######################################
+
+APPNAME = Freestyle
+APPVERSION_MAJ = 2
+APPVERSION_MID = 2
+APPVERSION_MIN = 0
+APPVERSION = $${APPVERSION_MAJ}.$${APPVERSION_MID}.$${APPVERSION_MIN}
+
+PYTHON_VERSION_MAJ = 2
+PYTHON_VERSION_MIN = 5
+
+LIB3DS_VERSION_MAJ = 1
+LIB3DS_VERSION_MIN = 30
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG -= debug release ReleaseBuild Release build_pass precompile_header debug_and_release debug_and_release_target
+CONFIG *= qt shared stl exceptions rtti thread
+CONFIG *= release # debug or release
+CONFIG *= warn_off # warn_off or warn_on
+mac:CONFIG += x86
+#mac:CONFIG += ppc
+#mac:CONFIG *= lib_bundle
+
+#mac:QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.4u.sdk
+#message($$CONFIG)
+#CONFIG *= static
+#CONFIG *= profiling
+
+
+
+QT += opengl
+
+#
+# LIBRARIES
+#
+#######################################
+
+debug{
+ LIB_GEOMETRY = $${APPNAME}Geometry_d
+ LIB_IMAGE = $${APPNAME}Image_d
+ LIB_RENDERING = $${APPNAME}Rendering_d
+ LIB_SCENE_GRAPH = $${APPNAME}SceneGraph_d
+ LIB_SYSTEM = $${APPNAME}System_d
+ LIB_VIEW_MAP = $${APPNAME}ViewMap_d
+ LIB_STROKE = $${APPNAME}Stroke_d
+ LIB_WINGED_EDGE = $${APPNAME}WingedEdge_d
+}else{
+ LIB_GEOMETRY = $${APPNAME}Geometry
+ LIB_IMAGE = $${APPNAME}Image
+ LIB_RENDERING = $${APPNAME}Rendering
+ LIB_SCENE_GRAPH = $${APPNAME}SceneGraph
+ LIB_SYSTEM = $${APPNAME}System
+ LIB_VIEW_MAP = $${APPNAME}ViewMap
+ LIB_STROKE = $${APPNAME}Stroke
+ LIB_WINGED_EDGE = $${APPNAME}WingedEdge
+}
+
+LIBVERSION = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+
+#
+# FLAGS
+#
+#######################################
+
+win32:QMAKE_CXXFLAGS *= /GR /GX
+win32:QMAKE_CFLAGS *= /GR /GX
+irix-n32:QMAKE_CFLAGS *= -LANG:std
+irix-n32:QMAKE_CXXFLAGS *= -LANG:std
+linux-g++:QMAKE_CFLAGS *= -Wno-deprecated
+linux-g++:QMAKE_CXXFLAGS *= -Wno-deprecated
+cygwin-g++:QMAKE_CFLAGS *= -Wno-deprecated
+cygwin-g++:QMAKE_CXXFLAGS *= -Wno-deprecated -mno-win32
+mac:QMAKE_CFLAGS *= -Wno-deprecated
+mac:QMAKE_CXXFLAGS *= -Wno-deprecated
+
+linux-g++:QMAKE_CFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+linux-g++:QMAKE_CXXFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+cygwin-g++:QMAKE_CFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+cygwin-g++:QMAKE_CXXFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+mac:QMAKE_CFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+mac:QMAKE_CXXFLAGS_RELEASE = -O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+
+profiling {
+ linux-g++:QMAKE_CFLAGS_DEBUG = -pg
+ linux-g++:QMAKE_CXXFLAGS_DEBUG = -pg
+ linux-g++:QMAKE_LFLAGS_DEBUG = -pg
+ cygwin-g++:QMAKE_CFLAGS_DEBUG = -pg
+ cygwin-g++:QMAKE_CXXFLAGS_DEBUG = -pg
+ cygwin-g++:QMAKE_LFLAGS_DEBUG = -pg
+ mac:QMAKE_CFLAGS_DEBUG = -pg
+ mac:QMAKE_CXXFLAGS_DEBUG = -pg
+ mac:QMAKE_LFLAGS_DEBUG = -pg
+}
+
+#
+# DEFINES
+#
+#######################################
+
+win32:DEFINES *= WIN32 QT_DLL QT_THREAD_SUPPORT
+linux-g++:DEFINES *= LINUX
+cygwin-g++:DEFINES *= CYGWIN
+irix-n32:DEFINES *= IRIX
+mac:DEFINES *= MACOSX
+
+#
+# BUILD DIRECTORIES (RELATIVE)
+#
+#######################################
+
+release {
+ win32 {
+ REL_OBJECTS_DIR = \\win32\\release\\obj
+ REL_DESTDIR = \\win32\\release
+ }
+ linux-g++ {
+ REL_OBJECTS_DIR = linux-g++/release/obj
+ REL_DESTDIR = linux-g++/release
+ }
+ cygwin-g++ {
+ REL_OBJECTS_DIR = cygwin-g++/release/obj
+ REL_DESTDIR = cygwin-g++/release
+ }
+ irix-n32 {
+ REL_OBJECTS_DIR = irix-n32/release/obj
+ REL_DESTDIR = irix-n32/release
+ }
+ mac {
+ REL_OBJECTS_DIR = macosx/release/obj
+ REL_DESTDIR = macosx/release
+ }
+}
+debug {
+ win32 {
+ REL_OBJECTS_DIR = \\win32\\debug\\obj
+ REL_DESTDIR = \\win32\\debug
+ }
+ linux-g++ {
+ REL_OBJECTS_DIR = linux-g++/debug/obj
+ REL_DESTDIR = linux-g++/debug
+ }
+ cygwin-g++ {
+ REL_OBJECTS_DIR = cygwin-g++/debug/obj
+ REL_DESTDIR = cygwin-g++/debug
+ }
+ irix-n32 {
+ REL_OBJECTS_DIR = irix-n32/debug/obj
+ REL_DESTDIR = irix-n32/debug
+ }
+ mac {
+ REL_OBJECTS_DIR = macosx/debug/obj
+ REL_DESTDIR = macosx/debug
+ }
+}
+
+#
+# INSTALL
+#
+#######################################
+
+#QMAKE_COPY_FILE = $${QMAKE_COPY} -P
diff --git a/source/blender/freestyle/intern/Freestyle-vc7-debug.sln b/source/blender/freestyle/intern/Freestyle-vc7-debug.sln
new file mode 100755
index 00000000000..937f3f9faf9
--- /dev/null
+++ b/source/blender/freestyle/intern/Freestyle-vc7-debug.sln
@@ -0,0 +1,113 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freestyle_d", "app\app_d.vcproj", "{0BC94A80-9E3E-40D8-B2CF-6594F96361C5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361} = {DFCED64E-AEFA-4D06-8609-DE23A69D0361}
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} = {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}
+ {FA76B552-8A89-4A50-92F7-A77935515005} = {FA76B552-8A89-4A50-92F7-A77935515005}
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C} = {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD} = {4C44396A-8016-4360-8F5C-35CA6CC282BD}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleGeometry_d", "geometry\geometry_d.vcproj", "{3E1C0A57-8206-402F-A12E-3B100F121DDE}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleImage_d", "image\image_d.vcproj", "{4C44396A-8016-4360-8F5C-35CA6CC282BD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleRendering_d", "rendering\rendering_d.vcproj", "{9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361} = {DFCED64E-AEFA-4D06-8609-DE23A69D0361}
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSceneGraph_d", "scene_graph\scene_graph_d.vcproj", "{858093EF-6B95-4D0F-AA0A-CF187C6F369F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleStroke_d", "stroke\stroke_d.vcproj", "{DFCED64E-AEFA-4D06-8609-DE23A69D0361}"
+ ProjectSection(ProjectDependencies) = postProject
+ {FA76B552-8A89-4A50-92F7-A77935515005} = {FA76B552-8A89-4A50-92F7-A77935515005}
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSystem_d", "system\system_d.vcproj", "{AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleViewMap_d", "view_map\view_map_d.vcproj", "{FA76B552-8A89-4A50-92F7-A77935515005}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} = {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD} = {4C44396A-8016-4360-8F5C-35CA6CC282BD}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleWingedEdge_d", "winged_edge\winged_edge_d.vcproj", "{AF37DD50-8CD3-4339-AB32-C6F8F770CB30}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Debug.ActiveCfg = Debug|Win32
+ {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Debug.Build.0 = Debug|Win32
+ {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Release.ActiveCfg = Debug|Win32
+ {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Release.Build.0 = Debug|Win32
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Debug.ActiveCfg = Debug|Win32
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Debug.Build.0 = Debug|Win32
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Release.ActiveCfg = Debug|Win32
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Release.Build.0 = Debug|Win32
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Debug.ActiveCfg = Debug|Win32
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Debug.Build.0 = Debug|Win32
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Release.ActiveCfg = Debug|Win32
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Release.Build.0 = Debug|Win32
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Debug.ActiveCfg = Debug|Win32
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Debug.Build.0 = Debug|Win32
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Release.ActiveCfg = Debug|Win32
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Release.Build.0 = Debug|Win32
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Debug.ActiveCfg = Debug|Win32
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Debug.Build.0 = Debug|Win32
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Release.ActiveCfg = Debug|Win32
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Release.Build.0 = Debug|Win32
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Debug.ActiveCfg = Debug|Win32
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Debug.Build.0 = Debug|Win32
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Release.ActiveCfg = Debug|Win32
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Release.Build.0 = Debug|Win32
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Debug.ActiveCfg = Debug|Win32
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Debug.Build.0 = Debug|Win32
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Release.ActiveCfg = Debug|Win32
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Release.Build.0 = Debug|Win32
+ {FA76B552-8A89-4A50-92F7-A77935515005}.Debug.ActiveCfg = Debug|Win32
+ {FA76B552-8A89-4A50-92F7-A77935515005}.Debug.Build.0 = Debug|Win32
+ {FA76B552-8A89-4A50-92F7-A77935515005}.Release.ActiveCfg = Release|Win32
+ {FA76B552-8A89-4A50-92F7-A77935515005}.Release.Build.0 = Release|Win32
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Debug.ActiveCfg = Debug|Win32
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Debug.Build.0 = Debug|Win32
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Release.ActiveCfg = Debug|Win32
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Release.Build.0 = Debug|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/source/blender/freestyle/intern/Freestyle-vc7-release.sln b/source/blender/freestyle/intern/Freestyle-vc7-release.sln
new file mode 100755
index 00000000000..74d5dc77f86
--- /dev/null
+++ b/source/blender/freestyle/intern/Freestyle-vc7-release.sln
@@ -0,0 +1,111 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freestyle", "app\app.vcproj", "{0BC94A80-9E3E-40D8-B2CF-6594F96361C5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361} = {DFCED64E-AEFA-4D06-8609-DE23A69D0361}
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} = {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}
+ {FA76B552-8A89-4A50-92F7-A77935515005} = {FA76B552-8A89-4A50-92F7-A77935515005}
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C} = {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD} = {4C44396A-8016-4360-8F5C-35CA6CC282BD}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleGeometry", "geometry\geometry.vcproj", "{3E1C0A57-8206-402F-A12E-3B100F121DDE}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleImage", "image\image.vcproj", "{4C44396A-8016-4360-8F5C-35CA6CC282BD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleRendering", "rendering\rendering.vcproj", "{9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361} = {DFCED64E-AEFA-4D06-8609-DE23A69D0361}
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSceneGraph", "scene_graph\scene_graph.vcproj", "{858093EF-6B95-4D0F-AA0A-CF187C6F369F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleStroke", "stroke\stroke.vcproj", "{DFCED64E-AEFA-4D06-8609-DE23A69D0361}"
+ ProjectSection(ProjectDependencies) = postProject
+ {FA76B552-8A89-4A50-92F7-A77935515005} = {FA76B552-8A89-4A50-92F7-A77935515005}
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSystem", "system\system.vcproj", "{AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleViewMap", "view_map\view_map.vcproj", "{FA76B552-8A89-4A50-92F7-A77935515005}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30} = {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD} = {4C44396A-8016-4360-8F5C-35CA6CC282BD}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleWingedEdge", "winged_edge\winged_edge.vcproj", "{AF37DD50-8CD3-4339-AB32-C6F8F770CB30}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE} = {3E1C0A57-8206-402F-A12E-3B100F121DDE}
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A} = {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F} = {858093EF-6B95-4D0F-AA0A-CF187C6F369F}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Debug.ActiveCfg = Debug|Win32
+ {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Debug.Build.0 = Debug|Win32
+ {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Release.ActiveCfg = Release|Win32
+ {0BC94A80-9E3E-40D8-B2CF-6594F96361C5}.Release.Build.0 = Release|Win32
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Debug.ActiveCfg = Debug|Win32
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Debug.Build.0 = Debug|Win32
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Release.ActiveCfg = Release|Win32
+ {3E1C0A57-8206-402F-A12E-3B100F121DDE}.Release.Build.0 = Release|Win32
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Debug.ActiveCfg = Debug|Win32
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Debug.Build.0 = Debug|Win32
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Release.ActiveCfg = Release|Win32
+ {4C44396A-8016-4360-8F5C-35CA6CC282BD}.Release.Build.0 = Release|Win32
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Debug.ActiveCfg = Debug|Win32
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Debug.Build.0 = Debug|Win32
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Release.ActiveCfg = Release|Win32
+ {9F2B9C57-F57F-4A8A-9590-6DDD1E51433C}.Release.Build.0 = Release|Win32
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Debug.ActiveCfg = Debug|Win32
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Debug.Build.0 = Debug|Win32
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Release.ActiveCfg = Release|Win32
+ {858093EF-6B95-4D0F-AA0A-CF187C6F369F}.Release.Build.0 = Release|Win32
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Debug.ActiveCfg = Debug|Win32
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Debug.Build.0 = Debug|Win32
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Release.ActiveCfg = Release|Win32
+ {DFCED64E-AEFA-4D06-8609-DE23A69D0361}.Release.Build.0 = Release|Win32
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Debug.ActiveCfg = Debug|Win32
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Debug.Build.0 = Debug|Win32
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Release.ActiveCfg = Release|Win32
+ {AE79BAD6-6F46-4AA1-BBEA-28CC209FC28A}.Release.Build.0 = Release|Win32
+ {FA76B552-8A89-4A50-92F7-A77935515005}.Debug.ActiveCfg = Debug|Win32
+ {FA76B552-8A89-4A50-92F7-A77935515005}.Debug.Build.0 = Debug|Win32
+ {FA76B552-8A89-4A50-92F7-A77935515005}.Release.ActiveCfg = Release|Win32
+ {FA76B552-8A89-4A50-92F7-A77935515005}.Release.Build.0 = Release|Win32
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Debug.ActiveCfg = Debug|Win32
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Debug.Build.0 = Debug|Win32
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Release.ActiveCfg = Release|Win32
+ {AF37DD50-8CD3-4339-AB32-C6F8F770CB30}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/source/blender/freestyle/intern/Freestyle-vc8-debug.sln b/source/blender/freestyle/intern/Freestyle-vc8-debug.sln
new file mode 100755
index 00000000000..097ca30a174
--- /dev/null
+++ b/source/blender/freestyle/intern/Freestyle-vc8-debug.sln
@@ -0,0 +1,87 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSystem_d", "system\system_d.vcproj", "{AAAAA9BB-8C01-3BC3-9808-AB6717F08393}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleGeometry_d", "geometry\geometry_d.vcproj", "{5F60164C-8544-3259-A8CB-24636A092489}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleImage_d", "image\image_d.vcproj", "{28F6AC11-2A9B-3886-97DD-82FB353409CB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSceneGraph_d", "scene_graph\scene_graph_d.vcproj", "{C98C60D8-9836-30A5-BEA9-0D320E5AF308}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
+ {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleWingedEdge_d", "winged_edge\winged_edge_d.vcproj", "{E46825D6-9581-3D8A-96FE-7C90BC188602}"
+ ProjectSection(ProjectDependencies) = postProject
+ {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
+ {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
+ {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleViewMap_d", "view_map\view_map_d.vcproj", "{6769BAB7-2894-3453-B07A-58C32D6646E3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
+ {E46825D6-9581-3D8A-96FE-7C90BC188602} = {E46825D6-9581-3D8A-96FE-7C90BC188602}
+ {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
+ {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleStroke_d", "stroke\stroke_d.vcproj", "{EDA5F096-B8D0-336F-82DB-501B2F00C1CD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
+ {6769BAB7-2894-3453-B07A-58C32D6646E3} = {6769BAB7-2894-3453-B07A-58C32D6646E3}
+ {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
+ {E46825D6-9581-3D8A-96FE-7C90BC188602} = {E46825D6-9581-3D8A-96FE-7C90BC188602}
+ {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleRendering_d", "rendering\rendering_d.vcproj", "{D5EA771F-A1FF-3F68-A391-98EEEB407E78}"
+ ProjectSection(ProjectDependencies) = postProject
+ {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
+ {EDA5F096-B8D0-336F-82DB-501B2F00C1CD} = {EDA5F096-B8D0-336F-82DB-501B2F00C1CD}
+ {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
+ {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freestyle_d", "app\app_d.vcproj", "{606D6459-D5F6-3A09-8962-50E8551545AB}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C98C60D8-9836-30A5-BEA9-0D320E5AF308} = {C98C60D8-9836-30A5-BEA9-0D320E5AF308}
+ {E46825D6-9581-3D8A-96FE-7C90BC188602} = {E46825D6-9581-3D8A-96FE-7C90BC188602}
+ {AAAAA9BB-8C01-3BC3-9808-AB6717F08393} = {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}
+ {6769BAB7-2894-3453-B07A-58C32D6646E3} = {6769BAB7-2894-3453-B07A-58C32D6646E3}
+ {EDA5F096-B8D0-336F-82DB-501B2F00C1CD} = {EDA5F096-B8D0-336F-82DB-501B2F00C1CD}
+ {5F60164C-8544-3259-A8CB-24636A092489} = {5F60164C-8544-3259-A8CB-24636A092489}
+ {D5EA771F-A1FF-3F68-A391-98EEEB407E78} = {D5EA771F-A1FF-3F68-A391-98EEEB407E78}
+ {28F6AC11-2A9B-3886-97DD-82FB353409CB} = {28F6AC11-2A9B-3886-97DD-82FB353409CB}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AAAAA9BB-8C01-3BC3-9808-AB6717F08393}.Debug|Win32.Build.0 = Debug|Win32
+ {5F60164C-8544-3259-A8CB-24636A092489}.Debug|Win32.ActiveCfg = Debug|Win32
+ {5F60164C-8544-3259-A8CB-24636A092489}.Debug|Win32.Build.0 = Debug|Win32
+ {28F6AC11-2A9B-3886-97DD-82FB353409CB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {28F6AC11-2A9B-3886-97DD-82FB353409CB}.Debug|Win32.Build.0 = Debug|Win32
+ {C98C60D8-9836-30A5-BEA9-0D320E5AF308}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C98C60D8-9836-30A5-BEA9-0D320E5AF308}.Debug|Win32.Build.0 = Debug|Win32
+ {E46825D6-9581-3D8A-96FE-7C90BC188602}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E46825D6-9581-3D8A-96FE-7C90BC188602}.Debug|Win32.Build.0 = Debug|Win32
+ {6769BAB7-2894-3453-B07A-58C32D6646E3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6769BAB7-2894-3453-B07A-58C32D6646E3}.Debug|Win32.Build.0 = Debug|Win32
+ {EDA5F096-B8D0-336F-82DB-501B2F00C1CD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EDA5F096-B8D0-336F-82DB-501B2F00C1CD}.Debug|Win32.Build.0 = Debug|Win32
+ {D5EA771F-A1FF-3F68-A391-98EEEB407E78}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D5EA771F-A1FF-3F68-A391-98EEEB407E78}.Debug|Win32.Build.0 = Debug|Win32
+ {606D6459-D5F6-3A09-8962-50E8551545AB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {606D6459-D5F6-3A09-8962-50E8551545AB}.Debug|Win32.Build.0 = Debug|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/source/blender/freestyle/intern/Freestyle-vc8-release.sln b/source/blender/freestyle/intern/Freestyle-vc8-release.sln
new file mode 100755
index 00000000000..82b22ff0c3e
--- /dev/null
+++ b/source/blender/freestyle/intern/Freestyle-vc8-release.sln
@@ -0,0 +1,87 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual C++ Express 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freestyle", "app\app.vcproj", "{B56F2464-158F-32C1-A9F7-EE85397706EC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {555B73B2-B07B-3865-9D41-0FB69091E0C9} = {555B73B2-B07B-3865-9D41-0FB69091E0C9}
+ {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759} = {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}
+ {9A93A87D-09E4-3492-A68C-A7B1A38DE002} = {9A93A87D-09E4-3492-A68C-A7B1A38DE002}
+ {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
+ {A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5} = {A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5}
+ {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
+ {0FDD8610-0785-3089-900D-53F786E9AC9B} = {0FDD8610-0785-3089-900D-53F786E9AC9B}
+ {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleGeometry", "geometry\geometry.vcproj", "{1D57A40D-AE4B-3E40-A023-4F37C9D7446C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleImage", "image\image.vcproj", "{A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleRendering", "rendering\rendering.vcproj", "{0FDD8610-0785-3089-900D-53F786E9AC9B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
+ {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
+ {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
+ {9A93A87D-09E4-3492-A68C-A7B1A38DE002} = {9A93A87D-09E4-3492-A68C-A7B1A38DE002}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSceneGraph", "scene_graph\scene_graph.vcproj", "{35891119-E049-35BB-AB8E-8536817F5CEE}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
+ {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleStroke", "stroke\stroke.vcproj", "{9A93A87D-09E4-3492-A68C-A7B1A38DE002}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
+ {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
+ {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
+ {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759} = {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}
+ {555B73B2-B07B-3865-9D41-0FB69091E0C9} = {555B73B2-B07B-3865-9D41-0FB69091E0C9}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleSystem", "system\system.vcproj", "{3804962B-1D5B-382E-B69E-96FFB2372A46}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleViewMap", "view_map\view_map.vcproj", "{F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}"
+ ProjectSection(ProjectDependencies) = postProject
+ {555B73B2-B07B-3865-9D41-0FB69091E0C9} = {555B73B2-B07B-3865-9D41-0FB69091E0C9}
+ {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
+ {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
+ {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreestyleWingedEdge", "winged_edge\winged_edge.vcproj", "{555B73B2-B07B-3865-9D41-0FB69091E0C9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1D57A40D-AE4B-3E40-A023-4F37C9D7446C} = {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}
+ {35891119-E049-35BB-AB8E-8536817F5CEE} = {35891119-E049-35BB-AB8E-8536817F5CEE}
+ {3804962B-1D5B-382E-B69E-96FFB2372A46} = {3804962B-1D5B-382E-B69E-96FFB2372A46}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B56F2464-158F-32C1-A9F7-EE85397706EC}.Release|Win32.ActiveCfg = Release|Win32
+ {B56F2464-158F-32C1-A9F7-EE85397706EC}.Release|Win32.Build.0 = Release|Win32
+ {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}.Release|Win32.ActiveCfg = Release|Win32
+ {1D57A40D-AE4B-3E40-A023-4F37C9D7446C}.Release|Win32.Build.0 = Release|Win32
+ {A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5}.Release|Win32.ActiveCfg = Release|Win32
+ {A494B81F-F5EC-35DE-8DDC-4F6FD6B536D5}.Release|Win32.Build.0 = Release|Win32
+ {0FDD8610-0785-3089-900D-53F786E9AC9B}.Release|Win32.ActiveCfg = Release|Win32
+ {0FDD8610-0785-3089-900D-53F786E9AC9B}.Release|Win32.Build.0 = Release|Win32
+ {35891119-E049-35BB-AB8E-8536817F5CEE}.Release|Win32.ActiveCfg = Release|Win32
+ {35891119-E049-35BB-AB8E-8536817F5CEE}.Release|Win32.Build.0 = Release|Win32
+ {9A93A87D-09E4-3492-A68C-A7B1A38DE002}.Release|Win32.ActiveCfg = Release|Win32
+ {9A93A87D-09E4-3492-A68C-A7B1A38DE002}.Release|Win32.Build.0 = Release|Win32
+ {3804962B-1D5B-382E-B69E-96FFB2372A46}.Release|Win32.ActiveCfg = Release|Win32
+ {3804962B-1D5B-382E-B69E-96FFB2372A46}.Release|Win32.Build.0 = Release|Win32
+ {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}.Release|Win32.ActiveCfg = Release|Win32
+ {F6589FA0-9FA2-31F9-BD0F-FFE303DE8759}.Release|Win32.Build.0 = Release|Win32
+ {555B73B2-B07B-3865-9D41-0FB69091E0C9}.Release|Win32.ActiveCfg = Release|Win32
+ {555B73B2-B07B-3865-9D41-0FB69091E0C9}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/source/blender/freestyle/intern/INSTALL.TXT b/source/blender/freestyle/intern/INSTALL.TXT
new file mode 100755
index 00000000000..4fab1275116
--- /dev/null
+++ b/source/blender/freestyle/intern/INSTALL.TXT
@@ -0,0 +1,79 @@
+Install
+-------
+
+* UNIX/LINUX
+
+(for a more detailed description, see doc/linuxinstall.html)
+
+ This is quite straightforward, provided that you have all the
+needed libraries properly installed (see Requirements section in
+the README.TXT file).
+First, set the FREESTYLE-DIR environment variable to your
+freestyle directory and then, simply type:
+
+$> cd "$FREESTYLE_DIR"/src
+$> qmake
+$> make
+
+Note: The SWIG wrapper hasn't been included in the qmake build
+cycle yet and thus has to be compiled separately, by hand:
+
+$> cd "$FREESTYLE_DIR"/src/swig
+$> make
+
+And to run the app:
+
+$> export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:./lib"
+$> cd "$FREESTYLE_DIR"/build/linux-g++/release/
+$> ./Freestyle
+
+
+* WINDOWS
+
+ - If you downloaded the binary version:
+
+1) unzip the package
+2) run vcredist_x86.exe
+3) run Freestyle.exe
+
+- Compilation Instructions:
+
+(for a more detailed description, including the cygwin
+compilation instructions, see doc/wininstall.html)
+
+1) launch 'makedsp.vcnet.debug.bat' in the 'src' subdir of your FREESTYLE_DIR to generate
+ a .vcproj file for each sub-project
+2) open 'src/Freestyle-vc8-debug.sln' with Visual Studio (tested with VC++ 8 express edition)
+3) compile the whole project using 'build solution' in the 'build' menu
+4) run the app and enjoy ;)
+
+* MAC OS X
+
+(for a more detailed description, see doc/macosxinstall.html)
+
+ This is quite straightforward, provided that you have all the
+needed libraries properly installed (see Requirements section in
+the README.TXT file).
+First, set the FREESTYLE-DIR environment variable to your
+freestyle directory and then, simply type:
+
+$> cd "$FREESTYLE_DIR"/src
+$> qmake
+$> make
+
+Note: The SWIG wrapper hasn't been included in the qmake build
+cycle yet and thus has to be compiled separately, by hand:
+
+$> cd "$FREESTYLE_DIR"/src/swig
+$> make
+
+And to run the app:
+
+$> build_bundle.macosx.py
+$> cd "$FREESTYLE_DIR"/
+$> open Freestyle.App
+
+
+* IRIX
+
+Not tested yet...
diff --git a/source/blender/freestyle/intern/LICENSE.TXT b/source/blender/freestyle/intern/LICENSE.TXT
new file mode 100755
index 00000000000..5b6e7c66c27
--- /dev/null
+++ b/source/blender/freestyle/intern/LICENSE.TXT
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/source/blender/freestyle/intern/Makefile.pro b/source/blender/freestyle/intern/Makefile.pro
new file mode 100755
index 00000000000..0e64bb342c3
--- /dev/null
+++ b/source/blender/freestyle/intern/Makefile.pro
@@ -0,0 +1,18 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+TEMPLATE = subdirs
+SUBDIRS = system \
+ image \
+ geometry \
+ scene_graph \
+ winged_edge \
+ view_map \
+ stroke \
+ rendering \
+# swig \
+ app
+
+
diff --git a/source/blender/freestyle/intern/README.TXT b/source/blender/freestyle/intern/README.TXT
new file mode 100755
index 00000000000..b0d026c8b9b
--- /dev/null
+++ b/source/blender/freestyle/intern/README.TXT
@@ -0,0 +1,51 @@
+Freestyle, a procedural line drawing system
+http://freestyle.sourceforge.net
+
+INTRODUCTION
+------------
+Freestyle is a software for Non-Photorealistic Line Drawing rendering
+from 3D scenes. It is designed as a programmable interface to allow
+maximum control over the style of the final drawing: the user
+"programs" how the silhouettes and other feature lines from the 3D
+model should be turned into stylized strokes using a set of
+programmable operators dedicated to style description. This
+programmable approach, inspired by the shading languages available in
+photorealistic renderers such as Pixar's RenderMan, overcomes the
+limitations of integrated software with access to a limited number of
+parameters and permits the design of an infinite variety of rich and
+complex styles. The system currently focuses on pure line drawing as a
+first step. The style description language is Python augmented with
+our set of operators. Freestyle was developed in the framework of a
+research project dedicated to the study of stylized line drawing
+rendering from 3D scenes. Details about this research can be found at:
+
+http://artis.imag.fr/Projects/Style
+
+This software is distributed under
+the terms of the GPL License.
+
+INSTALL
+-------
+Please see the file INSTALL.TXT for instructions on installation.
+
+REQUIREMENTS
+------------
+- OpenGL >= 1.2
+- libQGLViewer = 2.2.5-1
+- lib3ds = 1.2
+- Qt = 4.2.3
+- SWIG = 1.3.31
+- Python = 2.5
+
+For Linux and MacOSX:
+- g++ = 4.0 or 4.1
+
+For Windows:
+- Visual Studio = 2003 or 2005
+
+CONTACTING THE AUTHORS
+----------------------
+See the AUTHORS.TXT file for contact information.
+
+Thank you for your interest in this project, we hope you enjoy using it.
+---
diff --git a/source/blender/freestyle/intern/THANKS.TXT b/source/blender/freestyle/intern/THANKS.TXT
new file mode 100755
index 00000000000..3147715a63f
--- /dev/null
+++ b/source/blender/freestyle/intern/THANKS.TXT
@@ -0,0 +1,6 @@
+The following is an incomplete list of people that have contributed to this
+project in some way or another, in no particular order...
+
+* Thomas Netter (lib3ds fix)
+* Gilles Debunne, creator and maintainer of the great libQGLViewer.
+* Mark Rose, for his work on the SWIG director feature, and his help.
diff --git a/source/blender/freestyle/intern/TODO.TXT b/source/blender/freestyle/intern/TODO.TXT
new file mode 100755
index 00000000000..2e24752e026
--- /dev/null
+++ b/source/blender/freestyle/intern/TODO.TXT
@@ -0,0 +1,9 @@
+sgrabli:
+--------
+
+* Update help and make it display correctly
+* Recode the ViewMap building - the Y junctions are not detected for smooth objects right now.
+* Check the strokes strippification code. It seems some parts are inverted.
+* Fix the pbuffer so that ATI cards are supported
+
+* Merge Chain and Stroke classes (to Stroke) and improve the base of operators (select, chain, split, shade) consquently (also think about a way to easily specify the pipeline synchronization mode).
diff --git a/source/blender/freestyle/intern/app/AppAboutWindow.cpp b/source/blender/freestyle/intern/app/AppAboutWindow.cpp
new file mode 100755
index 00000000000..d20e3f4e1ac
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppAboutWindow.cpp
@@ -0,0 +1,36 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <qmessagebox.h>
+#include "AppConfig.h"
+#include "AppAboutWindow.h"
+
+void AppAboutWindow::display() {
+ QMessageBox* mb;
+
+ mb = new QMessageBox("About " + Config::APPLICATION_NAME,
+ Config::ABOUT_STRING,
+ QMessageBox::NoIcon,
+ QMessageBox::Ok | QMessageBox::Default, QMessageBox::NoButton, QMessageBox::NoButton,
+ NULL,
+ (Qt::WFlags)(Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint | Qt::WA_DeleteOnClose));
+ mb->show();
+}
diff --git a/source/blender/freestyle/intern/app/AppAboutWindow.h b/source/blender/freestyle/intern/app/AppAboutWindow.h
new file mode 100755
index 00000000000..ee04d27ae71
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppAboutWindow.h
@@ -0,0 +1,40 @@
+//
+// Filename : AppAboutWindow.h
+// Author : Emmanuel Turquin
+// Purpose : Class to display a "About" window
+// Date of creation : 13/06/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef APPABOUTWINDOWS_H
+# define APPABOUTWINDOWS_H
+
+class AppAboutWindow
+{
+ public:
+
+ static void display();
+};
+
+#endif // APPABOUTWINDOWS_H
diff --git a/source/blender/freestyle/intern/app/AppCanvas.cpp b/source/blender/freestyle/intern/app/AppCanvas.cpp
new file mode 100755
index 00000000000..60d36880c12
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppCanvas.cpp
@@ -0,0 +1,404 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "AppGLWidget.h"
+#include "../image/Image.h"
+#include "../system/TimeStamp.h"
+#include "Controller.h"
+#include "../stroke/StrokeRenderer.h"
+#include "AppCanvas.h"
+#include "../rendering/GLRenderer.h"
+#include "../rendering/GLStrokeRenderer.h"
+#include "../rendering/GLUtils.h"
+#include "AppConfig.h"
+#include <QImage>
+
+#ifdef WIN32
+# include <windows.h>
+# include "../rendering/extgl.h"
+#endif
+#ifdef __MACH__
+# include <OpenGL/gl.h>
+#else
+# include <GL/gl.h>
+#endif
+
+AppCanvas::AppCanvas()
+:Canvas()
+{
+ _pViewer = 0;
+ _blendEquation = true;
+ _MapsPath = (const char*)(Config::Path::getInstance()->getMapsDir().toAscii().data());
+}
+
+AppCanvas::AppCanvas(AppGLWidget* iViewer)
+:Canvas()
+{
+ _pViewer = iViewer;
+ _blendEquation = true;
+}
+
+AppCanvas::AppCanvas(const AppCanvas& iBrother)
+:Canvas(iBrother)
+{
+ _pViewer = iBrother._pViewer;
+ _blendEquation = iBrother._blendEquation;
+}
+
+AppCanvas::~AppCanvas()
+{
+ _pViewer = 0;
+}
+
+void AppCanvas::SetViewer(AppGLWidget *iViewer)
+{
+ _pViewer = iViewer;
+}
+
+int AppCanvas::width() const
+{
+ return _pViewer->width();
+}
+
+int AppCanvas::height() const
+{
+ return _pViewer->height();
+}
+
+BBox<Vec3r> AppCanvas::scene3DBBox() const
+{
+ return _pViewer->scene3DBBox();
+}
+
+void AppCanvas::preDraw()
+{
+ Canvas::preDraw();
+
+ _pViewer->prepareCanvas();
+ glClearColor(0,0,0,0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glDisable(GL_LIGHTING);
+ glPolygonMode(GL_FRONT, GL_FILL);
+ glShadeModel(GL_SMOOTH);
+ glDisable(GL_DEPTH_TEST);
+ glEnable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+}
+
+void AppCanvas::init()
+{
+#ifdef WIN32
+ static bool firsttime = true;
+ if (firsttime)
+ {
+ if (extgl_Initialize() != 0)
+ cerr << "Error: problem occurred while initializing GL extensions" << endl;
+ else
+ cout << "GL extensions initialized" << endl;
+
+ if(!glutils_extgl_GetProcAddress("glBlendEquation")){
+ _blendEquation = false;
+ cout << "glBlendEquation unavailable on this hardware -> switching to strokes basic rendering mode" << endl;
+ }
+ firsttime=false;
+ }
+#endif
+
+ _Renderer = new GLStrokeRenderer;
+ if(!StrokeRenderer::loadTextures())
+ {
+ cerr << "unable to load stroke textures" << endl;
+ return;
+ }
+}
+
+void AppCanvas::postDraw()
+{
+ //inverse frame buffer
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+ _pViewer->releaseCanvas();
+
+ Canvas::postDraw();
+}
+
+void AppCanvas::Erase()
+{
+ Canvas::Erase();
+ //_pViewer->clear();
+}
+
+#include "../image/GaussianFilter.h"
+void AppCanvas::readColorPixels(int x,int y,int w, int h, RGBImage& oImage) const
+{
+ //static unsigned number = 0;
+ float *rgb = new float[3*w*h];
+ _pViewer->readPixels(x,y,w,h,AppGLWidget::RGB,rgb);
+ oImage.setArray(rgb, width(), height(), w,h, x, y, false);
+ // FIXME
+ // QImage qtmp(w, h, 32);
+ // for(unsigned py=0;py<h;++py){
+ // for(unsigned px=0;px<w;++px){
+ // int r = (int)255*(oImage.getR(x+px,y+py));
+ // int g = (int)255*(oImage.getG(x+px,y+py));
+ // int b = (int)255*(oImage.getB(x+px,y+py));
+ // qtmp.setPixel(px,py,qRgb(r,g,b));
+ // }
+ // }
+ // qtmp.save("densityQuery"+QString::number(number)+".png", "PNG");
+ // if(number == 1090){
+ // RGBImage img;
+ // float *rgbtmp = new float[3*width()*height()];
+ // _pViewer->readPixels(0,0,width(),height(),AppGLWidget::RGB,rgbtmp);
+ // img.setArray(rgbtmp, width(), height(), width(), height(), 0, 0, false);
+ // QImage qtmp(width(), height(), 32);
+ // for(unsigned py=0;py<height();++py){
+ // for(unsigned px=0;px<width();++px){
+ // int r = (int)255*(img.getR(px,py));
+ // int g = (int)255*(img.getG(px,py));
+ // int b = (int)255*(img.getB(px,py));
+ // qtmp.setPixel(px,height()-1-py,qRgb(r,g,b));
+ // }
+ // }
+ // qtmp.save("densityQuery"+QString::number(number)+".png", "PNG");
+ //
+ // GaussianFilter filter;
+ // filter.SetSigma(4.0);
+ // int bound = filter.getBound();
+ // QImage qtmp2(width(), height(), 32);
+ // for(int py2=0;py2<height();++py2){
+ // for(int px2=0;px2<width();++px2){
+ // if( (px2-bound < 0) || (px2+bound>width())
+ // || (py2-bound < 0) || (py2+bound>height()))
+ // continue;
+ // int g = 255*filter.getSmoothedPixel<RGBImage>(&img, px2,py2);
+ // qtmp2.setPixel(px2,height()-1-py2,qRgb(g,g,g));
+ // }
+ // }
+ // qtmp2.save("blurredCausalDensity"+QString::number(number)+".png", "PNG");
+ // }
+ // cout << number << endl;
+ // ++number;
+}
+
+void AppCanvas::readDepthPixels(int x,int y,int w, int h, GrayImage& oImage) const
+{
+ float *rgb = new float[w*h];
+ _pViewer->readPixels(x,y,w,h,AppGLWidget::DEPTH,rgb);
+ oImage.setArray(rgb, width(), height(), w,h, x, y, false);
+}
+
+void AppCanvas::update()
+{
+// static int counter = 0;
+// char fileName[100] = "framebuffer";
+// char number[10];
+//
+ _pViewer->updateGL();
+ _pViewer->swapBuffers();
+ //QImage fb = _pViewer->grabFrameBuffer();
+ // sprintf(number, "%3d", counter);
+ // strcat(fileName, number);
+ // strcat(fileName, ".bmp");
+ // fb.save(fileName, "BMP");
+ //counter++;
+}
+
+void AppCanvas::Render(const StrokeRenderer *iRenderer)
+{
+ if(!_blendEquation){
+ RenderBasic(iRenderer);
+ return;
+ }
+
+ glClearColor(1,1,1,1);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glDisable(GL_LIGHTING);
+ glPolygonMode(GL_FRONT, GL_FILL);
+ glShadeModel(GL_SMOOTH);
+
+ if(_pViewer->draw3DsceneEnabled())
+ {
+ glClearColor(1,1,1,0);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_DEPTH_TEST);
+ _pViewer->Set3DContext();
+ _pViewer->DrawScene(_pViewer->glRenderer());
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_LIGHTING);
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+ }
+
+
+ glDisable(GL_DEPTH_TEST);
+ glBlendEquation(GL_ADD);
+
+ glBlendFunc(GL_DST_COLOR, GL_ZERO);
+
+ if(_drawPaper)
+ {
+ glEnable(GL_BLEND);
+ glEnable(GL_TEXTURE_2D);
+ float zfar = _pViewer->zfar();
+ zfar = zfar+0.1*zfar;
+ //draw background paper // FIXME
+ //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glBindTexture(GL_TEXTURE_2D, StrokeRenderer::_textureManager->getPaperTextureIndex(_paperTextureIndex));
+ glColor4f(1,1,1,0.0);
+ glBegin(GL_TRIANGLE_STRIP);
+ {
+ glTexCoord2f(0,0); glVertex3f(0, 0, -1);
+ glTexCoord2f(4,0); glVertex3f(2048, 0, -1);
+ glTexCoord2f(0,4); glVertex3f(0, 2048, -1);
+ glTexCoord2f(4,4); glVertex3f(2048, 2048, -1);
+ }
+ glEnd();
+ }
+
+ glPushAttrib(GL_COLOR_BUFFER_BIT);
+ glBlendEquation(GL_FUNC_SUBTRACT);
+ glBlendFunc(GL_ONE, GL_ONE);
+
+ glDisable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+ glColor4f(1,1,1,1);
+ glBegin(GL_TRIANGLE_STRIP);
+ {
+ glVertex2f(0, 0);
+ glVertex2f(2048, 0);
+ glVertex2f(0, 2048);
+ glVertex2f(2048, 2048);
+ }
+ glEnd();
+ glPopAttrib();
+
+ glDisable(GL_DEPTH_TEST);
+ glBlendEquation(GL_ADD);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+
+ glEnable(GL_TEXTURE_2D);
+ Canvas::Render(iRenderer);
+ //
+ glPushAttrib(GL_COLOR_BUFFER_BIT);
+ glBlendEquation(GL_FUNC_SUBTRACT);
+ glBlendFunc(GL_ONE, GL_ONE);
+
+ glDisable(GL_TEXTURE_2D);
+ glEnable(GL_BLEND);
+ glColor3f(1,1,1);
+ glBegin(GL_TRIANGLE_STRIP);
+ {
+ glVertex2f(0, 0);
+ glVertex2f(2048, 0);
+ glVertex2f(0, 2048);
+ glVertex2f(2048, 2048);
+ }
+ glEnd();
+ glPopAttrib();
+
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+}
+
+void AppCanvas::RenderBasic(const StrokeRenderer *iRenderer)
+{
+ glClearColor(1,1,1,1);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glDisable(GL_LIGHTING);
+ glPolygonMode(GL_FRONT, GL_FILL);
+ glShadeModel(GL_SMOOTH);
+
+ if(_pViewer->draw3DsceneEnabled())
+ {
+ glClearColor(1,1,1,0);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glMatrixMode(GL_PROJECTION);
+ glPushMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_DEPTH_TEST);
+ _pViewer->Set3DContext();
+ _pViewer->DrawScene(_pViewer->glRenderer());
+ glDisable(GL_DEPTH_TEST);
+ glDisable(GL_LIGHTING);
+ glMatrixMode(GL_PROJECTION);
+ glPopMatrix();
+ glMatrixMode(GL_MODELVIEW);
+ glPopMatrix();
+ }
+
+ glBlendFunc(GL_DST_COLOR, GL_ZERO);
+ if(_drawPaper)
+ {
+ glEnable(GL_BLEND);
+ glEnable(GL_TEXTURE_2D);
+ float zfar = _pViewer->zfar();
+ zfar = zfar+0.1*zfar;
+ //draw background paper // FIXME
+ //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glBindTexture(GL_TEXTURE_2D, StrokeRenderer::_textureManager->getPaperTextureIndex(_paperTextureIndex));
+ glColor4f(1,1,1,0.0);
+ glBegin(GL_TRIANGLE_STRIP);
+ {
+ glTexCoord2f(0,0); glVertex3f(0, 0, -1);
+ glTexCoord2f(4,0); glVertex3f(2048, 0, -1);
+ glTexCoord2f(0,4); glVertex3f(0, 2048, -1);
+ glTexCoord2f(4,4); glVertex3f(2048, 2048, -1);
+ }
+ glEnd();
+ }
+
+ glDisable(GL_DEPTH_TEST);
+ glPushAttrib(GL_COLOR_BUFFER_BIT);
+ glEnable(GL_BLEND);
+ glPopAttrib();
+
+ glDisable(GL_DEPTH_TEST);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+
+ glEnable(GL_TEXTURE_2D);
+ Canvas::RenderBasic(iRenderer);
+
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_BLEND);
+}
+
+
+void AppCanvas::RenderStroke(Stroke *iStroke) {
+ iStroke->Render(_Renderer);
+ if(_pViewer->getRecordFlag()){
+ //Sleep(1000);
+ _pViewer->saveSnapshot(true);
+ }
+}
diff --git a/source/blender/freestyle/intern/app/AppCanvas.h b/source/blender/freestyle/intern/app/AppCanvas.h
new file mode 100755
index 00000000000..703970c0fb1
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppCanvas.h
@@ -0,0 +1,84 @@
+#ifndef ARTCANVAS_H
+#define ARTCANVAS_H
+
+//------------------------------------------------------------------------------------------//
+//
+// FileName : AppCanvas.h
+// Author : Stephane Grabli
+// Purpose : Class to define the App Canvas.
+// Date Of Creation : 05/01/2003
+//
+//------------------------------------------------------------------------------------------//
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "../stroke/Canvas.h"
+
+class AppGLWidget;
+class AppCanvas : public Canvas
+{
+private:
+ mutable AppGLWidget *_pViewer;
+ bool _blendEquation;
+public:
+ AppCanvas();
+ AppCanvas(AppGLWidget *iViewer);
+ AppCanvas(const AppCanvas& iBrother);
+ virtual ~AppCanvas();
+
+ /*! operations that need to be done before a draw */
+ virtual void preDraw();
+
+ /*! operations that need to be done after a draw */
+ virtual void postDraw();
+
+ /*! Erases the layers and clears the canvas */
+ virtual void Erase();
+
+ /* init the canvas */
+ virtual void init();
+
+ /*! Reads a pixel area from the canvas */
+ virtual void readColorPixels(int x,int y,int w, int h, RGBImage& oImage) const;
+ /*! Reads a depth pixel area from the canvas */
+ virtual void readDepthPixels(int x,int y,int w, int h, GrayImage& oImage) const;
+
+ virtual BBox<Vec3r> scene3DBBox() const ;
+
+ /*! update the canvas (display) */
+ virtual void update() ;
+
+ /*! Renders the created strokes */
+ virtual void Render(const StrokeRenderer *iRenderer);
+ virtual void RenderBasic(const StrokeRenderer *iRenderer);
+ virtual void RenderStroke(Stroke *iStroke) ;
+
+ /*! accessors */
+ virtual int width() const ;
+ virtual int height() const ;
+ inline const AppGLWidget * viewer() const {return _pViewer;}
+
+ /*! modifiers */
+ void SetViewer(AppGLWidget *iViewer) ;
+};
+
+
+#endif
diff --git a/source/blender/freestyle/intern/app/AppConfig.cpp b/source/blender/freestyle/intern/app/AppConfig.cpp
new file mode 100755
index 00000000000..217f58ee806
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppConfig.cpp
@@ -0,0 +1,120 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "AppConfig.h"
+#include <iostream>
+using namespace std;
+namespace Config{
+ Path* Path::_pInstance = 0;
+ Path::Path(){
+ // get the home directory
+ _HomeDir = getEnvVar("HOME");
+ // get the root directory
+ setRootDir(getEnvVar("FREESTYLE_DIR"));
+ //setRootDir(QString("."));
+ _pInstance = this;
+ }
+ void Path::setRootDir(const QString& iRootDir){
+ _ProjectDir = iRootDir;
+ _ModelsPath = "";
+ _PatternsPath = _ProjectDir +
+ QString(DIR_SEP.c_str()) +
+ "data" +
+ QString(DIR_SEP.c_str()) +
+ "textures" +
+ QString(DIR_SEP.c_str()) +
+ "variation_patterns" +
+ QString(DIR_SEP.c_str());
+ _BrushesPath = _ProjectDir +
+ QString(DIR_SEP.c_str()) +
+ "data" +
+ QString(DIR_SEP.c_str()) +
+ "textures" +
+ QString(DIR_SEP.c_str()) +
+ "brushes" +
+ QString(DIR_SEP.c_str());
+ _PythonPath = _ProjectDir +
+ QString(DIR_SEP.c_str()) +
+ "python" +
+ QString(PATH_SEP.c_str()) +
+ _ProjectDir +
+ QString(DIR_SEP.c_str()) +
+ "style_modules" +
+ QString(DIR_SEP.c_str()) ;
+ if (getenv("PYTHONPATH")) {
+ _PythonPath += QString(PATH_SEP.c_str()) + QString(getenv("PYTHONPATH"));
+ }
+#ifdef WIN32
+ _BrowserCmd = "C:\\Program Files\\Internet Explorer\\iexplore.exe %s";
+#else
+ _BrowserCmd = "mozilla %s";
+#endif
+ _HelpIndexPath = _ProjectDir +
+ QString(DIR_SEP.c_str()) +
+ "doc" +
+ QString(DIR_SEP.c_str()) +
+ "html" +
+ QString(DIR_SEP.c_str()) +
+ "index.html";
+ _PapersDir = _ProjectDir +
+ QString(DIR_SEP.c_str()) +
+ "data" +
+ QString(DIR_SEP.c_str()) +
+ "textures" +
+ QString(DIR_SEP.c_str()) +
+ "papers" +
+ QString(DIR_SEP.c_str());
+ _EnvMapDir = _ProjectDir +
+ QString(DIR_SEP.c_str()) +
+ "data" +
+ QString(DIR_SEP.c_str()) +
+ "env_map" +
+ QString(DIR_SEP.c_str());
+ _MapsDir = _ProjectDir +
+ QString(DIR_SEP.c_str()) +
+ "data" +
+ QString(DIR_SEP.c_str()) +
+ "maps" +
+ QString(DIR_SEP.c_str());
+ }
+ void Path::setHomeDir(const QString& iHomeDir){
+ _HomeDir = iHomeDir;
+ }
+ Path::~Path(){
+ _pInstance = 0;
+ }
+ Path* Path::getInstance() {
+ return _pInstance;
+ }
+ QString Path::getEnvVar(const QString& iEnvVarName){
+ QString value;
+ if (!getenv(iEnvVarName.toAscii().data())) {
+ cerr << "Warning: You may want to set the $"<< iEnvVarName.toAscii().data()
+ << " environment variable to use " << QString(Config::APPLICATION_NAME).toAscii().data() << "." << endl
+ << " Otherwise, the current directory will be used instead." << endl;
+ value = ".";
+ }else{
+ value = getenv(iEnvVarName.toAscii().data());
+ }
+ return value;
+ }
+
+} // End of namepace Config
+
diff --git a/source/blender/freestyle/intern/app/AppConfig.h b/source/blender/freestyle/intern/app/AppConfig.h
new file mode 100755
index 00000000000..54e00571275
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppConfig.h
@@ -0,0 +1,125 @@
+//
+// Filename : AppConfig.h
+// Author : Emmanuel Turquin
+// Purpose : Configuration file
+// Date of creation : 26/02/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef APP_CONFIG_H
+# define APP_CONFIG_H
+
+# include <qstring.h>
+# include "../system/FreestyleConfig.h"
+# include "../system/Precision.h"
+
+using namespace std;
+
+namespace Config {
+
+ class Path{
+ protected:
+ static Path * _pInstance;
+ QString _ProjectDir;
+ QString _ModelsPath;
+ QString _PatternsPath;
+ QString _BrushesPath;
+ QString _PythonPath;
+ QString _BrowserCmd;
+ QString _HelpIndexPath;
+ QString _PapersDir;
+ QString _EnvMapDir;
+ QString _MapsDir;
+ QString _HomeDir;
+ public:
+ Path();
+ virtual ~Path();
+ static Path* getInstance();
+
+ void setRootDir(const QString& iRootDir) ;
+ void setHomeDir(const QString& iHomeDir) ;
+
+ const QString& getProjectDir() const {return _ProjectDir;}
+ const QString& getModelsPath() const {return _ModelsPath;}
+ const QString& getPatternsPath() const {return _PatternsPath;}
+ const QString& getBrushesPath() const {return _BrushesPath;}
+ const QString& getPythonPath() const {return _PythonPath;}
+ const QString& getBrowserCmd() const {return _BrowserCmd;}
+ const QString& getHelpIndexpath() const {return _HelpIndexPath;}
+ const QString& getPapersDir() const {return _PapersDir;}
+ const QString& getEnvMapDir() const {return _EnvMapDir;}
+ const QString& getMapsDir() const {return _MapsDir;}
+ const QString& getHomeDir() const {return _HomeDir;}
+
+ static QString getEnvVar(const QString& iEnvVarName);
+
+ };
+
+ //
+ // Configuration, default values
+ //
+ //////////////////////////////////////////////////////////////
+
+ // Application
+ static const QString APPLICATION_NAME(APPNAME);
+ static const QString APPLICATION_VERSION(APPVERSION);
+
+ // ViewMap
+ static const QString VIEWMAP_EXTENSION("vm");
+ static const QString VIEWMAP_MAGIC("ViewMap File");
+ static const QString VIEWMAP_VERSION("1.9");
+
+ // Style modules
+ static const QString STYLE_MODULE_EXTENSION("py");
+ static const QString STYLE_MODULES_LIST_EXTENSION("sml");
+
+ // Options
+ static const QString OPTIONS_DIR("." + APPLICATION_NAME);
+ static const QString OPTIONS_FILE("options.xml");
+ static const QString OPTIONS_CURRENT_DIRS_FILE("current_dirs.xml");
+ static const QString OPTIONS_QGLVIEWER_FILE("qglviewer.xml");
+
+ // Default options
+ static const real DEFAULT_SPHERE_RADIUS = 1.0;
+ static const real DEFAULT_DKR_EPSILON = 0.0;
+
+ // Papers
+ static const QString DEFAULT_PAPER_TEXTURE("whitepaper.jpg");
+
+ // Help & About texts
+ static const QString HELP_FILE("help.html");
+ static const QString ABOUT_STRING
+ (
+ "<CENTER><H2>" + APPLICATION_NAME + " " + APPLICATION_VERSION + "</H2>"
+ "<P>A programmable line drawing system</P></CENTER>"
+ "<UL>"
+ "<LI>Frédo Durand"
+ "<LI>Stéphane Grabli"
+ "<LI>François Sillion"
+ "<LI>Emmanuel Turquin"
+ "</UL>"
+ "<CENTER><B>(C) Artis 2003</B></CENTER>"
+ );
+
+} // End of namepace Config
+
+#endif // APP_CONFIG_H
diff --git a/source/blender/freestyle/intern/app/AppDensityCurvesWindow.cpp b/source/blender/freestyle/intern/app/AppDensityCurvesWindow.cpp
new file mode 100755
index 00000000000..fe2ae994f77
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppDensityCurvesWindow.cpp
@@ -0,0 +1,65 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "AppDensityCurvesWindow.h"
+#include "../scene_graph/NodeGroup.h"
+#include "AppGL2DCurvesViewer.h"
+#include <vector>
+using namespace std;
+
+
+AppDensityCurvesWindow::AppDensityCurvesWindow(QWidget *parent, const char *name, bool modal, Qt::WFlags fl)
+ : QDialog(parent, fl)
+{
+ setupUi(this);
+}
+AppDensityCurvesWindow::~AppDensityCurvesWindow(){
+}
+
+void AppDensityCurvesWindow::SetOrientationCurve(int i, const Vec2d& vmin, const Vec2d& vmax, const vector<Vec3r>& iCurve, const char *xlabel, const char *ylabel){
+ AppGL2DCurvesViewer * viewer = 0;
+ switch(i){
+ case 0:viewer = CurvesViewer0; break;
+ case 1:viewer = CurvesViewer1; break;
+ case 2:viewer = CurvesViewer2; break;
+ case 3:viewer = CurvesViewer3; break;
+ case 4:viewer = CurvesViewer4; break;
+ default:return;
+ }
+
+ viewer->SetCurve(vmin, vmax, iCurve, xlabel, ylabel);
+}
+
+void AppDensityCurvesWindow::SetLevelCurve(int i, const Vec2d& vmin, const Vec2d& vmax, const vector<Vec3r>& iCurve, const char *xlabel, const char *ylabel){
+ AppGL2DCurvesViewer * viewer = 0;
+ switch(i){
+ case 1:viewer = LevelCurveViewer1; break;
+ case 2:viewer = LevelCurveViewer2; break;
+ case 3:viewer = LevelCurveViewer3; break;
+ case 4:viewer = LevelCurveViewer4; break;
+ case 5:viewer = LevelCurveViewer5; break;
+ case 6:viewer = LevelCurveViewer6; break;
+ case 7:viewer = LevelCurveViewer7; break;
+ case 8:viewer = LevelCurveViewer8; break;
+ default:return;
+ }
+
+ viewer->SetCurve(vmin, vmax, iCurve, xlabel, ylabel);
+}
diff --git a/source/blender/freestyle/intern/app/AppDensityCurvesWindow.h b/source/blender/freestyle/intern/app/AppDensityCurvesWindow.h
new file mode 100755
index 00000000000..d7091440e06
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppDensityCurvesWindow.h
@@ -0,0 +1,85 @@
+//
+// Filename : AppDensityCurvesWindow.h
+// Author : Stephane Grabli
+// Purpose : Class to define the density curves display window
+// Date of creation : 14/03/04
+//
+///////////////////////////////////////////////////////////////////////////////
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef APPDENSITYCURVESWINDOW_H
+# define APPDENSITYCURVESWINDOW_H
+
+#include "ui_dir/ui_densitycurveswindow4.h"
+#include <vector>
+#include "../geometry/Geom.h"
+using namespace std;
+using namespace Geometry;
+using namespace Ui;
+
+class NodeGroup;
+
+class AppDensityCurvesWindow : public QDialog, public DensityCurvesWindow
+{
+Q_OBJECT
+public:
+ AppDensityCurvesWindow(QWidget *parent = 0, const char *name = 0, bool modal = FALSE, Qt::WFlags fl = 0);
+ virtual ~AppDensityCurvesWindow();
+
+ /*! Sets the node that contains the orientation curve i in
+ * viewer i (among 5).
+ * \param i
+ * The number of the viewer where the curve must be displayed.(0<=i<5).
+ * \param vmin
+ * The x,y min of the curve
+ * \param vmax
+ * The x,y max of the curve
+ * \param iCurve
+ * The array of XYZ coordinates of the points.
+ * \param xlabel
+ * The label of the x-axis
+ * \param ylabel
+ * The label of the y-axis
+ */
+ void SetOrientationCurve(int i, const Vec2d& vmin, const Vec2d& vmax, const vector<Vec3r>& iCurve, const char *xlabel, const char *ylabel);
+
+ /*! Sets the node that contains the level curve i in
+ * viewer i (i in [1,8]).
+ * \param i
+ * The number of the viewer where the curve must be displayed.(0<=i<5).
+ * \param vmin
+ * The x,y min of the curve
+ * \param vmax
+ * The x,y max of the curve
+ * \param iCurve
+ * The array of XYZ coordinates of the points.
+ * \param xlabel
+ * The label of the x-axis
+ * \param ylabel
+ * The label of the y-axis
+ */
+ void SetLevelCurve(int i, const Vec2d& vmin, const Vec2d& vmax, const vector<Vec3r>& iCurve, const char *xlabel, const char *ylabel);
+};
+
+#endif // APPDENSITYCURVESWINDOW_H
+
+
diff --git a/source/blender/freestyle/intern/app/AppGL2DCurvesViewer.cpp b/source/blender/freestyle/intern/app/AppGL2DCurvesViewer.cpp
new file mode 100755
index 00000000000..0915a4c3cbd
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppGL2DCurvesViewer.cpp
@@ -0,0 +1,152 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "AppGL2DCurvesViewer.h"
+#include "../rendering/GLRenderer.h"
+#include "../scene_graph/NodeShape.h"
+#include "../scene_graph/LineRep.h"
+#include "../scene_graph/VertexRep.h"
+
+AppGL2DCurvesViewer::AppGL2DCurvesViewer(QWidget *iParent, const char *iName)
+: QGLViewer(iParent)
+{
+ _RootNode.SetLightingEnabled(false);
+ _RootNode.SetLineWidth(1.0);
+ _pGLRenderer = new GLRenderer;
+}
+AppGL2DCurvesViewer::~AppGL2DCurvesViewer(){
+ makeCurrent();
+ _RootNode.destroy();
+ if(_pGLRenderer)
+ delete _pGLRenderer;
+}
+
+void AppGL2DCurvesViewer::SetRange(const Vec2d& vmin, const Vec2d& vmax, const char * xlabel, const char *ylabel){
+ _vmin = vmin;
+ _vmax = vmax;
+ _xmargin = (vmax.x()-vmin.x())/20.0;
+ _ymargin = (vmax.y()-vmin.y())/20.0;
+ _left = vmin.x()-_xmargin;
+ _right = vmax.x()+_xmargin;
+ _bottom = vmin.y()- _ymargin;
+ _top = vmax.y()+_ymargin;
+ if(xlabel)
+ _xlabel = xlabel;
+ if(ylabel)
+ _ylabel = ylabel;
+}
+void AppGL2DCurvesViewer::SetCurve(const Vec2d& vmin, const Vec2d& vmax, const vector<Vec3r>& iPoints, const char *xlabel, const char *ylabel){
+ SetRange(vmin, vmax, xlabel, ylabel);
+ vector<Node*> nodes;
+ _RootNode.RetrieveChildren(nodes);
+ _RootNode.DetachChildren();
+ for(vector<Node*>::iterator n=nodes.begin(), nend=nodes.end();
+ n!=nend;
+ ++n){
+ delete (*n);
+ }
+ _curve.clear();
+ _curve = iPoints;
+ NodeGroup * curveNode = new NodeGroup;
+ NodeShape * shape = new NodeShape;
+ shape->material().SetDiffuse(0,0,0,1);
+ curveNode->AddChild(shape);
+ shape->AddRep(new LineRep(iPoints));
+ for(vector<Vec3r>::const_iterator v=iPoints.begin(), vend=iPoints.end();
+ v!=vend;
+ ++v){
+ shape->AddRep(new VertexRep(v->x(), v->y(), v->z()));
+ }
+ _RootNode.AddChild(curveNode);
+ updateGL();
+}
+
+void AppGL2DCurvesViewer::AddNode(Node* iNode){
+ _RootNode.AddChild(iNode);
+}
+
+void AppGL2DCurvesViewer::DetachNode(Node* iNode){
+ _RootNode.DetachChild(iNode);
+}
+
+void AppGL2DCurvesViewer::RetrieveNodes(vector<Node*>& oNodes){
+ _RootNode.RetrieveChildren(oNodes);
+}
+
+void AppGL2DCurvesViewer::init(){
+ glClearColor(1,1,1,1);
+ _left = 0;
+ _right = width();
+ _bottom = 0;
+ _top = height();
+}
+void AppGL2DCurvesViewer::draw(){
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+
+// // Projection Matrix
+// //==================
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(_left,_right, _bottom, _top, -1.0, 1.0);
+
+ //Modelview Matrix
+ //================
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glDisable(GL_DEPTH_TEST);
+ // draw axis
+ glColor3f(0.5, 0.5, 0.5);
+ // x axis
+ glBegin(GL_LINES);
+ glVertex2f(_left, _vmin.y());
+ glVertex2f(_vmax.x(), _vmin.y());
+ glEnd();
+ QFont serifFont( "Times", 8);
+ if(!_xlabel.isEmpty()){
+ renderText(width()-30, height()-1, _xlabel, serifFont);
+ //renderText(_vmax.x()-_xmargin, _vmin.y(), 0, _xlabel, serifFont);
+ }
+
+ // y axis
+ glBegin(GL_LINES);
+ glVertex2f(_vmin.x(), _bottom);
+ glVertex2f(_vmin.x(), _vmax.y());
+ glEnd();
+ if(!_ylabel.isEmpty()){
+ //renderText(_vmin.x(), _vmax.y()-3*_ymargin, _ylabel, serifFont);
+ renderText(12, 10, _ylabel, serifFont);
+ }
+ _RootNode.accept(*_pGLRenderer);
+ serifFont.setPointSize(7);
+ for(vector<Vec3r>::iterator v=_curve.begin(), vend=_curve.end();
+ v!=vend;
+ ++v){
+ if(v->y() == 0)
+ continue;
+ QString label = QString( "(%1, %2)" )
+ .arg( (int)v->x())
+ .arg( v->y(), 0, 'E', 1 );
+
+ renderText(v->x(), v->y(), 0, label, serifFont);
+ }
+ glPopAttrib();
+
+} \ No newline at end of file
diff --git a/source/blender/freestyle/intern/app/AppGL2DCurvesViewer.h b/source/blender/freestyle/intern/app/AppGL2DCurvesViewer.h
new file mode 100755
index 00000000000..c0bb8b4109c
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppGL2DCurvesViewer.h
@@ -0,0 +1,80 @@
+//
+// Filename : AppGL2DCurvesViewer.h
+// Author : Stephane Grabli
+// Purpose : 2D GL Curves viewer
+// Date of creation : 14/03/2004
+//
+///////////////////////////////////////////////////////////////////////////////
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef APPGL2DCURVESVIEWER_H
+# define APPGL2DCURVESVIEWER_H
+
+# include <QGLViewer/qglviewer.h>
+# include "../scene_graph/NodeDrawingStyle.h"
+# include <qstring.h>
+
+class GLRenderer;
+
+class AppGL2DCurvesViewer : public QGLViewer
+{
+ Q_OBJECT
+
+public:
+
+ AppGL2DCurvesViewer(QWidget *iParent, const char *iName = 0);
+ virtual ~AppGL2DCurvesViewer();
+
+ /*! Sets the ranges.
+ */
+ void SetRange(const Vec2d& vmin, const Vec2d& vmax, const char * xlabel, const char *ylabel);
+ void SetCurve(const Vec2d& vmin, const Vec2d& vmax, const vector<Vec3r>& iPoints, const char *xlabel, const char *ylabel);
+ void AddNode(Node* iNode);
+ void DetachNode(Node* iNode);
+ void RetrieveNodes(vector<Node*>& oNodes);
+
+ virtual QSize sizeHint() const {return QSize(200,200);}
+ virtual QSizePolicy sizePolicy() const {return QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);}
+protected:
+ virtual void init();
+ virtual void draw();
+
+private:
+ NodeDrawingStyle _RootNode;
+ GLRenderer *_pGLRenderer;
+ vector<Vec3r> _curve;
+ Vec2d _vmin; // curve bbox min
+ Vec2d _vmax; // curve bbox max
+ double _left; // frustum clipping planes (slightly differemt from the bbox for a clear view)
+ double _right;
+ double _bottom;
+ float _xmargin; // margin around plot in x direction
+ float _ymargin; // margin around plot in y direction
+ double _top;
+ QString _xlabel;
+ QString _ylabel;
+
+};
+
+
+#endif // APPGL2DCURVESVIEWER_H
+
diff --git a/source/blender/freestyle/intern/app/AppGLWidget.cpp b/source/blender/freestyle/intern/app/AppGLWidget.cpp
new file mode 100755
index 00000000000..d59ad716c18
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppGLWidget.cpp
@@ -0,0 +1,1049 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <iostream>
+#include <qtextstream.h>
+#include <qimage.h>
+#include <qtabwidget.h>
+#include <qtextedit.h>
+#include <QMouseEvent>
+#include "../stroke/Canvas.h"
+#include "AppGLWidget.h"
+#include "../scene_graph/NodeLight.h"
+#include "../rendering/GLRenderer.h"
+#include "../rendering/GLSelectRenderer.h"
+#include "../rendering/GLBBoxRenderer.h"
+#include "../rendering/GLMonoColorRenderer.h"
+#include "Controller.h"
+#include "../view_map/Silhouette.h"
+#include "../view_map/ViewMap.h"
+#include "../scene_graph/LineRep.h"
+#include "../scene_graph/NodeShape.h"
+#include "../scene_graph/VertexRep.h"
+#include "AppConfig.h"
+
+// glut.h must be included last to avoid a conflict with stdlib.h on vc .net 2003 and 2005
+#ifdef __MACH__
+# include <GLUT/glut.h>
+#else
+# include <GL/glut.h>
+#endif
+
+GLuint texture = 0;
+
+bool AppGLWidget::_frontBufferFlag = false;
+bool AppGLWidget::_backBufferFlag = true;
+
+AppGLWidget::AppGLWidget(QWidget *iParent, const char *iName)
+ : QGLViewer(iParent)
+{
+ _Fovy = 30.f;
+ //_SceneDepth = 2.f;
+ _RenderStyle = LINE;
+ //_ModelRootNode->SetBBox(BBox<Vec3f>(Vec3f(-10.f, -10.f, -10.f), Vec3f(10.f, 10.f, 10.f)));
+ _ModelRootNode = new NodeDrawingStyle;
+ _SilhouetteRootNode = new NodeDrawingStyle;
+ _DebugRootNode = new NodeDrawingStyle;
+
+ _RootNode.AddChild(_ModelRootNode);
+ _SilhouetteRootNode->SetStyle(DrawingStyle::LINES);
+ _SilhouetteRootNode->SetLightingEnabled(false);
+ _SilhouetteRootNode->SetLineWidth(2.f);
+ _SilhouetteRootNode->SetPointSize(3.f);
+
+ _RootNode.AddChild(_SilhouetteRootNode);
+
+ _DebugRootNode->SetStyle(DrawingStyle::LINES);
+ _DebugRootNode->SetLightingEnabled(false);
+ _DebugRootNode->SetLineWidth(1.f);
+
+ _RootNode.AddChild(_DebugRootNode);
+
+ _minBBox = __min(__min(_ModelRootNode->bbox().getMin()[0],
+ _ModelRootNode->bbox().getMin()[1]),
+ _ModelRootNode->bbox().getMin()[2]);
+ _maxBBox = __max(__max(_ModelRootNode->bbox().getMax()[0],
+ _ModelRootNode->bbox().getMax()[1]),
+ _ModelRootNode->bbox().getMax()[2]);
+
+ _maxAbs = __max(rabs(_minBBox), rabs(_maxBBox));
+ _minAbs = __min(rabs(_minBBox), rabs(_maxBBox));
+
+ camera()->setZNearCoefficient(0.1);
+
+ // 2D Scene
+ // _pFENode = new NodeDrawingStyle;
+ // _pFENode->SetStyle(DrawingStyle::LINES);
+ // _pFENode->SetLightingEnabled(false);
+ // _pFENode->SetLineWidth(1.f);
+ //
+ // _p2DNode.AddChild(_pFENode);
+ //
+ // _pVisibleSilhouetteNode = new NodeDrawingStyle;
+ // _pVisibleSilhouetteNode->SetStyle(DrawingStyle::LINES);
+ // _pVisibleSilhouetteNode->SetLightingEnabled(false);
+ // _pVisibleSilhouetteNode->SetLineWidth(3.f);
+ //
+ // _p2DNode.AddChild(_pVisibleSilhouetteNode);
+ //
+ _p2DSelectionNode = new NodeDrawingStyle;
+ _p2DSelectionNode->SetLightingEnabled(false);
+ _p2DSelectionNode->SetStyle(DrawingStyle::LINES);
+ _p2DSelectionNode->SetLineWidth(5.f);
+
+ _p2DNode.AddChild(_p2DSelectionNode);
+
+ _pGLRenderer = new GLRenderer;
+ _pSelectRenderer = new GLSelectRenderer;
+ _pBBoxRenderer = new GLBBoxRenderer;
+ _pMonoColorRenderer = new GLMonoColorRenderer;
+ _pDebugRenderer = new GLDebugRenderer;
+
+ _pMainWindow = NULL;
+ _cameraStateSaved = false;
+ _drawBBox = false;
+ _silhouette = false;
+ _fedges = false;
+ _debug = false;
+ _selection_mode = false;
+ _Draw2DScene = true;
+ _Draw3DScene = true;
+ _drawEnvMap = false;
+ _currentEnvMap = 1;
+ _maxId = 0;
+ _blendFunc = 0;
+
+ const QString sep(Config::DIR_SEP.c_str());
+ const QString filename = Config::Path::getInstance()->getHomeDir() + sep +
+ Config::OPTIONS_DIR + sep + Config::OPTIONS_QGLVIEWER_FILE;
+ setStateFileName(filename);
+
+ //get camera frame:
+ qglviewer::Camera * cam = camera();
+ qglviewer::ManipulatedFrame * fr = cam->frame() ;
+ _enableUpdateSilhouettes = false;
+ connect(fr, SIGNAL(modified()), this, SLOT(updateSilhouettes()));
+ _captureMovie = false;
+ // _frontBufferFlag = false;
+ // _backBufferFlag = true;
+ _record = false;
+}
+
+AppGLWidget::~AppGLWidget()
+{
+ int ref = _RootNode.destroy();
+
+ _Light.destroy();
+ ref = _p2DNode.destroy();
+
+ if(NULL != _pGLRenderer)
+ {
+ delete _pGLRenderer;
+ _pGLRenderer = NULL;
+ }
+
+ if(NULL != _pSelectRenderer)
+ {
+ delete _pSelectRenderer;
+ _pSelectRenderer = NULL;
+ }
+
+ if(NULL != _pBBoxRenderer)
+ {
+ delete _pBBoxRenderer;
+ _pBBoxRenderer = NULL;
+ }
+
+ if(NULL != _pMonoColorRenderer)
+ {
+ delete _pMonoColorRenderer;
+ _pMonoColorRenderer = NULL;
+ }
+
+ if(NULL != _pDebugRenderer)
+ {
+ delete _pDebugRenderer;
+ _pDebugRenderer = NULL;
+ }
+
+ makeCurrent();
+ //saveToFile(filename);
+}
+
+void AppGLWidget::SetMainWindow(QMainWindow *iMainWindow) {
+ _pMainWindow = iMainWindow;
+}
+void AppGLWidget::captureMovie()
+{
+ _captureMovie = true;
+ setSnapshotFormat("BMP");
+ setSnapshotFileName("anim");
+ camera()->playPath(0);
+ //_captureMovie = false;
+}
+
+void
+AppGLWidget::updateSilhouettes()
+{
+ if(!_enableUpdateSilhouettes || !g_pController)
+ return;
+ g_pController->ComputeViewMap();
+ g_pController->DrawStrokes();
+ if(_captureMovie)
+ {
+ if(!camera()->keyFrameInterpolator(0)->interpolationIsStarted())
+ {
+ _captureMovie = false;
+ return;
+ }
+ saveSnapshot(true);
+ }
+}
+
+void
+AppGLWidget::select(const QMouseEvent *e) {
+
+ // 3D Shape selection
+
+ if (_selection_mode) {
+
+ // Make openGL context current
+ makeCurrent();
+
+ const unsigned SENSITIVITY = 4;
+ const unsigned NB_HITS_MAX = 64;
+
+ // Prepare the selection mode
+ static GLuint hits[NB_HITS_MAX];
+
+ glSelectBuffer(NB_HITS_MAX, hits);
+ glRenderMode(GL_SELECT);
+ glInitNames();
+
+ // Loads the matrices
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ GLint viewport[4];
+ camera()->getViewport(viewport);
+ gluPickMatrix(static_cast<GLdouble>(e->x()), static_cast<GLdouble>(e->y()), SENSITIVITY, SENSITIVITY, viewport);
+
+ // loadProjectionMatrix() first resets the GL_PROJECTION matrix with a glLoadIdentity.
+ // Give false as a parameter in order to prevent this and to combine the matrices.
+ camera()->loadProjectionMatrix(false);
+
+ camera()->loadModelViewMatrix();
+
+ // Render scene with objects ids
+ _pSelectRenderer->setSelectRendering(true);
+ DrawScene(_pSelectRenderer);
+ glFlush();
+
+ // Get the results
+ GLint nb_hits = glRenderMode(GL_RENDER);
+
+ if (nb_hits <= 0) {
+ _pSelectRenderer->setSelectedId(-1);
+ return;
+ }
+
+ // Interpret results
+ unsigned int zMin = hits[1];
+ unsigned int selected = hits[3];
+ for (int i=1; i<nb_hits; ++i)
+ if (hits[i*4+1] < zMin)
+ {
+ zMin = hits[i*4+1];
+ selected = hits[i*4+3];
+ }
+ _pSelectRenderer->setSelectedId(selected);
+
+ cout << "SHAPE" << endl;
+ cout << "-----" << endl;
+ cout << "Id: " << _pSelectRenderer->getSelectedId() << endl;
+ cout << endl;
+
+ return;
+ }
+
+ // ViewMap selection
+
+ FEdge *fe = g_pController->SelectFEdge(e->x(), height()-e->y());
+ if (!fe)
+ return;
+ ViewEdge * ve = fe->viewedge();
+
+ if (ve) {
+ cout << "VIEWEDGE" << endl;
+ cout << "--------" << endl;
+ cout << "ViewEdge Id: " << ve->getId().getFirst() << ", " << ve->getId().getSecond() << endl;
+ cout << "Shape Id: " << ve->shape_id() << endl;
+ cout << "Nature: " << ve->getNature() << endl;
+ cout << "QI: " << ve->qi() << endl;
+ if(ve->aShape())
+ cout << "Occludee: " << ve->aShape()->getId() << endl;
+ else
+ cout << "Occludee: NULL" << endl ;
+ cout << endl;
+
+ cout << "FEDGE" << endl;
+ cout << "-----" << endl;
+ cout << "FEdge Id: " << fe->getId().getFirst() << ", " << fe->getId().getSecond() << endl;
+ cout << "Vertex A Id: " << fe->vertexA()->getId() << endl;
+ cout << "Vertex B Id: " << fe->vertexB()->getId() << endl;
+ cout << endl;
+
+ vector<ViewEdge*> vedges;
+ vedges.push_back(ve);
+ _p2DSelectionNode->AddChild(g_pController->BuildRep(vedges.begin(), vedges.end()));
+ // FEdge
+ LineRep * fedgeRep = new LineRep(fe->vertexA()->point2d(), fe->vertexB()->point2d());
+ fedgeRep->SetWidth(3.f);
+ NodeShape * fedgeNode = new NodeShape;
+ fedgeNode->AddRep(fedgeRep);
+ fedgeNode->material().SetDiffuse(0.2, 1, 0.2, 1.0);
+ _p2DSelectionNode->AddChild(fedgeNode);
+ //SVertex A
+ Vec3r A(fe->vertexA()->point2d());
+ VertexRep * aVertexRep = new VertexRep(A.x(), A.y(), A.z());
+ aVertexRep->SetPointSize(3.f);
+ NodeShape * aVertexNode = new NodeShape;
+ aVertexNode->AddRep(aVertexRep);
+ aVertexNode->material().SetDiffuse(1, 0, 0, 1.0);
+ _p2DSelectionNode->AddChild(aVertexNode);
+ // and its fedges
+ const vector<FEdge*>& afedges = fe->vertexA()->fedges();
+ vector<FEdge*>::const_iterator f=afedges.begin(), fend=afedges.end();
+ for(;
+ f!=fend;
+ ++f)
+ {
+ LineRep * lrep = new LineRep((*f)->vertexA()->point2d(), (*f)->vertexB()->point2d());
+ lrep->SetWidth(1.f);
+ aVertexNode->AddRep(lrep);
+ }
+ //SVertex B
+ Vec3r B(fe->vertexB()->point2d());
+ VertexRep * bVertexRep = new VertexRep(B.x(), B.y(), B.z());
+ bVertexRep->SetPointSize(3.f);
+ NodeShape * bVertexNode = new NodeShape;
+ bVertexNode->AddRep(bVertexRep);
+ bVertexNode->material().SetDiffuse(0, 0, 1, 1.0);
+ _p2DSelectionNode->AddChild(bVertexNode);
+ // and its fedges
+ const vector<FEdge*>& bfedges = fe->vertexB()->fedges();
+ f=bfedges.begin();
+ fend=bfedges.end();
+ for(;
+ f!=fend;
+ ++f)
+ {
+ LineRep * lrep = new LineRep((*f)->vertexA()->point2d(), (*f)->vertexB()->point2d());
+ lrep->SetWidth(1.f);
+ bVertexNode->AddRep(lrep);
+ }
+
+ }
+}
+
+
+void
+AppGLWidget::mousePressEvent(QMouseEvent *e)
+{
+ _p2DSelectionNode->destroy();
+ if (e->button() == Qt::LeftButton)
+ {
+ if(e->modifiers() == Qt::ShiftModifier)
+ {
+ select(e);
+ }
+ else if(e->modifiers() == Qt::ControlModifier)
+ {
+ // Density Observation
+ g_pController->displayDensityCurves(e->x(), height()-1-e->y());
+ }else{
+ QGLViewer::mousePressEvent(e);
+ }
+ updateGL();
+ }
+ else
+ QGLViewer::mousePressEvent(e);
+}
+
+void
+AppGLWidget::mouseReleaseEvent ( QMouseEvent * e )
+{
+ // if(g_pController)
+ // g_pController->ComputeViewMap();
+ // g_pController->DrawStrokes();
+ QGLViewer::mouseReleaseEvent(e);
+}
+
+void
+AppGLWidget::keyPressEvent(QKeyEvent* e)
+{
+ switch (e->key()) {
+
+ case Qt::Key_U:
+ _enableUpdateSilhouettes = !_enableUpdateSilhouettes;
+ break;
+ case Qt::Key_Escape:
+ break;
+ case Qt::Key_V:
+ g_pController->toggleVisibilityAlgo();
+ break;
+ case Qt::Key_R:
+ if(e->modifiers() == Qt::ShiftModifier){
+ _record = !_record;
+ if(_record){
+ setSnapshotFormat("JPEG");
+ setSnapshotFileName("anim");
+ g_pController->displayMessage("record", true);
+ }else{
+ g_pController->displayMessage("");
+ }
+
+ }
+ else if(_cameraStateSaved) {
+ setCameraState(_cameraPosition, _cameraOrientation);
+ updateGL();
+ }
+ break;
+ case Qt::Key_M:
+ _drawEnvMap = !_drawEnvMap ;
+ updateGL(); break;
+ case Qt::Key_Plus:
+ Canvas::getInstance()->changePaperTexture(true);updateGL();
+ break;
+ case Qt::Key_Minus:
+ Canvas::getInstance()->changePaperTexture(false);updateGL();
+ break;
+ case Qt::Key_P:
+ Canvas::getInstance()->togglePaperTexture();updateGL();
+ break;
+ case Qt::Key_PageUp:
+ if(e->modifiers() == Qt::ControlModifier)
+ _blendFunc = (_blendFunc + 1) % 2;
+ else {
+ _currentEnvMap++;
+ if(_currentEnvMap > _maxId)
+ _currentEnvMap = 1;
+ }
+ updateGL();
+ break;
+ case Qt::Key_PageDown:
+ if(e->modifiers() == Qt::ControlModifier)
+ _blendFunc = (_blendFunc + 1) % 2;
+ else {
+ _currentEnvMap--;
+ if(_currentEnvMap < 1)
+ _currentEnvMap = _maxId;
+ }
+ updateGL();
+ break;
+ case Qt::Key_1: _ModelRootNode->SetStyle(DrawingStyle::FILLED); updateGL(); break;
+ case Qt::Key_2: _ModelRootNode->SetStyle(DrawingStyle::LINES); _ModelRootNode->SetLineWidth(1.0); updateGL(); break;
+ case Qt::Key_3: _ModelRootNode->SetStyle(DrawingStyle::INVISIBLE); updateGL(); break;
+ case Qt::Key_B:
+ {
+// if(e->state() == ShiftButton)
+// {
+// g_pController->toggleEdgeTesselationNature(Nature::BORDER); updateGL(); break;
+// }
+// else
+ {
+ _drawBBox == true ? _drawBBox = false : _drawBBox = true; updateGL(); break;
+ }
+ }
+// case Key_C:
+// if(e->state() == ShiftButton)
+// {
+// g_pController->toggleEdgeTesselationNature(Nature::CREASE); updateGL(); break;
+// }
+// break;
+ case Qt::Key_S:
+ {
+// if(e->state() == ShiftButton)
+// {
+// g_pController->toggleEdgeTesselationNature(Nature::SILHOUETTE); updateGL(); break;
+// }
+// else
+ {
+ _silhouette == true ? _silhouette = false : _silhouette = true; updateGL(); break;
+ }
+ }
+ case Qt::Key_L:
+ {
+ _selection_mode = !_selection_mode; updateGL(); break;
+ }
+ break;
+ case Qt::Key_E:
+ {
+ _fedges == true ? _fedges = false : _fedges = true; updateGL(); break;
+ }
+ break;
+ case Qt::Key_D:
+ {
+ _debug == true ? _debug = false : _debug = true; updateGL();
+ }
+ break;
+ case Qt::Key_F2: _Draw2DScene == true ? _Draw2DScene = false : _Draw2DScene = true; updateGL(); break;
+ case Qt::Key_F3: _Draw3DScene == true ? _Draw3DScene = false : _Draw3DScene = true; updateGL(); break;
+ default:
+ QGLViewer::keyPressEvent(e);
+ }
+}
+
+void AppGLWidget::LoadEnvMap(const char *filename)
+{
+ GLuint textureId;
+ GLubyte *data;
+ //sgiImage img;
+ //cout << filename << endl;
+ QImage img(filename, "PNG");
+ QImage glImage = QGLWidget::convertToGLFormat(img);
+ int d = glImage.depth();
+ //data = img.read(filename); // tres beau bleu gris mauve!!
+ // allocate a texture name
+ glGenTextures( 1, &textureId );
+ if(textureId > _maxId)
+ _maxId = textureId;
+
+ // select our current texture
+ glBindTexture( GL_TEXTURE_2D, textureId );
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ GL_NEAREST);
+
+ glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA, glImage.width(), glImage.height(), 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, glImage.bits() );
+}
+
+void AppGLWidget::help(){
+ emit helpRequired();
+
+ bool resize = false;
+ int width=600;
+ int height=400;
+
+ static QString label[] = {" &Keyboard ", " &Mouse "};
+
+ QTabWidget * hWidget = helpWidget();
+ if (!hWidget){
+ hWidget = new QTabWidget(NULL);
+ hWidget->setWindowTitle("Control Bindings");
+ resize = true;
+ for (int i=0; i<2; ++i){
+ QTextEdit* tab = new QTextEdit(hWidget);
+ //tab->setAcceptRichText(true); // FIXME: commented because qt 4.0 is incomplete
+#if QT_VERSION >= 300
+ tab->setReadOnly(true);
+#endif
+ hWidget->insertTab(i, tab, label[i]);
+ }
+ }
+
+#if QT_VERSION < 300
+ const int currentPageIndex = hWidget->currentPageIndex();
+#endif
+
+ for (int i=0; i<2; ++i)
+ {
+ QString text;
+ switch (i)
+ {
+ case 0 : text = keyboardString(); break;
+ case 1 : text = mouseString(); break;
+ default : break;
+ }
+
+#if QT_VERSION < 300
+ hWidget->setCurrentPage(i);
+ QTextEdit* textEdit = (QTextEdit*)(hWidget->currentPage());
+#else
+ hWidget->setCurrentIndex(i);
+ QTextEdit* textEdit = (QTextEdit*)(hWidget->currentWidget());
+#endif
+ textEdit->setHtml(text);
+
+ if (resize && (textEdit->heightForWidth(width) > height))
+ height = textEdit->heightForWidth(width);
+ }
+
+#if QT_VERSION < 300
+ hWidget->setCurrentPage(currentPageIndex);
+#endif
+
+ if (resize)
+ hWidget->resize(width, height+40); // 40 is tabs' height
+ hWidget->show();
+ hWidget->raise();
+}
+
+QString AppGLWidget::helpString() const{
+ QString pdir(Config::Path::getInstance()->getProjectDir());
+ QString text = "<a href=\"" + pdir + "/doc/html/index.html\">help content</a>";
+ return text;
+}
+
+QString AppGLWidget::mouseString() const{
+ QString text("<table border=\"1\" cellspacing=\"0\">\n");
+ text += "<tr bgcolor=\"#eebf00\"><th align=\"center\">Button</th><th align=\"center\">Description</th></tr>\n";
+ text += "<tr><td><b>Shift+Left</b></td><td>If view map exists, selects a view edge.<br> If in selection mode, selects a shape</td></tr>";
+ text += "</table>";
+ text += QGLViewer::mouseString();
+ return text;
+}
+
+QString AppGLWidget::keyboardString() const {
+
+ QString text("<table border=\"1\" cellspacing=\"0\">\n");
+ text += "<tr bgcolor=\"#eebf00\"><th align=\"center\">Key</th><th align=\"center\">Description</th></tr>\n";
+ text += "<tr><td><b>F2</b></td><td>Toggles 2D Scene display</td></tr>";
+ text += "<tr><td><b>F3</b></td><td>Toggles 3D Scene display</td></tr>";
+
+ text += "<tr><td><b>1</b></td><td>Filled display mode</td></tr>";
+ text += "<tr><td><b>2</b></td><td>Lines display mode</td></tr>";
+ text += "<tr><td><b>3</b></td><td>Invisible display mode</td></tr>";
+
+ text += "<tr><td><b>E</b></td><td>Toggles ViewMap display</td></tr>";
+ text += "<tr><td><b>B</b></td><td>Toggles bounding boxes display</td></tr>";
+ text += "<tr><td><b>S</b></td><td>Toggles GL silhouettes display</td></tr>";
+ text += "<tr><td><b>D</b></td><td>Toggles debug information display</td></tr>";
+ text += "<tr><td><b>L</b></td><td>Toggles shape selection mode</td></tr>";
+ text += "<tr><td><b>P</b></td><td>Toggles paper texture display</td></tr>";
+ text += "<tr><td><b>M</b></td><td>Toggles toon shading</td></tr>";
+ text += "<tr><td><b>V</b></td><td>Toggles visibility algorithm</td></tr>";
+
+ text += "<tr><td><b>R</b></td><td>Reset camera to the latest ViewMap computation settings</td></tr>";
+ text += "<tr><td><b>Shift+R</b></td><td>Toggles snapshots mode</td></tr>";
+
+ text += "<tr><td><b>U</b></td><td>Recomputes the ViewMap when the view changes</td></tr>";
+
+ text += "<tr><td><b>+/-</b></td><td>Change paper texture</td></tr>";
+ text += "<tr><td><b>PgUp/PgDn</b></td><td>Changes EnvMap</td></tr>";
+ text += "<tr><td><b>Ctrl+PgUp/PgDn</b></td><td>Changes blending function</td></tr>";
+ text += "</table>";
+ text += QGLViewer::keyboardString();
+ return text;
+}
+
+void AppGLWidget::init()
+{
+ setShortcut(QGLViewer::EXIT_VIEWER, 0);
+// setShortcut(QGLViewer::DISPLAY_Z_BUFFER, 0);
+ setShortcut(QGLViewer::STEREO, 0);
+ setShortcut(QGLViewer::ANIMATION, 0);
+ setShortcut(QGLViewer::EDIT_CAMERA, 0);
+
+ restoreStateFromFile();
+
+ //trackball().fitBBox(_ModelRootNode->bbox().getMin(), _ModelRootNode->bbox().getMax(), _Fovy);
+
+ glClearColor(1,1,1,0);
+ glShadeModel(GL_SMOOTH);
+
+ glCullFace(GL_BACK);
+ glEnable(GL_CULL_FACE);
+ glEnable(GL_DEPTH_TEST);
+
+ // open and read texture data
+ Config::Path * cpath = Config::Path::getInstance();
+ QString envmapDir = cpath->getEnvMapDir();
+ LoadEnvMap((envmapDir + QString("gray00.png")).toAscii().data());
+ //LoadEnvMap(Config::ENV_MAP_DIR + "gray01.bmp");
+ LoadEnvMap((envmapDir + QString("gray02.png")).toAscii().data());
+ LoadEnvMap((envmapDir + QString("gray03.png")).toAscii().data());
+ LoadEnvMap((envmapDir + QString("brown00.png")).toAscii().data());
+ glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP) ;
+ glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP) ;
+
+ // gl settings for Environmental Texturing:
+ glColor3f(1, 1, 1);
+
+ // Use GL auto-computed enviroment texture coordinates
+ //glEnable(GL_TEXTURE_GEN_S);
+ //glEnable(GL_TEXTURE_GEN_T);
+
+ // Bind the texture to use
+ //glBindTexture(GL_TEXTURE_2D,texture);
+ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ //glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+
+ // parametres de melange
+ //glBlendFunc(GL_ONE, GL_ONE);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ //glBlendEquatio(GL_FUNC_ADD);
+
+ //glEnable(GL_BLEND);
+ NodeLight *light = new NodeLight;
+ _Light.AddChild(light);
+
+ // Change QGLViewer's default shortcut for snapshots
+ setShortcut(QGLViewer::SAVE_SCREENSHOT, Qt::CTRL + Qt::Key_W);
+ // setShortcutKey (QGLViewer::SAVE_SCREENSHOT, Key_W);
+ // setShortcutStateKey(QGLViewer::SAVE_SCREENSHOT, ControlButton);
+
+ cout << "Renderer (GL) : " << glGetString(GL_RENDERER) << endl
+ << "Vendor (GL) : " << glGetString(GL_VENDOR) << endl << endl;
+}
+
+void AppGLWidget::draw()
+{
+ if (true == _Draw3DScene)
+ {
+ if (true == _selection_mode) {
+ _pSelectRenderer->setSelectRendering(false);
+ _pSelectRenderer->resetColor();
+ DrawScene(_pSelectRenderer);
+ } else
+ DrawScene(_pGLRenderer);
+
+ if (true == _silhouette)
+ DrawSilhouette();
+
+ if (true == _drawBBox) {
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+ _ModelRootNode->accept(*_pBBoxRenderer);
+ glPopAttrib();
+ }
+
+ if (true == _debug) {
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+ _DebugRootNode->accept(*_pDebugRenderer);
+ glPopAttrib();
+ }
+ }
+
+ if (true == _Draw2DScene) {
+ Draw2DScene(_pGLRenderer);
+ Set3DContext();
+ }
+ if(_record){
+ saveSnapshot(true);
+ }
+ if(_captureMovie)
+ {
+ if(!camera()->keyFrameInterpolator(0)->interpolationIsStarted())
+ {
+ _captureMovie = false;
+ return;
+ }
+ saveSnapshot(true);
+ }
+}
+
+void AppGLWidget::DrawScene(SceneVisitor *iRenderer)
+{
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+
+ if(_drawEnvMap)
+ {
+ _ModelRootNode->SetLightingEnabled(false);
+ glEnable(GL_COLOR_MATERIAL);
+
+ glEnable(GL_TEXTURE_2D);
+ // Bind the texture to use
+ glBindTexture(GL_TEXTURE_2D,_currentEnvMap);
+ switch(_blendFunc)
+ {
+ case 0:
+ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) ;
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ break;
+ case 1:
+ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE) ;
+ glDisable(GL_BLEND);
+ break;
+ // case 2:
+ // glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) ;
+ // glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ // glEnable(GL_BLEND);
+ // break;
+ // case 3:
+ // glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) ;
+ // glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR);
+ // glEnable(GL_BLEND);
+ // break;
+ // case 4:
+ // glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) ;
+ // glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);
+ // glEnable(GL_BLEND);
+ // break;
+ default:
+ break;
+ }
+
+ glEnable(GL_TEXTURE_GEN_S);
+ glEnable(GL_TEXTURE_GEN_T);
+ }
+
+ // FIXME
+ // //_ModelRootNode->SetLightingEnabled(true);
+ // if(_ModelRootNode->style() == DrawingStyle::LINES){
+ // glPushAttrib(GL_ALL_ATTRIB_BITS);
+ // //glDisable(GL_COLOR_MATERIAL);
+ // _ModelRootNode->SetStyle(DrawingStyle::FILLED);
+ // _ModelRootNode->SetLightingEnabled(true);
+ // _ModelRootNode->accept(*iRenderer);
+ // _ModelRootNode->SetStyle(DrawingStyle::LINES);
+ // _ModelRootNode->SetLightingEnabled(false);
+ // _ModelRootNode->accept(*iRenderer);
+ // glPopAttrib();
+ // }
+ // else
+ _ModelRootNode->accept(*iRenderer);
+
+ glDisable(GL_TEXTURE_GEN_S);
+ glDisable(GL_TEXTURE_GEN_T);
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_COLOR_MATERIAL);
+ _ModelRootNode->SetLightingEnabled(true);
+
+ if(_fedges == true)
+ _SilhouetteRootNode->accept(*iRenderer);
+
+ // FIXME: deprecated
+// if(_debug == true)
+// _DebugRootNode->accept(*iRenderer);
+
+ glPopAttrib();
+}
+
+void AppGLWidget::prepareCanvas()
+{
+ makeCurrent();
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+
+ if(_frontBufferFlag){
+ if(_backBufferFlag)
+ glDrawBuffer(GL_FRONT_AND_BACK);
+ else
+ glDrawBuffer(GL_FRONT);
+ }
+ else if(_backBufferFlag)
+ glDrawBuffer(GL_BACK);
+
+ // Projection Matrix
+ //==================
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ glOrtho(0,width(), 0, height(), -1.0, 1.0);
+
+ //Modelview Matrix
+ //================
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+void AppGLWidget::releaseCanvas()
+{
+ makeCurrent();
+ glDrawBuffer(GL_BACK);
+ glPopAttrib();
+}
+
+void AppGLWidget::Draw2DScene(SceneVisitor *iRenderer)
+{
+ static bool first = 1;
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+
+// // Projection Matrix
+// //==================
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(0,width(), 0, height(), -1.0, 1.0);
+
+// //Modelview Matrix
+// //================
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ // glBegin(GL_LINE_LOOP);
+ // glVertex2f(0,0);
+ // glVertex2f(100,0);
+ // glVertex2f(100,100);
+ // glVertex2f(0,100);
+ // glEnd();
+
+ //glDrawBuffer(GL_FRONT_AND_BACK);
+ // Draw visible silhouette
+ //_pVisibleSilhouetteNode->Render(iRenderer);
+ Canvas * canvas = Canvas::getInstance();
+ if((canvas) && (!canvas->isEmpty()))
+ {
+ if (first)
+ {
+ canvas->init();
+ first = false;
+ }
+ canvas->Render(canvas->renderer());
+ }
+
+ glLoadIdentity();
+ // glColor3f(0.f,1.f,0.f);
+ // glLineWidth(5.f);
+ //glPolygonOffset(0.5f, 0.5f);
+ glPushAttrib(GL_DEPTH_BUFFER_BIT);
+ glDisable(GL_DEPTH_TEST);
+ _p2DSelectionNode->accept(*iRenderer);
+ glPopAttrib();
+ // Draw Feature edges
+ // if(_fedges == true)
+ // {
+ // _pFENode->Render(iRenderer);
+ // }
+
+ glPopAttrib();
+}
+
+void AppGLWidget::DrawSilhouette()
+{
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+
+ glDepthFunc(GL_LESS);
+ glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ DrawScene(_pMonoColorRenderer);
+
+ glCullFace(GL_FRONT);
+ glDepthFunc(GL_LEQUAL);
+ glEnable(GL_POLYGON_OFFSET_FILL);
+ glLineWidth(3.0);
+ //glPolygonOffset(10.f, 10.f);
+ glPolygonOffset(0.5f, 0.5f);
+
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ _pMonoColorRenderer->setColor(0.f, 0.f, 0.f);
+ DrawScene(_pMonoColorRenderer);
+
+ //Restore old context
+ glPopAttrib();
+
+}
+
+void AppGLWidget::ReInitRenderers()
+{
+ // Debug Renderer
+ if(NULL != _pDebugRenderer)
+ _pDebugRenderer->ReInit(rabs(_ModelRootNode->bbox().getMax()[1] -
+ _ModelRootNode->bbox().getMin()[1]));
+}
+
+void AppGLWidget::setFrontBufferFlag(bool iBool){
+ _frontBufferFlag = iBool;
+}
+bool AppGLWidget::getFrontBufferFlag() {
+ return _frontBufferFlag;
+}
+void AppGLWidget::setBackBufferFlag(bool iBool){
+ _backBufferFlag = iBool;
+}
+bool AppGLWidget::getBackBufferFlag() {
+ return _backBufferFlag;
+}
+
+//void AppGLWidget::DrawLines()
+//{
+// //Antialiasing:
+// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+// glEnable(GL_BLEND);
+// glEnable(GL_LINE_SMOOTH);
+// glPolygonMode(GL_FRONT, GL_LINE);
+//
+// glColor3f(0.f, 0.f, 0.f);
+// glLineWidth(2.f);
+//
+// DrawScene();
+//}
+//
+//void AppGLWidget::DrawSurfacic()
+//{
+// glPolygonMode(GL_FRONT, GL_FILL);
+// glShadeModel(GL_SMOOTH);
+//
+// glEnable(GL_LIGHTING);
+// glEnable(GL_LIGHT0);
+//
+//
+// GLreal diffuseV[] = {0.5, 0.7, 0.5, 1.0};
+// glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuseV);
+//
+// //glColor3f(0.f, 0.f, 0.f);
+//
+// DrawScene();
+//
+// glDisable(GL_LIGHTING);
+//}
+//
+//void AppGLWidget::DrawDepthBuffer()
+//{
+// GLint w = width();
+// GLint h = height();
+//
+// glPolygonMode(GL_FRONT, GL_FILL);
+//
+// //Disable the writing in the frame buffer
+// glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+//
+// //This rendering will only fills the depth buffer
+// DrawScene();
+//
+// //Re-enable the frame buffer writing
+// glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+//
+//
+// GLreal *zPixels = new real[w*h];
+// GLreal *colorPixels = new real[4*w*h];
+//
+// // glReadBuffer(GL_FRONT); //in reality: glReadBuffer and glDrawBuffer are both set to GL_BACK
+// glReadPixels(0,0,w, h, GL_DEPTH_COMPONENT, GL_real, (GLreal*)zPixels);
+//
+// real *tmpZ = zPixels;
+// real *tmpColor = colorPixels;
+//
+// for(int i=0; i<h; i++)
+// {
+// for(int j=0; j<w; j++)
+// {
+// //fprintf(test, " %.5f ", pixels[i*w+j]);
+// tmpColor[0] = *tmpZ;
+// tmpColor[1] = *tmpZ;
+// tmpColor[2] = *tmpZ;
+// tmpColor[3] = 1.f;
+//
+// tmpColor += 4;
+// tmpZ++;
+// }
+// }
+// glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+// // glDrawBuffer(GL_FRONT_AND_BACK);
+// //glRasterPos2i(0, 0);
+// //glLoadIdentity();
+// glDrawPixels(w, h, GL_RGBA, GL_real, (GLreal *)colorPixels);
+//
+// delete [] zPixels;
+// delete [] colorPixels;
+//}
+
diff --git a/source/blender/freestyle/intern/app/AppGLWidget.h b/source/blender/freestyle/intern/app/AppGLWidget.h
new file mode 100755
index 00000000000..24bb2c7229b
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppGLWidget.h
@@ -0,0 +1,526 @@
+//
+// Filename : AppConfig.h
+// Author : Stephane Grabli
+// Purpose : Configuration file
+// Date of creation : 26/02/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ARTGLWIDGET_H
+# define ARTGLWIDGET_H
+
+# ifndef WIN32
+# include <algorithm>
+using namespace std;
+# define __min(x,y) (min(x,y))
+# define __max(x,y) (max(x,y))
+# endif // WIN32
+
+
+# include <qstringlist.h>
+# include "../geometry/Geom.h"
+# include "../geometry/BBox.h"
+# include "../scene_graph/NodeDrawingStyle.h"
+# include "../system/TimeUtils.h"
+# include "../system/Precision.h"
+# include "AppConfig.h"
+# include "../rendering/GLDebugRenderer.h"
+# include <QGLViewer/qglviewer.h>
+
+using namespace Geometry;
+
+typedef enum {SURFACIC, LINE, DEPTHBUFFER} RenderStyle;
+
+class FEdge;
+class QMainWindow;
+class GLRenderer;
+class GLSelectRenderer;
+class GLBBoxRenderer;
+class GLMonoColorRenderer;
+class GLDebugRenderer;
+
+class AppGLWidget : public QGLViewer
+{
+ Q_OBJECT
+
+public:
+
+ AppGLWidget(QWidget *iParent, const char *iName = 0);
+ ~AppGLWidget();
+
+public slots:
+ virtual void updateSilhouettes();
+
+public:
+ virtual void help();
+
+ // captures a frame animation that was previously registered
+ void captureMovie();
+
+ /*! Sets the rendering style.
+ iStyle
+ The style used to render. Can be:
+ SURFACIC : usual rendering
+ LINES : line rendering
+ DEPTHBUFFER : grey-levels rendering of the depth buffer
+ */
+ inline void SetRenderStyle(RenderStyle iStyle)
+ {
+ _RenderStyle = iStyle;
+ }
+
+ /*! Sets the model to draw in the viewer
+ * iModel
+ * The Root Node of the model
+ */
+ inline void SetModel(NodeGroup *iModel)
+ {
+ if(0 != _ModelRootNode->numberOfChildren())
+ {
+ _ModelRootNode->DetachChildren();
+ _ModelRootNode->clearBBox();
+ }
+
+ AddModel(iModel);
+ }
+
+ /*! Adds a model for displaying in the viewer */
+ inline void AddModel(NodeGroup *iModel)
+ {
+ _ModelRootNode->AddChild(iModel);
+
+ _ModelRootNode->UpdateBBox();
+
+ _minBBox = __min(__min(_ModelRootNode->bbox().getMin()[0],
+ _ModelRootNode->bbox().getMin()[1]),
+ _ModelRootNode->bbox().getMin()[2]);
+ _maxBBox = __max(__max(_ModelRootNode->bbox().getMax()[0],
+ _ModelRootNode->bbox().getMax()[1]),
+ _ModelRootNode->bbox().getMax()[2]);
+
+ _maxAbs = __max(rabs(_minBBox), rabs(_maxBBox));
+
+ _minAbs = __min(rabs(_minBBox), rabs(_maxBBox));
+
+ // DEBUG:
+ ReInitRenderers();
+
+ }
+
+ inline void AddSilhouette(NodeGroup* iSilhouette)
+ {
+ _SilhouetteRootNode->AddChild(iSilhouette);
+ //ToggleSilhouette(true);
+ updateGL();
+ }
+
+ inline void Add2DSilhouette(NodeGroup *iSilhouette)
+ {
+ //_pFENode->AddChild(iSilhouette);
+ //ToggleSilhouette(true);
+ updateGL();
+ }
+
+ inline void Add2DVisibleSilhouette(NodeGroup *iVSilhouette)
+ {
+ //_pVisibleSilhouetteNode->AddChild(iVSilhouette);
+ updateGL();
+ }
+
+ inline void SetDebug(NodeGroup* iDebug)
+ {
+ if(0 != _DebugRootNode->numberOfChildren())
+ {
+ _DebugRootNode->DetachChildren();
+ _DebugRootNode->clearBBox();
+ }
+
+ AddDebug(iDebug);
+ }
+
+ inline void AddDebug(NodeGroup* iDebug)
+ {
+ _DebugRootNode->AddChild(iDebug);
+ updateGL();
+ }
+
+ inline void DetachModel(Node *iModel)
+ {
+ _ModelRootNode->DetachChild(iModel);
+ _ModelRootNode->UpdateBBox();
+
+ _minBBox = __min(__min(_ModelRootNode->bbox().getMin()[0],
+ _ModelRootNode->bbox().getMin()[1]),
+ _ModelRootNode->bbox().getMin()[2]);
+ _maxBBox = __max(__max(_ModelRootNode->bbox().getMax()[0],
+ _ModelRootNode->bbox().getMax()[1]),
+ _ModelRootNode->bbox().getMax()[2]);
+
+ _maxAbs = __max(rabs(_minBBox), rabs(_maxBBox));
+ _minAbs = __min(rabs(_minBBox), rabs(_maxBBox));
+ }
+
+ inline void DetachModel()
+ {
+ _ModelRootNode->DetachChildren();
+ _ModelRootNode->clearBBox();
+
+ // 2D Scene
+ //_p2DNode.DetachChildren();
+ //_pFENode->DetachChildren();
+ //_pVisibleSilhouetteNode->DetachChildren();
+ updateGL();
+ }
+
+ inline void DetachSilhouette()
+ {
+ _SilhouetteRootNode->DetachChildren();
+ //_pFENode->DetachChildren();
+ //_pVisibleSilhouetteNode->DetachChildren();
+ _p2DSelectionNode->destroy();
+ //updateGL(); //FIXME
+ }
+
+ inline void DetachVisibleSilhouette()
+ {
+ //_pVisibleSilhouetteNode->DetachChildren();
+ _p2DSelectionNode->destroy();
+ updateGL();
+ }
+
+ inline void DetachDebug()
+ {
+ _DebugRootNode->DetachChildren();
+ updateGL();
+ }
+
+ void SetMainWindow(QMainWindow *iMainWindow) ;
+
+ inline void Set3DContext()
+ {
+ // GL_PROJECTION matrix
+ camera()->loadProjectionMatrix();
+ // GL_MODELVIEW matrix
+ camera()->loadModelViewMatrix();
+ }
+
+ inline void RetriveModelViewMatrix(float *p)
+ {
+ makeCurrent();
+ glGetFloatv(GL_MODELVIEW_MATRIX, p);
+ }
+ inline void RetriveModelViewMatrix(real *p)
+ {
+ makeCurrent();
+ glGetDoublev(GL_MODELVIEW_MATRIX, p);
+ }
+
+ inline void RetrieveProjectionMatrix(float *p)
+ {
+ makeCurrent();
+ glGetFloatv(GL_PROJECTION_MATRIX, p);
+
+ }
+ inline void RetrieveProjectionMatrix(real *p)
+ {
+ makeCurrent();
+ glGetDoublev(GL_PROJECTION_MATRIX, p);
+
+ }
+
+ inline void RetrieveViewport(int *p)
+ {
+ makeCurrent();
+ glGetIntegerv(GL_VIEWPORT,(GLint *)p);
+ }
+
+ inline real GetFocalLength() const
+ {
+ real Near = __max(0.1,(real)(-2.f*_maxAbs+camera()->distanceToSceneCenter()));
+ return Near;
+ }
+
+ inline real GetAspect() const
+ {
+ return ((real) width()/(real) height());
+ }
+
+ inline real GetFovyRadian() const
+ {
+ return _Fovy/180.0 * M_PI;
+ }
+
+ inline real GetFovyDegrees() const
+ {
+ return _Fovy;
+ }
+
+ inline void FitBBox()
+ {
+ qglviewer::Vec min_(_ModelRootNode->bbox().getMin()[0],
+ _ModelRootNode->bbox().getMin()[1],
+ _ModelRootNode->bbox().getMin()[2]);
+ qglviewer::Vec max_(_ModelRootNode->bbox().getMax()[0],
+ _ModelRootNode->bbox().getMax()[1],
+ _ModelRootNode->bbox().getMax()[2]);
+ setSceneBoundingBox(min_, max_);
+ camera()->showEntireScene();
+ }
+
+ inline void ToggleSilhouette(bool enabled)
+ {
+ _fedges = enabled;
+ updateGL();
+ }
+
+ // Reinit the renderers which need to be informed
+ // when a model is added to the scene.
+ void ReInitRenderers();
+
+ inline void SetSelectedFEdge(FEdge* iFEdge) { _pDebugRenderer->SetSelectedFEdge(iFEdge); }
+
+ inline GLDebugRenderer* debugRenderer() { return _pDebugRenderer; }
+ inline void toggle3D() { _Draw3DScene == true ? _Draw3DScene = false : _Draw3DScene = true; updateGL();}
+
+ /*! glReadPixels */
+ typedef enum{
+ RGB,
+ DEPTH
+ } PixelFormat;
+ void readPixels(int x,
+ int y,
+ int width,
+ int height,
+ PixelFormat format,
+ float *pixels)
+ {
+ makeCurrent();
+ //glReadBuffer(GL_FRONT); //in reality: glReadBuffer and glDrawBuffer are both set to GL_BACK
+ glReadBuffer(GL_BACK);
+ GLenum glformat;
+ switch(format)
+ {
+ case RGB:
+ glformat = GL_RGB;
+ break;
+ case DEPTH:
+ glformat = GL_DEPTH_COMPONENT;
+ break;
+ default:
+ break;
+ }
+ glReadPixels(x,y,width, height, glformat, GL_FLOAT, (GLfloat*)pixels);
+ }
+
+ void clear() { makeCurrent(); glClear(GL_COLOR_BUFFER_BIT ); }
+
+ void prepareCanvas();
+ void releaseCanvas();
+
+ typedef enum {
+ FRONT,
+ BACK
+ } GLBuffer;
+
+ void setReadPixelsBuffer(int iBuffer)
+ {
+ makeCurrent();
+ switch(iBuffer)
+ {
+ case FRONT:
+ glReadBuffer(GL_FRONT);
+ break;
+ case BACK:
+ glReadBuffer(GL_BACK);
+ break;
+ default:
+ break;
+ }
+ }
+
+ BBox<Vec3r> scene3DBBox() const { return _ModelRootNode->bbox(); }
+
+ inline real znear() const {
+ // return __max((float)_maxAbs/5,(float)(-_maxAbs+camera()->distanceToSceneCenter()));
+ return camera()->zNear();
+ }
+
+ inline real zfar() const {
+ // return _maxAbs+camera()->distanceToSceneCenter();
+ return camera()->zFar();
+ }
+
+ inline bool draw3DsceneEnabled() const { return _Draw3DScene; }
+
+ inline bool getRecordFlag() const {return _record;}
+
+ void setCameraState(const float* position, const float* orientation) {
+ camera()->setPosition(qglviewer::Vec(position[0], position[1], position[2]));
+ camera()->setOrientation(qglviewer::Quaternion(orientation[0], orientation[1], orientation[2], orientation[3]));
+ }
+
+ void getCameraState(float* position, float* orientation) const {
+ qglviewer::Vec pos = camera()->position();
+ qglviewer::Quaternion orient = camera()->orientation();
+ int i;
+ for(i=0;i<3;++i){
+ position[i] = pos[i];
+ }
+ for(i=0;i<4;++i){
+ orientation[i] = orient[i];
+ }
+ }
+
+ void saveCameraState() {
+ getCameraState(_cameraPosition, _cameraOrientation);
+ _cameraStateSaved = true;
+ }
+
+ void setUpdateMode(bool b) {
+ _enableUpdateSilhouettes = b;
+ }
+
+ bool getUpdateMode() const {
+ return _enableUpdateSilhouettes;
+ }
+ static void setFrontBufferFlag(bool iBool);
+ static bool getFrontBufferFlag();
+ static void setBackBufferFlag(bool iBool);
+ static bool getBackBufferFlag();
+
+ // help
+ virtual QString helpString() const ;
+
+ virtual QString mouseString() const;
+ virtual QString keyboardString() const;
+
+protected:
+ virtual void mousePressEvent(QMouseEvent *);
+ virtual void mouseReleaseEvent ( QMouseEvent * e ) ;
+ virtual void select(const QMouseEvent *);
+ virtual void keyPressEvent(QKeyEvent* e);
+ virtual void init();
+ virtual void draw();
+
+ /*! Loads an envmap */
+ void LoadEnvMap(const char *filename);
+
+public:
+ /*! Core scene drawing */
+ void DrawScene(SceneVisitor *iRenderer);
+
+ /*! 2D Scene Drawing */
+ void Draw2DScene(SceneVisitor *iRenderer);
+
+ /*! Draws scene silhouettes in real time */
+ void DrawSilhouette();
+
+ /*! Draws the Scene in lines style */
+ // void DrawLines();
+ // /*! Draws the scene in surfacic style */
+ // void DrawSurfacic();
+ // /*! Draws the scene as a depth buffer image */
+ // void DrawDepthBuffer();
+
+ GLRenderer* glRenderer() {return _pGLRenderer;}
+
+protected:
+
+
+ //QString shortcutBindingsString() const;
+
+ /*! fabs or abs */
+ inline int rabs(int x) {return abs(x);}
+ inline real rabs(real x) {return fabs(x);}
+
+
+protected:
+ float _Fovy;
+ //float _SceneDepth;
+ //BBox<Vec3f> _BBox;
+
+ RenderStyle _RenderStyle;
+
+ //The root node container
+ NodeGroup _RootNode;
+ NodeDrawingStyle *_ModelRootNode;
+ NodeDrawingStyle *_SilhouetteRootNode;
+ NodeDrawingStyle *_DebugRootNode;
+
+ bool _silhouette;
+ bool _fedges;
+ bool _debug;
+ bool _selection_mode;
+
+ //a Universal light:
+ NodeGroup _Light;
+
+ real _minBBox;
+ real _maxBBox;
+ real _maxAbs;
+
+ real _minAbs;
+ bool _drawBBox;
+
+ // OpenGL Renderer
+ GLRenderer *_pGLRenderer;
+ GLSelectRenderer *_pSelectRenderer;
+ GLBBoxRenderer *_pBBoxRenderer;
+ GLMonoColorRenderer *_pMonoColorRenderer;
+ GLDebugRenderer *_pDebugRenderer;
+
+ QMainWindow *_pMainWindow;
+
+ Chronometer _Chrono;
+
+ // 2D Scene
+ bool _Draw2DScene;
+ bool _Draw3DScene; NodeGroup _p2DNode;
+ //NodeDrawingStyle *_pFENode; // Feature edges node
+ //NodeDrawingStyle *_pVisibleSilhouetteNode;
+ NodeDrawingStyle *_p2DSelectionNode;
+
+ // EnvMap
+ bool _drawEnvMap;
+ int _currentEnvMap;
+ int _maxId;
+ int _blendFunc;
+
+ // Each time we compute the view map, the camera state is
+ // saved in order to be able to restore it later
+ bool _cameraStateSaved;
+ float _cameraPosition[3];
+ float _cameraOrientation[4];
+
+ // interactive silhouette update
+ bool _enableUpdateSilhouettes;
+ //capture movie
+ bool _captureMovie;
+ // 2D drawing buffers
+ static bool _frontBufferFlag;
+ static bool _backBufferFlag;
+
+ bool _record;
+};
+
+#endif // ARTGLWIDGET_H
diff --git a/source/blender/freestyle/intern/app/AppInteractiveShaderWindow.cpp b/source/blender/freestyle/intern/app/AppInteractiveShaderWindow.cpp
new file mode 100755
index 00000000000..b074c85f9f9
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppInteractiveShaderWindow.cpp
@@ -0,0 +1,119 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include <QTextEdit>
+#include <QFileDialog>
+#include "AppConfig.h"
+#include "Controller.h"
+#include "AppInteractiveShaderWindow.h"
+#include "QStyleModuleSyntaxHighlighter.h"
+
+AppInteractiveShaderWindow::AppInteractiveShaderWindow(QWidget* parent /* = 0 */, const char* name /* = 0 */, bool modal /* = FALSE */, Qt::WFlags fl /* = 0 */)
+: InteractiveShaderWindow() // parent, name, modal, fl)
+{
+ setupUi(this);
+ _CurrentShaderRow = -1;
+ _syntaxHighlighter = new QStyleModuleSyntaxHighlighter(TextArea);
+ // signals and slots connections
+ connect( CancelButton, SIGNAL( clicked() ), this, SLOT( fileClose() ) );
+ connect( SaveButton, SIGNAL( clicked() ), this, SLOT( fileSave() ) );
+ connect( SaveAsButton, SIGNAL( clicked() ), this, SLOT( fileSaveAs() ) );
+ connect( OkButton, SIGNAL( clicked() ), this, SLOT( fileOk() ) );
+}
+
+AppInteractiveShaderWindow::~AppInteractiveShaderWindow()
+{
+ if(_syntaxHighlighter){
+ delete _syntaxHighlighter;
+ }
+}
+
+void AppInteractiveShaderWindow::fileOk()
+{
+ fileSave();
+ fileClose();
+}
+
+void AppInteractiveShaderWindow::fileClose()
+{
+ TextArea->clear();
+ close();
+}
+
+void AppInteractiveShaderWindow::fileSave()
+{
+ QFile file(_CurrentShader);
+ if ( !file.open( QIODevice::WriteOnly ) )
+ return;
+ QTextStream ts( &file );
+ ts << TextArea->toPlainText();
+
+ file.close();
+ emit save();
+ g_pController->setModified(_CurrentShaderRow, true);
+}
+
+void AppInteractiveShaderWindow::fileSaveAs()
+{
+ QFileInfo fi1(_CurrentShader);
+ QString ext1 = fi1.suffix();
+ QString fn;
+
+ if (ext1 == Config::STYLE_MODULE_EXTENSION)
+ fn = QFileDialog::getSaveFileName(this,
+ "save file dialog"
+ "Choose a file",
+ g_pController->getModulesDir(),
+ "Style modules (*." + Config::STYLE_MODULE_EXTENSION + ")");
+ if (!fn.isEmpty() && (_CurrentShader == fn))
+ fileSave();
+ else if (!fn.isEmpty())
+ {
+ QFileInfo fi2(fn);
+ QString ext2 = fi2.suffix();
+ if (ext1 != ext2)
+ fn += "." + ext1;
+ QFile file(fn);
+ if ( !file.open( QIODevice::WriteOnly ) )
+ return;
+ QTextStream ts( &file );
+ ts << TextArea->toPlainText();
+ file.close();
+ g_pController->AddStyleModule(fn.toAscii().data());
+ g_pController->setModulesDir(fi2.dir().path());
+ }
+}
+
+void AppInteractiveShaderWindow::DisplayShader(QString& iName)
+{
+ _CurrentShader = iName;
+ QFile file( iName);
+ if ( !file.open( QIODevice::ReadOnly ) )
+ return;
+
+ QTextStream ts( &file );
+ TextArea->setText( ts.readAll() );
+ TextArea->viewport()->setFocus();
+
+ // Set window title:
+ QFileInfo fi(iName);
+ setWindowTitle(fi.fileName());
+ g_pController->setModulesDir(fi.dir().path());
+}
diff --git a/source/blender/freestyle/intern/app/AppInteractiveShaderWindow.h b/source/blender/freestyle/intern/app/AppInteractiveShaderWindow.h
new file mode 100755
index 00000000000..58f2aa1f01a
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppInteractiveShaderWindow.h
@@ -0,0 +1,73 @@
+#ifndef ARTINTERACTIVESHADERWINDOW_H
+#define ARTINTERACTIVESHADERWINDOW_H
+
+//------------------------------------------------------------------------------------------//
+//
+// FileName : AppInteractiveShaderWindow.h
+// Author : Stephane Grabli
+// Purpose : Class to define the graphic window displaying the interactive shader
+// Date Of Creation : 21/10/2002
+//
+//------------------------------------------------------------------------------------------//
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "ui_dir/ui_interactiveshaderwindow4.h"
+#include <QKeyEvent>
+
+using namespace Ui;
+
+class QStyleModuleSyntaxHighlighter;
+class AppInteractiveShaderWindow : public QDialog, public InteractiveShaderWindow
+{
+ Q_OBJECT
+ public:
+ AppInteractiveShaderWindow(QWidget *parent = 0, const char *name = 0, bool modal = FALSE, Qt::WFlags fl = 0);
+ virtual ~AppInteractiveShaderWindow();
+
+public slots:
+ virtual void fileOk();
+ virtual void fileClose();
+ virtual void fileSave();
+ virtual void fileSaveAs();
+
+ void DisplayShader(QString& iName);
+ void setCurrentShaderRow(int current) { _CurrentShaderRow = current; }
+ int getCurrentShaderRow() const { return _CurrentShaderRow; }
+
+ signals:
+ void save( );
+
+ protected:
+
+ void keyPressEvent(QKeyEvent *e) {
+ if (e->key() == Qt::Key_Escape)
+ return;
+ QDialog::keyPressEvent(e);
+ }
+
+ private:
+ int _CurrentShaderRow;
+ QString _CurrentShader;
+ QStyleModuleSyntaxHighlighter *_syntaxHighlighter;
+};
+
+#endif
+
diff --git a/source/blender/freestyle/intern/app/AppMainWindow.cpp b/source/blender/freestyle/intern/app/AppMainWindow.cpp
new file mode 100755
index 00000000000..03b4f3a28ea
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppMainWindow.cpp
@@ -0,0 +1,288 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include <QApplication>
+#include <QCursor>
+#include <QProgressDialog>
+#include <QFileDialog>
+#include <QFile>
+#include <QStatusBar>
+#include <QToolBar>
+#include <QToolButton>
+#include <QLayout>
+#include "AppMainWindow.h"
+#include "AppGLWidget.h"
+#include "Controller.h"
+#include "AppConfig.h"
+
+AppMainWindow::AppMainWindow(QWidget *parent, const char *name, Qt::WindowFlags f)
+ : QMainWindow(parent, f) // parent, name, f)
+{
+ setupUi(this);
+ pQGLWidget = new AppGLWidget(this);
+ gridLayout->addWidget(pQGLWidget);
+
+ // setCaption(Config::APPLICATION_NAME + " " + Config::APPLICATION_VERSION);
+ setGeometry(20,20,700,700);
+ pQGLWidget->SetMainWindow(this);
+
+ _ProgressBar = new QProgressDialog(Config::APPLICATION_NAME + " Progress Dialog", "Cancel",
+ 0, 100, this);
+ // signals and slots connections
+ connect( actionOpen, SIGNAL( triggered() ), this, SLOT( fileOpen() ) );
+ connect( actionQuit, SIGNAL( triggered() ), this, SLOT( close() ) );
+ connect( actionClose, SIGNAL( triggered() ), this, SLOT( fileClose() ) );
+ connect( actionComputeViewMap, SIGNAL( triggered() ), this, SLOT( ComputeViewMap() ) );
+ connect( actionSave, SIGNAL( triggered() ), this, SLOT( ViewMapFileSave() ) );
+ connect( actionStyleModelerWindow, SIGNAL( triggered() ), this, SLOT( DisplayStylesWindow() ) );
+ connect( actionOptionsWindow, SIGNAL( triggered() ), this, SLOT( DisplayOptionsWindow() ) );
+ connect( actionComputeStrokes, SIGNAL( triggered() ), this, SLOT( ComputeStrokes() ) );
+ connect( actionHelp, SIGNAL( triggered() ), this, SLOT( DisplayHelp() ) );
+ connect( actionSaveSnapshot, SIGNAL( triggered() ), this, SLOT( Snapshot() ) );
+ connect( actionCaptureMovie, SIGNAL( triggered() ), this, SLOT( captureMovie() ) );
+ connect( actionResetInterpreter, SIGNAL( triggered() ), this, SLOT( ResetInterpreter() ) );
+ connect( actionSaveDirectionalViewMapImages, SIGNAL( triggered() ), this, SLOT( SaveDirectionalViewMapImages() ) );
+ connect( actionAbout, SIGNAL( triggered() ), this, SLOT( About() ) );
+ connect( actionLoadCamera, SIGNAL( triggered() ), this, SLOT( loadCamera() ) );
+ connect( actionSavePSSnapshot, SIGNAL( triggered() ), this, SLOT( PSSnapshot() ) );
+ connect( actionSaveTextSnapshot, SIGNAL( triggered() ), this, SLOT( TextSnapshot() ) );
+ connect( actionControlBindings, SIGNAL( triggered() ), pQGLWidget, SLOT( help() ) );
+}
+
+AppMainWindow::~AppMainWindow() {}
+
+void AppMainWindow::fileOpen()
+{
+ QString s = QFileDialog::getOpenFileName(this,
+ "open file dialog"
+ "Choose a file",
+ g_pController->getModelsDir(),
+ "Scenes (*.3ds *.3DS);;ViewMaps (*." + Config::VIEWMAP_EXTENSION + ")");
+ if ( s.isEmpty() ) {
+ statusBar()->showMessage( "Loading aborted", 2000 );
+ return;
+ }
+
+ QFileInfo fi(s);
+ QString ext = fi.suffix();
+ if ((ext == "3ds") || (ext == "3DS"))
+ {
+ QApplication::setOverrideCursor( Qt::WaitCursor );
+ g_pController->Load3DSFile(s.toAscii().data()); // lunch time...
+ g_pController->setModelsDir(fi.dir().path());
+ QApplication::restoreOverrideCursor();
+ }
+ else if (ext == Config::VIEWMAP_EXTENSION)
+ {
+ QApplication::setOverrideCursor( Qt::WaitCursor );
+ g_pController->LoadViewMapFile(s.toAscii().data()); // ...and now tea time...
+ g_pController->setModelsDir(fi.dir().path());
+ QApplication::restoreOverrideCursor();
+ }
+}
+
+void AppMainWindow::loadCamera()
+{
+ QString s = QFileDialog::getOpenFileName(this,
+ "open file dialog"
+ "Choose a file",
+ g_pController->getModelsDir(),
+ "ViewMaps (*." + Config::VIEWMAP_EXTENSION + ")");
+ if ( s.isEmpty() ) {
+ statusBar()->showMessage( "Loading aborted", 2000 );
+ return;
+ }
+
+ QFileInfo fi(s);
+ QString ext = fi.suffix();
+ if (ext == Config::VIEWMAP_EXTENSION)
+ {
+ QApplication::setOverrideCursor( Qt::WaitCursor );
+ g_pController->LoadViewMapFile(s.toAscii().data(), true);
+ QApplication::restoreOverrideCursor();
+ }
+}
+
+void AppMainWindow::ViewMapFileSave() {
+ QString s = QFileDialog::getSaveFileName(this,
+ "save file dialog"
+ "Choose a file",
+ g_pController->getModelsDir(),
+ "ViewMaps (*." + Config::VIEWMAP_EXTENSION + ")");
+ if (s.isEmpty()) {
+ statusBar()->showMessage( "Saving aborted", 2000 );
+ return;
+ }
+
+ QFileInfo fi(s);
+ QString ext = fi.suffix();
+ if(ext != Config::VIEWMAP_EXTENSION)
+ s += "." + Config::VIEWMAP_EXTENSION;
+
+ QApplication::setOverrideCursor( Qt::WaitCursor );
+ g_pController->setModelsDir(fi.dir().path());
+ g_pController->SaveViewMapFile(s.toAscii().data());
+ QApplication::restoreOverrideCursor();
+}
+
+void AppMainWindow::fileClose()
+{
+ g_pController->CloseFile();
+}
+
+void AppMainWindow::DisplayStylesWindow() {
+ g_pController->ExposeStyleWindow();
+}
+
+void AppMainWindow::DisplayOptionsWindow() {
+ g_pController->ExposeOptionsWindow();
+}
+
+void AppMainWindow::DisplayHelp() {
+ g_pController->ExposeHelpWindow();
+}
+
+void AppMainWindow::About() {
+ g_pController->ExposeAboutWindow();
+}
+
+void AppMainWindow::Snapshot() {
+ g_pController->saveSnapshot();
+}
+
+void AppMainWindow::captureMovie() {
+ g_pController->captureMovie();
+}
+
+void AppMainWindow::ResetInterpreter() {
+ g_pController->resetInterpreter();
+}
+
+//void AppMainWindow::BrutForceSilhouette()
+//{
+// QApplication::setOverrideCursor( Qt::WaitCursor );
+// g_pController->ComputeSilhouette(Controller::BRUT_FORCE);
+// QApplication::restoreOverrideCursor();
+//}
+//
+//void AppMainWindow::AppelSilhouette()
+//{
+// QApplication::setOverrideCursor( Qt::WaitCursor );
+// g_pController->ComputeSilhouette();
+// QApplication::restoreOverrideCursor();
+//}
+
+void AppMainWindow::ComputeViewMap()
+{
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+ g_pController->ComputeViewMap();
+ QApplication::restoreOverrideCursor();
+}
+
+void AppMainWindow::SaveDirectionalViewMapImages(){
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+ g_pController->saveSteerableViewMapImages();
+ QApplication::restoreOverrideCursor();
+}
+
+void AppMainWindow::ComputeStrokes()
+{
+ g_pController->DrawStrokes();
+}
+
+//void AppMainWindow::InitProgressBar(const char *title, int numSteps)
+//{
+// _ProgressBar = new QProgressDialog(title, 0, numSteps, this, "progress", TRUE);
+// _ProgressBar->show();
+// _ProgressBar->setProgress(0);
+//}
+//
+//void AppMainWindow::SetProgressLabel(const char *label)
+//{
+// if(NULL == _ProgressBar)
+// return;
+// _ProgressBar->setLabelText(label);
+//}
+//
+//void AppMainWindow::SetProgress(int i)
+//{
+// _ProgressBar->setProgress(i);
+// qApp->processEvents();
+//
+// if(i == _ProgressBar->totalSteps())
+// {
+// _ProgressBar->setProgress(_ProgressBar->totalSteps());
+// delete _ProgressBar;
+// _ProgressBar = NULL;
+// }
+//}
+
+void AppMainWindow::DisplayMessage(const char* msg, bool persistent)
+{
+ if(persistent)
+ statusBar()->showMessage( msg);
+ else
+ statusBar()->showMessage( msg, 2000 );
+}
+//void AppMainWindow::toggleSilhouette(bool enabled)
+//{
+// pQGLWidget->ToggleSilhouette(enabled);
+//}
+
+void AppMainWindow::PSSnapshot() {
+ QString s = QFileDialog::getSaveFileName(this,
+ "save file dialog"
+ "Choose a file",
+ g_pController->view()->snapshotFileName(),
+ "Encapsulated Postscript (*.eps)");
+ if (s.isEmpty()) {
+ statusBar()->showMessage( "Saving aborted", 2000 );
+ return;
+ }
+
+ QFileInfo fi(s);
+ QString ext = fi.suffix();
+ if(ext != "eps")
+ s += ".eps" ;
+
+ QApplication::setOverrideCursor( Qt::WaitCursor );
+ g_pController->savePSSnapshot(s);
+ QApplication::restoreOverrideCursor();
+}
+
+void AppMainWindow::TextSnapshot() {
+ QString s = QFileDialog::getSaveFileName(this,
+ "save file dialog"
+ "Choose a file",
+ g_pController->getModelsDir(),
+ "Text File (*.txt)");
+ if (s.isEmpty()) {
+ statusBar()->showMessage( "Saving aborted", 2000 );
+ return;
+ }
+
+ QFileInfo fi(s);
+ QString ext = fi.suffix();
+ if(ext != "txt")
+ s += ".txt" ;
+
+ QApplication::setOverrideCursor( Qt::WaitCursor );
+ g_pController->saveTextSnapshot(s);
+ QApplication::restoreOverrideCursor();
+}
diff --git a/source/blender/freestyle/intern/app/AppMainWindow.h b/source/blender/freestyle/intern/app/AppMainWindow.h
new file mode 100755
index 00000000000..750283f85ba
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppMainWindow.h
@@ -0,0 +1,83 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ARTMAINWINDOW_H
+#define ARTMAINWINDOW_H
+
+#include <QKeyEvent>
+#include <QWidget>
+#include <QPainter>
+#include <QColorGroup>
+#include <QToolBar>
+#include <QMainWindow>
+#include "ui_dir/ui_appmainwindowbase4.h"
+
+using namespace Ui;
+
+class QProgressDialog;
+class AppGLWidget;
+class AppMainWindow : public QMainWindow, public AppMainWindowBase
+{
+ Q_OBJECT
+
+public:
+
+ AppMainWindow(QWidget *parent = 0, const char *name = 0, Qt::WindowFlags f = Qt::Window);
+ ~AppMainWindow();
+
+ QToolBar *pTools;
+
+public slots:
+ virtual void fileOpen();
+ virtual void fileClose();
+ virtual void loadCamera();
+ virtual void DisplayStylesWindow();
+ virtual void DisplayOptionsWindow();
+ virtual void DisplayHelp();
+ virtual void About();
+ virtual void ViewMapFileSave();
+ // virtual void AppelSilhouette();
+ // virtual void BrutForceSilhouette();
+ virtual void ComputeViewMap();
+ virtual void SaveDirectionalViewMapImages();
+ virtual void ComputeStrokes();
+ virtual void Snapshot();
+ virtual void captureMovie();
+ virtual void ResetInterpreter();
+ virtual void PSSnapshot();
+ virtual void TextSnapshot();
+
+public:
+ // void InitProgressBar(const char *title, int numSteps)
+ ;
+ // void SetProgressLabel(const char *label);
+ // void SetProgress(int i);
+ //
+ void DisplayMessage(const char* msg, bool persistent = false);
+
+ QProgressDialog * qtProgressDialog() {return _ProgressBar;}
+ AppGLWidget * pQGLWidget;
+
+private:
+ QProgressDialog* _ProgressBar;
+};
+
+
+#endif
diff --git a/source/blender/freestyle/intern/app/AppOptionsWindow.cpp b/source/blender/freestyle/intern/app/AppOptionsWindow.cpp
new file mode 100755
index 00000000000..6c3dc9a83aa
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppOptionsWindow.cpp
@@ -0,0 +1,410 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+// Must be included before any QT header, because of moc
+#include "../system/PythonInterpreter.h"
+
+#include <QCheckBox>
+#include <QLineEdit>
+#include <QFileDialog>
+#include <QString>
+#include <QStringList>
+#include <QListWidgetItem>
+#include "../stroke/StrokeRenderer.h"
+#include "AppConfig.h"
+#include "Controller.h"
+#include "../view_map/ViewMapIO.h"
+#include "AppOptionsWindow.h"
+
+AppOptionsWindow::AppOptionsWindow(QWidget *parent, const char *name, bool modal, Qt::WFlags fl)
+: QDialog(parent, fl) { // parent, name, modal, fl) {
+
+ setupUi(this);
+ const QString sep(Config::DIR_SEP.c_str());
+ QString filename;
+
+ // Create a ConfigIO object
+ filename = Config::Path::getInstance()->getHomeDir() + sep + Config::OPTIONS_DIR + sep + Config::OPTIONS_FILE;
+ _options = new ConfigIO(filename, Config::APPLICATION_NAME + "Options");
+ _options->loadFile();
+
+ // Set the widgets to correct values
+
+ // -> Directories tab
+ QString str;
+ Config::Path * cpath = Config::Path::getInstance();
+ if (_options->getValue("default_path/models/path", str))
+ str = cpath->getModelsPath();
+ modelsPathLineEdit->setText(str);
+ if (_options->getValue("default_path/patterns/path", str))
+ str = cpath->getPatternsPath();
+ patternsPathLineEdit->setText(str);
+ if (_options->getValue("default_path/brushes/path", str))
+ str = cpath->getBrushesPath();
+ brushesPathLineEdit->setText(str);
+ if (_options->getValue("default_path/python/path", str))
+ str = cpath->getPythonPath();
+ pythonPathLineEdit->setText(str);
+
+ // -> Papers Textures tab
+ unsigned papers_nb;
+ QStringList sl;
+ if (_options->getValue("papers/nb", papers_nb)) {
+ sl.push_back(cpath->getPapersDir() + Config::DEFAULT_PAPER_TEXTURE);
+ } else {
+ for (unsigned i = 0; i < papers_nb; i++) {
+ QString path;
+ QTextStream(&path) << "papers/texture" << i << "/filename";
+ _options->getValue(path, str);
+ paperTexturesList->insertItem(paperTexturesList->count(), str);
+ }
+ }
+
+
+ // -> Help tab
+ if (_options->getValue("default_browser/cmd", str))
+ str = cpath->getBrowserCmd();
+ browserCmdLineEdit->setText(str);
+ if (_options->getValue("default_path/help/index", str))
+ str = cpath->getHelpIndexpath();
+ helpIndexPathLineEdit->setText(str);
+
+ // -> Misc tab
+ bool b;
+ if (_options->getValue("default_viewmap_format/float_vectors", b))
+ b = false;
+ asFloatCheckBox->setChecked(b);
+ if (_options->getValue("default_viewmap_format/no_occluders", b))
+ b = false;
+ noOccluderListCheckBox->setChecked(b);
+ if (_options->getValue("default_viewmap_format/compute_steerable", b))
+ b = false;
+ steerableViewMapCheckBox->setChecked(b);
+ if (_options->getValue("default_visibility/exhaustive_computation", b))
+ b = true;
+ qiCheckBox->setChecked(b);
+ if (_options->getValue("default_drawing_buffers/back_buffer", b))
+ b = true;
+ backBufferCheckBox->setChecked(b);
+ if (_options->getValue("default_drawing_buffers/front_buffer", b))
+ b = false;
+ frontBufferCheckBox->setChecked(b);
+ real r;
+ if (_options->getValue("default_ridges/sphere_radius", r))
+ r = Config::DEFAULT_SPHERE_RADIUS;
+ sphereRadiusLineEdit->setText(QString(QString::number(r)));
+ if (_options->getValue("default_ridges/enable", b))
+ b = false;
+ ridgeValleyCheckBox->setChecked(b);
+ if (_options->getValue("default_suggestive_contours/enable", b))
+ b = false;
+ suggestiveContoursCheckBox->setChecked(b);
+ if (_options->getValue("default_suggestive_contours/dkr_epsilon", r))
+ r = Config::DEFAULT_DKR_EPSILON;
+ krEpsilonLineEdit->setText(QString(QString::number(r)));
+
+ // Propagate changes
+ Propagate();
+
+ // signals and slots connections
+ connect( okButton, SIGNAL( clicked() ), this, SLOT( Ok() ) );
+ connect( applyButton, SIGNAL( clicked() ), this, SLOT( Apply() ) );
+ connect( closeButton, SIGNAL( clicked() ), this, SLOT( Cancel() ) );
+ connect( patternsPathAddButton, SIGNAL( clicked() ), this, SLOT( PatternsAdd() ) );
+ connect( modelPathAddButton, SIGNAL( clicked() ), this, SLOT( ModelsAdd() ) );
+ connect( addPaperTextureButton, SIGNAL( clicked() ), this, SLOT( PaperAdd() ) );
+ connect( removePaperTextureButton, SIGNAL( clicked() ), this, SLOT( PaperRemove() ) );
+ connect( moveUpPaperTextureButton, SIGNAL( clicked() ), this, SLOT( PaperUp() ) );
+ connect( moveDownPaperTextureButton, SIGNAL( clicked() ), this, SLOT( PaperDown() ) );
+ connect( clearPaperTextureButton, SIGNAL( clicked() ), this, SLOT( PaperClear() ) );
+ connect( pythonPathAddButton, SIGNAL( clicked() ), this, SLOT( PythonAdd() ) );
+ connect( helpIndexPathButton, SIGNAL( clicked() ), this, SLOT( HelpAdd() ) );
+ connect( brushesPathAddButton, SIGNAL( clicked() ), this, SLOT( BrushesAdd() ) );
+}
+
+AppOptionsWindow::~AppOptionsWindow() {
+ delete _options;
+}
+
+void AppOptionsWindow::Propagate() {
+
+ // Directories
+ ViewMapIO::Options::setModelsPath((const char*)modelsPathLineEdit->text().toAscii().data());
+ PythonInterpreter::Options::setPythonPath((const char*)pythonPathLineEdit->text().toAscii().data());
+ TextureManager::Options::setPatternsPath((const char*)patternsPathLineEdit->text().toAscii().data());
+ TextureManager::Options::setBrushesPath((const char*)brushesPathLineEdit->text().toAscii().data());
+ g_pController->setBrowserCmd(browserCmdLineEdit->text());
+ g_pController->setHelpIndex(helpIndexPathLineEdit->text());
+
+ // ViewMap Format
+ if (asFloatCheckBox->isChecked())
+ ViewMapIO::Options::addFlags(ViewMapIO::Options::FLOAT_VECTORS);
+ else
+ ViewMapIO::Options::rmFlags(ViewMapIO::Options::FLOAT_VECTORS);
+ if (noOccluderListCheckBox->isChecked())
+ ViewMapIO::Options::addFlags(ViewMapIO::Options::NO_OCCLUDERS);
+ else
+ ViewMapIO::Options::rmFlags(ViewMapIO::Options::NO_OCCLUDERS);
+ g_pController->setComputeSteerableViewMapFlag(steerableViewMapCheckBox->isChecked());
+
+ // Visibility
+ if (qiCheckBox->isChecked())
+ g_pController->setQuantitativeInvisibility(true);
+ else
+ g_pController->setQuantitativeInvisibility(false);
+
+ // Papers Textures
+ vector<string> sl;
+ for (unsigned i = 0; i < paperTexturesList->count(); i++) {
+ sl.push_back(paperTexturesList->item(i)->text().toAscii().constData());
+ }
+ TextureManager::Options::setPaperTextures(sl);
+
+ // Drawing Buffers
+ if (frontBufferCheckBox->isChecked())
+ g_pController->setFrontBufferFlag(true);
+ else
+ g_pController->setFrontBufferFlag(false);
+ if (backBufferCheckBox->isChecked())
+ g_pController->setBackBufferFlag(true);
+ else
+ g_pController->setBackBufferFlag(false);
+
+ // Ridges and Valleys
+ g_pController->setComputeRidgesAndValleysFlag(ridgeValleyCheckBox->isChecked());
+ // Suggestive Contours
+ g_pController->setComputeSuggestiveContoursFlag(suggestiveContoursCheckBox->isChecked());
+ bool ok;
+ real r = sphereRadiusLineEdit->text().toFloat(&ok);
+ if(ok)
+ g_pController->setSphereRadius(r);
+ else
+ sphereRadiusLineEdit->setText(QString(QString::number(g_pController->getSphereRadius())));
+ r = krEpsilonLineEdit->text().toFloat(&ok);
+ if(ok)
+ g_pController->setSuggestiveContourKrDerivativeEpsilon(r);
+ else
+ krEpsilonLineEdit->setText(QString(QString::number(g_pController->getSuggestiveContourKrDerivativeEpsilon())));
+}
+
+void AppOptionsWindow::Ok() {
+ Apply();
+ close();
+}
+
+void AppOptionsWindow::Apply() {
+
+ // Propagate changes
+ Propagate();
+
+ // Update values of the Options DOM Tree accordingly
+ _options->setValue("default_path/models/path", modelsPathLineEdit->text());
+ _options->setValue("default_path/patterns/path", patternsPathLineEdit->text());
+ _options->setValue("default_path/brushes/path", brushesPathLineEdit->text());
+ _options->setValue("default_path/python/path", pythonPathLineEdit->text());
+ _options->setValue("default_browser/cmd", browserCmdLineEdit->text());
+ _options->setValue("default_path/help/index", helpIndexPathLineEdit->text());
+ _options->setValue("default_viewmap_format/float_vectors", asFloatCheckBox->isChecked());
+ _options->setValue("default_viewmap_format/no_occluders", noOccluderListCheckBox->isChecked());
+ _options->setValue("default_visibility/exhaustive_computation", qiCheckBox->isChecked());
+ _options->setValue("default_drawing_buffers/front_buffer", frontBufferCheckBox->isChecked());
+ _options->setValue("default_drawing_buffers/back_buffer", backBufferCheckBox->isChecked());
+
+ // -> Papers Textures tab
+ unsigned papers_nb = paperTexturesList->count();
+ _options->setValue("papers/nb", papers_nb);
+ for (unsigned i = 0; i < papers_nb; i++) {
+ QString path;
+ QTextStream(&path) << "papers/texture" << i << "/filename";
+ _options->setValue(path, paperTexturesList->item(i)->text());
+ }
+
+ // -> Help tab
+ _options->setValue("default_browser/cmd", browserCmdLineEdit->text());
+ _options->setValue("default_path/help/index", helpIndexPathLineEdit->text());
+
+ // -> Misc tab
+ _options->setValue("default_viewmap_format/float_vectors", asFloatCheckBox->isChecked());
+ _options->setValue("default_viewmap_format/no_occluders", noOccluderListCheckBox->isChecked());
+ _options->setValue("default_viewmap_format/compute_steerable", steerableViewMapCheckBox->isChecked());
+ _options->setValue("default_visibility/exhaustive_computation", qiCheckBox->isChecked());
+ _options->setValue("default_drawing_buffers/back_buffer", backBufferCheckBox->isChecked());
+ _options->setValue("default_drawing_buffers/front_buffer", frontBufferCheckBox->isChecked());
+ _options->setValue("default_ridges/enable", ridgeValleyCheckBox->isChecked());
+ _options->setValue("default_suggestive_contours/enable", suggestiveContoursCheckBox->isChecked());
+ bool ok;
+ real r = sphereRadiusLineEdit->text().toFloat(&ok);
+ if(!ok)
+ r = Config::DEFAULT_SPHERE_RADIUS;
+ _options->setValue("default_ridges/sphere_radius", r);
+ r = krEpsilonLineEdit->text().toFloat(&ok);
+ if(!ok)
+ r = Config::DEFAULT_DKR_EPSILON;
+ _options->setValue("default_suggestive_contours/dkr_epsilon", r);
+
+ // Save options to disk
+ _options->saveFile();
+}
+
+void AppOptionsWindow::Cancel() {
+
+ // Directories
+ QString qstr;
+ qstr = ViewMapIO::Options::getModelsPath().c_str();
+ modelsPathLineEdit->setText(qstr);
+ qstr = PythonInterpreter::Options::getPythonPath().c_str();
+ pythonPathLineEdit->setText(qstr);
+ qstr = TextureManager::Options::getPatternsPath().c_str();
+ patternsPathLineEdit->setText(qstr);
+ qstr = TextureManager::Options::getBrushesPath().c_str();
+ brushesPathLineEdit->setText(qstr);
+ qstr = g_pController->getBrowserCmd();
+ browserCmdLineEdit->setText(qstr);
+ qstr = g_pController->getHelpIndex();
+ helpIndexPathLineEdit->setText(qstr);
+
+ // ViewMap Format
+ updateViewMapFormat();
+ steerableViewMapCheckBox->setChecked(g_pController->getComputeSteerableViewMapFlag());
+
+ // Visibility
+ qiCheckBox->setChecked(g_pController->getQuantitativeInvisibility());
+
+ // Drawing buffers
+ frontBufferCheckBox->setChecked(g_pController->getFrontBufferFlag());
+ backBufferCheckBox->setChecked(g_pController->getBackBufferFlag());
+
+ // Ridges and Valleys
+ ridgeValleyCheckBox->setChecked(g_pController->getComputeRidgesAndValleysFlag());
+ // suggestive contours
+ suggestiveContoursCheckBox->setChecked(g_pController->getComputeSuggestiveContoursFlag());
+ sphereRadiusLineEdit->setText(QString::number(g_pController->getSphereRadius()));
+ krEpsilonLineEdit->setText(QString(QString::number(g_pController->getSuggestiveContourKrDerivativeEpsilon())));
+
+ close();
+}
+
+void AppOptionsWindow::updateViewMapFormat() {
+ asFloatCheckBox->setChecked(ViewMapIO::Options::getFlags() & ViewMapIO::Options::FLOAT_VECTORS);
+ noOccluderListCheckBox->setChecked(ViewMapIO::Options::getFlags() & ViewMapIO::Options::NO_OCCLUDERS);
+}
+
+void AppOptionsWindow::ModelsAdd() {
+ QString s = modelsPathLineEdit->text();
+ QString new_s = DirDialog();
+ if (new_s.isEmpty())
+ return;
+ if (!s.isEmpty())
+ s += Config::PATH_SEP.c_str();
+ s += new_s;
+ modelsPathLineEdit->setText(s);
+}
+
+void AppOptionsWindow::PatternsAdd() {
+ QString s = patternsPathLineEdit->text();
+ QString new_s = DirDialog();
+ if (new_s.isEmpty())
+ return;
+ if (!s.isEmpty())
+ s += Config::PATH_SEP.c_str();
+ s += new_s;
+ patternsPathLineEdit->setText(s);
+}
+
+void AppOptionsWindow::BrushesAdd() {
+ QString s = brushesPathLineEdit->text();
+ QString new_s = DirDialog();
+ if (new_s.isEmpty())
+ return;
+ if (!s.isEmpty())
+ s += Config::PATH_SEP.c_str();
+ s += new_s;
+ brushesPathLineEdit->setText(s);
+}
+
+void AppOptionsWindow::PythonAdd() {
+ QString s = pythonPathLineEdit->text();
+ QString new_s = DirDialog();
+ if (new_s.isEmpty())
+ return;
+ if (!s.isEmpty())
+ s += Config::PATH_SEP.c_str();
+ s += new_s;
+ pythonPathLineEdit->setText(s);
+}
+
+void AppOptionsWindow::HelpAdd() {
+ QString s = QFileDialog::getOpenFileName((QWidget *)this,
+ "Open file dialog"
+ "Choose a file",
+ g_pController->getHelpIndex(),
+ "HTML files (*.html *.htm)");
+ if (s.isEmpty())
+ return;
+ helpIndexPathLineEdit->setText(s);
+}
+
+QString AppOptionsWindow::DirDialog() {
+ QString s = QFileDialog::getExistingDirectory((QWidget *)this,
+ "get existing directory"
+ "Choose a directory",
+ ".",
+ QFileDialog::ShowDirsOnly| QFileDialog::DontResolveSymlinks);
+ return s;
+}
+
+void AppOptionsWindow::PaperAdd() {
+ QStringList sl = QFileDialog::getOpenFileNames((QWidget *)this,
+ "open files dialog"
+ "Choose a file",
+ g_pController->getPapersDir(),
+ "Images (*.bmp *.png *.jpg *.xpm)");
+ paperTexturesList->insertItems(paperTexturesList->count(), sl);
+}
+
+void AppOptionsWindow::PaperRemove() {
+ paperTexturesList->takeItem(paperTexturesList->currentRow());
+}
+
+void AppOptionsWindow::PaperUp() {
+ int current = paperTexturesList->currentRow();
+ if (current < 1)
+ return;
+ QString s = paperTexturesList->currentItem()->text();
+ paperTexturesList->item(current)->setText(paperTexturesList->item(current - 1)->text());
+ paperTexturesList->item(current - 1)->setText(s);
+ paperTexturesList->setCurrentRow(current - 1);
+}
+
+void AppOptionsWindow::PaperDown() {
+ int current = paperTexturesList->currentRow();
+ if (current > paperTexturesList->count() - 2)
+ return;
+ QString s = paperTexturesList->currentItem()->text();
+ paperTexturesList->item(current)->setText(paperTexturesList->item(current + 1)->text());
+ paperTexturesList->item(current + 1)->setText(s);
+ paperTexturesList->setCurrentRow(current + 1);
+}
+
+void AppOptionsWindow::PaperClear() {
+ paperTexturesList->clear();
+}
+
diff --git a/source/blender/freestyle/intern/app/AppOptionsWindow.h b/source/blender/freestyle/intern/app/AppOptionsWindow.h
new file mode 100755
index 00000000000..aaa964739a6
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppOptionsWindow.h
@@ -0,0 +1,74 @@
+//
+// Filename : AppOptionsWindow.h
+// Author : Emmanuel Turquin, Stephane Grabli
+// Purpose : Class to define the options window
+// Date of creation : 27/01/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ARTOPTIONSWINDOW_H
+#define ARTOPTIONSWINDOW_H
+
+#include "ConfigIO.h"
+#include "ui_dir/ui_optionswindow4.h"
+
+using namespace Ui;
+
+class AppOptionsWindow : public QDialog, public OptionsWindow
+{
+ Q_OBJECT
+
+public:
+
+ AppOptionsWindow(QWidget *parent = 0, const char *name = 0, bool modal = FALSE, Qt::WFlags fl = 0);
+ ~AppOptionsWindow();
+
+ virtual void updateViewMapFormat();
+
+public slots:
+
+ virtual void Ok();
+ virtual void Apply();
+ virtual void Cancel();
+
+ virtual void ModelsAdd();
+ virtual void PatternsAdd();
+ virtual void BrushesAdd();
+ virtual void PythonAdd();
+ virtual void HelpAdd();
+
+ virtual void PaperAdd();
+ virtual void PaperRemove();
+ virtual void PaperUp();
+ virtual void PaperDown();
+ virtual void PaperClear();
+
+ private:
+
+ virtual QString DirDialog();
+ virtual void Propagate();
+
+ ConfigIO* _options;
+};
+
+#endif // ARTOPTIONSWINDOW_H
diff --git a/source/blender/freestyle/intern/app/AppProgressBar.cpp b/source/blender/freestyle/intern/app/AppProgressBar.cpp
new file mode 100755
index 00000000000..a4d18d07dd3
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppProgressBar.cpp
@@ -0,0 +1,78 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include <qprogressdialog.h>
+#include <qapplication.h>
+#include "AppProgressBar.h"
+
+AppProgressBar::AppProgressBar()
+ : ProgressBar()
+{
+ _qtProgressBar = 0;
+}
+
+void AppProgressBar::reset()
+{
+ ProgressBar::reset();
+ if(NULL == _qtProgressBar)
+ return;
+
+ _qtProgressBar->reset();
+ _qtProgressBar->show();
+}
+
+void AppProgressBar::setTotalSteps(unsigned n)
+{
+ ProgressBar::setTotalSteps(n);
+ if(NULL == _qtProgressBar)
+ return;
+
+ _qtProgressBar->setRange(0,_numtotalsteps);
+}
+
+void AppProgressBar::setProgress(unsigned i)
+{
+ if(i > _numtotalsteps)
+ return;
+
+ ProgressBar::setProgress(i);
+ if(NULL == _qtProgressBar)
+ return;
+
+ _qtProgressBar->setValue(_progress);
+ qApp->processEvents();
+
+ if(i == _numtotalsteps)
+ {
+ _qtProgressBar->setValue(_numtotalsteps);
+
+ _qtProgressBar->reset();
+ ProgressBar::reset();
+ _qtProgressBar->hide();
+ }
+}
+
+void AppProgressBar::setLabelText(const string& label)
+{
+ ProgressBar::setLabelText(label);
+ if (NULL == _qtProgressBar)
+ return;
+ _qtProgressBar->setLabelText(_label.c_str());
+}
diff --git a/source/blender/freestyle/intern/app/AppProgressBar.h b/source/blender/freestyle/intern/app/AppProgressBar.h
new file mode 100755
index 00000000000..09cc500a981
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppProgressBar.h
@@ -0,0 +1,55 @@
+#ifndef ARTPROGRESSBAR_H
+#define ARTPROGRESSBAR_H
+
+//
+//
+// FileName : AppProgressBar.h
+// Author : Stephane Grabli
+// Purpose : Class to define the App progress bar
+// Date Of Creation : 27/08/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "../system/ProgressBar.h"
+
+class QProgressDialog;
+class AppProgressBar : public ProgressBar
+{
+public:
+ AppProgressBar();
+
+ virtual ~AppProgressBar() {}
+
+ virtual void reset();
+ virtual void setTotalSteps(unsigned n);
+ virtual void setProgress(unsigned i);
+ virtual void setLabelText(const string& text) ;
+
+ void setQTProgressBar(QProgressDialog* qtBar) {_qtProgressBar = qtBar;}
+
+ QProgressDialog * getQTProgressBar() {return _qtProgressBar;}
+
+private:
+ QProgressDialog *_qtProgressBar;
+};
+
+#endif
diff --git a/source/blender/freestyle/intern/app/AppStyleWindow.cpp b/source/blender/freestyle/intern/app/AppStyleWindow.cpp
new file mode 100755
index 00000000000..d8be753b498
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppStyleWindow.cpp
@@ -0,0 +1,366 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <fstream>
+#include <QCursor>
+#include <QApplication>
+#include <QFileDialog>
+#include <QHeaderView>
+#include <QString>
+#include "AppStyleWindow.h"
+#include "../stroke/Canvas.h"
+#include "../stroke/StyleModule.h"
+#include "Controller.h"
+#include "AppInteractiveShaderWindow.h"
+#include "AppConfig.h"
+
+AppStyleWindow::AppStyleWindow(QWidget* parent /* = 0 */, const char* name /* = 0 */, Qt::WFlags fl /* = 0 */)
+ : QDialog(parent, fl)
+{
+ // QDialog *widget = new QDialog(parent);
+ setupUi(this);
+ PlayList->setShowGrid(false);
+ PlayList->verticalHeader()->setVisible(false);
+ PlayList->horizontalHeader()->setClickable(false);
+ PlayList->setSelectionBehavior(QAbstractItemView::SelectRows);
+ PlayList->setSelectionMode(QAbstractItemView::SingleSelection);
+ PlayList->setColumnCount(5);
+ PlayList->setColumnWidth(0, 37);
+ PlayList->setColumnWidth(1, width() - 98);
+ PlayList->setColumnWidth(2, 37);
+ PlayList->hideColumn(3);
+ PlayList->hideColumn(4);
+ PlayList->setRowCount(0);
+ //PlayList->setsetLeftMargin(0);
+ PlayList->setHorizontalHeaderLabels((QStringList() << "Disp." << "Style Modules" << "Mod."));
+ _pInteractiveShaderWindow = new AppInteractiveShaderWindow(this);
+ _pInteractiveShaderWindow->hide();
+ QString projectDir(Config::Path::getInstance()->getProjectDir());
+ _mod0_image = new QPixmap(QString::fromUtf8(":/icons/icons/mod0.png"));
+ _mod1_image = new QPixmap(QString::fromUtf8(":/icons/icons/mod1.png"));
+ _disp0_image = new QPixmap(QString::fromUtf8(":/icons/icons/eye0.png"));
+ _disp1_image = new QPixmap(QString::fromUtf8(":/icons/icons/eye1.png"));
+
+ connect(_pInteractiveShaderWindow, SIGNAL(save()), SLOT(fileSave()));
+ // signals and slots connections
+ connect( addButton, SIGNAL( clicked() ), this, SLOT( Add() ) );
+ connect( removeButton, SIGNAL( clicked() ), this, SLOT( Remove() ) );
+ connect( PlayList, SIGNAL( cellDoubleClicked(int,int) ), this, SLOT( Display(int,int) ) );
+ connect( PlayList, SIGNAL( cellClicked(int,int) ), this, SLOT( ToggleLayer(int,int) ) );
+ connect( clearButton, SIGNAL( clicked() ), this, SLOT( Clear() ) );
+ connect( saveButton, SIGNAL( clicked() ), this, SLOT( SaveList() ) );
+ connect( moveUpButton, SIGNAL( clicked() ), this, SLOT( Up() ) );
+ connect( moveDownButton, SIGNAL( clicked() ), this, SLOT( Down() ) );
+ connect( editButton, SIGNAL( clicked() ), this, SLOT( Edit() ) );
+ connect( closeButton, SIGNAL( clicked() ), this, SLOT( Close() ) );
+}
+
+AppStyleWindow::~AppStyleWindow()
+{
+ delete _mod0_image;
+ delete _mod1_image;
+ delete _disp0_image;
+ delete _disp1_image;
+}
+
+void AppStyleWindow::Add(const char* iFileName, bool iDisp) {
+ //Add the item in the view box
+ //PlayList->insertItem(fi.fileName());
+ // PlayList->insertItem(s);
+ int currentRow;
+ QFileInfo fi(iFileName);
+ if(0 == PlayList->rowCount())
+ {
+ currentRow = -1;
+ }
+ else
+ {
+ currentRow = PlayList->currentRow();
+ }
+ PlayList->insertRow(currentRow+1);
+ for(int i=0; i< PlayList->rowCount(); ++i){
+ PlayList->setRowHeight(i, 20);
+ }
+ //PlayList->setRowHeight(currentRow + 1, 20);
+
+ // eye item
+ QTableWidgetItem * eye_item = new QTableWidgetItem;
+ eye_item->setFlags(Qt::ItemIsEnabled);
+ PlayList->setItem(currentRow + 1, 0, eye_item);
+ // style module name item
+ QTableWidgetItem * style_module_name_item = new QTableWidgetItem(fi.fileName());
+ style_module_name_item->setFlags(Qt::ItemIsEnabled|Qt::ItemIsSelectable);
+ PlayList->setItem(currentRow + 1, 1, style_module_name_item);
+ PlayList->setItem(currentRow + 1, 3, new QTableWidgetItem(iFileName));
+ // refresh item
+ QTableWidgetItem * refresh_item = new QTableWidgetItem;
+ refresh_item->setFlags(Qt::ItemIsEnabled);
+ PlayList->setItem(currentRow + 1, 2, refresh_item);
+
+ setModified(currentRow + 1, true);
+ QTableWidgetItem *checkItem = new QTableWidgetItem;
+ checkItem->setFlags(Qt::ItemIsUserCheckable);
+ if(iDisp)
+ checkItem->setCheckState(Qt::Checked);
+ else
+ checkItem->setCheckState(Qt::Unchecked);
+ PlayList->setItem(currentRow + 1, 4, checkItem);
+ setChecked(currentRow + 1, iDisp);
+ PlayList->setCurrentCell(currentRow + 1, 1);
+ //PlayList->setRangeSelected(QTableWidgetSelectionRange( currentRow+1, 0, currentRow+1, 4), true);
+ QString text = (PlayList->item(currentRow + 1, 3))->text();
+ PlayList->takeVerticalHeaderItem(currentRow + 1);
+ _pInteractiveShaderWindow->setCurrentShaderRow(currentRow + 1);
+ _pInteractiveShaderWindow->DisplayShader(text);
+
+ // Load the shader in memory and add it to the
+ // canvas list
+ g_pController->InsertStyleModule(currentRow + 1, iFileName);
+ g_pController->toggleLayer(currentRow + 1, iDisp);
+}
+
+void AppStyleWindow::AddList(const char* iFileName) {
+ ifstream ifs(iFileName);
+ if (!ifs.is_open()) {
+ cerr << "Error: Cannot load this file" << endl;
+ return;
+ }
+ QFileInfo fi(iFileName);
+ char tmp_buffer[256];
+ string s;
+ bool disp = true;
+ while (!ifs.eof()) {
+ ifs.getline(tmp_buffer, 255);
+ if (!tmp_buffer[0] || tmp_buffer[0] == '#')
+ continue;
+ if (tmp_buffer[0] == '0')
+ disp = false;
+ else
+ disp = true;
+ s = (const char*)fi.dir().path().toAscii().data();
+ s += Config::DIR_SEP;
+ s += tmp_buffer + 1;
+ ifstream test(s.c_str(), ios::binary);
+ if (!test.is_open()) {
+ cerr << "Error: Cannot load \"" << tmp_buffer + 1 << "\"" << endl;
+ continue;
+ }
+ Add(s.c_str(), disp);
+ }
+}
+
+void AppStyleWindow::SaveList() {
+ QString s = QFileDialog::getSaveFileName(
+ this,
+ "Save file dialog"
+ "Choose a file",
+ g_pController->getModulesDir(),
+ "Style modules lists (*." + Config::STYLE_MODULES_LIST_EXTENSION + ")");
+
+ if (s.isEmpty())
+ return;
+ QFileInfo fi( s );
+ QString ext = fi.suffix();
+ if (ext != Config::STYLE_MODULES_LIST_EXTENSION)
+ s += "." + Config::STYLE_MODULES_LIST_EXTENSION;
+ ofstream ofs(s.toAscii().data(), ios::binary);
+ if (!ofs.is_open()) {
+ cerr << "Error: Cannot save this file" << endl;
+ return;
+ }
+
+ QTableWidgetItem *checkItem;
+ for (unsigned i = 0 ; i < PlayList->rowCount(); i++) {
+ checkItem = PlayList->item(i, 4);
+ ofs << ((checkItem->checkState() == Qt::Checked) ? '1' : '0');
+ ofs << PlayList->item(i, 1)->text().toAscii().data() << endl;
+ }
+ g_pController->setModulesDir(fi.dir().path());
+ cout << "Style modules list saved" << endl;
+}
+
+void AppStyleWindow::Add()
+{
+ // Load Module
+ QString s = QFileDialog::getOpenFileName(this,
+ "Open file dialog"
+ "Choose a file",
+ g_pController->getModulesDir(),
+ "Style modules (*." + Config::STYLE_MODULE_EXTENSION + ")"
+ ";;"
+ "Style modules lists (*." + Config::STYLE_MODULES_LIST_EXTENSION + ")");
+
+ QFileInfo fi( s );
+ QString ext = fi.suffix(); // ext is taken after the last dot.
+
+ if (ext == Config::STYLE_MODULE_EXTENSION) {
+ g_pController->setModulesDir(fi.dir().path());
+ Add(s.toAscii().data());
+ }
+ else if (ext == Config::STYLE_MODULES_LIST_EXTENSION) {
+ g_pController->setModulesDir(fi.dir().path());
+ AddList(s.toAscii().data());
+ }
+}
+
+void AppStyleWindow::Remove()
+{
+ // Remove the selected item
+ g_pController->RemoveStyleModule(PlayList->currentRow());
+ PlayList->removeRow(PlayList->currentRow());
+ _pInteractiveShaderWindow->fileClose();
+}
+
+void AppStyleWindow::Clear()
+{
+ g_pController->Clear();
+ for (int i = PlayList->rowCount() - 1; i >= 0; i--)
+ PlayList->removeRow(i);
+ _pInteractiveShaderWindow->fileClose();
+}
+
+void AppStyleWindow::ExposeInteractiveShader()
+{
+ _pInteractiveShaderWindow->show();
+ //_pInteractiveShaderWindow->Load();
+}
+
+void AppStyleWindow::setModified(unsigned row, bool mod) {
+ if (mod) {
+ PlayList->item(row, 2)->setIcon(QIcon(*_mod1_image));
+ return;
+ }
+ Canvas* canvas = Canvas::getInstance();
+ StyleModule* sm = canvas->getCurrentStyleModule();
+ if (sm && sm->getAlwaysRefresh())
+ return;
+ PlayList->item(row, 2)->setIcon(QIcon(*_mod0_image));
+}
+
+void AppStyleWindow::setChecked(unsigned row, bool check) {
+ if (check)
+ PlayList->item(row, 0)->setIcon(QIcon(*_disp1_image));
+ else
+ PlayList->item(row, 0)->setIcon(QIcon(*_disp0_image));
+}
+
+void AppStyleWindow::Edit() {
+ if(PlayList->rowCount() == 0)
+ return;
+
+ int currentRow = PlayList->currentRow();
+
+ ExposeInteractiveShader();
+ QString text = (PlayList->item(currentRow, 3)->text());
+ _pInteractiveShaderWindow->setCurrentShaderRow(currentRow);
+ _pInteractiveShaderWindow->DisplayShader(text);
+}
+
+void AppStyleWindow::Display( int row, int col ) {
+ if(col != 1)
+ return;
+
+ Edit();
+}
+
+void AppStyleWindow::ToggleLayer(int row, int col)
+{
+ if(0 == PlayList->rowCount())
+ return;
+
+ if(col != 0)
+ return;
+
+ QTableWidgetItem *checkItem = PlayList->item(row, 4);
+ if(checkItem->flags() != Qt::ItemIsUserCheckable)
+ return;
+
+ bool isChecked;
+ if(checkItem->checkState() == Qt::Checked){
+ checkItem->setCheckState(Qt::Unchecked);
+ isChecked = false;
+ }else{
+ checkItem->setCheckState(Qt::Checked);
+ isChecked = true;
+ }
+ g_pController->toggleLayer(row, isChecked);
+ setChecked(row, isChecked);
+}
+
+void AppStyleWindow::Up() {
+ int current = PlayList->currentRow();
+ if (current > 0) {
+ SwapShaders(current, current - 1);
+ PlayList->clearSelection();
+
+ PlayList->setRangeSelected(QTableWidgetSelectionRange( current-1, 0, current-1, 4), true);
+ PlayList->setCurrentCell(current-1, 1);
+ g_pController->updateCausalStyleModules(current - 1);
+ current = current-1;
+ }
+}
+
+void AppStyleWindow::Down() {
+ int current = PlayList->currentRow();
+ if (current < PlayList->rowCount() - 1) {
+ SwapShaders(current, current + 1);
+ PlayList->clearSelection();
+
+ PlayList->setRangeSelected(QTableWidgetSelectionRange( current+1, 0, current+1, 4), true);
+ PlayList->setCurrentCell(current+1, 1);
+
+ g_pController->updateCausalStyleModules(current);
+ current = current +1;
+ }
+}
+
+void AppStyleWindow::fileSave() {
+ int current = _pInteractiveShaderWindow->getCurrentShaderRow();
+ QString text = (PlayList->item(current, 3)->text());
+ g_pController->ReloadStyleModule(current, text.toAscii().data());
+ QTableWidgetItem *checkItem = PlayList->item(current, 4);
+ bool isChecked = (checkItem->checkState() == Qt::Checked) ? true : false;
+ g_pController->toggleLayer(current, isChecked);
+}
+
+void AppStyleWindow::resetModified(bool iMod)
+{
+ for(int i=0; i < PlayList->rowCount(); i++)
+ {
+ setModified(i,iMod);
+ }
+}
+
+void AppStyleWindow::SwapShaders(int i1, int i2) {
+ g_pController->SwapStyleModules(i1, i2);
+ //PlayList->swapRows(i1, i2);
+ QTableWidgetItem *first_row_items[5];
+ QTableWidgetItem *second_row_items[5];
+ int i;
+ for(i=0;i<5;++i){
+ first_row_items[i] = PlayList->takeItem(i1, i);
+ second_row_items[i] = PlayList->takeItem(i2, i);
+ }
+ for(i=0;i<5;++i){
+ PlayList->setItem(i1, i, second_row_items[i]);
+ PlayList->setItem(i2, i, first_row_items[i]);
+ }
+}
diff --git a/source/blender/freestyle/intern/app/AppStyleWindow.h b/source/blender/freestyle/intern/app/AppStyleWindow.h
new file mode 100755
index 00000000000..a9339abf9c8
--- /dev/null
+++ b/source/blender/freestyle/intern/app/AppStyleWindow.h
@@ -0,0 +1,93 @@
+//
+// Filename : AppStyleWindow.h
+// Author : Stephane Grabli
+// Purpose : Class to define the style window
+// Date of creation : 18/12/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ARTSTYLEWINDOW_H
+#define ARTSTYLEWINDOW_H
+
+#include <QKeyEvent>
+#include <QWidget>
+#include <QPainter>
+#include <QColorGroup>
+#include "ui_dir/ui_stylewindow4.h"
+
+using namespace Ui;
+
+class AppInteractiveShaderWindow;
+class AppStyleWindow : public QDialog, public StyleWindow
+{
+ Q_OBJECT
+public:
+ AppStyleWindow(QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = 0);
+ virtual ~AppStyleWindow();
+
+ void ExposeInteractiveShader();
+ /*! sets all layers to visible */
+ //void resetLayers();
+
+ virtual int currentRow() const { return PlayList->currentRow(); }
+ virtual void setModified(unsigned row, bool mod);
+ virtual void resetModified(bool iMod = false);
+ virtual void setChecked(unsigned row, bool check);
+
+public slots:
+ virtual void Add();
+ virtual void Add(const char* iFileName, bool iDisp = true);
+ virtual void SaveList();
+ virtual void Remove();
+ virtual void Clear();
+ virtual void Up();
+ virtual void Down();
+ virtual void Edit();
+ virtual void Close() { close(); }
+ virtual void Display( int row, int col);
+ virtual void ToggleLayer(int row, int col);
+ virtual void SwapShaders(int i1, int i2);
+ void fileSave();
+
+ protected:
+
+ void keyPressEvent(QKeyEvent *e) {
+ if (e->key() == Qt::Key_Escape)
+ return;
+ QDialog::keyPressEvent(e);
+ }
+
+private:
+
+ void AddList(const char* iFileName);
+
+ AppInteractiveShaderWindow* _pInteractiveShaderWindow;
+
+ QPixmap* _mod0_image;
+ QPixmap* _mod1_image;
+ QPixmap* _disp0_image;
+ QPixmap* _disp1_image;
+};
+
+#endif // ARTSTYLEWINDOW_H
diff --git a/source/blender/freestyle/intern/app/ConfigIO.cpp b/source/blender/freestyle/intern/app/ConfigIO.cpp
new file mode 100755
index 00000000000..8165deb07fd
--- /dev/null
+++ b/source/blender/freestyle/intern/app/ConfigIO.cpp
@@ -0,0 +1,116 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <iostream>
+#include <qfileinfo.h>
+#include <qdir.h>
+#include "ConfigIO.h"
+
+ConfigIO::ConfigIO(QString filename, const QString& doc_type, bool automatic, const QString& sep)
+ : _default_file(filename), _automatic(automatic) {
+ _doc_type = doc_type;
+ _path_sep = sep;
+ if (_automatic)
+ loadFile();
+}
+
+ConfigIO::~ConfigIO() {
+ if (_automatic)
+ saveFile();
+}
+
+QString ConfigIO::getDefaultFile() const {
+ return _default_file;
+}
+
+void ConfigIO::setDefaultFile(const QString& filename) {
+ _default_file = filename;
+}
+
+bool ConfigIO::getAuto() const {
+ return _automatic;
+}
+
+void ConfigIO::setAuto(bool automatic) {
+ _automatic = automatic;
+}
+
+QString ConfigIO::getPathSep() const {
+ return _path_sep;
+}
+
+void ConfigIO::setPathSep(const QString& sep) {
+ _path_sep = sep;
+}
+
+int ConfigIO::loadFile(const QString& _filename) {
+
+ const QString filename = _filename.isEmpty() ? _default_file : _filename;
+
+ // check wether filename is a valid file and is readable
+ QFileInfo fileinfo(filename);
+ if (!fileinfo.isFile() || !fileinfo.isReadable()) {
+ std::cerr << "Warning: unable to load configuration file \""
+ << fileinfo.fileName().toAscii().data() << "\"" << std::endl;
+ return 1;
+ }
+
+ // read the DOM tree from file
+ QFile file(filename);
+ file.open(QIODevice::ReadOnly);
+ _tree.setContent(&file);
+ file.close();
+
+ return 0;
+}
+
+int ConfigIO::saveFile(const QString& _filename) const {
+
+ QString str_tree = _tree.toString();
+ if (str_tree.isEmpty())
+ return 1;
+
+ const QString filename = _filename.isEmpty() ? _default_file : _filename;
+
+ // if the directory in which we want to generate a file
+ // does not exist yet, try to create it
+ QFileInfo fileinfo(filename);
+ if (!fileinfo.exists()) {
+ QDir dir;
+ dir.mkdir(fileinfo.dir().path());
+ }
+
+ // check wether filename is a valid file and is writable
+ QFile file(filename);
+ file.open(QIODevice::WriteOnly);
+ if (!file.isOpen()) {
+ std::cerr << "Warning: unable to save configuration file \""
+ << fileinfo.fileName().toAscii().data() << "\"" << std::endl;
+ return 1;
+ }
+
+ // write the DOM tree to file
+ QTextStream out(&file);
+ out << str_tree;
+ file.close();
+
+ return 0;
+}
diff --git a/source/blender/freestyle/intern/app/ConfigIO.h b/source/blender/freestyle/intern/app/ConfigIO.h
new file mode 100755
index 00000000000..15f3cd07575
--- /dev/null
+++ b/source/blender/freestyle/intern/app/ConfigIO.h
@@ -0,0 +1,181 @@
+//
+// Filename : ConfigIO.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Configuration management
+// Date of creation : 26/02/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef CONFIGIO_H
+# define CONFIGIO_H
+
+# include <qstring.h>
+# include <qstringlist.h>
+# include <qtextstream.h>
+# include <qdom.h>
+# include "../system/FreestyleConfig.h"
+
+class ConfigIO
+{
+ public:
+
+ ConfigIO(QString filename = "",
+ const QString& doc_type = "config_file",
+ bool automatic = false,
+ const QString& sep = "/");
+ ~ConfigIO();
+
+ QString getDefaultFile() const;
+ void setDefaultFile(const QString& filename);
+
+ bool getAuto() const;
+ void setAuto(bool automatic);
+
+ QString getPathSep() const;
+ void setPathSep(const QString& sep);
+
+ int loadFile(const QString& filename = "");
+ int saveFile(const QString& filename = "") const;
+
+ template <class T> int getValue(const QString& path, T& res) const;
+ template <class T> int setValue(const QString& path, const T& src);
+
+ private:
+
+ QString _path_sep;
+ QString _default_file;
+ bool _automatic;
+
+ QDomDocument _tree;
+ QString _doc_type;
+};
+
+
+//
+// Implementation of templated methods
+//
+///////////////////////////////////////////////////
+
+namespace Internal {
+
+ template <class T>
+ struct readValue {
+ void operator()(const QString &value, T &res) {
+ QTextStream((QString *)&value, QIODevice::ReadOnly)>> res;
+ }
+ };
+
+ template <>
+ struct readValue<QString> {
+ void operator()(const QString& value, QString& res) {
+ res = value;
+ }
+ };
+
+ template <>
+ struct readValue<bool> {
+ void operator()(const QString& value, bool& res) {
+ short res_tmp;
+ QTextStream((QString *)&value, QIODevice::ReadOnly) >> res_tmp;
+ res = res_tmp;
+ }
+ };
+
+} // end of namespace Internal
+
+
+template <class T>
+int ConfigIO::getValue(const QString& path, T& res) const {
+
+ // Split path
+ QStringList strlist;
+ strlist = path.split(_path_sep);
+
+ unsigned size = strlist.size();
+ if (size-- < 2)
+ return 1;
+
+ // try to find the right element
+ QDomElement right_node;
+ QDomElement node = _tree.documentElement().firstChild().toElement();
+ for (unsigned i = 0;
+ !node.isNull() && i < size;
+ node = node.firstChild().toElement(), i++) {
+ while (!node.isNull() && node.tagName() != strlist[i])
+ node = node.nextSibling().toElement();
+ right_node = node;
+ }
+
+ // and the right attribute
+ if (right_node.hasAttribute(strlist[size])) {
+ QString value = right_node.attribute(strlist[size]);
+ Internal::readValue<T> rv;
+ rv(value, res);
+ return 0;
+ }
+
+ return 1;
+}
+
+
+template <class T>
+int ConfigIO::setValue(const QString& path, const T& src) {
+
+ // Split path
+ QStringList strlist = path.split(_path_sep);
+
+ unsigned size = strlist.size();
+ if (size-- < 2)
+ return 1;
+
+ // verify that the tree isn't empty
+ // if so, create a root
+ QDomElement node = _tree.documentElement();
+ if (node.isNull()) {
+ node = _tree.createElement(_doc_type);
+ _tree.appendChild(node);
+ }
+
+ // find the right element
+ QDomElement child = node.firstChild().toElement();
+ for (unsigned i = 0;
+ i < size;
+ node = child, child = child.firstChild().toElement(), i++) {
+ while (!child.isNull() && child.tagName() != strlist[i])
+ child = child.nextSibling().toElement();
+ if (child.isNull()) {
+ child = _tree.createElement(strlist[i]);
+ node.appendChild(child);
+ }
+ }
+
+ // and set the attribute
+ QString value;
+ QTextStream(&value, QIODevice::WriteOnly) << src;
+ node.setAttribute(strlist[size], value);
+
+ return 0;
+}
+
+#endif // CONFIGIO_H
diff --git a/source/blender/freestyle/intern/app/Controller.cpp b/source/blender/freestyle/intern/app/Controller.cpp
new file mode 100755
index 00000000000..ac41b31ac78
--- /dev/null
+++ b/source/blender/freestyle/intern/app/Controller.cpp
@@ -0,0 +1,1498 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+// Must be included before any QT header, because of moc
+#include "../system/PythonInterpreter.h"
+
+#include <fstream>
+#include <float.h>
+#include <qfileinfo.h>
+#include <qprocess.h>
+#include <qstring.h>
+
+#include "AppGLWidget.h"
+#include "AppMainWindow.h"
+#include "AppProgressBar.h"
+#include "AppStyleWindow.h"
+#include "AppOptionsWindow.h"
+#include "AppAboutWindow.h"
+#include "AppCanvas.h"
+#include "AppConfig.h"
+#include "AppDensityCurvesWindow.h"
+
+#include "../system/StringUtils.h"
+#include "../scene_graph/MaxFileLoader.h"
+#include "../scene_graph/NodeShape.h"
+#include "../scene_graph/NodeTransform.h"
+#include "../scene_graph/NodeDrawingStyle.h"
+#include "../winged_edge/WingedEdgeBuilder.h"
+#include "../winged_edge/WEdge.h"
+#include "../scene_graph/VertexRep.h"
+#include "../winged_edge/WXEdgeBuilder.h"
+#include "../scene_graph/ScenePrettyPrinter.h"
+#include "../winged_edge/WFillGrid.h"
+
+#include "../view_map/ViewMapTesselator.h"
+#include "../stroke/StrokeTesselator.h"
+#include "../view_map/ViewMapIO.h"
+#include "Controller.h"
+#include "../view_map/ViewMap.h"
+#include "../winged_edge/Curvature.h"
+#include "QGLBasicWidget.h"
+#include <qimage.h>
+#include "../image/Image.h"
+#include "../view_map/SteerableViewMap.h"
+#include "../stroke/PSStrokeRenderer.h"
+#include "../stroke/TextStrokeRenderer.h"
+#include "../stroke/StyleModule.h"
+
+#ifndef WIN32
+//# include "GLXOffscreenBuffer.h"
+//# include "GLXOffscreenBuffer.h"
+#endif
+
+Controller::Controller()
+{
+ const QString sep(Config::DIR_SEP.c_str());
+ const QString filename = Config::Path::getInstance()->getHomeDir() + sep +
+ Config::OPTIONS_DIR + sep + Config::OPTIONS_CURRENT_DIRS_FILE;
+ _current_dirs = new ConfigIO(filename, Config::APPLICATION_NAME + "CurrentDirs", true);
+
+ _RootNode = new NodeGroup;
+ _RootNode->addRef();
+
+ _SilhouetteNode = NULL;
+ //_ProjectedSilhouette = NULL;
+ //_VisibleProjectedSilhouette = NULL;
+
+ _DebugNode = new NodeGroup;
+ _DebugNode->addRef();
+
+ _winged_edge = NULL;
+
+ _pMainWindow = NULL;
+ _pView = NULL;
+
+ _edgeTesselationNature = (Nature::SILHOUETTE | Nature::BORDER | Nature::CREASE);
+
+ _ProgressBar = new AppProgressBar;
+ _SceneNumFaces = 0;
+ _minEdgeSize = DBL_MAX;
+ _bboxDiag = 0;
+
+ _ViewMap = 0;
+
+ _Canvas = 0;
+
+ _VisibilityAlgo = ViewMapBuilder::ray_casting;
+ //_VisibilityAlgo = ViewMapBuilder::ray_casting_fast;
+
+ _Canvas = new AppCanvas;
+
+ _inter = new PythonInterpreter;
+ _EnableQI = true;
+ _ComputeRidges = true;
+ _ComputeSteerableViewMap = false;
+ _ComputeSuggestive = true;
+ _sphereRadius = 1.0;
+}
+
+Controller::~Controller()
+{
+ if(NULL != _RootNode)
+ {
+ int ref = _RootNode->destroy();
+ if(0 == ref)
+ delete _RootNode;
+ }
+
+ if(NULL != _SilhouetteNode)
+ {
+ int ref = _SilhouetteNode->destroy();
+ if(0 == ref)
+ delete _SilhouetteNode;
+ }
+
+ if(NULL != _DebugNode)
+ {
+ int ref = _DebugNode->destroy();
+ if(0 == ref)
+ delete _DebugNode;
+ }
+
+ // if(NULL != _VisibleProjectedSilhouette)
+ // {
+ // int ref = _VisibleProjectedSilhouette->destroy();
+ // if(0 == ref)
+ // delete _VisibleProjectedSilhouette;
+ // }
+
+ // if(NULL != _ProjectedSilhouette)
+ // {
+ // int ref = _ProjectedSilhouette->destroy();
+ // if(0 == ref)
+ // delete _ProjectedSilhouette;
+ // }
+
+ if(NULL != _ProgressBar)
+ {
+ delete _ProgressBar;
+ _ProgressBar = NULL;
+ }
+
+ if(_winged_edge) {
+ delete _winged_edge;
+ _winged_edge = NULL;
+ }
+
+ if(0 != _ViewMap)
+ {
+ delete _ViewMap;
+ _ViewMap = 0;
+ }
+
+ if(0 != _Canvas)
+ {
+ delete _Canvas;
+ _Canvas = 0;
+ }
+
+ if (_inter) {
+ delete _inter;
+ _inter = NULL;
+ }
+
+ // if(_pDensityCurvesWindow){
+ // delete _pDensityCurvesWindow;
+ // _pDensityCurvesWindow = 0;
+ // }
+ delete _current_dirs;
+}
+
+void Controller::SetView(AppGLWidget *iView)
+{
+ if(NULL == iView)
+ return;
+
+ _pView = iView;
+ //_pView2D->setGeometry(_pView->rect());
+ _Canvas->SetViewer(_pView);
+}
+
+void Controller::SetMainWindow(AppMainWindow *iMainWindow)
+{
+ _pMainWindow = iMainWindow;
+ _ProgressBar->setQTProgressBar(_pMainWindow->qtProgressDialog());
+ _pStyleWindow = new AppStyleWindow(_pMainWindow, "StyleWindow");
+ _pOptionsWindow = new AppOptionsWindow(_pMainWindow, "MainWindow");
+ _pDensityCurvesWindow = new AppDensityCurvesWindow(_pMainWindow, "MainWindow");
+}
+
+int Controller::Load3DSFile(const char *iFileName)
+{
+ if (_pView)
+ _pView->setUpdateMode(false);
+
+ //_pMainWindow->InitProgressBar("Loading 3DS Model", 4);
+ _ProgressBar->reset();
+ _ProgressBar->setLabelText("Loading 3DS Model");
+ _ProgressBar->setTotalSteps(3);
+ _ProgressBar->setProgress(0);
+
+ //_pMainWindow->setProgressLabel("Reading File");
+ //_pMainWindow->setProgressLabel("Cleaning mesh");
+
+ _pMainWindow->DisplayMessage("Reading File");
+ _pMainWindow->DisplayMessage("Cleaning Mesh");
+
+ MaxFileLoader loader3DS(iFileName);
+ //_RootNode->AddChild(BuildSceneTest());
+
+ _Chrono.start();
+
+ NodeGroup *maxScene = loader3DS.Load();
+
+ if (maxScene == NULL) {
+ _ProgressBar->setProgress(3);
+ return 1;
+ }
+
+ printf("Mesh cleaning : %lf\n", _Chrono.stop());
+ _SceneNumFaces += loader3DS.numFacesRead();
+
+ if(loader3DS.minEdgeSize() < _minEdgeSize)
+ {
+ _minEdgeSize = loader3DS.minEdgeSize();
+ _EPSILON = _minEdgeSize*1e-6;
+ if(_EPSILON < DBL_MIN)
+ _EPSILON = 0.0;
+ }
+
+ cout << "Epsilon computed : " << _EPSILON << endl;
+
+ _ProgressBar->setProgress(1);
+
+ // DEBUG
+// ScenePrettyPrinter spp;
+// maxScene->accept(spp);
+
+ _RootNode->AddChild(maxScene);
+ _RootNode->UpdateBBox(); // FIXME: Correct that by making a Renderer to compute the bbox
+
+ _pView->SetModel(_RootNode);
+ _pView->FitBBox();
+
+ _pMainWindow->DisplayMessage("Building Winged Edge structure");
+ _Chrono.start();
+
+
+ WXEdgeBuilder wx_builder;
+ maxScene->accept(wx_builder);
+ _winged_edge = wx_builder.getWingedEdge();
+
+ printf("WEdge building : %lf\n", _Chrono.stop());
+
+ _ProgressBar->setProgress(2);
+
+ _pMainWindow->DisplayMessage("Building Grid");
+ _Chrono.start();
+
+ _Grid.clear();
+ Vec3r size;
+ for(unsigned int i=0; i<3; i++)
+ {
+ size[i] = fabs(_RootNode->bbox().getMax()[i] - _RootNode->bbox().getMin()[i]);
+ size[i] += size[i]/10.0; // let make the grid 1/10 bigger to avoid numerical errors while computing triangles/cells intersections
+ if(size[i]==0){
+ cout << "Warning: the bbox size is 0 in dimension "<<i<<endl;
+ }
+ }
+ _Grid.configure(Vec3r(_RootNode->bbox().getMin() - size / 20.0), size,
+ _SceneNumFaces);
+
+ // Fill in the grid:
+ WFillGrid fillGridRenderer(&_Grid, _winged_edge);
+ fillGridRenderer.fillGrid();
+
+ printf("Grid building : %lf\n", _Chrono.stop());
+
+ // DEBUG
+// _Grid.displayDebug();
+
+ _ProgressBar->setProgress(3);
+
+ _pView->SetDebug(_DebugNode);
+
+ //delete stuff
+ // if(0 != ws_builder)
+ // {
+ // delete ws_builder;
+ // ws_builder = 0;
+ // }
+ _pView->updateGL();
+ QFileInfo qfi(iFileName);
+ string basename((const char*)qfi.fileName().toAscii().data());
+ _ListOfModels.push_back(basename);
+
+ cout << "Triangles nb : " << _SceneNumFaces << endl;
+ _bboxDiag = (_RootNode->bbox().getMax()-_RootNode->bbox().getMin()).norm();
+ cout << "Bounding Box : " << _bboxDiag << endl;
+ return 0;
+}
+
+void Controller::CloseFile()
+{
+ WShape::SetCurrentId(0);
+ _pView->DetachModel();
+ _ListOfModels.clear();
+ if(NULL != _RootNode)
+ {
+ int ref = _RootNode->destroy();
+ if(0 == ref)
+ _RootNode->addRef();
+
+ _RootNode->clearBBox();
+ }
+
+ _pView->DetachSilhouette();
+ if (NULL != _SilhouetteNode)
+ {
+ int ref = _SilhouetteNode->destroy();
+ if(0 == ref)
+ {
+ delete _SilhouetteNode;
+ _SilhouetteNode = NULL;
+ }
+ }
+ // if(NULL != _ProjectedSilhouette)
+ // {
+ // int ref = _ProjectedSilhouette->destroy();
+ // if(0 == ref)
+ // {
+ // delete _ProjectedSilhouette;
+ // _ProjectedSilhouette = NULL;
+ // }
+ // }
+ // if(NULL != _VisibleProjectedSilhouette)
+ // {
+ // int ref = _VisibleProjectedSilhouette->destroy();
+ // if(0 == ref)
+ // {
+ // delete _VisibleProjectedSilhouette;
+ // _VisibleProjectedSilhouette = NULL;
+ // }
+ // }
+
+ _pView->DetachDebug();
+ if(NULL != _DebugNode)
+ {
+ int ref = _DebugNode->destroy();
+ if(0 == ref)
+ _DebugNode->addRef();
+ }
+
+ if(_winged_edge) {
+ delete _winged_edge;
+ _winged_edge = NULL;
+ }
+
+ // We deallocate the memory:
+ if(NULL != _ViewMap)
+ {
+ delete _ViewMap;
+ _ViewMap = 0;
+ }
+
+ // clears the canvas
+ _Canvas->Erase();
+
+ // clears the grid
+ _Grid.clear();
+ _SceneNumFaces = 0;
+ _minEdgeSize = DBL_MAX;
+ // _pView2D->DetachScene();
+ // if(NULL != _SRoot)
+ // {
+ // int ref = _SRoot->destroy();
+ // if(0 == ref)
+ // {
+ // //_SRoot->addRef();
+ // delete _SRoot;
+ // _SRoot = NULL;
+ // }
+ // }
+}
+
+// static const streamsize buffer_size = 512 * 1024;
+
+void Controller::SaveViewMapFile(const char *oFileName)
+{
+ if (!_ViewMap)
+ return;
+
+ ofstream ofs(oFileName, ios::binary);
+ if (!ofs.is_open()) {
+ _pMainWindow->DisplayMessage("Error: Cannot save this file");
+ cerr << "Error: Cannot save this file" << endl;
+ return;
+ }
+// char buffer[buffer_size];
+// #if defined(__GNUC__) && (__GNUC__ < 3)
+// ofs.rdbuf()->setbuf(buffer, buffer_size);
+// # else
+// ofs.rdbuf()->pubsetbuf(buffer, buffer_size);
+// #endif
+ _Chrono.start();
+
+ ofs << Config::VIEWMAP_MAGIC.toAscii().data() << endl << Config::VIEWMAP_VERSION.toAscii().data() << endl;
+
+ // Write the models filenames
+ ofs << _ListOfModels.size() << endl;
+ for (vector<string>::const_iterator i = _ListOfModels.begin(); i != _ListOfModels.end(); i++)
+ ofs << *i << "\n";
+
+ // Save the camera position
+ float position[3];
+ float orientation[4];
+ _pView->getCameraState(position, orientation);
+ ofs.write((char*)position, 3 * sizeof(*position));
+ ofs.write((char*)orientation, 4 * sizeof(*orientation));
+
+ // Write ViewMap
+ if (ViewMapIO::save(ofs, _ViewMap, _ProgressBar)) {
+ _Chrono.stop();
+ cerr << "Error: Cannot save this file" << endl;
+ return;
+ }
+
+ real d = _Chrono.stop();
+ cout << "ViewMap saving : " << d << endl;
+}
+
+void Controller::LoadViewMapFile(const char *iFileName, bool only_camera)
+{
+ ifstream ifs(iFileName, ios::binary);
+ if (!ifs.is_open()) {
+ _pMainWindow->DisplayMessage("Error: Cannot load this file");
+ cerr << "Error: Cannot load this file" << endl;
+ return;
+ }
+// char buffer[buffer_size];
+// #if defined(__GNUC__) && (__GNUC__ < 3)
+// ifs.rdbuf()->setbuf(buffer, buffer_size);
+// # else
+// ifs.rdbuf()->pubsetbuf(buffer, buffer_size);
+// #endif
+
+ // Test File Magic and version
+ char tmp_buffer[256];
+ QString test;
+
+ ifs.getline(tmp_buffer, 255);
+ test = tmp_buffer;
+ if (test != Config::VIEWMAP_MAGIC) {
+ _pMainWindow->DisplayMessage(
+ (QString("Error: This is not a valid .") + Config::VIEWMAP_EXTENSION + QString(" file")).toAscii().data());
+ cerr << "Error: This is not a valid ." << Config::VIEWMAP_EXTENSION.toAscii().data() << " file" << endl;
+ return;
+ }
+ ifs.getline(tmp_buffer, 255);
+ test = tmp_buffer;
+ if (test != Config::VIEWMAP_VERSION && !only_camera) {
+ _pMainWindow->DisplayMessage(
+ (QString("Error: This version of the .") + Config::VIEWMAP_EXTENSION + QString(" file format is no longer supported")).toAscii().data());
+ cerr << "Error: This version of the ." << Config::VIEWMAP_EXTENSION.toAscii().data() << " file format is no longer supported" << endl;
+ return;
+ }
+
+ // Read the models filenames and open them (if not already done)
+ string tmp;
+ vector<string> tmp_vec;
+ unsigned models_nb, i;
+
+ ifs.getline(tmp_buffer, 255);
+ models_nb = atoi(tmp_buffer);
+ for (i = 0; i < models_nb; i++) {
+ ifs.getline(tmp_buffer, 255);
+ tmp = tmp_buffer;
+ tmp_vec.push_back(tmp);
+ }
+ if (_ListOfModels != tmp_vec && !only_camera) {
+ CloseFile();
+ vector<string> pathnames;
+ int err = 0;
+ for (vector<string>::const_iterator i = tmp_vec.begin(); i != tmp_vec.end(); i++)
+ {
+ pathnames.clear();
+ StringUtils::getPathName(ViewMapIO::Options::getModelsPath(), *i, pathnames);
+ for (vector<string>::const_iterator j = pathnames.begin(); j != pathnames.end(); j++)
+ if (!(err = Load3DSFile(j->c_str())))
+ break;
+ if (err) {
+ _pMainWindow->DisplayMessage("Error: cannot find the right model(s)");
+ cerr << "Error: cannot find model \"" << *i << "\" - check the path in the Options" << endl;
+ return;
+ }
+ }
+ }
+
+ // Set the camera position
+ float position[3];
+ float orientation[4];
+ ifs.read((char*)position, 3 * sizeof(*position));
+ ifs.read((char*)orientation, 4 * sizeof(*orientation));
+ _pView->setCameraState(position, orientation);
+ _pView->saveCameraState();
+
+ if (only_camera) {
+ _pMainWindow->DisplayMessage("Camera parameters loaded");
+ return;
+ }
+
+ // Reset ViewMap
+ if(NULL != _ViewMap)
+ {
+ delete _ViewMap;
+ _ViewMap = 0;
+ }
+ _pView->DetachSilhouette();
+ if (NULL != _SilhouetteNode)
+ {
+ int ref = _SilhouetteNode->destroy();
+ if(0 == ref)
+ delete _SilhouetteNode;
+ }
+ // if(NULL != _ProjectedSilhouette)
+ // {
+ // int ref = _ProjectedSilhouette->destroy();
+ // if(0 == ref)
+ // delete _ProjectedSilhouette;
+ // }
+ // if(NULL != _VisibleProjectedSilhouette)
+ // {
+ // int ref = _VisibleProjectedSilhouette->destroy();
+ // if(0 == ref)
+ // {
+ // delete _VisibleProjectedSilhouette;
+ // _VisibleProjectedSilhouette = 0;
+ // }
+ // }
+ _ViewMap = new ViewMap();
+
+ // Read ViewMap
+ _Chrono.start();
+ if (ViewMapIO::load(ifs, _ViewMap, _ProgressBar)) {
+ _Chrono.stop();
+ _pMainWindow->DisplayMessage(
+ (QString("Error: This is not a valid .") + Config::VIEWMAP_EXTENSION + QString(" file")).toAscii().data());
+ cerr << "Error: This is not a valid ." << Config::VIEWMAP_EXTENSION.toAscii().data() << " file" << endl;
+ return;
+ }
+
+ // Update display
+ _pMainWindow->DisplayMessage("Updating display");
+ ViewMapTesselator3D sTesselator3d;
+ //ViewMapTesselator2D sTesselator2d;
+ //sTesselator2d.SetNature(_edgeTesselationNature);
+ sTesselator3d.SetNature(_edgeTesselationNature);
+
+ // Tesselate the 3D edges:
+ _SilhouetteNode = sTesselator3d.Tesselate(_ViewMap);
+ _SilhouetteNode->addRef();
+
+ // Tesselate 2D edges
+ // _ProjectedSilhouette = sTesselator2d.Tesselate(_ViewMap);
+ // _ProjectedSilhouette->addRef();
+ //
+ _pView->AddSilhouette(_SilhouetteNode);
+ //_pView->Add2DSilhouette(_ProjectedSilhouette);
+
+ // Update options window
+ _pOptionsWindow->updateViewMapFormat();
+
+ real d = _Chrono.stop();
+ cout << "ViewMap loading : " << d << endl;
+
+ // Compute the Directional ViewMap:
+ if(_ComputeSteerableViewMap){
+ ComputeSteerableViewMap();
+ }
+
+ // Reset Style modules modification flags
+ resetModified(true);
+}
+
+void Controller::ComputeViewMap()
+{
+
+ if (!_ListOfModels.size())
+ return;
+
+ if(NULL != _ViewMap)
+ {
+ delete _ViewMap;
+ _ViewMap = 0;
+ }
+
+ _pView->DetachDebug();
+ if(NULL != _DebugNode)
+ {
+ int ref = _DebugNode->destroy();
+ if(0 == ref)
+ _DebugNode->addRef();
+ }
+
+
+ _pView->DetachSilhouette();
+ if (NULL != _SilhouetteNode)
+ {
+ int ref = _SilhouetteNode->destroy();
+ if(0 == ref)
+ delete _SilhouetteNode;
+ }
+ // if(NULL != _ProjectedSilhouette)
+ // {
+ // int ref = _ProjectedSilhouette->destroy();
+ // if(0 == ref)
+ // delete _ProjectedSilhouette;
+ // }
+ // if(NULL != _VisibleProjectedSilhouette)
+ // {
+ // int ref = _VisibleProjectedSilhouette->destroy();
+ // if(0 == ref)
+ // {
+ // delete _VisibleProjectedSilhouette;
+ // _VisibleProjectedSilhouette = 0;
+ // }
+ // }
+
+ // retrieve the 3D viewpoint and transformations information
+ //----------------------------------------------------------
+ // Save the viewpoint context at the view level in order
+ // to be able to restore it later:
+ _pView->saveCameraState();
+
+ // Restore the context of view:
+ // we need to perform all these operations while the
+ // 3D context is on.
+ _pView->Set3DContext();
+ float src[3] = { 0, 0, 0 };
+ float vp_tmp[3];
+ _pView->camera()->getWorldCoordinatesOf(src, vp_tmp);
+ Vec3r vp(vp_tmp[0], vp_tmp[1], vp_tmp[2]);
+
+ real mv[4][4];
+ _pView->RetriveModelViewMatrix((real *)mv);
+ // retrieve the projection matrix:
+ real proj[4][4];
+ _pView->RetrieveProjectionMatrix((real *)proj);
+ int viewport[4];
+ _pView->RetrieveViewport(viewport);
+ real focalLength = _pView->GetFocalLength();
+
+ // Flag the WXEdge structure for silhouette edge detection:
+ //----------------------------------------------------------
+
+ _Chrono.start();
+ if (_SceneNumFaces > 2000)
+ edgeDetector.SetProgressBar(_ProgressBar);
+
+ edgeDetector.SetViewpoint(Vec3r(vp));
+ edgeDetector.enableRidgesAndValleysFlag(_ComputeRidges);
+ edgeDetector.enableSuggestiveContours(_ComputeSuggestive);
+ edgeDetector.setSphereRadius(_sphereRadius);
+ edgeDetector.setSuggestiveContourKrDerivativeEpsilon(_suggestiveContourKrDerivativeEpsilon);
+ edgeDetector.processShapes(*_winged_edge);
+
+ real duration = _Chrono.stop();
+ printf("Feature lines : %lf\n", duration);
+
+ // FIXME GLDEBUG
+ //====================================================================
+ // NodeShape * silhouetteDebugShape = new NodeShape;
+ // _DebugNode->AddChild(silhouetteDebugShape);
+ // vector<WShape*>& wshapes = _winged_edge->getWShapes();
+ // vector<WShape*>::iterator ws, wsend;
+ // for(ws=wshapes.begin(), wsend=wshapes.end();
+ // ws!=wsend;
+ // ++ws){
+ // smooth
+// vector<WVertex*>& wvertices = (*ws)->GetVertexList();
+// unsigned modulo(1), currentIndex(0);
+// for(vector<WVertex*>::iterator wv=wvertices.begin(), wvend=wvertices.end();
+// wv!=wvend;
+// ++wv){
+// if(currentIndex%modulo != 0){
+// ++currentIndex;
+// continue;
+// }else
+// ++currentIndex;
+
+// WVertex::face_iterator fit=(*wv)->faces_begin();
+// WVertex::face_iterator fitend=(*wv)->faces_end();
+// for(; fit!=fitend; ++fit){
+// WXFace *wxf = dynamic_cast<WXFace*>(*fit);
+// unsigned vindex = wxf->GetIndex((*wv));
+// vector<WXFaceLayer*> flayers;
+// wxf->retrieveSmoothLayers(Nature::RIDGE, flayers);
+// for(vector<WXFaceLayer*>::iterator fl=flayers.begin(), flend=flayers.end();
+// fl!=flend;
+// ++fl){
+// Vec3r c[3];
+// unsigned index = 0;
+// for(unsigned i=0; i<3; ++i){
+// // real d = (*fl)->dotP(i);
+// real d = ((WXVertex*)(wxf->GetVertex(i)))->curvatures()->Kr;
+// if(d < 0){
+// index = 1;
+// d = -d;
+// }
+// else
+// index = 0;
+// c[i][index] = d;
+// }
+// TriangleRep * frep = new TriangleRep( wxf->GetVertex(0)->GetVertex(),
+// c[0],
+// wxf->GetVertex(1)->GetVertex(),
+// c[1],
+// wxf->GetVertex(2)->GetVertex(),
+// c[2]);
+// silhouetteDebugShape->AddRep(frep);
+ //
+ // //
+ // Vec3r e2 = ((Face_Curvature_Info*)(*fl)->userdata)->vec_curvature_info[vindex]->e2;
+ // Vec3r e1 = ((Face_Curvature_Info*)(*fl)->userdata)->vec_curvature_info[vindex]->e1;
+ // OrientedLineRep * olrep1 = new OrientedLineRep((*wv)->GetVertex(), (*wv)->GetVertex()+e1);
+ // OrientedLineRep * olrep2 = new OrientedLineRep((*wv)->GetVertex(), (*wv)->GetVertex()+e2);
+ // silhouetteDebugShape->AddRep(olrep1);
+ // silhouetteDebugShape->AddRep(olrep2);
+ // WOEdge * oppositeEdge;
+ // if(!(wxf->getOppositeEdge(*wv, oppositeEdge)))
+ // continue;
+ // Vec3r v1v2 = oppositeEdge->GetbVertex()->GetVertex() - oppositeEdge->GetaVertex()->GetVertex();
+ // OrientedLineRep * opplrep = new OrientedLineRep(oppositeEdge->GetaVertex()->GetVertex(), oppositeEdge->GetaVertex()->GetVertex()+v1v2);
+ // silhouetteDebugShape->AddRep(opplrep);
+ // GeomUtils::intersection_test res;
+ // real t;
+ // res = GeomUtils::intersectRayPlane(oppositeEdge->GetaVertex()->GetVertex(), v1v2,
+ // e2, -((*wv)->GetVertex()*e2),
+ // t,1.e-06);
+ // if((res == GeomUtils::DO_INTERSECT) && (t>=0.0) && (t<=1.0)){
+ // Vec3r inter(oppositeEdge->GetaVertex()->GetVertex() + t*v1v2);
+ // VertexRep * irep = new VertexRep(inter.x(), inter.y(), inter.z());
+ // irep->SetPointSize(5.0);
+ // silhouetteDebugShape->AddRep(irep);
+ // }
+// }
+// }
+// //break;
+// }
+
+ // vector<WFace*>& wfaces = (*ws)->GetFaceList();
+ // for(vector<WFace*>::iterator wf=wfaces.begin(), wfend=wfaces.end();
+ // wf!=wfend;
+ // ++wf){
+ // WXFace *wxf = dynamic_cast<WXFace*>(*wf);
+ // vector<WXSmoothEdge*> smoothEdges;
+ // wxf->retrieveSmoothEdges(Nature::RIDGE, smoothEdges);
+ // for(vector<WXSmoothEdge*>::iterator se=smoothEdges.begin(), send=smoothEdges.end();
+ // se!=send;
+ // ++se){
+ // real ta = (*se)->ta();
+ // Vec3r A1((*se)->woea()->GetaVertex()->GetVertex());
+ // Vec3r A2((*se)->woea()->GetbVertex()->GetVertex());
+ // Vec3r A(A1+ta*(A2-A1));
+ //
+ // real tb = (*se)->tb();
+ // Vec3r B1((*se)->woeb()->GetaVertex()->GetVertex());
+ // Vec3r B2((*se)->woeb()->GetbVertex()->GetVertex());
+// Vec3r B(B1+tb*(B2-B1));
+// OrientedLineRep * line = new OrientedLineRep(A,B);
+// silhouetteDebugShape->AddRep(line);
+// }
+// Material redmat;
+// redmat.SetDiffuse(1,0,0,1);
+// Material greenmat;
+// greenmat.SetDiffuse(0,1,0,1);
+// real vecSize = _bboxDiag/70.0;
+// vector<WXFaceLayer*> flayers;
+// wxf->retrieveSmoothLayers(Nature::RIDGE, flayers);
+// for(vector<WXFaceLayer*>::iterator fl=flayers.begin(), flend=flayers.end();
+// fl!=flend;
+// ++fl){
+ // Vec3r c[3];
+ // unsigned nNegative = 0;
+ // unsigned index = 0;
+ // for(unsigned i=0; i<3; ++i){
+ // //real d = (*fl)->dotP(i);
+ // real d = ((Face_Curvature_Info*)(*fl)->userdata)->vec_curvature_info[i]->K1/50.0;
+ // //cout << d << endl;
+ // if(d < 0){
+ // nNegative++;
+ // index = 1;
+ // d = -d;
+ // }
+ // else
+ // index = 0;
+ // c[i][index] = d;
+ // }
+ // TriangleRep * frep = new TriangleRep( wxf->GetVertex(0)->GetVertex(),
+ // c[0],
+ // wxf->GetVertex(1)->GetVertex(),
+ // c[1],
+ // wxf->GetVertex(2)->GetVertex(),
+ // c[2]);
+ // //if((nNegative != 0) && (nNegative != 3))
+ // silhouetteDebugShape->AddRep(frep);
+
+ // 3D CURVATURES
+ //==============
+ // Face_Curvature_Info * fci = (Face_Curvature_Info*)(*fl)->userdata;
+ // unsigned nvertices = wxf->numberOfVertices();
+ // for(i=0; i<nvertices; ++i){
+ // Curvature_info * ci = fci->vec_curvature_info[i];
+ // Vec3r v(wxf->GetVertex(i)->GetVertex());
+ // // VertexRep *vrep = new VertexRep(v[0], v[1], v[2]);
+ // // vrep->SetMaterial(redmat);
+ // // vrep->SetPointSize(5.0);
+ // // silhouetteDebugShape->AddRep(vrep);
+ // // LineRep * maxc = new LineRep(v-vecSize*ci->e1/2.0, v+vecSize*ci->e1/2.0);
+ // // LineRep * maxc = new LineRep(v, v+vecSize*ci->e1);
+ // // maxc->SetMaterial(redmat);
+ // // maxc->SetWidth(2.0);
+ // // silhouetteDebugShape->AddRep(maxc);
+ // LineRep * minc = new LineRep(v, v+vecSize*ci->e2);
+ // minc->SetMaterial(greenmat);
+ // minc->SetWidth(2.0);
+ // silhouetteDebugShape->AddRep(minc);
+ // }
+// }
+// }
+// }
+
+ //
+ // // Sharp
+ // vector<WEdge*>& wedges = (*ws)->GetEdgeList();
+ // for(vector<WEdge*>::iterator we=wedges.begin(), weend=wedges.end();
+ // we!=weend;
+ // ++we){
+ // WXEdge * wxe = dynamic_cast<WXEdge*>(*we);
+ // if((wxe)->nature() != Nature::NO_FEATURE){
+ // OrientedLineRep * line = new OrientedLineRep( wxe->GetaVertex()->GetVertex(),
+ // wxe->GetbVertex()->GetVertex());
+ // silhouetteDebugShape->AddRep(line);
+ // }
+ // }
+ // }
+ // WVertex *wvertex = _winged_edge->getWShapes()[0]->GetVertexList()[0];
+ // Vec3r v(wvertex->GetVertex());
+ // VertexRep * vrep = new VertexRep(v[0],v[1], v[2]);
+ // silhouetteDebugShape->AddRep(vrep );
+ // WVertex::face_iterator fit = wvertex->faces_begin();
+ // WVertex::face_iterator fitend = wvertex->faces_end();
+ // while(fit!=fitend){
+ // vector<WVertex*> fvertices;
+ // (*fit)->RetrieveVertexList(fvertices);
+ // Vec3r v[3];
+ // unsigned i=0;
+ // for(vector<WVertex*>::iterator fv=fvertices.begin(), fvend=fvertices.end();
+ // fv!=fvend;
+ // ++fv, ++i){
+ // v[i] = (*fv)->GetVertex();
+ // }
+ // TriangleRep * triangle = new TriangleRep(v[0], v[1], v[2]);
+ // silhouetteDebugShape->AddRep(triangle);
+ // ++fit;
+ // }
+ //====================================================================
+ // END GLDEBUG
+
+ // Builds the view map structure from the flagged WSEdge structure:
+ //----------------------------------------------------------
+ ViewMapBuilder vmBuilder;
+ vmBuilder.SetProgressBar(_ProgressBar);
+ vmBuilder.SetEnableQI(_EnableQI);
+ vmBuilder.SetViewpoint(Vec3r(vp));
+
+ vmBuilder.SetTransform(mv, proj, viewport, focalLength, _pView->GetAspect(), _pView->GetFovyRadian());
+ vmBuilder.SetFrustum(_pView->znear(), _pView->zfar());
+
+ vmBuilder.SetGrid(&_Grid);
+
+ // Builds a tesselated form of the silhouette for display purpose:
+ //---------------------------------------------------------------
+ ViewMapTesselator3D sTesselator3d;
+ //ViewMapTesselator2D sTesselator2d;
+ //sTesselator2d.SetNature(_edgeTesselationNature);
+ sTesselator3d.SetNature(_edgeTesselationNature);
+
+ _Chrono.start();
+ // Build View Map
+ _ViewMap = vmBuilder.BuildViewMap(*_winged_edge, _VisibilityAlgo, _EPSILON);
+ _ViewMap->setScene3dBBox(_RootNode->bbox());
+
+ //Tesselate the 3D edges:
+ _SilhouetteNode = sTesselator3d.Tesselate(_ViewMap);
+ _SilhouetteNode->addRef();
+
+ // Tesselate 2D edges
+ // _ProjectedSilhouette = sTesselator2d.Tesselate(_ViewMap);
+ // _ProjectedSilhouette->addRef();
+
+ duration = _Chrono.stop();
+ printf("ViewMap building : %lf\n", duration);
+
+ // FIXME DEBUG
+ // vector<ViewVertex*>& vvertices = _ViewMap->ViewVertices();
+ // for(vector<ViewVertex*>::iterator vv=vvertices.begin(), vvend=vvertices.end();
+ // vv!=vvend;
+ // ++vv){
+ // TVertex * tvertex = (*vv)->castToTVertex();
+ // if(!tvertex)
+ // continue;
+ // cout << "TVertex : " << tvertex->getId() << endl;
+ // if (!(tvertex->frontEdgeA().first))
+ // cout << "null FrontEdgeA" << endl;
+ // if (!(tvertex->frontEdgeB().first))
+ // cout << "null FrontEdgeB" << endl;
+ // if (!(tvertex->backEdgeA().first))
+ // cout << "null BackEdgeA" << endl;
+ // if (!(tvertex->backEdgeB().first))
+ // cout << "null backEdgeB" << endl;
+ // }
+ // cout << "-----------" << endl;
+ // vector<SVertex*>& svertices = _ViewMap->SVertices();
+ // unsigned i = 0;
+ // for(vector<SVertex*>::iterator sv = svertices.begin(), svend = svertices.end();
+ // sv != svend && i < 10;
+ // ++sv, ++i) {
+ // cout << "SVertex - Id : " << (*sv)->getId() << endl;
+ // cout << "SVertex - P3D : " << (*sv)->point3D() << endl;
+ // cout << "SVertex - P2D : " << (*sv)->point2D() << endl;
+ // set<Vec3r>::const_iterator i;
+ // unsigned tmp;
+ // for (i = (*sv)->normals().begin(), tmp = 0;
+ // i != (*sv)->normals().end();
+ // i++, tmp++);
+ // cout << "SVertex - Normals : " << tmp << endl;
+ // cout << "SVertex - FEdges : " << (*sv)->fedges().size() << endl;
+ // }
+ // cout << "-----------" << endl;
+ // vector<FEdge*>& fedges = _ViewMap->FEdges();
+ // for(vector<FEdge*>::iterator fe = fedges.begin(), feend = fedges.end();
+ // fe != feend && i < 10;
+ // ++fe, ++i) {
+ // cout << "FEdge - Id: " << (*fe)->getId() << endl;
+ // cout << "FEdge - Occl: " << (*fe)->getOccludeeIntersection() << endl;
+ // }
+ // cout << "-----------" << endl;
+ // END DEBUG
+
+ // FIXME GLDEBUG
+ //====================================================================
+ // CUSPS
+ //=======
+ // vector<ViewEdge*>& vedges = _ViewMap->ViewEdges();
+ // //typedef ViewEdgeInternal::fedge_iterator_base<Nonconst_traits<FEdge*> > fedge_iterator;
+ // //fedge_iterator fit = vedges[0]->fedge_iterator_begin();
+ // for(vector<ViewEdge*>::iterator ve=vedges.begin(), veend=vedges.end();
+ // ve!=veend;
+ // ++ve){
+ // if((!((*ve)->getNature() & Nature::SILHOUETTE)) || (!((*ve)->fedgeA()->isSmooth())))
+ // continue;
+ // FEdge *fe = (*ve)->fedgeA();
+ // FEdge * fefirst = fe;
+ // //ViewEdge::fedge_iterator fit = (*ve)->fedge_iterator_begin();
+ // //ViewEdge::vertex_iterator vit = (*ve)->vertices_begin();
+ //
+ // Material mat;
+ // // for(; !(fe.end()); ++fe){
+ // bool first = true;
+ // bool front = true;
+ // bool positive = true;
+ // do{
+ // FEdgeSmooth * fes = dynamic_cast<FEdgeSmooth*>(fe);
+ // Vec3r A((fes)->vertexA()->point3d());
+ // Vec3r B((fes)->vertexB()->point3d());
+ // Vec3r AB(B-A);
+ // AB.normalize();
+ // LineRep * lrep = new LineRep(A,B);
+ // silhouetteDebugShape->AddRep(lrep);
+ // Vec3r m((A+B)/2.0);
+ // Vec3r crossP(AB^(fes)->normal());
+ // crossP.normalize();
+ // Vec3r viewvector(m-vp);
+ // viewvector.normalize();
+ // if(first){
+ // if(((crossP)*(viewvector)) > 0)
+ // positive = true;
+ // else
+ // positive = false;
+ // first = false;
+ // }
+ // if(positive){
+ // if(((crossP)*(viewvector)) < -0.2)
+ // positive = false;
+ // }else{
+ // if(((crossP)*(viewvector)) > 0.2)
+ // positive = true;
+ // }
+ // if(positive)
+ // mat.SetDiffuse(1,1,0,1);
+ // else
+ // mat.SetDiffuse(1,0,0,1);
+ // lrep->SetMaterial(mat);
+ // fe = fe->nextEdge();
+ // }while((fe!=0) && (fe!=fefirst));
+ // }
+ //====================================================================
+ // END FIXME GLDEBUG
+
+ _pView->AddSilhouette(_SilhouetteNode);
+ //_pView->AddSilhouette(_WRoot);
+ //_pView->Add2DSilhouette(_ProjectedSilhouette);
+ //_pView->Add2DVisibleSilhouette(_VisibleProjectedSilhouette);
+ _pView->AddDebug(_DebugNode);
+
+ // Draw the steerable density map:
+ //--------------------------------
+ if(_ComputeSteerableViewMap){
+ ComputeSteerableViewMap();
+ }
+ // Reset Style modules modification flags
+ resetModified(true);
+}
+
+void Controller::ComputeSteerableViewMap(){
+ if((!_Canvas) || (!_ViewMap))
+ return;
+
+ if(_ProgressBar){
+ _ProgressBar->reset();
+ _ProgressBar->setLabelText("Computing Steerable ViewMap");
+ _ProgressBar->setTotalSteps(3);
+ _ProgressBar->setProgress(0);
+ }
+
+ // Build 4 nodes containing the edges in the 4 directions
+ NodeGroup *ng[Canvas::NB_STEERABLE_VIEWMAP];
+ unsigned i;
+ real c = 32.f/255.f; // see SteerableViewMap::readSteerableViewMapPixel() for information about this 32.
+ for(i=0; i<Canvas::NB_STEERABLE_VIEWMAP; ++i){
+ ng[i] = new NodeGroup;
+ }
+ NodeShape *completeNS = new NodeShape;
+ completeNS->material().SetDiffuse(c,c,c,1);
+ ng[Canvas::NB_STEERABLE_VIEWMAP-1]->AddChild(completeNS);
+ SteerableViewMap * svm = _Canvas->getSteerableViewMap();
+ svm->Reset();
+
+ _pMainWindow->DisplayMessage("Dividing up edges");
+ ViewMap::fedges_container& fedges = _ViewMap->FEdges();
+ LineRep * fRep;
+ NodeShape *ns;
+ for(ViewMap::fedges_container::iterator f=fedges.begin(), fend=fedges.end();
+ f!=fend;
+ ++f){
+ if((*f)->viewedge()->qi() != 0)
+ continue;
+ fRep = new LineRep((*f)->vertexA()->point2d(),(*f)->vertexB()->point2d()) ;
+ completeNS->AddRep(fRep); // add to the complete map anyway
+ double *oweights = svm->AddFEdge(*f);
+ for(i=0; i<Canvas::NB_STEERABLE_VIEWMAP-1; ++i){
+ ns = new NodeShape;
+ double wc = oweights[i]*c;
+ if(oweights[i] == 0)
+ continue;
+ ns->material().SetDiffuse(wc, wc, wc, 1);
+ ns->AddRep(fRep);
+ ng[i]->AddChild(ns);
+ }
+ }
+ if(_ProgressBar)
+ _ProgressBar->setProgress(1);
+ _pMainWindow->DisplayMessage("Rendering Steerable ViewMap");
+ GrayImage *img[Canvas::NB_STEERABLE_VIEWMAP];
+ //#ifdef WIN32
+ QGLBasicWidget offscreenBuffer(_pView, "SteerableViewMap", _pView->width(), _pView->height());
+ QPixmap pm;
+ QImage qimg;
+ for(i=0; i<Canvas::NB_STEERABLE_VIEWMAP; ++i){
+ offscreenBuffer.AddNode(ng[i]);
+ //img[i] = new GrayImage(_pView->width(), _pView->height());
+ //offscreenBuffer.readPixels(0,0,_pView->width(), _pView->height(), img[i]->getArray());
+ pm = offscreenBuffer.renderPixmap(_pView->width(), _pView->height());
+
+ if(pm.isNull())
+ cout << "BuildViewMap Warning: couldn't render the steerable ViewMap" << endl;
+ //pm.save(QString("steerable")+QString::number(i)+QString(".bmp"), "BMP");
+ // FIXME!! Lost of time !
+ qimg = pm.toImage();
+ // FIXME !! again!
+ img[i] = new GrayImage(_pView->width(), _pView->height());
+ for(unsigned y=0;y<img[i]->height();++y){
+ for(unsigned x=0;x<img[i]->width();++x){
+ //img[i]->setPixel(x,y,(float)qGray(qimg.pixel(x,y))/255.f);
+ img[i]->setPixel(x,y,(float)qGray(qimg.pixel(x,y)));
+ // float c = qGray(qimg.pixel(x,y));
+ // img[i]->setPixel(x,y,qGray(qimg.pixel(x,y)));
+ }
+ }
+ offscreenBuffer.DetachNode(ng[i]);
+ ng[i]->destroy();
+ delete ng[i];
+ // check
+ // qimg = QImage(_pView->width(), _pView->height(), 32);
+ // for(y=0;y<img[i]->height();++y){
+ // for(unsigned x=0;x<img[i]->width();++x){
+ // float v = img[i]->pixel(x,y);
+ // qimg.setPixel(x,y,qRgb(v,v,v));
+ // }
+ // }
+ // qimg.save(QString("newsteerable")+QString::number(i)+QString(".bmp"), "BMP");
+ }
+ //#else
+// // LINUX
+// QGLBasicWidget offscreenBuffer(_pView, "SteerableViewMap", _pView->width(), _pView->height());
+
+// float * buffer = 0;
+// for(i=0; i<Canvas::NB_STEERABLE_VIEWMAP; ++i){
+// offscreenBuffer.AddNode(ng[i]);
+// offscreenBuffer.draw();
+// img[i] = new GrayImage(_pView->width(), _pView->height());
+// buffer = img[i]->getArray();
+// offscreenBuffer.readPixels(0,0,_pView->width(), _pView->height(), buffer);
+// for(unsigned y=0;y<img[i]->height();++y){
+// for(unsigned x=0;x<img[i]->width();++x){
+// img[i]->setPixel(x,y,255.f *img[i]->pixel(x,y));
+// }
+// }
+
+// offscreenBuffer.DetachNode(ng[i]);
+// ng[i]->destroy();
+// delete ng[i];
+// }
+// #endif
+ if(_ProgressBar)
+ _ProgressBar->setProgress(2);
+ _pMainWindow->DisplayMessage("Building Gaussian Pyramids");
+ svm->buildImagesPyramids(img,false,0,1.f);
+ if(_ProgressBar)
+ _ProgressBar->setProgress(3);
+}
+
+void Controller::saveSteerableViewMapImages(){
+ SteerableViewMap * svm = _Canvas->getSteerableViewMap();
+ if(!svm){
+ cerr << "the Steerable ViewMap has not been computed yet" << endl;
+ return;
+ }
+ svm->saveSteerableViewMap();
+}
+
+void Controller::toggleVisibilityAlgo()
+{
+ if(_VisibilityAlgo == ViewMapBuilder::ray_casting) {
+ _VisibilityAlgo = ViewMapBuilder::ray_casting_fast;
+ _pMainWindow->DisplayMessage("Visibility algorithm switched to \"fast ray casting\"");
+ }
+ else if (_VisibilityAlgo == ViewMapBuilder::ray_casting_fast) {
+ _VisibilityAlgo = ViewMapBuilder::ray_casting_very_fast;
+ _pMainWindow->DisplayMessage("Visibility algorithm switched to \"very fast ray casting\"");
+ }
+ else {
+ _VisibilityAlgo = ViewMapBuilder::ray_casting;
+ _pMainWindow->DisplayMessage("Visibility algorithm switched to \"ray casting\"");
+ }
+}
+
+void Controller::setQuantitativeInvisibility(bool iBool)
+{
+ _EnableQI = iBool;
+}
+
+bool Controller::getQuantitativeInvisibility() const
+{
+ return _EnableQI;
+}
+
+void Controller::setComputeRidgesAndValleysFlag(bool iBool){
+ _ComputeRidges = iBool;
+}
+
+bool Controller::getComputeRidgesAndValleysFlag() const {
+ return _ComputeRidges;
+}
+void Controller::setComputeSuggestiveContoursFlag(bool b){
+ _ComputeSuggestive = b;
+}
+
+bool Controller::getComputeSuggestiveContoursFlag() const {
+ return _ComputeSuggestive;
+}
+void Controller::setComputeSteerableViewMapFlag(bool iBool){
+ _ComputeSteerableViewMap = iBool;
+}
+
+bool Controller::getComputeSteerableViewMapFlag() const {
+ return _ComputeSteerableViewMap;
+}
+void Controller::setFrontBufferFlag(bool iBool)
+{
+ AppGLWidget::setFrontBufferFlag(iBool);
+}
+
+bool Controller::getFrontBufferFlag() const
+{
+ return AppGLWidget::getFrontBufferFlag();
+}
+
+void Controller::setBackBufferFlag(bool iBool)
+{
+ AppGLWidget::setBackBufferFlag(iBool);
+}
+
+bool Controller::getBackBufferFlag() const
+{
+ return AppGLWidget::getBackBufferFlag();
+}
+
+void Controller::DrawStrokes()
+{
+ if(_ViewMap == 0)
+ return;
+
+ _Chrono.start();
+ _Canvas->Draw();
+ real d = _Chrono.stop();
+ cout << "Strokes drawing : " << d << endl;
+ resetModified();
+}
+
+void Controller::InsertStyleModule(unsigned index, const char *iFileName)
+{
+ QFileInfo fi(iFileName);
+ QString ext = fi.suffix();
+ if (ext != "py") {
+ cerr << "Error: Cannot load \"" << fi.fileName().toAscii().data()
+ << "\", unknown extension" << endl;
+ return;
+ }
+ StyleModule* sm = new StyleModule(iFileName, _inter);
+ _Canvas->InsertStyleModule(index, sm);
+
+}
+
+void Controller::AddStyleModule(const char *iFileName)
+{
+ _pStyleWindow->Add(iFileName);
+}
+
+void Controller::RemoveStyleModule(unsigned index)
+{
+ _Canvas->RemoveStyleModule(index);
+}
+
+void Controller::Clear()
+{
+ _Canvas->Clear();
+}
+
+void Controller::ReloadStyleModule(unsigned index, const char * iFileName)
+{
+ StyleModule* sm = new StyleModule(iFileName, _inter);
+ _Canvas->ReplaceStyleModule(index, sm);
+}
+
+void Controller::ExposeStyleWindow()
+{
+ _pStyleWindow->show();
+}
+
+void Controller::ExposeOptionsWindow()
+{
+ _pOptionsWindow->show();
+}
+
+void Controller::ExposeHelpWindow()
+{
+ QStringList cmd_list = _browser_cmd.split(" ");
+ for (QStringList::iterator it = cmd_list.begin();
+ it != cmd_list.end();
+ ++it)
+ (*it).replace("%s", _help_index);
+ QProcess browser(0);
+ QString exe = cmd_list.first();
+ cmd_list.removeFirst();
+ browser.start(exe, cmd_list);
+}
+
+void Controller::ExposeAboutWindow()
+{
+ AppAboutWindow::display();
+}
+
+void Controller::SwapStyleModules(unsigned i1, unsigned i2)
+{
+ _Canvas->SwapStyleModules(i1, i2);
+}
+
+
+void Controller::toggleLayer(unsigned index, bool iDisplay)
+{
+ _Canvas->SetVisible(index, iDisplay);
+ _pView->updateGL();
+}
+
+void Controller::setModified(unsigned index, bool iMod)
+{
+ _pStyleWindow->setModified(index, iMod);
+ _Canvas->setModified(index, iMod);
+ updateCausalStyleModules(index + 1);
+}
+
+void Controller::updateCausalStyleModules(unsigned index) {
+ vector<unsigned> vec;
+ _Canvas->causalStyleModules(vec, index);
+ for (vector<unsigned>::const_iterator it = vec.begin(); it != vec.end(); it++) {
+ _pStyleWindow->setModified(*it, true);
+ _Canvas->setModified(*it, true);
+ }
+}
+
+void Controller::saveSnapshot(bool b) {
+ _pView->saveSnapshot(b);
+}
+
+void Controller::savePSSnapshot(const QString& iFileName){
+ PSStrokeRenderer psRenderer((const char*)iFileName.toAscii().data());
+ _Canvas->Render(&psRenderer);
+ psRenderer.Close();
+}
+
+void Controller::saveTextSnapshot(const QString& iFileName){
+ TextStrokeRenderer textRenderer((const char*)iFileName.toAscii().data());
+ _Canvas->Render(&textRenderer);
+ textRenderer.Close();
+}
+
+void Controller::captureMovie() {
+ _pView->captureMovie();
+}
+
+void Controller::resetModified(bool iMod)
+{
+ _pStyleWindow->resetModified(iMod);
+ _Canvas->resetModified(iMod);
+}
+
+FEdge* Controller::SelectFEdge(real x, real y)
+{
+ if (!_ViewMap)
+ return NULL;
+
+ FEdge *fedge = (FEdge*)_ViewMap->GetClosestFEdge(x,y);
+ ViewEdge *selection = fedge->viewedge();
+ _pView->SetSelectedFEdge(fedge);
+ _Canvas->SetSelectedFEdge(fedge);
+ return fedge;
+}
+
+ViewEdge* Controller::SelectViewEdge(real x, real y)
+{
+ if (!_ViewMap)
+ return NULL;
+
+ FEdge *fedge = (FEdge*)_ViewMap->GetClosestFEdge(x,y);
+ ViewEdge *selection = fedge->viewedge();
+ _pView->SetSelectedFEdge(fedge);
+ _Canvas->SetSelectedFEdge(fedge);
+ return selection;
+}
+
+NodeGroup * Controller::BuildRep(vector<ViewEdge*>::iterator vedges_begin,
+ vector<ViewEdge*>::iterator vedges_end)
+{
+ ViewMapTesselator2D tesselator2D;
+ Material mat;
+ mat.SetDiffuse(1,1,0.3,1);
+ tesselator2D.SetMaterial(mat);
+
+ return (tesselator2D.Tesselate(vedges_begin, vedges_end));
+}
+
+void Controller::toggleEdgeTesselationNature(Nature::EdgeNature iNature)
+{
+ _edgeTesselationNature ^= (iNature);
+ ComputeViewMap();
+}
+
+void Controller::setModelsDir(const QString& dir) {
+ _current_dirs->setValue("models/dir", dir);
+}
+
+QString Controller::getModelsDir() const {
+ QString dir = ".";
+ _current_dirs->getValue("models/dir", dir);
+ return dir;
+}
+
+void Controller::setModulesDir(const QString& dir) {
+ _current_dirs->setValue("modules/dir", dir);
+}
+
+QString Controller::getModulesDir() const {
+ QString dir = ".";
+ _current_dirs->getValue("modules/dir", dir);
+ return dir;
+}
+
+void Controller::setPapersDir(const QString& dir) {
+ _current_dirs->setValue("papers/dir", dir);
+}
+
+QString Controller::getPapersDir() const {
+ QString dir = Config::Path::getInstance()->getPapersDir();
+ _current_dirs->getValue("papers/dir", dir);
+ return dir;
+}
+
+void Controller::setHelpIndex(const QString& index) {
+ _help_index = index;
+}
+
+QString Controller::getHelpIndex() const {
+ return _help_index;
+}
+
+void Controller::setBrowserCmd(const QString& cmd) {
+ _browser_cmd = cmd;
+}
+
+QString Controller::getBrowserCmd() const {
+ return _browser_cmd;
+}
+
+void Controller::resetInterpreter() {
+ if (_inter)
+ _inter->reset();
+}
+
+void Controller::displayMessage(const char * msg, bool persistent){
+ _pMainWindow->DisplayMessage(msg, persistent);
+}
+
+void Controller::displayDensityCurves(int x, int y){
+ SteerableViewMap * svm = _Canvas->getSteerableViewMap();
+ if(!svm)
+ return;
+
+ unsigned i,j;
+ typedef vector<Vec3r> densityCurve;
+ vector<densityCurve> curves(svm->getNumberOfOrientations()+1);
+ vector<densityCurve> curvesDirection(svm->getNumberOfPyramidLevels());
+
+ // collect the curves values
+ unsigned nbCurves = svm->getNumberOfOrientations()+1;
+ unsigned nbPoints = svm->getNumberOfPyramidLevels();
+ if(!nbPoints)
+ return;
+
+ // build the density/nbLevels curves for each orientation
+ for(i=0;i<nbCurves; ++i){
+ for(j=0; j<nbPoints; ++j){
+ curves[i].push_back(Vec3r(j, svm->readSteerableViewMapPixel(i, j, x, y), 0));
+ }
+ }
+ // build the density/nbOrientations curves for each level
+ for(i=0;i<nbPoints; ++i){
+ for(j=0; j<nbCurves; ++j){
+ curvesDirection[i].push_back(Vec3r(j, svm->readSteerableViewMapPixel(j, i, x, y), 0));
+ }
+ }
+
+ // display the curves
+ for(i=0; i<nbCurves; ++i)
+ _pDensityCurvesWindow->SetOrientationCurve(i, Vec2d(0,0), Vec2d(nbPoints, 1), curves[i], "scale", "density");
+ for(i=1; i<=8; ++i)
+ _pDensityCurvesWindow->SetLevelCurve(i, Vec2d(0,0), Vec2d(nbCurves, 1), curvesDirection[i], "orientation", "density");
+ _pDensityCurvesWindow->show();
+}
diff --git a/source/blender/freestyle/intern/app/Controller.h b/source/blender/freestyle/intern/app/Controller.h
new file mode 100755
index 00000000000..95b97ebcda3
--- /dev/null
+++ b/source/blender/freestyle/intern/app/Controller.h
@@ -0,0 +1,232 @@
+//
+// Filename : Controller.h
+// Author : Stephane Grabli
+// Purpose : The spinal tap of the system
+// Date of creation : 01/07/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef CONTROLLER_H
+# define CONTROLLER_H
+
+# include <string>
+# include "ConfigIO.h"
+# include "../geometry/FastGrid.h"
+# include "../geometry/HashGrid.h"
+# include "../view_map/ViewMapBuilder.h"
+# include "../system/TimeUtils.h"
+# include "../system/Precision.h"
+# include "../system/Interpreter.h"
+# include "../view_map/FEdgeXDetector.h"
+
+class AppProgressBar;
+class AppGLWidget;
+class AppMainWindow;
+class NodeGroup;
+class WShape;
+class SShape;
+class ViewMap;
+class ViewEdge;
+class AppCanvas;
+class InteractiveShader;
+class Shader;
+class AppInteractiveShaderWindow;
+class AppStyleWindow;
+class AppOptionsWindow;
+class AppDensityCurvesWindow;
+
+class Controller
+{
+public:
+ Controller() ;
+ ~Controller() ;
+
+ void SetView(AppGLWidget *iView);
+ void SetMainWindow(AppMainWindow *iMainWindow);
+ int Load3DSFile(const char *iFileName);
+ void CloseFile();
+ void LoadViewMapFile(const char *iFileName, bool only_camera = false);
+ void SaveViewMapFile(const char *iFileName);
+ void ComputeViewMap();
+ void ComputeSteerableViewMap();
+ void saveSteerableViewMapImages();
+ void toggleEdgeTesselationNature(Nature::EdgeNature iNature);
+ void DrawStrokes();
+ void ExposeStyleWindow();
+ void ExposeOptionsWindow();
+ void ExposeHelpWindow();
+ void ExposeAboutWindow();
+ void SwapStyleModules(unsigned i1, unsigned i2);
+ void InsertStyleModule(unsigned index, const char *iFileName);
+ void AddStyleModule(const char *iFileName);
+ void RemoveStyleModule(unsigned index);
+ void ReloadStyleModule(unsigned index, const char * iFileName);
+ void Clear();
+ void toggleLayer(unsigned index, bool iDisplay);
+ void setModified(unsigned index, bool iMod);
+ void resetModified(bool iMod=false);
+ void updateCausalStyleModules(unsigned index);
+ void saveSnapshot(bool b = false);
+ void savePSSnapshot(const QString& iFileName);
+ void saveTextSnapshot(const QString& iFileName);
+ void captureMovie();
+ void displayMessage(const char *msg, bool persistent = false);
+ void displayDensityCurves(int x, int y);
+
+
+ ViewEdge * SelectViewEdge(real x, real y);
+ FEdge * SelectFEdge(real x, real y);
+ NodeGroup* BuildRep(vector<ViewEdge*>::iterator vedges_begin,
+ vector<ViewEdge*>::iterator vedges_end) ;
+
+ NodeGroup* debugNode() {return _DebugNode;}
+ AppGLWidget * view() {return _pView;}
+ NodeGroup* debugScene() {return _DebugNode;}
+ Grid& grid() {return _Grid;}
+
+ void toggleVisibilityAlgo();
+
+ void setQuantitativeInvisibility(bool iBool); // if true, we compute quantitativeInvisibility
+ bool getQuantitativeInvisibility() const;
+
+ void setFrontBufferFlag(bool b);
+ bool getFrontBufferFlag() const;
+ void setBackBufferFlag(bool b);
+ bool getBackBufferFlag() const;
+
+ void setComputeRidgesAndValleysFlag(bool b);
+ bool getComputeRidgesAndValleysFlag() const ;
+ void setComputeSuggestiveContoursFlag(bool b);
+ bool getComputeSuggestiveContoursFlag() const ;
+
+ void setComputeSteerableViewMapFlag(bool iBool);
+ bool getComputeSteerableViewMapFlag() const;
+ void setSphereRadius(real s){_sphereRadius=s;}
+ real getSphereRadius() const {return _sphereRadius;}
+ void setSuggestiveContourKrDerivativeEpsilon(real dkr){_suggestiveContourKrDerivativeEpsilon=dkr;}
+ real getSuggestiveContourKrDerivativeEpsilon() const {return _suggestiveContourKrDerivativeEpsilon;}
+
+ AppProgressBar* getProgressBar(void) { return _ProgressBar; }
+
+ void setModelsDir(const QString& dir);
+ QString getModelsDir() const;
+ void setModulesDir(const QString& dir);
+ QString getModulesDir() const;
+ void setPapersDir(const QString& dir);
+ QString getPapersDir() const;
+ void setHelpIndex(const QString& dir);
+ QString getHelpIndex() const;
+ void setBrowserCmd(const QString& cmd);
+ QString getBrowserCmd() const;
+
+ void resetInterpreter();
+
+private:
+
+ // Main Window:
+ AppMainWindow *_pMainWindow;
+
+ // List of models currently loaded
+ vector<string> _ListOfModels;
+
+ // Current directories
+ ConfigIO* _current_dirs;
+
+ //View
+ // 3D
+ AppGLWidget *_pView;
+
+ // 2D
+ //Viewer2DWindow *_pView2DWindow;
+ //Viewer2D *_pView2D;
+
+ //Model
+ // Drawing Structure
+ NodeGroup *_RootNode;
+
+ // Winged-Edge structure
+ WingedEdge* _winged_edge;
+
+ ViewMap * _ViewMap;
+
+ // Silhouette structure:
+ //std::vector<SShape*> _SShapes;
+ //NodeGroup *_SRoot;
+
+ // Silhouette
+ NodeGroup *_SilhouetteNode;
+ NodeGroup *_ProjectedSilhouette;
+ NodeGroup *_VisibleProjectedSilhouette;
+
+ // more Debug info
+ NodeGroup *_DebugNode;
+
+ // debug
+ // NodeUser<ViewMap> *_ViewMapNode; // FIXME
+
+ // Chronometer:
+ Chronometer _Chrono;
+
+ // Progress Bar
+ AppProgressBar *_ProgressBar;
+
+ // edges tesselation nature
+ int _edgeTesselationNature;
+
+ FastGrid _Grid;
+ //HashGrid _Grid;
+
+ unsigned int _SceneNumFaces;
+ real _minEdgeSize;
+ real _EPSILON;
+ real _bboxDiag;
+
+ AppCanvas *_Canvas;
+
+ AppStyleWindow *_pStyleWindow;
+ AppOptionsWindow *_pOptionsWindow;
+ AppDensityCurvesWindow *_pDensityCurvesWindow;
+
+ ViewMapBuilder::visibility_algo _VisibilityAlgo;
+
+ // Script Interpreter
+ Interpreter* _inter;
+
+ QString _help_index;
+ QString _browser_cmd;
+
+ bool _EnableQI;
+ bool _ComputeRidges;
+ bool _ComputeSuggestive;
+ real _sphereRadius;
+ real _suggestiveContourKrDerivativeEpsilon;
+
+ bool _ComputeSteerableViewMap;
+
+ FEdgeXDetector edgeDetector;
+};
+
+extern Controller *g_pController;
+
+#endif // CONTROLLER_H
diff --git a/source/blender/freestyle/intern/app/Main.cpp b/source/blender/freestyle/intern/app/Main.cpp
new file mode 100755
index 00000000000..ae4d28017c5
--- /dev/null
+++ b/source/blender/freestyle/intern/app/Main.cpp
@@ -0,0 +1,57 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include <QApplication>
+#include <qgl.h>
+#include "Controller.h"
+#include "AppMainWindow.h"
+#include "AppConfig.h"
+
+// Global
+Controller *g_pController;
+
+int main(int argc, char** argv)
+{
+ // sets the paths
+ QApplication::setColorSpec(QApplication::ManyColor);
+ QApplication *app = new QApplication(argc, argv);
+ Q_INIT_RESOURCE(freestyle);
+
+ Config::Path pathconfig;
+
+ QGLFormat myformat;
+ myformat.setAlpha(true);
+ QGLFormat::setDefaultFormat( myformat );
+
+ AppMainWindow mainWindow(NULL, "Freestyle");
+ //app->setMainWidget(mainWindow); // QT3
+
+ g_pController = new Controller;
+ g_pController->SetMainWindow(&mainWindow);
+ g_pController->SetView(mainWindow.pQGLWidget);
+
+ mainWindow.show();
+
+ int res = app->exec();
+
+ delete g_pController;
+
+ return res;
+}
diff --git a/source/blender/freestyle/intern/app/QGLBasicWidget.cpp b/source/blender/freestyle/intern/app/QGLBasicWidget.cpp
new file mode 100755
index 00000000000..44b5e0de224
--- /dev/null
+++ b/source/blender/freestyle/intern/app/QGLBasicWidget.cpp
@@ -0,0 +1,141 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "QGLBasicWidget.h"
+#include "../rendering/GLRenderer.h"
+// #ifndef WIN32
+// #include "../rendering/pbuffer.h"
+// #endif
+
+QGLBasicWidget::QGLBasicWidget( QWidget* parent, const char* name, int w, int h, const QGLWidget* shareWidget )
+ : QGLWidget( parent, shareWidget )
+{
+ _pGLRenderer = new GLRenderer;
+// #ifndef WIN32
+// _Pbuffer = new PBuffer(w,h,
+// PBuffer::SingleBuffer
+// | PBuffer::DepthBuffer
+// | PBuffer::StencilBuffer);
+
+// _Pbuffer->create(false);
+// #endif
+ resizeGL(w,h);
+ _RootNode.SetLightingEnabled(false);
+ _RootNode.SetLineWidth(1.0);
+}
+
+QGLBasicWidget::QGLBasicWidget( const QGLFormat& format, QWidget* parent, const char* name,
+ int w, int h, const QGLWidget* shareWidget )
+ : QGLWidget( format, parent, shareWidget )
+{
+ _pGLRenderer = new GLRenderer;
+// #ifndef WIN32
+// _Pbuffer = new PBuffer(w,h,
+// PBuffer::SingleBuffer
+// | PBuffer::DepthBuffer
+// | PBuffer::StencilBuffer);
+// _Pbuffer->create(false);
+// #endif
+ resizeGL(w,h);
+ _RootNode.SetLightingEnabled(false);
+ _RootNode.SetLineWidth(1.0);
+}
+
+QGLBasicWidget::~QGLBasicWidget()
+{
+ _RootNode.destroy();
+ if(_pGLRenderer)
+ delete _pGLRenderer;
+// #ifndef WIN32
+// if(_Pbuffer)
+// delete _Pbuffer;
+// #endif
+}
+
+void QGLBasicWidget::AddNode(Node* iNode){
+ _RootNode.AddChild(iNode);
+}
+
+void QGLBasicWidget::DetachNode(Node* iNode){
+ _RootNode.DetachChild(iNode);
+}
+
+void QGLBasicWidget::readPixels(int x,
+ int y,
+ int width,
+ int height,
+ float *pixels){
+// #ifndef WIN32
+// _Pbuffer->makeCurrent();
+
+// glReadBuffer(GL_FRONT);
+// GLenum e = glGetError();
+// GLenum glformat = GL_RED;
+// glReadPixels(x,y,width, height, glformat, GL_FLOAT, (GLfloat*)pixels);
+// e = glGetError();
+// #endif
+}
+
+void QGLBasicWidget::initializeGL()
+{
+ glClearColor(_clearColor[0],_clearColor[1],_clearColor[2],1);
+}
+
+void QGLBasicWidget::resizeGL( int w, int h )
+{
+// #ifndef WIN32
+// _Pbuffer->makeCurrent();
+// #endif
+
+ glViewport( 0, 0, (GLint)w, (GLint)h );
+ // Projection Matrix
+ //==================
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+// #ifndef WIN32
+// // FXS- changed order of y bounds for glRead
+// glOrtho(0,w, h, 0, -1.0, 1.0);
+// #else
+ glOrtho(0,w, 0, h, -1.0, 1.0);
+ //#endif
+}
+
+void QGLBasicWidget::paintGL()
+{
+// #ifndef WIN32
+// _Pbuffer->makeCurrent();
+// glClearColor(_clearColor[0],_clearColor[1],_clearColor[2],1);
+// #endif
+
+ glDrawBuffer( GL_FRONT);
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
+ //Modelview Matrix
+ //================
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_ONE, GL_ONE);
+ glDisable(GL_DEPTH_TEST);
+ _RootNode.accept(*_pGLRenderer);
+ glPopAttrib();
+}
+
diff --git a/source/blender/freestyle/intern/app/QGLBasicWidget.h b/source/blender/freestyle/intern/app/QGLBasicWidget.h
new file mode 100755
index 00000000000..9b29a641f28
--- /dev/null
+++ b/source/blender/freestyle/intern/app/QGLBasicWidget.h
@@ -0,0 +1,102 @@
+//
+// Filename : QGLBasicWidget.h
+// Author : Stephane Grabli
+// Purpose : A basic qgl widget designed to be used as
+// a 2D offscreen buffer. (no interactive function)
+// Date of creation : 26/12/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef QGLBASICWIDGET_H
+#define QGLBASICWIDGET_H
+
+#include <qgl.h>
+#include "../geometry/Geom.h"
+//#include "../rendering/pbuffer.h"
+#include "../scene_graph/NodeDrawingStyle.h"
+using namespace Geometry;
+
+class GLRenderer;
+class ViewMap;
+// #ifndef WIN32
+// class PBuffer;
+// #endif
+class QGLBasicWidget : public QGLWidget
+{
+ Q_OBJECT
+
+public:
+
+ QGLBasicWidget( QWidget* parent, const char* name, int w, int h, const QGLWidget* shareWidget=0 );
+ QGLBasicWidget( const QGLFormat& format, QWidget* parent, const char* name,
+ int w, int h, const QGLWidget* shareWidget=0 );
+ ~QGLBasicWidget();
+
+ /*! Adds a node directly under the root node */
+ void AddNode(Node* iNode);
+ /*! Detach the node iNode which must
+ * be directly under the root node.
+ */
+ void DetachNode(Node *iNode);
+
+ /*! reads the frame buffer pixels as luminance .
+ * \param x
+ * The lower-left corner x-coordinate of the
+ * rectangle we want to grab.
+ * \param y
+ * The lower-left corner y-coordinate of the
+ * rectangle we want to grab.
+ * \param width
+ * The width of the rectangle we want to grab.
+ * \param height
+ * The height of the rectangle we want to grab.
+ * \params pixels
+ * The array of float (of size width*height) in which
+ * the read values are stored.
+ */
+ void readPixels(int x,int y,int width,int height,float *pixels) ;
+// #ifndef WIN32
+// void draw() { paintGL(); }
+// #endif
+
+ inline void SetClearColor(const Vec3f& c) {_clearColor = c;}
+ inline Vec3f getClearColor() const {return _clearColor;}
+
+protected:
+
+ virtual void initializeGL();
+ virtual void paintGL();
+ virtual void resizeGL(int w, int h);
+
+private:
+// #ifndef WIN32
+// PBuffer *_Pbuffer;
+// #endif
+ NodeDrawingStyle _RootNode;
+ Vec3f _clearColor;
+ GLRenderer *_pGLRenderer;
+};
+
+
+#endif // QGLBASICWIDGET_H
diff --git a/source/blender/freestyle/intern/app/QStyleModuleSyntaxHighlighter.cpp b/source/blender/freestyle/intern/app/QStyleModuleSyntaxHighlighter.cpp
new file mode 100755
index 00000000000..16ea53f157c
--- /dev/null
+++ b/source/blender/freestyle/intern/app/QStyleModuleSyntaxHighlighter.cpp
@@ -0,0 +1,155 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "QStyleModuleSyntaxHighlighter.h"
+#include <QTextEdit>
+#include <QRegExp>
+#include <iostream>
+using namespace std;
+
+QStyleModuleSyntaxHighlighter::QStyleModuleSyntaxHighlighter(QTextEdit *iTextEdit)
+ : QSyntaxHighlighter(iTextEdit){
+ _operators.push_back("Operators");
+ _operators.push_back("select");
+ _operators.push_back("chain");
+ _operators.push_back("bidirectionalChain");
+ _operators.push_back("sequentialSplit");
+ _operators.push_back("recursiveSplit");
+ _operators.push_back("sort");
+ _operators.push_back("create");
+
+ _functors.push_back("StrokeShader");
+ _functors.push_back("UnaryPredicate1D");
+ _functors.push_back("UnaryPredicate0D");
+ _functors.push_back("BinaryPredicate1D");
+ _functors.push_back("ChainingIterator");
+ // _functors.push_back("getName");
+ // _functors.push_back("shade");
+ // _functors.push_back("getObject");
+
+ _python.push_back("class ");
+ _python.push_back("from ");
+ _python.push_back("import ");
+ _python.push_back("__init__");
+ _python.push_back("__call__");
+ _python.push_back("def ");
+ _python.push_back("self");
+ _python.push_back("return");
+ //_python.push_back("print");
+ // _python.push_back("for");
+ // _python.push_back("if");
+ // _python.push_back("while");
+ // _python.push_back("range");
+ // _python.push_back("in");
+
+ _defaultColor = iTextEdit->textColor();
+}
+
+QStyleModuleSyntaxHighlighter::~QStyleModuleSyntaxHighlighter(){
+ _operators.clear();
+ _functors.clear();
+ _python.clear();
+}
+
+void QStyleModuleSyntaxHighlighter::highlightKeywords(const QString& text, vector<QString>& iKeywords, const QColor& iColor){
+ int pos = 0;
+ int pos1 = 0;
+ int pos2 = 0;
+ bool found = false;
+ for(vector<QString>::iterator o=iKeywords.begin(), oend=iKeywords.end();
+ o!=oend;
+ ++o){
+ pos =0;
+ QString word = *o;
+ while ( ( pos = text.indexOf(word,pos) ) != -1 ){
+ setFormat( pos , word.length() , iColor);
+ pos += text.length()+1;
+ }
+
+ // while ( ( pos = text.find(QRegExp("(^|\\W)"+word+"\\W"),pos) ) != -1 ){
+ // setFormat( pos , word.length()+1 , iColor);
+ // pos += text.length()+1;
+ // }
+ }
+}
+
+void QStyleModuleSyntaxHighlighter::dynamicHighlight(const QString& text){
+ int pos = 0;
+ int pos1 = 0;
+ int pos2 = 0;
+ while((pos1 = text.indexOf("class", pos, Qt::CaseSensitive) ) != -1 ){
+ int tmpPos = pos1+6;
+ if( ( pos2 = text.indexOf('(',tmpPos, Qt::CaseSensitive) ) != -1 ){
+ setFormat( tmpPos , pos2-tmpPos , QColor(0,0,255));
+ pos += pos2 - pos1+1;
+ } else{
+ setFormat( tmpPos, text.length()-tmpPos, QColor(0,0,255));
+ pos += text.length()+1;
+ }
+ }
+
+ while((pos1 = text.indexOf("def",pos, Qt::CaseSensitive) ) != -1 ){
+ int tmpPos = pos1+4;
+ if( ( pos2 = text.indexOf('(',tmpPos, Qt::CaseSensitive) ) != -1 ){
+ setFormat( tmpPos , pos2-tmpPos , QColor(136,0,0));
+ pos += pos2 - pos1+1;
+ } else{
+ setFormat( tmpPos, text.length()-tmpPos, QColor(136,0,0));
+ pos += text.length()+1;
+ }
+ }
+
+ pos = 0;
+ while((pos1 = text.indexOf("UnaryFunction", pos) ) != -1 ){
+ if( ( pos2 = text.indexOf(QRegExp("\\W"), pos1) ) != -1 ){
+ setFormat( pos1 , pos2-pos1 , QColor(0,0,255));
+ pos += pos2 - pos1+1;
+ } else{
+ setFormat( pos1, text.length()-pos1, QColor(0,0,255));
+ pos += text.length()+1;
+ }
+ }
+}
+
+void QStyleModuleSyntaxHighlighter::highlightComment(const QString& text){
+ int pos = 0;
+ int pos1 = 0;
+ int pos2 = 0;
+ while((pos1 = text.indexOf('#',pos, Qt::CaseSensitive) ) != -1 ){
+ if( ( pos2 = text.indexOf('\n',pos1, Qt::CaseSensitive) ) != -1 ){
+ setFormat( pos1 , pos2 , QColor(0,128,0));
+ pos += pos2 - pos1;
+ //setFormat( pos , text.length()-pos , _defaultColor );
+ } else{
+ setFormat( pos1 , text.length()-pos1, QColor(0,128,0));
+ pos += text.length()+1;
+ }
+ }
+}
+
+void QStyleModuleSyntaxHighlighter::highlightBlock ( const QString & text) {
+ setFormat( 0 , text.length() , _defaultColor );
+
+ highlightKeywords(text, _python, QColor(128,128,128));
+ highlightKeywords(text, _functors, QColor(136,0,0));
+ dynamicHighlight(text);
+ highlightKeywords(text, _operators, QColor(0,0,255));
+ highlightComment(text);
+} \ No newline at end of file
diff --git a/source/blender/freestyle/intern/app/QStyleModuleSyntaxHighlighter.h b/source/blender/freestyle/intern/app/QStyleModuleSyntaxHighlighter.h
new file mode 100755
index 00000000000..ff3591ac45d
--- /dev/null
+++ b/source/blender/freestyle/intern/app/QStyleModuleSyntaxHighlighter.h
@@ -0,0 +1,57 @@
+//
+// Filename : QStyleModuleSyntaxHighlighter.h
+// Author : Stephane Grabli
+// Purpose : Class to define the syntax highlighting
+// of the style module
+// Date of creation : 07/01/2004
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef QSTYLEMODULESYNTAXHIGHLIGHTER_H
+#define QSTYLEMODULESYNTAXHIGHLIGHTER_H
+
+#include <QSyntaxHighlighter>
+#include <vector>
+
+class QStyleModuleSyntaxHighlighter : public QSyntaxHighlighter
+{
+public:
+ QStyleModuleSyntaxHighlighter(QTextEdit *iTextEdit);
+ virtual ~QStyleModuleSyntaxHighlighter();
+
+ virtual void highlightBlock ( const QString & text) ;
+
+protected:
+ void highlightKeywords(const QString& text, std::vector<QString>& iKeywords, const QColor& iColor);
+ void dynamicHighlight(const QString& text);
+ void highlightComment(const QString& text);
+
+private:
+ std::vector<QString> _operators;
+ std::vector<QString> _functors;
+ std::vector<QString> _python;
+ QColor _defaultColor;
+};
+
+#endif
diff --git a/source/blender/freestyle/intern/app/app.pro b/source/blender/freestyle/intern/app/app.pro
new file mode 100755
index 00000000000..e2ba9aec6f7
--- /dev/null
+++ b/source/blender/freestyle/intern/app/app.pro
@@ -0,0 +1,179 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+TEMPLATE = app
+TARGET = $${APPNAME}
+debug: TARGET = $${TARGET}_d
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= console qglviewer2 3ds$${LIB3DS_VERSION_MAJ}.$${LIB3DS_VERSION_MIN} python$${PYTHON_VERSION_MAJ}.$${PYTHON_VERSION_MIN} glut
+win32: CONFIG += embed_manifest_exe
+QT += xml
+
+exists (../libconfig.pri) {
+ include (../libconfig.pri)
+}
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+UI_DIR = ui_dir
+
+#!win32:PYTHON_DIR_REL = build/$${REL_DESTDIR}/lib/python
+#win32:PYTHON_DIR_REL = build\\$${REL_DESTDIR}\\python
+
+#
+# LIBS
+#
+#######################################
+
+!static {
+ !win32 {
+ lib_bundle {
+ LIBS += -F$${BUILD_DIR}/$${REL_DESTDIR}/lib -framework $${LIB_GEOMETRY} -framework $${LIB_IMAGE} \
+ -framework $${LIB_SCENE_GRAPH} -framework $${LIB_SYSTEM} \
+ -framework $${LIB_WINGED_EDGE} -framework $${LIB_VIEW_MAP} \
+ -framework $${LIB_RENDERING} -framework $${LIB_STROKE}
+ } else {
+ LIBS *= -L$${BUILD_DIR}/$${REL_DESTDIR}/lib \
+ -l$${LIB_SYSTEM} -l$${LIB_IMAGE} -l$${LIB_GEOMETRY} \
+ -l$${LIB_SCENE_GRAPH} -l$${LIB_WINGED_EDGE} -l$${LIB_VIEW_MAP} \
+ -l$${LIB_RENDERING} -l$${LIB_STROKE}
+ }
+ }
+
+ win32:LIBS *= $${DESTDIR}/$${LIB_SCENE_GRAPH}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SYSTEM}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_WINGED_EDGE}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_VIEW_MAP}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_STROKE}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_RENDERING}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_GEOMETRY}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_IMAGE}$${LIBVERSION}.lib
+}
+
+# irix-n32:LIBS *= -l3ds -lglut -lQGLViewer -lpython$${PYTHON_VERSION_MAJ}.$${PYTHON_VERSION_MIN}
+# mac:LIBS *= -framework GLUT -lobjc -l3ds -lm -lQGLViewer -lpython$${PYTHON_VERSION_MAJ}.$${PYTHON_VERSION_MIN}
+
+#
+# INCLUDE PATH
+#
+#######################################
+
+#INCLUDEPATH *= ../geometry ../image ../scene_graph ../stroke ../system \
+# ../view_map ../winged_edge ../rendering
+
+#
+# DEFINES
+#
+#######################################
+
+DEFINES *= APPNAME=\\\"$${APPNAME}\\\" \
+ APPVERSION=\\\"$${APPVERSION}\\\" \
+ #ROOT_DIR=\\"$(FREESTYLE_DIR)\\" \
+ PYTHON_DIR_REL=\\\"$${PYTHON_DIR_REL}\\\"
+
+#
+# MOC DIRECTORY
+#
+#######################################
+
+win32:MOCEXT = win32
+linux-g++:MOCEXT = linux
+cygwin-g++:MOCEXT = cygwin
+irix-n32:MOCEXT = irix
+mac:MOCEXT = mac
+MOC_DIR = moc_$$MOCEXT
+
+#
+# INSTALL
+#
+#######################################
+
+EXE_DIR = ../../
+# install library
+target.path = $$EXE_DIR
+# "make install" configuration options
+INSTALLS += target
+
+#
+# SOURCES, HEADERS & FORMS
+#
+#######################################
+
+
+static {
+ include(../system/src.pri)
+ include(../image/src.pri)
+ include(../geometry/src.pri)
+ include(../scene_graph/src.pri)
+ include(../winged_edge/src.pri)
+ include(../view_map/src.pri)
+ include(../stroke/src.pri)
+ include(../rendering/src.pri)
+}
+#include(src.pri)
+APP_DIR = ../app
+DEPENDPATH += .
+INCLUDEPATH += .
+
+FORMS += appmainwindowbase4.ui \
+ interactiveshaderwindow4.ui \
+ optionswindow4.ui \
+ progressdialog4.ui \
+ stylewindow4.ui \
+ densitycurveswindow4.ui
+RESOURCES += $${APP_DIR}/freestyle.qrc
+SOURCES *= $${APP_DIR}/AppAboutWindow.cpp \
+ $${APP_DIR}/AppCanvas.cpp \
+ $${APP_DIR}/AppConfig.cpp \
+ $${APP_DIR}/AppGLWidget.cpp \
+ $${APP_DIR}/AppInteractiveShaderWindow.cpp \
+ $${APP_DIR}/AppMainWindow.cpp \
+ $${APP_DIR}/AppOptionsWindow.cpp \
+ $${APP_DIR}/AppProgressBar.cpp \
+ $${APP_DIR}/AppStyleWindow.cpp \
+ $${APP_DIR}/Controller.cpp \
+ $${APP_DIR}/QGLBasicWidget.cpp \
+ $${APP_DIR}/QStyleModuleSyntaxHighlighter.cpp \
+ $${APP_DIR}/AppGL2DCurvesViewer.cpp \
+ $${APP_DIR}/AppDensityCurvesWindow.cpp \
+ $${APP_DIR}/ConfigIO.cpp \
+ $${APP_DIR}/Main.cpp
+
+HEADERS *= $${APP_DIR}/AppAboutWindow.h \
+ $${APP_DIR}/AppCanvas.h \
+ $${APP_DIR}/AppConfig.h \
+ $${APP_DIR}/AppGLWidget.h \
+ $${APP_DIR}/AppInteractiveShaderWindow.h \
+ $${APP_DIR}/AppMainWindow.h \
+ $${APP_DIR}/AppOptionsWindow.h \
+ $${APP_DIR}/AppProgressBar.h \
+ $${APP_DIR}/AppStyleWindow.h \
+ $${APP_DIR}/QGLBasicWidget.h \
+ $${APP_DIR}/QStyleModuleSyntaxHighlighter.h \
+ $${APP_DIR}/AppGL2DCurvesViewer.h \
+ $${APP_DIR}/AppDensityCurvesWindow.h \
+ $${APP_DIR}/ConfigIO.h \
+ $${APP_DIR}/Controller.h
+
diff --git a/source/blender/freestyle/intern/app/appmainwindowbase4.ui b/source/blender/freestyle/intern/app/appmainwindowbase4.ui
new file mode 100755
index 00000000000..13e758d49dd
--- /dev/null
+++ b/source/blender/freestyle/intern/app/appmainwindowbase4.ui
@@ -0,0 +1,237 @@
+<ui version="4.0" >
+ <class>AppMainWindowBase</class>
+ <widget class="QMainWindow" name="AppMainWindowBase" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>510</width>
+ <height>523</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Freestyle</string>
+ </property>
+ <widget class="QWidget" name="centralwidget" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menubar" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>510</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuHelp" >
+ <property name="title" >
+ <string>&amp;Help</string>
+ </property>
+ <addaction name="actionHelp" />
+ <addaction name="actionControlBindings" />
+ <addaction name="separator" />
+ <addaction name="actionAbout" />
+ </widget>
+ <widget class="QMenu" name="menuFile" >
+ <property name="title" >
+ <string>&amp;File</string>
+ </property>
+ <addaction name="actionOpen" />
+ <addaction name="actionSave" />
+ <addaction name="actionClose" />
+ <addaction name="separator" />
+ <addaction name="actionLoadCamera" />
+ <addaction name="separator" />
+ <addaction name="actionSaveSnapshot" />
+ <addaction name="actionSavePSSnapshot" />
+ <addaction name="actionSaveTextSnapshot" />
+ <addaction name="actionCaptureMovie" />
+ <addaction name="separator" />
+ <addaction name="actionQuit" />
+ </widget>
+ <widget class="QMenu" name="menuWindows" >
+ <property name="title" >
+ <string>&amp;Windows</string>
+ </property>
+ <addaction name="actionStyleModelerWindow" />
+ <addaction name="actionOptionsWindow" />
+ </widget>
+ <widget class="QMenu" name="menuTools" >
+ <property name="title" >
+ <string>&amp;Tools</string>
+ </property>
+ <addaction name="actionComputeViewMap" />
+ <addaction name="actionSaveDirectionalViewMapImages" />
+ <addaction name="actionComputeStrokes" />
+ <addaction name="separator" />
+ <addaction name="actionResetInterpreter" />
+ </widget>
+ <addaction name="menuFile" />
+ <addaction name="menuTools" />
+ <addaction name="menuWindows" />
+ <addaction name="menuHelp" />
+ </widget>
+ <widget class="QStatusBar" name="statusbar" />
+ <action name="actionOpen" >
+ <property name="text" >
+ <string>&amp;Open</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+O</string>
+ </property>
+ </action>
+ <action name="actionSave" >
+ <property name="text" >
+ <string>&amp;Save</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+S</string>
+ </property>
+ </action>
+ <action name="actionClose" >
+ <property name="text" >
+ <string>&amp;Close</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+C</string>
+ </property>
+ </action>
+ <action name="actionLoadCamera" >
+ <property name="text" >
+ <string>Load Camera</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+L</string>
+ </property>
+ </action>
+ <action name="actionSavePSSnapshot" >
+ <property name="text" >
+ <string>Save PS Snapshot...</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+P</string>
+ </property>
+ </action>
+ <action name="actionSaveSnapshot" >
+ <property name="text" >
+ <string>Save Snapshot</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+W</string>
+ </property>
+ </action>
+ <action name="actionSaveTextSnapshot" >
+ <property name="text" >
+ <string>Save Text Snapshot</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+T</string>
+ </property>
+ </action>
+ <action name="actionCaptureMovie" >
+ <property name="text" >
+ <string>Capture Movie</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+M</string>
+ </property>
+ </action>
+ <action name="actionQuit" >
+ <property name="text" >
+ <string>&amp;Quit</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ <action name="actionComputeViewMap" >
+ <property name="text" >
+ <string>Compute View Map</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+B</string>
+ </property>
+ </action>
+ <action name="actionSaveDirectionalViewMapImages" >
+ <property name="text" >
+ <string>Save Directional ViewMap Images</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+Shift+B</string>
+ </property>
+ </action>
+ <action name="actionComputeStrokes" >
+ <property name="text" >
+ <string>Compute Strokes</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+D</string>
+ </property>
+ </action>
+ <action name="actionResetInterpreter" >
+ <property name="text" >
+ <string>Reset Interpreter</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+R</string>
+ </property>
+ </action>
+ <action name="actionStyleModelerWindow" >
+ <property name="text" >
+ <string>Style Modeler Window</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+I</string>
+ </property>
+ </action>
+ <action name="actionOptionsWindow" >
+ <property name="text" >
+ <string>Options Window</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+O</string>
+ </property>
+ </action>
+ <action name="actionHelp" >
+ <property name="text" >
+ <string>&amp;Help</string>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+H</string>
+ </property>
+ </action>
+ <action name="actionControlBindings" >
+ <property name="text" >
+ <string>Control Bindings</string>
+ </property>
+ <property name="shortcut" >
+ <string>H</string>
+ </property>
+ </action>
+ <action name="actionAbout" >
+ <property name="text" >
+ <string>About</string>
+ </property>
+ </action>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/source/blender/freestyle/intern/app/densitycurveswindow4.ui b/source/blender/freestyle/intern/app/densitycurveswindow4.ui
new file mode 100755
index 00000000000..1a35e3247d1
--- /dev/null
+++ b/source/blender/freestyle/intern/app/densitycurveswindow4.ui
@@ -0,0 +1,442 @@
+<ui version="4.0" >
+ <class>DensityCurvesWindow</class>
+ <widget class="QDialog" name="DensityCurvesWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>838</width>
+ <height>272</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Density Curves</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QTabWidget" name="tabWidget2" >
+ <property name="currentIndex" >
+ <number>1</number>
+ </property>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>[ density / pyramid level ] for each Orientation</string>
+ </attribute>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="CurvesViewer0" />
+ </item>
+ <item>
+ <widget class="QLabel" name="label0" >
+ <property name="text" >
+ <string>0 degree</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="CurvesViewer1" />
+ </item>
+ <item>
+ <widget class="QLabel" name="label_45" >
+ <property name="text" >
+ <string>45 degrees</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="CurvesViewer2" />
+ </item>
+ <item>
+ <widget class="QLabel" name="label90" >
+ <property name="text" >
+ <string>90 degrees</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="CurvesViewer3" />
+ </item>
+ <item>
+ <widget class="QLabel" name="label135" >
+ <property name="text" >
+ <string>135 degrees</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="CurvesViewer4" />
+ </item>
+ <item>
+ <widget class="QLabel" name="labelAll" >
+ <property name="text" >
+ <string>all directions</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>[ density / orientation ] for each Level</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="LevelCurveViewer1" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label0_2" >
+ <property name="text" >
+ <string>level 1</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="LevelCurveViewer2" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label0_2_2" >
+ <property name="text" >
+ <string>level 2</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="LevelCurveViewer3" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label0_2_2_2" >
+ <property name="text" >
+ <string>level 3</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="LevelCurveViewer4" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label0_2_2_3" >
+ <property name="text" >
+ <string>level 4</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="LevelCurveViewer5" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label0_2_2_4" >
+ <property name="text" >
+ <string>level 5</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="LevelCurveViewer6" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label0_2_2_5" >
+ <property name="text" >
+ <string>level 6</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="LevelCurveViewer7" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label0_2_2_6" >
+ <property name="text" >
+ <string>level 7</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="AppGL2DCurvesViewer" native="1" name="LevelCurveViewer8" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label0_2_2_7" >
+ <property name="text" >
+ <string>level 8</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <customwidgets>
+ <customwidget>
+ <class>AppGL2DCurvesViewer</class>
+ <extends>QWidget</extends>
+ <header>AppGL2DCurvesViewer.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/source/blender/freestyle/intern/app/freestyle.qrc b/source/blender/freestyle/intern/app/freestyle.qrc
new file mode 100755
index 00000000000..b37a6702af6
--- /dev/null
+++ b/source/blender/freestyle/intern/app/freestyle.qrc
@@ -0,0 +1,23 @@
+<!DOCTYPE RCC><RCC version="1.0">
+ <qresource prefix="/icons" >
+ <file>icons/add.png</file>
+ <file>icons/arrow_down.png</file>
+ <file>icons/arrow_left.png</file>
+ <file>icons/arrow_right.png</file>
+ <file>icons/arrow_up.png</file>
+ <file>icons/clear.png</file>
+ <file>icons/close.png</file>
+ <file>icons/edit.png</file>
+ <file>icons/eye0.png</file>
+ <file>icons/eye1.png</file>
+ <file>icons/folder.png</file>
+ <file>icons/home.png</file>
+ <file>icons/mod0.png</file>
+ <file>icons/mod1.png</file>
+ <file>icons/ok.png</file>
+ <file>icons/reload.png</file>
+ <file>icons/remove.png</file>
+ <file>icons/save.png</file>
+ <file>icons/save_as.png</file>
+ </qresource>
+</RCC>
diff --git a/source/blender/freestyle/intern/app/icons/add.png b/source/blender/freestyle/intern/app/icons/add.png
new file mode 100755
index 00000000000..d3388dcb3a9
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/add.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/arrow_down.png b/source/blender/freestyle/intern/app/icons/arrow_down.png
new file mode 100755
index 00000000000..6cf2e9bba26
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/arrow_down.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/arrow_left.png b/source/blender/freestyle/intern/app/icons/arrow_left.png
new file mode 100755
index 00000000000..72a5c462af6
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/arrow_left.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/arrow_right.png b/source/blender/freestyle/intern/app/icons/arrow_right.png
new file mode 100755
index 00000000000..f7e5c3b37e3
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/arrow_right.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/arrow_up.png b/source/blender/freestyle/intern/app/icons/arrow_up.png
new file mode 100755
index 00000000000..993a574b15a
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/arrow_up.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/clear.png b/source/blender/freestyle/intern/app/icons/clear.png
new file mode 100755
index 00000000000..1e3b2e37bd9
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/clear.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/close.png b/source/blender/freestyle/intern/app/icons/close.png
new file mode 100755
index 00000000000..2042ec3d1ba
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/close.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/edit.png b/source/blender/freestyle/intern/app/icons/edit.png
new file mode 100755
index 00000000000..244751b1933
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/edit.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/eye0.png b/source/blender/freestyle/intern/app/icons/eye0.png
new file mode 100755
index 00000000000..5f6d873cb0c
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/eye0.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/eye1.png b/source/blender/freestyle/intern/app/icons/eye1.png
new file mode 100755
index 00000000000..f762b66b482
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/eye1.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/folder.png b/source/blender/freestyle/intern/app/icons/folder.png
new file mode 100755
index 00000000000..3a99ad5ee92
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/folder.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/home.png b/source/blender/freestyle/intern/app/icons/home.png
new file mode 100755
index 00000000000..ec4b22098b2
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/home.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/mod0.png b/source/blender/freestyle/intern/app/icons/mod0.png
new file mode 100755
index 00000000000..816d814528a
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/mod0.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/mod1.png b/source/blender/freestyle/intern/app/icons/mod1.png
new file mode 100755
index 00000000000..c7c66183800
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/mod1.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/ok.png b/source/blender/freestyle/intern/app/icons/ok.png
new file mode 100755
index 00000000000..31c064ba922
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/ok.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/reload.png b/source/blender/freestyle/intern/app/icons/reload.png
new file mode 100755
index 00000000000..d26c280f1ac
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/reload.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/remove.png b/source/blender/freestyle/intern/app/icons/remove.png
new file mode 100755
index 00000000000..86d8c38a7f8
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/remove.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/save.png b/source/blender/freestyle/intern/app/icons/save.png
new file mode 100755
index 00000000000..932100d98e9
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/save.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/icons/save_as.png b/source/blender/freestyle/intern/app/icons/save_as.png
new file mode 100755
index 00000000000..2c8b3f3e7b4
--- /dev/null
+++ b/source/blender/freestyle/intern/app/icons/save_as.png
Binary files differ
diff --git a/source/blender/freestyle/intern/app/interactiveshaderwindow4.ui b/source/blender/freestyle/intern/app/interactiveshaderwindow4.ui
new file mode 100755
index 00000000000..e17442ad43e
--- /dev/null
+++ b/source/blender/freestyle/intern/app/interactiveshaderwindow4.ui
@@ -0,0 +1,103 @@
+<ui version="4.0" >
+ <class>InteractiveShaderWindow</class>
+ <widget class="QDialog" name="InteractiveShaderWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>368</width>
+ <height>482</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>InteractiveShader</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QTextEdit" name="TextArea" />
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="OkButton" >
+ <property name="toolTip" >
+ <string>Save and close window</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/ok.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="SaveButton" >
+ <property name="toolTip" >
+ <string>Save module</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/save.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+S</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="SaveAsButton" >
+ <property name="toolTip" >
+ <string>Save module as</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/save_as.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+W</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="CancelButton" >
+ <property name="toolTip" >
+ <string>Close window</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/close.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+C</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources>
+ <include location="freestyle.qrc" />
+ </resources>
+ <connections/>
+</ui>
diff --git a/source/blender/freestyle/intern/app/optionswindow4.ui b/source/blender/freestyle/intern/app/optionswindow4.ui
new file mode 100755
index 00000000000..48c322c6d84
--- /dev/null
+++ b/source/blender/freestyle/intern/app/optionswindow4.ui
@@ -0,0 +1,651 @@
+<ui version="4.0" >
+ <class>OptionsWindow</class>
+ <widget class="QDialog" name="OptionsWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>414</width>
+ <height>443</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Options</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QTabWidget" name="tabWidget" >
+ <property name="currentIndex" >
+ <number>4</number>
+ </property>
+ <widget class="QWidget" name="directoriesTab" >
+ <attribute name="title" >
+ <string>Directories</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="modelsPathBox" >
+ <property name="title" >
+ <string>Models Path:</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="modelsPathLineEdit" />
+ </item>
+ <item>
+ <widget class="QPushButton" name="modelPathAddButton" >
+ <property name="toolTip" >
+ <string>Add a folder to the path...</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/folder.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="patternsPathBox" >
+ <property name="title" >
+ <string>Patterns Path:</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="patternsPathLineEdit" />
+ </item>
+ <item>
+ <widget class="QPushButton" name="patternsPathAddButton" >
+ <property name="toolTip" >
+ <string>Add a folder to the path...</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/folder.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="brushesPathBox" >
+ <property name="title" >
+ <string>Brushes Path:</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="brushesPathLineEdit" />
+ </item>
+ <item>
+ <widget class="QPushButton" name="brushesPathAddButton" >
+ <property name="toolTip" >
+ <string>Add a folder to the path...</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/folder.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="pythonPathBox" >
+ <property name="title" >
+ <string>Python Path:</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="pythonPathLineEdit" />
+ </item>
+ <item>
+ <widget class="QPushButton" name="pythonPathAddButton" >
+ <property name="toolTip" >
+ <string>Add a folder to the path...</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/folder.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="PaperTab" >
+ <attribute name="title" >
+ <string>Paper textures</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QListWidget" name="paperTexturesList" />
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="addPaperTextureButton" >
+ <property name="toolTip" >
+ <string>Add Texture(s)</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/add.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removePaperTextureButton" >
+ <property name="toolTip" >
+ <string>Remove Texture</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/remove.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="moveUpPaperTextureButton" >
+ <property name="toolTip" >
+ <string>Move up</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/arrow_up.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="moveDownPaperTextureButton" >
+ <property name="toolTip" >
+ <string>Move down</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/arrow_down.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clearPaperTextureButton" >
+ <property name="toolTip" >
+ <string>Clear list</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/clear.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="featureLineTab" >
+ <attribute name="title" >
+ <string>Feature Lines</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="curvaturesBox" >
+ <property name="title" >
+ <string>Curvatures</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="sphereRadiusLabel" >
+ <property name="text" >
+ <string>Sphere Radius (x mean edge size)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="sphereRadiusLineEdit" />
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="ridgesAndValleysBox" >
+ <property name="title" >
+ <string>Ridges and Valleys</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QCheckBox" name="ridgeValleyCheckBox" >
+ <property name="text" >
+ <string>Compute Ridges and Valleys</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="suggestiveContoursBox" >
+ <property name="title" >
+ <string>Suggestive Contours</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="suggestiveContoursCheckBox" >
+ <property name="text" >
+ <string>Compute Suggestive Contours</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="krEpsilonLabel" >
+ <property name="text" >
+ <string>kr Derivative Epsilon</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="krEpsilonLineEdit" />
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="miscelleanousTab" >
+ <attribute name="title" >
+ <string>Miscelleanous</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="viewMapBox" >
+ <property name="title" >
+ <string>View Map</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="asFloatCheckBox" >
+ <property name="text" >
+ <string>Save vector coordinates as floats</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="noOccluderListCheckBox" >
+ <property name="text" >
+ <string>Do not save occluders lists</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="steerableViewMapCheckBox" >
+ <property name="text" >
+ <string>Compute Steerable ViewMap</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="visibilityBox" >
+ <property name="title" >
+ <string>Visibility</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="qiCheckBox" >
+ <property name="text" >
+ <string>Enable Quantitative Invisibility</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="drawingBox" >
+ <property name="title" >
+ <string>Drawing</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="backBufferCheckBox" >
+ <property name="text" >
+ <string>Back Buffer</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="frontBufferCheckBox" >
+ <property name="text" >
+ <string>Front Buffer</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="helpTab" >
+ <attribute name="title" >
+ <string>Help</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="browserCmdLabel" >
+ <property name="text" >
+ <string>Browser Command</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="browserCmdLineEdit" />
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="helpBox" >
+ <property name="title" >
+ <string>Help index file:</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="helpIndexPathLineEdit" />
+ </item>
+ <item>
+ <widget class="QPushButton" name="helpIndexPathButton" >
+ <property name="toolTip" >
+ <string>Browse</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/folder.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="okButton" >
+ <property name="toolTip" >
+ <string>Save and close window</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/ok.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="applyButton" >
+ <property name="toolTip" >
+ <string>Save Options</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/save.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="closeButton" >
+ <property name="toolTip" >
+ <string>Close window</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/close.png</iconset>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="freestyle.qrc" />
+ </resources>
+ <connections/>
+</ui>
diff --git a/source/blender/freestyle/intern/app/progressdialog4.ui b/source/blender/freestyle/intern/app/progressdialog4.ui
new file mode 100755
index 00000000000..78cc67ed440
--- /dev/null
+++ b/source/blender/freestyle/intern/app/progressdialog4.ui
@@ -0,0 +1,26 @@
+<ui version="4.0" stdsetdef="1" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>ProgressDialog</class>
+ <widget class="QDialog" name="ProgressDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>350</width>
+ <height>64</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Progress Dialog</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <widget class="Q3ProgressBar" name="ProgressBar2" />
+ </item>
+ </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+</ui>
diff --git a/source/blender/freestyle/intern/app/src.pri b/source/blender/freestyle/intern/app/src.pri
new file mode 100755
index 00000000000..2fcc9146216
--- /dev/null
+++ b/source/blender/freestyle/intern/app/src.pri
@@ -0,0 +1,50 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+APP_DIR = ../app
+
+SOURCES *= $${APP_DIR}/AppAboutWindow.cpp \
+ $${APP_DIR}/AppCanvas.cpp \
+ $${APP_DIR}/AppConfig.cpp \
+ $${APP_DIR}/AppGLWidget.cpp \
+ $${APP_DIR}/AppInteractiveShaderWindow.cpp \
+ $${APP_DIR}/AppMainWindow.cpp \
+ $${APP_DIR}/AppOptionsWindow.cpp \
+ $${APP_DIR}/AppProgressBar.cpp \
+ $${APP_DIR}/AppStyleWindow.cpp \
+ $${APP_DIR}/Controller.cpp \
+ $${APP_DIR}/QGLBasicWidget.cpp \
+ $${APP_DIR}/QStyleModuleSyntaxHighlighter.cpp \
+ $${APP_DIR}/AppGL2DCurvesViewer.cpp \
+ $${APP_DIR}/AppDensityCurvesWindow.cpp \
+ $${APP_DIR}/ConfigIO.cpp \
+ $${APP_DIR}/Main.cpp
+
+HEADERS *= $${APP_DIR}/AppAboutWindow.h \
+ $${APP_DIR}/AppCanvas.h \
+ $${APP_DIR}/AppConfig.h \
+ $${APP_DIR}/AppGLWidget.h \
+ $${APP_DIR}/AppInteractiveShaderWindow.h \
+ $${APP_DIR}/AppMainWindow.h \
+ $${APP_DIR}/AppOptionsWindow.h \
+ $${APP_DIR}/AppProgressBar.h \
+ $${APP_DIR}/AppStyleWindow.h \
+ $${APP_DIR}/QGLBasicWidget.h \
+ $${APP_DIR}/QStyleModuleSyntaxHighlighter.h \
+ $${APP_DIR}/AppGL2DCurvesViewer.h \
+ $${APP_DIR}/AppDensityCurvesWindow.h \
+ $${APP_DIR}/ConfigIO.h \
+ $${APP_DIR}/Controller.h
+
+FORMS *= $${APP_DIR}/appmainwindowbase4.ui \
+ $${APP_DIR}/interactiveshaderwindow4.ui \
+ $${APP_DIR}/optionswindow4.ui \
+ $${APP_DIR}/progressdialog4.ui \
+ $${APP_DIR}/stylewindow4.ui \
+ $${APP_DIR}/densitycurveswindow4.ui
+
+RESOURCES = $${APP_DIR}/freestyle.qrc
+
+
diff --git a/source/blender/freestyle/intern/app/stylewindow4.ui b/source/blender/freestyle/intern/app/stylewindow4.ui
new file mode 100755
index 00000000000..c4ff5f656ae
--- /dev/null
+++ b/source/blender/freestyle/intern/app/stylewindow4.ui
@@ -0,0 +1,182 @@
+<ui version="4.0" >
+ <class>StyleWindow</class>
+ <widget class="QDialog" name="StyleWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>571</width>
+ <height>421</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Style Modules</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QTableWidget" name="PlayList" >
+ <property name="dragEnabled" >
+ <bool>false</bool>
+ </property>
+ <property name="rowCount" >
+ <number>0</number>
+ </property>
+ <property name="columnCount" >
+ <number>3</number>
+ </property>
+ <column/>
+ <column/>
+ <column/>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="addButton" >
+ <property name="toolTip" >
+ <string>Add a Style Module</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/add.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+A</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removeButton" >
+ <property name="toolTip" >
+ <string>Remove a Style Module</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/remove.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+R</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="moveUpButton" >
+ <property name="toolTip" >
+ <string>Move up</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/arrow_up.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+U</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="moveDownButton" >
+ <property name="toolTip" >
+ <string>Move down</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/arrow_down.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+D</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="editButton" >
+ <property name="toolTip" >
+ <string>Edit Style Module</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/edit.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+E</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="saveButton" >
+ <property name="toolTip" >
+ <string>Save Modules list</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/save.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+S</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clearButton" >
+ <property name="toolTip" >
+ <string>Clear Modules list</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/clear.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+X</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="closeButton" >
+ <property name="toolTip" >
+ <string>Close window</string>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="icon" >
+ <iconset resource="freestyle.qrc" >:/icons/icons/close.png</iconset>
+ </property>
+ <property name="shortcut" >
+ <string>Ctrl+C</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="freestyle.qrc" />
+ </resources>
+ <connections/>
+</ui>
diff --git a/source/blender/freestyle/intern/build_bundle.macosx.py b/source/blender/freestyle/intern/build_bundle.macosx.py
new file mode 100755
index 00000000000..e97153f269c
--- /dev/null
+++ b/source/blender/freestyle/intern/build_bundle.macosx.py
@@ -0,0 +1,183 @@
+#!/usr/bin/python
+
+import os,sys,string
+
+install_dependencies=["GLUT",\
+ "QtCore", "QtGui", "QtXml", \
+ "libQGLViewer", "FreestyleSystem", "FreestyleRendering",\
+ "FreestyleImage","FreestyleGeometry", "FreestyleSceneGraph", "FreestyleWingedEdge",\
+ "FreestyleViewMap", "FreestyleStroke"]
+
+if not("FREESTYLE_DIR" in os.environ):
+ print "FREESTYLE_DIR must be set to your Freestyle directory"
+ sys.exit()
+
+src_dir_path=os.environ['FREESTYLE_DIR']
+dest_dir_path=os.path.join(os.environ['FREESTYLE_DIR'], "freestyle.2.0.0-macosx-x86")
+bundle_name="Freestyle.app"
+bundle_path=os.path.join(dest_dir_path,bundle_name)
+frameworks_path=os.path.join(bundle_path,"Contents/Frameworks")
+exe_path=os.path.join(bundle_path, "Contents/MacOS")
+original_lib_path=os.path.join(src_dir_path,"build/macosx/release/lib")
+original_exe_path=os.path.join(src_dir_path,"build/macosx/release",bundle_name,"Contents/MacOS")
+
+
+
+# Builds a dictionary of dependencies for
+# a given binary
+# The table format is:
+# "dependency name" "dependency path"
+def buildDependenciesTable(binary_file, dep_table):
+ cmd="otool -L %s" % binary_file
+ #print cmd
+ #otool_output = os.system(cmd)
+ otool_output = os.popen(cmd).read().split('\n')
+ for dep_text in otool_output:
+ if (dep_text.count(":") == 0):
+ dep = dep_text.split(' ')[0].lstrip()
+ dep_base_name=os.path.basename(dep)
+ dep_table[dep_base_name] = dep
+
+
+def fixPaths(dep_table):
+ for k,v in dep_table.items():
+ if(k.count("Freestyle")):
+ dep_table[k] = os.path.join(src_dir_path, "build/macosx/release/lib",v)
+ if(k.count("QGLViewer")):
+ dep_table[k] = os.path.join("/usr/lib", v)
+
+def extractFrameworkBaseDir(framework_lib):
+ parts=framework_lib.split("/")
+ head="/"
+ tail=""
+ in_head=True
+ for p in parts:
+ if(in_head == True):
+ head=os.path.join(head,p)
+ else:
+ tail=os.path.join(tail,p)
+ if(p.count(".framework") != 0):
+ in_head=False
+ return (head,tail)
+
+def installDependencies(dep_table, install_dependencies, new_dep_table):
+ for k,v in dep_table.items():
+ for d in install_dependencies:
+ if(k.count(d)!=0):
+ framework_dir_path=v
+ cp_option=""
+ head=""
+ tail=""
+ if(v.count("framework")):
+ (head,tail) = extractFrameworkBaseDir(v)
+ framework_dir_path=head
+ cp_option="-R"
+ lib_name=os.path.split(framework_dir_path)[1]
+ target=os.path.join(frameworks_path,lib_name)
+ # update new table
+ if(tail != ""):
+ new_dep_table[k] = os.path.join("@executable_path/../Frameworks",lib_name,tail)
+ else:
+ new_dep_table[k] = os.path.join("@executable_path/../Frameworks",lib_name)
+ if(os.path.exists(target) != True):
+ cmd = "cp %s %s %s" % (cp_option, framework_dir_path,frameworks_path)
+ print "Installing dependency:",lib_name
+ os.system(cmd)
+
+def updatePathsToDependencies(binary_file, install_dependencies, dep_table, new_dep_table):
+ # executable:
+ f_dep_table={}
+ buildDependenciesTable(binary_file,f_dep_table)
+ for k,v in f_dep_table.items():
+ # is k in install_dependencies?
+ for ld in install_dependencies:
+ if(k.count(ld) != 0):
+ #print new_dep_table
+ cmd="install_name_tool -change %s %s %s" % (v,new_dep_table[k], binary_file)
+ os.system(cmd)
+ # check
+ cmd="otool -L %s" % binary_file
+ os.system(cmd)
+
+def cleanDir(dir, to_delete):
+ os.chdir(dir)
+ #print os.getcwd()
+ for d in os.listdir("."):
+ #print d
+ if(d == "Headers"):
+ cmd="rm -rf Headers"
+ to_delete.append(os.path.join(dir,d))
+ #os.system(cmd)
+ elif(d.count("debug") != 0):
+ cmd="rm -rf %s"%(d)
+ #print cmd
+ to_delete.append(os.path.join(dir,d))
+ #os.system(cmd)
+ elif(os.path.isdir(d) == True):
+ #print d
+ cleanDir(os.path.join(dir,d), to_delete)
+ #else:
+ # print d
+ os.chdir(os.path.join(dir,".."))
+ #print os.getcwd()
+
+
+# build bundle structure
+if( os.path.exists(dest_dir_path) != True):
+ print "Creating directory",dest_dir_path
+ os.mkdir(dest_dir_path)
+
+if(os.path.exists(bundle_path) != True):
+ print "Creating the bundle structure", bundle_path
+ cmd = "cp -R %s %s" % (os.path.join(src_dir_path, "build/macosx/release/",bundle_name), bundle_path)
+ os.system(cmd)
+ os.mkdir(os.path.join(bundle_path,"Contents/Frameworks"))
+
+
+dep_table = {}
+new_dep_table = {}
+# Executable
+for f in os.listdir(original_exe_path):
+ if(f[0] == '.'):
+ continue
+ exe_file_path=os.path.join(original_exe_path, f)
+ buildDependenciesTable(exe_file_path, dep_table)
+
+# Frameworks
+for f in os.listdir(original_lib_path):
+ if (f.count("framework") == 0):
+ continue
+ f_name=f.split('.')[0]
+ fwk_path=os.path.join(original_lib_path, "%s.framework" % f_name,f_name)
+ buildDependenciesTable(fwk_path, dep_table)
+
+# Fix ad-hoc paths
+fixPaths(dep_table)
+
+# install dependent libs
+installDependencies(dep_table, install_dependencies, new_dep_table)
+
+# update paths to installed dependencies
+for f in os.listdir(exe_path):
+ if(f[0] == '.'):
+ continue
+ updatePathsToDependencies(os.path.join(exe_path,f), install_dependencies, dep_table, new_dep_table)
+
+# Frameworks
+for f in os.listdir(frameworks_path):
+ if (f.count("framework") == 0):
+ continue
+ f_name=f.split('.')[0]
+ fwk_path=os.path.join(frameworks_path, "%s.framework" % f_name,f_name)
+ updatePathsToDependencies(fwk_path, install_dependencies, dep_table, new_dep_table)
+
+
+# Clean-up
+# Remove debug libs
+print "Cleaning..."
+to_delete=[]
+cleanDir(bundle_path, to_delete)
+for f in to_delete:
+ cmd = "rm -rf %s"%f
+ print cmd
+ os.system(cmd)
diff --git a/source/blender/freestyle/intern/geometry/BBox.h b/source/blender/freestyle/intern/geometry/BBox.h
new file mode 100755
index 00000000000..9c46d7918e2
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/BBox.h
@@ -0,0 +1,141 @@
+//
+// Filename : BBox.h
+// Author(s) : Stephane Grabli
+// Purpose : A class to hold a bounding box
+// Date of creation : 22/05/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef BBOX_H
+# define BBOX_H
+
+template <class Point>
+class BBox
+{
+ public:
+
+ inline BBox() {
+ _empty = true;
+ }
+
+ template <class T>
+ inline BBox(const T& min_in, const T& max_in) : _min(min_in), _max(max_in) {
+ _empty = false;
+ }
+
+ template <class T>
+ inline BBox(const BBox<T>& b) : _min(b.getMin()), _max(b.getMax()) {
+ _empty = false;
+ }
+
+ template <class T>
+ inline void extendToContain(const T& p) {
+ if (_empty) {
+ _min = p;
+ _max = p;
+ _empty = false;
+ return;
+ }
+ for (unsigned i = 0; i < Point::dim(); i++) {
+ if (p[i] < _min[i])
+ _min[i] = p[i];
+ else if (p[i] > _max[i])
+ _max[i] = p[i];
+ }
+ _empty = false;
+ }
+
+ inline void clear() {
+ _empty = true;
+ }
+
+ inline bool empty() const {
+ return _empty;
+ }
+
+ inline const Point& getMin() const {
+ return _min;
+ }
+
+ inline const Point& getMax() const {
+ return _max;
+ }
+
+ inline BBox<Point>& operator=(const BBox<Point>& b) {
+ _min = b.getMin();
+ _max = b.getMax();
+ _empty = false;
+ return *this;
+ }
+
+ inline BBox<Point>& operator+=(const BBox<Point>& b) {
+ if (_empty) {
+ _min = b.getMin();
+ _max = b.getMax();
+ _empty = false;
+ }
+ else {
+ for (unsigned i = 0; i < Point::dim(); i++) {
+ if (b.getMin()[i] < _min[i])
+ _min[i] = b.getMin()[i];
+ if (b.getMax()[i] > _max[i])
+ _max[i] = b.getMax()[i];
+ }
+ }
+ return *this;
+ }
+
+ inline bool inside(const Point& p){
+ if(empty())
+ return false;
+ for (unsigned i = 0; i < Point::dim(); i++) {
+ if((_min[i]>p[i]) || (_max[i]<p[i]))
+ return false;
+ }
+ return true;
+
+ }
+
+private:
+
+ Point _min;
+ Point _max;
+ bool _empty;
+};
+
+template <class Point>
+BBox<Point>& operator+(const BBox<Point> &b1, const BBox<Point> &b2)
+{
+ Point new_min;
+ Point new_max;
+
+ for (unsigned i = 0; i < Point::dim(); i++) {
+ new_min[i] = b1.getMin()[i] < b2.getMin()[i] ? b1.getMin()[i] : b2.getMin()[i];
+ new_max[i] = b1.getMax()[i] > b2.getMax()[i] ? b1.getMax()[i] : b2.getMax()[i];
+ }
+
+ return BBox<Point>(new_min, new_max);
+}
+
+#endif // BBOX_H
diff --git a/source/blender/freestyle/intern/geometry/Bezier.cpp b/source/blender/freestyle/intern/geometry/Bezier.cpp
new file mode 100755
index 00000000000..8f9771f29d3
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/Bezier.cpp
@@ -0,0 +1,118 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "Bezier.h"
+#include "FitCurve.h"
+
+using namespace std;
+
+BezierCurveSegment::BezierCurveSegment()
+{
+}
+
+BezierCurveSegment::~BezierCurveSegment()
+{
+}
+
+void BezierCurveSegment::AddControlPoint(const Vec2d& iPoint)
+{
+ _ControlPolygon.push_back(iPoint);
+ if(_ControlPolygon.size() == 4)
+ Build();
+}
+
+void BezierCurveSegment::Build()
+{
+ if(_ControlPolygon.size() != 4)
+ return;
+
+ // Compute the rightmost part of the matrix:
+ vector<Vec2d>::const_iterator p0,p1,p2,p3;
+ p0 = _ControlPolygon.begin();
+ p1 = p0;++p1;
+ p2 = p1;++p2;
+ p3 = p2;++p3;
+ float x[4], y[4];
+
+ x[0] = -p0->x()+3*p1->x()-3*p2->x()+p3->x();
+ x[1] = 3*p0->x()-6*p1->x()+3*p2->x();
+ x[2] = -3*p0->x()+3*p1->x();
+ x[3] = p0->x();
+
+ y[0] = -p0->y()+3*p1->y()-3*p2->y()+p3->y();
+ y[1] = 3*p0->y()-6*p1->y()+3*p2->y();
+ y[2] = -3*p0->y()+3*p1->y();
+ y[3] = p0->y();
+
+ int nvertices = 12;
+ float increment = 1.0/(float)nvertices;
+ float t = 0.f;
+ for(int i=0; i<=nvertices; ++i)
+ {
+ _Vertices.push_back(Vec2d((x[3] + t*(x[2] + t*(x[1] + t*x[0]))),
+ (y[3] + t*(y[2] + t*(y[1] + t*y[0])))));
+ t+=increment;
+ }
+}
+
+BezierCurve::BezierCurve()
+{
+ _currentSegment = new BezierCurveSegment;
+}
+
+BezierCurve::BezierCurve(vector<Vec2d>& iPoints, double error)
+{
+ FitCurveWrapper fitcurve;
+ _currentSegment = new BezierCurveSegment;
+ vector<Vec2d> curve;
+
+ fitcurve.FitCurve(iPoints, curve, error);
+ int i=0;
+ vector<Vec2d>::iterator v,vend;
+ for(v=curve.begin(),vend=curve.end();
+ v!=vend;
+ ++v)
+ {
+ if((i == 0) || (i%4 != 0))
+ AddControlPoint(*v);
+ ++i;
+ }
+}
+
+BezierCurve::~BezierCurve()
+{
+ if(_currentSegment)
+ delete _currentSegment;
+}
+
+void BezierCurve::AddControlPoint(const Vec2d& iPoint)
+{
+ _ControlPolygon.push_back(iPoint);
+ _currentSegment->AddControlPoint(iPoint);
+ if(_currentSegment->size() == 4)
+ {
+ _Segments.push_back(_currentSegment);
+ _currentSegment = new BezierCurveSegment;
+ _currentSegment->AddControlPoint(iPoint);
+ }
+}
+
+
diff --git a/source/blender/freestyle/intern/geometry/Bezier.h b/source/blender/freestyle/intern/geometry/Bezier.h
new file mode 100755
index 00000000000..acae71bbb2c
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/Bezier.h
@@ -0,0 +1,73 @@
+//
+// Filename : Bezier.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a Bezier curve of order 4.
+// Date of creation : 04/06/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef BEZIER_H
+# define BEZIER_H
+
+#include <vector>
+#include "../system/FreestyleConfig.h"
+#include "Geom.h"
+
+using namespace Geometry;
+
+class LIB_GEOMETRY_EXPORT BezierCurveSegment
+{
+private:
+ std::vector<Vec2d> _ControlPolygon;
+ std::vector<Vec2d> _Vertices;
+
+public:
+ BezierCurveSegment();
+ virtual ~BezierCurveSegment();
+
+ void AddControlPoint(const Vec2d& iPoint);
+ void Build();
+ inline int size() const {return _ControlPolygon.size();}
+ inline std::vector<Vec2d>& vertices() {return _Vertices;}
+};
+
+
+class LIB_GEOMETRY_EXPORT BezierCurve
+{
+private:
+ std::vector<Vec2d> _ControlPolygon;
+ std::vector<BezierCurveSegment*> _Segments;
+ BezierCurveSegment *_currentSegment;
+
+public:
+ BezierCurve();
+ BezierCurve(std::vector<Vec2d>& iPoints, double error=4.0);
+ virtual ~BezierCurve();
+
+ void AddControlPoint(const Vec2d& iPoint);
+ std::vector<Vec2d>& controlPolygon() {return _ControlPolygon;}
+ std::vector<BezierCurveSegment*>& segments() {return _Segments;}
+};
+
+#endif // BEZIER_H
diff --git a/source/blender/freestyle/intern/geometry/FastGrid.cpp b/source/blender/freestyle/intern/geometry/FastGrid.cpp
new file mode 100755
index 00000000000..b090a3df67f
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/FastGrid.cpp
@@ -0,0 +1,62 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "FastGrid.h"
+
+void FastGrid::clear() {
+ if(!_cells)
+ return;
+
+ for(unsigned i = 0; i < _cells_size; i++)
+ if (_cells[i])
+ delete _cells[i];
+ delete[] _cells;
+ _cells = NULL;
+ _cells_size = 0;
+
+ Grid::clear();
+}
+
+void FastGrid::configure(const Vec3r& orig, const Vec3r& size, unsigned nb) {
+ Grid::configure(orig, size, nb);
+ _cells_size = _cells_nb[0] * _cells_nb[1] * _cells_nb[2];
+ _cells = new Cell*[_cells_size];
+ memset(_cells, 0, _cells_size * sizeof(*_cells));
+}
+
+Cell* FastGrid::getCell(const Vec3u& p) {
+ //cout << _cells<< " "<< p << " " <<_cells_nb[0]<<"-"<< _cells_nb[1]<<"-"<< _cells_nb[2]<< " "<<_cells_size<< endl;
+ assert(_cells||("_cells is a null pointer"));
+ assert((_cells_nb[0] * (p[2] * _cells_nb[1] + p[1]) + p[0])<_cells_size);
+ assert(p[0]<_cells_nb[0]);
+ assert(p[1]<_cells_nb[1]);
+ assert(p[2]<_cells_nb[2]);
+ return _cells[_cells_nb[0] * (p[2] * _cells_nb[1] + p[1]) + p[0]];
+}
+
+void FastGrid::fillCell(const Vec3u& p, Cell& cell) {
+ assert(_cells||("_cells is a null pointer"));
+ assert((_cells_nb[0] * (p[2] * _cells_nb[1] + p[1]) + p[0])<_cells_size);
+ assert(p[0]<_cells_nb[0]);
+ assert(p[1]<_cells_nb[1]);
+ assert(p[2]<_cells_nb[2]);
+ _cells[_cells_nb[0] * (p[2] * _cells_nb[1] + p[1]) + p[0]] = &cell;
+} \ No newline at end of file
diff --git a/source/blender/freestyle/intern/geometry/FastGrid.h b/source/blender/freestyle/intern/geometry/FastGrid.h
new file mode 100755
index 00000000000..e620ff24385
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/FastGrid.h
@@ -0,0 +1,85 @@
+//
+// Filename : FastGrid.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a cell grid surrounding the
+// bounding box of the scene
+// Date of creation : 30/07/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef FASTGRID_H
+# define FASTGRID_H
+
+# include "Grid.h"
+# include <cassert>
+/*! Class to define a regular grid used for ray
+ * casting computations
+ * We don't use a hashtable here. The grid is
+ * explicitly stored for faster computations.
+ * However, this might result in significant
+ * increase in memory usage (compared to the regular grid)
+ */
+
+class LIB_GEOMETRY_EXPORT FastGrid : public Grid
+{
+ public:
+
+ FastGrid() : Grid() {
+ _cells = NULL;
+ _cells_size = 0;
+ }
+
+ virtual ~FastGrid() {
+ clear();
+ }
+
+ /*! clears the grid
+ * Deletes all the cells, clears the hashtable,
+ * resets size, size of cell, number of cells.
+ */
+ virtual void clear();
+
+ /*! Sets the different parameters of the grid
+ * orig
+ * The grid origin
+ * size
+ * The grid's dimensions
+ * nb
+ * The number of cells of the grid
+ */
+ virtual void configure(const Vec3r& orig, const Vec3r& size, unsigned nb);
+
+ /*! returns the cell whose coordinates are pased as argument */
+ Cell* getCell(const Vec3u& p) ;
+
+ /*! Fills the case p with the cell iCell */
+ virtual void fillCell(const Vec3u& p, Cell& cell);
+
+protected:
+
+ Cell** _cells;
+ unsigned _cells_size;
+};
+
+#endif // FASTGRID_H
diff --git a/source/blender/freestyle/intern/geometry/FitCurve.cpp b/source/blender/freestyle/intern/geometry/FitCurve.cpp
new file mode 100755
index 00000000000..ade40b050ca
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/FitCurve.cpp
@@ -0,0 +1,602 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <stdio.h>
+#include <math.h>
+#include "FitCurve.h"
+
+using namespace std;
+
+typedef Vector2 *BezierCurve;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* Forward declarations */
+static double *Reparameterize(Vector2 *d, int first, int last, double *u, BezierCurve bezCurve);
+static double NewtonRaphsonRootFind(BezierCurve Q, Vector2 P, double u);
+static Vector2 BezierII(int degree, Vector2 *V, double t);
+static double B0(double u);
+static double B1(double u);
+static double B2(double u);
+static double B3(double u);
+static Vector2 ComputeLeftTangent(Vector2 *d, int end);
+static Vector2 ComputeLeftTangent(Vector2 *d, int end);
+static Vector2 ComputeLeftTangent(Vector2 *d, int end);
+static double ComputeMaxError(Vector2 *d, int first, int last, BezierCurve bezCurve, double *u, int *splitPoint);
+static double *ChordLengthParameterize(Vector2 *d, int first, int last);
+static BezierCurve GenerateBezier(Vector2 *d, int first, int last, double *uPrime, Vector2 tHat1, Vector2 tHat2);
+static Vector2 V2AddII(Vector2 a, Vector2 b);
+static Vector2 V2ScaleIII(Vector2 v, double s);
+static Vector2 V2SubII(Vector2 a, Vector2 b);
+
+
+#define MAXPOINTS 1000 /* The most points you can have */
+
+/* returns squared length of input vector */
+double V2SquaredLength(Vector2 *a)
+{ return(((*a)[0] * (*a)[0])+((*a)[1] * (*a)[1]));
+}
+
+/* returns length of input vector */
+double V2Length(Vector2 *a)
+{
+ return(sqrt(V2SquaredLength(a)));
+}
+
+Vector2 *V2Scale(Vector2 *v, double newlen)
+{
+ double len = V2Length(v);
+ if (len != 0.0) { (*v)[0] *= newlen/len; (*v)[1] *= newlen/len; }
+ return(v);
+}
+
+/* return the dot product of vectors a and b */
+double V2Dot(Vector2 *a, Vector2 *b)
+{
+ return(((*a)[0]*(*b)[0])+((*a)[1]*(*b)[1]));
+}
+
+/* return the distance between two points */
+double V2DistanceBetween2Points(Vector2 *a, Vector2 *b)
+{
+double dx = (*a)[0] - (*b)[0];
+double dy = (*a)[1] - (*b)[1];
+ return(sqrt((dx*dx)+(dy*dy)));
+}
+
+/* return vector sum c = a+b */
+Vector2 *V2Add(Vector2 *a, Vector2 *b, Vector2 *c)
+{
+ (*c)[0] = (*a)[0]+(*b)[0]; (*c)[1] = (*a)[1]+(*b)[1];
+ return(c);
+}
+
+/* normalizes the input vector and returns it */
+Vector2 *V2Normalize(Vector2 *v)
+{
+double len = V2Length(v);
+ if (len != 0.0) { (*v)[0] /= len; (*v)[1] /= len; }
+ return(v);
+}
+
+/* negates the input vector and returns it */
+Vector2 *V2Negate(Vector2 *v)
+{
+ (*v)[0] = -(*v)[0]; (*v)[1] = -(*v)[1];
+ return(v);
+}
+
+
+/*
+ * GenerateBezier :
+ * Use least-squares method to find Bezier control points for region.
+ *
+ */
+static BezierCurve GenerateBezier(Vector2 *d, int first, int last, double *uPrime, Vector2 tHat1, Vector2 tHat2)
+// Vector2 *d; /* Array of digitized points */
+// int first, last; /* Indices defining region */
+// double *uPrime; /* Parameter values for region */
+// Vector2 tHat1, tHat2; /* Unit tangents at endpoints */
+{
+ int i;
+ Vector2 A[MAXPOINTS][2]; /* Precomputed rhs for eqn */
+ int nPts; /* Number of pts in sub-curve */
+ double C[2][2]; /* Matrix C */
+ double X[2]; /* Matrix X */
+ double det_C0_C1, /* Determinants of matrices */
+ det_C0_X,
+ det_X_C1;
+ double alpha_l, /* Alpha values, left and right */
+ alpha_r;
+ Vector2 tmp; /* Utility variable */
+ BezierCurve bezCurve; /* RETURN bezier curve ctl pts */
+
+ bezCurve = (Vector2 *)malloc(4 * sizeof(Vector2));
+ nPts = last - first + 1;
+
+
+ /* Compute the A's */
+ for (i = 0; i < nPts; i++) {
+ Vector2 v1, v2;
+ v1 = tHat1;
+ v2 = tHat2;
+ V2Scale(&v1, B1(uPrime[i]));
+ V2Scale(&v2, B2(uPrime[i]));
+ A[i][0] = v1;
+ A[i][1] = v2;
+ }
+
+ /* Create the C and X matrices */
+ C[0][0] = 0.0;
+ C[0][1] = 0.0;
+ C[1][0] = 0.0;
+ C[1][1] = 0.0;
+ X[0] = 0.0;
+ X[1] = 0.0;
+
+ for (i = 0; i < nPts; i++) {
+ C[0][0] += V2Dot(&A[i][0], &A[i][0]);
+ C[0][1] += V2Dot(&A[i][0], &A[i][1]);
+/* C[1][0] += V2Dot(&A[i][0], &A[i][1]);*/
+ C[1][0] = C[0][1];
+ C[1][1] += V2Dot(&A[i][1], &A[i][1]);
+
+ tmp = V2SubII(d[first + i],
+ V2AddII(
+ V2ScaleIII(d[first], B0(uPrime[i])),
+ V2AddII(
+ V2ScaleIII(d[first], B1(uPrime[i])),
+ V2AddII(
+ V2ScaleIII(d[last], B2(uPrime[i])),
+ V2ScaleIII(d[last], B3(uPrime[i]))))));
+
+
+ X[0] += V2Dot(&((A[i])[0]), &tmp);
+ X[1] += V2Dot(&((A[i])[1]), &tmp);
+ }
+
+ /* Compute the determinants of C and X */
+ det_C0_C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1];
+ det_C0_X = C[0][0] * X[1] - C[0][1] * X[0];
+ det_X_C1 = X[0] * C[1][1] - X[1] * C[0][1];
+
+ /* Finally, derive alpha values */
+ if (det_C0_C1 == 0.0) {
+ det_C0_C1 = (C[0][0] * C[1][1]) * 10e-12;
+ }
+ alpha_l = det_X_C1 / det_C0_C1;
+ alpha_r = det_C0_X / det_C0_C1;
+
+
+ /* If alpha negative, use the Wu/Barsky heuristic (see text) */
+ /* (if alpha is 0, you get coincident control points that lead to
+ * divide by zero in any subsequent NewtonRaphsonRootFind() call. */
+ if (alpha_l < 1.0e-6 || alpha_r < 1.0e-6) {
+ double dist = V2DistanceBetween2Points(&d[last], &d[first]) /
+ 3.0;
+
+ bezCurve[0] = d[first];
+ bezCurve[3] = d[last];
+ V2Add(&(bezCurve[0]), V2Scale(&(tHat1), dist), &(bezCurve[1]));
+ V2Add(&(bezCurve[3]), V2Scale(&(tHat2), dist), &(bezCurve[2]));
+ return (bezCurve);
+ }
+
+ /* First and last control points of the Bezier curve are */
+ /* positioned exactly at the first and last data points */
+ /* Control points 1 and 2 are positioned an alpha distance out */
+ /* on the tangent vectors, left and right, respectively */
+ bezCurve[0] = d[first];
+ bezCurve[3] = d[last];
+ V2Add(&bezCurve[0], V2Scale(&tHat1, alpha_l), &bezCurve[1]);
+ V2Add(&bezCurve[3], V2Scale(&tHat2, alpha_r), &bezCurve[2]);
+ return (bezCurve);
+}
+
+
+/*
+ * Reparameterize:
+ * Given set of points and their parameterization, try to find
+ * a better parameterization.
+ *
+ */
+static double *Reparameterize(Vector2 *d, int first, int last, double *u, BezierCurve bezCurve)
+// Vector2 *d; /* Array of digitized points */
+// int first, last; /* Indices defining region */
+// double *u; /* Current parameter values */
+// BezierCurve bezCurve; /* Current fitted curve */
+{
+ int nPts = last-first+1;
+ int i;
+ double *uPrime; /* New parameter values */
+
+ uPrime = (double *)malloc(nPts * sizeof(double));
+ for (i = first; i <= last; i++) {
+ uPrime[i-first] = NewtonRaphsonRootFind(bezCurve, d[i], u[i-
+ first]);
+ }
+ return (uPrime);
+}
+
+
+
+/*
+ * NewtonRaphsonRootFind :
+ * Use Newton-Raphson iteration to find better root.
+ */
+static double NewtonRaphsonRootFind(BezierCurve Q, Vector2 P, double u)
+// BezierCurve Q; /* Current fitted curve */
+// Vector2 P; /* Digitized point */
+// double u; /* Parameter value for "P" */
+{
+ double numerator, denominator;
+ Vector2 Q1[3], Q2[2]; /* Q' and Q'' */
+ Vector2 Q_u, Q1_u, Q2_u; /*u evaluated at Q, Q', & Q'' */
+ double uPrime; /* Improved u */
+ int i;
+
+ /* Compute Q(u) */
+ Q_u = BezierII(3, Q, u);
+
+ /* Generate control vertices for Q' */
+ for (i = 0; i <= 2; i++) {
+ Q1[i][0] = (Q[i+1][0] - Q[i][0]) * 3.0;
+ Q1[i][1] = (Q[i+1][1] - Q[i][1]) * 3.0;
+ }
+
+ /* Generate control vertices for Q'' */
+ for (i = 0; i <= 1; i++) {
+ Q2[i][0] = (Q1[i+1][0] - Q1[i][0]) * 2.0;
+ Q2[i][1] = (Q1[i+1][1] - Q1[i][1]) * 2.0;
+ }
+
+ /* Compute Q'(u) and Q''(u) */
+ Q1_u = BezierII(2, Q1, u);
+ Q2_u = BezierII(1, Q2, u);
+
+ /* Compute f(u)/f'(u) */
+ numerator = (Q_u[0] - P[0]) * (Q1_u[0]) + (Q_u[1] - P[1]) * (Q1_u[1]);
+ denominator = (Q1_u[0]) * (Q1_u[0]) + (Q1_u[1]) * (Q1_u[1]) +
+ (Q_u[0] - P[0]) * (Q2_u[0]) + (Q_u[1] - P[1]) * (Q2_u[1]);
+
+ /* u = u - f(u)/f'(u) */
+ if(denominator == 0) // FIXME
+ return u;
+ uPrime = u - (numerator/denominator);
+ return (uPrime);
+}
+
+
+
+/*
+ * Bezier :
+ * Evaluate a Bezier curve at a particular parameter value
+ *
+ */
+static Vector2 BezierII(int degree, Vector2 *V, double t)
+// int degree; /* The degree of the bezier curve */
+// Vector2 *V; /* Array of control points */
+// double t; /* Parametric value to find point for */
+{
+ int i, j;
+ Vector2 Q; /* Point on curve at parameter t */
+ Vector2 *Vtemp; /* Local copy of control points */
+
+ /* Copy array */
+ Vtemp = (Vector2 *)malloc((unsigned)((degree+1)
+ * sizeof (Vector2)));
+ for (i = 0; i <= degree; i++) {
+ Vtemp[i] = V[i];
+ }
+
+ /* Triangle computation */
+ for (i = 1; i <= degree; i++) {
+ for (j = 0; j <= degree-i; j++) {
+ Vtemp[j][0] = (1.0 - t) * Vtemp[j][0] + t * Vtemp[j+1][0];
+ Vtemp[j][1] = (1.0 - t) * Vtemp[j][1] + t * Vtemp[j+1][1];
+ }
+ }
+
+ Q = Vtemp[0];
+ free((void *)Vtemp);
+ return Q;
+}
+
+
+/*
+ * B0, B1, B2, B3 :
+ * Bezier multipliers
+ */
+static double B0(double u)
+{
+ double tmp = 1.0 - u;
+ return (tmp * tmp * tmp);
+}
+
+
+static double B1(double u)
+{
+ double tmp = 1.0 - u;
+ return (3 * u * (tmp * tmp));
+}
+
+static double B2(double u)
+{
+ double tmp = 1.0 - u;
+ return (3 * u * u * tmp);
+}
+
+static double B3(double u)
+{
+ return (u * u * u);
+}
+
+
+
+/*
+ * ComputeLeftTangent, ComputeRightTangent, ComputeCenterTangent :
+ *Approximate unit tangents at endpoints and "center" of digitized curve
+ */
+static Vector2 ComputeLeftTangent(Vector2 *d, int end)
+// Vector2 *d; /* Digitized points*/
+// int end; /* Index to "left" end of region */
+{
+ Vector2 tHat1;
+ tHat1 = V2SubII(d[end+1], d[end]);
+ tHat1 = *V2Normalize(&tHat1);
+ return tHat1;
+}
+
+static Vector2 ComputeRightTangent(Vector2 *d, int end)
+// Vector2 *d; /* Digitized points */
+// int end; /* Index to "right" end of region */
+{
+ Vector2 tHat2;
+ tHat2 = V2SubII(d[end-1], d[end]);
+ tHat2 = *V2Normalize(&tHat2);
+ return tHat2;
+}
+
+static Vector2 ComputeCenterTangent(Vector2 *d, int center)
+// Vector2 *d; /* Digitized points */
+// int center; /* Index to point inside region */
+{
+ Vector2 V1, V2, tHatCenter;
+
+ V1 = V2SubII(d[center-1], d[center]);
+ V2 = V2SubII(d[center], d[center+1]);
+ tHatCenter[0] = (V1[0] + V2[0])/2.0;
+ tHatCenter[1] = (V1[1] + V2[1])/2.0;
+ tHatCenter = *V2Normalize(&tHatCenter);
+ return tHatCenter;
+}
+
+
+/*
+ * ChordLengthParameterize :
+ * Assign parameter values to digitized points
+ * using relative distances between points.
+ */
+static double *ChordLengthParameterize(Vector2 *d, int first, int last)
+// Vector2 *d; /* Array of digitized points */
+// int first, last; /* Indices defining region */
+{
+ int i;
+ double *u; /* Parameterization */
+
+ u = (double *)malloc((unsigned)(last-first+1) * sizeof(double));
+
+ u[0] = 0.0;
+ for (i = first+1; i <= last; i++) {
+ u[i-first] = u[i-first-1] +
+ V2DistanceBetween2Points(&d[i], &d[i-1]);
+ }
+
+ for (i = first + 1; i <= last; i++) {
+ u[i-first] = u[i-first] / u[last-first];
+ }
+
+ return(u);
+}
+
+
+
+
+/*
+ * ComputeMaxError :
+ * Find the maximum squared distance of digitized points
+ * to fitted curve.
+*/
+static double ComputeMaxError(Vector2 *d, int first, int last, BezierCurve bezCurve, double *u, int *splitPoint)
+// Vector2 *d; /* Array of digitized points */
+// int first, last; /* Indices defining region */
+// BezierCurve bezCurve; /* Fitted Bezier curve */
+// double *u; /* Parameterization of points */
+// int *splitPoint; /* Point of maximum error */
+{
+ int i;
+ double maxDist; /* Maximum error */
+ double dist; /* Current error */
+ Vector2 P; /* Point on curve */
+ Vector2 v; /* Vector from point to curve */
+
+ *splitPoint = (last - first + 1)/2;
+ maxDist = 0.0;
+ for (i = first + 1; i < last; i++) {
+ P = BezierII(3, bezCurve, u[i-first]);
+ v = V2SubII(P, d[i]);
+ dist = V2SquaredLength(&v);
+ if (dist >= maxDist) {
+ maxDist = dist;
+ *splitPoint = i;
+ }
+ }
+ return (maxDist);
+}
+static Vector2 V2AddII(Vector2 a, Vector2 b)
+{
+ Vector2 c;
+ c[0] = a[0] + b[0]; c[1] = a[1] + b[1];
+ return (c);
+}
+static Vector2 V2ScaleIII(Vector2 v, double s)
+{
+ Vector2 result;
+ result[0] = v[0] * s; result[1] = v[1] * s;
+ return (result);
+}
+
+static Vector2 V2SubII(Vector2 a, Vector2 b)
+{
+ Vector2 c;
+ c[0] = a[0] - b[0]; c[1] = a[1] - b[1];
+ return (c);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+
+//------------------------- WRAPPER -----------------------------//
+
+FitCurveWrapper::FitCurveWrapper()
+{
+}
+
+FitCurveWrapper::~FitCurveWrapper()
+{
+ _vertices.clear();
+}
+
+void FitCurveWrapper::DrawBezierCurve(int n, Vector2 *curve )
+{
+ for(int i=0; i<n+1; ++i)
+ _vertices.push_back(curve[i]);
+}
+
+void FitCurveWrapper::FitCurve(vector<Vec2d>& data, vector<Vec2d>& oCurve, double error)
+{
+ int size = data.size();
+ Vector2 *d = new Vector2[size];
+ for(int i=0; i<size; ++i)
+ {
+ d[i][0] = data[i][0];
+ d[i][1] = data[i][1];
+ }
+
+ FitCurve(d,size,error);
+
+ // copy results
+ for(vector<Vector2>::iterator v=_vertices.begin(), vend=_vertices.end();
+ v!=vend;
+ ++v)
+ {
+ oCurve.push_back(Vec2d(v->x(), v->y())) ;
+ }
+
+}
+
+void FitCurveWrapper::FitCurve(Vector2 *d, int nPts, double error)
+{
+ Vector2 tHat1, tHat2; /* Unit tangent vectors at endpoints */
+
+ tHat1 = ComputeLeftTangent(d, 0);
+ tHat2 = ComputeRightTangent(d, nPts - 1);
+ FitCubic(d, 0, nPts - 1, tHat1, tHat2, error);
+}
+
+void FitCurveWrapper::FitCubic(Vector2 *d, int first, int last, Vector2 tHat1, Vector2 tHat2, double error)
+{
+ BezierCurve bezCurve; /*Control points of fitted Bezier curve*/
+ double *u; /* Parameter values for point */
+ double *uPrime; /* Improved parameter values */
+ double maxError; /* Maximum fitting error */
+ int splitPoint; /* Point to split point set at */
+ int nPts; /* Number of points in subset */
+ double iterationError; /*Error below which you try iterating */
+ int maxIterations = 4; /* Max times to try iterating */
+ Vector2 tHatCenter; /* Unit tangent vector at splitPoint */
+ int i;
+
+ iterationError = error * error;
+ nPts = last - first + 1;
+
+ /* Use heuristic if region only has two points in it */
+ if (nPts == 2) {
+ double dist = V2DistanceBetween2Points(&d[last], &d[first]) / 3.0;
+
+ bezCurve = (Vector2 *)malloc(4 * sizeof(Vector2));
+ bezCurve[0] = d[first];
+ bezCurve[3] = d[last];
+ V2Add(&bezCurve[0], V2Scale(&tHat1, dist), &bezCurve[1]);
+ V2Add(&bezCurve[3], V2Scale(&tHat2, dist), &bezCurve[2]);
+ DrawBezierCurve(3, bezCurve);
+ free((void *)bezCurve);
+ return;
+ }
+
+ /* Parameterize points, and attempt to fit curve */
+ u = ChordLengthParameterize(d, first, last);
+ bezCurve = GenerateBezier(d, first, last, u, tHat1, tHat2);
+
+ /* Find max deviation of points to fitted curve */
+ maxError = ComputeMaxError(d, first, last, bezCurve, u, &splitPoint);
+ if (maxError < error) {
+ DrawBezierCurve(3, bezCurve);
+ free((void *)u);
+ free((void *)bezCurve);
+ return;
+ }
+
+
+ /* If error not too large, try some reparameterization */
+ /* and iteration */
+ if (maxError < iterationError) {
+ for (i = 0; i < maxIterations; i++) {
+ uPrime = Reparameterize(d, first, last, u, bezCurve);
+ bezCurve = GenerateBezier(d, first, last, uPrime, tHat1, tHat2);
+ maxError = ComputeMaxError(d, first, last,
+ bezCurve, uPrime, &splitPoint);
+ if (maxError < error) {
+ DrawBezierCurve(3, bezCurve);
+ free((void *)u);
+ free((void *)bezCurve);
+ return;
+ }
+ free((void *)u);
+ u = uPrime;
+ }
+ }
+
+ /* Fitting failed -- split at max error point and fit recursively */
+ free((void *)u);
+ free((void *)bezCurve);
+ tHatCenter = ComputeCenterTangent(d, splitPoint);
+ FitCubic(d, first, splitPoint, tHat1, tHatCenter, error);
+ V2Negate(&tHatCenter);
+ FitCubic(d, splitPoint, last, tHatCenter, tHat2, error);
+
+}
+
diff --git a/source/blender/freestyle/intern/geometry/FitCurve.h b/source/blender/freestyle/intern/geometry/FitCurve.h
new file mode 100755
index 00000000000..ed7cbe34780
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/FitCurve.h
@@ -0,0 +1,101 @@
+//
+// Filename : FitCurve.h
+// Author(s) : Stephane Grabli
+// Purpose : An Algorithm for Automatically Fitting Digitized Curves
+// by Philip J. Schneider
+// from "Graphics Gems", Academic Press, 1990
+// Date of creation : 06/06/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef FITCURVE_H
+# define FITCURVE_H
+
+#include <vector>
+#include "../system/FreestyleConfig.h"
+#include "Geom.h"
+
+using namespace Geometry;
+
+typedef struct Point2Struct { /* 2d point */
+ double coordinates[2];
+ Point2Struct() {coordinates[0]=0;coordinates[1]=0;}
+ inline double operator[](const int i) const
+ {
+ return coordinates[i];
+ }
+ inline double& operator[](const int i)
+ {
+ return coordinates[i];
+ }
+ inline double x() const {return coordinates[0];}
+ inline double y() const {return coordinates[1];}
+ } Point2;
+
+typedef Point2 Vector2;
+
+
+
+class LIB_GEOMETRY_EXPORT FitCurveWrapper
+{
+private:
+ std::vector<Vector2> _vertices;
+
+public:
+ FitCurveWrapper();
+ ~FitCurveWrapper();
+
+ /*! Fits a set of 2D data points to a set of Bezier Curve segments
+ * data
+ * Input data points
+ * oCurve
+ * Control points of the sets of bezier curve segments.
+ * Each segment is made of 4 points (polynomial degree of curve = 3)
+ * error
+ * max error tolerance between resulting curve and input data
+ */
+ void FitCurve(std::vector<Vec2d>& data, std::vector<Vec2d>& oCurve, double error);
+protected:
+ /* Vec2d *d; Array of digitized points */
+ /* int nPts; Number of digitized points */
+ /* double error; User-defined error squared */
+ void FitCurve(Vector2 *d, int nPts, double error);
+
+ /*! Draws a Bezier curve segment
+ * n
+ * degree of curve (=3)
+ * curve
+ * bezier segments control points
+ */
+ void DrawBezierCurve(int n, Vector2 *curve);
+
+ /* Vec2d *d; Array of digitized points */
+ /* int first, last; Indices of first and last pts in region */
+ /* Vec2d tHat1, tHat2; Unit tangent vectors at endpoints */
+ /* double error; User-defined error squared */
+ void FitCubic(Vector2 *d, int first, int last, Vector2 tHat1, Vector2 tHat2, double error);
+
+};
+
+#endif // FITCURVE_H
diff --git a/source/blender/freestyle/intern/geometry/Geom.h b/source/blender/freestyle/intern/geometry/Geom.h
new file mode 100755
index 00000000000..ac94213fe98
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/Geom.h
@@ -0,0 +1,78 @@
+//
+// Filename : Geom.h
+// Author(s) : Sylvain Paris
+// Emmanuel Turquin
+// Stephane Grabli
+// Purpose : Vectors and Matrices (useful type definitions)
+// Date of creation : 20/05/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GEOM_H
+# define GEOM_H
+
+# include "VecMat.h"
+# include "../system/Precision.h"
+
+namespace Geometry {
+
+ typedef VecMat::Vec2<unsigned> Vec2u;
+ typedef VecMat::Vec2<int> Vec2i;
+ typedef VecMat::Vec2<float> Vec2f;
+ typedef VecMat::Vec2<double> Vec2d;
+ typedef VecMat::Vec2<real> Vec2r;
+
+ typedef VecMat::Vec3<unsigned> Vec3u;
+ typedef VecMat::Vec3<int> Vec3i;
+ typedef VecMat::Vec3<float> Vec3f;
+ typedef VecMat::Vec3<double> Vec3d;
+ typedef VecMat::Vec3<real> Vec3r;
+
+ typedef VecMat::HVec3<unsigned> HVec3u;
+ typedef VecMat::HVec3<int> HVec3i;
+ typedef VecMat::HVec3<float> HVec3f;
+ typedef VecMat::HVec3<double> HVec3d;
+ typedef VecMat::HVec3<real> HVec3r;
+
+ typedef VecMat::SquareMatrix<unsigned, 2> Matrix22u;
+ typedef VecMat::SquareMatrix<int, 2> Matrix22i;
+ typedef VecMat::SquareMatrix<float, 2> Matrix22f;
+ typedef VecMat::SquareMatrix<double, 2> Matrix22d;
+ typedef VecMat::SquareMatrix<real, 2> Matrix22r;
+
+ typedef VecMat::SquareMatrix<unsigned, 3> Matrix33u;
+ typedef VecMat::SquareMatrix<int, 3> Matrix33i;
+ typedef VecMat::SquareMatrix<float, 3> Matrix33f;
+ typedef VecMat::SquareMatrix<double, 3> Matrix33d;
+ typedef VecMat::SquareMatrix<real, 3> Matrix33r;
+
+ typedef VecMat::SquareMatrix<unsigned, 4> Matrix44u;
+ typedef VecMat::SquareMatrix<int, 4> Matrix44i;
+ typedef VecMat::SquareMatrix<float, 4> Matrix44f;
+ typedef VecMat::SquareMatrix<double, 4> Matrix44d;
+ typedef VecMat::SquareMatrix<real, 4> Matrix44r;
+
+} // end of namespace Geometry
+
+#endif // GEOM_H
diff --git a/source/blender/freestyle/intern/geometry/GeomCleaner.cpp b/source/blender/freestyle/intern/geometry/GeomCleaner.cpp
new file mode 100755
index 00000000000..c148c521a46
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/GeomCleaner.cpp
@@ -0,0 +1,240 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+//#if defined(__GNUC__) && (__GNUC__ >= 3)
+//// hash_map is not part of the C++ standard anymore;
+//// hash_map.h has been kept though for backward compatibility
+//# include <hash_map.h>
+//#else
+//# include <hash_map>
+//#endif
+
+#include <stdio.h>
+#include <list>
+#include <map>
+#include "../system/TimeUtils.h"
+#include "GeomCleaner.h"
+
+using namespace std;
+
+
+void GeomCleaner::SortIndexedVertexArray( const float *iVertices, unsigned iVSize,
+ const unsigned *iIndices, unsigned iISize,
+ real **oVertices,
+ unsigned **oIndices)
+{
+ // First, we build a list of IndexVertex:
+ list<IndexedVertex> indexedVertices;
+ unsigned i;
+ for(i=0; i<iVSize; i+= 3)
+ {
+ indexedVertices.push_back(IndexedVertex(Vec3r(iVertices[i], iVertices[i+1], iVertices[i+2]), i/3));
+ }
+
+ // q-sort
+ indexedVertices.sort();
+
+ // build the indices mapping array:
+ unsigned *mapIndices = new unsigned[iVSize/3];
+ *oVertices = new real[iVSize];
+ list<IndexedVertex>::iterator iv;
+ unsigned newIndex = 0;
+ unsigned vIndex = 0;
+ for(iv=indexedVertices.begin(); iv!=indexedVertices.end(); iv++)
+ {
+ // Build the final results:
+ (*oVertices)[vIndex] = iv->x();
+ (*oVertices)[vIndex+1] = iv->y();
+ (*oVertices)[vIndex+2] = iv->z();
+
+ mapIndices[iv->index()] = newIndex;
+ newIndex++;
+ vIndex+=3;
+ }
+
+
+ // Build the final index array:
+ *oIndices = new unsigned[iISize];
+ for(i=0; i<iISize; i++)
+ {
+ (*oIndices)[i] = 3*mapIndices[iIndices[i]/3];
+ }
+
+ delete [] mapIndices;
+}
+
+void GeomCleaner::CompressIndexedVertexArray(const real *iVertices, unsigned iVSize,
+ const unsigned *iIndices, unsigned iISize,
+ real **oVertices, unsigned *oVSize,
+ unsigned **oIndices)
+{
+ // First, we build a list of IndexVertex:
+ vector<Vec3r> vertices;
+ unsigned i;
+ for(i=0; i<iVSize; i+= 3)
+ {
+ vertices.push_back(Vec3r(iVertices[i], iVertices[i+1], iVertices[i+2]));
+ }
+
+ unsigned *mapVertex = new unsigned[iVSize];
+ vector<Vec3r>::iterator v = vertices.begin();
+
+ vector<Vec3r> compressedVertices;
+ Vec3r previous = *v;
+ mapVertex[0] = 0;
+ compressedVertices.push_back(vertices.front());
+
+ v++;
+ Vec3r current;
+ i=1;
+ for(; v!=vertices.end(); v++)
+ {
+ current = *v;
+ if(current == previous)
+ mapVertex[i] = compressedVertices.size()-1;
+ else
+ {
+ compressedVertices.push_back(current);
+ mapVertex[i] = compressedVertices.size()-1;
+ }
+ previous = current;
+ i++;
+ }
+
+ // Builds the resulting vertex array:
+ *oVSize = 3*compressedVertices.size();
+ *oVertices = new real [*oVSize];
+ i=0;
+ for(v=compressedVertices.begin(); v!=compressedVertices.end(); v++)
+ {
+ (*oVertices)[i] = (*v)[0];
+ (*oVertices)[i+1] = (*v)[1];
+ (*oVertices)[i+2] = (*v)[2];
+ i += 3;
+ }
+
+ // Map the index array:
+ *oIndices = new unsigned[iISize];
+ for(i=0; i<iISize; i++)
+ {
+ (*oIndices)[i] = 3*mapVertex[iIndices[i]/3];
+ }
+
+ delete [] mapVertex;
+}
+
+void GeomCleaner::SortAndCompressIndexedVertexArray(const float *iVertices, unsigned iVSize,
+ const unsigned *iIndices, unsigned iISize,
+ real **oVertices, unsigned *oVSize,
+ unsigned **oIndices)
+{
+
+ // tmp arrays used to store the sorted data:
+ real *tmpVertices;
+ unsigned *tmpIndices;
+
+ Chronometer chrono;
+ // Sort data
+ chrono.start();
+ GeomCleaner::SortIndexedVertexArray(iVertices, iVSize,
+ iIndices, iISize,
+ &tmpVertices, &tmpIndices
+ );
+ printf("Sorting: %lf\n", chrono.stop());
+
+ // compress data
+ chrono.start();
+ GeomCleaner::CompressIndexedVertexArray(tmpVertices, iVSize,
+ tmpIndices, iISize,
+ oVertices, oVSize,
+ oIndices);
+ printf("Merging: %lf\n", chrono.stop());
+
+ // deallocates memory:
+ delete [] tmpVertices;
+ delete [] tmpIndices;
+}
+
+/*! Defines a hash table used for searching the Cells */
+struct GeomCleanerHasher{
+#define _MUL 950706376UL
+#define _MOD 2147483647UL
+ inline size_t operator() (const Vec3r& p) const {
+ size_t res = ((unsigned long) (p[0] * _MUL)) % _MOD;
+ res = ((res + (unsigned long) (p[1]) * _MUL)) % _MOD;
+ return ((res +(unsigned long) (p[2]) * _MUL)) % _MOD;
+ }
+};
+
+void GeomCleaner::CleanIndexedVertexArray(const float *iVertices, unsigned iVSize,
+ const unsigned *iIndices, unsigned iISize,
+ real **oVertices, unsigned *oVSize,
+ unsigned **oIndices)
+{
+ typedef map<Vec3r, unsigned> cleanHashTable;
+ vector<Vec3r> vertices;
+ unsigned i;
+ for(i=0; i<iVSize; i+= 3)
+ vertices.push_back(Vec3r(iVertices[i], iVertices[i+1], iVertices[i+2]));
+
+ cleanHashTable ht;
+ vector<unsigned> newIndices;
+ vector<Vec3r> newVertices;
+
+ // elimination of needless points
+ unsigned currentIndex = 0;
+ vector<Vec3r>::const_iterator v = vertices.begin();
+ vector<Vec3r>::const_iterator end = vertices.end();
+ cleanHashTable::const_iterator found;
+ for(; v!=end; v++)
+ {
+ found = ht.find(*v);
+ if(found != ht.end())
+ {
+ // The vertex is already in the new array.
+ newIndices.push_back((*found).second);
+ }
+ else
+ {
+ newVertices.push_back(*v);
+ newIndices.push_back(currentIndex);
+ ht[*v] = currentIndex;
+ currentIndex++;
+ }
+ }
+
+ // creation of oVertices array:
+ *oVSize = 3*newVertices.size();
+ *oVertices = new real[*oVSize];
+ currentIndex = 0;
+ end = newVertices.end();
+ for(v=newVertices.begin(); v!=end ; v++)
+ {
+ (*oVertices)[currentIndex++] = (*v)[0];
+ (*oVertices)[currentIndex++] = (*v)[1];
+ (*oVertices)[currentIndex++] = (*v)[2];
+ }
+
+ // map new indices:
+ *oIndices = new unsigned[iISize];
+ for(i=0; i<iISize; i++)
+ (*oIndices)[i] = 3*newIndices[iIndices[i]/3];
+}
diff --git a/source/blender/freestyle/intern/geometry/GeomCleaner.h b/source/blender/freestyle/intern/geometry/GeomCleaner.h
new file mode 100755
index 00000000000..d78d90ccb4a
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/GeomCleaner.h
@@ -0,0 +1,219 @@
+//
+// Filename : GeomCleaner.h
+// Author : Stephane Grabli
+// Purpose : Class to define a cleaner of geometry providing
+// a set of useful tools
+// Date of creation : 04/03/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GEOMCLEANER_H
+# define GEOMCLEANER_H
+
+# include "../system/FreestyleConfig.h"
+# include "Geom.h"
+
+using namespace Geometry;
+
+class LIB_GEOMETRY_EXPORT GeomCleaner
+{
+public:
+
+ inline GeomCleaner() {}
+ inline ~GeomCleaner() {}
+
+ /*! Sorts an array of Indexed vertices
+ * iVertices
+ * Array of vertices to sort. It is organized as a
+ * float series of vertex coordinates: XYZXYZXYZ...
+ * iVSize
+ * The size of iVertices array.
+ * iIndices
+ * The array containing the vertex indices (used to refer
+ * to the vertex coordinates in an indexed face). Each
+ * element is an unsignedeger multiple of 3.
+ * iISize
+ * The size of iIndices array
+ * oVertices
+ * Output of sorted vertices. A vertex v1 precedes another one
+ * v2 in this array if v1.x<v2.x, or v1.x=v2.x && v1.y < v2.y
+ * or v1.x=v2.y && v1.y=v2.y && v1.z < v2.z.
+ * The array is organized as a 3-float serie giving
+ * the vertices coordinates: XYZXYZXYZ...
+ * oIndices
+ * Output corresponding to the iIndices array but
+ * reorganized in order to match the sorted vertex array.
+ */
+
+ static void SortIndexedVertexArray(const float *iVertices, unsigned iVSize,
+ const unsigned *iIndices, unsigned iISize,
+ real **oVertices,
+ unsigned **oIndices);
+
+ /*! Compress a SORTED indexed vertex array by eliminating
+ * multiple appearing occurences of a single vertex.
+ * iVertices
+ * The SORTED vertex array to compress. It is organized as a
+ * float series of vertex coordinates: XYZXYZXYZ...
+ * iVSize
+ * The size of iVertices array.
+ * iIndices
+ * The array containing the vertex indices (used to refer
+ * to the vertex coordinates in an indexed face). Each
+ * element is an unsignedeger multiple of 3.
+ * iISize
+ * The size of iIndices array
+ * oVertices
+ * The vertex array, result of the compression.
+ * The array is organized as a 3-float serie giving
+ * the vertices coordinates: XYZXYZXYZ...
+ * oVSize
+ * The size of oVertices.
+ * oIndices
+ * The indices array, reorganized to match the compressed
+ * oVertices array.
+ */
+
+ static void CompressIndexedVertexArray(const real *iVertices, unsigned iVSize,
+ const unsigned *iIndices, unsigned iISize,
+ real **oVertices, unsigned *oVSize,
+ unsigned **oIndices);
+
+ /*! Sorts and compress an array of indexed vertices.
+ * iVertices
+ * The vertex array to sort then compress. It is organized as a
+ * float series of vertex coordinates: XYZXYZXYZ...
+ * iVSize
+ * The size of iVertices array.
+ * iIndices
+ * The array containing the vertex indices (used to refer
+ * to the vertex coordinates in an indexed face). Each
+ * element is an unsignedeger multiple of 3.
+ * iISize
+ * The size of iIndices array
+ * oVertices
+ * The vertex array, result of the sorting-compression.
+ * The array is organized as a 3-float serie giving
+ * the vertices coordinates: XYZXYZXYZ...
+ * oVSize
+ * The size of oVertices.
+ * oIndices
+ * The indices array, reorganized to match the sorted and compressed
+ * oVertices array.
+ */
+
+ static void SortAndCompressIndexedVertexArray(const float *iVertices, unsigned iVSize,
+ const unsigned *iIndices, unsigned iISize,
+ real **oVertices, unsigned *oVSize,
+ unsigned **oIndices);
+
+ /*! Cleans an indexed vertex array. (Identical to
+ * SortAndCompress except that we use here a hash
+ * table to create the new array.)
+ * iVertices
+ * The vertex array to sort then compress. It is organized as a
+ * float series of vertex coordinates: XYZXYZXYZ...
+ * iVSize
+ * The size of iVertices array.
+ * iIndices
+ * The array containing the vertex indices (used to refer
+ * to the vertex coordinates in an indexed face). Each
+ * element is an unsignedeger multiple of 3.
+ * iISize
+ * The size of iIndices array
+ * oVertices
+ * The vertex array, result of the sorting-compression.
+ * The array is organized as a 3-float serie giving
+ * the vertices coordinates: XYZXYZXYZ...
+ * oVSize
+ * The size of oVertices.
+ * oIndices
+ * The indices array, reorganized to match the sorted and compressed
+ * oVertices array.
+ */
+
+ static void CleanIndexedVertexArray(const float *iVertices, unsigned iVSize,
+ const unsigned *iIndices, unsigned iISize,
+ real **oVertices, unsigned *oVSize,
+ unsigned **oIndices);
+};
+
+
+/*! Binary operators */
+//inline bool operator<(const IndexedVertex& iv1, const IndexedVertex& iv2);
+
+/*! Class Indexed Vertex. Used to represent
+ * an indexed vertex by storing the vertex
+ * coordinates as well as its index
+ */
+class IndexedVertex
+{
+public:
+
+private:
+ Vec3r _Vector;
+ unsigned _index;
+public:
+ inline IndexedVertex() {}
+ inline IndexedVertex(Vec3r iVector, unsigned iIndex)
+ {
+ _Vector = iVector;
+ _index = iIndex;
+ }
+ /*! accessors */
+ inline const Vec3r& vector() const {return _Vector;}
+ inline unsigned index() {return _index;}
+ inline real x() {return _Vector[0];}
+ inline real y() {return _Vector[1];}
+ inline real z() {return _Vector[2];}
+
+ /*! modifiers */
+ inline void SetVector(const Vec3r& iVector) {_Vector = iVector;}
+ inline void SetIndex(unsigned iIndex) {_index = iIndex;}
+
+ /*! operators */
+ IndexedVertex& operator=(const IndexedVertex& iv)
+ {
+ _Vector = iv._Vector;
+ _index = iv._index;
+ return *this;
+ }
+ inline real operator[](const unsigned i) {return _Vector[i];}
+ //friend inline bool operator<(const IndexedVertex& iv1, const IndexedVertex& iv2);
+ inline bool operator<(const IndexedVertex& v) const
+ {
+ return (_Vector < v._Vector);
+ }
+ inline bool operator==(const IndexedVertex& v)
+ {
+ return (_Vector == v._Vector);
+ }
+};
+
+//bool operator<(const IndexedVertex& iv1, const IndexedVertex& iv2)
+//{
+// return iv1.operator<(iv2);
+//}
+
+#endif // GEOMCLEANER_H
diff --git a/source/blender/freestyle/intern/geometry/GeomUtils.cpp b/source/blender/freestyle/intern/geometry/GeomUtils.cpp
new file mode 100755
index 00000000000..fd36e81ca77
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/GeomUtils.cpp
@@ -0,0 +1,742 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "GeomUtils.h"
+
+namespace GeomUtils {
+
+ // This internal procedure is defined below.
+ bool intersect2dSegPoly(Vec2r* seg,
+ Vec2r* poly,
+ unsigned n);
+
+ bool intersect2dSeg2dArea(const Vec2r& min,
+ const Vec2r& max,
+ const Vec2r& A,
+ const Vec2r& B) {
+ Vec2r seg[2];
+ seg[0] = A;
+ seg[1] = B;
+
+ Vec2r poly[5];
+ poly[0][0] = min[0];
+ poly[0][1] = min[1];
+ poly[1][0] = max[0];
+ poly[1][1] = min[1];
+ poly[2][0] = max[0];
+ poly[2][1] = max[1];
+ poly[3][0] = min[0];
+ poly[3][1] = max[1];
+ poly[4][0] = min[0];
+ poly[4][1] = min[1];
+
+ return intersect2dSegPoly(seg, poly, 4);
+ }
+
+ bool include2dSeg2dArea(const Vec2r& min,
+ const Vec2r& max,
+ const Vec2r& A,
+ const Vec2r& B) {
+ if((((max[0] > A[0])&&(A[0] > min[0]))&&((max[0] > B[0])&&(B[0] > min[0])))
+ && (((max[1] > A[1])&&(A[1] > min[1]))&&((max[1] > B[1])&&(B[1] > min[1]))))
+ return true;
+ return false;
+ }
+
+ intersection_test intersect2dSeg2dSeg(const Vec2r& p1,
+ const Vec2r& p2,
+ const Vec2r& p3,
+ const Vec2r& p4,
+ Vec2r& res) {
+ real a1, a2, b1, b2, c1, c2; // Coefficients of line eqns
+ real r1, r2, r3, r4; // 'Sign' values
+ real denom, num; // Intermediate values
+
+ // Compute a1, b1, c1, where line joining points p1 and p2
+ // is "a1 x + b1 y + c1 = 0".
+ a1 = p2[1] - p1[1];
+ b1 = p1[0] - p2[0];
+ c1 = p2[0] * p1[1] - p1[0] * p2[1];
+
+ // Compute r3 and r4.
+ r3 = a1 * p3[0] + b1 * p3[1] + c1;
+ r4 = a1 * p4[0] + b1 * p4[1] + c1;
+
+ // Check signs of r3 and r4. If both point 3 and point 4 lie on
+ // same side of line 1, the line segments do not intersect.
+ if ( r3 != 0 && r4 != 0 && r3 * r4 > 0.0)
+ return (DONT_INTERSECT);
+
+ // Compute a2, b2, c2
+ a2 = p4[1] - p3[1];
+ b2 = p3[0] - p4[0];
+ c2 = p4[0] * p3[1] - p3[0] * p4[1];
+
+ // Compute r1 and r2
+ r1 = a2 * p1[0] + b2 * p1[1] + c2;
+ r2 = a2 * p2[0] + b2 * p2[1] + c2;
+
+ // Check signs of r1 and r2. If both point 1 and point 2 lie
+ // on same side of second line segment, the line segments do
+ // not intersect.
+ if ( r1 != 0 && r2 != 0 && r1 * r2 > 0.0)
+ return (DONT_INTERSECT);
+
+ // Line segments intersect: compute intersection point.
+ denom = a1 * b2 - a2 * b1;
+ if (fabs(denom) < M_EPSILON)
+ return (COLINEAR);
+
+ num = b1 * c2 - b2 * c1;
+ res[0] = num / denom;
+
+ num = a2 * c1 - a1 * c2;
+ res[1] = num / denom;
+
+ return (DO_INTERSECT);
+ }
+
+ intersection_test intersect2dLine2dLine(const Vec2r& p1,
+ const Vec2r& p2,
+ const Vec2r& p3,
+ const Vec2r& p4,
+ Vec2r& res) {
+ real a1, a2, b1, b2, c1, c2; // Coefficients of line eqns
+ real denom, num; // Intermediate values
+
+ // Compute a1, b1, c1, where line joining points p1 and p2
+ // is "a1 x + b1 y + c1 = 0".
+ a1 = p2[1] - p1[1];
+ b1 = p1[0] - p2[0];
+ c1 = p2[0] * p1[1] - p1[0] * p2[1];
+
+ // Compute a2, b2, c2
+ a2 = p4[1] - p3[1];
+ b2 = p3[0] - p4[0];
+ c2 = p4[0] * p3[1] - p3[0] * p4[1];
+
+ // Line segments intersect: compute intersection point.
+ denom = a1 * b2 - a2 * b1;
+ if (fabs(denom) < M_EPSILON)
+ return (COLINEAR);
+
+ num = b1 * c2 - b2 * c1;
+ res[0] = num / denom;
+
+ num = a2 * c1 - a1 * c2;
+ res[1] = num / denom;
+
+ return (DO_INTERSECT);
+ }
+
+ intersection_test intersect2dSeg2dSegParametric(const Vec2r& p1,
+ const Vec2r& p2,
+ const Vec2r& p3,
+ const Vec2r& p4,
+ real& t,
+ real& u) {
+ real a1, a2, b1, b2, c1, c2; // Coefficients of line eqns
+ real r1, r2, r3, r4; // 'Sign' values
+ real denom, num; // Intermediate values
+
+ // Compute a1, b1, c1, where line joining points p1 and p2
+ // is "a1 x + b1 y + c1 = 0".
+ a1 = p2[1] - p1[1];
+ b1 = p1[0] - p2[0];
+ c1 = p2[0] * p1[1] - p1[0] * p2[1];
+
+ // Compute r3 and r4.
+ r3 = a1 * p3[0] + b1 * p3[1] + c1;
+ r4 = a1 * p4[0] + b1 * p4[1] + c1;
+
+ // Check signs of r3 and r4. If both point 3 and point 4 lie on
+ // same side of line 1, the line segments do not intersect.
+ if ( r3 != 0 && r4 != 0 && r3 * r4 > 0.0)
+ return (DONT_INTERSECT);
+
+ // Compute a2, b2, c2
+ a2 = p4[1] - p3[1];
+ b2 = p3[0] - p4[0];
+ c2 = p4[0] * p3[1] - p3[0] * p4[1];
+
+ // Compute r1 and r2
+ r1 = a2 * p1[0] + b2 * p1[1] + c2;
+ r2 = a2 * p2[0] + b2 * p2[1] + c2;
+
+ // Check signs of r1 and r2. If both point 1 and point 2 lie
+ // on same side of second line segment, the line segments do
+ // not intersect.
+ if ( r1 != 0 && r2 != 0 && r1 * r2 > 0.0)
+ return (DONT_INTERSECT);
+
+ // Line segments intersect: compute intersection point.
+ denom = a1 * b2 - a2 * b1;
+ if (fabs(denom) < M_EPSILON)
+ return (COLINEAR);
+
+ real d1, d2, e1;
+
+ d1 = p1[1] - p3[1];
+ d2 = p2[1] - p1[1];
+ e1 = p1[0] - p3[0];
+
+ num = -b2 * d1 - a2 * e1;
+ t = num / denom;
+
+ num = -b1 * d1 - a1 * e1;
+ u = num / denom;
+
+ return (DO_INTERSECT);
+ }
+
+ // AABB-triangle overlap test code
+ // by Tomas Akenine-Möller
+ // Function: int triBoxOverlap(real boxcenter[3],
+ // real boxhalfsize[3],real triverts[3][3]);
+ // History:
+ // 2001-03-05: released the code in its first version
+ // 2001-06-18: changed the order of the tests, faster
+ //
+ // Acknowledgement: Many thanks to Pierre Terdiman for
+ // suggestions and discussions on how to optimize code.
+ // Thanks to David Hunt for finding a ">="-bug!
+
+#define X 0
+#define Y 1
+#define Z 2
+
+#define FINDMINMAX(x0, x1, x2, min, max) \
+ min = max = x0; \
+ if(x1<min) min=x1; \
+ if(x1>max) max=x1; \
+ if(x2<min) min=x2; \
+ if(x2>max) max=x2;
+
+ //======================== X-tests ========================//
+#define AXISTEST_X01(a, b, fa, fb) \
+ p0 = a*v0[Y] - b*v0[Z]; \
+ p2 = a*v2[Y] - b*v2[Z]; \
+ if(p0<p2) {min=p0; max=p2;} else {min=p2; max=p0;} \
+ rad = fa * boxhalfsize[Y] + fb * boxhalfsize[Z]; \
+ if(min>rad || max<-rad) return 0;
+
+#define AXISTEST_X2(a, b, fa, fb) \
+ p0 = a*v0[Y] - b*v0[Z]; \
+ p1 = a*v1[Y] - b*v1[Z]; \
+ if(p0<p1) {min=p0; max=p1;} else {min=p1; max=p0;} \
+ rad = fa * boxhalfsize[Y] + fb * boxhalfsize[Z]; \
+ if(min>rad || max<-rad) return 0;
+
+ //======================== Y-tests ========================//
+#define AXISTEST_Y02(a, b, fa, fb) \
+ p0 = -a*v0[X] + b*v0[Z]; \
+ p2 = -a*v2[X] + b*v2[Z]; \
+ if(p0<p2) {min=p0; max=p2;} else {min=p2; max=p0;} \
+ rad = fa * boxhalfsize[X] + fb * boxhalfsize[Z]; \
+ if(min>rad || max<-rad) return 0;
+
+#define AXISTEST_Y1(a, b, fa, fb) \
+ p0 = -a*v0[X] + b*v0[Z]; \
+ p1 = -a*v1[X] + b*v1[Z]; \
+ if(p0<p1) {min=p0; max=p1;} else {min=p1; max=p0;} \
+ rad = fa * boxhalfsize[X] + fb * boxhalfsize[Z]; \
+ if(min>rad || max<-rad) return 0;
+
+ //======================== Z-tests ========================//
+#define AXISTEST_Z12(a, b, fa, fb) \
+ p1 = a*v1[X] - b*v1[Y]; \
+ p2 = a*v2[X] - b*v2[Y]; \
+ if(p2<p1) {min=p2; max=p1;} else {min=p1; max=p2;} \
+ rad = fa * boxhalfsize[X] + fb * boxhalfsize[Y]; \
+ if(min>rad || max<-rad) return 0;
+
+#define AXISTEST_Z0(a, b, fa, fb) \
+ p0 = a*v0[X] - b*v0[Y]; \
+ p1 = a*v1[X] - b*v1[Y]; \
+ if(p0<p1) {min=p0; max=p1;} else {min=p1; max=p0;} \
+ rad = fa * boxhalfsize[X] + fb * boxhalfsize[Y]; \
+ if(min>rad || max<-rad) return 0;
+
+ // This internal procedure is defined below.
+ bool overlapPlaneBox(Vec3r& normal, real d, Vec3r& maxbox);
+
+ // Use separating axis theorem to test overlap between triangle and box
+ // need to test for overlap in these directions:
+ // 1) the {x,y,z}-directions (actually, since we use the AABB of the triangle
+ // we do not even need to test these)
+ // 2) normal of the triangle
+ // 3) crossproduct(edge from tri, {x,y,z}-directin)
+ // this gives 3x3=9 more tests
+ bool overlapTriangleBox(Vec3r& boxcenter,
+ Vec3r& boxhalfsize,
+ Vec3r triverts[3]) {
+ Vec3r v0, v1, v2, normal, e0, e1, e2;
+ real min, max, d, p0, p1, p2, rad, fex, fey, fez;
+
+ // This is the fastest branch on Sun
+ // move everything so that the boxcenter is in (0, 0, 0)
+ v0 = triverts[0] - boxcenter;
+ v1 = triverts[1] - boxcenter;
+ v2 = triverts[2] - boxcenter;
+
+ // compute triangle edges
+ e0 = v1 - v0;
+ e1 = v2 - v1;
+ e2 = v0 - v2;
+
+ // Bullet 3:
+ // Do the 9 tests first (this was faster)
+ fex = fabs(e0[X]);
+ fey = fabs(e0[Y]);
+ fez = fabs(e0[Z]);
+ AXISTEST_X01(e0[Z], e0[Y], fez, fey);
+ AXISTEST_Y02(e0[Z], e0[X], fez, fex);
+ AXISTEST_Z12(e0[Y], e0[X], fey, fex);
+
+ fex = fabs(e1[X]);
+ fey = fabs(e1[Y]);
+ fez = fabs(e1[Z]);
+ AXISTEST_X01(e1[Z], e1[Y], fez, fey);
+ AXISTEST_Y02(e1[Z], e1[X], fez, fex);
+ AXISTEST_Z0(e1[Y], e1[X], fey, fex);
+
+ fex = fabs(e2[X]);
+ fey = fabs(e2[Y]);
+ fez = fabs(e2[Z]);
+ AXISTEST_X2(e2[Z], e2[Y], fez, fey);
+ AXISTEST_Y1(e2[Z], e2[X], fez, fex);
+ AXISTEST_Z12(e2[Y], e2[X], fey, fex);
+
+ // Bullet 1:
+ // first test overlap in the {x,y,z}-directions
+ // find min, max of the triangle each direction, and test for overlap in
+ // that direction -- this is equivalent to testing a minimal AABB around
+ // the triangle against the AABB
+
+ // test in X-direction
+ FINDMINMAX(v0[X], v1[X], v2[X], min, max);
+ if (min > boxhalfsize[X] || max < -boxhalfsize[X])
+ return false;
+
+ // test in Y-direction
+ FINDMINMAX(v0[Y], v1[Y], v2[Y], min, max);
+ if (min > boxhalfsize[Y] || max < -boxhalfsize[Y])
+ return false;
+
+ // test in Z-direction
+ FINDMINMAX(v0[Z], v1[Z], v2[Z], min, max);
+ if(min > boxhalfsize[Z] || max < -boxhalfsize[Z])
+ return false;
+
+ // Bullet 2:
+ // test if the box intersects the plane of the triangle
+ // compute plane equation of triangle: normal * x + d = 0
+ normal = e0 ^ e1;
+ d = -(normal * v0); // plane eq: normal.x + d = 0
+ if (!overlapPlaneBox(normal, d, boxhalfsize))
+ return false;
+
+ return true; // box and triangle overlaps
+ }
+
+ // Fast, Minimum Storage Ray-Triangle Intersection
+ //
+ // Tomas Möller
+ // Prosolvia Clarus AB
+ // Sweden
+ // tompa@clarus.se
+ //
+ // Ben Trumbore
+ // Cornell University
+ // Ithaca, New York
+ // wbt@graphics.cornell.edu
+
+ bool intersectRayTriangle(Vec3r& orig, Vec3r& dir,
+ Vec3r& v0, Vec3r& v1, Vec3r& v2,
+ real& t, real& u, real& v, real epsilon) {
+ Vec3r edge1, edge2, tvec, pvec, qvec;
+ real det, inv_det;
+
+ // find vectors for two edges sharing v0
+ edge1 = v1 - v0;
+ edge2 = v2 - v0;
+
+ // begin calculating determinant - also used to calculate U parameter
+ pvec = dir ^ edge2;
+
+ // if determinant is near zero, ray lies in plane of triangle
+ det = edge1 * pvec;
+
+ // calculate distance from v0 to ray origin
+ tvec = orig - v0;
+ inv_det = 1.0 / det;
+
+ qvec = tvec ^ edge1;
+
+ if (det > epsilon) {
+ u = tvec * pvec;
+ if (u < 0.0 || u > det)
+ return false;
+
+ // calculate V parameter and test bounds
+ v = dir * qvec;
+ if (v < 0.0 || u + v > det)
+ return false;
+ }
+ else if(det < -epsilon) {
+ // calculate U parameter and test bounds
+ u = tvec * pvec;
+ if (u > 0.0 || u < det)
+ return false;
+
+ // calculate V parameter and test bounds
+ v = dir * qvec;
+ if (v > 0.0 || u + v < det)
+ return false;
+ }
+ else
+ return false; // ray is parallell to the plane of the triangle
+
+ u *= inv_det;
+ v *= inv_det;
+ t = (edge2 * qvec) * inv_det;
+
+ return true;
+ }
+
+ // Intersection between plane and ray, adapted from Graphics Gems, Didier Badouel
+ intersection_test intersectRayPlane(Vec3r& orig, Vec3r& dir,
+ Vec3r& norm, real d,
+ real& t,
+ real epsilon) {
+ real denom = norm * dir;
+
+ if(fabs(denom) <= epsilon) { // plane and ray are parallel
+ if(fabs((norm * orig) + d) <= epsilon)
+ return COINCIDENT; // plane and ray are coincident
+ else
+ return COLINEAR;
+ }
+
+ t = -(d + (norm * orig)) / denom;
+
+ if (t < 0.0f)
+ return DONT_INTERSECT;
+
+ return DO_INTERSECT;
+ }
+
+ bool intersectRayBBox(const Vec3r& orig, const Vec3r& dir, // ray origin and direction
+ const Vec3r& boxMin, const Vec3r& boxMax, // the bbox
+ real t0, real t1,
+ real& tmin, real& tmax, // I0=orig+tmin*dir is the first intersection, I1=orig+tmax*dir is the second intersection
+ real epsilon){
+
+ float tymin, tymax, tzmin, tzmax;
+ Vec3r inv_direction(1.0/dir[0], 1.0/dir[1], 1.0/dir[2]);
+ int sign[3];
+ sign[0] = (inv_direction.x() < 0);
+ sign[1] = (inv_direction.y() < 0);
+ sign[2] = (inv_direction.z() < 0);
+
+ Vec3r bounds[2];
+ bounds[0] = boxMin;
+ bounds[1] = boxMax;
+
+ tmin = (bounds[sign[0]].x() - orig.x()) * inv_direction.x();
+ tmax = (bounds[1-sign[0]].x() - orig.x()) * inv_direction.x();
+ tymin = (bounds[sign[1]].y() - orig.y()) * inv_direction.y();
+ tymax = (bounds[1-sign[1]].y() - orig.y()) * inv_direction.y();
+ if ( (tmin > tymax) || (tymin > tmax) )
+ return false;
+ if (tymin > tmin)
+ tmin = tymin;
+ if (tymax < tmax)
+ tmax = tymax;
+ tzmin = (bounds[sign[2]].z() - orig.z()) * inv_direction.z();
+ tzmax = (bounds[1-sign[2]].z() - orig.z()) * inv_direction.z();
+ if ( (tmin > tzmax) || (tzmin > tmax) )
+ return false;
+ if (tzmin > tmin)
+ tmin = tzmin;
+ if (tzmax < tmax)
+ tmax = tzmax;
+ return ( (tmin < t1) && (tmax > t0) );
+ }
+
+ // Checks whether 3D points p lies inside or outside of the triangle ABC
+ bool includePointTriangle(Vec3r& P,
+ Vec3r& A,
+ Vec3r& B,
+ Vec3r& C) {
+ Vec3r AB(B - A);
+ Vec3r BC(C - B);
+ Vec3r CA(A - C);
+ Vec3r AP(P - A);
+ Vec3r BP(P - B);
+ Vec3r CP(P - C);
+
+ Vec3r N(AB ^ BC); // triangle's normal
+
+ N.normalize();
+
+ Vec3r J(AB ^ AP), K(BC ^ BP), L(CA ^ CP);
+ J.normalize();
+ K.normalize();
+ L.normalize();
+
+ if(J * N < 0)
+ return false; // on the right of AB
+
+ if(K * N < 0)
+ return false; // on the right of BC
+
+ if(L * N < 0)
+ return false; // on the right of CA
+
+ return true;
+ }
+
+ void transformVertex(const Vec3r& vert,
+ const Matrix44r& matrix,
+ Vec3r& res) {
+ HVec3r hvert(vert), res_tmp;
+ real scale;
+ for (unsigned j = 0; j < 4; j++) {
+ scale = hvert[j];
+ for (unsigned i = 0; i < 4; i++)
+ res_tmp[i] += matrix(i, j) * scale;
+ }
+
+ res[0] = res_tmp.x();
+ res[1] = res_tmp.y();
+ res[2] = res_tmp.z();
+ }
+
+ void transformVertices(const vector<Vec3r>& vertices,
+ const Matrix44r& trans,
+ vector<Vec3r>& res) {
+ for (vector<Vec3r>::const_iterator v = vertices.begin();
+ v != vertices.end();
+ v++) {
+ Vec3r *res_tmp = new Vec3r;
+ transformVertex(*v, trans, *res_tmp);
+ res.push_back(*res_tmp);
+ }
+ }
+
+ Vec3r rotateVector(const Matrix44r& mat, const Vec3r& v) {
+ Vec3r res;
+ for (unsigned i = 0; i < 3; i++) {
+ res[i] = 0;
+ for (unsigned j = 0; j < 3; j++)
+ res[i] += mat(i, j) * v[j];
+ }
+ res.normalize();
+ return res;
+ }
+
+ // This internal procedure is defined below.
+ void fromCoordAToCoordB(const Vec3r& p,
+ Vec3r& q,
+ const real transform[4][4]);
+
+ void fromWorldToCamera(const Vec3r& p,
+ Vec3r& q,
+ const real model_view_matrix[4][4]) {
+ fromCoordAToCoordB(p, q, model_view_matrix);
+ }
+
+ void fromCameraToRetina(const Vec3r& p,
+ Vec3r& q,
+ const real projection_matrix[4][4]) {
+ fromCoordAToCoordB(p, q, projection_matrix);
+ }
+
+ void fromRetinaToImage(const Vec3r& p,
+ Vec3r& q,
+ const int viewport[4]) {
+ // winX:
+ q[0] = viewport[0] + viewport[2] * (p[0] + 1.0) / 2.0;
+
+ // winY:
+ q[1] = viewport[1] + viewport[3] * (p[1] + 1.0) / 2.0;
+
+ // winZ:
+ q[2] = (p[2] + 1.0) / 2.0;
+ }
+
+ void fromWorldToImage(const Vec3r& p,
+ Vec3r& q,
+ const real model_view_matrix[4][4],
+ const real projection_matrix[4][4],
+ const int viewport[4]) {
+ Vec3r p1, p2;
+ fromWorldToCamera(p, p1, model_view_matrix);
+ fromCameraToRetina(p1, p2, projection_matrix);
+ fromRetinaToImage(p2, q, viewport);
+ q[2] = p1[2];
+ }
+
+ void fromWorldToImage(const Vec3r& p,
+ Vec3r& q,
+ const real transform[4][4],
+ const int viewport[4]) {
+ fromCoordAToCoordB(p, q, transform);
+
+ // winX:
+ q[0] = viewport[0] + viewport[2] * (q[0] + 1.0) / 2.0;
+
+ //winY:
+ q[1] = viewport[1] + viewport[3] * (q[1] + 1.0) / 2.0;
+ }
+
+ void fromImageToRetina(const Vec3r& p,
+ Vec3r& q,
+ const int viewport[4]) {
+ q = p;
+ q[0] = 2.0 * (q[0] - viewport[0]) / viewport[2] - 1;
+ q[1] = 2.0 * (q[1] - viewport[1]) / viewport[3] - 1;
+ }
+
+ void fromRetinaToCamera(const Vec3r& p,
+ Vec3r& q,
+ real z,
+ const real projection_matrix[4][4]) {
+ q[0] = (-p[0] * z) / projection_matrix[0][0];
+ q[1] = (-p[1] * z) / projection_matrix[1][1];
+ q[2] = z;
+ }
+
+ void fromCameraToWorld(const Vec3r& p,
+ Vec3r& q,
+ const real model_view_matrix[4][4]) {
+
+ real translation[3] = { model_view_matrix[0][3],
+ model_view_matrix[1][3],
+ model_view_matrix[2][3] };
+ for (unsigned i = 0; i < 3; i++) {
+ q[i] = 0.0;
+ for (unsigned short j = 0; j < 3; j++)
+ q[i] += model_view_matrix[j][i] * (p[j] - translation[j]);
+ }
+ }
+
+
+ //
+ // Internal code
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ // Copyright 2001, softSurfer (www.softsurfer.com)
+ // This code may be freely used and modified for any purpose
+ // providing that this copyright notice is included with it.
+ // SoftSurfer makes no warranty for this code, and cannot be held
+ // liable for any real or imagined damage resulting from its use.
+ // Users of this code must verify correctness for their application.
+
+#define perp(u,v) ((u)[0] * (v)[1] - (u)[1] * (v)[0]) // 2D perp product
+
+ inline bool intersect2dSegPoly(Vec2r* seg,
+ Vec2r* poly,
+ unsigned n) {
+ if (seg[0] == seg[1])
+ return false;
+
+ real tE = 0; // the maximum entering segment parameter
+ real tL = 1; // the minimum leaving segment parameter
+ real t, N, D; // intersect parameter t = N / D
+ Vec2r dseg; // the segment direction vector
+ dseg = seg[1] - seg[0];
+ Vec2r e; // edge vector
+
+ for (unsigned i = 0; i < n; i++) { // process polygon edge poly[i]poly[i+1]
+ e = poly[i+1] - poly[i];
+ N = perp(e, seg[0] - poly[i]);
+ D = -perp(e, dseg);
+ if (fabs(D) < M_EPSILON) {
+ if (N < 0)
+ return false;
+ else
+ continue;
+ }
+
+ t = N / D;
+ if (D < 0) { // segment seg is entering across this edge
+ if (t > tE) { // new max tE
+ tE = t;
+ if (tE > tL) // seg enters after leaving polygon
+ return false;
+ }
+ }
+ else { // segment seg is leaving across this edge
+ if (t < tL) { // new min tL
+ tL = t;
+ if (tL < tE) // seg leaves before entering polygon
+ return false;
+ }
+ }
+ }
+
+ // tE <= tL implies that there is a valid intersection subsegment
+ return true;
+ }
+
+ inline bool overlapPlaneBox(Vec3r& normal, real d, Vec3r& maxbox) {
+ Vec3r vmin, vmax;
+
+ for(unsigned q = X; q <= Z; q++) {
+ if(normal[q] > 0.0f) {
+ vmin[q] = -maxbox[q];
+ vmax[q] = maxbox[q];
+ }
+ else {
+ vmin[q] = maxbox[q];
+ vmax[q] = -maxbox[q];
+ }
+ }
+ if((normal * vmin) + d > 0.0f)
+ return false;
+ if((normal * vmax) + d >= 0.0f)
+ return true;
+ return false;
+ }
+
+ inline void fromCoordAToCoordB(const Vec3r&p,
+ Vec3r& q,
+ const real transform[4][4]) {
+ HVec3r hp(p);
+ HVec3r hq(0, 0, 0, 0);
+
+ for (unsigned i = 0; i < 4; i++)
+ for (unsigned j = 0; j < 4; j++)
+ hq[i] += transform[i][j] * hp[j];
+
+ if(hq[3] == 0) {
+ q = p;
+ return;
+ }
+
+ for (unsigned k = 0; k < 3; k++)
+ q[k] = hq[k] / hq[3];
+ }
+
+} // end of namespace GeomUtils
diff --git a/source/blender/freestyle/intern/geometry/GeomUtils.h b/source/blender/freestyle/intern/geometry/GeomUtils.h
new file mode 100755
index 00000000000..53c94c22f8b
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/GeomUtils.h
@@ -0,0 +1,309 @@
+//
+// Filename : GeomUtils.h
+// Author(s) : Stephane Grabli
+// Purpose : Various tools for geometry
+// Date of creation : 12/04/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GEOMUTILS_H
+# define GEOMUTILS_H
+
+# include <vector>
+# include "../system/FreestyleConfig.h"
+# include "Geom.h"
+
+using namespace std;
+using namespace Geometry;
+
+namespace GeomUtils {
+
+ //
+ // Templated procedures
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ /*! Computes the distance from a point P to a segment AB */
+ template<class T>
+ real distPointSegment( const T& P, const T& A , const T& B) {
+ T AB, AP, BP;
+ AB = B - A;
+ AP = P - A;
+ BP = P - B;
+
+ real c1(AB * AP);
+ if (c1 <= 0)
+ return AP.norm();
+
+ real c2(AB * AB);
+ if (c2 <= c1)
+ return BP.norm();
+
+ real b = c1 / c2;
+ T Pb, PPb;
+ Pb = A + b * AB;
+ PPb = P - Pb;
+
+ return PPb.norm();
+ }
+
+ //
+ // Non-templated procedures
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ typedef enum {
+ DONT_INTERSECT,
+ DO_INTERSECT,
+ COLINEAR,
+ COINCIDENT
+ } intersection_test;
+
+ LIB_GEOMETRY_EXPORT
+ intersection_test intersect2dSeg2dSeg(const Vec2r& p1, const Vec2r& p2, // first segment
+ const Vec2r& p3, const Vec2r& p4, // second segment
+ Vec2r& res); // found intersection point
+
+ LIB_GEOMETRY_EXPORT
+ intersection_test intersect2dLine2dLine(const Vec2r& p1, const Vec2r& p2, // first segment
+ const Vec2r& p3, const Vec2r& p4, // second segment
+ Vec2r& res); // found intersection point
+
+ LIB_GEOMETRY_EXPORT
+ intersection_test intersect2dSeg2dSegParametric(const Vec2r& p1, const Vec2r& p2, // first segment
+ const Vec2r& p3, const Vec2r& p4, // second segment
+ real& t, // I = P1 + t * P1P2)
+ real& u); // I = P3 + u * P3P4
+
+ /*! check whether a 2D segment intersect a 2D region or not */
+ LIB_GEOMETRY_EXPORT
+ bool intersect2dSeg2dArea(const Vec2r& min,
+ const Vec2r& max,
+ const Vec2r& A,
+ const Vec2r& B);
+
+ /*! check whether a 2D segment is included in a 2D region or not */
+ LIB_GEOMETRY_EXPORT
+ bool include2dSeg2dArea(const Vec2r& min,
+ const Vec2r& max,
+ const Vec2r& A,
+ const Vec2r& B);
+
+ /*! Box-triangle overlap test, adapted from Tomas Akenine-Möller code */
+ LIB_GEOMETRY_EXPORT
+ bool overlapTriangleBox(Vec3r& boxcenter,
+ Vec3r& boxhalfsize,
+ Vec3r triverts[3]);
+
+ /*! Fast, Minimum Storage Ray-Triangle Intersection,
+ * adapted from Tomas Möller and Ben Trumbore code.
+ */
+ LIB_GEOMETRY_EXPORT
+ bool intersectRayTriangle(Vec3r& orig, Vec3r& dir,
+ Vec3r& v0, Vec3r& v1, Vec3r& v2,
+ real& t, // I = orig + t * dir
+ real& u, real& v, // I = (1-u-v)*v0+u*v1+v*v2
+ real epsilon = M_EPSILON); // the epsilon to use
+
+ /*! Intersection between plane and ray
+ * adapted from Graphics Gems, Didier Badouel
+ */
+ LIB_GEOMETRY_EXPORT
+ intersection_test intersectRayPlane(Vec3r& orig, Vec3r& dir, // ray origin and direction
+ Vec3r& norm, real d, // plane's normal and offset (plane = { P / P.N + d = 0 })
+ real& t, // I = orig + t * dir
+ real epsilon = M_EPSILON); // the epsilon to use
+
+ /*! Intersection Ray-Bounding box (axis aligned).
+ * Adapted from Williams et al, "An Efficient Robust Ray-Box Intersection Algorithm",
+ * JGT 10:1 (2005), pp. 49-54.
+ * Returns
+ */
+ LIB_GEOMETRY_EXPORT
+ bool intersectRayBBox(const Vec3r& orig, const Vec3r& dir, // ray origin and direction
+ const Vec3r& boxMin, const Vec3r& boxMax, // the bbox
+ real t0, real t1, // the interval in which at least on of the intersections must happen
+ real& tmin, real& tmax, // Imin=orig+tmin*dir is the first intersection, Imax=orig+tmax*dir is the second intersection
+ real epsilon = M_EPSILON); // the epsilon to use
+
+
+ /*! Checks whether 3D point P lies inside or outside of the triangle ABC */
+ LIB_GEOMETRY_EXPORT
+ bool includePointTriangle(Vec3r& P,
+ Vec3r& A,
+ Vec3r& B,
+ Vec3r& C);
+
+ LIB_GEOMETRY_EXPORT
+ void transformVertex(const Vec3r& vert,
+ const Matrix44r& matrix,
+ Vec3r& res);
+
+ LIB_GEOMETRY_EXPORT
+ void transformVertices(const vector<Vec3r>& vertices,
+ const Matrix44r& trans,
+ vector<Vec3r>& res);
+
+ LIB_GEOMETRY_EXPORT
+ Vec3r rotateVector(const Matrix44r& mat, const Vec3r& v);
+
+ //
+ // Coordinates systems changing procedures
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ /*! From world to image
+ * p
+ * point's coordinates expressed in world coordinates system
+ * q
+ * vector in which the result will be stored
+ * model_view_matrix
+ * The model view matrix expressed in line major order (OpenGL
+ * matrices are column major ordered)
+ * projection_matrix
+ * The projection matrix expressed in line major order (OpenGL
+ * matrices are column major ordered)
+ * viewport
+ * The viewport: x,y coordinates followed by width and height (OpenGL like viewport)
+ */
+ LIB_GEOMETRY_EXPORT
+ void fromWorldToImage(const Vec3r& p,
+ Vec3r& q,
+ const real model_view_matrix[4][4],
+ const real projection_matrix[4][4],
+ const int viewport[4]);
+
+ /*! From world to image
+ * p
+ * point's coordinates expressed in world coordinates system
+ * q
+ * vector in which the result will be stored
+ * transform
+ * The transformation matrix (gathering model view and projection),
+ * expressed in line major order (OpenGL matrices are column major ordered)
+ * viewport
+ * The viewport: x,y coordinates followed by width and height (OpenGL like viewport)
+ */
+ LIB_GEOMETRY_EXPORT
+ void fromWorldToImage(const Vec3r& p,
+ Vec3r& q,
+ const real transform[4][4],
+ const int viewport[4]);
+
+ /*! Projects from world coordinates to camera coordinates
+ * Returns the point's coordinates expressed in the camera's
+ * coordinates system.
+ * p
+ * point's coordinates expressed in world coordinates system
+ * q
+ * vector in which the result will be stored
+ * model_view_matrix
+ * The model view matrix expressed in line major order (OpenGL
+ * matrices are column major ordered)
+ */
+ LIB_GEOMETRY_EXPORT
+ void fromWorldToCamera(const Vec3r& p,
+ Vec3r& q,
+ const real model_view_matrix[4][4]);
+
+ /*! Projects from World Coordinates to retina coordinates
+ * Returns the point's coordinates expressed in Retina system.
+ * p
+ * point's coordinates expressed in camera system
+ * q
+ * vector in which the result will be stored
+ * projection_matrix
+ * The projection matrix expressed in line major order (OpenGL
+ * matrices are column major ordered)
+ */
+ LIB_GEOMETRY_EXPORT
+ void fromCameraToRetina(const Vec3r& p,
+ Vec3r& q,
+ const real projection_matrix[4][4]);
+
+ /*! From retina to image.
+ * Returns the coordinates expressed in Image coorinates system.
+ * p
+ * point's coordinates expressed in retina system
+ * q
+ * vector in which the result will be stored
+ * viewport
+ * The viewport: x,y coordinates followed by width and height (OpenGL like viewport).
+ */
+ LIB_GEOMETRY_EXPORT
+ void fromRetinaToImage(const Vec3r& p,
+ Vec3r& q,
+ const int viewport[4]);
+
+ /*! From image to retina
+ * p
+ * point's coordinates expressed in image system
+ * q
+ * vector in which the result will be stored
+ * viewport
+ * The viewport: x,y coordinates followed by width and height (OpenGL like viewport).
+ */
+ LIB_GEOMETRY_EXPORT
+ void fromImageToRetina(const Vec3r& p,
+ Vec3r& q,
+ const int viewport[4]);
+
+ /*! computes the coordinates of q in the camera coordinates system,
+ * using the known z coordinates of the 3D point.
+ * That means that this method does not inverse any matrices,
+ * it only computes X and Y from x,y and Z)
+ * p
+ * point's coordinates expressed in retina system
+ * q
+ * vector in which the result will be stored
+ * projection_matrix
+ * The projection matrix expressed in line major order (OpenGL
+ * matrices are column major ordered)
+
+ */
+ LIB_GEOMETRY_EXPORT
+ void fromRetinaToCamera(const Vec3r& p,
+ Vec3r& q,
+ real z,
+ const real projection_matrix[4][4]);
+
+ /*! Projects from camera coordinates to world coordinates
+ * Returns the point's coordinates expressed in the world's
+ * coordinates system.
+ * p
+ * point's coordinates expressed in the camera coordinates system
+ * q
+ * vector in which the result will be stored
+ * model_view_matrix
+ * The model view matrix expressed in line major order (OpenGL
+ * matrices are column major ordered)
+ */
+ LIB_GEOMETRY_EXPORT
+ void fromCameraToWorld(const Vec3r& p,
+ Vec3r& q,
+ const real model_view_matrix[4][4]);
+
+} // end of namespace GeomUtils
+
+#endif // GEOMUTILS_H
diff --git a/source/blender/freestyle/intern/geometry/Grid.cpp b/source/blender/freestyle/intern/geometry/Grid.cpp
new file mode 100755
index 00000000000..59b730358bc
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/Grid.cpp
@@ -0,0 +1,388 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "Grid.h"
+#include "BBox.h"
+#include <cassert>
+#include <stdexcept>
+
+// Grid Visitors
+/////////////////
+void allOccludersGridVisitor::examineOccluder(Polygon3r *occ){
+ occluders_.push_back(occ);
+}
+
+bool inBox(const Vec3r& inter, const Vec3r& box_min, const Vec3r& box_max){
+ if(((inter.x()>=box_min.x()) && (inter.x() <box_max.x()))
+ && ((inter.y()>=box_min.y()) && (inter.y() <box_max.y()))
+ && ((inter.z()>=box_min.z()) && (inter.z() <box_max.z()))
+ ){
+ return true;
+ }
+ return false;
+}
+void firstIntersectionGridVisitor::examineOccluder(Polygon3r *occ){
+
+ // check whether the edge and the polygon plane are coincident:
+ //-------------------------------------------------------------
+ //first let us compute the plane equation.
+ Vec3r v1(((occ)->getVertices())[0]);
+ Vec3d normal((occ)->getNormal());
+ double d = -(v1 * normal);
+
+ double tmp_u, tmp_v, tmp_t;
+ if((occ)->rayIntersect(ray_org_, ray_dir_, tmp_t, tmp_u, tmp_v)){
+ if (fabs(ray_dir_ * normal) > 0.0001){
+ // Check whether the intersection is in the cell:
+ if(inBox(ray_org_+tmp_t*ray_dir_/ray_dir_.norm(), current_cell_->getOrigin(), current_cell_->getOrigin()+cell_size_)){
+
+ //Vec3d bboxdiag(_scene3d->bbox().getMax()-_scene3d->bbox().getMin());
+ //if ((t>1.0E-06*(min(min(bboxdiag.x(),bboxdiag.y()),bboxdiag.z()))) && (t<raylength)){
+ if(tmp_t < t_){
+ occluder_ = occ;
+ u_ = tmp_u;
+ v_ = tmp_v;
+ t_ = tmp_t;
+ }
+ }else{
+ occ->userdata2 = 0;
+ }
+ }
+ }
+}
+
+bool firstIntersectionGridVisitor::stop(){
+ if(occluder_)
+ return true;
+ return false;
+}
+
+// Grid
+/////////////////
+
+void Grid::clear() {
+ if (_occluders.size() != 0) {
+ for(OccludersSet::iterator it = _occluders.begin();
+ it != _occluders.end();
+ it++) {
+ delete (*it);
+ }
+ _occluders.clear();
+ }
+
+ _size = Vec3r(0, 0, 0);
+ _cell_size = Vec3r(0, 0, 0);
+ _orig = Vec3r(0, 0, 0);
+ _cells_nb = Vec3u(0, 0, 0);
+ //_ray_occluders.clear();
+}
+
+void Grid::configure(const Vec3r& orig,
+ const Vec3r& size,
+ unsigned nb) {
+
+ _orig = orig;
+ Vec3r tmpSize=size;
+ // Compute the volume of the desired grid
+ real grid_vol = size[0] * size[1] * size[2];
+
+ if(grid_vol == 0){
+ double min=DBL_MAX;
+ int index;
+ int nzeros=0;
+ for(int i=0;i<3;++i){
+ if(size[i] == 0){
+ ++nzeros;
+ index=i;
+ }
+ if((size[i]!=0) && (min>size[i])){
+ min=size[i];
+ }
+ }
+ if(nzeros>1){
+ throw std::runtime_error("Warning: the 3D grid has more than one null dimension");
+ }
+ tmpSize[index]=min;
+ _orig[index] = _orig[index]-min/2;
+ }
+ // Compute the desired volume of a single cell
+ real cell_vol = grid_vol / nb;
+ // The edge of such a cubic cell is cubic root of cellVolume
+ real edge = pow(cell_vol, 1.0 / 3.0);
+
+ // We compute the number of cells par edge
+ // such as we cover at least the whole box.
+ unsigned i;
+ for (i = 0; i < 3; i++)
+ _cells_nb[i] = (unsigned)floor(tmpSize[i] / edge) + 1;
+
+ _size = tmpSize;
+
+ for(i = 0; i < 3; i++)
+ _cell_size[i] = _size[i] / _cells_nb[i];
+}
+
+void Grid::insertOccluder(Polygon3r* occluder) {
+ const vector<Vec3r> vertices = occluder->getVertices();
+ if (vertices.size() == 0)
+ return;
+
+ // add this occluder to the grid's occluders list
+ addOccluder(occluder);
+
+ // find the bbox associated to this polygon
+ Vec3r min, max;
+ occluder->getBBox(min, max);
+
+ // Retrieve the cell x, y, z cordinates associated with these min and max
+ Vec3u imax, imin;
+ getCellCoordinates(max, imax);
+ getCellCoordinates(min, imin);
+
+ // We are now going to fill in the cells overlapping with the
+ // polygon bbox.
+ // If the polygon is a triangle (most of cases), we also
+ // check for each of these cells if it is overlapping with
+ // the triangle in order to only fill in the ones really overlapping
+ // the triangle.
+
+ unsigned i, x, y, z;
+ vector<Vec3r>::const_iterator it;
+ Vec3u coord;
+
+ if (vertices.size() == 3) { // Triangle case
+ Vec3r triverts[3];
+ i = 0;
+ for(it = vertices.begin();
+ it != vertices.end();
+ it++) {
+ triverts[i] = Vec3r(*it);
+ i++;
+ }
+
+ Vec3r boxmin, boxmax;
+
+ for (z = imin[2]; z <= imax[2]; z++)
+ for (y = imin[1]; y <= imax[1]; y++)
+ for (x = imin[0]; x <= imax[0]; x++) {
+ coord[0] = x;
+ coord[1] = y;
+ coord[2] = z;
+ // We retrieve the box coordinates of the current cell
+ getCellBox(coord, boxmin, boxmax);
+ // We check whether the triangle and the box ovewrlap:
+ Vec3r boxcenter((boxmin + boxmax) / 2.0);
+ Vec3r boxhalfsize(_cell_size / 2.0);
+ if (GeomUtils::overlapTriangleBox(boxcenter, boxhalfsize, triverts)) {
+ // We must then create the Cell and add it to the cells list
+ // if it does not exist yet.
+ // We must then add the occluder to the occluders list of this cell.
+ Cell* cell = getCell(coord);
+ if (!cell) {
+ cell = new Cell(boxmin);
+ fillCell(coord, *cell);
+ }
+ cell->addOccluder(occluder);
+ }
+ }
+ }
+ else { // The polygon is not a triangle, we add all the cells overlapping the polygon bbox.
+ for (z = imin[2]; z <= imax[2]; z++)
+ for (y = imin[1]; y <= imax[1]; y++)
+ for (x = imin[0]; x <= imax[0]; x++) {
+ coord[0] = x;
+ coord[1] = y;
+ coord[2] = z;
+ Cell* cell = getCell(coord);
+ if (!cell) {
+ Vec3r orig;
+ getCellOrigin(coord, orig);
+ cell = new Cell(orig);
+ fillCell(coord, *cell);
+ }
+ cell->addOccluder(occluder);
+ }
+ }
+}
+
+bool Grid::nextRayCell(Vec3u& current_cell, Vec3u& next_cell) {
+ next_cell = current_cell;
+ real t_min, t;
+ unsigned i;
+
+ t_min = FLT_MAX; // init tmin with handle of the case where one or 2 _u[i] = 0.
+ unsigned coord = 0; // predominant coord(0=x, 1=y, 2=z)
+
+
+ // using a parametric equation of
+ // a line : B = A + t u, we find
+ // the tx, ty and tz respectively coresponding
+ // to the intersections with the plans:
+ // x = _cell_size[0], y = _cell_size[1], z = _cell_size[2]
+ for (i = 0; i < 3; i++) {
+ if (_ray_dir[i] == 0)
+ continue;
+ if (_ray_dir[i] > 0)
+ t = (_cell_size[i] - _pt[i]) / _ray_dir[i];
+ else
+ t = -_pt[i] / _ray_dir[i];
+ if (t < t_min) {
+ t_min = t;
+ coord = i;
+ }
+ }
+
+ // We use the parametric line equation and
+ // the found t (tamx) to compute the
+ // B coordinates:
+ Vec3r pt_tmp(_pt);
+ _pt = pt_tmp + t_min * _ray_dir;
+
+ // We express B coordinates in the next cell
+ // coordinates system. We just have to
+ // set the coordinate coord of B to 0
+ // of _CellSize[coord] depending on the sign
+ // of _u[coord]
+ if (_ray_dir[coord] > 0) {
+ next_cell[coord]++;
+ _pt[coord] -= _cell_size[coord];
+ // if we are out of the grid, we must stop
+ if (next_cell[coord] >= _cells_nb[coord])
+ return false;
+ }
+ else {
+ int tmp = next_cell[coord] - 1;
+ _pt[coord] = _cell_size[coord];
+ if (tmp < 0)
+ return false;
+ next_cell[coord]--;
+ }
+
+ _t += t_min;
+ if (_t >= _t_end)
+ return false;
+
+ return true;
+}
+
+void Grid::castRay(const Vec3r& orig,
+ const Vec3r& end,
+ OccludersSet& occluders,
+ unsigned timestamp) {
+ initRay(orig, end, timestamp);
+ allOccludersGridVisitor visitor(occluders);
+ castRayInternal(visitor);
+}
+
+void Grid::castInfiniteRay(const Vec3r& orig,
+ const Vec3r& dir,
+ OccludersSet& occluders,
+ unsigned timestamp) {
+ Vec3r end = Vec3r(orig + FLT_MAX * dir / dir.norm());
+ bool inter = initInfiniteRay(orig, dir, timestamp);
+ if(!inter)
+ return;
+ allOccludersGridVisitor visitor(occluders);
+ castRayInternal(visitor);
+}
+
+Polygon3r* Grid::castRayToFindFirstIntersection(const Vec3r& orig,
+ const Vec3r& dir,
+ double& t,
+ double& u,
+ double& v,
+ unsigned timestamp){
+ Polygon3r *occluder = 0;
+ Vec3r end = Vec3r(orig + FLT_MAX * dir / dir.norm());
+ bool inter = initInfiniteRay(orig, dir, timestamp);
+ if(!inter){
+ return 0;
+ }
+ firstIntersectionGridVisitor visitor(orig,dir,_cell_size);
+ castRayInternal(visitor);
+ occluder = visitor.occluder();
+ t = visitor.t_;
+ u = visitor.u_;
+ v = visitor.v_;
+ return occluder;
+}
+
+void Grid::initRay (const Vec3r &orig,
+ const Vec3r& end,
+ unsigned timestamp) {
+ _ray_dir = end - orig;
+ _t_end = _ray_dir.norm();
+ _t = 0;
+ _ray_dir.normalize();
+ _timestamp = timestamp;
+
+ for(unsigned i = 0; i < 3; i++) {
+ _current_cell[i] = (unsigned)floor((orig[i] - _orig[i]) / _cell_size[i]);
+ unsigned u = _current_cell[i];
+ _pt[i] = orig[i] - _orig[i] - _current_cell[i] * _cell_size[i];
+ }
+ //_ray_occluders.clear();
+
+}
+
+bool Grid::initInfiniteRay (const Vec3r &orig,
+ const Vec3r& dir,
+ unsigned timestamp) {
+ _ray_dir = dir;
+ _t_end = FLT_MAX;
+ _t = 0;
+ _ray_dir.normalize();
+ _timestamp = timestamp;
+
+ // check whether the origin is in or out the box:
+ Vec3r boxMin(_orig);
+ Vec3r boxMax(_orig+_size);
+ BBox<Vec3r> box(boxMin, boxMax);
+ if(box.inside(orig)){
+ for(unsigned i = 0; i < 3; i++) {
+ _current_cell[i] = (unsigned)floor((orig[i] - _orig[i]) / _cell_size[i]);
+ unsigned u = _current_cell[i];
+ _pt[i] = orig[i] - _orig[i] - _current_cell[i] * _cell_size[i];
+ }
+ }else{
+ // is the ray intersecting the box?
+ real tmin(-1.0), tmax(-1.0);
+ if(GeomUtils::intersectRayBBox(orig, _ray_dir, boxMin, boxMax, 0, _t_end, tmin, tmax)){
+ assert(tmin != -1.0);
+ Vec3r newOrig = orig + tmin*_ray_dir;
+ for(unsigned i = 0; i < 3; i++) {
+ _current_cell[i] = (unsigned)floor((newOrig[i] - _orig[i]) / _cell_size[i]);
+ if(_current_cell[i] == _cells_nb[i])
+ _current_cell[i] = _cells_nb[i] - 1;
+ unsigned u = _current_cell[i];
+ _pt[i] = newOrig[i] - _orig[i] - _current_cell[i] * _cell_size[i];
+ }
+
+ }else{
+ return false;
+ }
+ }
+ //_ray_occluders.clear();
+
+ return true;
+
+}
+
diff --git a/source/blender/freestyle/intern/geometry/Grid.h b/source/blender/freestyle/intern/geometry/Grid.h
new file mode 100755
index 00000000000..6197721bb45
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/Grid.h
@@ -0,0 +1,358 @@
+//
+// Filename : Grid.h
+// Author(s) : Stephane Grabli
+// Purpose : Base class to define a cell grid surrounding
+// the bounding box of the scene
+// Date of creation : 30/07/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GRID_H
+# define GRID_H
+
+# include <float.h>
+# include <vector>
+# include "../system/FreestyleConfig.h"
+# include "GeomUtils.h"
+# include "Geom.h"
+# include "Polygon.h"
+
+using namespace std;
+using namespace Geometry;
+
+typedef vector<Polygon3r*> OccludersSet;
+
+
+//
+// Class to define cells used by the regular grid
+//
+///////////////////////////////////////////////////////////////////////////////
+
+class LIB_GEOMETRY_EXPORT Cell
+{
+ public:
+
+ Cell(Vec3r& orig) {
+ _orig = orig;
+ }
+
+ virtual ~Cell() {}
+
+ inline void addOccluder(Polygon3r* o) {
+ if (o)
+ _occluders.push_back(o);
+ }
+
+ inline const Vec3r& getOrigin() {
+ return _orig;
+ }
+
+ inline OccludersSet& getOccluders() {
+ return _occluders;
+ }
+
+ private:
+
+ Vec3r _orig;
+ OccludersSet _occluders;
+};
+
+
+class GridVisitor{
+public:
+ virtual void discoverCell(Cell *cell) {}
+ virtual void examineOccluder(Polygon3r *occ) {}
+ virtual void finishCell(Cell *cell) {}
+ virtual bool stop() {return false;}
+};
+
+/*! Gathers all the occluders belonging to the cells
+ * traversed by the ray */
+class allOccludersGridVisitor : public GridVisitor{
+public:
+ allOccludersGridVisitor(OccludersSet& occluders)
+ :GridVisitor(), occluders_(occluders){}
+ virtual void examineOccluder(Polygon3r *occ);
+
+ OccludersSet& occluders() {return occluders_;}
+ void clear() {occluders_.clear();}
+
+private:
+ OccludersSet& occluders_;
+};
+
+/*! Finds the first intersection and breaks. The occluder and
+ * the intersection information are stored and accessible.
+ */
+class firstIntersectionGridVisitor : public GridVisitor {
+public:
+ firstIntersectionGridVisitor(const Vec3r& ray_org, const Vec3r& ray_dir, const Vec3r& cell_size) :
+ GridVisitor(), ray_org_(ray_org), cell_size_(cell_size),ray_dir_(ray_dir),occluder_(0),
+ u_(0),v_(0),t_(DBL_MAX),current_cell_(0){}
+ virtual ~firstIntersectionGridVisitor() {}
+
+ virtual void discoverCell(Cell *cell) {current_cell_=cell;}
+ virtual void examineOccluder(Polygon3r *occ);
+ virtual bool stop();
+
+ Polygon3r * occluder() {return occluder_;}
+
+public:
+ double u_, v_, t_;
+private:
+ Polygon3r *occluder_;
+ Vec3r ray_org_, ray_dir_;
+ Vec3r cell_size_;
+ Cell * current_cell_;
+};
+
+//
+// Class to define a regular grid used for ray casting computations
+//
+///////////////////////////////////////////////////////////////////////////////
+
+class LIB_GEOMETRY_EXPORT Grid
+{
+public:
+
+ /*! Builds a Grid
+ * Must be followed by a call to configure()
+ */
+ Grid() {}
+
+ virtual ~Grid() {
+ clear();
+ }
+
+ /*! clears the grid
+ * Deletes all the cells, clears the hashtable,
+ * resets size, size of cell, number of cells.
+ */
+ virtual void clear();
+
+ /*! Sets the different parameters of the grid
+ * orig
+ * The grid origin
+ * size
+ * The grid's dimensions
+ * nb
+ * The number of cells of the grid
+ */
+ virtual void configure(const Vec3r& orig, const Vec3r& size, unsigned nb);
+
+ /*! returns a vector of integer containing the
+ * coordinates of the cell containing the point
+ * passed as argument
+ * p
+ * The point for which we're looking the cell
+ */
+ inline void getCellCoordinates(const Vec3r& p, Vec3u& res) {
+ int tmp;
+ for (int i = 0; i < 3; i++) {
+ tmp = (int)((p[i] - _orig[i]) / _cell_size[i]);
+ if (tmp < 0)
+ res[i] = 0;
+ else if ((unsigned)tmp >= _cells_nb[i])
+ res[i] = _cells_nb[i] - 1;
+ else
+ res[i] = tmp;
+ }
+ }
+
+ /*! Fills the case corresponding to coord with the cell */
+ virtual void fillCell(const Vec3u& coord, Cell& cell) = 0;
+
+ /*! returns the cell whose coordinates
+ * are pased as argument
+ */
+ virtual Cell* getCell(const Vec3u& coord) = 0;
+
+ /*! returns the cell containing the point
+ * passed as argument. If the cell is empty
+ * (contains no occluder), NULL is returned
+ * p
+ * The point for which we're looking the cell
+ */
+ inline Cell* getCell(const Vec3r& p) {
+ Vec3u coord;
+ getCellCoordinates(p, coord);
+ return getCell(coord);
+ }
+
+ /*! Retrieves the x,y,z coordinates of the origin of the cell whose coordinates (i,j,k)
+ * is passed as argument
+ * cell_coord
+ * i,j,k integer coordinates for the cell
+ * orig
+ * x,y,x vector to be filled in with the cell origin's coordinates
+ */
+ inline void getCellOrigin(const Vec3u& cell_coord, Vec3r& orig) {
+ for (unsigned i = 0; i < 3; i++)
+ orig[i] = _orig[i] + cell_coord[i] * _cell_size[i];
+ }
+
+ /*! Retrieves the box corresponding to the cell whose coordinates
+ * are passed as argument.
+ * cell_coord
+ * i,j,k integer coordinates for the cell
+ * min_out
+ * The min x,y,x vector of the box. Filled in by the method.
+ * max_out
+ * The max x,y,z coordinates of the box. Filled in by the method.
+ */
+ inline void getCellBox(const Vec3u& cell_coord, Vec3r& min_out, Vec3r& max_out) {
+ getCellOrigin(cell_coord, min_out);
+ max_out = min_out + _cell_size;
+ }
+
+ /*! inserts a convex polygon occluder
+ * This method is quite coarse insofar as it
+ * adds all cells intersecting the polygon bounding box
+ * convex_poly
+ * The list of 3D points constituing a convex polygon
+ */
+ void insertOccluder(Polygon3r * convex_poly);
+
+ /*! Adds an occluder to the list of occluders */
+ void addOccluder(Polygon3r* occluder) {
+ _occluders.push_back(occluder);
+ }
+
+ /*! Casts a ray between a starting point and an ending point
+ * Returns the list of occluders contained
+ * in the cells intersected by this ray
+ * Starts with a call to InitRay.
+ */
+ void castRay(const Vec3r& orig,
+ const Vec3r& end,
+ OccludersSet& occluders,
+ unsigned timestamp);
+
+ /*! Casts an infinite ray (still finishing at the end of the grid) from a starting point and in a given direction.
+ * Returns the list of occluders contained
+ * in the cells intersected by this ray
+ * Starts with a call to InitRay.
+ */
+ void castInfiniteRay(const Vec3r& orig,
+ const Vec3r& dir,
+ OccludersSet& occluders,
+ unsigned timestamp);
+
+ /*! Casts an infinite ray (still finishing at the end of the grid) from a starting point and in a given direction.
+ * Returns the first intersection (occluder,t,u,v) or null.
+ * Starts with a call to InitRay.
+ */
+ Polygon3r * castRayToFindFirstIntersection(const Vec3r& orig,
+ const Vec3r& dir,
+ double& t,
+ double& u,
+ double& v,
+ unsigned timestamp);
+
+
+ /*! Init all structures and values for computing
+ * the cells intersected by this new ray
+ */
+ void initRay (const Vec3r &orig,
+ const Vec3r& end,
+ unsigned timestamp);
+
+ /*! Init all structures and values for computing
+ * the cells intersected by this infinite ray.
+ * Returns false if the ray doesn't intersect the
+ * grid.
+ */
+ bool initInfiniteRay (const Vec3r &orig,
+ const Vec3r& dir,
+ unsigned timestamp);
+
+
+ /*! Accessors */
+ inline const Vec3r& getOrigin() const {
+ return _orig;
+ }
+ inline Vec3r gridSize() const {
+ return _size;
+ }
+ inline Vec3r getCellSize() const {
+ return _cell_size;
+ }
+
+ void displayDebug() {
+ cerr << "Cells nb : " << _cells_nb << endl;
+ cerr << "Cell size : " << _cell_size << endl;
+ cerr << "Origin : " << _orig << endl;
+ cerr << "Occluders nb : " << _occluders.size() << endl;
+ }
+
+ protected:
+
+ /*! Core of castRay and castInfiniteRay, find occluders
+ * along the given ray
+ */
+ inline void castRayInternal(GridVisitor& visitor) {
+ Cell* current_cell = NULL;
+ do {
+ current_cell = getCell(_current_cell);
+ if (current_cell){
+ visitor.discoverCell(current_cell);
+ OccludersSet& occluders = current_cell->getOccluders(); // FIXME: I had forgotten the ref &
+ for (OccludersSet::iterator it = occluders.begin();
+ it != occluders.end();
+ it++) {
+ if ((unsigned)(*it)->userdata2 != _timestamp) {
+ (*it)->userdata2 = (void*)_timestamp;
+ visitor.examineOccluder(*it);
+ }
+ }
+ visitor.finishCell(current_cell);
+ }
+ } while ((!visitor.stop()) && (nextRayCell(_current_cell, _current_cell)));
+ }
+
+
+ /*! returns the cell next to the cell
+ * passed as argument.
+ */
+ bool nextRayCell(Vec3u& current_cell, Vec3u& next_cell);
+
+ unsigned _timestamp;
+
+ Vec3u _cells_nb; // number of cells for x,y,z axis
+ Vec3r _cell_size; // cell x,y,z dimensions
+ Vec3r _size; // grid x,y,x dimensions
+ Vec3r _orig; // grid origin
+
+ Vec3r _ray_dir; // direction vector for the ray
+ Vec3u _current_cell; // The current cell being processed (designated by its 3 coordinates)
+ Vec3r _pt; // Points corresponding to the incoming and outgoing intersections
+ // of one cell with the ray
+ real _t_end; // To know when we are at the end of the ray
+ real _t;
+
+ //OccludersSet _ray_occluders; // Set storing the occluders contained in the cells traversed by a ray
+ OccludersSet _occluders; // List of all occluders inserted in the grid
+};
+
+#endif // GRID_H
diff --git a/source/blender/freestyle/intern/geometry/HashGrid.cpp b/source/blender/freestyle/intern/geometry/HashGrid.cpp
new file mode 100755
index 00000000000..3cf845d57ef
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/HashGrid.cpp
@@ -0,0 +1,41 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "HashGrid.h"
+
+void HashGrid::clear()
+{
+ if(!_cells.empty()) {
+ for(GridHashTable::iterator it = _cells.begin();
+ it !=_cells.end();
+ it++) {
+ Cell* cell = (*it).second;
+ delete cell;
+ }
+ _cells.clear();
+ }
+
+ Grid::clear();
+}
+
+void HashGrid::configure(const Vec3r& orig, const Vec3r& size, unsigned nb) {
+ Grid::configure(orig, size, nb);
+}
diff --git a/source/blender/freestyle/intern/geometry/HashGrid.h b/source/blender/freestyle/intern/geometry/HashGrid.h
new file mode 100755
index 00000000000..f6605957676
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/HashGrid.h
@@ -0,0 +1,109 @@
+//
+// Filename : HashGrid.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a cell grid surrounding the
+// bounding box of the scene
+// Date of creation : 30/07/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef HASHGRID_H
+# define HASHGRID_H
+
+//# if defined(__GNUC__) && (__GNUC__ >= 3)
+// hash_map is not part of the C++ standard anymore;
+// hash_map.h has been kept though for backward compatibility
+//# include <hash_map.h>
+//# else
+//# include <hash_map>
+//# endif
+
+# include "Grid.h"
+# include <map>
+/*! Defines a hash table used for searching the Cells */
+struct GridHasher{
+#define _MUL 950706376UL
+#define _MOD 2147483647UL
+ inline size_t operator() (const Vec3u& p) const
+ {
+ size_t res = ((unsigned long) (p[0] * _MUL)) % _MOD;
+ res = ((res + (unsigned long) (p[1]) * _MUL)) % _MOD;
+ return ((res +(unsigned long) (p[2]) * _MUL)) % _MOD;
+ }
+};
+
+/*! Class to define a regular grid used for ray
+ casting computations */
+
+class LIB_GEOMETRY_EXPORT HashGrid : public Grid
+{
+ public:
+
+ typedef map<Vec3u, Cell*> GridHashTable;
+
+ HashGrid() : Grid() {}
+
+ virtual ~HashGrid() {
+ clear();
+ }
+
+ /*! clears the grid
+ * Deletes all the cells, clears the hashtable,
+ * resets size, size of cell, number of cells.
+ */
+ virtual void clear();
+
+ /*! Sets the different parameters of the grid
+ * orig
+ * The grid origin
+ * size
+ * The grid's dimensions
+ * nb
+ * The number of cells of the grid
+ */
+ virtual void configure(const Vec3r& orig, const Vec3r& size, unsigned nb);
+
+ /*! returns the cell whose coordinates
+ * are pased as argument
+ */
+ virtual Cell* getCell(const Vec3u& p) {
+ Cell* found_cell = NULL;
+
+ GridHashTable::const_iterator found = _cells.find(p);
+ if (found != _cells.end())
+ found_cell = (*found).second;
+ return found_cell;
+ }
+
+ /*! Fills the case p with the cell iCell */
+ virtual void fillCell(const Vec3u& p, Cell& cell) {
+ _cells[p] = &cell;
+ }
+
+protected:
+
+ GridHashTable _cells;
+};
+
+#endif // HASHGRID_H
diff --git a/source/blender/freestyle/intern/geometry/Noise.cpp b/source/blender/freestyle/intern/geometry/Noise.cpp
new file mode 100755
index 00000000000..396fc3bbb47
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/Noise.cpp
@@ -0,0 +1,264 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "Noise.h"
+# include <stdlib.h>
+# include <stdio.h>
+# include <math.h>
+#include <time.h>
+
+#define MINX -1000000
+#define MINY MINX
+#define MINZ MINX
+#define SCURVE(a) ((a)*(a)*(3.0-2.0*(a)))
+#define REALSCALE ( 2.0 / 65536.0 )
+#define NREALSCALE ( 2.0 / 4096.0 )
+#define HASH3D(a,b,c) hashTable[hashTable[hashTable[(a) & 0xfff] ^ ((b) & 0xfff)] ^ ((c) & 0xfff)]
+#define HASH(a,b,c) (xtab[(xtab[(xtab[(a) & 0xff] ^ (b)) & 0xff] ^ (c)) & 0xff] & 0xff)
+#define INCRSUM(m,s,x,y,z) ((s)*(RTable[m]*0.5 \
+ + RTable[m+1]*(x) \
+ + RTable[m+2]*(y) \
+ + RTable[m+3]*(z)))
+#define MAXSIZE 500
+#define nrand() ((float)rand()/(float)RAND_MAX)
+#define seednrand(x) srand(x*RAND_MAX)
+
+#define BM 0xff
+
+#define N 0x1000
+#define NP 12 /* 2^N */
+#define NM 0xfff
+
+#define s_curve(t) ( t * t * (3. - 2. * t) )
+
+#define lerp(t, a, b) ( a + t * (b - a) )
+
+#define setup(i,b0,b1,r0,r1)\
+ t = i + N;\
+ b0 = ((int)t) & BM;\
+ b1 = (b0+1) & BM;\
+ r0 = t - (int)t;\
+ r1 = r0 - 1.;
+
+void normalize2(float v[2])
+{
+ float s;
+
+ s = sqrt(v[0] * v[0] + v[1] * v[1]);
+ v[0] = v[0] / s;
+ v[1] = v[1] / s;
+}
+
+void normalize3(float v[3])
+{
+ float s;
+
+ s = sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
+ v[0] = v[0] / s;
+ v[1] = v[1] / s;
+ v[2] = v[2] / s;
+}
+
+float Noise::turbulence1(float arg, float freq, float amp, unsigned oct)
+{
+ float t;
+ float vec;
+
+ for (t = 0; oct > 0 && freq > 0; freq *= 2, amp /= 2, --oct)
+ {
+ vec = freq * arg;
+ t += smoothNoise1(vec) * amp;
+ }
+ return t;
+}
+
+float Noise::turbulence2(Vec2f& v, float freq, float amp, unsigned oct)
+{
+ float t;
+ Vec2f vec;
+
+ for (t = 0; oct > 0 && freq > 0; freq *= 2, amp /= 2, --oct)
+ {
+ vec.x() = freq * v.x();
+ vec.y() = freq * v.y();
+ t += smoothNoise2(vec) * amp;
+ }
+ return t;
+}
+
+float Noise::turbulence3(Vec3f& v, float freq, float amp, unsigned oct)
+{
+ float t;
+ Vec3f vec;
+
+ for (t = 0; oct > 0 && freq > 0; freq *= 2, amp /= 2, --oct)
+ {
+ vec.x() = freq * v.x();
+ vec.y() = freq * v.y();
+ vec.z() = freq * v.z();
+ t += smoothNoise3(vec) * amp;
+ }
+ return t;
+}
+
+// Noise functions over 1, 2, and 3 dimensions
+
+float Noise::smoothNoise1(float arg)
+{
+ int bx0, bx1;
+ float rx0, rx1, sx, t, u, v, vec;
+
+ vec = arg;
+ setup(vec, bx0,bx1, rx0,rx1);
+
+ sx = s_curve(rx0);
+
+ u = rx0 * g1[ p[ bx0 ] ];
+ v = rx1 * g1[ p[ bx1 ] ];
+
+ return lerp(sx, u, v);
+}
+
+float Noise::smoothNoise2(Vec2f& vec)
+{
+ int bx0, bx1, by0, by1, b00, b10, b01, b11;
+ float rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v;
+ register int i, j;
+
+ setup(vec.x(), bx0,bx1, rx0,rx1);
+ setup(vec.y(), by0,by1, ry0,ry1);
+
+ i = p[ bx0 ];
+ j = p[ bx1 ];
+
+ b00 = p[ i + by0 ];
+ b10 = p[ j + by0 ];
+ b01 = p[ i + by1 ];
+ b11 = p[ j + by1 ];
+
+ sx = s_curve(rx0);
+ sy = s_curve(ry0);
+
+#define at2(rx,ry) ( rx * q[0] + ry * q[1] )
+
+ q = g2[ b00 ] ; u = at2(rx0,ry0);
+ q = g2[ b10 ] ; v = at2(rx1,ry0);
+ a = lerp(sx, u, v);
+
+ q = g2[ b01 ] ; u = at2(rx0,ry1);
+ q = g2[ b11 ] ; v = at2(rx1,ry1);
+ b = lerp(sx, u, v);
+
+ return lerp(sy, a, b);
+}
+
+float Noise::smoothNoise3(Vec3f& vec)
+{
+ int bx0, bx1, by0, by1, bz0, bz1, b00, b10, b01, b11;
+ float rx0, rx1, ry0, ry1, rz0, rz1, *q, sy, sz, a, b, c, d, t, u, v;
+ register int i, j;
+
+ setup(vec.x(), bx0,bx1, rx0,rx1);
+ setup(vec.y(), by0,by1, ry0,ry1);
+ setup(vec.z(), bz0,bz1, rz0,rz1);
+
+ i = p[ bx0 ];
+ j = p[ bx1 ];
+
+ b00 = p[ i + by0 ];
+ b10 = p[ j + by0 ];
+ b01 = p[ i + by1 ];
+ b11 = p[ j + by1 ];
+
+ t = s_curve(rx0);
+ sy = s_curve(ry0);
+ sz = s_curve(rz0);
+
+#define at3(rx,ry,rz) ( rx * q[0] + ry * q[1] + rz * q[2] )
+
+ q = g3[ b00 + bz0 ] ;
+ u = at3(rx0,ry0,rz0);
+ q = g3[ b10 + bz0 ] ;
+ v = at3(rx1,ry0,rz0);
+ a = lerp(t, u, v);
+
+ q = g3[ b01 + bz0 ] ;
+ u = at3(rx0,ry1,rz0);
+ q = g3[ b11 + bz0 ] ;
+ v = at3(rx1,ry1,rz0);
+ b = lerp(t, u, v);
+
+ c = lerp(sy, a, b);
+
+ q = g3[ b00 + bz1 ] ;
+ u = at3(rx0,ry0,rz1);
+ q = g3[ b10 + bz1 ] ;
+ v = at3(rx1,ry0,rz1);
+ a = lerp(t, u, v);
+
+ q = g3[ b01 + bz1 ] ;
+ u = at3(rx0,ry1,rz1);
+ q = g3[ b11 + bz1 ] ;
+ v = at3(rx1,ry1,rz1);
+ b = lerp(t, u, v);
+
+ d = lerp(sy, a, b);
+
+ return lerp(sz, c, d);
+}
+
+Noise::Noise()
+{
+ int i, j, k;
+
+ seednrand(time(NULL));
+ for (i = 0 ; i < _Noise_B_ ; i++)
+ {
+ p[i] = i;
+
+ g1[i] = (float)((rand() % (_Noise_B_ + _Noise_B_)) - _Noise_B_) / _Noise_B_;
+
+ for (j = 0 ; j < 2 ; j++)
+ g2[i][j] = (float)((rand() % (_Noise_B_ + _Noise_B_)) - _Noise_B_) / _Noise_B_;
+ normalize2(g2[i]);
+
+ for (j = 0 ; j < 3 ; j++)
+ g3[i][j] = (float)((rand() % (_Noise_B_ + _Noise_B_)) - _Noise_B_) / _Noise_B_;
+ normalize3(g3[i]);
+ }
+
+ while (--i)
+ {
+ k = p[i];
+ p[i] = p[j = rand() % _Noise_B_];
+ p[j] = k;
+ }
+
+ for (i = 0 ; i < _Noise_B_ + 2 ; i++)
+ {
+ p[_Noise_B_ + i] = p[i];
+ g1[_Noise_B_ + i] = g1[i];
+ for (j = 0 ; j < 2 ; j++)
+ g2[_Noise_B_ + i][j] = g2[i][j];
+ for (j = 0 ; j < 3 ; j++)
+ g3[_Noise_B_ + i][j] = g3[i][j];
+ }
+}
diff --git a/source/blender/freestyle/intern/geometry/Noise.h b/source/blender/freestyle/intern/geometry/Noise.h
new file mode 100755
index 00000000000..00cebbb451e
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/Noise.h
@@ -0,0 +1,77 @@
+//
+// Filename : Noise.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Class to define Perlin noise
+// Date of creation : 12/01/2004
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef NOISE_H
+# define NOISE_H
+
+
+# include "../system/FreestyleConfig.h"
+# include "Geom.h"
+
+#define _Noise_B_ 0x100
+
+using namespace Geometry;
+using namespace std;
+
+/*! Class to provide Perlin Noise functionalities */
+class LIB_GEOMETRY_EXPORT Noise
+{
+ public:
+
+ /*! Builds a Noise object */
+ Noise();
+ /*! Destructor */
+ ~Noise() {}
+
+ /*! Returns a noise value for a 1D element */
+ float turbulence1(float arg, float freq, float amp, unsigned oct = 4);
+
+ /*! Returns a noise value for a 2D element */
+ float turbulence2(Vec2f& v, float freq, float amp, unsigned oct = 4);
+
+ /*! Returns a noise value for a 3D element */
+ float turbulence3(Vec3f& v, float freq, float amp, unsigned oct = 4);
+
+ /*! Returns a smooth noise value for a 1D element */
+ float smoothNoise1(float arg);
+ /*! Returns a smooth noise value for a 2D element */
+ float smoothNoise2(Vec2f& vec);
+ /*! Returns a smooth noise value for a 3D element */
+ float smoothNoise3(Vec3f& vec);
+
+ private:
+
+ int p[ _Noise_B_ + _Noise_B_ + 2];
+ float g3[ _Noise_B_ + _Noise_B_ + 2][3];
+ float g2[ _Noise_B_ + _Noise_B_ + 2][2];
+ float g1[ _Noise_B_ + _Noise_B_ + 2];
+ int start;
+};
+
+#endif // NOISE_H
diff --git a/source/blender/freestyle/intern/geometry/Polygon.h b/source/blender/freestyle/intern/geometry/Polygon.h
new file mode 100755
index 00000000000..f9c4c78d424
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/Polygon.h
@@ -0,0 +1,215 @@
+//
+// Filename : Polygon.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a polygon
+// Date of creation : 30/07/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef POLYGON_H
+# define POLYGON_H
+
+# include <vector>
+# include "Geom.h"
+# include "GeomUtils.h"
+
+using namespace std;
+
+namespace Geometry {
+
+template <class Point>
+class Polygon
+{
+ public:
+
+ inline Polygon() {
+ _id = 0;
+ userdata = 0;
+ userdata2 = 0;
+ }
+
+ inline Polygon(const vector<Point>& vertices) {
+ _vertices = vertices;
+ computeBBox();
+ _id = 0;
+ userdata = 0;
+ userdata2 = 0;
+ }
+
+ inline Polygon(const Polygon<Point>& poly) {
+ Point p;
+ for(typename vector<Point>::const_iterator it = poly.getVertices().begin();
+ it != poly.getVertices().end();
+ it++) {
+ p = *it;
+ _vertices.push_back(p);
+ }
+
+ _id = poly.getId();
+ poly.getBBox(_min, _max);
+ userdata = 0;
+ userdata2 = 0;
+ }
+
+ virtual ~Polygon() {}
+
+ //
+ // Accessors
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ inline const vector<Point>& getVertices() const {
+ return _vertices;
+ }
+
+ inline void getBBox(Point& min, Point& max) const {
+ min = _min;
+ max = _max;
+ }
+
+ inline Point& getBBoxCenter()
+ {
+ Point result;
+ result = (_min + _max) / 2;
+ return result;
+ }
+
+ inline Point& getCenter() {
+ Point result;
+ for (typename vector<Point>::iterator it = _vertices.begin();
+ it != _vertices.end();
+ it++)
+ result += *it;
+ result /= _vertices.size();
+ return result;
+ }
+
+ inline unsigned getId() const {
+ return _id;
+ }
+
+ //
+ // Modifiers
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ inline void setVertices(const vector<Point>& vertices) {
+ _vertices.clear();
+ Point p;
+ for (typename vector<Point>::const_iterator it = vertices.begin();
+ it != vertices.end();
+ it++) {
+ p = *it;
+ _vertices.push_back(p);
+ }
+ computeBBox();
+ }
+
+ inline void setId(unsigned id) {
+ _id = id;
+ }
+
+ //
+ // Other methods
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ inline void computeBBox() {
+ if(_vertices.empty())
+ return;
+
+ _max = _vertices[0];
+ _min = _vertices[0];
+
+ for(typename vector<Point>::iterator it = _vertices.begin();
+ it != _vertices.end();
+ it++) {
+ for(unsigned i = 0; i < Point::dim(); i++) {
+ if((*it)[i] > _max[i])
+ _max[i] = (*it)[i];
+ if((*it)[i] < _min[i])
+ _min[i] = (*it)[i];
+ }
+ }
+ }
+
+ // FIXME Is it possible to get rid of userdatas ?
+ void* userdata;
+ void* userdata2; // Used during ray casting
+
+ protected:
+
+ vector<Point> _vertices;
+ Point _min;
+ Point _max;
+ unsigned _id;
+};
+
+
+//
+// Polygon3r class
+//
+///////////////////////////////////////////////////////////////////////////////
+
+class Polygon3r : public Polygon<Vec3r>
+{
+ public:
+
+ inline Polygon3r() : Polygon<Vec3r>() {}
+
+ inline Polygon3r(const vector<Vec3r>& vertices,
+ const Vec3r& normal) : Polygon<Vec3r>(vertices) {
+ setNormal(normal);
+ }
+
+ inline Polygon3r(const Polygon3r& poly) : Polygon<Vec3r>(poly) {}
+
+ virtual ~Polygon3r() {}
+
+ void setNormal(const Vec3r& normal) {
+ _normal = normal;
+ }
+
+ Vec3r getNormal() const {
+ return _normal;
+ }
+
+ /*! Check whether the Polygon intersects with the ray or not */
+ inline bool rayIntersect(Vec3r& orig, Vec3r& dir,
+ real& t, real& u, real& v, real epsilon = M_EPSILON) {
+ // if (_vertices.size() < 3)
+ // return false;
+ return GeomUtils::intersectRayTriangle(orig, dir,
+ _vertices[0], _vertices[1], _vertices[2],
+ t, u, v, epsilon);
+ }
+
+ private:
+
+ Vec3r _normal;
+};
+
+} // end of namespace Geometry
+
+#endif // POLYGON_H
diff --git a/source/blender/freestyle/intern/geometry/SweepLine.h b/source/blender/freestyle/intern/geometry/SweepLine.h
new file mode 100755
index 00000000000..e3fb4ad8c0c
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/SweepLine.h
@@ -0,0 +1,334 @@
+//
+// Filename : SweepLine.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a Sweep Line
+// Date of creation : 29/08/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef SWEEPLINE_H
+# define SWEEPLINE_H
+
+# include <list>
+# include <vector>
+
+/*! Class to define the intersection berween two segments*/
+template<class Edge>
+class Intersection
+{
+public:
+
+ template<class EdgeClass>
+ Intersection(EdgeClass* eA, real ta, EdgeClass* eB, real tb)
+ {
+ EdgeA = eA;
+ EdgeB = eB;
+ tA = ta;
+ tB = tb;
+ userdata = 0;
+ }
+
+ Intersection(const Intersection& iBrother)
+ {
+ EdgeA = iBrother.EdgeA;
+ EdgeB = iBrother.EdgeB;
+ tA = iBrother.tA;
+ tB = iBrother.tB;
+ userdata = 0;
+ }
+
+ /*! returns the parameter giving the
+ * intersection, for the edge iEdge
+ */
+ real getParameter(Edge *iEdge)
+ {
+ if(iEdge == EdgeA)
+ return tA;
+ if(iEdge == EdgeB)
+ return tB;
+ return 0;
+ }
+
+public:
+ void * userdata; // FIXME
+
+ Edge *EdgeA; // first segment
+ Edge *EdgeB; // second segment
+ real tA; // parameter defining the intersection point with respect to the segment EdgeA.
+ real tB; // parameter defining the intersection point with respect to the segment EdgeB.
+};
+
+
+
+
+
+
+
+
+template<class T, class Point>
+class Segment
+{
+ public:
+ Segment()
+ {
+ }
+ Segment(T& s, const Point& iA, const Point& iB)
+ {
+ _edge = s;
+ if(iA < iB)
+ {
+ A = iA;
+ B = iB;
+ _order = true;
+ }
+ else
+ {
+ A = iB;
+ B = iA;
+ _order = false;
+ }
+ }
+
+ Segment(Segment<T,Point>& iBrother)
+ {
+ _edge = iBrother.edge();
+ A = iBrother.A;
+ B = iBrother.B;
+ _Intersections = iBrother._Intersections;
+ _order = iBrother._order;
+ }
+
+ Segment(const Segment<T,Point>& iBrother)
+ {
+ _edge = iBrother._edge;
+ A = iBrother.A;
+ B = iBrother.B;
+ _Intersections = iBrother._Intersections;
+ _order = iBrother._order;
+ }
+
+ ~Segment() {
+ _Intersections.clear();
+ }
+
+ inline Point operator[](const unsigned short int& i) const
+ {
+ return i%2==0 ? A : B;
+ }
+
+ inline bool operator==(const Segment<T,Point>& iBrother)
+ {
+ if(_edge == iBrother._edge)
+ return true;
+
+ return false;
+ }
+
+ /* Adds an intersection for this segment */
+ inline void AddIntersection(Intersection<Segment<T,Point> > *i) {_Intersections.push_back(i);}
+
+ /*! Checks for a common vertex with another edge */
+ inline bool CommonVertex(const Segment<T,Point>& S, Point& CP)
+ {
+ if((A == S[0]) || (A == S[1]))
+ {
+ CP = A;
+ return true;
+ }
+ if((B == S[0]) || (B == S[1]))
+ {
+ CP = B;
+ return true;
+ }
+
+ return false;
+ }
+
+ inline vector<Intersection<Segment<T,Point> >*>& intersections() {return _Intersections;}
+ inline bool order() {return _order;}
+ inline T& edge() {return _edge;}
+
+ private:
+ T _edge;
+ Point A;
+ Point B;
+ std::vector<Intersection<Segment<T,Point> >*> _Intersections; // list of intersections parameters
+ bool _order; // true if A and B are in the same order than _edge.A and _edge.B. false otherwise.
+};
+
+/*! defines a binary function that can be overload
+ * by the user to specify at each condition
+ * the intersection between 2 edges must be computed
+ */
+template<class T1, class T2>
+struct binary_rule
+{
+ binary_rule() {}
+ template<class T3,class T4>
+ binary_rule(const binary_rule<T3,T4>& brother) {}
+ virtual ~binary_rule() {}
+
+ virtual bool operator()(T1&, T2&)
+ {
+ return true;
+ }
+};
+
+
+template<class T,class Point>
+class SweepLine
+{
+public:
+
+ SweepLine() {}
+ ~SweepLine()
+ {
+ for(typename vector<Intersection<Segment<T,Point> >*>::iterator i=_Intersections.begin(),iend=_Intersections.end();
+ i!=iend;
+ i++)
+ {
+ delete (*i);
+ }
+ _Intersections.clear();
+
+ for(typename vector<Segment<T,Point>* >::iterator ie=_IntersectedEdges.begin(),ieend=_IntersectedEdges.end();
+ ie!=ieend;
+ ie++)
+ {
+ delete (*ie);
+ }
+ _IntersectedEdges.clear();
+
+ _set.clear();
+ }
+
+
+ inline void process(Point& p,
+ vector<Segment<T,Point>*>& segments,
+ binary_rule<Segment<T,Point>,Segment<T,Point> >& binrule
+ //binary_rule<Segment<T,Point>,Segment<T,Point> >& binrule = binary_rule<Segment<T,Point>,Segment<T,Point> >()
+ )
+ {
+ // first we remove the segments that need to be removed and then
+ // we add the segments to add
+ vector<Segment<T,Point>*> toadd;
+ typename vector<Segment<T,Point>*>::iterator s, send;
+ for(s=segments.begin(), send=segments.end();
+ s!=send;
+ s++)
+ {
+ if(p == (*(*s))[0])
+ toadd.push_back((*s));
+ else
+ remove((*s));
+ }
+ for(s=toadd.begin(), send=toadd.end();
+ s!=send;
+ s++)
+ {
+ add((*s), binrule);
+ }
+ }
+
+ inline void add(Segment<T,Point>* S,
+ binary_rule<Segment<T,Point>,Segment<T,Point> >& binrule
+ //binary_rule<Segment<T,Point>,Segment<T,Point> >& binrule = binary_rule<Segment<T,Point>, Segment<T,Point> >()
+ )
+ {
+ real t,u;
+ Point CP;
+ Vec2r v0, v1, v2, v3;
+ if(true == S->order())
+ {
+ v0[0] = ((*S)[0])[0];
+ v0[1] = ((*S)[0])[1];
+ v1[0] = ((*S)[1])[0];
+ v1[1] = ((*S)[1])[1];
+ }
+ else
+ {
+ v1[0] = ((*S)[0])[0];
+ v1[1] = ((*S)[0])[1];
+ v0[0] = ((*S)[1])[0];
+ v0[1] = ((*S)[1])[1];
+ }
+ for(typename std::list<Segment<T,Point>* >::iterator s=_set.begin(), send=_set.end();
+ s!=send;
+ s++)
+ {
+ Segment<T,Point>* currentS = (*s);
+ if(true != binrule(*S, *currentS))
+ continue;
+
+ if(true == currentS->order())
+ {
+ v2[0] = ((*currentS)[0])[0];
+ v2[1] = ((*currentS)[0])[1];
+ v3[0] = ((*currentS)[1])[0];
+ v3[1] = ((*currentS)[1])[1];
+ }
+ else
+ {
+ v3[0] = ((*currentS)[0])[0];
+ v3[1] = ((*currentS)[0])[1];
+ v2[0] = ((*currentS)[1])[0];
+ v2[1] = ((*currentS)[1])[1];
+ }
+ if(S->CommonVertex(*currentS, CP))
+ continue; // the two edges have a common vertex->no need to check
+
+ if(GeomUtils::intersect2dSeg2dSegParametric(v0, v1, v2, v3, t, u))
+ {
+ // create the intersection
+ Intersection<Segment<T,Point> > * inter = new Intersection<Segment<T,Point> >(S,t,currentS,u);
+ // add it to the intersections list
+ _Intersections.push_back(inter);
+ // add this intersection to the first edge intersections list
+ S->AddIntersection(inter);
+ // add this intersection to the second edge intersections list
+ currentS->AddIntersection(inter);
+ }
+ }
+ // add the added segment to the list of active segments
+ _set.push_back(S);
+ }
+
+ inline void remove(Segment<T,Point>* s)
+ {
+ if(s->intersections().size() > 0)
+ _IntersectedEdges.push_back(s);
+ _set.remove(s);
+ }
+
+ vector<Segment<T,Point>* >& intersectedEdges() {return _IntersectedEdges;}
+ vector<Intersection<Segment<T,Point> >*>& intersections() {return _Intersections;}
+
+
+private:
+ std::list<Segment<T,Point>* > _set; // set of active edges for a given position of the sweep line
+ std::vector<Segment<T,Point>* > _IntersectedEdges; // the list of intersected edges
+ std::vector<Intersection<Segment<T,Point> >*> _Intersections; // the list of all intersections.
+};
+
+#endif // SWEEPLINE_H
diff --git a/source/blender/freestyle/intern/geometry/VecMat.h b/source/blender/freestyle/intern/geometry/VecMat.h
new file mode 100755
index 00000000000..9bbec3b1349
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/VecMat.h
@@ -0,0 +1,899 @@
+//
+// Filename : VecMat.h
+// Author(s) : Sylvain Paris
+// Emmanuel Turquin
+// Stephane Grabli
+// Purpose : Vectors and Matrices definition and manipulation
+// Date of creation : 12/06/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VECMAT_H
+# define VECMAT_H
+
+# include <math.h>
+# include <vector>
+# include <iostream>
+
+namespace VecMat {
+
+ namespace Internal {
+
+ template <bool B>
+ struct is_false {};
+
+ template <>
+ struct is_false<false> {
+ static inline void ensure() {}
+ };
+
+ } // end of namespace Internal
+
+ //
+ // Vector class
+ // - T: value type
+ // - N: dimension
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ template <class T, unsigned N>
+ class Vec
+ {
+ public:
+
+ typedef T value_type;
+
+ // constructors
+
+ inline Vec() {
+ for (unsigned i = 0; i < N; i++)
+ this->_coord[i] = 0;
+ }
+
+ ~Vec() {
+ Internal::is_false<(N == 0)>::ensure();
+ }
+
+ template <class U>
+ explicit inline Vec(const U tab[N]) {
+ for (unsigned i = 0; i < N; i++)
+ this->_coord[i] = (T)tab[i];
+ }
+
+ template <class U>
+ explicit inline Vec(const std::vector<U>& tab) {
+ for (unsigned i = 0; i < N; i++)
+ this->_coord[i] = (T)tab[i];
+ }
+
+ template <class U>
+ explicit inline Vec(const Vec<U, N>& v) {
+ for (unsigned i = 0; i < N; i++)
+ this->_coord[i] = (T)v[i];
+ }
+
+ // accessors
+
+ inline value_type operator[](const unsigned i) const {
+ return this->_coord[i];
+ }
+
+ inline value_type& operator[](const unsigned i) {
+ return this->_coord[i];
+ }
+
+ static inline unsigned dim() {
+ return N;
+ }
+
+ // various useful methods
+
+ inline value_type norm() const {
+ return (T)sqrt((float)squareNorm());
+ }
+
+ inline value_type squareNorm() const {
+ return (*this) * (*this);
+ }
+
+ inline Vec<T, N>& normalize() {
+ value_type n = norm();
+ for (unsigned i = 0; i < N; i++)
+ this->_coord[i] /= n;
+ return *this;
+ }
+
+ inline Vec<T, N>& normalizeSafe() {
+ value_type n = norm();
+ if (n)
+ for (unsigned i=0; i < N; i++)
+ this->_coord[i] /= n;
+ return *this;
+ }
+
+ // classical operators
+ inline Vec<T, N> operator+(const Vec<T, N>& v) const{
+ Vec<T, N> res(v);
+ res += *this;
+ return res;
+ }
+
+ inline Vec<T, N> operator-(const Vec<T,N>& v) const{
+ Vec<T, N> res(*this);
+ res -= v;
+ return res;
+ }
+
+ inline Vec<T, N> operator*(const typename Vec<T,N>::value_type r) const{
+ Vec<T, N> res(*this);
+ res *= r;
+ return res;
+ }
+
+ inline Vec<T, N> operator/(const typename Vec<T,N>::value_type r) const{
+ Vec<T, N> res(*this);
+ if (r)
+ res /= r;
+ return res;
+ }
+
+ // dot product
+ inline value_type operator*(const Vec<T, N>& v) const{
+ value_type sum = 0;
+ for (unsigned i = 0; i < N; i++)
+ sum += (*this)[i] * v[i];
+ return sum;
+ }
+
+ template <class U>
+ inline Vec<T, N>& operator=(const Vec<U, N>& v) {
+ if (this != &v)
+ for (unsigned i = 0; i < N; i++)
+ this->_coord[i] = (T)v[i];
+ return *this;
+ }
+
+ template <class U>
+ inline Vec<T, N>& operator+=(const Vec<U, N>& v) {
+ for (unsigned i = 0 ; i < N; i++)
+ this->_coord[i] += (T)v[i];
+ return *this;
+ }
+
+ template <class U>
+ inline Vec<T, N>& operator-=(const Vec<U, N>& v) {
+ for (unsigned i = 0 ; i < N; i++)
+ this->_coord[i] -= (T)v[i];
+ return *this;
+ }
+
+ template <class U>
+ inline Vec<T, N>& operator*=(const U r) {
+ for (unsigned i = 0 ; i < N; i++)
+ this->_coord[i] *= r;
+ return *this;
+ }
+
+ template <class U>
+ inline Vec<T, N>& operator/=(const U r) {
+ if (r)
+ for (unsigned i = 0 ; i < N; i++)
+ this->_coord[i] /= r;
+ return *this;
+ }
+
+
+ inline bool operator==(const Vec<T, N>& v) const {
+ for(unsigned i = 0; i < N; i++)
+ if (this->_coord[i] != v[i])
+ return false;
+ return true;
+ }
+
+ inline bool operator!=(const Vec<T, N>& v) const {
+ for(unsigned i = 0; i < N; i++)
+ if (this->_coord[i] != v[i])
+ return true;
+ return false;
+ }
+
+ inline bool operator<(const Vec<T, N>& v) const {
+ for (unsigned i = 0; i<N; i++) {
+ if (this->_coord[i] < v[i])
+ return true;
+ if (this->_coord[i] > v[i])
+ return false;
+ if (this->_coord[i] == v[i])
+ continue;
+ }
+ return false;
+ }
+
+ inline bool operator>(const Vec<T, N>& v) const {
+ for (unsigned i=0; i<N; i++) {
+ if(this->_coord[i] > v[i])
+ return true;
+ if(this->_coord[i] < v[i])
+ return false;
+ if(this->_coord[i] == v[i])
+ continue;
+ }
+ return false;
+ }
+
+ protected:
+
+ value_type _coord[N];
+ enum {
+ _dim = N,
+ };
+ };
+
+
+ //
+ // Vec2 class (2D Vector)
+ // - T: value type
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ template <class T>
+ class Vec2 : public Vec<T, 2>
+ {
+ public:
+
+ typedef typename Vec<T, 2>::value_type value_type;
+
+ inline Vec2() : Vec<T, 2>() {}
+
+ template <class U>
+ explicit inline Vec2(const U tab[2]) : Vec<T, 2>(tab) {}
+
+ template <class U>
+ explicit inline Vec2(const std::vector<U>& tab) : Vec<T, 2>(tab) {}
+
+ template <class U>
+ inline Vec2(const Vec<U, 2>& v) : Vec<T, 2>(v) {}
+
+ inline Vec2(const value_type x,
+ const value_type y = 0) : Vec<T, 2>() {
+ this->_coord[0] = (T)x;
+ this->_coord[1] = (T)y;
+ }
+
+ inline value_type x() const {
+ return this->_coord[0];
+ }
+
+ inline value_type& x() {
+ return this->_coord[0];
+ }
+
+ inline value_type y() const {
+ return this->_coord[1];
+ }
+
+ inline value_type& y() {
+ return this->_coord[1];
+ }
+
+ inline void setX(const value_type v) {
+ this->_coord[0] = v;
+ }
+
+ inline void setY(const value_type v) {
+ this->_coord[1] = v;
+ }
+
+ // FIXME: hack swig -- no choice
+ inline Vec2<T> operator+(const Vec2<T>& v) const{
+ Vec2<T> res(v);
+ res += *this;
+ return res;
+ }
+
+ inline Vec2<T> operator-(const Vec2<T>& v) const{
+ Vec2<T> res(*this);
+ res -= v;
+ return res;
+ }
+
+ inline Vec2<T> operator*(const value_type r) const{
+ Vec2<T> res(*this);
+ res *= r;
+ return res;
+ }
+
+ inline Vec2<T> operator/(const value_type r) const{
+ Vec2<T> res(*this);
+ if (r)
+ res /= r;
+ return res;
+ }
+
+ // dot product
+ inline value_type operator*(const Vec2<T>& v) const{
+ value_type sum = 0;
+ for (unsigned i = 0; i < 2; i++)
+ sum += (*this)[i] * v[i];
+ return sum;
+ }
+ };
+
+
+ //
+ // HVec3 class (3D Vector in homogeneous coordinates)
+ // - T: value type
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ template <class T>
+ class HVec3 : public Vec<T, 4>
+ {
+ public:
+
+ typedef typename Vec<T, 4>::value_type value_type;
+
+ inline HVec3() : Vec<T, 4>() {}
+
+ template <class U>
+ explicit inline HVec3(const U tab[4]) : Vec<T, 4>(tab) {}
+
+ template <class U>
+ explicit inline HVec3(const std::vector<U>& tab) : Vec<T, 4>(tab) {}
+
+ template<class U>
+ inline HVec3(const Vec<U, 4>& v) : Vec<T, 4>(v) {}
+
+ inline HVec3(const value_type sx,
+ const value_type sy = 0,
+ const value_type sz = 0,
+ const value_type s = 1) {
+ this->_coord[0] = sx;
+ this->_coord[1] = sy;
+ this->_coord[2] = sz;
+ this->_coord[3] = s;
+ }
+
+ template <class U>
+ inline HVec3(const Vec<U, 3>& sv,
+ const U s = 1) {
+ this->_coord[0] = (T)sv[0];
+ this->_coord[1] = (T)sv[1];
+ this->_coord[2] = (T)sv[2];
+ this->_coord[3] = (T)s;
+ }
+
+ inline value_type sx() const {
+ return this->_coord[0];
+ }
+
+ inline value_type& sx() {
+ return this->_coord[0];
+ }
+
+ inline value_type sy() const {
+ return this->_coord[1];
+ }
+
+ inline value_type& sy() {
+ return this->_coord[1];
+ }
+
+ inline value_type sz() const {
+ return this->_coord[2];
+ }
+
+ inline value_type& sz() {
+ return this->_coord[2];
+ }
+
+ inline value_type s() const {
+ return this->_coord[3];
+ }
+
+ inline value_type& s() {
+ return this->_coord[3];
+ }
+
+ // Acces to non-homogeneous coordinates in 3D
+
+ inline value_type x() const {
+ return this->_coord[0] / this->_coord[3];
+ }
+
+ inline value_type y() const {
+ return this->_coord[1] / this->_coord[3];
+ }
+
+ inline value_type z() const {
+ return this->_coord[2] / this->_coord[3];
+ }
+ };
+
+
+ //
+ // Vec3 class (3D Vec)
+ // - T: value type
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ template <class T>
+ class Vec3 : public Vec<T, 3>
+ {
+ public:
+
+ typedef typename Vec<T, 3>::value_type value_type;
+
+ inline Vec3() : Vec<T, 3>() {}
+
+ template <class U>
+ explicit inline Vec3(const U tab[3]) : Vec<T, 3>(tab) {}
+
+ template <class U>
+ explicit inline Vec3(const std::vector<U>& tab) : Vec<T, 3>(tab) {}
+
+ template<class U>
+ inline Vec3(const Vec<U, 3>& v) : Vec<T, 3>(v) {}
+
+ template<class U>
+ inline Vec3(const HVec3<U>& v) {
+ this->_coord[0] = (T)v.x();
+ this->_coord[1] = (T)v.y();
+ this->_coord[2] = (T)v.z();
+ }
+
+ inline Vec3(const value_type x,
+ const value_type y = 0,
+ const value_type z = 0) : Vec<T, 3>() {
+ this->_coord[0] = x;
+ this->_coord[1] = y;
+ this->_coord[2] = z;
+ }
+
+ inline value_type x() const {
+ return this->_coord[0];
+ }
+
+ inline value_type& x() {
+ return this->_coord[0];
+ }
+
+ inline value_type y() const {
+ return this->_coord[1];
+ }
+
+ inline value_type& y() {
+ return this->_coord[1];
+ }
+
+ inline value_type z() const {
+ return this->_coord[2];
+ }
+
+ inline value_type& z() {
+ return this->_coord[2];
+ }
+
+ inline void setX(const value_type v) {
+ this->_coord[0] = v;
+ }
+
+ inline void setY(const value_type v) {
+ this->_coord[1] = v;
+ }
+
+ inline void setZ(const value_type v) {
+ this->_coord[2] = v;
+ }
+
+ // classical operators
+ // FIXME: hack swig -- no choice
+ inline Vec3<T> operator+(const Vec3<T>& v) const{
+ Vec3<T> res(v);
+ res += *this;
+ return res;
+ }
+
+ inline Vec3<T> operator-(const Vec3<T>& v) const{
+ Vec3<T> res(*this);
+ res -= v;
+ return res;
+ }
+
+ inline Vec3<T> operator*(const value_type r) const{
+ Vec3<T> res(*this);
+ res *= r;
+ return res;
+ }
+
+ inline Vec3<T> operator/(const value_type r) const{
+ Vec3<T> res(*this);
+ if (r)
+ res /= r;
+ return res;
+ }
+
+ // dot product
+ inline value_type operator*(const Vec3<T>& v) const{
+ value_type sum = 0;
+ for (unsigned i = 0; i < 3; i++)
+ sum += (*this)[i] * v[i];
+ return sum;
+ }
+
+ // cross product for 3D Vectors
+ // FIXME: hack swig -- no choice
+ inline Vec3<T> operator^(const Vec3<T>& v) const{
+ Vec3<T> res((*this)[1] * v[2] - (*this)[2] * v[1],
+ (*this)[2] * v[0] - (*this)[0] * v[2],
+ (*this)[0] * v[1] - (*this)[1] * v[0]);
+ return res;
+ }
+
+ // cross product for 3D Vectors
+ template <typename U>
+ inline Vec3<T> operator^(const Vec<U, 3>& v) const{
+ Vec3<T> res((*this)[1] * v[2] - (*this)[2] * v[1],
+ (*this)[2] * v[0] - (*this)[0] * v[2],
+ (*this)[0] * v[1] - (*this)[1] * v[0]);
+ return res;
+ }
+ };
+
+
+ //
+ // Matrix class
+ // - T: value type
+ // - M: rows
+ // - N: cols
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ // Dirty, but icc under Windows needs this
+# define _SIZE (M * N)
+
+ template <class T, unsigned M, unsigned N>
+ class Matrix
+ {
+ public:
+
+ typedef T value_type;
+
+ inline Matrix() {
+ for (unsigned i = 0; i < _SIZE; i++)
+ this->_coord[i] = 0;
+ }
+
+ ~Matrix() {
+ Internal::is_false<(M == 0)>::ensure();
+ Internal::is_false<(N == 0)>::ensure();
+ }
+
+ template <class U>
+ explicit inline Matrix(const U tab[_SIZE]) {
+ for (unsigned i = 0; i < _SIZE; i++)
+ this->_coord[i] = tab[i];
+ }
+
+ template <class U>
+ explicit inline Matrix(const std::vector<U>& tab) {
+ for (unsigned i = 0; i < _SIZE; i++)
+ this->_coord[i] = tab[i];
+ }
+
+ template <class U>
+ inline Matrix(const Matrix<U, M, N>& m) {
+ for (unsigned i = 0; i < M; i++)
+ for (unsigned j = 0; j < N; j++)
+ this->_coord[i * N + j] = (T)m(i, j);
+ }
+
+ inline value_type operator()(const unsigned i, const unsigned j) const {
+ return this->_coord[i * N + j];
+ }
+
+ inline value_type& operator()(const unsigned i, const unsigned j) {
+ return this->_coord[i * N + j];
+ }
+
+ static inline unsigned rows() {
+ return M;
+ }
+
+ static inline unsigned cols() {
+ return N;
+ }
+
+ inline Matrix<T, M, N>& transpose() const {
+ Matrix<T, N, M> res;
+ for (unsigned i = 0; i < M; i++)
+ for (unsigned j = 0; j < N; j++)
+ res(j,i) = this->_coord[i * N + j];
+ return res;
+ }
+
+ template <class U>
+ inline Matrix<T, M, N>& operator=(const Matrix<U, M, N>& m) {
+ if (this != &m)
+ for (unsigned i = 0; i < M; i++)
+ for (unsigned j = 0; j < N; j++)
+ this->_coord[i * N + j] = (T)m(i, j);
+ return *this;
+ }
+
+ template <class U>
+ inline Matrix<T, M, N>& operator+=(const Matrix<U, M, N>& m) {
+ for (unsigned i = 0; i < M; i++)
+ for (unsigned j = 0; j < N; j++)
+ this->_coord[i * N + j] += (T)m(i, j);
+ return *this;
+ }
+
+ template <class U>
+ inline Matrix<T, M, N>& operator-=(const Matrix<U, M, N>& m) {
+ for (unsigned i = 0; i < M; i++)
+ for (unsigned j = 0; j < N; j++)
+ this->_coord[i * N + j] -= (T)m(i, j);
+ return *this;
+ }
+
+ template <class U>
+ inline Matrix<T, M, N>& operator*=(const U lambda) {
+ for (unsigned i = 0; i < M; i++)
+ for (unsigned j = 0; j < N; j++)
+ this->_coord[i * N + j] *= lambda;
+ return *this;
+ }
+
+ template <class U>
+ inline Matrix<T, M, N>& operator/=(const U lambda) {
+ if (lambda)
+ for (unsigned i = 0; i < M; i++)
+ for (unsigned j = 0; j < N; j++)
+ this->_coord[i * N + j] /= lambda;
+ return *this;
+ }
+
+ protected:
+
+ value_type _coord[_SIZE];
+ };
+
+
+ //
+ // SquareMatrix class
+ // - T: value type
+ // - N: rows & cols
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ // Dirty, but icc under Windows needs this
+# define __SIZE (N * N)
+
+ template <class T, unsigned N>
+ class SquareMatrix : public Matrix<T, N, N>
+ {
+ public:
+
+ typedef T value_type;
+
+ inline SquareMatrix() : Matrix<T, N, N>() {}
+
+ template <class U>
+ explicit inline SquareMatrix(const U tab[__SIZE]) : Matrix<T, N, N>(tab) {}
+
+ template <class U>
+ explicit inline SquareMatrix(const std::vector<U>& tab) : Matrix<T, N, N>(tab) {}
+
+ template <class U>
+ inline SquareMatrix(const Matrix<U, N, N>& m) : Matrix<T, N, N>(m) {}
+
+ static inline SquareMatrix<T, N> identity() {
+ SquareMatrix<T, N> res;
+ for (unsigned i = 0; i < N; i++)
+ res(i, i) = 1;
+ return res;
+ }
+ };
+
+
+ //
+ // Vector external functions
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ // template <class T, unsigned N>
+ // inline Vec<T, N> operator+(const Vec<T, N>& v1,
+ // const Vec<T, N>& v2) {
+ // Vec<T, N> res(v1);
+ // res += v2;
+ // return res;
+ // }
+ //
+ // template <class T, unsigned N>
+ // inline Vec<T, N> operator-(const Vec<T, N>& v1,
+ // const Vec<T, N>& v2) {
+ // Vec<T, N> res(v1);
+ // res -= v2;
+ // return res;
+ // }
+ // template <class T, unsigned N>
+ // inline Vec<T, N> operator*(const Vec<T, N>& v,
+ // const typename Vec<T, N>::value_type r) {
+ // Vec<T, N> res(v);
+ // res *= r;
+ // return res;
+ // }
+
+ template <class T, unsigned N>
+ inline Vec<T, N> operator*(const typename Vec<T, N>::value_type r,
+ const Vec<T, N>& v) {
+ Vec<T, N> res(v);
+ res *= r;
+ return res;
+ }
+ //
+ // template <class T, unsigned N>
+ // inline Vec<T, N> operator/(const Vec<T, N>& v,
+ // const typename Vec<T, N>::value_type r) {
+ // Vec<T, N> res(v);
+ // if (r)
+ // res /= r;
+ // return res;
+ // }
+ //
+ // dot product
+ // template <class T, unsigned N>
+ // inline typename Vec<T, N>::value_type operator*(const Vec<T, N>& v1,
+ // const Vec<T, N>& v2) {
+ // typename Vec<T, N>::value_type sum = 0;
+ // for (unsigned i = 0; i < N; i++)
+ // sum += v1[i] * v2[i];
+ // return sum;
+ // }
+ //
+ // // cross product for 3D Vectors
+ // template <typename T>
+ // inline Vec3<T> operator^(const Vec<T, 3>& v1,
+ // const Vec<T, 3>& v2) {
+ // Vec3<T> res(v1[1] * v2[2] - v1[2] * v2[1],
+ // v1[2] * v2[0] - v1[0] * v2[2],
+ // v1[0] * v2[1] - v1[1] * v2[0]);
+ // return res;
+ // }
+
+ // stream operator
+ template <class T, unsigned N>
+ inline std::ostream& operator<<(std::ostream& s,
+ const Vec<T, N>& v) {
+ unsigned i;
+ s << "[";
+ for (i = 0; i < N - 1; i++)
+ s << v[i] << ", ";
+ s << v[i] << "]";
+ return s;
+ }
+
+
+ //
+ // Matrix external functions
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ template <class T, unsigned M, unsigned N>
+ inline Matrix<T, M, N>
+ operator+(const Matrix<T, M, N>& m1,
+ const Matrix<T, M, N>& m2) {
+ Matrix<T, M, N> res(m1);
+ res += m2;
+ return res;
+ }
+
+ template <class T, unsigned M, unsigned N>
+ inline Matrix<T, M, N>
+ operator-(const Matrix<T, M, N>& m1,
+ const Matrix<T, M, N>& m2) {
+ Matrix<T, M, N> res(m1);
+ res -= m2;
+ return res;
+ }
+
+ template <class T, unsigned M, unsigned N>
+ inline Matrix<T, M, N>
+ operator*(const Matrix<T, M, N>& m1,
+ const typename Matrix<T, M, N>::value_type lambda) {
+ Matrix<T, M, N> res(m1);
+ res *= lambda;
+ return res;
+ }
+
+ template <class T, unsigned M, unsigned N>
+ inline Matrix<T, M, N>
+ operator*(const typename Matrix<T, M, N>::value_type lambda,
+ const Matrix<T, M, N>& m1) {
+ Matrix<T, M, N> res(m1);
+ res *= lambda;
+ return res;
+ }
+
+ template <class T, unsigned M, unsigned N>
+ inline Matrix<T, M, N>
+ operator/(const Matrix<T, M, N>& m1,
+ const typename Matrix<T, M, N>::value_type lambda) {
+ Matrix<T, M, N> res(m1);
+ res /= lambda;
+ return res;
+ }
+
+ template <class T, unsigned M, unsigned N, unsigned P>
+ inline Matrix<T, M, P>
+ operator*(const Matrix<T, M, N>& m1,
+ const Matrix<T, N, P>& m2) {
+ unsigned i, j, k;
+ Matrix<T, M, P> res;
+ typename Matrix<T, N, P>::value_type scale;
+
+ for (j = 0; j < P; j++) {
+ for (k = 0; k < N; k++) {
+ scale = m2(k, j);
+ for (i = 0; i < N; i++)
+ res(i, j) += m1(i, k) * scale;
+ }
+ }
+ return res;
+ }
+
+ template <class T, unsigned M, unsigned N>
+ inline Vec<T, M>
+ operator*(const Matrix<T, M, N>& m,
+ const Vec<T, N>& v) {
+
+ Vec<T, M> res;
+ typename Matrix<T, M, N>::value_type scale;
+
+ for (unsigned j = 0; j < M; j++) {
+ scale = v[j];
+ for (unsigned i = 0; i < N; i++)
+ res[i] += m(i, j) * scale;
+ }
+ return res;
+ }
+
+ // stream operator
+ template <class T, unsigned M, unsigned N>
+ inline std::ostream& operator<<(std::ostream& s,
+ const Matrix<T, M, N>& m) {
+ unsigned i, j;
+ for (i = 0; i < M; i++) {
+ s << "[";
+ for (j = 0; j < N - 1; j++)
+ s << m(i, j) << ", ";
+ s << m(i, j) << "]" << std::endl;
+ }
+ return s;
+ }
+
+} // end of namespace VecMat
+
+#endif // VECMAT_H
diff --git a/source/blender/freestyle/intern/geometry/geometry.pro b/source/blender/freestyle/intern/geometry/geometry.pro
new file mode 100755
index 00000000000..a63aa6483b4
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/geometry.pro
@@ -0,0 +1,64 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+TEMPLATE = lib
+TARGET = $${LIB_GEOMETRY}
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= dll
+#
+# DEFINES
+#
+#######################################
+
+win32:DEFINES *= MAKE_LIB_GEOMETRY_DLL
+
+#
+# INCLUDE PATH
+#
+#######################################
+
+#INCLUDEPATH *= ../system
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+!win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}/lib
+win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+
+#
+# INSTALL
+#
+#######################################
+
+LIB_DIR = ../../lib
+# install library
+target.path = $$LIB_DIR
+# "make install" configuration options
+INSTALLS += target
+
+#
+# SOURCES & HEADERS
+#
+#######################################
+
+!static {
+ include(src.pri)
+}
diff --git a/source/blender/freestyle/intern/geometry/matrix_util.cpp b/source/blender/freestyle/intern/geometry/matrix_util.cpp
new file mode 100755
index 00000000000..2117b06e62f
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/matrix_util.cpp
@@ -0,0 +1,265 @@
+/*
+ * GXML/Graphite: Geometry and Graphics Programming Library + Utilities
+ * Copyright (C) 2000 Bruno Levy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
+ *
+ * Contact: Bruno Levy
+ *
+ * levy@loria.fr
+ *
+ * ISA Project
+ * LORIA, INRIA Lorraine,
+ * Campus Scientifique, BP 239
+ * 54506 VANDOEUVRE LES NANCY CEDEX
+ * FRANCE
+ *
+ * Note that the GNU General Public License does not permit incorporating
+ * the Software into proprietary programs.
+ */
+
+
+#include "matrix_util.h"
+#include <math.h>
+
+
+
+namespace OGF {
+
+ namespace MatrixUtil {
+
+ static const double EPS = 0.00001 ;
+ static int MAX_ITER = 100 ;
+
+ void semi_definite_symmetric_eigen(
+ const double *mat, int n, double *eigen_vec, double *eigen_val
+ ) {
+ double *a,*v;
+ double a_norm,a_normEPS,thr,thr_nn;
+ int nb_iter = 0;
+ int jj;
+ int i,j,k,ij,ik,l,m,lm,mq,lq,ll,mm,imv,im,iq,ilv,il,nn;
+ int *index;
+ double a_ij,a_lm,a_ll,a_mm,a_im,a_il;
+ double a_lm_2;
+ double v_ilv,v_imv;
+ double x;
+ double sinx,sinx_2,cosx,cosx_2,sincos;
+ double delta;
+
+ // Number of entries in mat
+
+ nn = (n*(n+1))/2;
+
+ // Step 1: Copy mat to a
+
+ a = new double[nn];
+
+ for( ij=0; ij<nn; ij++ ) {
+ a[ij] = mat[ij];
+ }
+
+ // Ugly Fortran-porting trick: indices for a are between 1 and n
+ a--;
+
+ // Step 2 : Init diagonalization matrix as the unit matrix
+ v = new double[n*n];
+
+ ij = 0;
+ for( i=0; i<n; i++ ) {
+ for( j=0; j<n; j++ ) {
+ if( i==j ) {
+ v[ij++] = 1.0;
+ } else {
+ v[ij++] = 0.0;
+ }
+ }
+ }
+
+ // Ugly Fortran-porting trick: indices for v are between 1 and n
+ v--;
+
+ // Step 3 : compute the weight of the non diagonal terms
+ ij = 1 ;
+ a_norm = 0.0;
+ for( i=1; i<=n; i++ ) {
+ for( j=1; j<=i; j++ ) {
+ if( i!=j ) {
+ a_ij = a[ij];
+ a_norm += a_ij*a_ij;
+ }
+ ij++;
+ }
+ }
+
+ if( a_norm != 0.0 ) {
+
+ a_normEPS = a_norm*EPS;
+ thr = a_norm ;
+
+ // Step 4 : rotations
+ while( thr > a_normEPS && nb_iter < MAX_ITER ) {
+
+ nb_iter++;
+ thr_nn = thr / nn;
+
+ for( l=1 ; l< n; l++ ) {
+ for( m=l+1; m<=n; m++ ) {
+
+ // compute sinx and cosx
+
+ lq = (l*l-l)/2;
+ mq = (m*m-m)/2;
+
+ lm = l+mq;
+ a_lm = a[lm];
+ a_lm_2 = a_lm*a_lm;
+
+ if( a_lm_2 < thr_nn ) {
+ continue ;
+ }
+
+ ll = l+lq;
+ mm = m+mq;
+ a_ll = a[ll];
+ a_mm = a[mm];
+
+ delta = a_ll - a_mm;
+
+ if( delta == 0.0 ) {
+ x = - M_PI/4 ;
+ } else {
+ x = - atan( (a_lm+a_lm) / delta ) / 2.0 ;
+ }
+
+ sinx = sin(x) ;
+ cosx = cos(x) ;
+ sinx_2 = sinx*sinx;
+ cosx_2 = cosx*cosx;
+ sincos = sinx*cosx;
+
+ // rotate L and M columns
+
+ ilv = n*(l-1);
+ imv = n*(m-1);
+
+ for( i=1; i<=n;i++ ) {
+ if( (i!=l) && (i!=m) ) {
+ iq = (i*i-i)/2;
+
+ if( i<m ) {
+ im = i + mq;
+ } else {
+ im = m + iq;
+ }
+ a_im = a[im];
+
+ if( i<l ) {
+ il = i + lq;
+ } else {
+ il = l + iq;
+ }
+ a_il = a[il];
+
+ a[il] = a_il*cosx - a_im*sinx;
+ a[im] = a_il*sinx + a_im*cosx;
+ }
+
+ ilv++;
+ imv++;
+
+ v_ilv = v[ilv];
+ v_imv = v[imv];
+
+ v[ilv] = cosx*v_ilv - sinx*v_imv;
+ v[imv] = sinx*v_ilv + cosx*v_imv;
+ }
+
+ x = a_lm*sincos; x+=x;
+
+ a[ll] = a_ll*cosx_2 + a_mm*sinx_2 - x;
+ a[mm] = a_ll*sinx_2 + a_mm*cosx_2 + x;
+ a[lm] = 0.0;
+
+ thr = fabs( thr - a_lm_2 );
+ }
+ }
+ }
+ }
+
+ // Step 5: index conversion and copy eigen values
+
+ // back from Fortran to C++
+ a++;
+
+ for( i=0; i<n; i++ ) {
+ k = i + (i*(i+1))/2;
+ eigen_val[i] = a[k];
+ }
+
+ delete[] a;
+
+ // Step 6: sort the eigen values and eigen vectors
+
+ index = new int[n];
+ for( i=0; i<n; i++ ) {
+ index[i] = i;
+ }
+
+ for( i=0; i<(n-1); i++ ) {
+ x = eigen_val[i];
+ k = i;
+
+ for( j=i+1; j<n; j++ ) {
+ if( x < eigen_val[j] ) {
+ k = j;
+ x = eigen_val[j];
+ }
+ }
+
+ eigen_val[k] = eigen_val[i];
+ eigen_val[i] = x;
+
+ jj = index[k];
+ index[k] = index[i];
+ index[i] = jj;
+ }
+
+
+ // Step 7: save the eigen vectors
+
+ v++; // back from Fortran to to C++
+
+ ij = 0;
+ for( k=0; k<n; k++ ) {
+ ik = index[k]*n;
+ for( i=0; i<n; i++ ) {
+ eigen_vec[ij++] = v[ik++];
+ }
+ }
+
+ delete[] v ;
+ delete[] index;
+ return;
+ }
+
+//_________________________________________________________
+
+ }
+}
diff --git a/source/blender/freestyle/intern/geometry/matrix_util.h b/source/blender/freestyle/intern/geometry/matrix_util.h
new file mode 100755
index 00000000000..a990413c403
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/matrix_util.h
@@ -0,0 +1,69 @@
+/*
+ * GXML/Graphite: Geometry and Graphics Programming Library + Utilities
+ * Copyright (C) 2000 Bruno Levy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
+ *
+ * Contact: Bruno Levy
+ *
+ * levy@loria.fr
+ *
+ * ISA Project
+ * LORIA, INRIA Lorraine,
+ * Campus Scientifique, BP 239
+ * 54506 VANDOEUVRE LES NANCY CEDEX
+ * FRANCE
+ *
+ * Note that the GNU General Public License does not permit incorporating
+ * the Software into proprietary programs.
+ */
+
+#ifndef __MATRIX_UTIL__
+#define __MATRIX_UTIL__
+
+# include "../system/FreestyleConfig.h"
+
+namespace OGF {
+
+ namespace MatrixUtil {
+
+ /**
+ * computes the eigen values and eigen vectors
+ * of a semi definite symmetric matrix
+ *
+ * @param matrix is stored in column symmetric storage, i.e.
+ * matrix = { m11, m12, m22, m13, m23, m33, m14, m24, m34, m44 ... }
+ * size = n(n+1)/2
+ *
+ * @param eigen_vectors (return) = { v1, v2, v3, ..., vn }
+ * where vk = vk0, vk1, ..., vkn
+ * size = n^2, must be allocated by caller
+ *
+ * @param eigen_values (return) are in decreasing order
+ * size = n, must be allocated by caller
+ */
+ LIB_GEOMETRY_EXPORT
+ void semi_definite_symmetric_eigen(
+ const double *mat, int n, double *eigen_vec, double *eigen_val
+ ) ;
+
+ }
+}
+
+#endif
diff --git a/source/blender/freestyle/intern/geometry/normal_cycle.cpp b/source/blender/freestyle/intern/geometry/normal_cycle.cpp
new file mode 100755
index 00000000000..b456ced8331
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/normal_cycle.cpp
@@ -0,0 +1,103 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "normal_cycle.h"
+#include "matrix_util.h"
+
+
+namespace OGF {
+
+//_________________________________________________________
+
+
+ NormalCycle::NormalCycle() {
+ }
+
+ void NormalCycle::begin() {
+ M_[0] = M_[1] = M_[2] = M_[3] = M_[4] = M_[5] = 0 ;
+ }
+
+ void NormalCycle::end() {
+
+ double eigen_vectors[9] ;
+ MatrixUtil::semi_definite_symmetric_eigen(M_, 3, eigen_vectors, eigen_value_) ;
+
+ axis_[0] = Vec3r(
+ eigen_vectors[0], eigen_vectors[1], eigen_vectors[2]
+ ) ;
+
+ axis_[1] = Vec3r(
+ eigen_vectors[3], eigen_vectors[4], eigen_vectors[5]
+ ) ;
+
+ axis_[2] = Vec3r(
+ eigen_vectors[6], eigen_vectors[7], eigen_vectors[8]
+ ) ;
+
+ // Normalize the eigen vectors
+
+ for(int i=0; i<3; i++) {
+ axis_[i].normalize() ;
+ }
+
+ // Sort the eigen vectors
+
+ i_[0] = 0 ;
+ i_[1] = 1 ;
+ i_[2] = 2 ;
+
+ double l0 = ::fabs(eigen_value_[0]) ;
+ double l1 = ::fabs(eigen_value_[1]) ;
+ double l2 = ::fabs(eigen_value_[2]) ;
+
+ if(l1 > l0) {
+ ogf_swap(l0 , l1 ) ;
+ ogf_swap(i_[0], i_[1]) ;
+ }
+ if(l2 > l1) {
+ ogf_swap(l1 , l2 ) ;
+ ogf_swap(i_[1], i_[2]) ;
+ }
+ if(l1 > l0) {
+ ogf_swap(l0 , l1 ) ;
+ ogf_swap(i_[0],i_[1]) ;
+ }
+
+ }
+
+ void NormalCycle::accumulate_dihedral_angle(
+ const Vec3r& edge, double beta, double neigh_area
+ ) {
+ Vec3r e = edge ;
+ e.normalize() ;
+
+ double s = edge.norm() * beta * neigh_area ;
+
+ M_[0] += s * e.x() * e.x() ;
+ M_[1] += s * e.x() * e.y() ;
+ M_[2] += s * e.y() * e.y() ;
+ M_[3] += s * e.x() * e.z() ;
+ M_[4] += s * e.y() * e.z() ;
+ M_[5] += s * e.z() * e.z() ;
+ }
+
+//_________________________________________________________
+
+}
diff --git a/source/blender/freestyle/intern/geometry/normal_cycle.h b/source/blender/freestyle/intern/geometry/normal_cycle.h
new file mode 100755
index 00000000000..41fbf7b3fab
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/normal_cycle.h
@@ -0,0 +1,97 @@
+/*
+ * OGF/Graphite: Geometry and Graphics Programming Library + Utilities
+ * Copyright (C) 2000 Bruno Levy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
+ *
+ * Contact: Bruno Levy
+ *
+ * levy@loria.fr
+ *
+ * ISA Project
+ * LORIA, INRIA Lorraine,
+ * Campus Scientifique, BP 239
+ * 54506 VANDOEUVRE LES NANCY CEDEX
+ * FRANCE
+ *
+ * Note that the GNU General Public License does not permit incorporating
+ * the Software into proprietary programs.
+ */
+
+#ifndef __MESH_TOOLS_MATH_NORMAL_CYCLE__
+#define __MESH_TOOLS_MATH_NORMAL_CYCLE__
+
+# include "../system/FreestyleConfig.h"
+# include "Geom.h"
+using namespace Geometry;
+
+namespace OGF {
+
+template <class T> inline void ogf_swap(T& x, T& y) {
+ T z = x ;
+ x = y ;
+ y = z ;
+ }
+
+//_________________________________________________________
+
+ /**
+ * NormalCycle evaluates the curvature tensor in function
+ * of a set of dihedral angles and associated vectors.
+ * Reference:
+ * Restricted Delaunay Triangulation and Normal Cycle,
+ * D. Cohen-Steiner and J.M. Morvan,
+ * SOCG 2003
+ */
+ class LIB_GEOMETRY_EXPORT NormalCycle {
+ public:
+ NormalCycle() ;
+ void begin() ;
+ void end() ;
+ /**
+ * Note: the specified edge vector needs to be pre-clipped
+ * by the neighborhood.
+ */
+ void accumulate_dihedral_angle(
+ const Vec3r& edge, real angle, real neigh_area = 1.0
+ ) ;
+ const Vec3r& eigen_vector(int i) const { return axis_[i_[i]] ; }
+ real eigen_value(int i) const { return eigen_value_[i_[i]] ; }
+
+ const Vec3r& N() const { return eigen_vector(2) ; }
+ const Vec3r& Kmax() const { return eigen_vector(1) ; }
+ const Vec3r& Kmin() const { return eigen_vector(0) ; }
+
+ real n() const { return eigen_value(2) ; }
+ real kmax() const { return eigen_value(1) ; }
+ real kmin() const { return eigen_value(0) ; }
+
+ private:
+ real center_[3] ;
+ Vec3r axis_[3] ;
+ real eigen_value_[3] ;
+ real M_[6] ;
+ int i_[3] ;
+ } ;
+
+//_________________________________________________________
+
+}
+
+#endif
diff --git a/source/blender/freestyle/intern/geometry/src.pri b/source/blender/freestyle/intern/geometry/src.pri
new file mode 100755
index 00000000000..a35760fe892
--- /dev/null
+++ b/source/blender/freestyle/intern/geometry/src.pri
@@ -0,0 +1,33 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+GEOMETRY_DIR = ../geometry
+
+SOURCES *= $${GEOMETRY_DIR}/GeomCleaner.cpp \
+ $${GEOMETRY_DIR}/GeomUtils.cpp \
+ $${GEOMETRY_DIR}/Grid.cpp \
+ $${GEOMETRY_DIR}/FastGrid.cpp \
+ $${GEOMETRY_DIR}/HashGrid.cpp \
+ $${GEOMETRY_DIR}/FitCurve.cpp \
+ $${GEOMETRY_DIR}/Bezier.cpp \
+ $${GEOMETRY_DIR}/Noise.cpp \
+ $${GEOMETRY_DIR}/matrix_util.cpp \
+ $${GEOMETRY_DIR}/normal_cycle.cpp
+
+HEADERS *= $${GEOMETRY_DIR}/BBox.h \
+ $${GEOMETRY_DIR}/FastGrid.h \
+ $${GEOMETRY_DIR}/Geom.h \
+ $${GEOMETRY_DIR}/GeomCleaner.h \
+ $${GEOMETRY_DIR}/GeomUtils.h \
+ $${GEOMETRY_DIR}/Grid.h \
+ $${GEOMETRY_DIR}/HashGrid.h \
+ $${GEOMETRY_DIR}/Polygon.h \
+ $${GEOMETRY_DIR}/SweepLine.h \
+ $${GEOMETRY_DIR}/FitCurve.h \
+ $${GEOMETRY_DIR}/Bezier.h \
+ $${GEOMETRY_DIR}/Noise.h \
+ $${GEOMETRY_DIR}/VecMat.h \
+ $${GEOMETRY_DIR}/matrix_util.h \
+ $${GEOMETRY_DIR}/normal_cycle.h
diff --git a/source/blender/freestyle/intern/image/GaussianFilter.cpp b/source/blender/freestyle/intern/image/GaussianFilter.cpp
new file mode 100755
index 00000000000..97c2aedc62e
--- /dev/null
+++ b/source/blender/freestyle/intern/image/GaussianFilter.cpp
@@ -0,0 +1,96 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "GaussianFilter.h"
+#include <stdlib.h>
+
+GaussianFilter::GaussianFilter(float iSigma )
+{
+ _sigma = iSigma;
+ _mask = 0;
+ computeMask();
+}
+
+GaussianFilter::GaussianFilter(const GaussianFilter& iBrother)
+{
+ _sigma = iBrother._sigma;
+ _maskSize = iBrother._maskSize;
+ _bound = iBrother._bound;
+ _storedMaskSize = iBrother._storedMaskSize;
+ _mask = new float[_maskSize*_maskSize];
+ memcpy(_mask, iBrother._mask, _maskSize*_maskSize*sizeof(float));
+}
+
+
+GaussianFilter& GaussianFilter::operator= (const GaussianFilter& iBrother)
+{
+ _sigma = iBrother._sigma;
+ _maskSize = iBrother._maskSize;
+ _bound = iBrother._bound;
+ _storedMaskSize = iBrother._storedMaskSize;
+ _mask = new float[_storedMaskSize*_storedMaskSize];
+ memcpy(_mask, iBrother._mask, _storedMaskSize*_storedMaskSize*sizeof(float));
+ return *this;
+}
+
+
+GaussianFilter::~GaussianFilter()
+{
+ if(0!=_mask)
+ {
+ delete [] _mask;
+ }
+}
+
+int GaussianFilter::computeMaskSize(float sigma)
+{
+ int maskSize = (int)floor(4*sigma)+1;
+ if(0 == maskSize%2)
+ ++maskSize;
+
+ return maskSize;
+}
+
+void GaussianFilter::SetSigma(float sigma)
+{
+ _sigma = sigma;
+ computeMask();
+}
+
+void GaussianFilter::computeMask()
+{
+ if(0 != _mask){
+ delete [] _mask;
+ }
+
+ _maskSize = computeMaskSize(_sigma);
+ _storedMaskSize = (_maskSize+1)>>1;
+ _bound = _storedMaskSize-1;
+
+ float norm = _sigma*_sigma*2.f*M_PI;
+ float invNorm = 1.0/norm;
+ _mask = new float[_storedMaskSize*_storedMaskSize*sizeof(float)];
+ for(int i=0; i<_storedMaskSize; ++i)
+ for(int j=0; j<_storedMaskSize; ++j)
+ _mask[i*_storedMaskSize+j] = invNorm*exp(-(i*i + j*j)/(2.0*_sigma*_sigma));
+ //_mask[i*_storedMaskSize+j] = exp(-(i*i + j*j)/(2.0*_sigma*_sigma));
+}
+
diff --git a/source/blender/freestyle/intern/image/GaussianFilter.h b/source/blender/freestyle/intern/image/GaussianFilter.h
new file mode 100755
index 00000000000..c75177541d3
--- /dev/null
+++ b/source/blender/freestyle/intern/image/GaussianFilter.h
@@ -0,0 +1,144 @@
+//
+// Filename : Image.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to perform gaussian filtering operations on an image
+// Date of creation : 20/05/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GAUSSIANFILTER_H
+# define GAUSSIANFILTER_H
+
+#include "../system/FreestyleConfig.h"
+
+class LIB_IMAGE_EXPORT GaussianFilter{
+protected:
+ /* the mask is a symetrical 2d array (with respect
+ to the middle point).
+ Thus, M(i,j) = M(-i,j) = M(i,-j) = M(-i,-j).
+ For this reason, to represent a NxN array (N odd), we only store
+ a ((N+1)/2)x((N+1)/2) array.
+ */
+ float _sigma;
+ float *_mask;
+ int _bound;
+ int _maskSize; // the real mask size (must be odd)(the size of the mask we store is ((_maskSize+1)/2)*((_maskSize+1)/2))
+ int _storedMaskSize; //(_maskSize+1)/2)
+
+public:
+ GaussianFilter(float iSigma = 1.f) ;
+ GaussianFilter(const GaussianFilter&) ;
+ GaussianFilter& operator= (const GaussianFilter&) ;
+ virtual ~GaussianFilter() ;
+
+ /*! Returns the value for pixel x,y of image "map" after a gaussian blur,
+ * made using the sigma value.
+ * The sigma value determines the mask size (~ 2 x sigma).
+ * \param map
+ * The image we wish to work on. The Map template must implement the
+ * foloowing methods:
+ * - float pixel(unsigned int x,unsigned int y) const;
+ * - unsigned width() const;
+ * - unsigned height() const;
+ * \param x
+ * The abscissa of the pixel where we want to evaluate the gaussian blur.
+ * \param y
+ * The ordinate of the pixel where we want to evaluate the gaussian blur.
+ * \param sigma
+ * The sigma value of the gaussian function.
+ */
+ template<class Map>
+ float getSmoothedPixel(Map * map, int x, int y) ;
+
+ /*! Compute the mask size and returns the REAL mask size ((2*_maskSize)-1)
+ * This method is provided for convenience.
+ */
+ static int computeMaskSize(float sigma) ;
+
+ /*! accessors */
+ inline float sigma() const {return _sigma;}
+ inline int maskSize() const {return _maskSize;}
+ inline int getBound() {return _bound;}
+
+ /*! modifiers */
+ void SetSigma(float sigma) ;
+ // void SetMaskSize(int size) {_maskSize = size;_storedMaskSize=(_maskSize+1)>>1;}
+
+
+protected:
+ void computeMask();
+};
+
+/*
+
+ #############################################
+ #############################################
+ #############################################
+ ###### ######
+ ###### I M P L E M E N T A T I O N ######
+ ###### ######
+ #############################################
+ #############################################
+ #############################################
+
+*/
+
+
+#include <math.h>
+
+#ifdef __MACH__
+#define sqrtf(x) (sqrt(x))
+#endif
+
+template<class Map>
+float GaussianFilter::getSmoothedPixel(Map * map, int x, int y)
+{
+ float sum = 0.f;
+ float L=0.f;
+ unsigned w=map->width();
+ unsigned h=map->height();
+
+ // Current pixel is x,y
+ // Sum surrounding pixels L value:
+ for(int i=-_bound; i<=_bound; ++i)
+ {
+ if((y+i < 0) || (y+i >= h))
+ continue;
+ for(int j=-_bound; j<=_bound; ++j)
+ {
+ if((x+j < 0) || (x+j >= w))
+ continue;
+
+ float tmpL = map->pixel(x+j,y+i);
+ float m = _mask[abs(i)*_storedMaskSize+abs(j)];
+ L += m*tmpL;
+ sum += m;
+ }
+ }
+ //L /= sum;
+ return L;
+}
+
+
+#endif // GAUSSIANFILTER
diff --git a/source/blender/freestyle/intern/image/Image.h b/source/blender/freestyle/intern/image/Image.h
new file mode 100755
index 00000000000..83d6785e32f
--- /dev/null
+++ b/source/blender/freestyle/intern/image/Image.h
@@ -0,0 +1,389 @@
+//
+// Filename : Image.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to encapsulate an array of RGB or Gray level values
+// Date of creation : 20/05/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef IMAGE_H
+# define IMAGE_H
+
+# include <string> // for memcpy
+
+//
+// Image base class, for all types of images
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/*! This class allows the storing of part of an image,
+ * while allowing a normal access to its pixel values.
+ * You can for example only a rectangle of sw*sh, whose
+ * lower-left corner is at (ox, oy), of an image of
+ * size w*h, and access these pixels using x,y coordinates
+ * specified in the whole image coordinate system.
+ */
+class Image
+{
+ public:
+
+ /*! Default constructor */
+ Image() {
+ _storedWidth = 0;
+ _storedHeight = 0;
+ _width = 0;
+ _height = 0;
+ _Ox = 0;
+ _Oy = 0;
+ }
+
+ /*! Copy constructor */
+ Image(const Image& brother) {
+ _storedWidth = brother._storedWidth;
+ _storedHeight = brother._storedHeight;
+ _width = brother._width;
+ _height = brother._height;
+ _Ox = brother._Ox;
+ _Oy = brother._Oy;
+ }
+
+ /*! Builds an image from its width and height.
+ * The memory is allocated consequently.
+ */
+ Image(unsigned w, unsigned h) {
+ _width = w;
+ _height = h;
+ _storedWidth = w;
+ _storedHeight = h;
+ _Ox = 0;
+ _Oy = 0;
+ }
+
+ /*! Builds a partial-storing image.
+ * \param w
+ * The width of the complete image
+ * \param h
+ * The height of the complete image
+ * \param sw
+ * The width of the rectangle that will actually
+ * be stored.
+ * \param sh
+ * The height of the rectangle that will actually
+ * be stored.
+ * \param ox
+ * The x-abscissa of the origin of the rectangle that will actually
+ * be stored.
+ * \param oy
+ * The x-abscissa of the origin of the rectangle that will actually
+ * be stored.
+ */
+ Image(unsigned w, unsigned h, unsigned sw, unsigned sh, unsigned ox, unsigned oy) {
+ _width = w;
+ _height = h;
+ _storedWidth = sw;
+ _storedHeight = sh;
+ _Ox = ox;
+ _Oy = oy;
+ }
+
+ /*! Operator= */
+ Image& operator=(const Image& brother) {
+ _width = brother._width;
+ _height = brother._height;
+ _storedWidth = brother._storedWidth;
+ _storedHeight = brother._storedHeight;
+ _Ox = brother._Ox;
+ _Oy = brother._Oy;
+ return* this;
+ }
+
+ /*! Destructor */
+ virtual ~Image() {}
+
+ /*! Returns the width of the complete image */
+ inline unsigned width() const {
+ return _width;
+ }
+ /*! Returns the height of the complete image */
+ inline unsigned height() const {
+ return _height;
+ }
+
+ /*! Returns the grey value for pixel x,y */
+ virtual float pixel(unsigned x, unsigned y) const = 0;
+
+ /*! Sets the array.
+ * \param array
+ * The array containing the values we wish to store.
+ * Its size is sw*sh.
+ * \param width
+ * The width of the complete image
+ * \param height
+ * The height of the complete image
+ * \param sw
+ * The width of the rectangle that will actually
+ * be stored.
+ * \param sh
+ * The height of the rectangle that will actually
+ * be stored.
+ * \param ox
+ * The x-abscissa of the origin of the rectangle that will actually
+ * be stored.
+ * \param oy
+ * The x-abscissa of the origin of the rectangle that will actually
+ * be stored.
+ * \param copy
+ * If true, the array is copied, otherwise the pointer is
+ * copied
+ */
+ virtual void setArray(float* array, unsigned width, unsigned height, unsigned sw, unsigned sh, unsigned x, unsigned y, bool copy = true) = 0;
+
+ /*! Returns the array containing the pixels values.
+ * Its size is sw*sh, i.e. potentially a smaller
+ * rectangular part of the complete image.
+ */
+ virtual float * getArray() = 0;
+
+ protected:
+
+ unsigned _width;
+ unsigned _height;
+ unsigned _storedWidth;
+ unsigned _storedHeight;
+ unsigned _Ox; // origin of the stored part
+ unsigned _Oy; // origin of the stored part
+};
+
+
+//
+// RGBImage
+//
+///////////////////////////////////////////////////////////////////////////////
+
+class RGBImage : public Image
+{
+ public:
+
+ RGBImage() : Image() {
+ _rgb = 0;
+ }
+
+ RGBImage(const RGBImage& brother) : Image(brother) {
+ _rgb = new float[3 * _storedWidth * _storedHeight];
+ memcpy(_rgb, brother._rgb, 3 * _storedWidth * _storedHeight * sizeof(float));
+ }
+
+ RGBImage(unsigned w, unsigned h) : Image(w, h) {
+ _rgb = new float[3 * _width * _height];
+ }
+
+ RGBImage(float* rgb, unsigned w, unsigned h) : Image(w, h) {
+ _rgb = new float[3 * _width * _height];
+ memcpy(_rgb, rgb, 3 * _width * _height * sizeof(float));
+ }
+
+ /*! Builds an RGB partial image from the useful part buffer.
+ * \param rgb
+ * The array of size 3*sw*sh containing the RGB values
+ * of the sw*sh pixels we need to stored.
+ * These sw*sh pixels constitute a rectangular part of
+ * a bigger RGB image containing w*h pixels.
+ * \param w
+ * The width of the complete image
+ * \param h
+ * The height of the complete image
+ * \param sw
+ * The width of the part of the image we want to store and work on
+ * \param sh
+ * The height of the part of the image we want to store and work on
+ */
+ RGBImage(float* rgb, unsigned w, unsigned h, unsigned sw, unsigned sh, unsigned ox, unsigned oy) : Image(w, h, sw, sh, ox, oy) {
+ _rgb = new float[3 * _storedWidth * _storedHeight];
+ memcpy(_rgb, rgb, 3 * _storedWidth * _storedHeight * sizeof(float));
+ }
+
+ RGBImage& operator=(const RGBImage& brother) {
+ dynamic_cast<Image&>(*this) = brother;
+ _rgb = new float[3 * _storedWidth * _storedHeight];
+ memcpy(_rgb, brother._rgb, 3 * _storedWidth * _storedHeight * sizeof(float));
+ return* this;
+ }
+
+ virtual ~RGBImage() {
+ if(_rgb)
+ delete[] _rgb;
+ }
+
+ inline float getR(unsigned x, unsigned y) const {
+ return _rgb[3 * (y-_Oy) * _storedWidth + (x-_Ox) * 3];
+ }
+
+ inline float getG(unsigned x, unsigned y) const {
+ return _rgb[3 * (y-_Oy) * _storedWidth + (x-_Ox) * 3 + 1];
+ }
+
+ inline float getB(unsigned x, unsigned y) const {
+ return _rgb[3 * (y-_Oy) * _storedWidth + (x-_Ox) * 3 + 2];
+ }
+
+ virtual void setPixel(unsigned x, unsigned y, float r, float g, float b){
+ float * tmp = &(_rgb[3 * (y-_Oy) * _storedWidth + (x-_Ox) * 3]);
+ *tmp = r;++tmp;
+ *tmp = g;++tmp;
+ *tmp = b;
+ }
+
+ virtual float pixel(unsigned x, unsigned y) const {
+ float res = 0;
+ float* tmp = &(_rgb[3 * (y-_Oy) * _storedWidth + (x-_Ox) * 3]);
+ res += 11 * (*tmp++);
+ res += 16 * (*tmp++);
+ res += 5 * (*tmp);
+ return res / 32;
+ }
+
+ /*! Sets the RGB array.
+ * copy
+ * If true, the array is copied, otherwise the pointer is
+ * copied
+ */
+ virtual void setArray(float* rgb, unsigned width, unsigned height, unsigned sw, unsigned sh, unsigned x, unsigned y, bool copy = true) {
+ _width = width;
+ _height = height;
+ _storedWidth = sw;
+ _storedHeight = sh;
+ _Ox = x;
+ _Oy = y;
+ if(!copy) {
+ _rgb = rgb;
+ return;
+ }
+
+ memcpy(_rgb, rgb, 3 * _storedWidth * _storedHeight* sizeof(float));
+ }
+
+ virtual float * getArray() {return _rgb;}
+
+ protected:
+
+ float* _rgb;
+};
+
+
+//
+// GrayImage
+//
+///////////////////////////////////////////////////////////////////////////////
+
+class GrayImage : public Image
+{
+ public:
+
+ GrayImage() : Image() {
+ _lvl = 0;
+ }
+
+ GrayImage(const GrayImage& brother) : Image(brother) {
+ _lvl = new float[_storedWidth*_storedHeight];
+ memcpy(_lvl, brother._lvl, _storedWidth*_storedHeight*sizeof(*_lvl));
+ }
+
+ /*! Builds an empty gray image */
+ GrayImage(unsigned w, unsigned h) : Image(w, h) {
+ _lvl = new float[_width*_height];
+ }
+
+ GrayImage(float* lvl, unsigned w, unsigned h) : Image(w, h) {
+ _lvl = new float[_width*_height];
+ memcpy(_lvl, lvl, _width*_height*sizeof(*_lvl));
+ }
+
+ /*! Builds a partial image from the useful part buffer.
+ * \param lvl
+ * The array of size sw*sh containing the gray values
+ * of the sw*sh pixels we need to stored.
+ * These sw*sh pixels constitute a rectangular part of
+ * a bigger gray image containing w*h pixels.
+ * \param w
+ * The width of the complete image
+ * \param h
+ * The height of the complete image
+ * \param sw
+ * The width of the part of the image we want to store and work on
+ * \param sh
+ * The height of the part of the image we want to store and work on
+ */
+ GrayImage(float* lvl, unsigned w, unsigned h, unsigned sw, unsigned sh, unsigned ox, unsigned oy) : Image(w, h, sw, sh, ox, oy) {
+ _lvl = new float[_storedWidth*_storedHeight];
+ memcpy(_lvl, lvl, _storedWidth*_storedHeight*sizeof(float));
+ }
+
+ GrayImage& operator=(const GrayImage& brother) {
+ dynamic_cast<Image&>(*this) = brother;
+ _lvl = new float[_storedWidth * _storedHeight];
+ memcpy(_lvl, brother._lvl, _storedWidth * _storedHeight * sizeof(float));
+ return *this;
+ }
+
+ virtual ~GrayImage() {
+ if(_lvl)
+ delete[] _lvl;
+ }
+
+ inline void setPixel(unsigned x, unsigned y, float v){
+ _lvl[(y-_Oy) * _storedWidth+ (x-_Ox)] = v;
+ }
+
+ inline float pixel(unsigned x, unsigned y) const {
+ return _lvl[(y-_Oy) * _storedWidth+ (x-_Ox)];
+ }
+
+ /*! Sets the array.
+ * copy
+ * If true, the array is copie, otherwise the pounsigneder is
+ * copied
+ */
+ void setArray(float *lvl, unsigned width, unsigned height, unsigned sw, unsigned sh, unsigned x, unsigned y, bool copy = true) {
+ _width = width;
+ _height = height;
+ _storedWidth = sw;
+ _storedHeight = sh;
+ _Ox = x;
+ _Oy = y;
+ if(!copy) {
+ _lvl = lvl;
+ return;
+ }
+
+ memcpy(_lvl, lvl, _storedWidth * _storedHeight * sizeof(float));
+ }
+ /*! Returns the array containing the gray values. */
+ virtual float * getArray() {return _lvl;}
+
+ protected:
+
+ float *_lvl;
+};
+
+#endif // IMAGE_H
diff --git a/source/blender/freestyle/intern/image/ImagePyramid.cpp b/source/blender/freestyle/intern/image/ImagePyramid.cpp
new file mode 100755
index 00000000000..45c02004d1c
--- /dev/null
+++ b/source/blender/freestyle/intern/image/ImagePyramid.cpp
@@ -0,0 +1,166 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "ImagePyramid.h"
+#include "Image.h"
+#include "GaussianFilter.h"
+#include <iostream>
+
+using namespace std;
+
+//ImagePyramid::ImagePyramid(const GrayImage& level0, unsigned nbLevels){
+// //BuildPyramid(level0,nbLevels);
+//}
+
+ImagePyramid::ImagePyramid(const ImagePyramid& iBrother){
+ if(!_levels.empty()){
+ for(vector<GrayImage*>::iterator im=_levels.begin(), imend=_levels.end();
+ im!=imend;
+ ++im){
+ _levels.push_back(new GrayImage(**im));
+ }
+ }
+}
+ImagePyramid::~ImagePyramid(){
+ if(!_levels.empty()){
+ for(vector<GrayImage*>::iterator im=_levels.begin(), imend=_levels.end();
+ im!=imend;
+ ++im){
+ delete (*im);
+ }
+ _levels.clear();
+ }
+}
+
+GrayImage * ImagePyramid::getLevel(int l){
+ return _levels[l];
+}
+
+float ImagePyramid::pixel(int x, int y, int level){
+ GrayImage *img = _levels[level];
+ if(0 == level){
+ return img->pixel(x,y);
+ }
+ int i = 1<<level;
+ int sx = x>>level;
+ int sy = y>>level;
+ if(sx >= img->width())
+ sx = img->width()-1;
+ if(sy >= img->height())
+ sy = img->height()-1;
+
+ // bilinear interpolation
+ float A = i*(sx+1)-x;
+ float B = x-i*sx;
+ float C = i*(sy+1)-y;
+ float D = y-i*sy;
+
+ float P1(0), P2(0);
+ P1 = A*img->pixel(sx,sy);
+ if(sx < img->width()-1){
+ if(x%i != 0)
+ P1 += B*img->pixel(sx+1,sy);
+ }else{
+ P1 += B*img->pixel(sx,sy);
+ }
+ if(sy<img->height()-1){
+ if(y%i != 0){
+ P2 = A*img->pixel(sx,sy+1);
+ if(sx < img->width()-1){
+ if(x%i != 0)
+ P2 += B*img->pixel(sx+1,sy+1);
+ }else{
+ P2 += B*img->pixel(sx,sy+1);
+ }
+ }
+ }else{
+ P2 = P1;
+ }
+ return (1.f/(float)(1<<2*level))*(C*P1 + D*P2);
+}
+
+int ImagePyramid::width(int level){
+ return _levels[level]->width();
+}
+
+int ImagePyramid::height(int level){
+ return _levels[level]->height();
+}
+
+GaussianPyramid::GaussianPyramid(const GrayImage& level0, unsigned nbLevels, float iSigma)
+ : ImagePyramid()
+{
+ _sigma = iSigma;
+ BuildPyramid(level0,nbLevels);
+}
+GaussianPyramid::GaussianPyramid(GrayImage* level0, unsigned nbLevels, float iSigma)
+ : ImagePyramid()
+{
+ _sigma = iSigma;
+ BuildPyramid(level0,nbLevels);
+}
+
+GaussianPyramid::GaussianPyramid(const GaussianPyramid& iBrother)
+: ImagePyramid(iBrother){
+ _sigma = iBrother._sigma;
+}
+void GaussianPyramid::BuildPyramid(const GrayImage& level0, unsigned nbLevels){
+ GrayImage *pLevel = new GrayImage(level0);
+ BuildPyramid(pLevel, nbLevels);
+}
+
+void GaussianPyramid::BuildPyramid(GrayImage* level0, unsigned nbLevels){
+ GrayImage *pLevel = level0;
+ _levels.push_back(pLevel);
+ GaussianFilter gf(_sigma);
+ // build the nbLevels:
+ unsigned w = pLevel->width();
+ unsigned h = pLevel->height();
+ if(nbLevels!=0)
+ {
+ for(unsigned i=0; i<nbLevels; ++i){
+ w = pLevel->width()>>1;
+ h = pLevel->height()>>1;
+ GrayImage *img = new GrayImage(w,h);
+ for(unsigned y=0; y<h; ++y){
+ for(unsigned x=0; x<w; ++x){
+ float v = gf.getSmoothedPixel<GrayImage>(pLevel, 2*x,2*y);
+ img->setPixel(x,y,v);
+ }
+ }
+ _levels.push_back(img);
+ pLevel = img;
+ }
+ }else{
+ while((w>1) && (h>1)){
+ w = pLevel->width()>>1;
+ h = pLevel->height()>>1;
+ GrayImage *img = new GrayImage(w,h);
+ for(unsigned y=0; y<h; ++y){
+ for(unsigned x=0; x<w; ++x){
+ float v = gf.getSmoothedPixel<GrayImage>(pLevel, 2*x,2*y);
+ img->setPixel(x,y,v);
+ }
+ }
+ _levels.push_back(img);
+ pLevel = img;
+ }
+ }
+}
diff --git a/source/blender/freestyle/intern/image/ImagePyramid.h b/source/blender/freestyle/intern/image/ImagePyramid.h
new file mode 100755
index 00000000000..9e326757f02
--- /dev/null
+++ b/source/blender/freestyle/intern/image/ImagePyramid.h
@@ -0,0 +1,92 @@
+//
+// Filename : ImagePyramid.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to represent a pyramid of images
+// Date of creation : 25/12/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef IMAGEPYRAMID_H
+# define IMAGEPYRAMID_H
+
+#include "../system/FreestyleConfig.h"
+#include <vector>
+
+class GrayImage;
+class LIB_IMAGE_EXPORT ImagePyramid{
+protected:
+ std::vector<GrayImage*> _levels;
+
+public:
+ ImagePyramid(){}
+ ImagePyramid(const ImagePyramid& iBrother);
+ //ImagePyramid(const GrayImage& level0, unsigned nbLevels);
+ virtual ~ImagePyramid();
+
+ /*! Builds the pyramid.
+ * must be overloaded by inherited classes.
+ * if nbLevels==0, the complete pyramid is built
+ */
+ virtual void BuildPyramid(const GrayImage& level0, unsigned nbLevels) = 0;
+
+ /*! Builds a pyramid without copying the base level */
+ virtual void BuildPyramid(GrayImage* level0, unsigned nbLevels) = 0;
+
+ virtual GrayImage * getLevel(int l);
+ /*! Returns the pixel x,y using bilinear interpolation.
+ * \param x
+ * the abscissa specified in the finest level coordinate system
+ * \param y
+ * the ordinate specified in the finest level coordinate system
+ * \param level
+ * the level from which we want the pixel to be evaluated
+ */
+ virtual float pixel(int x, int y, int level=0);
+ /*! Returns the width of the level-th level image */
+ virtual int width(int level=0);
+ /*! Returns the height of the level-th level image */
+ virtual int height(int level=0);
+ /*! Returns the number of levels in the pyramid */
+ inline int getNumberOfLevels() const { return _levels.size();}
+};
+
+class LIB_IMAGE_EXPORT GaussianPyramid : public ImagePyramid
+{
+protected:
+ float _sigma;
+public:
+ GaussianPyramid(float iSigma=1.f) : ImagePyramid() {_sigma=iSigma;}
+ GaussianPyramid(const GrayImage& level0, unsigned nbLevels, float iSigma=1.f);
+ GaussianPyramid(GrayImage* level0, unsigned nbLevels, float iSigma=1.f);
+ GaussianPyramid(const GaussianPyramid& iBrother);
+ virtual ~GaussianPyramid(){}
+
+ virtual void BuildPyramid(const GrayImage& level0, unsigned nbLevels);
+ virtual void BuildPyramid(GrayImage* level0, unsigned nbLevels);
+ /* accessors */
+ inline float getSigma() const {return _sigma;}
+ /* modifiers */
+
+};
+#endif // IMAGEPYRAMID_H
diff --git a/source/blender/freestyle/intern/image/image.pro b/source/blender/freestyle/intern/image/image.pro
new file mode 100755
index 00000000000..133b6cf4f35
--- /dev/null
+++ b/source/blender/freestyle/intern/image/image.pro
@@ -0,0 +1,66 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+TEMPLATE = lib
+
+TARGET = $${LIB_IMAGE}
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= dll
+
+#
+# DEFINES
+#
+#######################################
+
+win32:DEFINES *= MAKE_LIB_IMAGE_DLL
+
+#
+# INCLUDE PATH
+#
+#######################################
+
+#INCLUDEPATH *= ../system
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+!win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}/lib
+win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+
+#
+# INSTALL
+#
+#######################################
+
+LIB_DIR = ../../lib
+# install library
+target.path = $$LIB_DIR
+# "make install" configuration options
+INSTALLS += target
+
+#
+# SOURCES & HEADERS
+#
+#######################################
+
+!static {
+ include(src.pri)
+}
diff --git a/source/blender/freestyle/intern/image/src.pri b/source/blender/freestyle/intern/image/src.pri
new file mode 100755
index 00000000000..c047929b49f
--- /dev/null
+++ b/source/blender/freestyle/intern/image/src.pri
@@ -0,0 +1,13 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+IMAGE_DIR = ../image
+
+SOURCES *= $${IMAGE_DIR}/GaussianFilter.cpp \
+ $${IMAGE_DIR}/ImagePyramid.cpp
+
+HEADERS *= $${IMAGE_DIR}/Image.h \
+ $${IMAGE_DIR}/GaussianFilter.h \
+ $${IMAGE_DIR}/ImagePyramid.h
diff --git a/source/blender/freestyle/intern/libconfig.pri b/source/blender/freestyle/intern/libconfig.pri
new file mode 100755
index 00000000000..6fec8878694
--- /dev/null
+++ b/source/blender/freestyle/intern/libconfig.pri
@@ -0,0 +1,110 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+contains( CONFIG, 3ds1.20 ) {
+ message ("Using 3ds 1.2.0 module")
+ linux-g++:INCLUDEPATH *= $(HOME)/INCLUDE/LINUX
+ linux-g++:LIBS *= -L$(HOME)/LIB/LINUX -l3ds
+ cygwin-g++:INCLUDEPATH *= /usr/lib/lib3ds-1.2.0
+ cygwin-g++:LIBS *= -L/usr/lib/lib3ds-1.2.0/lib3ds -l3ds
+ mac:INCLUDEPATH *= /usr/local/include
+ mac:LIBS *= -l3ds
+ mac:QMAKE_LIBDIR *= /usr/local/lib
+ win32: INCLUDEPATH *= C:\include\lib3ds\1.2.0
+ win32: QMAKE_LIBDIR *= C:\lib\lib3ds\1.2.0
+ win32:debug: LIBS *= lib3ds-120sd.lib
+ win32:release: LIBS *= lib3ds-120s.lib
+}
+
+contains( CONFIG, 3ds1.30 ) {
+ message ("Using 3ds 1.3.0 module")
+ linux-g++:INCLUDEPATH *= $(HOME)/INCLUDE/LINUX
+ linux-g++:LIBS *= -L$(HOME)/LIB/LINUX -l3ds
+ cygwin-g++:INCLUDEPATH *= /usr/lib/lib3ds-1.3.0
+ cygwin-g++:LIBS *= -L/usr/lib/lib3ds-1.3.0/lib3ds -l3ds
+ mac:INCLUDEPATH *= /usr/local/include
+ mac:LIBS *= -l3ds
+ mac:QMAKE_LIBDIR *= /usr/local/lib
+ win32: INCLUDEPATH *= C:\include\lib3ds\1.3.0
+ win32: QMAKE_LIBDIR *= C:\lib\lib3ds\1.3.0
+ win32:debug: LIBS *= lib3ds-1_3d.lib
+ win32:release: LIBS *= lib3ds-1_3.lib
+}
+
+contains( CONFIG, qglviewer ) {
+ message ("Using QGLViewer module")
+ CONFIG *= qt thread opengl glut
+ linux-g++:INCLUDEPATH *= $(HOME)/INCLUDE
+ linux-g++:LIBS *= -L$(HOME)/LIB/LINUX -lQGLViewer
+ cygwin-g++:LIBS *= -lQGLViewer
+ win32: INCLUDEPATH *= $(HOME)\INCLUDE
+ win32: QMAKE_LIBDIR *= $(HOME)\LIB
+ win32: LIBS *= QGLViewer.lib
+}
+
+contains( CONFIG, python2.3) {
+ message ("Using python 2.3 module")
+ linux-g++:INCLUDEPATH *= /usr/include/python2.3
+ linux-g++:LIBS *= -lpthread -lm -lutil
+ linux-g++:LIBS *= -L/usr/local/lib/ -lpython2.3 -L$(HOME)/LIB/LINUX
+ win32: INCLUDEPATH *= C:\python23\include
+ win32: QMAKE_LIBDIR *= C:\python23\libs
+ win32: LIBS *= python23.lib
+}
+
+contains( CONFIG, python2.4) {
+ message ("Using python 2.4 module")
+ linux-g++:INCLUDEPATH *= /usr/include/python2.4
+ linux-g++:LIBS *= -lpthread -lm -lutil
+ linux-g++:LIBS *= -L/usr/local/lib/ -lpython2.4 -L$(HOME)/LIB/LINUX
+ cygwin-g++:INCLUDEPATH *= /usr/include/python2.4
+ cygwin-g++:LIBS *= -lpthread -lm -lutil
+ cygwin-g++:LIBS *= -L/usr/lib/python2.4/config -lpython2.4
+ win32: INCLUDEPATH *= C:\python24\include
+ win32: QMAKE_LIBDIR *= C:\python24\libs
+ win32: LIBS *= python24.lib
+}
+
+contains( CONFIG, python2.5) {
+ message ("Using python 2.5 module")
+ linux-g++:INCLUDEPATH *= /usr/include/python2.5
+ linux-g++:LIBS *= -lpthread -lm -lutil
+ linux-g++:LIBS *= -L/usr/local/lib/ -lpython2.5 -L$(HOME)/LIB/LINUX
+ mac: INCLUDEPATH *= /usr/include/python2.5
+ mac: LIBS *= -L/usr/lib/python2.5/config -lpython2.5
+ cygwin-g++:INCLUDEPATH *= /usr/include/python2.5
+ cygwin-g++:LIBS *= -lpthread -lm -lutil
+ cygwin-g++:LIBS *= -L/usr/lib/python2.5/config -lpython2.5
+ win32: INCLUDEPATH *= C:\python25\include
+ win32: QMAKE_LIBDIR *= C:\python25\libs
+ win32: LIBS *= python25.lib
+}
+
+
+contains( CONFIG, glut) {
+ message ("Using glut module")
+ linux-g++:LIBS *= -lglut -lXi
+ cygwin-g++:LIBS *= -lglut -lXi
+ mac: LIBS *= -framework Glut
+ win32:INCLUDEPATH *= C:\include
+ win32: QMAKE_LIBDIR *= C:\lib\glut
+ win32: LIBS *= glut32.lib
+}
+
+contains( CONFIG, qglviewer2 ) {
+ message ("Using QGLViewer module")
+ CONFIG *= qt thread opengl glut
+ linux-g++:INCLUDEPATH *= $(HOME)/INCLUDE
+ linux-g++:LIBS *= -L$(HOME)/LIB/LINUX -lQGLViewer
+ mac: LIBS *= -lQGLViewer
+ cygwin-g++:LIBS *= -lQGLViewer2
+ win32: INCLUDEPATH *= C:\include\QGLViewer\2.2.5
+ win32{
+ release{
+ QMAKE_LIBDIR *= C:\lib\QGLViewer\release
+ }
+ debug{
+ QMAKE_LIBDIR *= C:\lib\QGLViewer\debug
+ }
+ }
+ win32: LIBS *= QGLViewer2.lib
+}
diff --git a/source/blender/freestyle/intern/makedsp.vcnet.debug.bat b/source/blender/freestyle/intern/makedsp.vcnet.debug.bat
new file mode 100755
index 00000000000..e19ca52b4f7
--- /dev/null
+++ b/source/blender/freestyle/intern/makedsp.vcnet.debug.bat
@@ -0,0 +1,25 @@
+@echo off
+for /D %%d in (*) do call :FOR2 %%d
+rem cd ..
+goto :EOF
+
+:FOR2
+set componentpath=%1
+set dirname=%~n1
+for %%p in (%componentpath%\*.pro) do if exist %%p call :DSP %%p
+
+goto :EOF
+
+:DSP
+set drive=%~d1
+set filepath=%~p1
+cd %drive%%filepath%
+rem echo %drive%%filepath%
+set filename=%~n1
+echo creating %filename%_d.vcproj from %filename%.pro ...
+if %filename% == app (
+ qmake -t vcapp -win32 -o %filename%_d %filename%.pro
+) else (
+ qmake -t vclib -win32 -o %filename%_d %filename%.pro
+)
+cd..
diff --git a/source/blender/freestyle/intern/makedsp.vcnet.release.bat b/source/blender/freestyle/intern/makedsp.vcnet.release.bat
new file mode 100755
index 00000000000..3050a2fe4ea
--- /dev/null
+++ b/source/blender/freestyle/intern/makedsp.vcnet.release.bat
@@ -0,0 +1,25 @@
+@echo off
+for /D %%d in (*) do call :FOR2 %%d
+rem cd ..
+goto :EOF
+
+:FOR2
+set componentpath=%1
+set dirname=%~n1
+for %%p in (%componentpath%\*.pro) do if exist %%p call :DSP %%p
+
+goto :EOF
+
+:DSP
+set drive=%~d1
+set filepath=%~p1
+cd %drive%%filepath%
+rem echo %drive%%filepath%
+set filename=%~n1
+echo creating %filename%.vcproj from %filename%.pro ...
+if %filename% == app (
+ qmake -t vcapp -win32 -o %filename% %filename%.pro
+) else (
+ qmake -t vclib -win32 -o %filename% %filename%.pro
+)
+cd..
diff --git a/source/blender/freestyle/intern/rendering/GLBBoxRenderer.cpp b/source/blender/freestyle/intern/rendering/GLBBoxRenderer.cpp
new file mode 100755
index 00000000000..464779d6a43
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLBBoxRenderer.cpp
@@ -0,0 +1,108 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "GLBBoxRenderer.h"
+#include "../scene_graph/IndexedFaceSet.h"
+#include "../scene_graph/NodeDrawingStyle.h"
+#include "../scene_graph/NodeShape.h"
+#include "../scene_graph/NodeLight.h"
+#include "../scene_graph/NodeTransform.h"
+
+#include "../scene_graph/Rep.h"
+#include "../scene_graph/Node.h"
+
+void GLBBoxRenderer::visitIndexedFaceSet(IndexedFaceSet& iFaceSet)
+{
+ RenderRep(iFaceSet);
+}
+
+void GLBBoxRenderer::visitNodeGroup(NodeGroup& iGroupNode)
+{
+ RenderNode(iGroupNode);
+}
+
+void GLBBoxRenderer::visitNodeTransform(NodeTransform& iTransformNode)
+{
+ RenderNode(iTransformNode);
+}
+
+void GLBBoxRenderer::visitDrawingStyle(DrawingStyle& iDrawingStyle)
+{
+ if(DrawingStyle::INVISIBLE == iDrawingStyle.style())
+ return ;
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ glEnable(GL_LINE_SMOOTH);
+ glPolygonMode(GL_FRONT, GL_LINE);
+ glLineWidth(1.f);
+
+ glDisable(GL_LIGHTING);
+}
+
+void GLBBoxRenderer::RenderRep(const Rep& iRep) const
+{
+ RenderBBox(iRep.bbox());
+}
+
+void GLBBoxRenderer::RenderNode(const Node& iNode) const
+{
+ RenderBBox(iNode.bbox());
+}
+
+void GLBBoxRenderer::RenderBBox(const BBox<Vec3r>& iBox) const
+{
+ if(iBox.empty())
+ return;
+
+ Vec3r m = iBox.getMin();
+ Vec3r M = iBox.getMax();
+
+ glColor3f(0.f, 0.f, 0.f);
+ glBegin(GL_LINE_LOOP);
+ ((GLBBoxRenderer*)(this))->glVertex3r(m[0], m[1], m[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(M[0], m[1], m[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(M[0], M[1], m[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(m[0], M[1], m[2]);
+ glEnd();
+
+ glBegin(GL_LINE_LOOP);
+ ((GLBBoxRenderer*)(this))->glVertex3r(m[0], m[1], M[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(M[0], m[1], M[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(M[0], M[1], M[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(m[0], M[1], M[2]);
+ glEnd();
+
+ glBegin(GL_LINE_LOOP);
+ ((GLBBoxRenderer*)(this))->glVertex3r(m[0], m[1], m[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(m[0], m[1], M[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(m[0], M[1], M[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(m[0], M[1], m[2]);
+ glEnd();
+
+ glBegin(GL_LINE_LOOP);
+ ((GLBBoxRenderer*)(this))->glVertex3r(M[0], m[1], m[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(M[0], m[1], M[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(M[0], M[1], M[2]);
+ ((GLBBoxRenderer*)(this))->glVertex3r(M[0], M[1], m[2]);
+ glEnd();
+
+}
diff --git a/source/blender/freestyle/intern/rendering/GLBBoxRenderer.h b/source/blender/freestyle/intern/rendering/GLBBoxRenderer.h
new file mode 100755
index 00000000000..4bb72ba80b0
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLBBoxRenderer.h
@@ -0,0 +1,59 @@
+//
+// Filename : GLBBoxRenderer.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to render BBoxes of a 3D scene thanks to OpenGL
+// Date of creation : 07/02/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GLBBOXRENDERER_H
+# define GLBBOXRENDERER_H
+
+# include "../system/FreestyleConfig.h"
+# include "GLRenderer.h"
+# include "../geometry/BBox.h"
+
+class Rep;
+class Node;
+
+class LIB_RENDERING_EXPORT GLBBoxRenderer : public GLRenderer
+{
+public:
+
+ inline GLBBoxRenderer() : GLRenderer() {}
+ virtual ~GLBBoxRenderer() {}
+
+ VISIT_DECL(NodeGroup)
+ VISIT_DECL(NodeTransform)
+ VISIT_DECL(IndexedFaceSet)
+ VISIT_DECL(DrawingStyle)
+
+ protected:
+
+ void RenderRep(const Rep& iRep) const ;
+ void RenderNode(const Node& iNode) const ;
+ void RenderBBox(const BBox<Vec3r>& iBox) const ;
+};
+
+#endif // GLBBOXRENDERER_H
diff --git a/source/blender/freestyle/intern/rendering/GLDebugRenderer.cpp b/source/blender/freestyle/intern/rendering/GLDebugRenderer.cpp
new file mode 100755
index 00000000000..b396a0ce6d3
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLDebugRenderer.cpp
@@ -0,0 +1,197 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <stdio.h>
+#include "../scene_graph/VertexRep.h"
+#include "../scene_graph/NodeShape.h"
+#include "../scene_graph/IndexedFaceSet.h"
+#include "../scene_graph/LineRep.h"
+#include "../geometry/Grid.h"
+
+#include "GLDebugRenderer.h"
+
+#ifdef __MACH__
+#include <GLUT/glut.h>
+#else
+#include <GL/glut.h>
+#endif
+
+void GLDebugRenderer::visitIndexedFaceSet(IndexedFaceSet& iFaceSet)
+{
+ unsigned int fIndex = 0;
+
+ const real * vertices = iFaceSet.vertices();
+ const real * normals = iFaceSet.normals();
+ const Material *const* materials = (const Material**)iFaceSet.materials();
+ const unsigned *vindices = iFaceSet.vindices();
+ const unsigned *nindices = iFaceSet.nindices();
+ const unsigned *mindices = iFaceSet.mindices();
+ const unsigned numfaces = iFaceSet.numFaces();
+ const unsigned *numVertexPerFace = iFaceSet.numVertexPerFaces();
+ const IndexedFaceSet::TRIANGLES_STYLE * faceStyle = iFaceSet.trianglesStyle();
+
+ const unsigned *pvi = vindices;
+ const unsigned *pni = nindices;
+ const unsigned* pmi = mindices;
+
+ for(fIndex=0; fIndex<numfaces; fIndex++)
+ {
+ switch(faceStyle[fIndex])
+ {
+ case IndexedFaceSet::TRIANGLE_STRIP:
+ RenderTriangleStrip(vertices, normals, materials, pvi, pni, pmi, numVertexPerFace[fIndex]);
+ break;
+ case IndexedFaceSet::TRIANGLE_FAN:
+ RenderTriangleFan(vertices, normals, materials, pvi, pni, pmi, numVertexPerFace[fIndex]);
+ break;
+ case IndexedFaceSet::TRIANGLES:
+ RenderTriangles(vertices, normals, materials, pvi, pni, pmi, numVertexPerFace[fIndex]);
+ break;
+ }
+ pvi += numVertexPerFace[fIndex];
+ pni += numVertexPerFace[fIndex];
+ pmi += numVertexPerFace[fIndex];
+ }
+}
+
+void GLDebugRenderer::visitNodeShape(NodeShape& iShapeNode)
+{
+ // Gets the bbox size:
+ real minY = iShapeNode.bbox().getMin()[1];
+ real maxY = iShapeNode.bbox().getMax()[1];
+
+ // sets the text size:
+ _bboxSize = fabs((maxY-minY)); ///1000.f;
+}
+
+void GLDebugRenderer::visitLineRep(LineRep& iLine)
+{
+
+ glColor3f(0,0,0);
+
+ GLRenderer::visitLineRep(iLine);
+}
+
+void GLDebugRenderer::visitOrientedLineRep(OrientedLineRep& iLine)
+{
+ GLRenderer::visitOrientedLineRep(iLine);
+}
+
+void GLDebugRenderer::visitVertexRep(VertexRep& iVertex)
+{
+ glPointSize(3.0);
+
+ GLRenderer::visitVertexRep(iVertex);
+}
+
+
+void GLDebugRenderer::renderBitmapString(real x,
+ real y,
+ real z,
+ void *font,
+ char *string,
+ float size)
+{
+ char *c;
+
+ glPushMatrix();
+ glTranslater(x, y,z);
+ real textSize = min(_bboxSize/10.0, _minEdgeSize/2.0);
+ // adjust the text size so as it
+ // is acceptable giving the bbox size:
+ while(_bboxSize/textSize>1000)
+ textSize *= 10.0;
+
+ glScalef(size, size, size);
+ glScalef(textSize/200.0, textSize/200.0, textSize/200.0);
+ for (c=string; *c != '\0'; c++)
+ {
+ glutStrokeCharacter(font, *c);
+ }
+ glPopMatrix();
+}
+
+void GLDebugRenderer::RenderTriangleStrip(const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned iNVertices)
+{
+ // glBegin(GL_TRIANGLE_STRIP);
+ // for(unsigned int i=0; i<iNVertices; i++)
+ // {
+ // glNormal3r(iNormals[iNIndices[i]],
+ // iNormals[iNIndices[i]+1],
+ // iNormals[iNIndices[i]+2]);
+ //
+ // glVertex3r( iVertices[iVIndices[i]],
+ // iVertices[iVIndices[i]+1],
+ // iVertices[iVIndices[i]+2]);
+ // }
+ // glEnd();
+}
+
+void GLDebugRenderer::RenderTriangleFan(const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned iNVertices)
+{
+ // glBegin(GL_TRIANGLE_FAN);
+ // for(unsigned int i=0; i<iNVertices; i++)
+ // {
+ // glNormal3r(iNormals[iNIndices[i]],
+ // iNormals[iNIndices[i]+1],
+ // iNormals[iNIndices[i]+2]);
+ //
+ // glVertex3r( iVertices[iVIndices[i]],
+ // iVertices[iVIndices[i]+1],
+ // iVertices[iVIndices[i]+2]);
+ // }
+ // glEnd();
+}
+
+void GLDebugRenderer::RenderTriangles(const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned iNVertices)
+{
+ // // Renders the normals:
+ // glBegin(GL_LINES);
+ // for(unsigned int i=0; i<iNVertices; i++)
+ // {
+ // glVertex3r( iVertices[iVIndices[i]],
+ // iVertices[iVIndices[i]+1],
+ // iVertices[iVIndices[i]+2]);
+ //
+ // glVertex3r(iVertices[iVIndices[i]] + iNormals[iNIndices[i]]/10.f,
+ // iVertices[iVIndices[i]+1] + iNormals[iNIndices[i]+1]/10.f,
+ // iVertices[iVIndices[i]+2] + iNormals[iNIndices[i]+2]/10.f);
+ // }
+ // glEnd();
+}
diff --git a/source/blender/freestyle/intern/rendering/GLDebugRenderer.h b/source/blender/freestyle/intern/rendering/GLDebugRenderer.h
new file mode 100755
index 00000000000..abf76d079da
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLDebugRenderer.h
@@ -0,0 +1,182 @@
+//
+// Filename : GLDebugRenderer.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to render the debug informations related to
+// a scene
+// Date of creation : 03/04/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GLDEBUGRENDERER_H
+# define GLDEBUGRENDERER_H
+
+# include <float.h>
+# include "../system/FreestyleConfig.h"
+# include "GLRenderer.h"
+# include "../view_map/Silhouette.h"
+# include "../winged_edge/Curvature.h"
+
+class WSMeshShape;
+class WSExactShape;
+
+class LIB_RENDERING_EXPORT GLDebugRenderer : public GLRenderer
+{
+public:
+
+ inline GLDebugRenderer() : GLRenderer() {
+ _bboxSize = 2.0;
+ SetMaxValue(&_minEdgeSize);
+ _SelectedFEdge = 0;
+ }
+
+ inline ~GLDebugRenderer() {}
+
+ VISIT_DECL(NodeShape)
+
+ VISIT_DECL(IndexedFaceSet)
+ VISIT_DECL(LineRep)
+ VISIT_DECL(OrientedLineRep)
+ VISIT_DECL(VertexRep)
+
+ /*! Renders a bitmap string in world coordinates
+ * x, y, z
+ * The world coordinates of the sentence's starting point
+ * font
+ * The font used to display the text.
+ * Must be one of :
+ * - GLUT_STROKE_ROMAN
+ * - GLUT_STROKE_MONO_ROMAN
+ * string
+ * The text to display
+ * size
+ * The relative size of the text to display
+ */
+ void renderBitmapString(real x,
+ real y,
+ real z,
+ void *font,
+ char *string,
+ float size = 1.f) ;
+
+ /*! Reinitialize the Renderer so as the previous
+ * text size does not affect the current one.
+ * iBBoxSize
+ * The size of the scene bounding box.
+ */
+ inline void ReInit(real iBBoxSize) {_bboxSize = iBBoxSize; SetMaxValue(&_minEdgeSize);}
+
+ inline void SetSelectedFEdge(FEdge *iFEdge) {_SelectedFEdge = iFEdge;}
+ inline FEdge * selectedFEdge() {return _SelectedFEdge;}
+
+protected:
+
+ /*! Renders a face made of a triangles strip
+ * iVertices
+ * Array of float containing the face vertices. 3 floats per
+ * x, y, z vertex coordinates
+ * iNormals
+ * Array of float containing the face normals. 3 floats per
+ * x, y, z vertex normal coordinates
+ * iVIndices
+ * Array of the indices (to use with the iVertices array)
+ * describing the vertices parsing order
+ * iNIndices
+ * Array of normals indices (to use with iNormals array)
+ * describing the normals parsing order
+ * iNVertices
+ * The number of vertices in the face
+ */
+ virtual void RenderTriangleStrip(const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned iNVertices);
+
+ /*! Renders a face made of a triangles fan
+ * iVertices
+ * Array of float containing the face vertices. 3 floats per
+ * x, y, z vertex coordinates
+ * iNormals
+ * Array of float containing the face normals. 3 floats per
+ * x, y, z vertex normal coordinates
+ * iVIndices
+ * Array of the indices (to use with the iVertices array)
+ * describing the vertices parsing order
+ * iNIndices
+ * Array of normals indices (to use with iNormals array)
+ * describing the normals parsing order
+ * iNVertices
+ * The number of vertices in the face
+ */
+ virtual void RenderTriangleFan(const real *iVertices,
+ const real *iNormals,
+ const Material *const*iMaterials,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned iNVertices);
+
+ /*! Renders a face made of single triangles
+ * iVertices
+ * Array of float containing the face vertices. 3 floats per
+ * x, y, z vertex coordinates
+ * iNormals
+ * Array of float containing the face normals. 3 floats per
+ * x, y, z vertex normal coordinates
+ * iVIndices
+ * Array of the indices (to use with the iVertices array)
+ * describing the vertices parsing order
+ * iNIndices
+ * Array of normals indices (to use with iNormals array)
+ * describing the normals parsing order
+ * iNVertices
+ * The number of vertices in the face
+ */
+ virtual void RenderTriangles(const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned iNVertices);
+
+ /*! glTranslatef or glTranslated */
+ inline void glTranslater(float x, float y, float z) {glTranslatef(x,y,z);}
+ inline void glTranslater(real x, real y, real z) {glTranslated(x,y,z);}
+
+
+private:
+
+ inline void SetMaxValue(float *oValue) {*oValue = FLT_MAX;}
+ inline void SetMaxValue(real *oValue) {*oValue = DBL_MAX;}
+
+ mutable real _bboxSize;
+ mutable real _minEdgeSize;
+
+ FEdge *_SelectedFEdge;
+};
+
+#endif // GLDEBUGRENDERER_H
diff --git a/source/blender/freestyle/intern/rendering/GLFreeMemoryVisitor.cpp b/source/blender/freestyle/intern/rendering/GLFreeMemoryVisitor.cpp
new file mode 100644
index 00000000000..b5a835f5104
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLFreeMemoryVisitor.cpp
@@ -0,0 +1,27 @@
+#include "GLFreeMemoryVisitor.h"
+#include "../scene_graph/IndexedFaceSet.h"
+
+# ifdef WIN32
+# include <windows.h>
+# endif
+# ifdef __MACH__
+# include <OpenGL/gl.h>
+# else
+# include <GL/gl.h>
+# endif
+
+GLFreeMemoryVisitor::GLFreeMemoryVisitor()
+:SceneVisitor(){
+}
+
+GLFreeMemoryVisitor::~GLFreeMemoryVisitor(){
+}
+
+void GLFreeMemoryVisitor::visitIndexedFaceSet(IndexedFaceSet& ifs){
+ GLuint dl = ifs.displayList();
+ if(dl != 0){
+ if(glIsList(dl)){
+ glDeleteLists(dl, 1);
+ }
+ }
+}
diff --git a/source/blender/freestyle/intern/rendering/GLFreeMemoryVisitor.h b/source/blender/freestyle/intern/rendering/GLFreeMemoryVisitor.h
new file mode 100644
index 00000000000..dd6412b1bb7
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLFreeMemoryVisitor.h
@@ -0,0 +1,23 @@
+#ifndef GL_FREE_MEMORY_VISITOR_H_
+#define GL_FREE_MEMORY_VISITOR_H_
+
+# include "../system/FreestyleConfig.h"
+# include "../scene_graph/SceneVisitor.h"
+
+/*! Mainly used to delete display lists */
+class LIB_RENDERING_EXPORT GLFreeMemoryVisitor : public SceneVisitor
+{
+public:
+
+ GLFreeMemoryVisitor() ;
+ virtual ~GLFreeMemoryVisitor() ;
+
+ //
+ // visitClass methods
+ //
+ //////////////////////////////////////////////
+
+ VISIT_DECL(IndexedFaceSet)
+};
+
+#endif // GL_FREE_MEMORY_H_ \ No newline at end of file
diff --git a/source/blender/freestyle/intern/rendering/GLMonoColorRenderer.cpp b/source/blender/freestyle/intern/rendering/GLMonoColorRenderer.cpp
new file mode 100755
index 00000000000..792846fa020
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLMonoColorRenderer.cpp
@@ -0,0 +1,43 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "GLMonoColorRenderer.h"
+
+void GLMonoColorRenderer::visitMaterial(Material&) {
+ glColor3f(_r, _g, _b);
+}
+
+void GLMonoColorRenderer::visitDrawingStyle(DrawingStyle&) {
+ glDisable(GL_LIGHTING);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ glEnable(GL_LINE_SMOOTH);
+ glLineWidth(3.0);
+ glPolygonMode(GL_BACK, GL_LINE);
+ //glPolygonMode(GL_BACK, GL_FILL);
+}
+
+void GLMonoColorRenderer::setColor(float r, float g, float b, float alpha) {
+ _r = r;
+ _g = g;
+ _b = b;
+ _alpha = alpha;
+}
diff --git a/source/blender/freestyle/intern/rendering/GLMonoColorRenderer.h b/source/blender/freestyle/intern/rendering/GLMonoColorRenderer.h
new file mode 100755
index 00000000000..d8e3cf536ec
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLMonoColorRenderer.h
@@ -0,0 +1,60 @@
+//
+// Filename : GLMonoColorRenderer.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to render 3D scene in 2 colors thanks to OpenGL
+// Date of creation : 07/02/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GLMONOCOLORRENDERER_H
+# define GLMONOCOLORRENDERER_H
+
+# include "../system/FreestyleConfig.h"
+# include "GLRenderer.h"
+
+class LIB_RENDERING_EXPORT GLMonoColorRenderer : public GLRenderer
+{
+ public:
+
+ GLMonoColorRenderer() : GLRenderer() {
+ _r = _g = _b = 0.f;
+ _alpha = 1.f;
+ }
+
+ virtual ~GLMonoColorRenderer() {}
+
+ VISIT_DECL(DrawingStyle)
+ VISIT_DECL(Material)
+
+ void setColor(float r, float g, float b, float alpha = 1.f);
+
+private:
+
+ float _r;
+ float _g;
+ float _b;
+ float _alpha;
+};
+
+#endif // GLMONOCOLORRENDERER_H
diff --git a/source/blender/freestyle/intern/rendering/GLRenderer.cpp b/source/blender/freestyle/intern/rendering/GLRenderer.cpp
new file mode 100755
index 00000000000..d566060dfc7
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLRenderer.cpp
@@ -0,0 +1,467 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "../scene_graph/IndexedFaceSet.h"
+#include "../scene_graph/NodeDrawingStyle.h"
+#include "../scene_graph/NodeLight.h"
+#include "../scene_graph/NodeCamera.h"
+#include "../scene_graph/NodeTransform.h"
+#include "../scene_graph/NodeShape.h"
+#include "../scene_graph/OrientedLineRep.h"
+#include "../scene_graph/VertexRep.h"
+#include "../stroke/Stroke.h"
+
+#include "../scene_graph/TriangleRep.h"
+
+#include "GLRenderer.h"
+
+static GLenum lights[8] = {GL_LIGHT0,
+ GL_LIGHT1,
+ GL_LIGHT2,
+ GL_LIGHT3,
+ GL_LIGHT4,
+ GL_LIGHT5,
+ GL_LIGHT6,
+ GL_LIGHT7};
+
+void GLRenderer::visitIndexedFaceSet(IndexedFaceSet& ifs)
+{
+ /*GLuint dl = ifs.displayList();
+ if(dl != 0){
+ glCallList(dl);
+ return;
+ }*/
+ unsigned int fIndex = 0;
+
+ const real * vertices = ifs.vertices();
+ const real * normals = ifs.normals();
+ const real * texCoords = ifs.texCoords();
+ const Material *const* materials = ifs.materials();
+ const unsigned *vindices = ifs.vindices();
+ const unsigned *nindices = ifs.nindices();
+ const unsigned *mindices = ifs.mindices();
+ const unsigned *tindices = ifs.tindices();
+ const unsigned numfaces = ifs.numFaces();
+ const IndexedFaceSet::TRIANGLES_STYLE * faceStyle = ifs.trianglesStyle();
+ const unsigned *numVertexPerFace = ifs.numVertexPerFaces();
+
+
+ const unsigned* pvi = vindices;
+ const unsigned* pni = nindices;
+ const unsigned* pmi = mindices;
+ const unsigned* pti = tindices;
+
+ //dl = glGenLists(1);
+ //glNewList(dl, GL_COMPILE_AND_EXECUTE);
+ for(fIndex=0; fIndex<numfaces; fIndex++)
+ {
+ switch(faceStyle[fIndex])
+ {
+ case IndexedFaceSet::TRIANGLE_STRIP:
+ RenderTriangleStrip(vertices, normals, materials, texCoords, pvi, pni, pmi, pti, numVertexPerFace[fIndex]);
+ break;
+ case IndexedFaceSet::TRIANGLE_FAN:
+ RenderTriangleFan(vertices, normals, materials, texCoords, pvi, pni, pmi, pti, numVertexPerFace[fIndex]);
+ break;
+ case IndexedFaceSet::TRIANGLES:
+ RenderTriangles(vertices, normals, materials, texCoords, pvi, pni, pmi, pti, numVertexPerFace[fIndex]);
+ break;
+ }
+ pvi += numVertexPerFace[fIndex];
+ pni += numVertexPerFace[fIndex];
+ if(pmi)
+ pmi += numVertexPerFace[fIndex];
+ if(pti)
+ pti += numVertexPerFace[fIndex];
+ }
+ //glEndList();
+ //ifs.SetDisplayList(dl);
+}
+
+void GLRenderer::visitNodeTransform(NodeTransform& tn) {
+ if(tn.scaled())
+ glEnable(GL_NORMALIZE);
+}
+
+void GLRenderer::visitNodeTransformBefore(NodeTransform& tn) {
+ glPushMatrix();
+
+ // Now apply transform
+ applyTransform(tn.matrix());
+}
+
+void GLRenderer::visitNodeTransformAfter(NodeTransform& tn) {
+ glPopMatrix();
+}
+
+void GLRenderer::visitNodeLight(NodeLight& ln)
+{
+ if(true != ln.isOn())
+ return;
+
+ int number = ln.number();
+
+ glLightfv(lights[number], GL_AMBIENT, ln.ambient());
+ glLightfv(lights[number], GL_DIFFUSE, ln.diffuse());
+ glLightfv(lights[number], GL_SPECULAR, ln.specular());
+ glLightfv(lights[number], GL_POSITION, ln.position());
+
+ glEnable(lights[number]);
+}
+
+void GLRenderer::visitNodeCamera(NodeCamera& cn)
+{
+ const double * mvm = cn.modelViewMatrix();
+ const double * pm = cn.projectionMatrix();
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glMultMatrixd(pm);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glMultMatrixd(mvm);
+
+
+}
+
+void GLRenderer::visitNodeDrawingStyleBefore(NodeDrawingStyle& ds) {
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+}
+
+void GLRenderer::visitNodeDrawingStyleAfter(NodeDrawingStyle&) {
+ glPopAttrib();
+}
+
+void GLRenderer::RenderTriangleStrip( const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const real *iTexCoords,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned* iTIndices,
+ const unsigned iNVertices)
+{
+ unsigned index = -1;
+ glBegin(GL_TRIANGLE_STRIP);
+ for(unsigned int i=0; i<iNVertices; i++)
+ {
+ if(iMIndices){
+ if(iMIndices[i] != index){
+ visitMaterial(*(iMaterials[iMIndices[i]]));
+ index = iMIndices[i];
+ }
+ }
+
+ if(iTIndices){
+ glTexCoord2f( iTexCoords[iTIndices[i]],
+ iTexCoords[iTIndices[i]+1]);
+ }
+
+ glNormal3r(iNormals[iNIndices[i]],
+ iNormals[iNIndices[i]+1],
+ iNormals[iNIndices[i]+2]);
+
+ glVertex3r( iVertices[iVIndices[i]],
+ iVertices[iVIndices[i]+1],
+ iVertices[iVIndices[i]+2]);
+ }
+ glEnd();
+}
+
+void GLRenderer::RenderTriangleFan( const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const real *iTexCoords,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned* iTIndices,
+ const unsigned iNVertices)
+{
+ unsigned index = -1;
+ glBegin(GL_TRIANGLE_FAN);
+ for(unsigned int i=0; i<iNVertices; i++)
+ {
+ if(iMIndices){
+ if(iMIndices[i] != index){
+ visitMaterial(*(iMaterials[iMIndices[i]]));
+ index = iMIndices[i];
+ }
+ }
+ if(iTIndices){
+ glTexCoord2f( iTexCoords[iTIndices[i]],
+ iTexCoords[iTIndices[i]+1]);
+ }
+
+ glNormal3r(iNormals[iNIndices[i]],
+ iNormals[iNIndices[i]+1],
+ iNormals[iNIndices[i]+2]);
+
+ glVertex3r( iVertices[iVIndices[i]],
+ iVertices[iVIndices[i]+1],
+ iVertices[iVIndices[i]+2]);
+ }
+ glEnd();
+}
+
+void GLRenderer::RenderTriangles( const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const real *iTexCoords,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned* iTIndices,
+ const unsigned iNVertices)
+{
+ unsigned index = -1;
+ glBegin(GL_TRIANGLES);
+ for(unsigned int i=0; i<iNVertices; i++)
+ {
+ if(iMIndices){
+ if(iMIndices[i] != index){
+ visitMaterial(*(iMaterials[iMIndices[i]]));
+ index = iMIndices[i];
+ }
+ }
+ if(iTIndices){
+ glTexCoord2f( iTexCoords[iTIndices[i]],
+ iTexCoords[iTIndices[i]+1]);
+ }
+
+ glNormal3r(iNormals[iNIndices[i]],
+ iNormals[iNIndices[i]+1],
+ iNormals[iNIndices[i]+2]);
+
+ glVertex3r( iVertices[iVIndices[i]],
+ iVertices[iVIndices[i]+1],
+ iVertices[iVIndices[i]+2]);
+ }
+ glEnd();
+}
+
+void GLRenderer::visitLineRep( LineRep& iLine)
+{
+ if(iLine.width() != 0)
+ glLineWidth(iLine.width());
+
+ switch(iLine.style())
+ {
+ case LineRep::LINES:
+ glBegin(GL_LINES);
+ break;
+ case LineRep::LINE_STRIP:
+ glBegin(GL_LINE_STRIP);
+ break;
+ case LineRep::LINE_LOOP:
+ glBegin(GL_LINE_LOOP);
+ break;
+ default:
+ return;
+ }
+
+ const vector<Vec3r>& vertices = iLine.vertices();
+ float step=1.f/vertices.size();
+ vector<Vec3r>::const_iterator v;
+
+ for(v=vertices.begin(); v!=vertices.end(); v++)
+ glVertex3r((*v)[0], (*v)[1], (*v)[2]);
+
+ glEnd();
+}
+
+
+void GLRenderer::visitTriangleRep( TriangleRep& iTriangle)
+{
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+ switch(iTriangle.style())
+ {
+ case TriangleRep::FILL:
+ glPolygonMode(GL_FRONT, GL_FILL);
+ break;
+ case TriangleRep::LINES:
+ glPolygonMode(GL_FRONT, GL_LINES);
+ break;
+ default:
+ return;
+ }
+
+ glBegin(GL_TRIANGLES);
+ for(int i=0; i<3; ++i)
+ {
+ glColor3f(iTriangle.color(i)[0], iTriangle.color(i)[1], iTriangle.color(i)[2]);
+ glVertex3r(iTriangle.vertex(i)[0], iTriangle.vertex(i)[1], iTriangle.vertex(i)[2]);
+ }
+
+ glEnd();
+
+
+
+ glPopAttrib();
+
+}
+
+void GLRenderer::visitOrientedLineRep(OrientedLineRep& iLine)
+{
+ switch(iLine.style())
+ {
+ case LineRep::LINES:
+ glBegin(GL_LINES);
+ break;
+ case LineRep::LINE_STRIP:
+ glBegin(GL_LINE_STRIP);
+ break;
+ case LineRep::LINE_LOOP:
+ glBegin(GL_LINE_LOOP);
+ break;
+ default:
+ return;
+ }
+
+ int i=0;
+ int ncolor = iLine.getId().getFirst()%3;
+
+ const vector<Vec3r>& vertices = iLine.vertices();
+ float step=1.f/vertices.size();
+ vector<Vec3r>::const_iterator v;
+ for(v=vertices.begin(); v!=vertices.end(); v++)
+ {
+ switch(ncolor)
+ {
+ case 0:
+ glColor3f(i*step,0.f,0.f);
+ break;
+ case 1:
+ glColor3f(0.f, i*step, 0.f);
+ break;
+ case 2:
+ glColor3f(0.f, 0.f, i*step);
+ break;
+ default:
+ glColor3f(i*step, i*step,i*step);
+ break;
+ }
+ i++;
+ glVertex3r((*v)[0], (*v)[1], (*v)[2]);
+ }
+
+ glEnd();
+}
+
+void GLRenderer::visitVertexRep( VertexRep& iVertex)
+{
+ if(iVertex.pointSize() != 0.f)
+ glPointSize(iVertex.pointSize());
+
+ glBegin(GL_POINTS);
+ glVertex3r(iVertex.x(), iVertex.y(), iVertex.z());
+ glEnd();
+}
+
+void GLRenderer::visitDrawingStyle(DrawingStyle& iDrawingStyle)
+{
+
+ // Drawing Style management
+ switch(iDrawingStyle.style())
+ {
+ case DrawingStyle::FILLED:
+ glPolygonMode(GL_FRONT, GL_FILL);
+ glShadeModel(GL_SMOOTH);
+ break;
+
+ case DrawingStyle::LINES:
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ glEnable(GL_LINE_SMOOTH);
+ glPolygonMode(GL_FRONT, GL_LINE);
+ glLineWidth(iDrawingStyle.lineWidth());
+ break;
+
+ case DrawingStyle::POINTS:
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ glEnable(GL_POINT_SMOOTH);
+ glPolygonMode(GL_FRONT, GL_POINT);
+ glPointSize(iDrawingStyle.pointSize());
+ break;
+
+ case DrawingStyle::INVISIBLE:
+ glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ glDepthMask(0);
+ break;
+
+ default:
+ break;
+ }
+
+ glLineWidth(iDrawingStyle.lineWidth());
+ glPointSize(iDrawingStyle.pointSize());
+
+ // FIXME
+ if(true == iDrawingStyle.lightingEnabled())
+ glEnable(GL_LIGHTING);
+ else
+ glDisable(GL_LIGHTING);
+}
+
+void GLRenderer::visitMaterial(Material& m) {
+ const float* diff = m.diffuse();
+ const float* amb = m.ambient();
+ const float* spec = m.specular();
+ const float* em = m.emission();
+
+ RenderColor(diff);
+ glMaterialfv(GL_FRONT, GL_AMBIENT, amb);
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, diff);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_EMISSION, em);
+ glMaterialf(GL_FRONT, GL_SHININESS, m.shininess());
+}
+
+void GLRenderer::visitMaterial(const Material& m) {
+ const float* diff = m.diffuse();
+ const float* amb = m.ambient();
+ const float* spec = m.specular();
+ const float* em = m.emission();
+
+ RenderColor(diff);
+ glMaterialfv(GL_FRONT, GL_AMBIENT, amb);
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, diff);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_EMISSION, em);
+ glMaterialf(GL_FRONT, GL_SHININESS, m.shininess());
+}
+void GLRenderer::applyTransform( const Matrix44r &iMatrix)
+{
+ real m[16];
+ for(int lign=0; lign<4; lign++)
+ for(int column=0; column<4; column++)
+ m[column*4+lign] = iMatrix(lign, column);
+
+ glMultMatrixr(m);
+}
+
+void GLRenderer::RenderColor( const float *rgba)
+{
+ glColor4fv(rgba);
+}
diff --git a/source/blender/freestyle/intern/rendering/GLRenderer.h b/source/blender/freestyle/intern/rendering/GLRenderer.h
new file mode 100755
index 00000000000..ddbf082038b
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLRenderer.h
@@ -0,0 +1,204 @@
+//
+// Filename : GLRenderer.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Class to render a 3D scene thanks to OpenGL
+// Date of creation : 07/02/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GLRENDERER_H
+# define GLRENDERER_H
+
+# ifdef WIN32
+# include <windows.h>
+# endif
+# ifdef __MACH__
+# include <OpenGL/gl.h>
+# else
+# include <GL/gl.h>
+# endif
+
+# include "../system/FreestyleConfig.h"
+# include "../system/Precision.h"
+# include "../scene_graph/SceneVisitor.h"
+# include "../geometry/Geom.h"
+using namespace Geometry;
+
+class LIB_RENDERING_EXPORT GLRenderer : public SceneVisitor
+{
+ public:
+
+ inline GLRenderer() : SceneVisitor() {}
+ virtual ~GLRenderer() {}
+
+ //
+ // visitClass methods
+ //
+ //////////////////////////////////////////////
+
+ VISIT_DECL(NodeLight)
+ VISIT_DECL(NodeCamera)
+ VISIT_DECL(NodeTransform)
+
+ VISIT_DECL(LineRep)
+ VISIT_DECL(OrientedLineRep)
+ VISIT_DECL(TriangleRep)
+ VISIT_DECL(VertexRep)
+ VISIT_DECL(IndexedFaceSet)
+ VISIT_DECL(DrawingStyle)
+ VISIT_DECL(Material)
+
+ virtual void visitMaterial(const Material&);
+ virtual void visitNodeTransformBefore(NodeTransform&);
+ virtual void visitNodeTransformAfter(NodeTransform&);
+ virtual void visitNodeDrawingStyleBefore(NodeDrawingStyle&);
+ virtual void visitNodeDrawingStyleAfter(NodeDrawingStyle&);
+
+ protected:
+
+ /*! Renders a face made of a triangles strip
+ * iVertices
+ * Array of float containing the face vertices. 3 floats per
+ * x, y, z vertex coordinates
+ * iNormals
+ * Array of float containing the face normals. 3 floats per
+ * x, y, z vertex normal coordinates
+ * iTexCoords
+ * Array of float containing the face uv coords. 2 floats per
+ * u,v vertex texture coordinates
+ * iVIndices
+ * Array of the indices (to use with the iVertices array)
+ * describing the vertices parsing order
+ * iNIndices
+ * Array of normals indices (to use with iNormals array)
+ * describing the normals parsing order
+ * iTIndices
+ * Array of texture coordinates indices (to use with iTexCoords array)
+ * describing the texture coordinates parsing order
+ * iNVertices
+ * The number of vertices in the face
+ */
+ virtual void RenderTriangleStrip(const real *iVertices,
+ const real *iNormals,
+ const Material *const*iMaterials,
+ const real *iTexCoords,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned* iTIndices,
+ const unsigned iNVertices) ;
+
+ /*! Renders a face made of a triangles fan
+ * iVertices
+ * Array of float containing the face vertices. 3 floats per
+ * x, y, z vertex coordinates
+ * iNormals
+ * Array of float containing the face normals. 3 floats per
+ * x, y, z vertex normal coordinates
+ * iTexCoords
+ * Array of float containing the face uv coords. 2 floats per
+ * u,v vertex texture coordinates
+ * iVIndices
+ * Array of the indices (to use with the iVertices array)
+ * describing the vertices parsing order
+ * iNIndices
+ * Array of normals indices (to use with iNormals array)
+ * describing the normals parsing order
+ * iTIndices
+ * Array of texture coordinates indices (to use with iTexCoords array)
+ * describing the texture coordinates parsing order
+ * iNVertices
+ * The number of vertices in the face
+ */
+ virtual void RenderTriangleFan(const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const real *iTexCoords,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned* iTIndices,
+ const unsigned iNVertices) ;
+
+ /*! Renders a face made of single triangles
+ * iVertices
+ * Array of float containing the face vertices. 3 floats per
+ * x, y, z vertex coordinates
+ * iNormals
+ * Array of float containing the face normals. 3 floats per
+ * x, y, z vertex normal coordinates
+ * iTexCoords
+ * Array of float containing the face uv coords. 2 floats per
+ * u,v vertex texture coordinates
+ * iVIndices
+ * Array of the indices (to use with the iVertices array)
+ * describing the vertices parsing order
+ * iNIndices
+ * Array of normals indices (to use with iNormals array)
+ * describing the normals parsing order
+ * iTIndices
+ * Array of texture coordinates indices (to use with iTexCoords array)
+ * describing the texture coordinates parsing order
+ * iNVertices
+ * The number of vertices in the face
+ */
+ virtual void RenderTriangles(const real *iVertices,
+ const real *iNormals,
+ const Material *const* iMaterials,
+ const real *iTexCoords,
+ const unsigned* iVIndices,
+ const unsigned* iNIndices,
+ const unsigned* iMIndices,
+ const unsigned* iTIndices,
+ const unsigned iNVertices) ;
+
+ /*! Apply a transform matrix by multiplying
+ * the current OpenGL ModelView Matrix by
+ * iMatrix
+ */
+ virtual void applyTransform( const Matrix44r &iMatrix) ;
+
+ /*! Sets the current drawing color.
+ * Active only when light is disabled
+ * (simple call to glColor4fv)
+ * rgba
+ * array of 4 floats (r, g, b and alpha)
+ */
+ virtual void RenderColor( const float *rgba);
+
+ /*! glVertex3f or glVertex3d */
+ inline void glVertex3r(float x, float y, float z) {glVertex3f(x,y,z);}
+ inline void glVertex3r(real x, real y, real z) {glVertex3d(x,y,z);}
+
+ /*! glVertex3f or glNormal3d */
+ inline void glNormal3r(float x, float y, float z) {glNormal3f(x,y,z);}
+ inline void glNormal3r(real x, real y, real z) {glNormal3d(x,y,z);}
+
+ /*! glMultMatrixf or glMultMatrixd */
+ inline void glMultMatrixr(float *m) {glMultMatrixf(m);}
+ inline void glMultMatrixr(real *m) {glMultMatrixd(m);}
+
+};
+
+#endif // GLRENDERER_H
diff --git a/source/blender/freestyle/intern/rendering/GLSelectRenderer.cpp b/source/blender/freestyle/intern/rendering/GLSelectRenderer.cpp
new file mode 100755
index 00000000000..b4a2406c644
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLSelectRenderer.cpp
@@ -0,0 +1,159 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "../scene_graph/IndexedFaceSet.h"
+#include "../scene_graph/NodeShape.h"
+#include "GLSelectRenderer.h"
+
+static const float INACTIVE_COLOR_MIN = 0.2;
+static const float INACTIVE_COLOR_MAX = 0.8;
+static const float INACTIVE_COLOR_OFFSET = 0.2;
+
+static const float ACTIVE_COLOR[4] = {0.8,
+ 0.2,
+ 0.2,
+ 1};
+
+static float selection_color[4] = {INACTIVE_COLOR_MIN,
+ INACTIVE_COLOR_MIN,
+ INACTIVE_COLOR_MIN,
+ 1};
+
+
+void GLSelectRenderer::resetColor() {
+ for (unsigned i = 0; i < 3; ++i)
+ selection_color[i] = INACTIVE_COLOR_MIN;
+}
+
+void GLSelectRenderer::visitNodeShape(NodeShape& sn) {
+ if (_gl_select_rendering)
+ return;
+ for (unsigned i = 0; i < 3; ++i) {
+ selection_color[i] += INACTIVE_COLOR_OFFSET;
+ if (selection_color[i] > INACTIVE_COLOR_MAX)
+ selection_color[i] = INACTIVE_COLOR_MIN;
+ }
+ if (sn.shapes()[0]->getId() == _selected_shape) {
+ _current_shape_active = true;
+ return;
+ }
+ _current_shape_active = false;
+}
+
+void GLSelectRenderer::visitMaterial(Material& m) {
+ if (_gl_select_rendering)
+ return;
+
+ const float* amb = m.ambient();
+ const float* spec = m.specular();
+ const float* em = m.emission();
+
+ if (_current_shape_active) {
+ RenderColor(ACTIVE_COLOR);
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, ACTIVE_COLOR);
+ } else {
+ RenderColor(selection_color);
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, selection_color);
+ }
+ glMaterialfv(GL_FRONT, GL_AMBIENT, amb);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_EMISSION, em);
+ glMaterialf(GL_FRONT, GL_SHININESS, m.shininess());
+}
+
+void GLSelectRenderer::visitMaterial(const Material& m) {
+ if (_gl_select_rendering)
+ return;
+
+ const float* amb = m.ambient();
+ const float* spec = m.specular();
+ const float* em = m.emission();
+
+ if (_current_shape_active) {
+ RenderColor(ACTIVE_COLOR);
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, ACTIVE_COLOR);
+ } else {
+ RenderColor(selection_color);
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, selection_color);
+ }
+ glMaterialfv(GL_FRONT, GL_AMBIENT, amb);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
+ glMaterialfv(GL_FRONT, GL_EMISSION, em);
+ glMaterialf(GL_FRONT, GL_SHININESS, m.shininess());
+}
+
+void GLSelectRenderer::visitIndexedFaceSet(IndexedFaceSet& ifs)
+{
+ unsigned int fIndex = 0;
+
+ const real * vertices = ifs.vertices();
+ const real * normals = ifs.normals();
+ const Material *const* materials = ifs.materials();
+ const real * texCoords= ifs.texCoords();
+ const unsigned *vindices = ifs.vindices();
+ const unsigned *nindices = ifs.nindices();
+ const unsigned *mindices = ifs.mindices();
+ const unsigned *tindices = ifs.tindices();
+ const unsigned numfaces = ifs.numFaces();
+ const IndexedFaceSet::TRIANGLES_STYLE * faceStyle = ifs.trianglesStyle();
+ const unsigned *numVertexPerFace = ifs.numVertexPerFaces();
+
+
+ const unsigned* pvi = vindices;
+ const unsigned* pni = nindices;
+ const unsigned* pmi = mindices;
+ const unsigned* pti = tindices;
+
+ for(fIndex=0; fIndex<numfaces; fIndex++)
+ {
+ switch(faceStyle[fIndex])
+ {
+ case IndexedFaceSet::TRIANGLE_STRIP:
+ RenderTriangleStrip(vertices, normals, materials, texCoords, pvi, pni, pmi, pti, numVertexPerFace[fIndex]);
+ break;
+ case IndexedFaceSet::TRIANGLE_FAN:
+ RenderTriangleFan(vertices, normals, materials, texCoords, pvi, pni, pmi, pti, numVertexPerFace[fIndex]);
+ break;
+ case IndexedFaceSet::TRIANGLES:
+ RenderTriangles(vertices, normals, materials, texCoords, pvi, pni, pmi, pti, numVertexPerFace[fIndex]);
+ break;
+ }
+ pvi += numVertexPerFace[fIndex];
+ pni += numVertexPerFace[fIndex];
+ pmi += numVertexPerFace[fIndex];
+ if(pti)
+ pti += numVertexPerFace[fIndex];
+ }
+}
+
+void GLSelectRenderer::visitNodeShapeBefore(NodeShape& sn) {
+ if (!_gl_select_rendering)
+ return;
+
+ glPushName(sn.shapes()[0]->getId().getFirst());
+}
+
+void GLSelectRenderer::visitNodeShapeAfter(NodeShape& sn) {
+ if (!_gl_select_rendering)
+ return;
+
+ glPopName();
+}
diff --git a/source/blender/freestyle/intern/rendering/GLSelectRenderer.h b/source/blender/freestyle/intern/rendering/GLSelectRenderer.h
new file mode 100755
index 00000000000..bf8a334aebb
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLSelectRenderer.h
@@ -0,0 +1,85 @@
+//
+// Filename : GLSelectRenderer.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Class to highlight selected shapes
+// Date of creation : 09/01/2004
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GL_SELECT_RENDERER_H
+# define GL_SELECT_RENDERER_H
+
+# include "GLRenderer.h"
+
+class LIB_RENDERING_EXPORT GLSelectRenderer : public GLRenderer
+{
+ public:
+
+ inline GLSelectRenderer() : GLRenderer() {
+ _selected_shape = -1; // -1 means no selection
+ _current_shape_active = false;
+ _gl_select_rendering = false;
+ }
+ virtual ~GLSelectRenderer() {}
+
+ //
+ // visitClass methods
+ //
+ //////////////////////////////////////////////
+
+ VISIT_DECL(NodeShape)
+
+ VISIT_DECL(IndexedFaceSet)
+ VISIT_DECL(Material)
+
+ virtual void visitMaterial(const Material&);
+ virtual void visitNodeShapeBefore(NodeShape&);
+ virtual void visitNodeShapeAfter(NodeShape&);
+
+ void resetColor();
+
+ void setSelectedId(const int id) {
+ _selected_shape = id;
+ }
+
+ void setSelectRendering(bool b) {
+ _gl_select_rendering = b;
+ }
+
+ int getSelectedId() const {
+ return _selected_shape;
+ }
+
+ bool getSelectRendering() const {
+ return _gl_select_rendering;
+ }
+
+ private:
+
+ int _selected_shape;
+ bool _current_shape_active;
+ bool _gl_select_rendering;
+};
+
+#endif // GL_SELECT_RENDERER_H
diff --git a/source/blender/freestyle/intern/rendering/GLStrokeRenderer.cpp b/source/blender/freestyle/intern/rendering/GLStrokeRenderer.cpp
new file mode 100755
index 00000000000..7525807da47
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLStrokeRenderer.cpp
@@ -0,0 +1,495 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <qimage.h>
+#include <qfileinfo.h>
+#include <qgl.h>
+#include <qfile.h>
+#include "GLStrokeRenderer.h"
+
+#ifdef WIN32
+# include "extgl.h"
+#endif // WIN32
+
+//#define glBlendEquation(x)
+
+GLStrokeRenderer::GLStrokeRenderer()
+:StrokeRenderer()
+{
+ _textureManager = new GLTextureManager;
+}
+
+GLStrokeRenderer::~GLStrokeRenderer()
+{
+ if(0 != _textureManager)
+ {
+ delete _textureManager;
+ _textureManager = 0;
+ }
+}
+
+float initialColor(float x, float avTex=0.5)
+{
+ float y=(1-x)/avTex;
+ return (y>1 ? 1 : y);
+}
+//float complementColor(float x, float avTex=0.5)
+//{
+// float y=(1-x)/avTex-1;
+// return (y<0 ? 0 : y);
+//}
+
+float complementColor(float x, float avTex=0.5)
+{
+ float y=(1-x);///avTex-1;
+ return (y<0 ? 0 : y);
+}
+
+void GLStrokeRenderer::RenderStrokeRep(StrokeRep *iStrokeRep) const
+{
+ glPushAttrib(GL_COLOR_BUFFER_BIT);
+ Stroke::MediumType strokeType = iStrokeRep->getMediumType();
+ // int averageTextureAlpha=0.5; //default value
+ // if (strokeType==OIL_STROKE)
+ // averageTextureAlpha=0.75;
+ // if (strokeType>=NO_BLEND_STROKE)
+ // averageTextureAlpha=1.0;
+ // if (strokeType<0)
+ // {
+ // renderNoTexture(iStrokeRep);
+ // return;
+ // }
+ int i;
+ glDisable(GL_CULL_FACE);
+ glDisable(GL_LIGHTING);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ glShadeModel(GL_SMOOTH);
+ glDisable(GL_DEPTH_TEST);
+
+ glEnable(GL_BLEND);
+
+ if(strokeType==Stroke::DRY_MEDIUM)
+ {
+ glBlendEquation(GL_MAX);
+ }
+ else if(strokeType==Stroke::OPAQUE_MEDIUM)
+ {
+ glBlendEquation(GL_ADD);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ }
+ else
+ {
+ glBlendEquation(GL_ADD);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+ }
+ glEnable(GL_TEXTURE_2D);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+
+ //first texture, basically the only one for lighter strokes
+ glBindTexture(GL_TEXTURE_2D, iStrokeRep->getTextureId());
+ //glBindTexture(GL_TEXTURE_2D, _textureManager.getPaperTextureIndex());
+
+ vector<Strip*>& strips = iStrokeRep->getStrips();
+ for(vector<Strip*>::iterator s=strips.begin(), send=strips.end();
+ s!=send;
+ ++s){
+ Strip::vertex_container& vertices = (*s)->vertices();
+ glBegin(GL_TRIANGLE_STRIP);
+ for(Strip::vertex_container::iterator v=vertices.begin(), vend=vertices.end();
+ v!=vend;
+ ++v){
+ StrokeVertexRep * svRep = (*v);
+ Vec3r color = svRep->color();
+ real alpha = svRep->alpha();
+ glColor4f(complementColor(color[0]),
+ complementColor(color[1]),
+ complementColor(color[2]), alpha);
+ glTexCoord2f(svRep->texCoord()[0],svRep->texCoord()[1] );
+ glVertex2f(svRep->point2d()[0], svRep->point2d()[1]);
+ }
+ glEnd();
+ }
+// if (strokeType>=NO_BLEND_STROKE) return;
+ // //return;
+ //
+ // //second texture, the complement, for stronger strokes
+ // glBindTexture(GL_TEXTURE_2D, _textureManager.getTextureIndex(2*strokeType+1));
+ // glBegin(GL_TRIANGLE_STRIP);
+ // for(i=0; i<_sizeStrip; i++)
+ // {
+ // glColor4f(complementColor(_color[i][0]),
+ // complementColor(_color[i][1]),
+ // complementColor(_color[i][2]), _alpha[i]);
+ // glTexCoord2f(_texCoord[i][0],_texCoord[i][1] );
+ // glVertex2f(_vertex[i][0], _vertex[i][1]);
+ // }
+ // glEnd();
+
+ glPopAttrib();
+}
+
+void GLStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const
+{
+ glPushAttrib(GL_COLOR_BUFFER_BIT);
+ Stroke::MediumType strokeType = iStrokeRep->getMediumType();
+ int i;
+ glDisable(GL_CULL_FACE);
+ glDisable(GL_LIGHTING);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ glShadeModel(GL_SMOOTH);
+ glDisable(GL_DEPTH_TEST);
+
+ glEnable(GL_BLEND);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_TEXTURE_2D);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+
+ //first texture, basically the only one for lighter strokes
+ glBindTexture(GL_TEXTURE_2D, iStrokeRep->getTextureId());
+ //glBindTexture(GL_TEXTURE_2D, _textureManager.getPaperTextureIndex());
+
+ vector<Strip*>& strips = iStrokeRep->getStrips();
+ for(vector<Strip*>::iterator s=strips.begin(), send=strips.end();
+ s!=send;
+ ++s){
+ Strip::vertex_container& vertices = (*s)->vertices();
+ glBegin(GL_TRIANGLE_STRIP);
+ for(Strip::vertex_container::iterator v=vertices.begin(), vend=vertices.end();
+ v!=vend;
+ ++v){
+ StrokeVertexRep * svRep = (*v);
+ Vec3r color = svRep->color();
+ real alpha = svRep->alpha();
+ glColor4f(color[0],
+ color[1],
+ color[2], alpha);
+ glTexCoord2f(svRep->texCoord()[0],svRep->texCoord()[1] );
+ glVertex2f(svRep->point2d()[0], svRep->point2d()[1]);
+ }
+ glEnd();
+ }
+ glPopAttrib();
+}
+
+//No Texture
+//void GLStrokeRenderer::renderNoTexture(StrokeRep *iStrokeRep) const
+//{
+// Stroke::MediumType strokeType = iStrokeRep->getMediumType();
+// int sizeStrip = iStrokeRep->sizeStrip();
+// const Vec3r *color = iStrokeRep->colors();
+// const Vec2r *vertex = iStrokeRep->vertices();
+// const float *alpha = iStrokeRep->alpha();
+//
+// glDisable(GL_LIGHTING);
+// glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+// glShadeModel(GL_SMOOTH);
+// glDisable(GL_DEPTH_TEST);
+//
+// //if (strokeType==NO_TEXTURE_STROKE)
+// if(strokeType < 0)
+// {
+// glDisable(GL_BLEND);
+// glDisable(GL_TEXTURE_2D);
+// glBegin(GL_TRIANGLE_STRIP);
+// for(int i=0; i<sizeStrip; i++)
+// {
+// glColor4f(complementColor(color[i][0]),
+// complementColor(color[i][1]),
+// complementColor(color[i][2]), alpha[i]);
+// glVertex2f(vertex[i][0], vertex[i][1]);
+// }
+// glEnd();
+// }
+// else
+// {
+// //#ifdef WIN32
+// //glBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
+// glBlendEquation(GL_ADD);
+// //#endif
+// glEnable(GL_BLEND);
+// glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+// glDisable(GL_TEXTURE_2D);
+// glBegin(GL_TRIANGLE_STRIP);
+// for(int i=0; i<sizeStrip; i++)
+// {
+// glColor4f(complementColor(color[i][0]),
+// complementColor(color[i][1]),
+// complementColor(color[i][2]), alpha[i]);
+// glVertex2f(vertex[i][0], vertex[i][1]);
+// }
+// glEnd();
+// }
+// // cerr<<"color="<<_color[1][0]<<", "<<_color[1][1]<<", "<<_color[1][2]<<") "<<endl;
+//
+//
+//}
+
+
+/**********************************/
+/* */
+/* */
+/* GLTextureManager */
+/* */
+/* */
+/**********************************/
+
+//#define TEXTURES_DIR ROOT_DIR "/data/textures"
+
+GLTextureManager::GLTextureManager ()
+: TextureManager()
+{
+ //_brushes_path = Config::getInstance()...
+}
+
+GLTextureManager::~GLTextureManager ()
+{
+}
+
+void
+GLTextureManager::loadPapers ()
+{
+ unsigned size = _papertextures.size();
+ _papertexname = new unsigned[size];
+ GLuint *tmp = new GLuint[size];
+ glGenTextures(size, tmp);
+ for(int i=0;i<size;++i){
+ _papertexname[i] = tmp[i];
+ }
+ delete [] tmp;
+
+ // Papers textures
+ cout << "Loading papers textures..." << endl;
+
+ for (unsigned i = 0; i < size; i++)
+ preparePaper(_papertextures[i].c_str(), _papertexname[i]);
+
+ cout << "Done." << endl << endl;
+}
+
+void GLTextureManager::loadStandardBrushes()
+{
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/charcoalAlpha.bmp", Stroke::HUMID_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/washbrushAlpha.bmp", Stroke::HUMID_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/oil.bmp", Stroke::HUMID_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/oilnoblend.bmp", Stroke::HUMID_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/charcoalAlpha.bmp", Stroke::DRY_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/washbrushAlpha.bmp", Stroke::DRY_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/opaqueDryBrushAlpha.bmp", Stroke::OPAQUE_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/opaqueBrushAlpha.bmp", Stroke::OPAQUE_MEDIUM);
+ _defaultTextureId = getBrushTextureIndex("smoothAlpha.bmp", Stroke::OPAQUE_MEDIUM);
+}
+
+
+unsigned
+GLTextureManager::loadBrush(string sname, Stroke::MediumType mediumType)
+{
+ GLuint texId;
+ glGenTextures(1, &texId);
+ bool found = false;
+ vector<string> pathnames;
+ QString path;
+ StringUtils::getPathName(TextureManager::Options::getBrushesPath(),
+ sname,
+ pathnames);
+ for (vector<string>::const_iterator j = pathnames.begin(); j != pathnames.end(); j++) {
+ path = j->c_str();
+ if(QFile::exists(path)){
+ found = true;
+ break;
+ }
+ }
+ if(!found)
+ return 0;
+ // Brush texture
+ cout << "Loading brush texture..." << endl;
+ switch(mediumType){
+ case Stroke::DRY_MEDIUM:
+ prepareTextureLuminance((const char*)path.toAscii(), texId);
+ break;
+ case Stroke::HUMID_MEDIUM:
+ case Stroke::OPAQUE_MEDIUM:
+ default:
+ prepareTextureAlpha((const char*)path.toAscii(), texId);
+ break;
+ }
+ cout << "Done." << endl << endl;
+
+ return texId;
+}
+
+bool
+GLTextureManager::prepareTextureAlpha (string sname, GLuint itexname)
+{
+ const char * name = sname.c_str();
+ QImage qim(name);
+ QFileInfo fi(name);
+ QString filename = fi.fileName();
+ if (qim.isNull())
+ {
+ cerr << " Error: unable to read \"" << name << "\"" << endl;
+ return false;
+ }
+ if (qim.depth()>8)
+ {
+ cerr<<" Error: \""<< name <<"\" has "<<qim.depth()<<" bits/pixel"<<endl;
+ return false;
+ }
+ // qim=QGLWidget::convertToGLFormat( qimOri );
+
+ glBindTexture(GL_TEXTURE_2D, itexname);
+ //glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ GL_LINEAR);
+ //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ // GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR);
+
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, qim.width(), qim.height(), 0,
+ GL_ALPHA, GL_UNSIGNED_BYTE, qim.bits());
+
+ cout << " \"" << filename.toAscii().data() << "\" loaded with "<< qim.depth() << " bits per pixel" << endl;
+
+ return true;
+
+}
+
+bool
+GLTextureManager::prepareTextureLuminance (string sname, GLuint itexname)
+{
+ const char * name = sname.c_str();
+ QImage qim(name);
+ QFileInfo fi(name);
+ QString filename = fi.fileName();
+ if (qim.isNull())
+ {
+ cerr << " Error: unable to read \"" << name << "\"" << endl;
+ return false;
+ }
+ if (qim.depth() > 8)
+ {
+ cerr<<" Error: \""<<name<<"\" has "<<qim.depth()<<" bits/pixel"<<endl;
+ return false;
+ }
+
+ glBindTexture(GL_TEXTURE_2D, itexname);
+ //glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ GL_LINEAR);
+ //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ // GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR);
+
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, qim.width(), qim.height(), 0,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, qim.bits());
+
+ cout << " \"" << filename.toAscii().data() << "\" loaded with "<< qim.depth() << " bits per pixel" << endl;
+
+ return true;
+
+}
+
+bool
+GLTextureManager::prepareTextureLuminanceAndAlpha (string sname, GLuint itexname)
+{
+ const char * name = sname.c_str();
+ QImage qim(name);
+ QFileInfo fi(name);
+ QString filename = fi.fileName();
+ if (qim.isNull())
+ {
+ cerr << " Error: unable to read \"" << name << "\"" << endl;
+ return false;
+ }
+ if (qim.depth() > 8)
+ {
+ cerr<<" Error: \""<<name<<"\" has "<<qim.depth()<<" bits/pixel"<<endl;
+ return false;
+ }
+
+ glBindTexture(GL_TEXTURE_2D, itexname);
+ //glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ GL_LINEAR);
+ //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ // GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR);
+
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, qim.width(), qim.height(), 0,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, qim.bits());
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, qim.width(), qim.height(), 0,
+ GL_ALPHA, GL_UNSIGNED_BYTE, qim.bits());
+
+ cout << " \"" << filename.toAscii().data() << "\" loaded with "<< qim.depth() << " bits per pixel" << endl;
+
+ return true;
+
+}
+
+bool
+GLTextureManager::preparePaper (const char *name, GLuint itexname)
+{
+ QImage qim(name);
+ QFileInfo fi(name);
+ QString filename = fi.fileName();
+ if (qim.isNull())
+ {
+ cerr << " Error: unable to read \"" << name << "\"" << endl;
+ return false;
+ }
+ if (qim.depth()!=32)
+ {
+ cerr<<" Error: \""<<name<<"\" has "<<qim.depth()<<" bits/pixel"<<endl;
+ return false;
+ }
+ QImage qim2=QGLWidget::convertToGLFormat( qim );
+
+ glBindTexture(GL_TEXTURE_2D, itexname);
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+ GL_LINEAR);
+
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, qim.width(), qim.height(), 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, qim2.bits());
+
+ cout << " \"" << filename.toAscii().data() << "\" loaded with "<< qim.depth() << " bits per pixel" << endl;
+
+ return true;
+}
+
diff --git a/source/blender/freestyle/intern/rendering/GLStrokeRenderer.h b/source/blender/freestyle/intern/rendering/GLStrokeRenderer.h
new file mode 100755
index 00000000000..bef95996444
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLStrokeRenderer.h
@@ -0,0 +1,98 @@
+//
+// Filename : GLStrokeRenderer.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define the GL stroke renderer.
+// Date of creation : 05/03/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GLSTROKERENDERER_H
+# define GLSTROKERENDERER_H
+
+# include "../system/FreestyleConfig.h"
+# include "../stroke/StrokeRenderer.h"
+# include "../stroke/StrokeRep.h"
+
+
+# ifdef WIN32
+# include <windows.h>
+# endif
+# ifdef __MACH__
+# include <OpenGL/gl.h>
+# else
+# include <GL/gl.h>
+# endif
+
+/**********************************/
+/* */
+/* */
+/* GLTextureManager */
+/* */
+/* */
+/**********************************/
+
+/*! Class to load textures
+ */
+class LIB_RENDERING_EXPORT GLTextureManager : public TextureManager
+{
+ public:
+ GLTextureManager ();
+ virtual ~GLTextureManager ();
+protected:
+ virtual unsigned loadBrush(string fileName, Stroke::MediumType = Stroke::OPAQUE_MEDIUM);
+
+ protected:
+ virtual void loadPapers();
+ virtual void loadStandardBrushes();
+ bool prepareTextureAlpha (string name, GLuint itexname);
+ bool prepareTextureLuminance (string name, GLuint itexname);
+ bool prepareTextureLuminanceAndAlpha (string name, GLuint itexname);
+ bool preparePaper (const char *name, GLuint itexname);
+};
+
+
+
+/**********************************/
+/* */
+/* */
+/* GLStrokeRenderer */
+/* */
+/* */
+/**********************************/
+
+class LIB_RENDERING_EXPORT GLStrokeRenderer : public StrokeRenderer
+{
+public:
+ GLStrokeRenderer();
+ virtual ~GLStrokeRenderer();
+
+ /*! Renders a stroke rep */
+ virtual void RenderStrokeRep(StrokeRep *iStrokeRep) const;
+ virtual void RenderStrokeRepBasic(StrokeRep *iStrokeRep) const;
+
+protected:
+ //void renderNoTexture(StrokeRep *iStrokeRep) const;
+};
+
+#endif // GLSTROKERENDERER_H
diff --git a/source/blender/freestyle/intern/rendering/GLUtils.cpp b/source/blender/freestyle/intern/rendering/GLUtils.cpp
new file mode 100755
index 00000000000..5e9ba2a5bf4
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLUtils.cpp
@@ -0,0 +1,68 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "GLUtils.h"
+
+# ifdef WIN32
+# include <windows.h>
+# endif
+# ifdef __MACH__
+# include <OpenGL/gl.h>
+# else
+# include <GL/gl.h>
+# endif
+#include <string.h>
+
+int isExtensionSupported(const char *extension)
+{
+ const GLubyte *extensions = NULL;
+ const GLubyte *start;
+ GLubyte *where, *terminator;
+
+ /* Extension names should not have spaces. */
+ where = (GLubyte *) strchr(extension, ' ');
+ if (where || *extension == '\0')
+ return 0;
+ extensions = glGetString(GL_EXTENSIONS);
+ /* It takes a bit of care to be fool-proof about parsing the
+ OpenGL extensions string. Don't be fooled by sub-strings,
+ etc. */
+ start = extensions;
+ for (;;) {
+ where = (GLubyte *) strstr((const char *) start, extension);
+ if (!where)
+ break;
+ terminator = where + strlen(extension);
+ if (where == start || *(where - 1) == ' ')
+ if (*terminator == ' ' || *terminator == '\0')
+ return 1;
+ start = terminator;
+ }
+ return 0;
+}
+
+void *glutils_extgl_GetProcAddress(const char *name)
+{
+#ifdef _WIN32
+ void *t = wglGetProcAddress(name);
+ return t;
+#endif
+}
+
diff --git a/source/blender/freestyle/intern/rendering/GLUtils.h b/source/blender/freestyle/intern/rendering/GLUtils.h
new file mode 100755
index 00000000000..453b3f31259
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLUtils.h
@@ -0,0 +1,29 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef GLUTILS_H
+#define GLUTILS_H
+
+#include "../system/FreestyleConfig.h"
+
+int LIB_RENDERING_EXPORT isExtensionSupported(const char *extension);
+void LIB_RENDERING_EXPORT *glutils_extgl_GetProcAddress(const char *name);
+
+#endif
diff --git a/source/blender/freestyle/intern/rendering/GLXOffscreenViewer.cpp b/source/blender/freestyle/intern/rendering/GLXOffscreenViewer.cpp
new file mode 100755
index 00000000000..7135cedd7ad
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLXOffscreenViewer.cpp
@@ -0,0 +1,86 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef WIN32
+# include "GLRenderer.h"
+# include "GLXOffscreenViewer.h"
+
+
+GLXOffscreenViewer::GLXOffscreenViewer(int w, int h){
+ _offscreenArea = new OffScreenArea(OffScreenArea::PIXMAP_OFFSCREEN_TYPE);
+ _offscreenArea->AllocateOffScreenArea(w,h);
+ _RootNode.SetLightingEnabled(false);
+ _RootNode.SetLineWidth(1.0);
+ _pGLRenderer = new GLRenderer;
+}
+
+GLXOffscreenViewer::~GLXOffscreenViewer(){
+ if(_offscreenArea)
+ delete _offscreenArea;
+ if(_pGLRenderer)
+ delete _pGLRenderer;
+ _RootNode.destroy();
+}
+
+void GLXOffscreenViewer::AddNode(Node* iNode){
+ _RootNode.AddChild(iNode);
+}
+
+void GLXOffscreenViewer::DetachNode(Node* iNode){
+ _RootNode.DetachChild(iNode);
+}
+
+void GLXOffscreenViewer::init(){
+ glClearColor(_clearColor[0],_clearColor[1],_clearColor[2],1);
+}
+
+void GLXOffscreenViewer::readPixels(int x,
+ int y,
+ int width,
+ int height,
+ float *pixels){
+ _offscreenArea->MakeCurrent();
+ glReadBuffer(GL_FRONT);
+ GLenum glformat = GL_RED;
+ glReadPixels(x,y,width, height, glformat, GL_FLOAT, (GLfloat*)pixels);
+}
+
+
+
+void GLXOffscreenViewer::draw()
+{
+ _offscreenArea->MakeCurrent();
+ glPushAttrib(GL_ALL_ATTRIB_BITS);
+ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
+ //Modelview Matrix
+ //================
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_ONE, GL_ONE);
+ glDisable(GL_DEPTH_TEST);
+ _RootNode.accept(*_pGLRenderer);
+ glFlush();
+ glPopAttrib();
+}
+
+#endif
diff --git a/source/blender/freestyle/intern/rendering/GLXOffscreenViewer.h b/source/blender/freestyle/intern/rendering/GLXOffscreenViewer.h
new file mode 100755
index 00000000000..c09a23f500b
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/GLXOffscreenViewer.h
@@ -0,0 +1,545 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#ifndef GLXOFFSCREENVIEWER_H
+# define GLXOFFSCREENVIEWER_H
+
+# ifdef 0
+//#ifndef WIN32
+//
+// @(#)OffScreen.h 1.4 10/11/00
+//
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <iostream>
+#include <malloc.h>
+#include <math.h>
+#include <limits.h>
+#include <sys/types.h>
+#include <sys/times.h>
+
+#include <X11/Xlib.h>
+#include <GL/gl.h>
+#include <GL/glx.h>
+#include <GL/glu.h>
+
+namespace OFFSCREEN { // I put this here to avoid conflicts between Qt and
+ // X11 in the definition of INT32
+
+ /*! \namespace OFFSCREEN
+ * \bugs attention a la restauration de context quand il n'avait rien avant l'OffScreenArea !!
+ */
+
+static bool OutOfMemory = false ;
+static XErrorHandler oldHandler = NULL ;
+
+static int myXErrorHandler (Display *_d, XErrorEvent *_xee)
+{
+ OutOfMemory = True;
+ if(oldHandler)
+ {
+ return (*oldHandler)(_d,_xee);
+ }
+ else
+ {
+ return false;
+ }
+
+ return 0;
+}
+
+class OffScreenArea
+{
+ public:
+ static const int UNKNOWN_OFFSCREEN_TYPE = 0 ;
+ static const int PIXMAP_OFFSCREEN_TYPE = 1 ;
+ static const int PBUFFER_OFFSCREEN_TYPE = 2 ;
+ static const int KEEP_PIXMAP = 1 ;
+
+ OffScreenArea (int type = UNKNOWN_OFFSCREEN_TYPE,GLXContext shareCtx = NULL)
+ {
+ DefaultType = type ;
+ i_Screen = -1;
+ i_Height = 0;
+ i_Width = 0;
+
+ i_OffScreenAreaType = UNKNOWN_OFFSCREEN_TYPE ;
+ i_GLContext = NULL;
+ i_Drawable = GLXDrawable(0);
+ i_XPix = Pixmap(0);
+ i_pXVisual = NULL;
+ i_pDisplay = NULL;
+
+ SetDisplayAndScreen((Display *)NULL,(int)-1) ;
+ }
+
+ GLXContext GetGLXContext() { return i_GLContext ; }
+ ~OffScreenArea ()
+ {
+ DestroyOffScreenArea();
+ }
+
+ /*
+ * 0 : cannot allocate
+ * 1 : allocation done
+ * FIRST : try to allocate PixelBuffer (Single, double buffer)
+ * SECOND : try to allocate GLXPixmap if PixelBuffer is not available
+ */
+ /*
+ * Here, we try to allocate an OffScreen Area
+ * first, with PBuffer (if this GLX_ext. is
+ * available and we can create one)
+ * second, with a pixmap
+ */
+ int AllocateOffScreenArea(int width,int height)
+ {
+ save_GLContext = glXGetCurrentContext();
+ save_pDisplay = glXGetCurrentDisplay();
+ save_Drawable = glXGetCurrentDrawable();
+
+ int AlreadyThere = 0;
+#ifdef A_VIRER
+ static int AlreadyThere = 0;
+
+ if ( ( width != i_Width ) || ( height != i_Height ) )
+ {
+ AlreadyThere = 0;
+ DestroyOffScreenArea();
+ }
+#endif
+ if(!AlreadyThere)
+ {
+ AlreadyThere = 1;
+
+ /** Before to use a Pixmap, we try with pbuffer **/
+ if(TryPBuffer(false,width,height))
+ {
+#ifdef DEBUG
+ fprintf(stderr, "Using single-buffer PBuffer for off-screen rendering.\n") ;
+#endif
+ return true ;
+ }
+
+ fprintf(stderr, "Cannot use a single-buffer PBuffer, trying double buffer.\n") ;
+
+ if(TryPBuffer(true,width,height))
+ {
+#ifdef DEBUG
+ fprintf(stderr, "Using double-buffer PBuffer for off-screen rendering.\n") ;
+#endif
+ return true ;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "Warning : cannot create a PBuffer, trying Pixmap\n");
+#endif
+ if(TryPixmap(width,height))
+ {
+#ifdef DEBUG
+ fprintf(stderr, "Notice : using Pixmap for offScreen rendering\n");
+#endif
+ return true ;
+ }
+#ifdef DEBUG
+ fprintf (stderr, "Warning : cannot create a Pixmap\n");
+#endif
+
+ return false;
+ }
+ return true ;
+ }
+
+ void MakeCurrent()
+ {
+ glXMakeCurrent(i_pDisplay,i_Drawable,i_GLContext);
+ }
+
+ protected:
+ inline Display * XServer ( void ) { return i_pDisplay; }
+ inline GLXContext GraphicContext ( void ) { return i_GLContext; }
+ inline GLXDrawable Drawable ( void ) { return i_Drawable; }
+ inline XVisualInfo * XVisual ( void ) { return i_pXVisual; }
+
+ int DefaultType ;
+ int i_OffScreenAreaType;
+ int i_Height;
+ int i_Width;
+
+ GLXContext save_GLContext;
+ Display * save_pDisplay;
+ GLXDrawable save_Drawable;
+
+ Display * i_pDisplay;
+ int i_Screen;
+ GLXContext i_GLContext;
+ GLXContext i_shareContext;
+ GLXDrawable i_Drawable;
+ Pixmap i_XPix;
+ XVisualInfo * i_pXVisual;
+
+ /*
+ * Define Display and screen
+ * IF display == NULL THEN try to open default Display
+ * IF screenNumber is < 0 THEN take default Screen
+ */
+ void SetDisplayAndScreen ( Display *pDisplay , int Screen )
+ {
+ if ( pDisplay == NULL )
+ i_pDisplay = XOpenDisplay ( NULL );
+ else
+ i_pDisplay = pDisplay;
+
+ if ( Screen < 0 )
+ i_Screen = DefaultScreen ( i_pDisplay );
+ else
+ i_Screen = Screen;
+ }
+
+ //
+ // Creates a PBuffer
+ //
+ // <Return Values>
+ // 0 : failure
+ // 1 : succeed
+ //
+
+ bool CreatePBuffer (unsigned int width, unsigned int height , int * pAttribList)
+ {
+#ifdef DEBUG
+ int error = 0 ;
+ while((error = glGetError()) > 0)
+ std::cerr << "GLError " << (void *)error << " encountered." << std::endl ;
+#endif
+ GLXFBConfig *pfbConfigs;
+ int nbConfigs;
+ static int pbAttribs[] = { GLX_LARGEST_PBUFFER, true,
+ GLX_PRESERVED_CONTENTS, true,
+ GLX_PBUFFER_WIDTH,0,
+ GLX_PBUFFER_HEIGHT,0,
+ None };
+
+ pbAttribs[5] = width ;
+ pbAttribs[7] = height ;
+
+ // Looks for a config that matches pAttribList
+ pfbConfigs = glXChooseFBConfig(i_pDisplay,i_Screen,pAttribList,&nbConfigs) ;
+#ifdef DEBUG
+ std::cout << nbConfigs << " found for pbuffer." << std::endl ;
+#endif
+
+ if(pfbConfigs == NULL)
+ return false ;
+
+ i_pXVisual = glXGetVisualFromFBConfig(i_pDisplay,pfbConfigs[0]);
+ i_OffScreenAreaType = PBUFFER_OFFSCREEN_TYPE;
+
+ // Sets current error handler
+ OutOfMemory = False;
+ oldHandler = XSetErrorHandler( myXErrorHandler );
+
+ i_Drawable = glXCreatePbuffer(i_pDisplay,pfbConfigs[0],pbAttribs);
+
+ if(i_Drawable == 0)
+ {
+ i_pXVisual = NULL;
+ return false ;
+ }
+ unsigned int w=0,h=0;
+ glXQueryDrawable(i_pDisplay,i_Drawable,GLX_WIDTH,&w) ;
+ glXQueryDrawable(i_pDisplay,i_Drawable,GLX_HEIGHT,&h) ;
+
+ if((w != width)||(h != height))
+ {
+#ifdef DEBUG
+ std::cerr << "Could not allocate Pbuffer. Only size " << w << "x" << h << " found." << std::endl ;
+#endif
+ return false ;
+ }
+#ifdef DEBUG
+ else
+ std::cerr << "Could allocate Pbuffer. Size " << w << "x" << h << " found." << std::endl ;
+#endif
+#ifdef DEBUG
+ while((error = glGetError()) > 0)
+ std::cerr << "GLError " << (void *)error << " encountered." << std::endl ;
+#endif
+ // now create GLXContext
+
+ if((i_GLContext = glXCreateContext(i_pDisplay,i_pXVisual,NULL,true)) == NULL)
+ {
+ DestroyOffScreenArea() ;
+ return false ;
+ }
+
+ /* Restore original X error handler */
+ (void) XSetErrorHandler( oldHandler );
+
+ if(!OutOfMemory)
+ {
+ i_Height = height;
+ i_Width = width;
+
+ return true ;
+ }
+ else
+ return false ;
+ }
+
+ //
+ // Creates a Pixmap
+ //
+ // <Return Values>
+ // false : failure
+ // true : succeed
+ //
+
+ bool CreatePixmap (int width, int height , int * pAttribList)
+ {
+ int depth;
+ int totdepth=0;
+ XErrorHandler oldHandler;
+ XVisualInfo * pvisP;
+
+ pvisP = glXChooseVisual ( i_pDisplay, i_Screen , pAttribList);
+
+ if ( pvisP == NULL)
+ {
+ fprintf( stderr , "Warning : no 24-bit true color visual available\n" );
+ return false ;
+ }
+
+ OutOfMemory = False;
+ oldHandler = XSetErrorHandler(myXErrorHandler);
+ if(i_XPix == Pixmap(NULL))
+ {
+ depth = 0;
+ for (unsigned int i=0,j=0; (pAttribList[i] != None) && (j<3) ; i++ )
+ {
+ switch ( pAttribList[i] )
+ {
+ case GLX_RED_SIZE: glXGetConfig(i_pDisplay,pvisP,GLX_RED_SIZE,&depth) ;
+ totdepth += depth ;
+ i++ ;
+ j++ ;
+ break;
+
+ case GLX_GREEN_SIZE: glXGetConfig(i_pDisplay,pvisP,GLX_GREEN_SIZE,&depth) ;
+ totdepth += depth ;
+ i++ ;
+ j++ ;
+ break;
+
+ case GLX_BLUE_SIZE: glXGetConfig(i_pDisplay,pvisP,GLX_BLUE_SIZE,&depth) ;
+ totdepth += depth ;
+ i++ ;
+ j++ ;
+ break;
+ default:
+ break;
+ }
+ }
+
+ fprintf(stderr,"%d bits color buffer found\n",depth) ;
+ i_XPix = XCreatePixmap(i_pDisplay,RootWindow (i_pDisplay,0),width,height,totdepth);
+ XSync(i_pDisplay,False);
+ if(OutOfMemory)
+ {
+ i_XPix = Pixmap(0);
+ XSetErrorHandler(oldHandler);
+ oldHandler = NULL ;
+ fprintf(stderr,"Warning : could not allocate Pixmap\n");
+ return false ;
+ }
+ }
+
+ // Perhaps should we verify th type of Area (Pixmap) ?
+ if ( i_Drawable == GLXDrawable(NULL) )
+ {
+ // i_Drawable = i_XPix;
+ i_Drawable = glXCreateGLXPixmap ( i_pDisplay , pvisP , i_XPix );
+ XSync ( i_pDisplay , False );
+ if(OutOfMemory)
+ {
+ i_Drawable = GLXDrawable(0);
+ DestroyOffScreenArea();
+ fprintf ( stderr , "Warning : could not allocate GLX Pixmap\n");
+ return false ;
+ }
+ else
+ {
+ if(i_GLContext != NULL)
+ {
+ glXDestroyContext ( i_pDisplay , i_GLContext );
+ i_GLContext = NULL;
+ }
+ if((i_GLContext = glXCreateContext(i_pDisplay,pvisP,NULL,GL_FALSE)) == NULL)
+ {
+ DestroyOffScreenArea();
+ fprintf(stderr, "Warning : could not create rendering context");
+ }
+ }
+ }
+ XSetErrorHandler(oldHandler);
+
+ i_pXVisual = (i_Drawable != GLXDrawable(NULL) ? pvisP : NULL);
+
+ i_Height = height;
+ i_Width = width;
+
+ if(i_Drawable != GLXDrawable(NULL))
+ {
+ i_OffScreenAreaType = PIXMAP_OFFSCREEN_TYPE;
+ return true ;
+ }
+
+ return false ;
+ }
+
+ bool TryPixmap(int width,int height)
+ {
+ int attrList[30];
+ int n = 0;
+
+ attrList[n++] = GLX_RED_SIZE;
+ attrList[n++] = 8;
+ attrList[n++] = GLX_GREEN_SIZE;
+ attrList[n++] = 8;
+ attrList[n++] = GLX_BLUE_SIZE;
+ attrList[n++] = 8;
+ attrList[n++] = GLX_RGBA;
+ attrList[n++] = GLX_DEPTH_SIZE;
+ attrList[n++] = 16;
+ attrList[n++] = GLX_STENCIL_SIZE;
+ attrList[n++] = 1;
+ attrList[n++] = None;
+
+ return CreatePixmap(width,height,attrList) ;
+ }
+
+ bool TryPBuffer(bool double_buffer,int width,int height)
+ {
+ int attrList[30];
+ int n = 0;
+
+ attrList[n++] = GLX_RENDER_TYPE;
+ attrList[n++] = GLX_RGBA_BIT;
+ attrList[n++] = GLX_DRAWABLE_TYPE;
+ attrList[n++] = GLX_PBUFFER_BIT;
+ attrList[n++] = GLX_RED_SIZE;
+ attrList[n++] = 8;
+ attrList[n++] = GLX_GREEN_SIZE;
+ attrList[n++] = 8;
+ attrList[n++] = GLX_BLUE_SIZE;
+ attrList[n++] = 8;
+ attrList[n++] = GLX_DEPTH_SIZE;
+ attrList[n++] = 8;
+ attrList[n++] = GLX_DOUBLEBUFFER;
+ attrList[n++] = double_buffer;
+ attrList[n++] = None;
+
+ return CreatePBuffer(width,height,attrList) ;
+ }
+
+ void DestroyOffScreenArea()
+ {
+ glXMakeCurrent(save_pDisplay,save_Drawable,save_GLContext);
+
+ switch ( i_OffScreenAreaType )
+ {
+ case PIXMAP_OFFSCREEN_TYPE : if(i_Drawable != 0)
+ glXDestroyGLXPixmap(i_pDisplay,i_Drawable);
+
+ if (i_XPix != 0)
+ {
+ XFreePixmap (i_pDisplay,i_XPix);
+ i_XPix = 0;
+ }
+ break;
+ case PBUFFER_OFFSCREEN_TYPE : if(i_Drawable != 0)
+ glXDestroyPbuffer(i_pDisplay,i_Drawable);
+ break;
+ default: break;
+ }
+
+ if (i_GLContext != NULL)
+ {
+ glXDestroyContext(i_pDisplay,i_GLContext);
+ i_GLContext = NULL;
+ }
+
+ i_Drawable = 0;
+ i_OffScreenAreaType = UNKNOWN_OFFSCREEN_TYPE;
+ }
+} ;
+
+}
+
+
+#include "Geom.h"
+#include "NodeDrawingStyle.h"
+using namespace Geometry;
+//using namespace OFFSCREEN;
+class GLXOffscreenViewer{
+public:
+ GLXOffscreenViewer(int w, int h);
+ virtual ~GLXOffscreenViewer();
+
+ /*! Adds a node directly under the root node */
+ void AddNode(Node* iNode);
+ /*! Detach the node iNode which must
+ * be directly under the root node.
+ */
+ void DetachNode(Node *iNode);
+
+ /*! reads the frame buffer pixels as luminance .
+ * \param x
+ * The lower-left corner x-coordinate of the
+ * rectangle we want to grab.
+ * \param y
+ * The lower-left corner y-coordinate of the
+ * rectangle we want to grab.
+ * \param width
+ * The width of the rectangle we want to grab.
+ * \param height
+ * The height of the rectangle we want to grab.
+ * \params pixels
+ * The array of float (of size width*height) in which
+ * the read values are stored.
+ */
+ void readPixels(int x,int y,int width,int height,float *pixels) ;
+
+ inline void SetClearColor(const Vec3f& c) {_clearColor = c;}
+ inline Vec3f getClearColor() const {return _clearColor;}
+
+ void init();
+ void draw();
+
+protected:
+ OffScreenArea *_offscreenArea;
+ NodeDrawingStyle _RootNode;
+ Vec3f _clearColor;
+ GLRenderer *_pGLRenderer;
+
+};
+
+#endif // WIN32
+
+#endif
diff --git a/source/blender/freestyle/intern/rendering/extgl.cpp b/source/blender/freestyle/intern/rendering/extgl.cpp
new file mode 100755
index 00000000000..d7207f21299
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/extgl.cpp
@@ -0,0 +1,2249 @@
+/* ----------------------------------------------------------------------------
+Copyright (c) 2001-2002, Lev Povalahev
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * The name of the author may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+------------------------------------------------------------------------------*/
+/*
+ Lev Povalahev
+
+ levp@gmx.net
+
+ http://www.uni-karlsruhe.de/~uli2/
+
+*/
+
+#include "extgl.h"
+#include <stdio.h>
+#include <string.h>
+
+#ifndef _WIN32
+#include <GL/glx.h>
+#endif /* _WIN32 */
+
+/* turn off the warning for the borland compiler*/
+#ifdef __BORLANDC__
+#pragma warn -8064
+#pragma warn -8065
+#endif /* __BORLANDC__ */
+
+/* function variables */
+
+/*-------------------------------------*/
+/* WGL stuff */
+/*-------------------------------------*/
+
+#ifdef _WIN32
+
+/* WGL_EXT_etxension_string */
+
+#ifdef WGL_EXT_extensions_string
+wglGetExtensionsStringEXTPROC wglGetExtensionsStringEXT = NULL;
+#endif /* WGL_EXT_extension_string */
+
+/* WGL_ARB_buffer_region */
+
+#ifdef WGL_ARB_buffer_region
+wglCreateBufferRegionARBPROC wglCreateBufferRegionARB = NULL;
+wglDeleteBufferRegionARBPROC wglDeleteBufferRegionARB = NULL;
+wglSaveBufferRegionARBPROC wglSaveBufferRegionARB = NULL;
+wglRestoreBufferRegionARBPROC wglRestoreBufferRegionARB = NULL;
+#endif /* WGL_ARB_buffer_region */
+
+/* WGL_ARB_extension_string */
+
+
+#ifdef WGL_ARB_extensions_string
+wglGetExtensionsStringARBPROC wglGetExtensionsStringARB = NULL;
+#endif /* WGL_ARB_extension_string */
+
+/* WGL_ARB_pbuffer */
+
+#ifdef WGL_ARB_pbuffer
+wglCreatePbufferARBPROC wglCreatePbufferARB = NULL;
+wglGetPbufferDCARBPROC wglGetPbufferDCARB = NULL;
+wglReleasePbufferDCARBPROC wglReleasePbufferDCARB = NULL;
+wglDestroyPbufferARBPROC wglDestroyPbufferARB = NULL;
+wglQueryPbufferARBPROC wglQueryPbufferARB = NULL;
+#endif /* WGL_ARB_pbuffer */
+
+/* WGL_ARB_pixel_format */
+
+#ifdef WGL_ARB_pixel_format
+wglGetPixelFormatAttribivARBPROC wglGetPixelFormatAttribivARB = NULL;
+wglGetPixelFormatAttribfvARBPROC wglGetPixelFormatAttribfvARB = NULL;
+wglChoosePixelFormatARBPROC wglChoosePixelFormatARB = NULL;
+#endif /* WGL_ARB_pixel_format */
+
+/* WGL_ARB_render_texture */
+
+#ifdef WGL_ARB_render_texture
+wglBindTexImageARBPROC wglBindTexImageARB = NULL;
+wglReleaseTexImageARBPROC wglReleaseTexImageARB = NULL;
+wglSetPbufferAttribARBPROC wglSetPbufferAttribARB = NULL;
+#endif /* WGL_ARB_render_texture */
+
+/* WGL_EXT_swap_control */
+
+#ifdef WGL_EXT_swap_control
+wglSwapIntervalEXTPROC wglSwapIntervalEXT = NULL;
+wglGetSwapIntervalEXTPROC wglGetSwapIntervalEXT = NULL;
+#endif /* WGL_EXT_swap_control */
+
+/* WGL_ARB_make_current_read */
+
+#ifdef WGL_ARB_make_current_read
+wglMakeContextCurrentARBPROC wglMakeContextCurrentARB = NULL;
+wglGetCurrentReadDCARBPROC wglGetCurrentReadDCARB = NULL;
+#endif /* WGL_ARB_make_current_read*/
+
+/* VAR */
+
+#endif /* WIN32 */
+
+/*-------------------------------------*/
+/*---WGL STUFF END---------------------*/
+/*-------------------------------------*/
+
+#ifdef _WIN32
+
+#ifdef GL_VERSION_1_2
+glDrawRangeElementsPROC glDrawRangeElements = NULL;
+glTexImage3DPROC glTexImage3D = NULL;
+glTexSubImage3DPROC glTexSubImage3D = NULL;
+glCopyTexSubImage3DPROC glCopyTexSubImage3D = NULL;
+#endif /* GL_VERSION_1_2 */
+
+#ifdef GL_ARB_imaging
+glBlendColorPROC glBlendColor = NULL;
+LIB_RENDERING_EXPORT
+glBlendEquationPROC glBlendEquation = NULL;
+glColorTablePROC glColorTable = NULL;
+glColorTableParameterfvPROC glColorTableParameterfv = NULL;
+glColorTableParameterivPROC glColorTableParameteriv = NULL;
+glCopyColorTablePROC glCopyColorTable = NULL;
+glGetColorTablePROC glGetColorTable = NULL;
+glGetColorTableParameterfvPROC glGetColorTableParameterfv = NULL;
+glGetColorTableParameterivPROC glGetColorTableParameteriv = NULL;
+glColorSubTablePROC glColorSubTable = NULL;
+glCopyColorSubTablePROC glCopyColorSubTable = NULL;
+glConvolutionFilter1DPROC glConvolutionFilter1D = NULL;
+glConvolutionFilter2DPROC glConvolutionFilter2D = NULL;
+glConvolutionParameterfPROC glConvolutionParameterf = NULL;
+glConvolutionParameterfvPROC glConvolutionParameterfv = NULL;
+glConvolutionParameteriPROC glConvolutionParameteri = NULL;
+glConvolutionParameterivPROC glConvolutionParameteriv = NULL;
+glCopyConvolutionFilter1DPROC glCopyConvolutionFilter1D = NULL;
+glCopyConvolutionFilter2DPROC glCopyConvolutionFilter2D = NULL;
+glGetConvolutionFilterPROC glGetConvolutionFilter = NULL;
+glGetConvolutionParameterfvPROC glGetConvolutionParameterfv = NULL;
+glGetConvolutionParameterivPROC glGetConvolutionParameteriv = NULL;
+glGetSeparableFilterPROC glGetSeparableFilter = NULL;
+glSeparableFilter2DPROC glSeparableFilter2D = NULL;
+glGetHistogramPROC glGetHistogram = NULL;
+glGetHistogramParameterfvPROC glGetHistogramParameterfv = NULL;
+glGetHistogramParameterivPROC glGetHistogramParameteriv = NULL;
+glGetMinmaxPROC glGetMinmax = NULL;
+glGetMinmaxParameterfvPROC glGetMinmaxParameterfv = NULL;
+glGetMinmaxParameterivPROC glGetMinmaxParameteriv = NULL;
+glHistogramPROC glHistogram = NULL;
+glMinmaxPROC glMinmax = NULL;
+glResetHistogramPROC glResetHistogram = NULL;
+glResetMinmaxPROC glResetMinmax = NULL;
+#endif /* GL_ARB_imaging */
+
+/* 1.3 */
+
+#ifdef GL_VERSION_1_3
+glActiveTexturePROC glActiveTexture = NULL;
+glClientActiveTexturePROC glClientActiveTexture = NULL;
+glMultiTexCoord1dPROC glMultiTexCoord1d = NULL;
+glMultiTexCoord1dvPROC glMultiTexCoord1dv = NULL;
+glMultiTexCoord1fPROC glMultiTexCoord1f = NULL;
+glMultiTexCoord1fvPROC glMultiTexCoord1fv = NULL;
+glMultiTexCoord1iPROC glMultiTexCoord1i = NULL;
+glMultiTexCoord1ivPROC glMultiTexCoord1iv = NULL;
+glMultiTexCoord1sPROC glMultiTexCoord1s = NULL;
+glMultiTexCoord1svPROC glMultiTexCoord1sv = NULL;
+glMultiTexCoord2dPROC glMultiTexCoord2d = NULL;
+glMultiTexCoord2dvPROC glMultiTexCoord2dv = NULL;
+glMultiTexCoord2fPROC glMultiTexCoord2f = NULL;
+glMultiTexCoord2fvPROC glMultiTexCoord2fv = NULL;
+glMultiTexCoord2iPROC glMultiTexCoord2i = NULL;
+glMultiTexCoord2ivPROC glMultiTexCoord2iv = NULL;
+glMultiTexCoord2sPROC glMultiTexCoord2s = NULL;
+glMultiTexCoord2svPROC glMultiTexCoord2sv = NULL;
+glMultiTexCoord3dPROC glMultiTexCoord3d = NULL;
+glMultiTexCoord3dvPROC glMultiTexCoord3dv = NULL;
+glMultiTexCoord3fPROC glMultiTexCoord3f = NULL;
+glMultiTexCoord3fvPROC glMultiTexCoord3fv = NULL;
+glMultiTexCoord3iPROC glMultiTexCoord3i = NULL;
+glMultiTexCoord3ivPROC glMultiTexCoord3iv = NULL;
+glMultiTexCoord3sPROC glMultiTexCoord3s = NULL;
+glMultiTexCoord3svPROC glMultiTexCoord3sv = NULL;
+glMultiTexCoord4dPROC glMultiTexCoord4d = NULL;
+glMultiTexCoord4dvPROC glMultiTexCoord4dv = NULL;
+glMultiTexCoord4fPROC glMultiTexCoord4f = NULL;
+glMultiTexCoord4fvPROC glMultiTexCoord4fv = NULL;
+glMultiTexCoord4iPROC glMultiTexCoord4i = NULL;
+glMultiTexCoord4ivPROC glMultiTexCoord4iv = NULL;
+glMultiTexCoord4sPROC glMultiTexCoord4s = NULL;
+glMultiTexCoord4svPROC glMultiTexCoord4sv = NULL;
+glLoadTransposeMatrixfPROC glLoadTransposeMatrixf = NULL;
+glLoadTransposeMatrixdPROC glLoadTransposeMatrixd = NULL;
+glMultTransposeMatrixfPROC glMultTransposeMatrixf = NULL;
+glMultTransposeMatrixdPROC glMultTransposeMatrixd = NULL;
+glCompressedTexImage3DPROC glCompressedTexImage3D = NULL;
+glCompressedTexImage2DPROC glCompressedTexImage2D = NULL;
+glCompressedTexImage1DPROC glCompressedTexImage1D = NULL;
+glCompressedTexSubImage3DPROC glCompressedTexSubImage3D = NULL;
+glCompressedTexSubImage2DPROC glCompressedTexSubImage2D = NULL;
+glCompressedTexSubImage1DPROC glCompressedTexSubImage1D = NULL;
+glGetCompressedTexImagePROC glGetCompressedTexImage = NULL;
+glSampleCoveragePROC glSampleCoverage = NULL;
+#endif /* GL_VERSION_1_3 */
+
+/* ARB_multitexture */
+
+#ifdef GL_ARB_multitexture
+glActiveTextureARBPROC glActiveTextureARB = NULL;
+glClientActiveTextureARBPROC glClientActiveTextureARB = NULL;
+glMultiTexCoord1dARBPROC glMultiTexCoord1dARB = NULL;
+glMultiTexCoord1dvARBPROC glMultiTexCoord1dvARB = NULL;
+glMultiTexCoord1fARBPROC glMultiTexCoord1fARB = NULL;
+glMultiTexCoord1fvARBPROC glMultiTexCoord1fvARB = NULL;
+glMultiTexCoord1iARBPROC glMultiTexCoord1iARB = NULL;
+glMultiTexCoord1ivARBPROC glMultiTexCoord1ivARB = NULL;
+glMultiTexCoord1sARBPROC glMultiTexCoord1sARB = NULL;
+glMultiTexCoord1svARBPROC glMultiTexCoord1svARB = NULL;
+glMultiTexCoord2dARBPROC glMultiTexCoord2dARB = NULL;
+glMultiTexCoord2dvARBPROC glMultiTexCoord2dvARB = NULL;
+glMultiTexCoord2fARBPROC glMultiTexCoord2fARB = NULL;
+glMultiTexCoord2fvARBPROC glMultiTexCoord2fvARB = NULL;
+glMultiTexCoord2iARBPROC glMultiTexCoord2iARB = NULL;
+glMultiTexCoord2ivARBPROC glMultiTexCoord2ivARB = NULL;
+glMultiTexCoord2sARBPROC glMultiTexCoord2sARB = NULL;
+glMultiTexCoord2svARBPROC glMultiTexCoord2svARB = NULL;
+glMultiTexCoord3dARBPROC glMultiTexCoord3dARB = NULL;
+glMultiTexCoord3dvARBPROC glMultiTexCoord3dvARB = NULL;
+glMultiTexCoord3fARBPROC glMultiTexCoord3fARB = NULL;
+glMultiTexCoord3fvARBPROC glMultiTexCoord3fvARB = NULL;
+glMultiTexCoord3iARBPROC glMultiTexCoord3iARB = NULL;
+glMultiTexCoord3ivARBPROC glMultiTexCoord3ivARB = NULL;
+glMultiTexCoord3sARBPROC glMultiTexCoord3sARB = NULL;
+glMultiTexCoord3svARBPROC glMultiTexCoord3svARB = NULL;
+glMultiTexCoord4dARBPROC glMultiTexCoord4dARB = NULL;
+glMultiTexCoord4dvARBPROC glMultiTexCoord4dvARB = NULL;
+glMultiTexCoord4fARBPROC glMultiTexCoord4fARB = NULL;
+glMultiTexCoord4fvARBPROC glMultiTexCoord4fvARB = NULL;
+glMultiTexCoord4iARBPROC glMultiTexCoord4iARB = NULL;
+glMultiTexCoord4ivARBPROC glMultiTexCoord4ivARB = NULL;
+glMultiTexCoord4sARBPROC glMultiTexCoord4sARB = NULL;
+glMultiTexCoord4svARBPROC glMultiTexCoord4svARB = NULL;
+#endif /* GL_ARB_multitexture */
+
+#endif /* WIN32 */
+
+/* ARB_transpose_matrix */
+
+#ifdef GL_ARB_transpose_matrix
+glLoadTransposeMatrixfARBPROC glLoadTransposeMatrixfARB = NULL;
+glLoadTransposeMatrixdARBPROC glLoadTransposeMatrixdARB = NULL;
+glMultTransposeMatrixfARBPROC glMultTransposeMatrixfARB = NULL;
+glMultTransposeMatrixdARBPROC glMultTransposeMatrixdARB = NULL;
+#endif /* GL_ARB_transpose_matrix */
+
+/* ARB_texture_compression */
+
+#ifdef GL_ARB_texture_compression
+glCompressedTexImage3DARBPROC glCompressedTexImage3DARB = NULL;
+glCompressedTexImage2DARBPROC glCompressedTexImage2DARB = NULL;
+glCompressedTexImage1DARBPROC glCompressedTexImage1DARB = NULL;
+glCompressedTexSubImage3DARBPROC glCompressedTexSubImage3DARB = NULL;
+glCompressedTexSubImage2DARBPROC glCompressedTexSubImage2DARB = NULL;
+glCompressedTexSubImage1DARBPROC glCompressedTexSubImage1DARB = NULL;
+glGetCompressedTexImageARBPROC glGetCompressedTexImageARB = NULL;
+#endif /* GL_ARB_texture_compression */
+
+/* EXT_secondary_color */
+
+#ifdef GL_EXT_secondary_color
+glSecondaryColor3bEXTPROC glSecondaryColor3bEXT = NULL;
+glSecondaryColor3bvEXTPROC glSecondaryColor3bvEXT = NULL;
+glSecondaryColor3dEXTPROC glSecondaryColor3dEXT = NULL;
+glSecondaryColor3dvEXTPROC glSecondaryColor3dvEXT = NULL;
+glSecondaryColor3fEXTPROC glSecondaryColor3fEXT = NULL;
+glSecondaryColor3fvEXTPROC glSecondaryColor3fvEXT = NULL;
+glSecondaryColor3iEXTPROC glSecondaryColor3iEXT = NULL;
+glSecondaryColor3ivEXTPROC glSecondaryColor3ivEXT = NULL;
+glSecondaryColor3sEXTPROC glSecondaryColor3sEXT = NULL;
+glSecondaryColor3svEXTPROC glSecondaryColor3svEXT = NULL;
+glSecondaryColor3ubEXTPROC glSecondaryColor3ubEXT = NULL;
+glSecondaryColor3ubvEXTPROC glSecondaryColor3ubvEXT = NULL;
+glSecondaryColor3uiEXTPROC glSecondaryColor3uiEXT = NULL;
+glSecondaryColor3uivEXTPROC glSecondaryColor3uivEXT = NULL;
+glSecondaryColor3usEXTPROC glSecondaryColor3usEXT = NULL;
+glSecondaryColor3usvEXTPROC glSecondaryColor3usvEXT = NULL;
+glSecondaryColorPointerEXTPROC glSecondaryColorPointerEXT = NULL;
+#endif /* GL_EXT_secondary_color */
+
+/* EXT_compiled_vertex_array */
+
+#ifdef GL_EXT_compiled_vertex_array
+glLockArraysEXTPROC glLockArraysEXT = NULL;
+glUnlockArraysEXTPROC glUnlockArraysEXT = NULL;
+#endif /* GL_EXT_compiled_vertex_array */
+
+/* EXT_fog_coord */
+
+#ifdef GL_EXT_fog_coord
+glFogCoordfEXTPROC glFogCoordfEXT = NULL;
+glFogCoordfvEXTPROC glFogCoordfvEXT = NULL;
+glFogCoorddEXTPROC glFogCoorddEXT = NULL;
+glFogCoorddvEXTPROC glFogCoorddvEXT = NULL;
+glFogCoordPointerEXTPROC glFogCoordPointerEXT = NULL;
+#endif /* GL_EXT_for_color */
+
+/* NV_vertex_array_range */
+
+#ifdef GL_NV_vertex_array_range
+glFlushVertexArrayRangeNVPROC glFlushVertexArrayRangeNV = NULL;
+glVertexArrayRangeNVPROC glVertexArrayRangeNV = NULL;
+
+#ifdef _WIN32
+wglAllocateMemoryNVPROC wglAllocateMemoryNV = NULL;
+wglFreeMemoryNVPROC wglFreeMemoryNV = NULL;
+#else
+glXAllocateMemoryNVPROC glXAllocateMemoryNV = NULL;
+glXFreeMemoryNVPROC glXFreeMemoryNV = NULL;
+#endif /* WIN32 */
+
+#endif /* GL_NV_vertex_array_range */
+
+/* EXT_point_parameters */
+
+#ifdef GL_EXT_point_parameters
+glPointParameterfEXTPROC glPointParameterfEXT = NULL;
+glPointParameterfvEXTPROC glPointParameterfvEXT = NULL;
+#endif /* GL_EXT_point_parameters */
+
+/* NV_register_combiners */
+
+#ifdef GL_NV_register_combiners
+glCombinerParameterfvNVPROC glCombinerParameterfvNV = NULL;
+glCombinerParameterfNVPROC glCombinerParameterfNV = NULL;
+glCombinerParameterivNVPROC glCombinerParameterivNV = NULL;
+glCombinerParameteriNVPROC glCombinerParameteriNV = NULL;
+glCombinerInputNVPROC glCombinerInputNV = NULL;
+glCombinerOutputNVPROC glCombinerOutputNV = NULL;
+glFinalCombinerInputNVPROC glFinalCombinerInputNV = NULL;
+glGetCombinerInputParameterfvNVPROC glGetCombinerInputParameterfvNV = NULL;
+glGetCombinerInputParameterivNVPROC glGetCombinerInputParameterivNV = NULL;
+glGetCombinerOutputParameterfvNVPROC glGetCombinerOutputParameterfvNV = NULL;
+glGetCombinerOutputParameterivNVPROC glGetCombinerOutputParameterivNV = NULL;
+glGetFinalCombinerInputParameterfvNVPROC glGetFinalCombinerInputParameterfvNV = NULL;
+glGetFinalCombinerInputParameterivNVPROC glGetFinalCombinerInputParameterivNV = NULL;
+#endif /* GL_NV_register_combiners */
+
+/* ARB_multisample */
+
+#ifdef GL_ARB_multisample
+glSampleCoverageARBPROC glSampleCoverageARB = NULL;
+#endif /* GL_ARB_multisample */
+
+/* EXT_vertex_weighting */
+
+#ifdef GL_EXT_vertex_weighting
+glVertexWeightfEXTPROC glVertexWeightfEXT = NULL;
+glVertexWeightfvEXTPROC glVertexWeightfvEXT = NULL;
+glVertexWeightPointerEXTPROC glVertexWeightPointerEXT = NULL;
+#endif /* GL_EXT_vertex_weighting */
+
+/* NV_vertex_program */
+
+#ifdef GL_NV_vertex_program
+glBindProgramNVPROC glBindProgramNV = NULL;
+glDeleteProgramsNVPROC glDeleteProgramsNV = NULL;
+glExecuteProgramNVPROC glExecuteProgramNV = NULL;
+glGenProgramsNVPROC glGenProgramsNV = NULL;
+glAreProgramsResidentNVPROC glAreProgramsResidentNV = NULL;
+glRequestResidentProgramsNVPROC glRequestResidentProgramsNV = NULL;
+glGetProgramParameterfvNVPROC glGetProgramParameterfvNV = NULL;
+glGetProgramParameterdvNVPROC glGetProgramParameterdvNV = NULL;
+glGetProgramivNVPROC glGetProgramivNV = NULL;
+glGetProgramStringNVPROC glGetProgramStringNV = NULL;
+glGetTrackMatrixivNVPROC glGetTrackMatrixivNV = NULL;
+glGetVertexAttribdvNVPROC glGetVertexAttribdvNV = NULL;
+glGetVertexAttribfvNVPROC glGetVertexAttribfvNV = NULL;
+glGetVertexAttribivNVPROC glGetVertexAttribivNV = NULL;
+glGetVertexAttribPointervNVPROC glGetVertexAttribPointervNV = NULL;
+glIsProgramNVPROC glIsProgramNV = NULL;
+glLoadProgramNVPROC glLoadProgramNV = NULL;
+glProgramParameter4fNVPROC glProgramParameter4fNV = NULL;
+glProgramParameter4dNVPROC glProgramParameter4dNV = NULL;
+glProgramParameter4dvNVPROC glProgramParameter4dvNV = NULL;
+glProgramParameter4fvNVPROC glProgramParameter4fvNV = NULL;
+glProgramParameters4dvNVPROC glProgramParameters4dvNV = NULL;
+glProgramParameters4fvNVPROC glProgramParameters4fvNV = NULL;
+glTrackMatrixNVPROC glTrackMatrixNV = NULL;
+glVertexAttribPointerNVPROC glVertexAttribPointerNV = NULL;
+glVertexAttrib1sNVPROC glVertexAttrib1sNV = NULL;
+glVertexAttrib1fNVPROC glVertexAttrib1fNV = NULL;
+glVertexAttrib1dNVPROC glVertexAttrib1dNV = NULL;
+glVertexAttrib2sNVPROC glVertexAttrib2sNV = NULL;
+glVertexAttrib2fNVPROC glVertexAttrib2fNV = NULL;
+glVertexAttrib2dNVPROC glVertexAttrib2dNV = NULL;
+glVertexAttrib3sNVPROC glVertexAttrib3sNV = NULL;
+glVertexAttrib3fNVPROC glVertexAttrib3fNV = NULL;
+glVertexAttrib3dNVPROC glVertexAttrib3dNV = NULL;
+glVertexAttrib4sNVPROC glVertexAttrib4sNV = NULL;
+glVertexAttrib4fNVPROC glVertexAttrib4fNV = NULL;
+glVertexAttrib4dNVPROC glVertexAttrib4dNV = NULL;
+glVertexAttrib4ubNVPROC glVertexAttrib4ubNV = NULL;
+glVertexAttrib1svNVPROC glVertexAttrib1svNV = NULL;
+glVertexAttrib1fvNVPROC glVertexAttrib1fvNV = NULL;
+glVertexAttrib1dvNVPROC glVertexAttrib1dvNV = NULL;
+glVertexAttrib2svNVPROC glVertexAttrib2svNV = NULL;
+glVertexAttrib2fvNVPROC glVertexAttrib2fvNV = NULL;
+glVertexAttrib2dvNVPROC glVertexAttrib2dvNV = NULL;
+glVertexAttrib3svNVPROC glVertexAttrib3svNV = NULL;
+glVertexAttrib3fvNVPROC glVertexAttrib3fvNV = NULL;
+glVertexAttrib3dvNVPROC glVertexAttrib3dvNV = NULL;
+glVertexAttrib4svNVPROC glVertexAttrib4svNV = NULL;
+glVertexAttrib4fvNVPROC glVertexAttrib4fvNV = NULL;
+glVertexAttrib4dvNVPROC glVertexAttrib4dvNV = NULL;
+glVertexAttrib4ubvNVPROC glVertexAttrib4ubvNV = NULL;
+glVertexAttribs1svNVPROC glVertexAttribs1svNV = NULL;
+glVertexAttribs1fvNVPROC glVertexAttribs1fvNV = NULL;
+glVertexAttribs1dvNVPROC glVertexAttribs1dvNV = NULL;
+glVertexAttribs2svNVPROC glVertexAttribs2svNV = NULL;
+glVertexAttribs2fvNVPROC glVertexAttribs2fvNV = NULL;
+glVertexAttribs2dvNVPROC glVertexAttribs2dvNV = NULL;
+glVertexAttribs3svNVPROC glVertexAttribs3svNV = NULL;
+glVertexAttribs3fvNVPROC glVertexAttribs3fvNV = NULL;
+glVertexAttribs3dvNVPROC glVertexAttribs3dvNV = NULL;
+glVertexAttribs4svNVPROC glVertexAttribs4svNV = NULL;
+glVertexAttribs4fvNVPROC glVertexAttribs4fvNV = NULL;
+glVertexAttribs4dvNVPROC glVertexAttribs4dvNV = NULL;
+glVertexAttribs4ubvNVPROC glVertexAttribs4ubvNV = NULL;
+#endif /* GL_NV_vertex_program */
+
+/* NV_fence */
+
+#ifdef GL_NV_fence
+glGenFencesNVPROC glGenFencesNV = NULL;
+glDeleteFencesNVPROC glDeleteFencesNV = NULL;
+glSetFenceNVPROC glSetFenceNV = NULL;
+glTestFenceNVPROC glTestFenceNV = NULL;
+glFinishFenceNVPROC glFinishFenceNV = NULL;
+glIsFenceNVPROC glIsFenceNV = NULL;
+glGetFenceivNVPROC glGetFenceivNV = NULL;
+#endif /* GL_NV_fence */
+
+/* NV_register_combiners2 */
+
+#ifdef GL_NV_register_combiners2
+glCombinerStageParameterfvNVPROC glCombinerStageParameterfvNV = NULL;
+glGetCombinerStageParameterfvNVPROC glGetCombinerStageParameterfvNV = NULL;
+#endif /* GL_NV_register_combiners2 */
+
+/* NV_evaluators */
+
+#ifdef GL_NV_evaluators
+glMapControlPointsNVPROC glMapControlPointsNV = NULL;
+glMapParameterivNVPROC glMapParameterivNV = NULL;
+glMapParameterfvNVPROC glMapParameterfvNV = NULL;
+glGetMapControlPointsNVPROC glGetMapControlPointsNV = NULL;
+glGetMapParameterivNVPROC glGetMapParameterivNV = NULL;
+glGetMapParameterfvNVPROC glGetMapParameterfvNV = NULL;
+glGetMapAttribParameterivNVPROC glGetMapAttribParameterivNV = NULL;
+glGetMapAttribParameterfvNVPROC glGetMapAttribParameterfvNV = NULL;
+glEvalMapsNVPROC glEvalMapsNV = NULL;
+#endif /* GL_NV_evaluators */
+
+/* ATI_pn_triangles */
+
+#ifdef GL_ATI_pn_triangles
+glPNTrianglesiATIPROC glPNTrianglesiATI = NULL;
+glPNTrianglesfATIPROC glPNTrianglesfATI = NULL;
+#endif /* GL_ATI_pn_triangles */
+
+/* ARB_point_parameters */
+
+#ifdef GL_ARB_point_parameters
+glPointParameterfARBPROC glPointParameterfARB = NULL;
+glPointParameterfvARBPROC glPointParameterfvARB = NULL;
+#endif /* GL_ABR_point_parameters */
+
+/* ARB_vertex_blend */
+
+#ifdef GL_ARB_vertex_blend
+glWeightbvARBPROC glWeightbvARB = NULL;
+glWeightsvARBPROC glWeightsvARB = NULL;
+glWeightivARBPROC glWeightivARB = NULL;
+glWeightfvARBPROC glWeightfvARB = NULL;
+glWeightdvARBPROC glWeightdvARB = NULL;
+glWeightubvARBPROC glWeightubvARB = NULL;
+glWeightusvARBPROC glWeightusvARB = NULL;
+glWeightuivARBPROC glWeightuivARB = NULL;
+glWeightPointerARBPROC glWeightPointerARB = NULL;
+glVertexBlendARBPROC glVertexBlendARB = NULL;
+#endif /* GL_ARB_vertex_blend */
+
+/* EXT_multi_draw_arrays */
+
+#ifdef GL_EXT_multi_draw_arrays
+glMultiDrawArraysEXTPROC glMultiDrawArraysEXT = NULL;
+glMultiDrawElementsEXTPROC glMultiDrawElementsEXT = NULL;
+#endif /* GL_EXT_multi_draw_arrays */
+
+/* ARB_matrix_palette */
+
+#ifdef GL_ARB_matrix_palette
+glCurrentPaletteMatrixARBPROC glCurrentPaletteMatrixARB = NULL;
+glMatrixIndexubvARBPROC glMatrixIndexubvARB = NULL;
+glMatrixIndexusvARBPROC glMatrixIndexusvARB = NULL;
+glMatrixIndexuivARBPROC glMatrixIndexuivARB = NULL;
+glMatrixIndexPointerARBPROC glMatrixIndexPointerARB = NULL;
+#endif /* GL_ARB_matrix_palette */
+
+/* EXT_vertex_shader */
+
+#ifdef GL_EXT_vertex_shader
+glBeginVertexShaderEXTPROC glBeginVertexShaderEXT = NULL;
+glEndVertexShaderEXTPROC glEndVertexShaderEXT = NULL;
+glBindVertexShaderEXTPROC glBindVertexShaderEXT = NULL;
+glGenVertexShadersEXTPROC glGenVertexShadersEXT = NULL;
+glDeleteVertexShaderEXTPROC glDeleteVertexShaderEXT = NULL;
+glShaderOp1EXTPROC glShaderOp1EXT = NULL;
+glShaderOp2EXTPROC glShaderOp2EXT = NULL;
+glShaderOp3EXTPROC glShaderOp3EXT = NULL;
+glSwizzleEXTPROC glSwizzleEXT = NULL;
+glWriteMaskEXTPROC glWriteMaskEXT = NULL;
+glInsertComponentEXTPROC glInsertComponentEXT = NULL;
+glExtractComponentEXTPROC glExtractComponentEXT = NULL;
+glGenSymbolsEXTPROC glGenSymbolsEXT = NULL;
+glSetInvariantEXTPROC glSetInvariantEXT = NULL;
+glSetLocalConstantEXTPROC glSetLocalConstantEXT = NULL;
+glVariantbvEXTPROC glVariantbvEXT = NULL;
+glVariantsvEXTPROC glVariantsvEXT = NULL;
+glVariantivEXTPROC glVariantivEXT = NULL;
+glVariantfvEXTPROC glVariantfvEXT = NULL;
+glVariantdvEXTPROC glVariantdvEXT = NULL;
+glVariantubvEXTPROC glVariantubvEXT = NULL;
+glVariantusvEXTPROC glVariantusvEXT = NULL;
+glVariantuivEXTPROC glVariantuivEXT = NULL;
+glVariantPointerEXTPROC glVariantPointerEXT = NULL;
+glEnableVariantClientStateEXTPROC glEnableVariantClientStateEXT = NULL;
+glDisableVariantClientStateEXTPROC glDisableVariantClientStateEXT = NULL;
+glBindLightParameterEXTPROC glBindLightParameterEXT = NULL;
+glBindMaterialParameterEXTPROC glBindMaterialParameterEXT = NULL;
+glBindTexGenParameterEXTPROC glBindTexGenParameterEXT = NULL;
+glBindTextureUnitParameterEXTPROC glBindTextureUnitParameterEXT = NULL;
+glBindParameterEXTPROC glBindParameterEXT = NULL;
+glIsVariantEnabledEXTPROC glIsVariantEnabledEXT = NULL;
+glGetVariantBooleanvEXTPROC glGetVariantBooleanvEXT = NULL;
+glGetVariantIntegervEXTPROC glGetVariantIntegervEXT = NULL;
+glGetVariantFloatvEXTPROC glGetVariantFloatvEXT = NULL;
+glGetVariantPointervEXTPROC glGetVariantPointervEXT = NULL;
+glGetInvariantBooleanvEXTPROC glGetInvariantBooleanvEXT = NULL;
+glGetInvariantIntegervEXTPROC glGetInvariantIntegervEXT = NULL;
+glGetInvariantFloatvEXTPROC glGetInvariantFloatvEXT = NULL;
+glGetLocalConstantBooleanvEXTPROC glGetLocalConstantBooleanvEXT = NULL;
+glGetLocalConstantIntegervEXTPROC glGetLocalConstantIntegervEXT = NULL;
+glGetLocalConstantFloatvEXTPROC glGetLocalConstantFloatvEXT = NULL;
+#endif /* GL_EXT_vertex_shader */
+
+/* ATI_envmap_bumpmap */
+
+#ifdef GL_ATI_envmap_bumpmap
+glTexBumpParameterivATIPROC glTexBumpParameterivATI = NULL;
+glTexBumpParameterfvATIPROC glTexBumpParameterfvATI = NULL;
+glGetTexBumpParameterivATIPROC glGetTexBumpParameterivATI = NULL;
+glGetTexBumpParameterfvATIPROC glGetTexBumpParameterfvATI = NULL;
+#endif /* GL_ATI_envmap_bumpmap */
+
+/* ATI_fragment_shader */
+
+#ifdef GL_ATI_fragment_shader
+glGenFragmentShadersATIPROC glGenFragmentShadersATI = NULL;
+glBindFragmentShaderATIPROC glBindFragmentShaderATI = NULL;
+glDeleteFragmentShaderATIPROC glDeleteFragmentShaderATI = NULL;
+glBeginFragmentShaderATIPROC glBeginFragmentShaderATI = NULL;
+glEndFragmentShaderATIPROC glEndFragmentShaderATI = NULL;
+glPassTexCoordATIPROC glPassTexCoordATI = NULL;
+glSampleMapATIPROC glSampleMapATI = NULL;
+glColorFragmentOp1ATIPROC glColorFragmentOp1ATI = NULL;
+glColorFragmentOp2ATIPROC glColorFragmentOp2ATI = NULL;
+glColorFragmentOp3ATIPROC glColorFragmentOp3ATI = NULL;
+glAlphaFragmentOp1ATIPROC glAlphaFragmentOp1ATI = NULL;
+glAlphaFragmentOp2ATIPROC glAlphaFragmentOp2ATI = NULL;
+glAlphaFragmentOp3ATIPROC glAlphaFragmentOp3ATI = NULL;
+glSetFragmentShaderConstantATIPROC glSetFragmentShaderConstantATI = NULL;
+#endif /* GL_ATI_fragment_shader */
+
+/* ATI_element_array */
+
+#ifdef GL_ATI_element_array
+glElementPointerATIPROC glElementPointerATI = NULL;
+glDrawElementArrayATIPROC glDrawElementArrayATI = NULL;
+glDrawRangeElementArrayATIPROC glDrawRangeElementArrayATI = NULL;
+#endif /* GL_ATI_element_array */
+
+/* ATI_vertex_streams */
+
+#ifdef GL_ATI_vertex_streams
+glClientActiveVertexStreamATIPROC glClientActiveVertexStreamATI = NULL;
+glVertexBlendEnviATIPROC glVertexBlendEnviATI = NULL;
+glVertexBlendEnvfATIPROC glVertexBlendEnvfATI = NULL;
+glVertexStream2sATIPROC glVertexStream2sATI = NULL;
+glVertexStream2svATIPROC glVertexStream2svATI = NULL;
+glVertexStream2iATIPROC glVertexStream2iATI = NULL;
+glVertexStream2ivATIPROC glVertexStream2ivATI = NULL;
+glVertexStream2fATIPROC glVertexStream2fATI = NULL;
+glVertexStream2fvATIPROC glVertexStream2fvATI = NULL;
+glVertexStream2dATIPROC glVertexStream2dATI = NULL;
+glVertexStream2dvATIPROC glVertexStream2dvATI = NULL;
+glVertexStream3sATIPROC glVertexStream3sATI = NULL;
+glVertexStream3svATIPROC glVertexStream3svATI = NULL;
+glVertexStream3iATIPROC glVertexStream3iATI = NULL;
+glVertexStream3ivATIPROC glVertexStream3ivATI = NULL;
+glVertexStream3fATIPROC glVertexStream3fATI = NULL;
+glVertexStream3fvATIPROC glVertexStream3fvATI = NULL;
+glVertexStream3dATIPROC glVertexStream3dATI = NULL;
+glVertexStream3dvATIPROC glVertexStream3dvATI = NULL;
+glVertexStream4sATIPROC glVertexStream4sATI = NULL;
+glVertexStream4svATIPROC glVertexStream4svATI = NULL;
+glVertexStream4iATIPROC glVertexStream4iATI = NULL;
+glVertexStream4ivATIPROC glVertexStream4ivATI = NULL;
+glVertexStream4fATIPROC glVertexStream4fATI = NULL;
+glVertexStream4fvATIPROC glVertexStream4fvATI = NULL;
+glVertexStream4dATIPROC glVertexStream4dATI = NULL;
+glVertexStream4dvATIPROC glVertexStream4dvATI = NULL;
+glNormalStream3bATIPROC glNormalStream3bATI = NULL;
+glNormalStream3bvATIPROC glNormalStream3bvATI = NULL;
+glNormalStream3sATIPROC glNormalStream3sATI = NULL;
+glNormalStream3svATIPROC glNormalStream3svATI = NULL;
+glNormalStream3iATIPROC glNormalStream3iATI = NULL;
+glNormalStream3ivATIPROC glNormalStream3ivATI = NULL;
+glNormalStream3fATIPROC glNormalStream3fATI = NULL;
+glNormalStream3fvATIPROC glNormalStream3fvATI = NULL;
+glNormalStream3dATIPROC glNormalStream3dATI = NULL;
+glNormalStream3dvATIPROC glNormalStream3dvATI = NULL;
+#endif /* GL_ATI_vertex_streams */
+
+/* ATI_vertex_array_object */
+
+#ifdef GL_ATI_vertex_array_object
+glNewObjectBufferATIPROC glNewObjectBufferATI = NULL;
+glIsObjectBufferATIPROC glIsObjectBufferATI = NULL;
+glUpdateObjectBufferATIPROC glUpdateObjectBufferATI = NULL;
+glGetObjectBufferfvATIPROC glGetObjectBufferfvATI = NULL;
+glGetObjectBufferivATIPROC glGetObjectBufferivATI = NULL;
+glFreeObjectBufferATIPROC glFreeObjectBufferATI = NULL;
+glArrayObjectATIPROC glArrayObjectATI = NULL;
+glGetArrayObjectfvATIPROC glGetArrayObjectfvATI = NULL;
+glGetArrayObjectivATIPROC glGetArrayObjectivATI = NULL;
+glVariantArrayObjectATIPROC glVariantArrayObjectATI = NULL;
+glGetVariantArrayObjectfvATIPROC glGetVariantArrayObjectfvATI = NULL;
+glGetVariantArrayObjectivATIPROC glGetVariantArrayObjectivATI = NULL;
+#endif /* GL_ATI_vertex_array_object */
+
+/* NV_occlusion_query */
+
+#ifdef GL_NV_occlusion_query
+glGenOcclusionQueriesNVPROC glGenOcclusionQueriesNV = NULL;
+glDeleteOcclusionQueriesNVPROC glDeleteOcclusionQueriesNV = NULL;
+glIsOcclusionQueryNVPROC glIsOcclusionQueryNV = NULL;
+glBeginOcclusionQueryNVPROC glBeginOcclusionQueryNV = NULL;
+glEndOcclusionQueryNVPROC glEndOcclusionQueryNV = NULL;
+glGetOcclusionQueryivNVPROC glGetOcclusionQueryivNV = NULL;
+glGetOcclusionQueryuivNVPROC glGetOcclusionQueryuivNV = NULL;
+#endif /* GL_NV_occlusion_query */
+
+/* NV_point_sprite */
+
+#ifdef GL_NV_point_sprite
+glPointParameteriNVPROC glPointParameteriNV = NULL;
+glPointParameterivNVPROC glPointParameterivNV = NULL;
+#endif /* GL_NV_point_sprite */
+
+/* ARB_window_pos */
+
+#ifdef GL_ARB_window_pos
+glWindowPos2dARBPROC glWindowPos2dARB = NULL;
+glWindowPos2fARBPROC glWindowPos2fARB = NULL;
+glWindowPos2iARBPROC glWindowPos2iARB = NULL;
+glWindowPos2sARBPROC glWindowPos2sARB = NULL;
+glWindowPos2dvARBPROC glWindowPos2dvARB = NULL;
+glWindowPos2fvARBPROC glWindowPos2fvARB = NULL;
+glWindowPos2ivARBPROC glWindowPos2ivARB = NULL;
+glWindowPos2svARBPROC glWindowPos2svARB = NULL;
+glWindowPos3dARBPROC glWindowPos3dARB = NULL;
+glWindowPos3fARBPROC glWindowPos3fARB = NULL;
+glWindowPos3iARBPROC glWindowPos3iARB = NULL;
+glWindowPos3sARBPROC glWindowPos3sARB = NULL;
+glWindowPos3dvARBPROC glWindowPos3dvARB = NULL;
+glWindowPos3fvARBPROC glWindowPos3fvARB = NULL;
+glWindowPos3ivARBPROC glWindowPos3ivARB = NULL;
+glWindowPos3svARBPROC glWindowPos3svARB = NULL;
+#endif /* GL_ARB_window_pos */
+
+/* EXT_draw_range_elements */
+
+#ifdef GL_EXT_draw_range_elements
+glDrawRangeElementsEXTPROC glDrawRangeElementsEXT = NULL;
+#endif /* GL_EXT_draw_range_elements */
+
+/* EXT_stencil_two_side */
+
+#ifdef GL_EXT_stencil_two_side
+glActiveStencilFaceEXTPROC glActiveStencilFaceEXT = NULL;
+#endif /* GL_EXT_stencil_two_side */
+
+/* ARB_vertex_program */
+
+#ifdef GL_ARB_vertex_program
+glVertexAttrib1sARBPROC glVertexAttrib1sARB = NULL;
+glVertexAttrib1fARBPROC glVertexAttrib1fARB = NULL;
+glVertexAttrib1dARBPROC glVertexAttrib1dARB = NULL;
+glVertexAttrib2sARBPROC glVertexAttrib2sARB = NULL;
+glVertexAttrib2fARBPROC glVertexAttrib2fARB = NULL;
+glVertexAttrib2dARBPROC glVertexAttrib2dARB = NULL;
+glVertexAttrib3sARBPROC glVertexAttrib3sARB = NULL;
+glVertexAttrib3fARBPROC glVertexAttrib3fARB = NULL;
+glVertexAttrib3dARBPROC glVertexAttrib3dARB = NULL;
+glVertexAttrib4sARBPROC glVertexAttrib4sARB = NULL;
+glVertexAttrib4fARBPROC glVertexAttrib4fARB = NULL;
+glVertexAttrib4dARBPROC glVertexAttrib4dARB = NULL;
+glVertexAttrib4NubARBPROC glVertexAttrib4NubARB = NULL;
+glVertexAttrib1svARBPROC glVertexAttrib1svARB = NULL;
+glVertexAttrib1fvARBPROC glVertexAttrib1fvARB = NULL;
+glVertexAttrib1dvARBPROC glVertexAttrib1dvARB = NULL;
+glVertexAttrib2svARBPROC glVertexAttrib2svARB = NULL;
+glVertexAttrib2fvARBPROC glVertexAttrib2fvARB = NULL;
+glVertexAttrib2dvARBPROC glVertexAttrib2dvARB = NULL;
+glVertexAttrib3svARBPROC glVertexAttrib3svARB = NULL;
+glVertexAttrib3fvARBPROC glVertexAttrib3fvARB = NULL;
+glVertexAttrib3dvARBPROC glVertexAttrib3dvARB = NULL;
+glVertexAttrib4bvARBPROC glVertexAttrib4bvARB = NULL;
+glVertexAttrib4svARBPROC glVertexAttrib4svARB = NULL;
+glVertexAttrib4ivARBPROC glVertexAttrib4ivARB = NULL;
+glVertexAttrib4ubvARBPROC glVertexAttrib4ubvARB = NULL;
+glVertexAttrib4usvARBPROC glVertexAttrib4usvARB = NULL;
+glVertexAttrib4uivARBPROC glVertexAttrib4uivARB = NULL;
+glVertexAttrib4fvARBPROC glVertexAttrib4fvARB = NULL;
+glVertexAttrib4dvARBPROC glVertexAttrib4dvARB = NULL;
+glVertexAttrib4NbvARBPROC glVertexAttrib4NbvARB = NULL;
+glVertexAttrib4NsvARBPROC glVertexAttrib4NsvARB = NULL;
+glVertexAttrib4NivARBPROC glVertexAttrib4NivARB = NULL;
+glVertexAttrib4NubvARBPROC glVertexAttrib4NubvARB = NULL;
+glVertexAttrib4NusvARBPROC glVertexAttrib4NusvARB = NULL;
+glVertexAttrib4NuivARBPROC glVertexAttrib4NuivARB = NULL;
+glVertexAttribPointerARBPROC glVertexAttribPointerARB = NULL;
+glEnableVertexAttribArrayARBPROC glEnableVertexAttribArrayARB = NULL;
+glDisableVertexAttribArrayARBPROC glDisableVertexAttribArrayARB = NULL;
+glProgramStringARBPROC glProgramStringARB = NULL;
+glBindProgramARBPROC glBindProgramARB = NULL;
+glDeleteProgramsARBPROC glDeleteProgramsARB = NULL;
+glGenProgramsARBPROC glGenProgramsARB = NULL;
+glProgramEnvParameter4dARBPROC glProgramEnvParameter4dARB = NULL;
+glProgramEnvParameter4dvARBPROC glProgramEnvParameter4dvARB = NULL;
+glProgramEnvParameter4fARBPROC glProgramEnvParameter4fARB = NULL;
+glProgramEnvParameter4fvARBPROC glProgramEnvParameter4fvARB = NULL;
+glProgramLocalParameter4dARBPROC glProgramLocalParameter4dARB = NULL;
+glProgramLocalParameter4dvARBPROC glProgramLocalParameter4dvARB = NULL;
+glProgramLocalParameter4fARBPROC glProgramLocalParameter4fARB = NULL;
+glProgramLocalParameter4fvARBPROC glProgramLocalParameter4fvARB = NULL;
+glGetProgramEnvParameterdvARBPROC glGetProgramEnvParameterdvARB = NULL;
+glGetProgramEnvParameterfvARBPROC glGetProgramEnvParameterfvARB = NULL;
+glGetProgramLocalParameterdvARBPROC glGetProgramLocalParameterdvARB = NULL;
+glGetProgramLocalParameterfvARBPROC glGetProgramLocalParameterfvARB = NULL;
+glGetProgramivARBPROC glGetProgramivARB = NULL;
+glGetProgramStringARBPROC glGetProgramStringARB = NULL;
+glGetVertexAttribdvARBPROC glGetVertexAttribdvARB = NULL;
+glGetVertexAttribfvARBPROC glGetVertexAttribfvARB = NULL;
+glGetVertexAttribivARBPROC glGetVertexAttribivARB = NULL;
+glGetVertexAttribPointervARBPROC glGetVertexAttribPointervARB = NULL;
+glIsProgramARBPROC glIsProgramARB = NULL;
+#endif /* GL_ARB_vertex_program */
+
+/* EXT_cull_vertex */
+
+#ifdef GL_EXT_cull_vertex
+glCullParameterfvEXTPROC glCullParameterfvEXT = NULL;
+glCullParameterdvEXTPROC glCullParameterdvEXT = NULL;
+#endif /* GL_EXT_cull_vertex */
+
+#ifdef GL_EXT_blend_function_sepatate
+glBlendFuncSeparateEXTPROC glBlendFuncSeparateEXT = NULL;
+glBlendFuncSeparateINGRPROC glBlendFuncSeparateINGR = NULL;
+#endif /* GL_EXT_blend_func_separate */
+
+#ifdef _WIN32
+#ifdef GL_VERSION_1_4
+/*#ifndef GL_VERSION_1_2
+glBlendColorPROC glBlendColor = NULL;
+glBlendEquationPROC glBlendEquation = NULL;
+#endif *//* GL_VERSION_1_2 */
+glFogCoordfPROC glFogCoordf = NULL;
+glFogCoordfvPROC glFogCoordfv = NULL;
+glFogCoorddPROC glFogCoordd = NULL;
+glFogCoorddvPROC glFogCoorddv = NULL;
+glFogCoordPointerPROC glFogCoordPointer = NULL;
+glMultiDrawArraysPROC glMultiDrawArrays = NULL;
+glMultiDrawElementsPROC glMultiDrawElements = NULL;
+glPointParameterfPROC glPointParameterf = NULL;
+glPointParameterfvPROC glPointParameterfv = NULL;
+glSecondaryColor3bPROC glSecondaryColor3b = NULL;
+glSecondaryColor3bvPROC glSecondaryColor3bv = NULL;
+glSecondaryColor3dPROC glSecondaryColor3d = NULL;
+glSecondaryColor3dvPROC glSecondaryColor3dv = NULL;
+glSecondaryColor3fPROC glSecondaryColor3f = NULL;
+glSecondaryColor3fvPROC glSecondaryColor3fv = NULL;
+glSecondaryColor3iPROC glSecondaryColor3i = NULL;
+glSecondaryColor3ivPROC glSecondaryColor3iv = NULL;
+glSecondaryColor3sPROC glSecondaryColor3s = NULL;
+glSecondaryColor3svPROC glSecondaryColor3sv = NULL;
+glSecondaryColor3ubPROC glSecondaryColor3ub = NULL;
+glSecondaryColor3ubvPROC glSecondaryColor3ubv = NULL;
+glSecondaryColor3uiPROC glSecondaryColor3ui = NULL;
+glSecondaryColor3uivPROC glSecondaryColor3uiv = NULL;
+glSecondaryColor3usPROC glSecondaryColor3us = NULL;
+glSecondaryColor3usvPROC glSecondaryColor3usv = NULL;
+glSecondaryColorPointerPROC glSecondaryColorPointer = NULL;
+glBlendFuncSeparatePROC glBlendFuncSeparate = NULL;
+glWindowPos2dPROC glWindowPos2d = NULL;
+glWindowPos2fPROC glWindowPos2f = NULL;
+glWindowPos2iPROC glWindowPos2i = NULL;
+glWindowPos2sPROC glWindowPos2s = NULL;
+glWindowPos2dvPROC glWindowPos2dv = NULL;
+glWindowPos2fvPROC glWindowPos2fv = NULL;
+glWindowPos2ivPROC glWindowPos2iv = NULL;
+glWindowPos2svPROC glWindowPos2sv = NULL;
+glWindowPos3dPROC glWindowPos3d = NULL;
+glWindowPos3fPROC glWindowPos3f = NULL;
+glWindowPos3iPROC glWindowPos3i = NULL;
+glWindowPos3sPROC glWindowPos3s = NULL;
+glWindowPos3dvPROC glWindowPos3dv = NULL;
+glWindowPos3fvPROC glWindowPos3fv = NULL;
+glWindowPos3ivPROC glWindowPos3iv = NULL;
+glWindowPos3svPROC glWindowPos3sv = NULL;
+#endif /* GL_VERSION_1_4 */
+#endif /* WIN32 */
+
+#ifdef GL_EXT_blend_func_separate
+glBlendFuncSeparateEXTPROC glBlendFuncSeparateEXT = NULL;
+#endif /* GL_EXT_blend_func_separate */
+
+
+#ifdef GL_NV_element_array
+glElementPointerNVPROC glElementPointerNV = NULL;
+glDrawElementArrayNVPROC glDrawElementArrayNV = NULL;
+glDrawRangeElementArrayNVPROC glDrawRangeElementArrayNV = NULL;
+glMultiDrawElementArrayNVPROC glMultiDrawElementArrayNV = NULL;
+glMultiDrawRangeElementArrayNVPROC glMultiDrawRangeElementArrayNV = NULL;
+#endif /* GL_NV_element_array */
+
+#ifdef GL_NV_fragment_program
+glProgramNamedParameter4fNVPROC glProgramNamedParameter4fNV = NULL;
+glProgramNamedParameter4dNVPROC glProgramNamedParameter4dNV = NULL;
+glProgramNamedParameter4fvNVPROC glProgramNamedParameter4fvNV = NULL;
+glProgramNamedParameter4dvNVPROC glProgramNamedParameter4dvNV = NULL;
+glGetProgramNamedParameterfvNVPROC glGetProgramNamedParameterfvNV = NULL;
+glGetProgramNamedParameterdvNVPROC glGetProgramNamedParameterdvNV = NULL;
+#ifndef GL_ARB_vertex_program
+glProgramLocalParameter4dARBPROC glProgramLocalParameter4dARB = NULL;
+glProgramLocalParameter4dvARBPROC glProgramLocalParameter4dvARB = NULL;
+glProgramLocalParameter4fARBPROC glProgramLocalParameter4fARB = NULL;
+glProgramLocalParameter4fvARBPROC glProgramLocalParameter4fvARB = NULL;
+glGetProgramLocalParameterdvARBPROC glGetProgramLocalParameterdvARB = NULL;
+glGetProgramLocalParameterfvARBPROC glGetProgramLocalParameterfvARB = NULL;
+#endif /* GL_ARB_vertex_program */
+#endif /* GL_NV_fragment_program */
+
+
+#ifdef GL_NV_primitive_restart
+glPrimitiveRestartNVPROC glPrimitiveRestartNV = NULL;
+glPrimitiveRestartIndexNVPROC glPrimitiveRestartIndexNV = NULL;
+#endif /* GL_NV_primitive_restart */
+
+// added -ec
+#ifdef GL_ATI_draw_buffers
+PFNGLDRAWBUFFERS glDrawBuffersATI;
+#endif
+
+static int extgl_error = 0;
+
+struct ExtensionTypes extgl_Extensions;
+
+struct ExtensionTypes SupportedExtensions; /* deprecated, please do not use */
+
+
+/* getProcAddress */
+
+void *extgl_GetProcAddress(const char *name)
+{
+#ifdef _WIN32
+ void *t = wglGetProcAddress(name);
+ if (t == NULL)
+ {
+ extgl_error = 1;
+ }
+ return t;
+#else
+ void *t = (void*)glXGetProcAddressARB((GLubyte *)name);
+ if (t == NULL)
+ {
+ extgl_error = 1;
+ }
+ return t;
+#endif
+}
+
+/*-----------------------------------------------------*/
+/* WGL stuff */
+/*-----------------------------------------------------*/
+
+#ifdef _WIN32
+
+/** returns true if the extention is available */
+int QueryWGLExtension(const char *name)
+{
+ const GLubyte *extensions;
+ const GLubyte *start;
+ GLubyte *where, *terminator;
+
+ /* Extension names should not have spaces. */
+ where = (GLubyte *) strchr(name, ' ');
+ if (where || *name == '\0')
+ return 0;
+ if (wglGetExtensionsStringARB == NULL)
+ if (wglGetExtensionsStringEXT == NULL)
+ return 0;
+ else
+ extensions = (GLubyte*)wglGetExtensionsStringEXT();
+ else
+ extensions = (GLubyte*)wglGetExtensionsStringARB(wglGetCurrentDC());
+ /* It takes a bit of care to be fool-proof about parsing the
+ OpenGL extensions string. Don't be fooled by sub-strings,
+ etc. */
+ start = extensions;
+ for (;;)
+ {
+ where = (GLubyte *) strstr((const char *) start, name);
+ if (!where)
+ break;
+ terminator = where + strlen(name);
+ if (where == start || *(where - 1) == ' ')
+ if (*terminator == ' ' || *terminator == '\0')
+ return 1;
+ start = terminator;
+ }
+ return 0;
+}
+
+void extgl_InitWGLARBBufferRegion()
+{
+#ifdef WGL_ARB_buffer_region
+ if (!extgl_Extensions.wgl.ARB_buffer_region)
+ return;
+ wglCreateBufferRegionARB = (wglCreateBufferRegionARBPROC) extgl_GetProcAddress("wglCreateBufferRegionARB");
+ wglDeleteBufferRegionARB = (wglDeleteBufferRegionARBPROC) extgl_GetProcAddress("wglDeleteBufferRegionARB");
+ wglSaveBufferRegionARB = (wglSaveBufferRegionARBPROC) extgl_GetProcAddress("wglSaveBufferRegionARB");
+ wglRestoreBufferRegionARB = (wglRestoreBufferRegionARBPROC) extgl_GetProcAddress("wglRestoreBufferRegionARB");
+#endif
+}
+
+void extgl_InitWGLARBPbuffer()
+{
+#ifdef WGL_ARB_pbuffer
+ if (!extgl_Extensions.wgl.ARB_pbuffer)
+ return;
+ wglCreatePbufferARB = (wglCreatePbufferARBPROC) extgl_GetProcAddress("wglCreatePbufferARB");
+ wglGetPbufferDCARB = (wglGetPbufferDCARBPROC) extgl_GetProcAddress("wglGetPbufferDCARB");
+ wglReleasePbufferDCARB = (wglReleasePbufferDCARBPROC) extgl_GetProcAddress("wglReleasePbufferDCARB");
+ wglDestroyPbufferARB = (wglDestroyPbufferARBPROC) extgl_GetProcAddress("wglDestroyPbufferARB");
+ wglQueryPbufferARB = (wglQueryPbufferARBPROC) extgl_GetProcAddress("wglQueryPbufferARB");
+#endif
+}
+
+void extgl_InitWGLARBPixelFormat()
+{
+#ifdef WGL_ARB_pixel_format
+ if (!extgl_Extensions.wgl.ARB_pixel_format)
+ return;
+ wglGetPixelFormatAttribivARB = (wglGetPixelFormatAttribivARBPROC) extgl_GetProcAddress("wglGetPixelFormatAttribivARB");
+ wglGetPixelFormatAttribfvARB = (wglGetPixelFormatAttribfvARBPROC) extgl_GetProcAddress("wglGetPixelFormatAttribfvARB");
+ wglChoosePixelFormatARB = (wglChoosePixelFormatARBPROC) extgl_GetProcAddress("wglChoosePixelFormatARB");
+#endif
+}
+
+void extgl_InitWGLARBRenderTexture()
+{
+#ifdef WGL_ARB_render_texture
+ if (!extgl_Extensions.wgl.ARB_render_texture)
+ return;
+ wglBindTexImageARB = (wglBindTexImageARBPROC) extgl_GetProcAddress("wglBindTexImageARB");
+ wglReleaseTexImageARB = (wglReleaseTexImageARBPROC) extgl_GetProcAddress("wglReleaseTexImageARB");
+ wglSetPbufferAttribARB = (wglSetPbufferAttribARBPROC) extgl_GetProcAddress("wglSetPbufferAttribARB");
+#endif
+}
+
+void extgl_InitWGLEXTSwapControl()
+{
+#ifdef WGL_EXT_swap_control
+ if (!extgl_Extensions.wgl.EXT_swap_control)
+ return;
+ wglSwapIntervalEXT = (wglSwapIntervalEXTPROC) extgl_GetProcAddress("wglSwapIntervalEXT");
+ wglGetSwapIntervalEXT = (wglGetSwapIntervalEXTPROC) extgl_GetProcAddress("wglGetSwapIntervalEXT");
+#endif
+}
+
+void extgl_InitWGLARBMakeCurrentRead()
+{
+#ifdef WGL_ARB_make_current_read
+ if (!extgl_Extensions.wgl.ARB_make_current_read)
+ return;
+ wglMakeContextCurrentARB = (wglMakeContextCurrentARBPROC) extgl_GetProcAddress("wglMakeContextCurrentARB");
+ wglGetCurrentReadDCARB = (wglGetCurrentReadDCARBPROC) extgl_GetProcAddress("wglGetCurrentReadDCARB");
+#endif
+}
+
+void extgl_InitSupportedWGLExtensions()
+{
+ extgl_Extensions.wgl.ARB_buffer_region = QueryWGLExtension("WGL_ARB_buffer_region");
+ extgl_Extensions.wgl.ARB_make_current_read = QueryWGLExtension("WGL_ARB_make_current_read");
+ extgl_Extensions.wgl.ARB_multisample = QueryWGLExtension("WGL_ARB_multisample");
+ extgl_Extensions.wgl.ARB_pbuffer = QueryWGLExtension("WGL_ARB_pbuffer");
+ extgl_Extensions.wgl.ARB_pixel_format = QueryWGLExtension("WGL_ARB_pixel_format");
+ extgl_Extensions.wgl.ARB_render_texture = QueryWGLExtension("WGL_ARB_render_texture");
+ extgl_Extensions.wgl.EXT_swap_control = QueryWGLExtension("WGL_EXT_swap_control");
+ extgl_Extensions.wgl.NV_render_depth_texture = QueryWGLExtension("WGL_NV_render_depth_texture");
+ extgl_Extensions.wgl.NV_render_texture_rectangle = QueryWGLExtension("WGL_NV_render_texture_rectangle");
+ extgl_Extensions.wgl.ATI_pixel_format_float = QueryWGLExtension("WGL_ATI_pixel_format_float"); // added -ec
+}
+
+int extgl_InitializeWGL()
+{
+ extgl_error = 0;
+ wglGetExtensionsStringARB = (wglGetExtensionsStringARBPROC) extgl_GetProcAddress("wglGetExtensionsStringARB");
+ wglGetExtensionsStringEXT = (wglGetExtensionsStringEXTPROC) extgl_GetProcAddress("wglGetExtensionsStringEXT");
+ extgl_Extensions.wgl.ARB_extensions_string = wglGetExtensionsStringARB != NULL;
+ extgl_Extensions.wgl.EXT_extensions_string = wglGetExtensionsStringEXT != NULL;
+ extgl_error = 0;
+
+ extgl_InitSupportedWGLExtensions();
+
+
+ extgl_InitWGLARBMakeCurrentRead();
+ extgl_InitWGLEXTSwapControl();
+ extgl_InitWGLARBRenderTexture();
+ extgl_InitWGLARBPixelFormat();
+ extgl_InitWGLARBPbuffer();
+ extgl_InitWGLARBBufferRegion();
+
+ return extgl_error;
+}
+
+#endif /* WIN32 */
+
+/*-----------------------------------------------------*/
+/* WGL stuff END*/
+/*-----------------------------------------------------*/
+
+/** returns true if the extention is available */
+int QueryExtension(const char *name)
+{
+ const GLubyte *extensions;
+ const GLubyte *start;
+ GLubyte *where, *terminator;
+
+ /* Extension names should not have spaces. */
+ where = (GLubyte *) strchr(name, ' ');
+ if (where || *name == '\0')
+ return 0;
+ extensions = glGetString(GL_EXTENSIONS);
+ /* It takes a bit of care to be fool-proof about parsing the
+ OpenGL extensions string. Don't be fooled by sub-strings,
+ etc. */
+ start = extensions;
+ for (;;)
+ {
+ where = (GLubyte *) strstr((const char *) start, name);
+ if (!where)
+ break;
+ terminator = where + strlen(name);
+ if (where == start || *(where - 1) == ' ')
+ if (*terminator == ' ' || *terminator == '\0')
+ return 1;
+ start = terminator;
+ }
+ return 0;
+}
+
+// added -ec
+/* ATI_draw_buffers */
+void extgl_InitATIDrawBuffers()
+{
+#ifdef GL_ATI_draw_buffers
+ if (!extgl_Extensions.ATI_draw_buffers)
+ return;
+ glDrawBuffersATI = (PFNGLDRAWBUFFERS) extgl_GetProcAddress("glDrawBuffersATI");
+#endif
+}
+
+void extgl_InitARBFragmentProgram()
+{
+#ifdef GL_ARB_fragment_program
+ if (!extgl_Extensions.ARB_fragment_program)
+ return;
+ glProgramStringARB = (glProgramStringARBPROC) extgl_GetProcAddress("glProgramStringARB");
+ glBindProgramARB = (glBindProgramARBPROC) extgl_GetProcAddress("glBindProgramARB");
+ glDeleteProgramsARB = (glDeleteProgramsARBPROC) extgl_GetProcAddress("glDeleteProgramsARB");
+ glGenProgramsARB = (glGenProgramsARBPROC) extgl_GetProcAddress("glGenProgramsARB");
+ glProgramEnvParameter4dARB = (glProgramEnvParameter4dARBPROC) extgl_GetProcAddress("glProgramEnvParameter4dARB");
+ glProgramEnvParameter4dvARB = (glProgramEnvParameter4dvARBPROC) extgl_GetProcAddress("glProgramEnvParameter4dvARB");
+ glProgramEnvParameter4fARB = (glProgramEnvParameter4fARBPROC) extgl_GetProcAddress("glProgramEnvParameter4fARB");
+ glProgramEnvParameter4fvARB = (glProgramEnvParameter4fvARBPROC) extgl_GetProcAddress("glProgramEnvParameter4fvARB");
+ glProgramLocalParameter4dARB = (glProgramLocalParameter4dARBPROC) extgl_GetProcAddress("glProgramLocalParameter4dARB");
+ glProgramLocalParameter4dvARB = (glProgramLocalParameter4dvARBPROC) extgl_GetProcAddress("glProgramLocalParameter4dvARB");
+ glProgramLocalParameter4fARB = (glProgramLocalParameter4fARBPROC) extgl_GetProcAddress("glProgramLocalParameter4fARB");
+ glProgramLocalParameter4fvARB = (glProgramLocalParameter4fvARBPROC) extgl_GetProcAddress("glProgramLocalParameter4fvARB");
+ glGetProgramEnvParameterdvARB = (glGetProgramEnvParameterdvARBPROC) extgl_GetProcAddress("glGetProgramEnvParameterdvARB");
+ glGetProgramEnvParameterfvARB = (glGetProgramEnvParameterfvARBPROC) extgl_GetProcAddress("glGetProgramEnvParameterfvARB");
+ glGetProgramLocalParameterdvARB = (glGetProgramLocalParameterdvARBPROC) extgl_GetProcAddress("glGetProgramLocalParameterdvARB");
+ glGetProgramLocalParameterfvARB = (glGetProgramLocalParameterfvARBPROC) extgl_GetProcAddress("glGetProgramLocalParameterfvARB");
+ glGetProgramivARB = (glGetProgramivARBPROC) extgl_GetProcAddress("glGetProgramivARB");
+ glGetProgramStringARB = (glGetProgramStringARBPROC) extgl_GetProcAddress("glGetProgramStringARB");
+ glIsProgramARB = (glIsProgramARBPROC) extgl_GetProcAddress("glIsProgramARB");
+#endif
+}
+
+void extgl_InitNVPrimitiveRestart()
+{
+#ifdef GL_NV_primitive_restart
+ if (!extgl_Extensions.NV_primitive_restart)
+ return;
+ glPrimitiveRestartNV = (glPrimitiveRestartNVPROC) extgl_GetProcAddress("glPrimitiveRestartNV");
+ glPrimitiveRestartIndexNV = (glPrimitiveRestartIndexNVPROC) extgl_GetProcAddress("glPrimitiveRestartIndexNV");
+#endif /* GL_NV_primitive_restart */
+}
+
+void extgl_InitNVFragmentProgram()
+{
+#ifdef GL_NV_fragment_program
+ if (!extgl_Extensions.NV_fragment_program)
+ return;
+ glProgramNamedParameter4fNV = (glProgramNamedParameter4fNVPROC) extgl_GetProcAddress("glProgramNamedParameter4fNV");
+ glProgramNamedParameter4dNV = (glProgramNamedParameter4dNVPROC) extgl_GetProcAddress("glProgramNamedParameter4dNV");
+ glProgramNamedParameter4fvNV = (glProgramNamedParameter4fvNVPROC) extgl_GetProcAddress("glProgramNamedParameter4fvNV");
+ glProgramNamedParameter4dvNV = (glProgramNamedParameter4dvNVPROC) extgl_GetProcAddress("glProgramNamedParameter4dvNV");
+ glGetProgramNamedParameterfvNV = (glGetProgramNamedParameterfvNVPROC) extgl_GetProcAddress("glGetProgramNamedParameterfvNV");
+ glGetProgramNamedParameterdvNV = (glGetProgramNamedParameterdvNVPROC) extgl_GetProcAddress("glGetProgramNamedParameterdvNV");
+#ifndef GL_ARB_vertex_program
+ glProgramLocalParameter4dARB = (glProgramLocalParameter4dARBPROC) extgl_GetProcAddress("glProgramLocalParameter4dARB");
+ glProgramLocalParameter4dvARB = (glProgramLocalParameter4dvARBPROC) extgl_GetProcAddress("glProgramLocalParameter4dvARB");
+ glProgramLocalParameter4fARB = (glProgramLocalParameter4fARBPROC) extgl_GetProcAddress("glProgramLocalParameter4fARB");
+ glProgramLocalParameter4fvARB = (glProgramLocalParameter4fvARBPROC) extgl_GetProcAddress("glProgramLocalParameter4fvARB");
+ glGetProgramLocalParameterdvARB = (glGetProgramLocalParameterdvARBPROC) extgl_GetProcAddress("glGetProgramLocalParameterdvARB");
+ glGetProgramLocalParameterfvARB = (glGetProgramLocalParameterfvARBPROC) extgl_GetProcAddress("glGetProgramLocalParameterfvARB");
+#endif /* GL_ARB_vertex_program */
+#endif /* GL_NV_fragment_program */
+}
+
+void extgl_InitNVElementArray()
+{
+#ifdef GL_NV_element_array
+ if (!extgl_Extensions.NV_element_array)
+ return;
+ glElementPointerNV = (glElementPointerNVPROC) extgl_GetProcAddress("glElementPointerNV");
+ glDrawElementArrayNV = (glDrawElementArrayNVPROC) extgl_GetProcAddress("glDrawElementArrayNV");
+ glDrawRangeElementArrayNV = (glDrawRangeElementArrayNVPROC) extgl_GetProcAddress("glDrawRangeElementArrayNV");
+ glMultiDrawElementArrayNV = (glMultiDrawElementArrayNVPROC) extgl_GetProcAddress("glMultiDrawElementArrayNV");
+ glMultiDrawRangeElementArrayNV = (glMultiDrawRangeElementArrayNVPROC) extgl_GetProcAddress("glMultiDrawRangeElementArrayNV");
+#endif
+}
+
+
+void extgl_InitEXTBlendFuncSeparate()
+{
+#ifdef GL_EXT_blend_func_separate
+ if (!extgl_Extensions.EXT_blend_func_separate)
+ return;
+ glBlendFuncSeparateEXT = (glBlendFuncSeparateEXTPROC) extgl_GetProcAddress("glBlendFuncSeparateEXT");
+#endif
+}
+
+void extgl_InitEXTCullVertex()
+{
+#ifdef GL_EXT_cull_vertex
+ if (!extgl_Extensions.EXT_cull_vertex)
+ return;
+ glCullParameterfvEXT = (glCullParameterfvEXTPROC) extgl_GetProcAddress("glCullParameterfvEXT");
+ glCullParameterdvEXT = (glCullParameterdvEXTPROC) extgl_GetProcAddress("glCullParameterdvEXT");
+#endif
+}
+
+void extgl_InitARBVertexProgram()
+{
+#ifdef GL_ARB_vertex_program
+ if (!extgl_Extensions.ARB_vertex_program)
+ return;
+ glVertexAttrib1sARB = (glVertexAttrib1sARBPROC) extgl_GetProcAddress("glVertexAttrib1sARB");
+ glVertexAttrib1fARB = (glVertexAttrib1fARBPROC) extgl_GetProcAddress("glVertexAttrib1fARB");
+ glVertexAttrib1dARB = (glVertexAttrib1dARBPROC) extgl_GetProcAddress("glVertexAttrib1dARB");
+ glVertexAttrib2sARB = (glVertexAttrib2sARBPROC) extgl_GetProcAddress("glVertexAttrib2sARB");
+ glVertexAttrib2fARB = (glVertexAttrib2fARBPROC) extgl_GetProcAddress("glVertexAttrib2fARB");
+ glVertexAttrib2dARB = (glVertexAttrib2dARBPROC) extgl_GetProcAddress("glVertexAttrib2dARB");
+ glVertexAttrib3sARB = (glVertexAttrib3sARBPROC) extgl_GetProcAddress("glVertexAttrib3sARB");
+ glVertexAttrib3fARB = (glVertexAttrib3fARBPROC) extgl_GetProcAddress("glVertexAttrib3fARB");
+ glVertexAttrib3dARB = (glVertexAttrib3dARBPROC) extgl_GetProcAddress("glVertexAttrib3dARB");
+ glVertexAttrib4sARB = (glVertexAttrib4sARBPROC) extgl_GetProcAddress("glVertexAttrib4sARB");
+ glVertexAttrib4fARB = (glVertexAttrib4fARBPROC) extgl_GetProcAddress("glVertexAttrib4fARB");
+ glVertexAttrib4dARB = (glVertexAttrib4dARBPROC) extgl_GetProcAddress("glVertexAttrib4dARB");
+ glVertexAttrib4NubARB = (glVertexAttrib4NubARBPROC) extgl_GetProcAddress("glVertexAttrib4NubARB");
+ glVertexAttrib1svARB = (glVertexAttrib1svARBPROC) extgl_GetProcAddress("glVertexAttrib1svARB");
+ glVertexAttrib1fvARB = (glVertexAttrib1fvARBPROC) extgl_GetProcAddress("glVertexAttrib1fvARB");
+ glVertexAttrib1dvARB = (glVertexAttrib1dvARBPROC) extgl_GetProcAddress("glVertexAttrib1dvARB");
+ glVertexAttrib2svARB = (glVertexAttrib2svARBPROC) extgl_GetProcAddress("glVertexAttrib2svARB");
+ glVertexAttrib2fvARB = (glVertexAttrib2fvARBPROC) extgl_GetProcAddress("glVertexAttrib2fvARB");
+ glVertexAttrib2dvARB = (glVertexAttrib2dvARBPROC) extgl_GetProcAddress("glVertexAttrib2dvARB");
+ glVertexAttrib3svARB = (glVertexAttrib3svARBPROC) extgl_GetProcAddress("glVertexAttrib3svARB");
+ glVertexAttrib3fvARB = (glVertexAttrib3fvARBPROC) extgl_GetProcAddress("glVertexAttrib3fvARB");
+ glVertexAttrib3dvARB = (glVertexAttrib3dvARBPROC) extgl_GetProcAddress("glVertexAttrib3dvARB");
+ glVertexAttrib4bvARB = (glVertexAttrib4bvARBPROC) extgl_GetProcAddress("glVertexAttrib4bvARB");
+ glVertexAttrib4svARB = (glVertexAttrib4svARBPROC) extgl_GetProcAddress("glVertexAttrib4svARB");
+ glVertexAttrib4ivARB = (glVertexAttrib4ivARBPROC) extgl_GetProcAddress("glVertexAttrib4ivARB");
+ glVertexAttrib4ubvARB = (glVertexAttrib4ubvARBPROC) extgl_GetProcAddress("glVertexAttrib4ubvARB");
+ glVertexAttrib4usvARB = (glVertexAttrib4usvARBPROC) extgl_GetProcAddress("glVertexAttrib4usvARB");
+ glVertexAttrib4uivARB = (glVertexAttrib4uivARBPROC) extgl_GetProcAddress("glVertexAttrib4uivARB");
+ glVertexAttrib4fvARB = (glVertexAttrib4fvARBPROC) extgl_GetProcAddress("glVertexAttrib4fvARB");
+ glVertexAttrib4dvARB = (glVertexAttrib4dvARBPROC) extgl_GetProcAddress("glVertexAttrib4dvARB");
+ glVertexAttrib4NbvARB = (glVertexAttrib4NbvARBPROC) extgl_GetProcAddress("glVertexAttrib4NbvARB");
+ glVertexAttrib4NsvARB = (glVertexAttrib4NsvARBPROC) extgl_GetProcAddress("glVertexAttrib4NsvARB");
+ glVertexAttrib4NivARB = (glVertexAttrib4NivARBPROC) extgl_GetProcAddress("glVertexAttrib4NivARB");
+ glVertexAttrib4NubvARB = (glVertexAttrib4NubvARBPROC) extgl_GetProcAddress("glVertexAttrib4NubvARB");
+ glVertexAttrib4NusvARB = (glVertexAttrib4NusvARBPROC) extgl_GetProcAddress("glVertexAttrib4NusvARB");
+ glVertexAttrib4NuivARB = (glVertexAttrib4NuivARBPROC) extgl_GetProcAddress("glVertexAttrib4NuivARB");
+ glVertexAttribPointerARB = (glVertexAttribPointerARBPROC) extgl_GetProcAddress("glVertexAttribPointerARB");
+ glEnableVertexAttribArrayARB = (glEnableVertexAttribArrayARBPROC) extgl_GetProcAddress("glEnableVertexAttribArrayARB");
+ glDisableVertexAttribArrayARB = (glDisableVertexAttribArrayARBPROC) extgl_GetProcAddress("glDisableVertexAttribArrayARB");
+ glProgramStringARB = (glProgramStringARBPROC) extgl_GetProcAddress("glProgramStringARB");
+ glBindProgramARB = (glBindProgramARBPROC) extgl_GetProcAddress("glBindProgramARB");
+ glDeleteProgramsARB = (glDeleteProgramsARBPROC) extgl_GetProcAddress("glDeleteProgramsARB");
+ glGenProgramsARB = (glGenProgramsARBPROC) extgl_GetProcAddress("glGenProgramsARB");
+ glProgramEnvParameter4dARB = (glProgramEnvParameter4dARBPROC) extgl_GetProcAddress("glProgramEnvParameter4dARB");
+ glProgramEnvParameter4dvARB = (glProgramEnvParameter4dvARBPROC) extgl_GetProcAddress("glProgramEnvParameter4dvARB");
+ glProgramEnvParameter4fARB = (glProgramEnvParameter4fARBPROC) extgl_GetProcAddress("glProgramEnvParameter4fARB");
+ glProgramEnvParameter4fvARB = (glProgramEnvParameter4fvARBPROC) extgl_GetProcAddress("glProgramEnvParameter4fvARB");
+ glProgramLocalParameter4dARB = (glProgramLocalParameter4dARBPROC) extgl_GetProcAddress("glProgramLocalParameter4dARB");
+ glProgramLocalParameter4dvARB = (glProgramLocalParameter4dvARBPROC) extgl_GetProcAddress("glProgramLocalParameter4dvARB");
+ glProgramLocalParameter4fARB = (glProgramLocalParameter4fARBPROC) extgl_GetProcAddress("glProgramLocalParameter4fARB");
+ glProgramLocalParameter4fvARB = (glProgramLocalParameter4fvARBPROC) extgl_GetProcAddress("glProgramLocalParameter4fvARB");
+ glGetProgramEnvParameterdvARB = (glGetProgramEnvParameterdvARBPROC) extgl_GetProcAddress("glGetProgramEnvParameterdvARB");
+ glGetProgramEnvParameterfvARB = (glGetProgramEnvParameterfvARBPROC) extgl_GetProcAddress("glGetProgramEnvParameterfvARB");
+ glGetProgramLocalParameterdvARB = (glGetProgramLocalParameterdvARBPROC) extgl_GetProcAddress("glGetProgramLocalParameterdvARB");
+ glGetProgramLocalParameterfvARB = (glGetProgramLocalParameterfvARBPROC) extgl_GetProcAddress("glGetProgramLocalParameterfvARB");
+ glGetProgramivARB = (glGetProgramivARBPROC) extgl_GetProcAddress("glGetProgramivARB");
+ glGetProgramStringARB = (glGetProgramStringARBPROC) extgl_GetProcAddress("glGetProgramStringARB");
+ glGetVertexAttribdvARB = (glGetVertexAttribdvARBPROC) extgl_GetProcAddress("glGetVertexAttribdvARB");
+ glGetVertexAttribfvARB = (glGetVertexAttribfvARBPROC) extgl_GetProcAddress("glGetVertexAttribfvARB");
+ glGetVertexAttribivARB = (glGetVertexAttribivARBPROC) extgl_GetProcAddress("glGetVertexAttribivARB");
+ glGetVertexAttribPointervARB = (glGetVertexAttribPointervARBPROC) extgl_GetProcAddress("glGetVertexAttribPointervARB");
+ glIsProgramARB = (glIsProgramARBPROC) extgl_GetProcAddress("glIsProgramARB");
+#endif
+}
+
+void extgl_InitEXTStencilTwoSide()
+{
+#ifdef GL_EXT_stencil_two_side
+ if (!extgl_Extensions.EXT_stencil_two_side)
+ return;
+ glActiveStencilFaceEXT = (glActiveStencilFaceEXTPROC) extgl_GetProcAddress("glActiveStencilFaceEXT");
+#endif
+}
+
+void extgl_InitARBWindowPos()
+{
+#ifdef GL_ARB_window_pos
+ if (!extgl_Extensions.ARB_window_pos)
+ return;
+ glWindowPos2dARB = (glWindowPos2dARBPROC) extgl_GetProcAddress("glWindowPos2dARB");
+ glWindowPos2fARB = (glWindowPos2fARBPROC) extgl_GetProcAddress("glWindowPos2fARB");
+ glWindowPos2iARB = (glWindowPos2iARBPROC) extgl_GetProcAddress("glWindowPos2iARB");
+ glWindowPos2sARB = (glWindowPos2sARBPROC) extgl_GetProcAddress("glWindowPos2sARB");
+ glWindowPos2dvARB = (glWindowPos2dvARBPROC) extgl_GetProcAddress("glWindowPos2dvARB");
+ glWindowPos2fvARB = (glWindowPos2fvARBPROC) extgl_GetProcAddress("glWindowPos2fvARB");
+ glWindowPos2ivARB = (glWindowPos2ivARBPROC) extgl_GetProcAddress("glWindowPos2ivARB");
+ glWindowPos2svARB = (glWindowPos2svARBPROC) extgl_GetProcAddress("glWindowPos2svARB");
+ glWindowPos3dARB = (glWindowPos3dARBPROC) extgl_GetProcAddress("glWindowPos3dARB");
+ glWindowPos3fARB = (glWindowPos3fARBPROC) extgl_GetProcAddress("glWindowPos3fARB");
+ glWindowPos3iARB = (glWindowPos3iARBPROC) extgl_GetProcAddress("glWindowPos3iARB");
+ glWindowPos3sARB = (glWindowPos3sARBPROC) extgl_GetProcAddress("glWindowPos3sARB");
+ glWindowPos3dvARB = (glWindowPos3dvARBPROC) extgl_GetProcAddress("glWindowPos3dvARB");
+ glWindowPos3fvARB = (glWindowPos3fvARBPROC) extgl_GetProcAddress("glWindowPos3fvARB");
+ glWindowPos3ivARB = (glWindowPos3ivARBPROC) extgl_GetProcAddress("glWindowPos3ivARB");
+ glWindowPos3svARB = (glWindowPos3svARBPROC) extgl_GetProcAddress("glWindowPos3svARB");
+#endif
+}
+
+void extgl_InitARBTextureCompression()
+{
+#ifdef GL_ARB_texture_compression
+ if (!extgl_Extensions.ARB_texture_compression)
+ return;
+ glCompressedTexImage3DARB = (glCompressedTexImage3DARBPROC) extgl_GetProcAddress("glCompressedTexImage3DARB");
+ glCompressedTexImage2DARB = (glCompressedTexImage2DARBPROC) extgl_GetProcAddress("glCompressedTexImage2DARB");
+ glCompressedTexImage1DARB = (glCompressedTexImage1DARBPROC) extgl_GetProcAddress("glCompressedTexImage1DARB");
+ glCompressedTexSubImage3DARB = (glCompressedTexSubImage3DARBPROC) extgl_GetProcAddress("glCompressedTexSubImage3DARB");
+ glCompressedTexSubImage2DARB = (glCompressedTexSubImage2DARBPROC) extgl_GetProcAddress("glCompressedTexSubImage2DARB");
+ glCompressedTexSubImage1DARB = (glCompressedTexSubImage1DARBPROC) extgl_GetProcAddress("glCompressedTexSubImage1DARB");
+ glGetCompressedTexImageARB = (glGetCompressedTexImageARBPROC) extgl_GetProcAddress("glGetCompressedTexImageARB");
+#endif
+}
+
+void extgl_InitNVPointSprite()
+{
+#ifdef GL_NV_point_sprite
+ if (!extgl_Extensions.NV_point_sprite)
+ return;
+ glPointParameteriNV = (glPointParameteriNVPROC) extgl_GetProcAddress("glPointParameteriNV");
+ glPointParameterivNV = (glPointParameterivNVPROC) extgl_GetProcAddress("glPointParameterivNV");
+#endif
+}
+
+void extgl_InitNVOcclusionQuery()
+{
+#ifdef GL_NV_occlusion_query
+ if (!extgl_Extensions.NV_occlusion_query)
+ return;
+ glGenOcclusionQueriesNV = (glGenOcclusionQueriesNVPROC) extgl_GetProcAddress("glGenOcclusionQueriesNV");
+ glDeleteOcclusionQueriesNV = (glDeleteOcclusionQueriesNVPROC) extgl_GetProcAddress("glDeleteOcclusionQueriesNV");
+ glIsOcclusionQueryNV = (glIsOcclusionQueryNVPROC) extgl_GetProcAddress("glIsOcclusionQueryNV");
+ glBeginOcclusionQueryNV = (glBeginOcclusionQueryNVPROC) extgl_GetProcAddress("glBeginOcclusionQueryNV");
+ glEndOcclusionQueryNV = (glEndOcclusionQueryNVPROC) extgl_GetProcAddress("glEndOcclusionQueryNV");
+ glGetOcclusionQueryivNV = (glGetOcclusionQueryivNVPROC) extgl_GetProcAddress("glGetOcclusionQueryivNV");
+ glGetOcclusionQueryuivNV = (glGetOcclusionQueryuivNVPROC) extgl_GetProcAddress("glGetOcclusionQueryuivNV");
+#endif
+}
+
+void extgl_InitATIVertexArrayObject()
+{
+#ifdef GL_ATI_vertex_array_object
+ if (!extgl_Extensions.ATI_vertex_array_object)
+ return;
+ glNewObjectBufferATI = (glNewObjectBufferATIPROC) extgl_GetProcAddress("glNewObjectBufferATI");
+ glIsObjectBufferATI = (glIsObjectBufferATIPROC) extgl_GetProcAddress("glIsObjectBufferATI");
+ glUpdateObjectBufferATI = (glUpdateObjectBufferATIPROC) extgl_GetProcAddress("glUpdateObjectBufferATI");
+ glGetObjectBufferfvATI = (glGetObjectBufferfvATIPROC) extgl_GetProcAddress("glGetObjectBufferfvATI");
+ glGetObjectBufferivATI = (glGetObjectBufferivATIPROC) extgl_GetProcAddress("glGetObjectBufferivATI");
+ glFreeObjectBufferATI = (glFreeObjectBufferATIPROC) extgl_GetProcAddress("glFreeObjectBufferATI");
+ glArrayObjectATI = (glArrayObjectATIPROC) extgl_GetProcAddress("glArrayObjectATI");
+ glGetArrayObjectfvATI = (glGetArrayObjectfvATIPROC) extgl_GetProcAddress("glGetArrayObjectfvATI");
+ glGetArrayObjectivATI = (glGetArrayObjectivATIPROC) extgl_GetProcAddress("glGetArrayObjectivATI");
+ glVariantArrayObjectATI = (glVariantArrayObjectATIPROC) extgl_GetProcAddress("glVariantArrayObjectATI");
+ glGetVariantArrayObjectfvATI = (glGetVariantArrayObjectfvATIPROC) extgl_GetProcAddress("glGetVariantArrayObjectfvATI");
+ glGetVariantArrayObjectivATI = (glGetVariantArrayObjectivATIPROC) extgl_GetProcAddress("glGetVariantArrayObjectivATI");
+#endif
+}
+
+void extgl_InitATIVertexStreams()
+{
+#ifdef GL_ATI_vertex_streams
+ if (!extgl_Extensions.ATI_vertex_streams)
+ return;
+ glClientActiveVertexStreamATI = (glClientActiveVertexStreamATIPROC) extgl_GetProcAddress("glClientActiveVertexStreamATI");
+ glVertexBlendEnviATI = (glVertexBlendEnviATIPROC) extgl_GetProcAddress("glVertexBlendEnviATI");
+ glVertexBlendEnvfATI = (glVertexBlendEnvfATIPROC) extgl_GetProcAddress("glVertexBlendEnvfATI");
+ glVertexStream2sATI = (glVertexStream2sATIPROC) extgl_GetProcAddress("glVertexStream2sATI");
+ glVertexStream2svATI = (glVertexStream2svATIPROC) extgl_GetProcAddress("glVertexStream2svATI");
+ glVertexStream2iATI = (glVertexStream2iATIPROC) extgl_GetProcAddress("glVertexStream2iATI");
+ glVertexStream2ivATI = (glVertexStream2ivATIPROC) extgl_GetProcAddress("glVertexStream2ivATI");
+ glVertexStream2fATI = (glVertexStream2fATIPROC) extgl_GetProcAddress("glVertexStream2fATI");
+ glVertexStream2fvATI = (glVertexStream2fvATIPROC) extgl_GetProcAddress("glVertexStream2fvATI");
+ glVertexStream2dATI = (glVertexStream2dATIPROC) extgl_GetProcAddress("glVertexStream2dATI");
+ glVertexStream2dvATI = (glVertexStream2dvATIPROC) extgl_GetProcAddress("glVertexStream2dvATI");
+ glVertexStream3sATI = (glVertexStream3sATIPROC) extgl_GetProcAddress("glVertexStream3sATI");
+ glVertexStream3svATI = (glVertexStream3svATIPROC) extgl_GetProcAddress("glVertexStream3svATI");
+ glVertexStream3iATI = (glVertexStream3iATIPROC) extgl_GetProcAddress("glVertexStream3iATI");
+ glVertexStream3ivATI = (glVertexStream3ivATIPROC) extgl_GetProcAddress("glVertexStream3ivATI");
+ glVertexStream3fATI = (glVertexStream3fATIPROC) extgl_GetProcAddress("glVertexStream3fATI");
+ glVertexStream3fvATI = (glVertexStream3fvATIPROC) extgl_GetProcAddress("glVertexStream3fvATI");
+ glVertexStream3dATI = (glVertexStream3dATIPROC) extgl_GetProcAddress("glVertexStream3dATI");
+ glVertexStream3dvATI = (glVertexStream3dvATIPROC) extgl_GetProcAddress("glVertexStream3dvATI");
+ glVertexStream4sATI = (glVertexStream4sATIPROC) extgl_GetProcAddress("glVertexStream4sATI");
+ glVertexStream4svATI = (glVertexStream4svATIPROC) extgl_GetProcAddress("glVertexStream4svATI");
+ glVertexStream4iATI = (glVertexStream4iATIPROC) extgl_GetProcAddress("glVertexStream4iATI");
+ glVertexStream4ivATI = (glVertexStream4ivATIPROC) extgl_GetProcAddress("glVertexStream4ivATI");
+ glVertexStream4fATI = (glVertexStream4fATIPROC) extgl_GetProcAddress("glVertexStream4fATI");
+ glVertexStream4fvATI = (glVertexStream4fvATIPROC) extgl_GetProcAddress("glVertexStream4fvATI");
+ glVertexStream4dATI = (glVertexStream4dATIPROC) extgl_GetProcAddress("glVertexStream4dATI");
+ glVertexStream4dvATI = (glVertexStream4dvATIPROC) extgl_GetProcAddress("glVertexStream4dvATI");
+ glNormalStream3bATI = (glNormalStream3bATIPROC) extgl_GetProcAddress("glNormalStream3bATI");
+ glNormalStream3bvATI = (glNormalStream3bvATIPROC) extgl_GetProcAddress("glNormalStream3bvATI");
+ glNormalStream3sATI = (glNormalStream3sATIPROC) extgl_GetProcAddress("glNormalStream3sATI");
+ glNormalStream3svATI = (glNormalStream3svATIPROC) extgl_GetProcAddress("glNormalStream3svATI");
+ glNormalStream3iATI = (glNormalStream3iATIPROC) extgl_GetProcAddress("glNormalStream3iATI");
+ glNormalStream3ivATI = (glNormalStream3ivATIPROC) extgl_GetProcAddress("glNormalStream3ivATI");
+ glNormalStream3fATI = (glNormalStream3fATIPROC) extgl_GetProcAddress("glNormalStream3fATI");
+ glNormalStream3fvATI = (glNormalStream3fvATIPROC) extgl_GetProcAddress("glNormalStream3fvATI");
+ glNormalStream3dATI = (glNormalStream3dATIPROC) extgl_GetProcAddress("glNormalStream3dATI");
+ glNormalStream3dvATI = (glNormalStream3dvATIPROC) extgl_GetProcAddress("glNormalStream3dvATI");
+#endif
+}
+
+void extgl_InitATIElementArray()
+{
+#ifdef GL_ATI_element_array
+ if (!extgl_Extensions.ATI_element_array)
+ return;
+ glElementPointerATI = (glElementPointerATIPROC) extgl_GetProcAddress("glElementPointerATI");
+ glDrawElementArrayATI = (glDrawElementArrayATIPROC) extgl_GetProcAddress("glDrawElementArrayATI");
+ glDrawRangeElementArrayATI = (glDrawRangeElementArrayATIPROC) extgl_GetProcAddress("glDrawRangeElementArrayATI");
+#endif
+}
+
+void extgl_InitATIFragmentShader()
+{
+#ifdef GL_ATI_fragment_shader
+ if (!extgl_Extensions.ATI_fragment_shader)
+ return;
+ glGenFragmentShadersATI = (glGenFragmentShadersATIPROC) extgl_GetProcAddress("glGenFragmentShadersATI");
+ glBindFragmentShaderATI = (glBindFragmentShaderATIPROC) extgl_GetProcAddress("glBindFragmentShaderATI");
+ glDeleteFragmentShaderATI = (glDeleteFragmentShaderATIPROC) extgl_GetProcAddress("glDeleteFragmentShaderATI");
+ glBeginFragmentShaderATI = (glBeginFragmentShaderATIPROC) extgl_GetProcAddress("glBeginFragmentShaderATI");
+ glEndFragmentShaderATI = (glEndFragmentShaderATIPROC) extgl_GetProcAddress("glEndFragmentShaderATI");
+ glPassTexCoordATI = (glPassTexCoordATIPROC) extgl_GetProcAddress("glPassTexCoordATI");
+ glSampleMapATI = (glSampleMapATIPROC) extgl_GetProcAddress("glSampleMapATI");
+ glColorFragmentOp1ATI = (glColorFragmentOp1ATIPROC) extgl_GetProcAddress("glColorFragmentOp1ATI");
+ glColorFragmentOp2ATI = (glColorFragmentOp2ATIPROC) extgl_GetProcAddress("glColorFragmentOp2ATI");
+ glColorFragmentOp3ATI = (glColorFragmentOp3ATIPROC) extgl_GetProcAddress("glColorFragmentOp3ATI");
+ glAlphaFragmentOp1ATI = (glAlphaFragmentOp1ATIPROC) extgl_GetProcAddress("glAlphaFragmentOp1ATI");
+ glAlphaFragmentOp2ATI = (glAlphaFragmentOp2ATIPROC) extgl_GetProcAddress("glAlphaFragmentOp2ATI");
+ glAlphaFragmentOp3ATI = (glAlphaFragmentOp3ATIPROC) extgl_GetProcAddress("glAlphaFragmentOp3ATI");
+ glSetFragmentShaderConstantATI = (glSetFragmentShaderConstantATIPROC) extgl_GetProcAddress("glSetFragmentShaderConstantATI");
+#endif
+}
+
+
+void extgl_InitATIEnvmapBumpmap()
+{
+#ifdef GL_ATI_envmap_bumpmap
+ if (!extgl_Extensions.ATI_envmap_bumpmap)
+ return;
+ glTexBumpParameterivATI = (glTexBumpParameterivATIPROC) extgl_GetProcAddress("glTexBumpParameterivATI");
+ glTexBumpParameterfvATI = (glTexBumpParameterfvATIPROC) extgl_GetProcAddress("glTexBumpParameterfvATI");
+ glGetTexBumpParameterivATI = (glGetTexBumpParameterivATIPROC) extgl_GetProcAddress("glGetTexBumpParameterivATI");
+ glGetTexBumpParameterfvATI = (glGetTexBumpParameterfvATIPROC) extgl_GetProcAddress("glGetTexBumpParameterfvATI");
+#endif
+}
+
+void extgl_InitEXTVertexShader()
+{
+#ifdef GL_EXT_vertex_shader
+ if (!extgl_Extensions.EXT_vertex_shader)
+ return;
+ glBeginVertexShaderEXT = (glBeginVertexShaderEXTPROC) extgl_GetProcAddress("glBeginVertexShaderEXT");
+ glEndVertexShaderEXT = (glEndVertexShaderEXTPROC) extgl_GetProcAddress("glEndVertexShaderEXT");
+ glBindVertexShaderEXT = (glBindVertexShaderEXTPROC) extgl_GetProcAddress("glBindVertexShaderEXT");
+ glGenVertexShadersEXT = (glGenVertexShadersEXTPROC) extgl_GetProcAddress("glGenVertexShadersEXT");
+ glDeleteVertexShaderEXT = (glDeleteVertexShaderEXTPROC) extgl_GetProcAddress("glDeleteVertexShaderEXT");
+ glShaderOp1EXT = (glShaderOp1EXTPROC) extgl_GetProcAddress("glShaderOp1EXT");
+ glShaderOp2EXT = (glShaderOp2EXTPROC) extgl_GetProcAddress("glShaderOp2EXT");
+ glShaderOp3EXT = (glShaderOp3EXTPROC) extgl_GetProcAddress("glShaderOp3EXT");
+ glSwizzleEXT = (glSwizzleEXTPROC) extgl_GetProcAddress("glSwizzleEXT");
+ glWriteMaskEXT = (glWriteMaskEXTPROC) extgl_GetProcAddress("glWriteMaskEXT");
+ glInsertComponentEXT = (glInsertComponentEXTPROC) extgl_GetProcAddress("glInsertComponentEXT");
+ glExtractComponentEXT = (glExtractComponentEXTPROC) extgl_GetProcAddress("glExtractComponentEXT");
+ glGenSymbolsEXT = (glGenSymbolsEXTPROC) extgl_GetProcAddress("glGenSymbolsEXT");
+ glSetInvariantEXT = (glSetInvariantEXTPROC) extgl_GetProcAddress("glSetInvarianceEXT");
+ glSetLocalConstantEXT = (glSetLocalConstantEXTPROC) extgl_GetProcAddress("glSetLocalConstantEXT");
+ glVariantbvEXT = (glVariantbvEXTPROC) extgl_GetProcAddress("glVariantbvEXT");
+ glVariantsvEXT = (glVariantsvEXTPROC) extgl_GetProcAddress("glVariantsvEXT");
+ glVariantivEXT = (glVariantivEXTPROC) extgl_GetProcAddress("glVariantivEXT");
+ glVariantfvEXT = (glVariantfvEXTPROC) extgl_GetProcAddress("glVariantfvEXT");
+ glVariantdvEXT = (glVariantdvEXTPROC) extgl_GetProcAddress("glVariantdvEXT");
+ glVariantubvEXT = (glVariantubvEXTPROC) extgl_GetProcAddress("glVariantubvEXT");
+ glVariantusvEXT = (glVariantusvEXTPROC) extgl_GetProcAddress("glVariantusvEXT");
+ glVariantuivEXT = (glVariantuivEXTPROC) extgl_GetProcAddress("glVariantuivEXT");
+ glVariantPointerEXT = (glVariantPointerEXTPROC) extgl_GetProcAddress("glVariantPointerEXT");
+ glEnableVariantClientStateEXT = (glEnableVariantClientStateEXTPROC) extgl_GetProcAddress("glEnableVariantClientStateEXT");
+ glDisableVariantClientStateEXT = (glDisableVariantClientStateEXTPROC) extgl_GetProcAddress("glDisableVariantClientStateEXT");
+ glBindLightParameterEXT = (glBindLightParameterEXTPROC) extgl_GetProcAddress("glBindLightParameterEXT");
+ glBindMaterialParameterEXT = (glBindMaterialParameterEXTPROC) extgl_GetProcAddress("glBindMaterialParameterEXT");
+ glBindTexGenParameterEXT = (glBindTexGenParameterEXTPROC) extgl_GetProcAddress("glBindTexGenParameterEXT");
+ glBindTextureUnitParameterEXT = (glBindTextureUnitParameterEXTPROC) extgl_GetProcAddress("glBindTextureUnitParameterEXT");
+ glBindParameterEXT = (glBindParameterEXTPROC) extgl_GetProcAddress("glBindParameterEXT");
+ glIsVariantEnabledEXT = (glIsVariantEnabledEXTPROC) extgl_GetProcAddress("glIsVariantEnabledEXT");
+ glGetVariantBooleanvEXT = (glGetVariantBooleanvEXTPROC) extgl_GetProcAddress("glGetVariantBooleanvEXT");
+ glGetVariantIntegervEXT = (glGetVariantIntegervEXTPROC) extgl_GetProcAddress("glGetVariantIntegervEXT");
+ glGetVariantFloatvEXT = (glGetVariantFloatvEXTPROC) extgl_GetProcAddress("glGetVariantFloatvEXT");
+ glGetVariantPointervEXT = (glGetVariantPointervEXTPROC) extgl_GetProcAddress("glGetVariantPointervEXT");
+ glGetInvariantBooleanvEXT = (glGetInvariantBooleanvEXTPROC) extgl_GetProcAddress("glGetInvariantBooleanvEXT");
+ glGetInvariantIntegervEXT = (glGetInvariantIntegervEXTPROC) extgl_GetProcAddress("glGetInvariantIntegervEXT");
+ glGetInvariantFloatvEXT = (glGetInvariantFloatvEXTPROC) extgl_GetProcAddress("glGetInvariantFloatvEXT");
+ glGetLocalConstantBooleanvEXT = (glGetLocalConstantBooleanvEXTPROC) extgl_GetProcAddress("glGetLocalConstantBooleanvEXT");
+ glGetLocalConstantIntegervEXT = (glGetLocalConstantIntegervEXTPROC) extgl_GetProcAddress("glGetLocalConstantIntegervEXT");
+ glGetLocalConstantFloatvEXT = (glGetLocalConstantFloatvEXTPROC) extgl_GetProcAddress("glGetLocalConstantFloatvEXT");
+#endif
+}
+
+void extgl_InitARBMatrixPalette()
+{
+#ifdef GL_ARB_matrix_palette
+ if (!extgl_Extensions.ARB_matrix_palette)
+ return;
+ glCurrentPaletteMatrixARB = (glCurrentPaletteMatrixARBPROC) extgl_GetProcAddress("glCurrentPaletteMatrixARB");
+ glMatrixIndexubvARB = (glMatrixIndexubvARBPROC) extgl_GetProcAddress("glMatrixIndexubvARB");
+ glMatrixIndexusvARB = (glMatrixIndexusvARBPROC) extgl_GetProcAddress("glMatrixIndexusvARB");
+ glMatrixIndexuivARB = (glMatrixIndexuivARBPROC) extgl_GetProcAddress("glMatrixIndexuivARB");
+ glMatrixIndexPointerARB = (glMatrixIndexPointerARBPROC) extgl_GetProcAddress("glMatrixIndexPointerARB");
+#endif
+}
+
+void extgl_InitEXTMultiDrawArrays()
+{
+#ifdef GL_EXT_multi_draw_arrays
+ if (!extgl_Extensions.EXT_multi_draw_arrays)
+ return;
+ glMultiDrawArraysEXT = (glMultiDrawArraysEXTPROC) extgl_GetProcAddress("glMultiDrawArraysEXT");
+ glMultiDrawElementsEXT = (glMultiDrawElementsEXTPROC) extgl_GetProcAddress("glMultiDrawElementsEXT");
+#endif
+}
+
+void extgl_InitARBVertexBlend()
+{
+#ifdef GL_ARB_vertex_blend
+ if (!extgl_Extensions.ARB_vertex_blend)
+ return;
+ glWeightbvARB = (glWeightbvARBPROC) extgl_GetProcAddress("glWeightbvARB");
+ glWeightsvARB = (glWeightsvARBPROC) extgl_GetProcAddress("glWeightsvARB");
+ glWeightivARB = (glWeightivARBPROC) extgl_GetProcAddress("glWeightivARB");
+ glWeightfvARB = (glWeightfvARBPROC) extgl_GetProcAddress("glWeightfvARB");
+ glWeightdvARB = (glWeightdvARBPROC) extgl_GetProcAddress("glWeightdvARB");
+ glWeightubvARB = (glWeightubvARBPROC) extgl_GetProcAddress("glWeightubvARB");
+ glWeightusvARB = (glWeightusvARBPROC) extgl_GetProcAddress("glWeightusvARB");
+ glWeightuivARB = (glWeightuivARBPROC) extgl_GetProcAddress("glWeightuivARB");
+ glWeightPointerARB = (glWeightPointerARBPROC) extgl_GetProcAddress("glWeightPointerARB");
+ glVertexBlendARB = (glVertexBlendARBPROC) extgl_GetProcAddress("glVertexBlendARB");
+#endif
+}
+
+void extgl_InitARBPointParameters()
+{
+#ifdef GL_ARB_point_parameters
+ if (!extgl_Extensions.ARB_point_parameters)
+ return;
+ glPointParameterfARB = (glPointParameterfARBPROC) extgl_GetProcAddress("glPointParameterfARB");
+ glPointParameterfvARB = (glPointParameterfvARBPROC) extgl_GetProcAddress("glPointParameterfvARB");
+#endif
+}
+
+void extgl_InitATIPNTriangles()
+{
+#ifdef GL_ATI_pn_triangles
+ if (!extgl_Extensions.ATI_pn_triangles)
+ return;
+ glPNTrianglesiATI = (glPNTrianglesiATIPROC) extgl_GetProcAddress("glPNTrianglesiATI");
+ glPNTrianglesfATI = (glPNTrianglesfATIPROC) extgl_GetProcAddress("glPNTrianglesfATI");
+#endif
+}
+
+void extgl_InitNVEvaluators()
+{
+#ifdef GL_NV_evaluators
+ if (!extgl_Extensions.NV_evaluators)
+ return;
+ glMapControlPointsNV = (glMapControlPointsNVPROC) extgl_GetProcAddress("glMapControlPointsNV");
+ glMapParameterivNV = (glMapParameterivNVPROC) extgl_GetProcAddress("glMapParameterivNV");
+ glMapParameterfvNV = (glMapParameterfvNVPROC) extgl_GetProcAddress("glMapParameterfvNV");
+ glGetMapControlPointsNV = (glGetMapControlPointsNVPROC) extgl_GetProcAddress("glGetMapControlPointsNV");
+ glGetMapParameterivNV = (glGetMapParameterivNVPROC) extgl_GetProcAddress("glGetMapParameterivNV");
+ glGetMapParameterfvNV = (glGetMapParameterfvNVPROC) extgl_GetProcAddress("glGetMapParameterfvNV");
+ glGetMapAttribParameterivNV = (glGetMapAttribParameterivNVPROC) extgl_GetProcAddress("glGetMapAttribParameterivNV");
+ glGetMapAttribParameterfvNV = (glGetMapAttribParameterfvNVPROC) extgl_GetProcAddress("glGetMapAttribParameterfvNV");
+ glEvalMapsNV = (glEvalMapsNVPROC) extgl_GetProcAddress("glEvalMapsNV");
+#endif
+}
+
+void extgl_InitNVRegisterCombiners2()
+{
+#ifdef GL_NV_register_combiners
+ if (!extgl_Extensions.NV_register_combiners2)
+ return;
+ glCombinerStageParameterfvNV = (glCombinerStageParameterfvNVPROC) extgl_GetProcAddress("glCombinerStageParameterfvNV");
+ glGetCombinerStageParameterfvNV = (glGetCombinerStageParameterfvNVPROC) extgl_GetProcAddress("glGetCombinerStageParameterfvNV");
+#endif
+}
+
+void extgl_InitNVFence()
+{
+#ifdef GL_NV_fence
+ if (!extgl_Extensions.NV_fence)
+ return;
+ glGenFencesNV = (glGenFencesNVPROC) extgl_GetProcAddress("glGenFencesNV");
+ glDeleteFencesNV = (glDeleteFencesNVPROC) extgl_GetProcAddress("glDeleteFencesNV");
+ glSetFenceNV = (glSetFenceNVPROC) extgl_GetProcAddress("glSetFenceNV");
+ glTestFenceNV = (glTestFenceNVPROC) extgl_GetProcAddress("glTestFenceNV");
+ glFinishFenceNV = (glFinishFenceNVPROC) extgl_GetProcAddress("glFinishFenceNV");
+ glIsFenceNV = (glIsFenceNVPROC) extgl_GetProcAddress("glIsFenceNV");
+ glGetFenceivNV = (glGetFenceivNVPROC) extgl_GetProcAddress("glGetFenceivNV");
+#endif
+}
+
+void extgl_InitNVVertexProgram()
+{
+#ifdef GL_NV_vertex_program
+ if (!extgl_Extensions.NV_vertex_program)
+ return;
+ glBindProgramNV = (glBindProgramNVPROC) extgl_GetProcAddress("glBindProgramNV");
+ glDeleteProgramsNV = (glDeleteProgramsNVPROC) extgl_GetProcAddress("glDeleteProgramsNV");
+ glExecuteProgramNV = (glExecuteProgramNVPROC) extgl_GetProcAddress("glExecuteProgramNV");
+ glGenProgramsNV = (glGenProgramsNVPROC) extgl_GetProcAddress("glGenProgramsNV");
+ glAreProgramsResidentNV = (glAreProgramsResidentNVPROC) extgl_GetProcAddress("glAreProgramsResidentNV");
+ glRequestResidentProgramsNV = (glRequestResidentProgramsNVPROC) extgl_GetProcAddress("glRequestResidentProgramsNV");
+ glGetProgramParameterfvNV = (glGetProgramParameterfvNVPROC) extgl_GetProcAddress("glGetProgramParameterfvNV");
+ glGetProgramParameterdvNV = (glGetProgramParameterdvNVPROC) extgl_GetProcAddress("glGetProgramParameterdvNV");
+ glGetProgramivNV = (glGetProgramivNVPROC) extgl_GetProcAddress("glGetProgramivNV");
+ glGetProgramStringNV = (glGetProgramStringNVPROC) extgl_GetProcAddress("glGetProgramStringNV");
+ glGetTrackMatrixivNV = (glGetTrackMatrixivNVPROC) extgl_GetProcAddress("glGetTrackMatrixivNV");
+ glGetVertexAttribdvNV = (glGetVertexAttribdvNVPROC) extgl_GetProcAddress("glGetVertexAttribdvNV");
+ glGetVertexAttribfvNV = (glGetVertexAttribfvNVPROC) extgl_GetProcAddress("glGetVertexAttribfvNV");
+ glGetVertexAttribivNV = (glGetVertexAttribivNVPROC) extgl_GetProcAddress("glGetVertexAttribivNV");
+ glGetVertexAttribPointervNV = (glGetVertexAttribPointervNVPROC) extgl_GetProcAddress("glGetVertexAttribPointervNV");
+ glIsProgramNV = (glIsProgramNVPROC) extgl_GetProcAddress("glIsProgramNV");
+ glLoadProgramNV = (glLoadProgramNVPROC) extgl_GetProcAddress("glLoadProgramNV");
+ glProgramParameter4fNV = (glProgramParameter4fNVPROC) extgl_GetProcAddress("glProgramParameter4fNV");
+ glProgramParameter4dNV = (glProgramParameter4dNVPROC) extgl_GetProcAddress("glProgramParameter4dNV");
+ glProgramParameter4dvNV = (glProgramParameter4dvNVPROC) extgl_GetProcAddress("glProgramParameter4dvNV");
+ glProgramParameter4fvNV = (glProgramParameter4fvNVPROC) extgl_GetProcAddress("glProgramParameter4fvNV");
+ glProgramParameters4dvNV = (glProgramParameters4dvNVPROC) extgl_GetProcAddress("glProgramParameters4dvNV");
+ glProgramParameters4fvNV = (glProgramParameters4fvNVPROC) extgl_GetProcAddress("glProgramParameters4fvNV");
+ glTrackMatrixNV = (glTrackMatrixNVPROC) extgl_GetProcAddress("glTrackMatrixNV");
+ glVertexAttribPointerNV = (glVertexAttribPointerNVPROC) extgl_GetProcAddress("glVertexAttribPointerNV");
+ glVertexAttrib1sNV = (glVertexAttrib1sNVPROC) extgl_GetProcAddress("glVertexAttrib1sNV");
+ glVertexAttrib1fNV = (glVertexAttrib1fNVPROC) extgl_GetProcAddress("glVertexAttrib1fNV");
+ glVertexAttrib1dNV = (glVertexAttrib1dNVPROC) extgl_GetProcAddress("glVertexAttrib1dNV");
+ glVertexAttrib2sNV = (glVertexAttrib2sNVPROC) extgl_GetProcAddress("glVertexAttrib2sNV");
+ glVertexAttrib2fNV = (glVertexAttrib2fNVPROC) extgl_GetProcAddress("glVertexAttrib2fNV");
+ glVertexAttrib2dNV = (glVertexAttrib2dNVPROC) extgl_GetProcAddress("glVertexAttrib2dNV");
+ glVertexAttrib3sNV = (glVertexAttrib3sNVPROC) extgl_GetProcAddress("glVertexAttrib3sNV");
+ glVertexAttrib3fNV = (glVertexAttrib3fNVPROC) extgl_GetProcAddress("glVertexAttrib3fNV");
+ glVertexAttrib3dNV = (glVertexAttrib3dNVPROC) extgl_GetProcAddress("glVertexAttrib3dNV");
+ glVertexAttrib4sNV = (glVertexAttrib4sNVPROC) extgl_GetProcAddress("glVertexAttrib4sNV");
+ glVertexAttrib4fNV = (glVertexAttrib4fNVPROC) extgl_GetProcAddress("glVertexAttrib4fNV");
+ glVertexAttrib4dNV = (glVertexAttrib4dNVPROC) extgl_GetProcAddress("glVertexAttrib4dNV");
+ glVertexAttrib4ubNV = (glVertexAttrib4ubNVPROC) extgl_GetProcAddress("glVertexAttrib4ubNV");
+ glVertexAttrib1svNV = (glVertexAttrib1svNVPROC) extgl_GetProcAddress("glVertexAttrib1svNV");
+ glVertexAttrib1fvNV = (glVertexAttrib1fvNVPROC) extgl_GetProcAddress("glVertexAttrib1fvNV");
+ glVertexAttrib1dvNV = (glVertexAttrib1dvNVPROC) extgl_GetProcAddress("glVertexAttrib1dvNV");
+ glVertexAttrib2svNV = (glVertexAttrib2svNVPROC) extgl_GetProcAddress("glVertexAttrib2svNV");
+ glVertexAttrib2fvNV = (glVertexAttrib2fvNVPROC) extgl_GetProcAddress("glVertexAttrib2fvNV");
+ glVertexAttrib2dvNV = (glVertexAttrib2dvNVPROC) extgl_GetProcAddress("glVertexAttrib2dvNV");
+ glVertexAttrib3svNV = (glVertexAttrib3svNVPROC) extgl_GetProcAddress("glVertexAttrib3svNV");
+ glVertexAttrib3fvNV = (glVertexAttrib3fvNVPROC) extgl_GetProcAddress("glVertexAttrib3fvNV");
+ glVertexAttrib3dvNV = (glVertexAttrib3dvNVPROC) extgl_GetProcAddress("glVertexAttrib3dvNV");
+ glVertexAttrib4svNV = (glVertexAttrib4svNVPROC) extgl_GetProcAddress("glVertexAttrib4svNV");
+ glVertexAttrib4fvNV = (glVertexAttrib4fvNVPROC) extgl_GetProcAddress("glVertexAttrib4fvNV");
+ glVertexAttrib4dvNV = (glVertexAttrib4dvNVPROC) extgl_GetProcAddress("glVertexAttrib4dvNV");
+ glVertexAttrib4ubvNV = (glVertexAttrib4ubvNVPROC) extgl_GetProcAddress("glVertexAttrib4ubvNV");
+ glVertexAttribs1svNV = (glVertexAttribs1svNVPROC) extgl_GetProcAddress("glVertexAttribs1svNV");
+ glVertexAttribs1fvNV = (glVertexAttribs1fvNVPROC) extgl_GetProcAddress("glVertexAttribs1fvNV");
+ glVertexAttribs1dvNV = (glVertexAttribs1dvNVPROC) extgl_GetProcAddress("glVertexAttribs1dvNV");
+ glVertexAttribs2svNV = (glVertexAttribs2svNVPROC) extgl_GetProcAddress("glVertexAttribs2svNV");
+ glVertexAttribs2fvNV = (glVertexAttribs2fvNVPROC) extgl_GetProcAddress("glVertexAttribs2fvNV");
+ glVertexAttribs2dvNV = (glVertexAttribs2dvNVPROC) extgl_GetProcAddress("glVertexAttribs2dvNV");
+ glVertexAttribs3svNV = (glVertexAttribs3svNVPROC) extgl_GetProcAddress("glVertexAttribs3svNV");
+ glVertexAttribs3fvNV = (glVertexAttribs3fvNVPROC) extgl_GetProcAddress("glVertexAttribs3fvNV");
+ glVertexAttribs3dvNV = (glVertexAttribs3dvNVPROC) extgl_GetProcAddress("glVertexAttribs3dvNV");
+ glVertexAttribs4svNV = (glVertexAttribs4svNVPROC) extgl_GetProcAddress("glVertexAttribs4svNV");
+ glVertexAttribs4fvNV = (glVertexAttribs4fvNVPROC) extgl_GetProcAddress("glVertexAttribs4fvNV");
+ glVertexAttribs4dvNV = (glVertexAttribs4dvNVPROC) extgl_GetProcAddress("glVertexAttribs4dvNV");
+ glVertexAttribs4ubvNV = (glVertexAttribs4ubvNVPROC) extgl_GetProcAddress("glVertexAttribs4ubvNV");
+#endif
+}
+
+void extgl_InitEXTVertexWeighting()
+{
+#ifdef GL_EXT_vertex_weighting
+ if (!extgl_Extensions.EXT_vertex_weighting)
+ return;
+ glVertexWeightfEXT = (glVertexWeightfEXTPROC) extgl_GetProcAddress("glVertexWeightfEXT");
+ glVertexWeightfvEXT = (glVertexWeightfvEXTPROC) extgl_GetProcAddress("glVertexWeightfvEXT");
+ glVertexWeightPointerEXT = (glVertexWeightPointerEXTPROC) extgl_GetProcAddress("glVertexWeightPointerEXT");
+#endif
+}
+
+void extgl_InitARBMultisample()
+{
+#ifdef GL_ARB_multisample
+ if (!extgl_Extensions.ARB_multisample)
+ return;
+ glSampleCoverageARB = (glSampleCoverageARBPROC) extgl_GetProcAddress("glSampleCoverageARB");
+#endif
+}
+
+void extgl_InitNVRegisterCombiners()
+{
+#ifdef GL_NV_register_combiners
+ if (!extgl_Extensions.NV_register_combiners)
+ return;
+ glCombinerParameterfvNV = (glCombinerParameterfvNVPROC) extgl_GetProcAddress("glCombinerParameterfvNV");
+ glCombinerParameterfNV = (glCombinerParameterfNVPROC) extgl_GetProcAddress("glCombinerParameterfNV");
+ glCombinerParameterivNV = (glCombinerParameterivNVPROC) extgl_GetProcAddress("glCombinerParameterivNV");
+ glCombinerParameteriNV = (glCombinerParameteriNVPROC) extgl_GetProcAddress("glCombinerParameteriNV");
+ glCombinerInputNV = (glCombinerInputNVPROC) extgl_GetProcAddress("glCombinerInputNV");
+ glCombinerOutputNV = (glCombinerOutputNVPROC) extgl_GetProcAddress("glCombinerOutputNV");
+ glFinalCombinerInputNV = (glFinalCombinerInputNVPROC) extgl_GetProcAddress("glFinalCombinerInputNV");
+ glGetCombinerInputParameterfvNV = (glGetCombinerInputParameterfvNVPROC) extgl_GetProcAddress("glGetCombinerInputParameterfvNV");
+ glGetCombinerInputParameterivNV = (glGetCombinerInputParameterivNVPROC) extgl_GetProcAddress("glGetCombinerInputParameterivNV");
+ glGetCombinerOutputParameterfvNV = (glGetCombinerOutputParameterfvNVPROC) extgl_GetProcAddress("glGetCombinerOutputParameterfvNV");
+ glGetCombinerOutputParameterivNV = (glGetCombinerOutputParameterivNVPROC) extgl_GetProcAddress("glGetCombinerOutputParameterivNV");
+ glGetFinalCombinerInputParameterfvNV = (glGetFinalCombinerInputParameterfvNVPROC) extgl_GetProcAddress("glGetFinalCombinerInputParameterfvNV");
+ glGetFinalCombinerInputParameterivNV = (glGetFinalCombinerInputParameterivNVPROC) extgl_GetProcAddress("glGetFinalCombinerInputParameterivNV");
+#endif
+}
+
+void extgl_InitEXTPointParameters()
+{
+#ifdef GL_EXT_point_parameters
+ if (!extgl_Extensions.EXT_point_parameters)
+ return;
+ glPointParameterfEXT = (glPointParameterfEXTPROC) extgl_GetProcAddress("glPointParameterfEXT");
+ glPointParameterfvEXT = (glPointParameterfvEXTPROC) extgl_GetProcAddress("glPointParameterfvEXT");
+#endif
+}
+
+void extgl_InitNVVertexArrayRange()
+{
+#ifdef GL_NV_vertex_array_range
+ if (!extgl_Extensions.NV_vertex_array_range)
+ return;
+ glFlushVertexArrayRangeNV = (glFlushVertexArrayRangeNVPROC) extgl_GetProcAddress("glFlushVertexArrayRangeNV");
+ glVertexArrayRangeNV = (glVertexArrayRangeNVPROC) extgl_GetProcAddress("glVertexArrayRangeNV");
+#ifdef _WIN32
+ wglAllocateMemoryNV = (wglAllocateMemoryNVPROC) extgl_GetProcAddress("wglAllocateMemoryNV");
+ wglFreeMemoryNV = (wglFreeMemoryNVPROC) extgl_GetProcAddress("wglFreeMemoryNV");
+#else
+ glXAllocateMemoryNV = (glXAllocateMemoryNVPROC) extgl_GetProcAddress("glXAllocateMemoryNV");
+ glXFreeMemoryNV = (glXFreeMemoryNVPROC) extgl_GetProcAddress("glXFreeMemoryNV");
+#endif /* WIN32 */
+#endif
+}
+
+void extgl_InitEXTFogCoord()
+{
+#ifdef GL_EXT_fog_coord
+ if (!extgl_Extensions.EXT_fog_coord)
+ return;
+ glFogCoordfEXT = (glFogCoordfEXTPROC) extgl_GetProcAddress("glFogCoordfEXT");
+ glFogCoordfvEXT = (glFogCoordfvEXTPROC) extgl_GetProcAddress("glFogCoordfvEXT");
+ glFogCoorddEXT = (glFogCoorddEXTPROC) extgl_GetProcAddress("glFogCoorddEXT");
+ glFogCoorddvEXT = (glFogCoorddvEXTPROC) extgl_GetProcAddress("glFogCoorddvEXT");
+ glFogCoordPointerEXT = (glFogCoordPointerEXTPROC) extgl_GetProcAddress("glFogCoordPointerEXT");
+#endif
+}
+
+void extgl_InitEXTSecondaryColor()
+{
+#ifdef GL_EXT_secondary_color
+ if (!extgl_Extensions.EXT_secondary_color)
+ return;
+ glSecondaryColor3bEXT = (glSecondaryColor3bEXTPROC) extgl_GetProcAddress("glSecondaryColor3bEXT");
+ glSecondaryColor3bvEXT = (glSecondaryColor3bvEXTPROC) extgl_GetProcAddress("glSecondaryColor3bvEXT");
+ glSecondaryColor3dEXT = (glSecondaryColor3dEXTPROC) extgl_GetProcAddress("glSecondaryColor3dEXT");
+ glSecondaryColor3dvEXT = (glSecondaryColor3dvEXTPROC) extgl_GetProcAddress("glSecondaryColor3dvEXT");
+ glSecondaryColor3fEXT = (glSecondaryColor3fEXTPROC) extgl_GetProcAddress("glSecondaryColor3fEXT");
+ glSecondaryColor3fvEXT = (glSecondaryColor3fvEXTPROC) extgl_GetProcAddress("glSecondaryColor3fvEXT");
+ glSecondaryColor3iEXT = (glSecondaryColor3iEXTPROC) extgl_GetProcAddress("glSecondaryColor3iEXT");
+ glSecondaryColor3ivEXT = (glSecondaryColor3ivEXTPROC) extgl_GetProcAddress("glSecondaryColor3ivEXT");
+ glSecondaryColor3sEXT = (glSecondaryColor3sEXTPROC) extgl_GetProcAddress("glSecondaryColor3sEXT");
+ glSecondaryColor3svEXT = (glSecondaryColor3svEXTPROC) extgl_GetProcAddress("glSecondaryColor3svEXT");
+ glSecondaryColor3ubEXT = (glSecondaryColor3ubEXTPROC) extgl_GetProcAddress("glSecondaryColor3ubEXT");
+ glSecondaryColor3ubvEXT = (glSecondaryColor3ubvEXTPROC) extgl_GetProcAddress("glSecondaryColor3ubvEXT");
+ glSecondaryColor3uiEXT = (glSecondaryColor3uiEXTPROC) extgl_GetProcAddress("glSecondaryColor3uiEXT");
+ glSecondaryColor3uivEXT = (glSecondaryColor3uivEXTPROC) extgl_GetProcAddress("glSecondaryColor3uivEXT");
+ glSecondaryColor3usEXT = (glSecondaryColor3usEXTPROC) extgl_GetProcAddress("glSecondaryColor3usEXT");
+ glSecondaryColor3usvEXT = (glSecondaryColor3usvEXTPROC) extgl_GetProcAddress("glSecondaryColor3usvEXT");
+ glSecondaryColorPointerEXT = (glSecondaryColorPointerEXTPROC) extgl_GetProcAddress("glSecondaryColorPointerEXT");
+#endif
+}
+
+void extgl_InitEXTCompiledVertexArray()
+{
+#ifdef GL_EXT_compiled_vertex_array
+ if (!extgl_Extensions.EXT_compiled_vertex_array)
+ return;
+ glLockArraysEXT = (glLockArraysEXTPROC) extgl_GetProcAddress("glLockArraysEXT");
+ glUnlockArraysEXT = (glUnlockArraysEXTPROC) extgl_GetProcAddress("glUnlockArraysEXT");
+#endif
+}
+
+void extgl_InitARBTransposeMatrix()
+{
+#ifdef GL_ARB_transpose_matrix
+ if (!extgl_Extensions.ARB_transpose_matrix)
+ return;
+ glLoadTransposeMatrixfARB = (glLoadTransposeMatrixfARBPROC) extgl_GetProcAddress("glLoadTransposeMatrixfARB");
+ glLoadTransposeMatrixdARB = (glLoadTransposeMatrixdARBPROC) extgl_GetProcAddress("glLoadTransposeMatrixdARB");
+ glMultTransposeMatrixfARB = (glMultTransposeMatrixfARBPROC) extgl_GetProcAddress("glMultTransposeMatrixfARB");
+ glMultTransposeMatrixdARB = (glMultTransposeMatrixdARBPROC) extgl_GetProcAddress("glMultTransposeMatrixdARB");
+#endif
+}
+
+void extgl_InitEXTDrawRangeElements()
+{
+#ifdef GL_EXT_draw_range_elements
+ if (!extgl_Extensions.EXT_draw_range_elements)
+ return;
+ glDrawRangeElementsEXT = (glDrawRangeElementsEXTPROC) extgl_GetProcAddress("glDrawRangeElementsEXT");
+#endif
+}
+
+void extgl_InitARBMultitexture()
+{
+#ifdef _WIN32
+#ifdef GL_ARB_multitexture
+ if (!extgl_Extensions.ARB_multitexture)
+ return;
+ glActiveTextureARB = (glActiveTextureARBPROC) extgl_GetProcAddress("glActiveTextureARB");
+ glClientActiveTextureARB = (glClientActiveTextureARBPROC) extgl_GetProcAddress("glClientActiveTextureARB");
+
+ glMultiTexCoord1dARB = (glMultiTexCoord1dARBPROC) extgl_GetProcAddress("glMultiTexCoord1dARB");
+ glMultiTexCoord1dvARB = (glMultiTexCoord1dvARBPROC) extgl_GetProcAddress("glMultiTexCoord1dvARB");
+ glMultiTexCoord1fARB = (glMultiTexCoord1fARBPROC) extgl_GetProcAddress("glMultiTexCoord1fARB");
+ glMultiTexCoord1fvARB = (glMultiTexCoord1fvARBPROC) extgl_GetProcAddress("glMultiTexCoord1fvARB");
+ glMultiTexCoord1iARB = (glMultiTexCoord1iARBPROC) extgl_GetProcAddress("glMultiTexCoord1iARB");
+ glMultiTexCoord1ivARB = (glMultiTexCoord1ivARBPROC) extgl_GetProcAddress("glMultiTexCoord1ivARB");
+ glMultiTexCoord1sARB = (glMultiTexCoord1sARBPROC) extgl_GetProcAddress("glMultiTexCoord1sARB");
+ glMultiTexCoord1svARB = (glMultiTexCoord1svARBPROC) extgl_GetProcAddress("glMultiTexCoord1svARB");
+
+ glMultiTexCoord2dARB = (glMultiTexCoord2dARBPROC) extgl_GetProcAddress("glMultiTexCoord2dARB");
+ glMultiTexCoord2dvARB = (glMultiTexCoord2dvARBPROC) extgl_GetProcAddress("glMultiTexCoord2dvARB");
+ glMultiTexCoord2fARB = (glMultiTexCoord2fARBPROC) extgl_GetProcAddress("glMultiTexCoord2fARB");
+ glMultiTexCoord2fvARB = (glMultiTexCoord2fvARBPROC) extgl_GetProcAddress("glMultiTexCoord2fvARB");
+ glMultiTexCoord2iARB = (glMultiTexCoord2iARBPROC) extgl_GetProcAddress("glMultiTexCoord2iARB");
+ glMultiTexCoord2ivARB = (glMultiTexCoord2ivARBPROC) extgl_GetProcAddress("glMultiTexCoord2ivARB");
+ glMultiTexCoord2sARB = (glMultiTexCoord2sARBPROC) extgl_GetProcAddress("glMultiTexCoord2sARB");
+ glMultiTexCoord2svARB = (glMultiTexCoord2svARBPROC) extgl_GetProcAddress("glMultiTexCoord2svARB");
+
+ glMultiTexCoord3dARB = (glMultiTexCoord3dARBPROC) extgl_GetProcAddress("glMultiTexCoord3dARB");
+ glMultiTexCoord3dvARB = (glMultiTexCoord3dvARBPROC) extgl_GetProcAddress("glMultiTexCoord3dvARB");
+ glMultiTexCoord3fARB = (glMultiTexCoord3fARBPROC) extgl_GetProcAddress("glMultiTexCoord3fARB");
+ glMultiTexCoord3fvARB = (glMultiTexCoord3fvARBPROC) extgl_GetProcAddress("glMultiTexCoord3fvARB");
+ glMultiTexCoord3iARB = (glMultiTexCoord3iARBPROC) extgl_GetProcAddress("glMultiTexCoord3iARB");
+ glMultiTexCoord3ivARB = (glMultiTexCoord3ivARBPROC) extgl_GetProcAddress("glMultiTexCoord3ivARB");
+ glMultiTexCoord3sARB = (glMultiTexCoord3sARBPROC) extgl_GetProcAddress("glMultiTexCoord3sARB");
+ glMultiTexCoord3svARB = (glMultiTexCoord3svARBPROC) extgl_GetProcAddress("glMultiTexCoord3svARB");
+
+ glMultiTexCoord4dARB = (glMultiTexCoord4dARBPROC) extgl_GetProcAddress("glMultiTexCoord4dARB");
+ glMultiTexCoord4dvARB = (glMultiTexCoord4dvARBPROC) extgl_GetProcAddress("glMultiTexCoord4dvARB");
+ glMultiTexCoord4fARB = (glMultiTexCoord4fARBPROC) extgl_GetProcAddress("glMultiTexCoord4fARB");
+ glMultiTexCoord4fvARB = (glMultiTexCoord4fvARBPROC) extgl_GetProcAddress("glMultiTexCoord4fvARB");
+ glMultiTexCoord4iARB = (glMultiTexCoord4iARBPROC) extgl_GetProcAddress("glMultiTexCoord4iARB");
+ glMultiTexCoord4ivARB = (glMultiTexCoord4ivARBPROC) extgl_GetProcAddress("glMultiTexCoord4ivARB");
+ glMultiTexCoord4sARB = (glMultiTexCoord4sARBPROC) extgl_GetProcAddress("glMultiTexCoord4sARB");
+ glMultiTexCoord4svARB = (glMultiTexCoord4svARBPROC) extgl_GetProcAddress("glMultiTexCoord4svARB");
+#endif /* GL_ARB_multitexture */
+#endif /* WIN32 */
+}
+
+void extgl_InitOpenGL1_2()
+{
+#ifdef _WIN32
+#ifdef GL_VERSION_1_2
+ if (!extgl_Extensions.OpenGL12)
+ return;
+ glTexImage3D = (glTexImage3DPROC) extgl_GetProcAddress("glTexImage3D");
+ glTexSubImage3D = (glTexSubImage3DPROC) extgl_GetProcAddress("glTexSubImage3D");
+ glCopyTexSubImage3D = (glCopyTexSubImage3DPROC) extgl_GetProcAddress("glCopyTexSubImage3D");
+ glDrawRangeElements = (glDrawRangeElementsPROC) extgl_GetProcAddress("glDrawRangeElements");
+#endif /* GL_VERSION_1_2 */
+#endif /* WIN32 */
+}
+
+void extgl_InitARBImaging()
+{
+#ifdef _WIN32
+#ifdef GL_ARB_imaging
+ if (!extgl_Extensions.ARB_imaging)
+ return;
+ glBlendColor = (glBlendColorPROC) extgl_GetProcAddress("glBlendColor");
+ glBlendEquation = (glBlendEquationPROC) extgl_GetProcAddress("glBlendEquation");
+ glColorTable = (glColorTablePROC) extgl_GetProcAddress("glColorTable");
+ glColorTableParameterfv = (glColorTableParameterfvPROC) extgl_GetProcAddress("glColorTableParameterfv");
+ glColorTableParameteriv = (glColorTableParameterivPROC) extgl_GetProcAddress("glColorTableParameteriv");
+ glCopyColorTable = (glCopyColorTablePROC) extgl_GetProcAddress("glCopyColorTable");
+ glGetColorTable = (glGetColorTablePROC) extgl_GetProcAddress("glGetColorTable");
+ glGetColorTableParameterfv = (glGetColorTableParameterfvPROC) extgl_GetProcAddress("glGetColorTableParameterfv");
+ glGetColorTableParameteriv = (glGetColorTableParameterivPROC) extgl_GetProcAddress("glGetColorTableParameteriv");
+ glColorSubTable = (glColorSubTablePROC) extgl_GetProcAddress("glColorSubTable");
+ glCopyColorSubTable = (glCopyColorSubTablePROC) extgl_GetProcAddress("glCopyColorSubTable");
+ glConvolutionFilter1D = (glConvolutionFilter1DPROC) extgl_GetProcAddress("glConvolutionFilter1D");
+ glConvolutionFilter2D = (glConvolutionFilter2DPROC) extgl_GetProcAddress("glConvolutionFilter2D");
+ glConvolutionParameterf = (glConvolutionParameterfPROC) extgl_GetProcAddress("glConvolutionParameterf");
+ glConvolutionParameterfv = (glConvolutionParameterfvPROC) extgl_GetProcAddress("glConvolutionParameterfv");
+ glConvolutionParameteri = (glConvolutionParameteriPROC) extgl_GetProcAddress("glConvolutionParameteri");
+ glConvolutionParameteriv = (glConvolutionParameterivPROC) extgl_GetProcAddress("glConvolutionParameteriv");
+ glCopyConvolutionFilter1D = (glCopyConvolutionFilter1DPROC) extgl_GetProcAddress("glCopyConvolutionFilter1D");
+ glCopyConvolutionFilter2D = (glCopyConvolutionFilter2DPROC) extgl_GetProcAddress("glCopyConvolutionFilter2D");
+ glGetConvolutionFilter = (glGetConvolutionFilterPROC) extgl_GetProcAddress("glGetConvolutionFilter");
+ glGetConvolutionParameterfv = (glGetConvolutionParameterfvPROC) extgl_GetProcAddress("glGetConvolutionParameterfv");
+ glGetConvolutionParameteriv = (glGetConvolutionParameterivPROC) extgl_GetProcAddress("glGetConvolutionParameteriv");
+ glGetSeparableFilter = (glGetSeparableFilterPROC) extgl_GetProcAddress("glGetSeparableFilter");
+ glSeparableFilter2D = (glSeparableFilter2DPROC) extgl_GetProcAddress("glSeparableFilter2D");
+ glGetHistogram = (glGetHistogramPROC) extgl_GetProcAddress("glGetHistogram");
+ glGetHistogramParameterfv = (glGetHistogramParameterfvPROC) extgl_GetProcAddress("glGetHistogramParameterfv");
+ glGetHistogramParameteriv = (glGetHistogramParameterivPROC) extgl_GetProcAddress("glGetHistogramParameteriv");
+ glGetMinmax = (glGetMinmaxPROC) extgl_GetProcAddress("glGetMinmax");
+ glGetMinmaxParameterfv = (glGetMinmaxParameterfvPROC) extgl_GetProcAddress("glGetMinmaxParameterfv");
+ glGetMinmaxParameteriv = (glGetMinmaxParameterivPROC) extgl_GetProcAddress("glGetMinmaxParameteriv");
+ glHistogram = (glHistogramPROC) extgl_GetProcAddress("glHistogram");
+ glMinmax = (glMinmaxPROC) extgl_GetProcAddress("glMinmax");
+ glResetHistogram = (glResetHistogramPROC) extgl_GetProcAddress("glResetHistogram");
+ glResetMinmax = (glResetMinmaxPROC) extgl_GetProcAddress("glResetMinmax");
+#endif /* GL_ARB_imaging */
+#endif /* WIN32 */
+}
+
+void extgl_InitOpenGL1_3()
+{
+#ifdef _WIN32
+#ifdef GL_VERSION_1_3
+ if (!extgl_Extensions.OpenGL13)
+ return;
+ glActiveTexture = (glActiveTexturePROC) extgl_GetProcAddress("glActiveTexture");
+ glClientActiveTexture = (glClientActiveTexturePROC) extgl_GetProcAddress("glClientActiveTexture");
+
+ glMultiTexCoord1d = (glMultiTexCoord1dPROC) extgl_GetProcAddress("glMultiTexCoord1d");
+ glMultiTexCoord1dv = (glMultiTexCoord1dvPROC) extgl_GetProcAddress("glMultiTexCoord1dv");
+ glMultiTexCoord1f = (glMultiTexCoord1fPROC) extgl_GetProcAddress("glMultiTexCoord1f");
+ glMultiTexCoord1fv = (glMultiTexCoord1fvPROC) extgl_GetProcAddress("glMultiTexCoord1fv");
+ glMultiTexCoord1i = (glMultiTexCoord1iPROC) extgl_GetProcAddress("glMultiTexCoord1i");
+ glMultiTexCoord1iv = (glMultiTexCoord1ivPROC) extgl_GetProcAddress("glMultiTexCoord1iv");
+ glMultiTexCoord1s = (glMultiTexCoord1sPROC) extgl_GetProcAddress("glMultiTexCoord1s");
+ glMultiTexCoord1sv = (glMultiTexCoord1svPROC) extgl_GetProcAddress("glMultiTexCoord1sv");
+
+ glMultiTexCoord2d = (glMultiTexCoord2dPROC) extgl_GetProcAddress("glMultiTexCoord2d");
+ glMultiTexCoord2dv = (glMultiTexCoord2dvPROC) extgl_GetProcAddress("glMultiTexCoord2dv");
+ glMultiTexCoord2f = (glMultiTexCoord2fPROC) extgl_GetProcAddress("glMultiTexCoord2f");
+ glMultiTexCoord2fv = (glMultiTexCoord2fvPROC) extgl_GetProcAddress("glMultiTexCoord2fv");
+ glMultiTexCoord2i = (glMultiTexCoord2iPROC) extgl_GetProcAddress("glMultiTexCoord2i");
+ glMultiTexCoord2iv = (glMultiTexCoord2ivPROC) extgl_GetProcAddress("glMultiTexCoord2iv");
+ glMultiTexCoord2s = (glMultiTexCoord2sPROC) extgl_GetProcAddress("glMultiTexCoord2s");
+ glMultiTexCoord2sv = (glMultiTexCoord2svPROC) extgl_GetProcAddress("glMultiTexCoord2sv");
+
+ glMultiTexCoord3d = (glMultiTexCoord3dPROC) extgl_GetProcAddress("glMultiTexCoord3d");
+ glMultiTexCoord3dv = (glMultiTexCoord3dvPROC) extgl_GetProcAddress("glMultiTexCoord3dv");
+ glMultiTexCoord3f = (glMultiTexCoord3fPROC) extgl_GetProcAddress("glMultiTexCoord3f");
+ glMultiTexCoord3fv = (glMultiTexCoord3fvPROC) extgl_GetProcAddress("glMultiTexCoord3fv");
+ glMultiTexCoord3i = (glMultiTexCoord3iPROC) extgl_GetProcAddress("glMultiTexCoord3i");
+ glMultiTexCoord3iv = (glMultiTexCoord3ivPROC) extgl_GetProcAddress("glMultiTexCoord3iv");
+ glMultiTexCoord3s = (glMultiTexCoord3sPROC) extgl_GetProcAddress("glMultiTexCoord3s");
+ glMultiTexCoord3sv = (glMultiTexCoord3svPROC) extgl_GetProcAddress("glMultiTexCoord3sv");
+
+ glMultiTexCoord4d = (glMultiTexCoord4dPROC) extgl_GetProcAddress("glMultiTexCoord4d");
+ glMultiTexCoord4dv = (glMultiTexCoord4dvPROC) extgl_GetProcAddress("glMultiTexCoord4dv");
+ glMultiTexCoord4f = (glMultiTexCoord4fPROC) extgl_GetProcAddress("glMultiTexCoord4f");
+ glMultiTexCoord4fv = (glMultiTexCoord4fvPROC) extgl_GetProcAddress("glMultiTexCoord4fv");
+ glMultiTexCoord4i = (glMultiTexCoord4iPROC) extgl_GetProcAddress("glMultiTexCoord4i");
+ glMultiTexCoord4iv = (glMultiTexCoord4ivPROC) extgl_GetProcAddress("glMultiTexCoord4iv");
+ glMultiTexCoord4s = (glMultiTexCoord4sPROC) extgl_GetProcAddress("glMultiTexCoord4s");
+ glMultiTexCoord4sv = (glMultiTexCoord4svPROC) extgl_GetProcAddress("glMultiTexCoord4sv");
+
+ glLoadTransposeMatrixf = (glLoadTransposeMatrixfPROC) extgl_GetProcAddress("glLoadTransposeMatrixf");
+ glLoadTransposeMatrixd = (glLoadTransposeMatrixdPROC) extgl_GetProcAddress("glLoadTransposeMatrixd");
+ glMultTransposeMatrixf = (glMultTransposeMatrixfPROC) extgl_GetProcAddress("glMultTransposeMatrixf");
+ glMultTransposeMatrixd = (glMultTransposeMatrixdPROC) extgl_GetProcAddress("glMultTransposeMatrixd");
+ glCompressedTexImage3D = (glCompressedTexImage3DPROC) extgl_GetProcAddress("glCompressedTexImage3D");
+ glCompressedTexImage2D = (glCompressedTexImage2DPROC) extgl_GetProcAddress("glCompressedTexImage2D");
+ glCompressedTexImage1D = (glCompressedTexImage1DPROC) extgl_GetProcAddress("glCompressedTexImage1D");
+ glCompressedTexSubImage3D = (glCompressedTexSubImage3DPROC) extgl_GetProcAddress("glCompressedTexSubImage3D");
+ glCompressedTexSubImage2D = (glCompressedTexSubImage2DPROC) extgl_GetProcAddress("glCompressedTexSubImage2D");
+ glCompressedTexSubImage1D = (glCompressedTexSubImage1DPROC) extgl_GetProcAddress("glCompressedTexSubImage1D");
+ glGetCompressedTexImage = (glGetCompressedTexImagePROC) extgl_GetProcAddress("glGetCompressedTexImage");
+
+ glSampleCoverage = (glSampleCoveragePROC) extgl_GetProcAddress("glSampleCoverage");
+#endif /* GL_VERSION_1_3 */
+#endif /* WIN32 */
+}
+
+void extgl_InitOpenGL1_4()
+{
+#ifdef _WIN32
+#ifdef GL_VERSION_1_4
+ if (!extgl_Extensions.OpenGL14)
+ return;
+ glBlendColor = (glBlendColorPROC) extgl_GetProcAddress("glBlendColor");
+ glBlendEquation = (glBlendEquationPROC) extgl_GetProcAddress("glBlendEquation");
+ glFogCoordf = (glFogCoordfPROC) extgl_GetProcAddress("glFogCoordf");
+ glFogCoordfv = (glFogCoordfvPROC) extgl_GetProcAddress("glFogCoordfv");
+ glFogCoordd = (glFogCoorddPROC) extgl_GetProcAddress("glFogCoordd");
+ glFogCoorddv = (glFogCoorddvPROC) extgl_GetProcAddress("glFogCoorddv");
+ glFogCoordPointer = (glFogCoordPointerPROC) extgl_GetProcAddress("glFogCoordPointer");
+ glMultiDrawArrays = (glMultiDrawArraysPROC) extgl_GetProcAddress("glMultiDrawArrays");
+ glMultiDrawElements = (glMultiDrawElementsPROC) extgl_GetProcAddress("glMultiDrawElements");
+ glPointParameterf = (glPointParameterfPROC) extgl_GetProcAddress("glPointParameterf");
+ glPointParameterfv = (glPointParameterfvPROC) extgl_GetProcAddress("glPointParameterfv");
+ glSecondaryColor3b = (glSecondaryColor3bPROC) extgl_GetProcAddress("glSecondaryColor3b");
+ glSecondaryColor3bv = (glSecondaryColor3bvPROC) extgl_GetProcAddress("glSecondaryColor3bv");
+ glSecondaryColor3d = (glSecondaryColor3dPROC) extgl_GetProcAddress("glSecondaryColor3d");
+ glSecondaryColor3dv = (glSecondaryColor3dvPROC) extgl_GetProcAddress("glSecondaryColor3dv");
+ glSecondaryColor3f = (glSecondaryColor3fPROC) extgl_GetProcAddress("glSecondaryColor3f");
+ glSecondaryColor3fv = (glSecondaryColor3fvPROC) extgl_GetProcAddress("glSecondaryColor3fv");
+ glSecondaryColor3i = (glSecondaryColor3iPROC) extgl_GetProcAddress("glSecondaryColor3i");
+ glSecondaryColor3iv = (glSecondaryColor3ivPROC) extgl_GetProcAddress("glSecondaryColor3iv");
+ glSecondaryColor3s = (glSecondaryColor3sPROC) extgl_GetProcAddress("glSecondaryColor3s");
+ glSecondaryColor3sv = (glSecondaryColor3svPROC) extgl_GetProcAddress("glSecondaryColor3sv");
+ glSecondaryColor3ub = (glSecondaryColor3ubPROC) extgl_GetProcAddress("glSecondaryColor3ub");
+ glSecondaryColor3ubv = (glSecondaryColor3ubvPROC) extgl_GetProcAddress("glSecondaryColor3ubv");
+ glSecondaryColor3ui = (glSecondaryColor3uiPROC) extgl_GetProcAddress("glSecondaryColor3ui");
+ glSecondaryColor3uiv = (glSecondaryColor3uivPROC) extgl_GetProcAddress("glSecondaryColor3uiv");
+ glSecondaryColor3us = (glSecondaryColor3usPROC) extgl_GetProcAddress("glSecondaryColor3us");
+ glSecondaryColor3usv = (glSecondaryColor3usvPROC) extgl_GetProcAddress("glSecondaryColor3usv");
+ glSecondaryColorPointer = (glSecondaryColorPointerPROC) extgl_GetProcAddress("glSecondaryColorPointer");
+ glBlendFuncSeparate = (glBlendFuncSeparatePROC) extgl_GetProcAddress("glBlendFuncSeparate");
+ glWindowPos2d = (glWindowPos2dPROC) extgl_GetProcAddress("glWindowPos2d");
+ glWindowPos2f = (glWindowPos2fPROC) extgl_GetProcAddress("glWindowPos2f");
+ glWindowPos2i = (glWindowPos2iPROC) extgl_GetProcAddress("glWindowPos2i");
+ glWindowPos2s = (glWindowPos2sPROC) extgl_GetProcAddress("glWindowPos2s");
+ glWindowPos2dv = (glWindowPos2dvPROC) extgl_GetProcAddress("glWindowPos2dv");
+ glWindowPos2fv = (glWindowPos2fvPROC) extgl_GetProcAddress("glWindowPos2fv");
+ glWindowPos2iv = (glWindowPos2ivPROC) extgl_GetProcAddress("glWindowPos2iv");
+ glWindowPos2sv = (glWindowPos2svPROC) extgl_GetProcAddress("glWindowPos2sv");
+ glWindowPos3d = (glWindowPos3dPROC) extgl_GetProcAddress("glWindowPos3d");
+ glWindowPos3f = (glWindowPos3fPROC) extgl_GetProcAddress("glWindowPos3f");
+ glWindowPos3i = (glWindowPos3iPROC) extgl_GetProcAddress("glWindowPos3i");
+ glWindowPos3s = (glWindowPos3sPROC) extgl_GetProcAddress("glWindowPos3s");
+ glWindowPos3dv = (glWindowPos3dvPROC) extgl_GetProcAddress("glWindowPos3dv");
+ glWindowPos3fv = (glWindowPos3fvPROC) extgl_GetProcAddress("glWindowPos3fv");
+ glWindowPos3iv = (glWindowPos3ivPROC) extgl_GetProcAddress("glWindowPos3iv");
+ glWindowPos3sv = (glWindowPos3svPROC) extgl_GetProcAddress("glWindowPos3sv");
+#endif /* GL_VERSION_1_4 */
+#endif /* WIN32 */
+}
+
+void extgl_InitSupportedExtensions()
+{
+ char *s = (char*) glGetString(GL_VERSION);
+ if (!s)
+ return;
+ const char v[2]={s[0],'\0'};
+ int major = atoi(v);
+ if(atoi(v) >= 2){
+ extgl_Extensions.OpenGL12 = 1;
+ extgl_Extensions.OpenGL13 = 1;
+ extgl_Extensions.OpenGL14 = 1;
+ }else{
+ s = strstr(s, "1.");
+ }
+ if (s == NULL)
+ {
+ extgl_Extensions.OpenGL12 = 0;
+ extgl_Extensions.OpenGL13 = 0;
+ extgl_Extensions.OpenGL14 = 0;
+ }
+ else
+ {
+ extgl_Extensions.OpenGL12 = 0;
+ extgl_Extensions.OpenGL13 = 0;
+ extgl_Extensions.OpenGL14 = 0;
+
+ if( s[2] >= '4' )
+ {
+ extgl_Extensions.OpenGL12 = 1;
+ extgl_Extensions.OpenGL13 = 1;
+ extgl_Extensions.OpenGL14 = 1;
+ }
+ if( s[2] == '3' )
+ {
+ extgl_Extensions.OpenGL12 = 1;
+ extgl_Extensions.OpenGL13 = 1;
+ }
+ if( s[2] == '2' )
+ {
+ extgl_Extensions.OpenGL12 = 1;
+ }
+ }
+ extgl_Extensions.ARB_depth_texture = QueryExtension("GL_ARB_depth_texture");
+ extgl_Extensions.ARB_fragment_program = QueryExtension("GL_ARB_fragment_program");
+ extgl_Extensions.ARB_imaging = QueryExtension("GL_ARB_imaging");
+ extgl_Extensions.ARB_matrix_palette = QueryExtension("GL_ARB_matrix_palette");
+ extgl_Extensions.ARB_multisample = QueryExtension("GL_ARB_multisample");
+ extgl_Extensions.ARB_multitexture = QueryExtension("GL_ARB_multitexture");
+ extgl_Extensions.ARB_point_parameters = QueryExtension("GL_ARB_point_parameters");
+ extgl_Extensions.ARB_shadow = QueryExtension("GL_ARB_shadow");
+ extgl_Extensions.ARB_shadow_ambient = QueryExtension("GL_ARB_shadow_ambient");
+ extgl_Extensions.ARB_texture_border_clamp = QueryExtension("GL_ARB_texture_border_clamp");
+ extgl_Extensions.ARB_texture_compression = QueryExtension("GL_ARB_texture_compression");
+ extgl_Extensions.ARB_texture_cube_map = QueryExtension("GL_ARB_texture_cube_map");
+ extgl_Extensions.ARB_texture_env_add = QueryExtension("GL_ARB_texture_env_add");
+ extgl_Extensions.ARB_texture_env_combine = QueryExtension("GL_ARB_texture_env_combine");
+ extgl_Extensions.ARB_texture_env_crossbar = QueryExtension("GL_ARB_texture_env_crossbar");
+ extgl_Extensions.ARB_texture_env_dot3 = QueryExtension("GL_ARB_texture_env_dot3");
+ extgl_Extensions.ARB_texture_mirrored_repeat = QueryExtension("GL_ARB_texture_mirrored_repeat");
+ extgl_Extensions.ARB_transpose_matrix = QueryExtension("GL_ARB_transpose_matrix");
+ extgl_Extensions.ARB_vertex_blend = QueryExtension("GL_ARB_vertex_blend");
+ extgl_Extensions.ARB_vertex_program = QueryExtension("GL_ARB_vertex_program");
+ extgl_Extensions.ARB_window_pos = QueryExtension("GL_ARB_window_pos");
+ extgl_Extensions.EXT_abgr = QueryExtension("GL_EXT_abgr");
+ extgl_Extensions.EXT_bgra = QueryExtension("GL_EXT_bgra");
+ extgl_Extensions.EXT_blend_func_separate = QueryExtension("GL_EXT_blend_function_separate");
+ extgl_Extensions.EXT_compiled_vertex_array = QueryExtension("GL_EXT_compiled_vertex_array");
+ extgl_Extensions.EXT_cull_vertex = QueryExtension("GL_EXT_cull_vertex");
+ extgl_Extensions.EXT_draw_range_elements = QueryExtension("GL_EXT_draw_range_elements");
+ extgl_Extensions.EXT_fog_coord = QueryExtension("GL_EXT_fog_coord");
+ extgl_Extensions.EXT_multi_draw_arrays = QueryExtension("GL_EXT_multi_draw_arrays");
+ extgl_Extensions.EXT_point_parameters = QueryExtension("GL_EXT_point_parameters");
+ extgl_Extensions.EXT_secondary_color = QueryExtension("GL_EXT_secondary_color");
+ extgl_Extensions.EXT_separate_specular_color = QueryExtension("GL_EXT_separate_specular_color");
+ extgl_Extensions.EXT_shadow_funcs = QueryExtension("GL_EXT_shadow_funcs");
+ extgl_Extensions.EXT_stencil_two_side = QueryExtension("GL_EXT_stencil_two_side");
+ extgl_Extensions.EXT_stencil_wrap = QueryExtension("GL_EXT_stencil_wrap");
+ extgl_Extensions.EXT_texture_compression_s3tc = QueryExtension("GL_EXT_texture_compression_s3tc");
+ extgl_Extensions.EXT_texture_env_combine = QueryExtension("GL_EXT_texture_env_combine");
+ extgl_Extensions.EXT_texture_filter_anisotropic = QueryExtension("GL_EXT_texture_filter_anisotropic");
+ extgl_Extensions.EXT_texture_lod_bias = QueryExtension("GL_EXT_texture_lod_bias");
+ extgl_Extensions.EXT_texture_rectangle = QueryExtension("GL_EXT_texture_rectangle"); // added -ec
+ extgl_Extensions.EXT_vertex_shader = QueryExtension("GL_EXT_vertex_shader");
+ extgl_Extensions.EXT_vertex_weighting = QueryExtension("GL_EXT_vertex_weighting");
+ extgl_Extensions.ATI_draw_buffers = QueryExtension("GL_ATI_draw_buffers"); // added -ec
+ extgl_Extensions.ATI_element_array = QueryExtension("GL_ATI_element_array");
+ extgl_Extensions.ATI_envmap_bumpmap = QueryExtension("GL_ATI_envmap_bumpmap");
+ extgl_Extensions.ATI_fragment_shader = QueryExtension("GL_ATI_fragment_shader");
+ extgl_Extensions.ATI_pn_triangles = QueryExtension("GL_ATI_pn_triangles");
+ extgl_Extensions.ATI_point_cull_mode = QueryExtension("GL_ATI_point_cull_mode");
+ extgl_Extensions.ATI_text_fragment_shader = QueryExtension("GL_ATI_text_fragment_shader");
+ extgl_Extensions.ATI_texture_float = QueryExtension("GL_ATI_texture_float"); // added -ec
+ extgl_Extensions.ATI_texture_mirror_once = QueryExtension("GL_ATI_texture_mirror_once");
+ extgl_Extensions.ATI_vertex_array_object = QueryExtension("GL_ATI_vertex_array_object");
+ extgl_Extensions.ATI_vertex_streams = QueryExtension("GL_ATI_vertex_streams");
+ extgl_Extensions.ATIX_point_sprites = QueryExtension("GL_ATIX_point_sprites");
+ extgl_Extensions.ATIX_texture_env_route = QueryExtension("GL_ATIX_texture_env_route");
+ extgl_Extensions.HP_occlusion_test = QueryExtension("GL_HP_occlusion_test");
+ extgl_Extensions.NV_blend_square = QueryExtension("GL_NV_blend_square");
+ extgl_Extensions.NV_copy_depth_to_color = QueryExtension("GL_NV_copy_depth_to_color");
+ extgl_Extensions.NV_depth_clamp = QueryExtension("GL_NV_depth_clamp");
+ extgl_Extensions.NV_element_array = QueryExtension("GL_NV_element_array");
+ extgl_Extensions.NV_evaluators = QueryExtension("GL_NV_evaluators");
+ extgl_Extensions.NV_fence = QueryExtension("GL_NV_fence");
+ extgl_Extensions.NV_float_buffer = QueryExtension("GL_NV_float_buffer");
+ extgl_Extensions.NV_fog_distance = QueryExtension("GL_NV_fog_distance");
+ extgl_Extensions.NV_fragment_program = QueryExtension("GL_NV_fragment_program");
+ extgl_Extensions.NV_light_max_exponent = QueryExtension("GL_NV_light_max_exponent");
+ extgl_Extensions.NV_occlusion_query = QueryExtension("GL_NV_occlusion_query");
+ extgl_Extensions.NV_packed_depth_stencil = QueryExtension("GL_NV_packed_depth_stencil");
+ extgl_Extensions.NV_point_sprite = QueryExtension("GL_NV_point_sprite");
+ extgl_Extensions.NV_primitive_restart = QueryExtension("GL_NV_primitive_restart");
+ extgl_Extensions.NV_register_combiners = QueryExtension("GL_NV_register_combiners");
+ extgl_Extensions.NV_register_combiners2 = QueryExtension("GL_NV_register_combiners2");
+ extgl_Extensions.NV_texgen_reflection = QueryExtension("GL_NV_texgen_reflection");
+ extgl_Extensions.NV_texture_env_combine4 = QueryExtension("GL_NV_texture_env_combine4");
+ extgl_Extensions.NV_texture_rectangle = QueryExtension("GL_NV_texture_rectangle");
+ extgl_Extensions.NV_texture_shader = QueryExtension("GL_NV_texture_shader");
+ extgl_Extensions.NV_texture_shader2 = QueryExtension("GL_NV_texture_shader2");
+ extgl_Extensions.NV_texture_shader3 = QueryExtension("GL_NV_texture_shader3");
+ extgl_Extensions.NV_vertex_array_range = QueryExtension("GL_NV_vertex_array_range");
+ extgl_Extensions.NV_vertex_array_range2 = QueryExtension("GL_NV_vertex_array_range2");
+ extgl_Extensions.NV_vertex_program = QueryExtension("GL_NV_vertex_program");
+ extgl_Extensions.NV_vertex_program1_1 = QueryExtension("GL_NV_vertex_program1_1");
+ extgl_Extensions.NV_vertex_program2 = QueryExtension("GL_NV_vertex_program2");
+ extgl_Extensions.SGIS_generate_mipmap = QueryExtension("GL_SGIS_generate_mipmap");
+ extgl_Extensions.SGIX_depth_texture = QueryExtension("GL_SGIX_depth_texture");
+ extgl_Extensions.SGIX_shadow = QueryExtension("GL_SGIX_shadow");
+}
+
+
+/* extgl_Init the extensions and load all the functions */
+int extgl_Initialize()
+{
+ extgl_error = 0;
+ extgl_InitSupportedExtensions();
+
+ /* first load the etensions */
+ extgl_InitARBTransposeMatrix();
+ extgl_InitARBMultisample();
+ extgl_InitEXTCompiledVertexArray();
+ extgl_InitEXTSecondaryColor();
+ extgl_InitEXTFogCoord();
+ extgl_InitNVVertexArrayRange();
+ extgl_InitEXTPointParameters();
+ extgl_InitNVRegisterCombiners();
+ extgl_InitEXTVertexWeighting();
+ extgl_InitNVVertexProgram();
+ extgl_InitNVFence();
+ extgl_InitNVRegisterCombiners2();
+ extgl_InitATIPNTriangles();
+ extgl_InitARBPointParameters();
+ extgl_InitARBVertexBlend();
+ extgl_InitEXTMultiDrawArrays();
+ extgl_InitARBMatrixPalette();
+ extgl_InitEXTVertexShader();
+ extgl_InitATIEnvmapBumpmap();
+ extgl_InitATIFragmentShader();
+ extgl_InitATIElementArray();
+ extgl_InitATIVertexStreams();
+ extgl_InitATIVertexArrayObject();
+ extgl_InitNVOcclusionQuery();
+ extgl_InitNVPointSprite();
+ extgl_InitARBWindowPos();
+ extgl_InitARBTextureCompression();
+ extgl_InitEXTDrawRangeElements();
+ extgl_InitEXTStencilTwoSide();
+ extgl_InitARBVertexProgram();
+ extgl_InitEXTCullVertex();
+ extgl_InitEXTBlendFuncSeparate();
+ extgl_InitARBImaging();
+ extgl_InitARBMultitexture();
+ extgl_InitNVElementArray();
+ extgl_InitNVFragmentProgram();
+ extgl_InitNVPrimitiveRestart();
+ extgl_InitARBFragmentProgram();
+ extgl_InitATIDrawBuffers();
+
+ /* now load core opengl */
+ extgl_InitOpenGL1_2();
+ extgl_InitOpenGL1_3();
+ extgl_InitOpenGL1_4();
+
+ /* load WGL extensions */
+#ifdef _WIN32
+ extgl_InitializeWGL();
+#endif
+
+ SupportedExtensions = extgl_Extensions;
+ return extgl_error;
+}
+
+/* deprecated function please do not use it, use extgl_Initialize() instead */
+int glInitialize()
+{
+ return extgl_Initialize();
+}
+
+/* turn on the warning for the borland compiler*/
+#ifdef __BORLANDC__
+#pragma warn .8064
+#pragma warn .8065
+#endif /* __BORLANDC__ */
diff --git a/source/blender/freestyle/intern/rendering/extgl.h b/source/blender/freestyle/intern/rendering/extgl.h
new file mode 100755
index 00000000000..68c13dea3d2
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/extgl.h
@@ -0,0 +1,5106 @@
+/* Small parts were taken from glext.h, here's the lisence: */
+
+/*
+** License Applicability. Except to the extent portions of this file are
+** made subject to an alternative license as permitted in the SGI Free
+** Software License B, Version 1.1 (the "License"), the contents of this
+** file are subject only to the provisions of the License. You may not use
+** this file except in compliance with the License. You may obtain a copy
+** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+**
+** http://oss.sgi.com/projects/FreeB
+**
+** Note that, as provided in the License, the Software is distributed on an
+** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+**
+** Original Code. The Original Code is: OpenGL Sample Implementation,
+** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
+** Copyright in any portions created by third parties is as indicated
+** elsewhere herein. All Rights Reserved.
+**
+** Additional Notice Provisions: This software was created using the
+** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
+** not been independently verified as being compliant with the OpenGL(R)
+** version 1.2.1 Specification.
+*/
+
+/* Most parts copyright (c) 2001-2002 Lev Povalahev under this lisence: */
+
+/* ----------------------------------------------------------------------------
+Copyright (c) 2002, Lev Povalahev
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * The name of the author may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+------------------------------------------------------------------------------*/
+/*
+ GL_draw_range_elements support added by Benjamin Karaban
+
+ Lev Povalahev contact information:
+
+ levp@gmx.net
+
+ http://www.uni-karlsruhe.de/~uli2/
+*/
+/* These extensions are supported:
+GL_ARB_depth_texture
+GL_ARB_fragment_program
+GL_ARB_imaging
+GL_ARB_matrix_palette
+GL_ARB_multisample
+GL_ARB_multitexture
+GL_ARB_point_parameters
+GL_ARB_shadow
+GL_ARB_shadow_ambient
+GL_ARB_texture_compression
+GL_ARB_texture_env_add
+GL_ARB_texture_env_dot3
+GL_ARB_texture_env_combine
+GL_ARB_texture_env_crossbar
+GL_ARB_texture_border_clamp
+GL_ARB_texture_cube_map
+GL_ARB_texture_mirrored_repeat
+GL_ARB_transpose_matrix
+GL_ARB_vertex_blend
+GL_ARB_vertex_program
+GL_ARB_window_pos
+GL_EXT_abgr
+GL_EXT_bgra
+GL_EXT_blend_function_separate
+GL_EXT_compiled_vertex_array
+GL_EXT_cull_vertex
+GL_EXT_draw_range_elements
+GL_EXT_fog_coord
+GL_EXT_multi_draw_arrays
+GL_EXT_point_parameters
+GL_EXT_secondary_color
+GL_EXT_separate_specular_color
+GL_EXT_shadow_funcs
+GL_EXT_stencil_two_side
+GL_EXT_stencil_wrap
+GL_EXT_texture_compression_s3tc
+GL_EXT_texture_filter_anisotropic
+GL_EXT_texture_lod_bias
+GL_EXT_vertex_shader
+GL_EXT_vertex_weighting
+GL_ATI_element_array
+GL_ATI_envmap_bumpmap
+GL_ATI_fragment_shader
+GL_ATI_pn_triangles
+GL_ATI_text_fragment_shader
+GL_ATI_texture_mirror_once
+GL_ATI_vertex_array_object;
+GL_ATI_vertex_streams
+GL_ATIX_point_sprites
+GL_ATIX_texture_env_route
+GL_HP_occlusion_test
+GL_NV_blend_square
+GL_NV_copy_depth_to_color
+GL_NV_depth_clamp
+GL_NV_element_array
+GL_NV_evaluators
+GL_NV_fence
+GL_NV_float_buffer
+GL_NV_fog_distance
+GL_NV_fragment_program
+GL_NV_light_max_exponent
+GL_NV_occlusion_query
+GL_NV_packed_depth_stencil
+GL_NV_point_sprite
+GL_NV_primitive_restart
+GL_NV_register_combiners
+GL_NV_register_combiners2
+GL_NV_texgen_reflection
+GL_NV_texture_env_combine4
+GL_NV_texture_rectangle
+GL_NV_texture_shader
+GL_NV_texture_shader2
+GL_NV_texture_shader3
+GL_NV_vertex_array_range
+GL_NV_vertex_array_range2
+GL_NV_vertex_program
+GL_NV_vertex_program1_1
+GL_NV_vertex_program2
+GL_SGIS_generate_mipmap
+GL_SGIX_shadow
+GL_SGIX_depth_texture
+WGL_ARB_buffer_region
+WGL_ARB_extensions_string
+WGL_ARB_make_current_read;
+WGL_ARB_multisample
+WGL_ARB_pbuffer
+WGL_ARB_pixel_format
+WGL_ARB_render_texture
+WGL_EXT_extensions_string
+WGL_EXT_swap_control
+WGL_NV_render_depth_texture
+WGL_NV_render_texture_rectangle
+
+// Added -ec. Some of these are still proprietary, so do not
+// distribute.
+
+EXT_texture_rectangle
+ATI_draw_buffers
+ATI_pixel_format_float
+ATI_texture_float
+*/
+#ifndef __EXTGL_H__
+#define __EXTGL_H__
+
+#include "../system/FreestyleConfig.h"
+
+#if defined(_WIN32) && !defined(APIENTRY)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#define __glext_h_
+#define __GLEXT_H_
+#define __gl_h_
+#define __GL_H__
+
+#include <string.h>
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+
+#ifndef _WIN32
+#define GLAPI extern
+#define GLAPIENTRY
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef __MACH__
+/* OpenGL 1.1 definition */
+
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef signed char GLbyte;
+typedef short GLshort;
+typedef int GLint;
+typedef int GLsizei;
+typedef unsigned char GLubyte;
+typedef unsigned short GLushort;
+typedef unsigned int GLuint;
+typedef float GLfloat;
+typedef float GLclampf;
+typedef double GLdouble;
+typedef double GLclampd;
+typedef void GLvoid;
+
+#endif
+
+#ifndef _WIN32
+#ifndef __MACH__
+#include <GL/glx.h>
+#endif
+#endif /* _WIN32 */
+
+/* for mingw compatibility */
+typedef void (*_GLfuncptr)();
+
+#define GL_VERSION_1_1 1
+#define GL_ACCUM 0x0100
+#define GL_LOAD 0x0101
+#define GL_RETURN 0x0102
+#define GL_MULT 0x0103
+#define GL_ADD 0x0104
+#define GL_NEVER 0x0200
+#define GL_LESS 0x0201
+#define GL_EQUAL 0x0202
+#define GL_LEQUAL 0x0203
+#define GL_GREATER 0x0204
+#define GL_NOTEQUAL 0x0205
+#define GL_GEQUAL 0x0206
+#define GL_ALWAYS 0x0207
+#define GL_CURRENT_BIT 0x00000001
+#define GL_POINT_BIT 0x00000002
+#define GL_LINE_BIT 0x00000004
+#define GL_POLYGON_BIT 0x00000008
+#define GL_POLYGON_STIPPLE_BIT 0x00000010
+#define GL_PIXEL_MODE_BIT 0x00000020
+#define GL_LIGHTING_BIT 0x00000040
+#define GL_FOG_BIT 0x00000080
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_ACCUM_BUFFER_BIT 0x00000200
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_VIEWPORT_BIT 0x00000800
+#define GL_TRANSFORM_BIT 0x00001000
+#define GL_ENABLE_BIT 0x00002000
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#define GL_HINT_BIT 0x00008000
+#define GL_EVAL_BIT 0x00010000
+#define GL_LIST_BIT 0x00020000
+#define GL_TEXTURE_BIT 0x00040000
+#define GL_SCISSOR_BIT 0x00080000
+#define GL_ALL_ATTRIB_BITS 0x000fffff
+#define GL_POINTS 0x0000
+#define GL_LINES 0x0001
+#define GL_LINE_LOOP 0x0002
+#define GL_LINE_STRIP 0x0003
+#define GL_TRIANGLES 0x0004
+#define GL_TRIANGLE_STRIP 0x0005
+#define GL_TRIANGLE_FAN 0x0006
+#define GL_QUADS 0x0007
+#define GL_QUAD_STRIP 0x0008
+#define GL_POLYGON 0x0009
+#define GL_ZERO 0
+#define GL_ONE 1
+#define GL_SRC_COLOR 0x0300
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#define GL_SRC_ALPHA 0x0302
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#define GL_DST_ALPHA 0x0304
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#define GL_DST_COLOR 0x0306
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#define GL_SRC_ALPHA_SATURATE 0x0308
+#define GL_TRUE 1
+#define GL_FALSE 0
+#define GL_CLIP_PLANE0 0x3000
+#define GL_CLIP_PLANE1 0x3001
+#define GL_CLIP_PLANE2 0x3002
+#define GL_CLIP_PLANE3 0x3003
+#define GL_CLIP_PLANE4 0x3004
+#define GL_CLIP_PLANE5 0x3005
+#define GL_BYTE 0x1400
+#define GL_UNSIGNED_BYTE 0x1401
+#define GL_SHORT 0x1402
+#define GL_UNSIGNED_SHORT 0x1403
+#define GL_INT 0x1404
+#define GL_UNSIGNED_INT 0x1405
+#define GL_FLOAT 0x1406
+#define GL_2_BYTES 0x1407
+#define GL_3_BYTES 0x1408
+#define GL_4_BYTES 0x1409
+#define GL_DOUBLE 0x140A
+#define GL_NONE 0
+#define GL_FRONT_LEFT 0x0400
+#define GL_FRONT_RIGHT 0x0401
+#define GL_BACK_LEFT 0x0402
+#define GL_BACK_RIGHT 0x0403
+#define GL_FRONT 0x0404
+#define GL_BACK 0x0405
+#define GL_LEFT 0x0406
+#define GL_RIGHT 0x0407
+#define GL_FRONT_AND_BACK 0x0408
+#define GL_AUX0 0x0409
+#define GL_AUX1 0x040A
+#define GL_AUX2 0x040B
+#define GL_AUX3 0x040C
+#define GL_NO_ERROR 0
+#define GL_INVALID_ENUM 0x0500
+#define GL_INVALID_VALUE 0x0501
+#define GL_INVALID_OPERATION 0x0502
+#define GL_STACK_OVERFLOW 0x0503
+#define GL_STACK_UNDERFLOW 0x0504
+#define GL_OUT_OF_MEMORY 0x0505
+#define GL_2D 0x0600
+#define GL_3D 0x0601
+#define GL_3D_COLOR 0x0602
+#define GL_3D_COLOR_TEXTURE 0x0603
+#define GL_4D_COLOR_TEXTURE 0x0604
+#define GL_PASS_THROUGH_TOKEN 0x0700
+#define GL_POINT_TOKEN 0x0701
+#define GL_LINE_TOKEN 0x0702
+#define GL_POLYGON_TOKEN 0x0703
+#define GL_BITMAP_TOKEN 0x0704
+#define GL_DRAW_PIXEL_TOKEN 0x0705
+#define GL_COPY_PIXEL_TOKEN 0x0706
+#define GL_LINE_RESET_TOKEN 0x0707
+#define GL_EXP 0x0800
+#define GL_EXP2 0x0801
+#define GL_CW 0x0900
+#define GL_CCW 0x0901
+#define GL_COEFF 0x0A00
+#define GL_ORDER 0x0A01
+#define GL_DOMAIN 0x0A02
+#define GL_CURRENT_COLOR 0x0B00
+#define GL_CURRENT_INDEX 0x0B01
+#define GL_CURRENT_NORMAL 0x0B02
+#define GL_CURRENT_TEXTURE_COORDS 0x0B03
+#define GL_CURRENT_RASTER_COLOR 0x0B04
+#define GL_CURRENT_RASTER_INDEX 0x0B05
+#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
+#define GL_CURRENT_RASTER_POSITION 0x0B07
+#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
+#define GL_CURRENT_RASTER_DISTANCE 0x0B09
+#define GL_POINT_SMOOTH 0x0B10
+#define GL_POINT_SIZE 0x0B11
+#define GL_POINT_SIZE_RANGE 0x0B12
+#define GL_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_LINE_SMOOTH 0x0B20
+#define GL_LINE_WIDTH 0x0B21
+#define GL_LINE_WIDTH_RANGE 0x0B22
+#define GL_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_LINE_STIPPLE 0x0B24
+#define GL_LINE_STIPPLE_PATTERN 0x0B25
+#define GL_LINE_STIPPLE_REPEAT 0x0B26
+#define GL_LIST_MODE 0x0B30
+#define GL_MAX_LIST_NESTING 0x0B31
+#define GL_LIST_BASE 0x0B32
+#define GL_LIST_INDEX 0x0B33
+#define GL_POLYGON_MODE 0x0B40
+#define GL_POLYGON_SMOOTH 0x0B41
+#define GL_POLYGON_STIPPLE 0x0B42
+#define GL_EDGE_FLAG 0x0B43
+#define GL_CULL_FACE 0x0B44
+#define GL_CULL_FACE_MODE 0x0B45
+#define GL_FRONT_FACE 0x0B46
+#define GL_LIGHTING 0x0B50
+#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
+#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
+#define GL_LIGHT_MODEL_AMBIENT 0x0B53
+#define GL_SHADE_MODEL 0x0B54
+#define GL_COLOR_MATERIAL_FACE 0x0B55
+#define GL_COLOR_MATERIAL_PARAMETER 0x0B56
+#define GL_COLOR_MATERIAL 0x0B57
+#define GL_FOG 0x0B60
+#define GL_FOG_INDEX 0x0B61
+#define GL_FOG_DENSITY 0x0B62
+#define GL_FOG_START 0x0B63
+#define GL_FOG_END 0x0B64
+#define GL_FOG_MODE 0x0B65
+#define GL_FOG_COLOR 0x0B66
+#define GL_DEPTH_RANGE 0x0B70
+#define GL_DEPTH_TEST 0x0B71
+#define GL_DEPTH_WRITEMASK 0x0B72
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#define GL_DEPTH_FUNC 0x0B74
+#define GL_ACCUM_CLEAR_VALUE 0x0B80
+#define GL_STENCIL_TEST 0x0B90
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#define GL_STENCIL_FUNC 0x0B92
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#define GL_STENCIL_FAIL 0x0B94
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#define GL_STENCIL_REF 0x0B97
+#define GL_STENCIL_WRITEMASK 0x0B98
+#define GL_MATRIX_MODE 0x0BA0
+#define GL_NORMALIZE 0x0BA1
+#define GL_VIEWPORT 0x0BA2
+#define GL_MODELVIEW_STACK_DEPTH 0x0BA3
+#define GL_PROJECTION_STACK_DEPTH 0x0BA4
+#define GL_TEXTURE_STACK_DEPTH 0x0BA5
+#define GL_MODELVIEW_MATRIX 0x0BA6
+#define GL_PROJECTION_MATRIX 0x0BA7
+#define GL_TEXTURE_MATRIX 0x0BA8
+#define GL_ATTRIB_STACK_DEPTH 0x0BB0
+#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
+#define GL_ALPHA_TEST 0x0BC0
+#define GL_ALPHA_TEST_FUNC 0x0BC1
+#define GL_ALPHA_TEST_REF 0x0BC2
+#define GL_DITHER 0x0BD0
+#define GL_BLEND_DST 0x0BE0
+#define GL_BLEND_SRC 0x0BE1
+#define GL_BLEND 0x0BE2
+#define GL_LOGIC_OP_MODE 0x0BF0
+#define GL_INDEX_LOGIC_OP 0x0BF1
+#define GL_COLOR_LOGIC_OP 0x0BF2
+#define GL_AUX_BUFFERS 0x0C00
+#define GL_DRAW_BUFFER 0x0C01
+#define GL_READ_BUFFER 0x0C02
+#define GL_SCISSOR_BOX 0x0C10
+#define GL_SCISSOR_TEST 0x0C11
+#define GL_INDEX_CLEAR_VALUE 0x0C20
+#define GL_INDEX_WRITEMASK 0x0C21
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#define GL_COLOR_WRITEMASK 0x0C23
+#define GL_INDEX_MODE 0x0C30
+#define GL_RGBA_MODE 0x0C31
+#define GL_DOUBLEBUFFER 0x0C32
+#define GL_STEREO 0x0C33
+#define GL_RENDER_MODE 0x0C40
+#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
+#define GL_POINT_SMOOTH_HINT 0x0C51
+#define GL_LINE_SMOOTH_HINT 0x0C52
+#define GL_POLYGON_SMOOTH_HINT 0x0C53
+#define GL_FOG_HINT 0x0C54
+#define GL_TEXTURE_GEN_S 0x0C60
+#define GL_TEXTURE_GEN_T 0x0C61
+#define GL_TEXTURE_GEN_R 0x0C62
+#define GL_TEXTURE_GEN_Q 0x0C63
+#define GL_PIXEL_MAP_I_TO_I 0x0C70
+#define GL_PIXEL_MAP_S_TO_S 0x0C71
+#define GL_PIXEL_MAP_I_TO_R 0x0C72
+#define GL_PIXEL_MAP_I_TO_G 0x0C73
+#define GL_PIXEL_MAP_I_TO_B 0x0C74
+#define GL_PIXEL_MAP_I_TO_A 0x0C75
+#define GL_PIXEL_MAP_R_TO_R 0x0C76
+#define GL_PIXEL_MAP_G_TO_G 0x0C77
+#define GL_PIXEL_MAP_B_TO_B 0x0C78
+#define GL_PIXEL_MAP_A_TO_A 0x0C79
+#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
+#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
+#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
+#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
+#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
+#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
+#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
+#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
+#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
+#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
+#define GL_UNPACK_SWAP_BYTES 0x0CF0
+#define GL_UNPACK_LSB_FIRST 0x0CF1
+#define GL_UNPACK_ROW_LENGTH 0x0CF2
+#define GL_UNPACK_SKIP_ROWS 0x0CF3
+#define GL_UNPACK_SKIP_PIXELS 0x0CF4
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#define GL_PACK_SWAP_BYTES 0x0D00
+#define GL_PACK_LSB_FIRST 0x0D01
+#define GL_PACK_ROW_LENGTH 0x0D02
+#define GL_PACK_SKIP_ROWS 0x0D03
+#define GL_PACK_SKIP_PIXELS 0x0D04
+#define GL_PACK_ALIGNMENT 0x0D05
+#define GL_MAP_COLOR 0x0D10
+#define GL_MAP_STENCIL 0x0D11
+#define GL_INDEX_SHIFT 0x0D12
+#define GL_INDEX_OFFSET 0x0D13
+#define GL_RED_SCALE 0x0D14
+#define GL_RED_BIAS 0x0D15
+#define GL_ZOOM_X 0x0D16
+#define GL_ZOOM_Y 0x0D17
+#define GL_GREEN_SCALE 0x0D18
+#define GL_GREEN_BIAS 0x0D19
+#define GL_BLUE_SCALE 0x0D1A
+#define GL_BLUE_BIAS 0x0D1B
+#define GL_ALPHA_SCALE 0x0D1C
+#define GL_ALPHA_BIAS 0x0D1D
+#define GL_DEPTH_SCALE 0x0D1E
+#define GL_DEPTH_BIAS 0x0D1F
+#define GL_MAX_EVAL_ORDER 0x0D30
+#define GL_MAX_LIGHTS 0x0D31
+#define GL_MAX_CLIP_PLANES 0x0D32
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#define GL_MAX_PIXEL_MAP_TABLE 0x0D34
+#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
+#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
+#define GL_MAX_NAME_STACK_DEPTH 0x0D37
+#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
+#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
+#define GL_SUBPIXEL_BITS 0x0D50
+#define GL_INDEX_BITS 0x0D51
+#define GL_RED_BITS 0x0D52
+#define GL_GREEN_BITS 0x0D53
+#define GL_BLUE_BITS 0x0D54
+#define GL_ALPHA_BITS 0x0D55
+#define GL_DEPTH_BITS 0x0D56
+#define GL_STENCIL_BITS 0x0D57
+#define GL_ACCUM_RED_BITS 0x0D58
+#define GL_ACCUM_GREEN_BITS 0x0D59
+#define GL_ACCUM_BLUE_BITS 0x0D5A
+#define GL_ACCUM_ALPHA_BITS 0x0D5B
+#define GL_NAME_STACK_DEPTH 0x0D70
+#define GL_AUTO_NORMAL 0x0D80
+#define GL_MAP1_COLOR_4 0x0D90
+#define GL_MAP1_INDEX 0x0D91
+#define GL_MAP1_NORMAL 0x0D92
+#define GL_MAP1_TEXTURE_COORD_1 0x0D93
+#define GL_MAP1_TEXTURE_COORD_2 0x0D94
+#define GL_MAP1_TEXTURE_COORD_3 0x0D95
+#define GL_MAP1_TEXTURE_COORD_4 0x0D96
+#define GL_MAP1_VERTEX_3 0x0D97
+#define GL_MAP1_VERTEX_4 0x0D98
+#define GL_MAP2_COLOR_4 0x0DB0
+#define GL_MAP2_INDEX 0x0DB1
+#define GL_MAP2_NORMAL 0x0DB2
+#define GL_MAP2_TEXTURE_COORD_1 0x0DB3
+#define GL_MAP2_TEXTURE_COORD_2 0x0DB4
+#define GL_MAP2_TEXTURE_COORD_3 0x0DB5
+#define GL_MAP2_TEXTURE_COORD_4 0x0DB6
+#define GL_MAP2_VERTEX_3 0x0DB7
+#define GL_MAP2_VERTEX_4 0x0DB8
+#define GL_MAP1_GRID_DOMAIN 0x0DD0
+#define GL_MAP1_GRID_SEGMENTS 0x0DD1
+#define GL_MAP2_GRID_DOMAIN 0x0DD2
+#define GL_MAP2_GRID_SEGMENTS 0x0DD3
+#define GL_TEXTURE_1D 0x0DE0
+#define GL_TEXTURE_2D 0x0DE1
+#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
+#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
+#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
+#define GL_SELECTION_BUFFER_POINTER 0x0DF3
+#define GL_SELECTION_BUFFER_SIZE 0x0DF4
+#define GL_TEXTURE_WIDTH 0x1000
+#define GL_TEXTURE_HEIGHT 0x1001
+#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
+#define GL_TEXTURE_BORDER_COLOR 0x1004
+#define GL_TEXTURE_BORDER 0x1005
+#define GL_DONT_CARE 0x1100
+#define GL_FASTEST 0x1101
+#define GL_NICEST 0x1102
+#define GL_LIGHT0 0x4000
+#define GL_LIGHT1 0x4001
+#define GL_LIGHT2 0x4002
+#define GL_LIGHT3 0x4003
+#define GL_LIGHT4 0x4004
+#define GL_LIGHT5 0x4005
+#define GL_LIGHT6 0x4006
+#define GL_LIGHT7 0x4007
+#define GL_AMBIENT 0x1200
+#define GL_DIFFUSE 0x1201
+#define GL_SPECULAR 0x1202
+#define GL_POSITION 0x1203
+#define GL_SPOT_DIRECTION 0x1204
+#define GL_SPOT_EXPONENT 0x1205
+#define GL_SPOT_CUTOFF 0x1206
+#define GL_CONSTANT_ATTENUATION 0x1207
+#define GL_LINEAR_ATTENUATION 0x1208
+#define GL_QUADRATIC_ATTENUATION 0x1209
+#define GL_COMPILE 0x1300
+#define GL_COMPILE_AND_EXECUTE 0x1301
+#define GL_CLEAR 0x1500
+#define GL_AND 0x1501
+#define GL_AND_REVERSE 0x1502
+#define GL_COPY 0x1503
+#define GL_AND_INVERTED 0x1504
+#define GL_NOOP 0x1505
+#define GL_XOR 0x1506
+#define GL_OR 0x1507
+#define GL_NOR 0x1508
+#define GL_EQUIV 0x1509
+#define GL_INVERT 0x150A
+#define GL_OR_REVERSE 0x150B
+#define GL_COPY_INVERTED 0x150C
+#define GL_OR_INVERTED 0x150D
+#define GL_NAND 0x150E
+#define GL_SET 0x150F
+#define GL_EMISSION 0x1600
+#define GL_SHININESS 0x1601
+#define GL_AMBIENT_AND_DIFFUSE 0x1602
+#define GL_COLOR_INDEXES 0x1603
+#define GL_MODELVIEW 0x1700
+#define GL_PROJECTION 0x1701
+#define GL_TEXTURE 0x1702
+#define GL_COLOR 0x1800
+#define GL_DEPTH 0x1801
+#define GL_STENCIL 0x1802
+#define GL_COLOR_INDEX 0x1900
+#define GL_STENCIL_INDEX 0x1901
+#define GL_DEPTH_COMPONENT 0x1902
+#define GL_RED 0x1903
+#define GL_GREEN 0x1904
+#define GL_BLUE 0x1905
+#define GL_ALPHA 0x1906
+#define GL_RGB 0x1907
+#define GL_RGBA 0x1908
+#define GL_LUMINANCE 0x1909
+#define GL_LUMINANCE_ALPHA 0x190A
+#define GL_BITMAP 0x1A00
+#define GL_POINT 0x1B00
+#define GL_LINE 0x1B01
+#define GL_FILL 0x1B02
+#define GL_RENDER 0x1C00
+#define GL_FEEDBACK 0x1C01
+#define GL_SELECT 0x1C02
+#define GL_FLAT 0x1D00
+#define GL_SMOOTH 0x1D01
+#define GL_KEEP 0x1E00
+#define GL_REPLACE 0x1E01
+#define GL_INCR 0x1E02
+#define GL_DECR 0x1E03
+#define GL_VENDOR 0x1F00
+#define GL_RENDERER 0x1F01
+#define GL_VERSION 0x1F02
+#define GL_EXTENSIONS 0x1F03
+#define GL_S 0x2000
+#define GL_T 0x2001
+#define GL_R 0x2002
+#define GL_Q 0x2003
+#define GL_MODULATE 0x2100
+#define GL_DECAL 0x2101
+#define GL_TEXTURE_ENV_MODE 0x2200
+#define GL_TEXTURE_ENV_COLOR 0x2201
+#define GL_TEXTURE_ENV 0x2300
+#define GL_EYE_LINEAR 0x2400
+#define GL_OBJECT_LINEAR 0x2401
+#define GL_SPHERE_MAP 0x2402
+#define GL_TEXTURE_GEN_MODE 0x2500
+#define GL_OBJECT_PLANE 0x2501
+#define GL_EYE_PLANE 0x2502
+#define GL_NEAREST 0x2600
+#define GL_LINEAR 0x2601
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#define GL_TEXTURE_WRAP_S 0x2802
+#define GL_TEXTURE_WRAP_T 0x2803
+#define GL_CLAMP 0x2900
+#define GL_REPEAT 0x2901
+#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
+#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
+#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#define GL_POLYGON_OFFSET_POINT 0x2A01
+#define GL_POLYGON_OFFSET_LINE 0x2A02
+#define GL_POLYGON_OFFSET_FILL 0x8037
+#define GL_ALPHA4 0x803B
+#define GL_ALPHA8 0x803C
+#define GL_ALPHA12 0x803D
+#define GL_ALPHA16 0x803E
+#define GL_LUMINANCE4 0x803F
+#define GL_LUMINANCE8 0x8040
+#define GL_LUMINANCE12 0x8041
+#define GL_LUMINANCE16 0x8042
+#define GL_LUMINANCE4_ALPHA4 0x8043
+#define GL_LUMINANCE6_ALPHA2 0x8044
+#define GL_LUMINANCE8_ALPHA8 0x8045
+#define GL_LUMINANCE12_ALPHA4 0x8046
+#define GL_LUMINANCE12_ALPHA12 0x8047
+#define GL_LUMINANCE16_ALPHA16 0x8048
+#define GL_INTENSITY 0x8049
+#define GL_INTENSITY4 0x804A
+#define GL_INTENSITY8 0x804B
+#define GL_INTENSITY12 0x804C
+#define GL_INTENSITY16 0x804D
+#define GL_R3_G3_B2 0x2A10
+#define GL_RGB4 0x804F
+#define GL_RGB5 0x8050
+#define GL_RGB8 0x8051
+#define GL_RGB10 0x8052
+#define GL_RGB12 0x8053
+#define GL_RGB16 0x8054
+#define GL_RGBA2 0x8055
+#define GL_RGBA4 0x8056
+#define GL_RGB5_A1 0x8057
+#define GL_RGBA8 0x8058
+#define GL_RGB10_A2 0x8059
+#define GL_RGBA12 0x805A
+#define GL_RGBA16 0x805B
+#define GL_TEXTURE_RED_SIZE 0x805C
+#define GL_TEXTURE_GREEN_SIZE 0x805D
+#define GL_TEXTURE_BLUE_SIZE 0x805E
+#define GL_TEXTURE_ALPHA_SIZE 0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE 0x8060
+#define GL_TEXTURE_INTENSITY_SIZE 0x8061
+#define GL_PROXY_TEXTURE_1D 0x8063
+#define GL_PROXY_TEXTURE_2D 0x8064
+#define GL_TEXTURE_PRIORITY 0x8066
+#define GL_TEXTURE_RESIDENT 0x8067
+#define GL_TEXTURE_BINDING_1D 0x8068
+#define GL_TEXTURE_BINDING_2D 0x8069
+#define GL_VERTEX_ARRAY 0x8074
+#define GL_NORMAL_ARRAY 0x8075
+#define GL_COLOR_ARRAY 0x8076
+#define GL_INDEX_ARRAY 0x8077
+#define GL_TEXTURE_COORD_ARRAY 0x8078
+#define GL_EDGE_FLAG_ARRAY 0x8079
+#define GL_VERTEX_ARRAY_SIZE 0x807A
+#define GL_VERTEX_ARRAY_TYPE 0x807B
+#define GL_VERTEX_ARRAY_STRIDE 0x807C
+#define GL_NORMAL_ARRAY_TYPE 0x807E
+#define GL_NORMAL_ARRAY_STRIDE 0x807F
+#define GL_COLOR_ARRAY_SIZE 0x8081
+#define GL_COLOR_ARRAY_TYPE 0x8082
+#define GL_COLOR_ARRAY_STRIDE 0x8083
+#define GL_INDEX_ARRAY_TYPE 0x8085
+#define GL_INDEX_ARRAY_STRIDE 0x8086
+#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
+#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
+#define GL_VERTEX_ARRAY_POINTER 0x808E
+#define GL_NORMAL_ARRAY_POINTER 0x808F
+#define GL_COLOR_ARRAY_POINTER 0x8090
+#define GL_INDEX_ARRAY_POINTER 0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
+#define GL_V2F 0x2A20
+#define GL_V3F 0x2A21
+#define GL_C4UB_V2F 0x2A22
+#define GL_C4UB_V3F 0x2A23
+#define GL_C3F_V3F 0x2A24
+#define GL_N3F_V3F 0x2A25
+#define GL_C4F_N3F_V3F 0x2A26
+#define GL_T2F_V3F 0x2A27
+#define GL_T4F_V4F 0x2A28
+#define GL_T2F_C4UB_V3F 0x2A29
+#define GL_T2F_C3F_V3F 0x2A2A
+#define GL_T2F_N3F_V3F 0x2A2B
+#define GL_T2F_C4F_N3F_V3F 0x2A2C
+#define GL_T4F_C4F_N3F_V4F 0x2A2D
+#define GL_LOGIC_OP GL_INDEX_LOGIC_OP
+#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT
+
+/* functions */
+
+extern void APIENTRY glAccum (GLenum op, GLfloat value);
+extern void APIENTRY glAlphaFunc (GLenum func, GLclampf ref);
+extern GLboolean APIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
+extern void APIENTRY glArrayElement (GLint i);
+extern void APIENTRY glBegin (GLenum mode);
+extern void APIENTRY glBindTexture (GLenum target, GLuint texture);
+extern void APIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
+extern void APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
+extern void APIENTRY glCallList (GLuint list);
+extern void APIENTRY glCallLists (GLsizei n, GLenum type, const GLvoid *lists);
+extern void APIENTRY glClear (GLbitfield mask);
+extern void APIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+extern void APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+extern void APIENTRY glClearDepth (GLclampd depth);
+extern void APIENTRY glClearIndex (GLfloat c);
+extern void APIENTRY glClearStencil (GLint s);
+extern void APIENTRY glClipPlane (GLenum plane, const GLdouble *equation);
+extern void APIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue);
+extern void APIENTRY glColor3bv (const GLbyte *v);
+extern void APIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue);
+extern void APIENTRY glColor3dv (const GLdouble *v);
+extern void APIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue);
+extern void APIENTRY glColor3fv (const GLfloat *v);
+extern void APIENTRY glColor3i (GLint red, GLint green, GLint blue);
+extern void APIENTRY glColor3iv (const GLint *v);
+extern void APIENTRY glColor3s (GLshort red, GLshort green, GLshort blue);
+extern void APIENTRY glColor3sv (const GLshort *v);
+extern void APIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
+extern void APIENTRY glColor3ubv (const GLubyte *v);
+extern void APIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue);
+extern void APIENTRY glColor3uiv (const GLuint *v);
+extern void APIENTRY glColor3us (GLushort red, GLushort green, GLushort blue);
+extern void APIENTRY glColor3usv (const GLushort *v);
+extern void APIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+extern void APIENTRY glColor4bv (const GLbyte *v);
+extern void APIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+extern void APIENTRY glColor4dv (const GLdouble *v);
+extern void APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+extern void APIENTRY glColor4fv (const GLfloat *v);
+extern void APIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
+extern void APIENTRY glColor4iv (const GLint *v);
+extern void APIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
+extern void APIENTRY glColor4sv (const GLshort *v);
+extern void APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+extern void APIENTRY glColor4ubv (const GLubyte *v);
+extern void APIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
+extern void APIENTRY glColor4uiv (const GLuint *v);
+extern void APIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
+extern void APIENTRY glColor4usv (const GLushort *v);
+extern void APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+extern void APIENTRY glColorMaterial (GLenum face, GLenum mode);
+extern void APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+extern void APIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
+extern void APIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+extern void APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+extern void APIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+extern void APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+extern void APIENTRY glCullFace (GLenum mode);
+extern void APIENTRY glDeleteLists (GLuint list, GLsizei range);
+extern void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
+extern void APIENTRY glDepthFunc (GLenum func);
+extern void APIENTRY glDepthMask (GLboolean flag);
+extern void APIENTRY glDepthRange (GLclampd zNear, GLclampd zFar);
+extern void APIENTRY glDisable (GLenum cap);
+extern void APIENTRY glDisableClientState (GLenum array);
+extern void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
+extern void APIENTRY glDrawBuffer (GLenum mode);
+extern void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
+extern void APIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+extern void APIENTRY glEdgeFlag (GLboolean flag);
+#ifndef __MACH__
+extern void APIENTRY glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer);
+#endif
+extern void APIENTRY glEdgeFlagv (const GLboolean *flag);
+extern void APIENTRY glEnable (GLenum cap);
+extern void APIENTRY glEnableClientState (GLenum array);
+extern void APIENTRY glEnd (void);
+extern void APIENTRY glEndList (void);
+extern void APIENTRY glEvalCoord1d (GLdouble u);
+extern void APIENTRY glEvalCoord1dv (const GLdouble *u);
+extern void APIENTRY glEvalCoord1f (GLfloat u);
+extern void APIENTRY glEvalCoord1fv (const GLfloat *u);
+extern void APIENTRY glEvalCoord2d (GLdouble u, GLdouble v);
+extern void APIENTRY glEvalCoord2dv (const GLdouble *u);
+extern void APIENTRY glEvalCoord2f (GLfloat u, GLfloat v);
+extern void APIENTRY glEvalCoord2fv (const GLfloat *u);
+extern void APIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
+extern void APIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+extern void APIENTRY glEvalPoint1 (GLint i);
+extern void APIENTRY glEvalPoint2 (GLint i, GLint j);
+extern void APIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
+extern void APIENTRY glFinish (void);
+extern void APIENTRY glFlush (void);
+extern void APIENTRY glFogf (GLenum pname, GLfloat param);
+extern void APIENTRY glFogfv (GLenum pname, const GLfloat *params);
+extern void APIENTRY glFogi (GLenum pname, GLint param);
+extern void APIENTRY glFogiv (GLenum pname, const GLint *params);
+extern void APIENTRY glFrontFace (GLenum mode);
+extern void APIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+extern GLuint APIENTRY glGenLists (GLsizei range);
+extern void APIENTRY glGenTextures (GLsizei n, GLuint *textures);
+extern void APIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
+extern void APIENTRY glGetClipPlane (GLenum plane, GLdouble *equation);
+extern void APIENTRY glGetDoublev (GLenum pname, GLdouble *params);
+extern GLenum APIENTRY glGetError (void);
+extern void APIENTRY glGetFloatv (GLenum pname, GLfloat *params);
+extern void APIENTRY glGetIntegerv (GLenum pname, GLint *params);
+extern void APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
+extern void APIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params);
+extern void APIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v);
+extern void APIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v);
+extern void APIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v);
+extern void APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
+extern void APIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
+extern void APIENTRY glGetPixelMapfv (GLenum map, GLfloat *values);
+extern void APIENTRY glGetPixelMapuiv (GLenum map, GLuint *values);
+extern void APIENTRY glGetPixelMapusv (GLenum map, GLushort *values);
+extern void APIENTRY glGetPointerv (GLenum pname, GLvoid* *params);
+extern void APIENTRY glGetPolygonStipple (GLubyte *mask);
+extern const GLubyte * APIENTRY glGetString (GLenum name);
+extern void APIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
+extern void APIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
+extern void APIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
+extern void APIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
+extern void APIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
+extern void APIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
+extern void APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
+extern void APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
+extern void APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
+extern void APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
+extern void APIENTRY glHint (GLenum target, GLenum mode);
+extern void APIENTRY glIndexMask (GLuint mask);
+extern void APIENTRY glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer);
+extern void APIENTRY glIndexd (GLdouble c);
+extern void APIENTRY glIndexdv (const GLdouble *c);
+extern void APIENTRY glIndexf (GLfloat c);
+extern void APIENTRY glIndexfv (const GLfloat *c);
+extern void APIENTRY glIndexi (GLint c);
+extern void APIENTRY glIndexiv (const GLint *c);
+extern void APIENTRY glIndexs (GLshort c);
+extern void APIENTRY glIndexsv (const GLshort *c);
+extern void APIENTRY glIndexub (GLubyte c);
+extern void APIENTRY glIndexubv (const GLubyte *c);
+extern void APIENTRY glInitNames (void);
+extern void APIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer);
+extern GLboolean APIENTRY glIsEnabled (GLenum cap);
+extern GLboolean APIENTRY glIsList (GLuint list);
+extern GLboolean APIENTRY glIsTexture (GLuint texture);
+extern void APIENTRY glLightModelf (GLenum pname, GLfloat param);
+extern void APIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
+extern void APIENTRY glLightModeli (GLenum pname, GLint param);
+extern void APIENTRY glLightModeliv (GLenum pname, const GLint *params);
+extern void APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
+extern void APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
+extern void APIENTRY glLighti (GLenum light, GLenum pname, GLint param);
+extern void APIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params);
+extern void APIENTRY glLineStipple (GLint factor, GLushort pattern);
+extern void APIENTRY glLineWidth (GLfloat width);
+extern void APIENTRY glListBase (GLuint base);
+extern void APIENTRY glLoadIdentity (void);
+extern void APIENTRY glLoadMatrixd (const GLdouble *m);
+extern void APIENTRY glLoadMatrixf (const GLfloat *m);
+extern void APIENTRY glLoadName (GLuint name);
+extern void APIENTRY glLogicOp (GLenum opcode);
+extern void APIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+extern void APIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+extern void APIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+extern void APIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+extern void APIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
+extern void APIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
+extern void APIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+extern void APIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+extern void APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
+extern void APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
+extern void APIENTRY glMateriali (GLenum face, GLenum pname, GLint param);
+extern void APIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params);
+extern void APIENTRY glMatrixMode (GLenum mode);
+extern void APIENTRY glMultMatrixd (const GLdouble *m);
+extern void APIENTRY glMultMatrixf (const GLfloat *m);
+extern void APIENTRY glNewList (GLuint list, GLenum mode);
+extern void APIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
+extern void APIENTRY glNormal3bv (const GLbyte *v);
+extern void APIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
+extern void APIENTRY glNormal3dv (const GLdouble *v);
+extern void APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
+extern void APIENTRY glNormal3fv (const GLfloat *v);
+extern void APIENTRY glNormal3i (GLint nx, GLint ny, GLint nz);
+extern void APIENTRY glNormal3iv (const GLint *v);
+extern void APIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz);
+extern void APIENTRY glNormal3sv (const GLshort *v);
+extern void APIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer);
+extern void APIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+extern void APIENTRY glPassThrough (GLfloat token);
+extern void APIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
+extern void APIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values);
+extern void APIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values);
+extern void APIENTRY glPixelStoref (GLenum pname, GLfloat param);
+extern void APIENTRY glPixelStorei (GLenum pname, GLint param);
+extern void APIENTRY glPixelTransferf (GLenum pname, GLfloat param);
+extern void APIENTRY glPixelTransferi (GLenum pname, GLint param);
+extern void APIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor);
+extern void APIENTRY glPointSize (GLfloat size);
+extern void APIENTRY glPolygonMode (GLenum face, GLenum mode);
+extern void APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
+extern void APIENTRY glPolygonStipple (const GLubyte *mask);
+extern void APIENTRY glPopAttrib (void);
+extern void APIENTRY glPopClientAttrib (void);
+extern void APIENTRY glPopMatrix (void);
+extern void APIENTRY glPopName (void);
+extern void APIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);
+extern void APIENTRY glPushAttrib (GLbitfield mask);
+extern void APIENTRY glPushClientAttrib (GLbitfield mask);
+extern void APIENTRY glPushMatrix (void);
+extern void APIENTRY glPushName (GLuint name);
+extern void APIENTRY glRasterPos2d (GLdouble x, GLdouble y);
+extern void APIENTRY glRasterPos2dv (const GLdouble *v);
+extern void APIENTRY glRasterPos2f (GLfloat x, GLfloat y);
+extern void APIENTRY glRasterPos2fv (const GLfloat *v);
+extern void APIENTRY glRasterPos2i (GLint x, GLint y);
+extern void APIENTRY glRasterPos2iv (const GLint *v);
+extern void APIENTRY glRasterPos2s (GLshort x, GLshort y);
+extern void APIENTRY glRasterPos2sv (const GLshort *v);
+extern void APIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
+extern void APIENTRY glRasterPos3dv (const GLdouble *v);
+extern void APIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
+extern void APIENTRY glRasterPos3fv (const GLfloat *v);
+extern void APIENTRY glRasterPos3i (GLint x, GLint y, GLint z);
+
+extern void APIENTRY glRasterPos3iv (const GLint *v);
+extern void APIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z);
+extern void APIENTRY glRasterPos3sv (const GLshort *v);
+extern void APIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+extern void APIENTRY glRasterPos4dv (const GLdouble *v);
+extern void APIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+extern void APIENTRY glRasterPos4fv (const GLfloat *v);
+extern void APIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
+extern void APIENTRY glRasterPos4iv (const GLint *v);
+extern void APIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
+extern void APIENTRY glRasterPos4sv (const GLshort *v);
+extern void APIENTRY glReadBuffer (GLenum mode);
+extern void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
+extern void APIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+extern void APIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2);
+extern void APIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+extern void APIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2);
+extern void APIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
+extern void APIENTRY glRectiv (const GLint *v1, const GLint *v2);
+extern void APIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+extern void APIENTRY glRectsv (const GLshort *v1, const GLshort *v2);
+extern GLint APIENTRY glRenderMode (GLenum mode);
+extern void APIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+extern void APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+extern void APIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z);
+extern void APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
+extern void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+extern void APIENTRY glSelectBuffer (GLsizei size, GLuint *buffer);
+extern void APIENTRY glShadeModel (GLenum mode);
+extern void APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
+extern void APIENTRY glStencilMask (GLuint mask);
+extern void APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
+extern void APIENTRY glTexCoord1d (GLdouble s);
+extern void APIENTRY glTexCoord1dv (const GLdouble *v);
+extern void APIENTRY glTexCoord1f (GLfloat s);
+extern void APIENTRY glTexCoord1fv (const GLfloat *v);
+extern void APIENTRY glTexCoord1i (GLint s);
+extern void APIENTRY glTexCoord1iv (const GLint *v);
+extern void APIENTRY glTexCoord1s (GLshort s);
+extern void APIENTRY glTexCoord1sv (const GLshort *v);
+extern void APIENTRY glTexCoord2d (GLdouble s, GLdouble t);
+extern void APIENTRY glTexCoord2dv (const GLdouble *v);
+extern void APIENTRY glTexCoord2f (GLfloat s, GLfloat t);
+extern void APIENTRY glTexCoord2fv (const GLfloat *v);
+extern void APIENTRY glTexCoord2i (GLint s, GLint t);
+extern void APIENTRY glTexCoord2iv (const GLint *v);
+extern void APIENTRY glTexCoord2s (GLshort s, GLshort t);
+extern void APIENTRY glTexCoord2sv (const GLshort *v);
+extern void APIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
+extern void APIENTRY glTexCoord3dv (const GLdouble *v);
+extern void APIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
+extern void APIENTRY glTexCoord3fv (const GLfloat *v);
+extern void APIENTRY glTexCoord3i (GLint s, GLint t, GLint r);
+extern void APIENTRY glTexCoord3iv (const GLint *v);
+extern void APIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r);
+extern void APIENTRY glTexCoord3sv (const GLshort *v);
+extern void APIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+extern void APIENTRY glTexCoord4dv (const GLdouble *v);
+extern void APIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+extern void APIENTRY glTexCoord4fv (const GLfloat *v);
+extern void APIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
+extern void APIENTRY glTexCoord4iv (const GLint *v);
+extern void APIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
+extern void APIENTRY glTexCoord4sv (const GLshort *v);
+extern void APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+extern void APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
+extern void APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
+extern void APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
+extern void APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
+extern void APIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param);
+extern void APIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params);
+extern void APIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param);
+extern void APIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params);
+extern void APIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param);
+extern void APIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params);
+#ifndef __MACH__
+extern void APIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+extern void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+#endif
+extern void APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
+extern void APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
+extern void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
+extern void APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
+extern void APIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+extern void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+extern void APIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z);
+extern void APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
+extern void APIENTRY glVertex2d (GLdouble x, GLdouble y);
+extern void APIENTRY glVertex2dv (const GLdouble *v);
+extern void APIENTRY glVertex2f (GLfloat x, GLfloat y);
+extern void APIENTRY glVertex2fv (const GLfloat *v);
+extern void APIENTRY glVertex2i (GLint x, GLint y);
+extern void APIENTRY glVertex2iv (const GLint *v);
+extern void APIENTRY glVertex2s (GLshort x, GLshort y);
+extern void APIENTRY glVertex2sv (const GLshort *v);
+extern void APIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z);
+extern void APIENTRY glVertex3dv (const GLdouble *v);
+extern void APIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z);
+extern void APIENTRY glVertex3fv (const GLfloat *v);
+extern void APIENTRY glVertex3i (GLint x, GLint y, GLint z);
+extern void APIENTRY glVertex3iv (const GLint *v);
+extern void APIENTRY glVertex3s (GLshort x, GLshort y, GLshort z);
+extern void APIENTRY glVertex3sv (const GLshort *v);
+extern void APIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+extern void APIENTRY glVertex4dv (const GLdouble *v);
+extern void APIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+extern void APIENTRY glVertex4fv (const GLfloat *v);
+extern void APIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w);
+extern void APIENTRY glVertex4iv (const GLint *v);
+extern void APIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
+extern void APIENTRY glVertex4sv (const GLshort *v);
+extern void APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+extern void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+
+/* OpenGL 1.2 */
+
+#ifndef GL_VERSION_1_2
+#define GL_ARB_imaging 1
+#define GL_VERSION_1_2 1
+#define GL_RESCALE_NORMAL 0x803A
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_BGR 0x80E0
+#define GL_BGRA 0x80E1
+#define GL_UNSIGNED_BYTE_3_3_2 0x8032
+#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+#define GL_UNSIGNED_INT_8_8_8_8 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+#define GL_UNSIGNED_INT_10_10_10_2 0x8036
+#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
+#define GL_SINGLE_COLOR 0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
+#define GL_TEXTURE_MIN_LOD 0x813A
+#define GL_TEXTURE_MAX_LOD 0x813B
+#define GL_TEXTURE_BASE_LEVEL 0x813C
+#define GL_TEXTURE_MAX_LEVEL 0x813D
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#define GL_PACK_SKIP_IMAGES 0x806B
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#define GL_TEXTURE_3D 0x806F
+#define GL_PROXY_TEXTURE_3D 0x8070
+#define GL_TEXTURE_DEPTH 0x8071
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#define GL_TEXTURE_BINDING_3D 0x806A
+#define GL_COLOR_TABLE 0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
+#define GL_PROXY_COLOR_TABLE 0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
+#define GL_COLOR_TABLE_SCALE 0x80D6
+#define GL_COLOR_TABLE_BIAS 0x80D7
+#define GL_COLOR_TABLE_FORMAT 0x80D8
+#define GL_COLOR_TABLE_WIDTH 0x80D9
+#define GL_COLOR_TABLE_RED_SIZE 0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
+#define GL_CONVOLUTION_1D 0x8010
+#define GL_CONVOLUTION_2D 0x8011
+#define GL_SEPARABLE_2D 0x8012
+#define GL_CONVOLUTION_BORDER_MODE 0x8013
+#define GL_CONVOLUTION_FILTER_SCALE 0x8014
+#define GL_CONVOLUTION_FILTER_BIAS 0x8015
+#define GL_REDUCE 0x8016
+#define GL_CONVOLUTION_FORMAT 0x8017
+#define GL_CONVOLUTION_WIDTH 0x8018
+#define GL_CONVOLUTION_HEIGHT 0x8019
+#define GL_MAX_CONVOLUTION_WIDTH 0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT 0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE 0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS 0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
+#define GL_CONSTANT_BORDER 0x8151
+#define GL_REPLICATE_BORDER 0x8153
+#define GL_CONVOLUTION_BORDER_COLOR 0x8154
+#define GL_COLOR_MATRIX 0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
+#define GL_HISTOGRAM 0x8024
+#define GL_PROXY_HISTOGRAM 0x8025
+#define GL_HISTOGRAM_WIDTH 0x8026
+#define GL_HISTOGRAM_FORMAT 0x8027
+#define GL_HISTOGRAM_RED_SIZE 0x8028
+#define GL_HISTOGRAM_GREEN_SIZE 0x8029
+#define GL_HISTOGRAM_BLUE_SIZE 0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE 0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
+#define GL_HISTOGRAM_SINK 0x802D
+#define GL_MINMAX 0x802E
+#define GL_MINMAX_FORMAT 0x802F
+#define GL_MINMAX_SINK 0x8030
+#define GL_TABLE_TOO_LARGE 0x8031
+#define GL_BLEND_EQUATION 0x8009
+#define GL_MIN 0x8007
+#define GL_MAX 0x8008
+#define GL_FUNC_ADD 0x8006
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_BLEND_COLOR 0x8005
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+
+typedef void (APIENTRY * glColorTablePROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table );
+typedef void (APIENTRY * glColorSubTablePROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data );
+typedef void (APIENTRY * glColorTableParameterivPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * glColorTableParameterfvPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * glCopyColorSubTablePROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width );
+typedef void (APIENTRY * glCopyColorTablePROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width );
+typedef void (APIENTRY * glGetColorTablePROC) (GLenum target, GLenum format, GLenum type, GLvoid *table );
+typedef void (APIENTRY * glGetColorTableParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRY * glGetColorTableParameterivPROC) (GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRY * glBlendEquationPROC) (GLenum mode );
+typedef void (APIENTRY * glBlendColorPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
+typedef void (APIENTRY * glHistogramPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink );
+typedef void (APIENTRY * glResetHistogramPROC) (GLenum target );
+typedef void (APIENTRY * glGetHistogramPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values );
+typedef void (APIENTRY * glGetHistogramParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRY * glGetHistogramParameterivPROC) (GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRY * glMinmaxPROC) (GLenum target, GLenum internalformat, GLboolean sink );
+typedef void (APIENTRY * glResetMinmaxPROC) (GLenum target );
+typedef void (APIENTRY * glGetMinmaxPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values );
+typedef void (APIENTRY * glGetMinmaxParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRY * glGetMinmaxParameterivPROC) (GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRY * glConvolutionFilter1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image );
+typedef void (APIENTRY * glConvolutionFilter2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image );
+typedef void (APIENTRY * glConvolutionParameterfPROC) (GLenum target, GLenum pname, GLfloat params );
+typedef void (APIENTRY * glConvolutionParameterfvPROC) (GLenum target, GLenum pname, const GLfloat *params );
+typedef void (APIENTRY * glConvolutionParameteriPROC) (GLenum target, GLenum pname, GLint params );
+typedef void (APIENTRY * glConvolutionParameterivPROC) (GLenum target, GLenum pname, const GLint *params );
+typedef void (APIENTRY * glCopyConvolutionFilter1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width );
+typedef void (APIENTRY * glCopyConvolutionFilter2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRY * glGetConvolutionFilterPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image );
+typedef void (APIENTRY * glGetConvolutionParameterfvPROC) (GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRY * glGetConvolutionParameterivPROC) (GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRY * glSeparableFilter2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column );
+typedef void (APIENTRY * glGetSeparableFilterPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span );
+typedef void (APIENTRY * glDrawRangeElementsPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
+typedef void (APIENTRY * glTexImage3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
+typedef void (APIENTRY * glTexSubImage3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * glCopyTexSubImage3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height );
+
+#ifdef _WIN32
+
+extern glBlendColorPROC glBlendColor;
+LIB_RENDERING_EXPORT
+extern glBlendEquationPROC glBlendEquation;
+extern glColorTablePROC glColorTable;
+extern glColorTableParameterfvPROC glColorTableParameterfv;
+extern glColorTableParameterivPROC glColorTableParameteriv;
+extern glCopyColorTablePROC glCopyColorTable;
+extern glGetColorTablePROC glGetColorTable;
+extern glGetColorTableParameterfvPROC glGetColorTableParameterfv;
+extern glGetColorTableParameterivPROC glGetColorTableParameteriv;
+extern glColorSubTablePROC glColorSubTable;
+extern glCopyColorSubTablePROC glCopyColorSubTable;
+extern glConvolutionFilter1DPROC glConvolutionFilter1D;
+extern glConvolutionFilter2DPROC glConvolutionFilter2D;
+extern glConvolutionParameterfPROC glConvolutionParameterf;
+extern glConvolutionParameterfvPROC glConvolutionParameterfv;
+extern glConvolutionParameteriPROC glConvolutionParameteri;
+extern glConvolutionParameterivPROC glConvolutionParameteriv;
+extern glCopyConvolutionFilter1DPROC glCopyConvolutionFilter1D;
+extern glCopyConvolutionFilter2DPROC glCopyConvolutionFilter2D;
+extern glGetConvolutionFilterPROC glGetConvolutionFilter;
+extern glGetConvolutionParameterfvPROC glGetConvolutionParameterfv;
+extern glGetConvolutionParameterivPROC glGetConvolutionParameteriv;
+extern glGetSeparableFilterPROC glGetSeparableFilter;
+extern glSeparableFilter2DPROC glSeparableFilter2D;
+extern glGetHistogramPROC glGetHistogram;
+extern glGetHistogramParameterfvPROC glGetHistogramParameterfv;
+extern glGetHistogramParameterivPROC glGetHistogramParameteriv;
+extern glGetMinmaxPROC glGetMinmax;
+extern glGetMinmaxParameterfvPROC glGetMinmaxParameterfv;
+extern glGetMinmaxParameterivPROC glGetMinmaxParameteriv;
+extern glHistogramPROC glHistogram;
+extern glMinmaxPROC glMinmax;
+extern glResetHistogramPROC glResetHistogram;
+extern glResetMinmaxPROC glResetMinmax;
+extern glDrawRangeElementsPROC glDrawRangeElements;
+extern glTexImage3DPROC glTexImage3D;
+extern glTexSubImage3DPROC glTexSubImage3D;
+extern glCopyTexSubImage3DPROC glCopyTexSubImage3D;
+
+#else
+
+extern void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table );
+extern void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data );
+extern void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params);
+extern void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params);
+extern void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width );
+extern void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width );
+extern void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table );
+extern void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params );
+extern void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params );
+extern void APIENTRY glBlendEquation (GLenum mode );
+extern void APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
+extern void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink );
+extern void APIENTRY glResetHistogram (GLenum target );
+extern void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values );
+extern void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params );
+extern void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params );
+extern void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink );
+extern void APIENTRY glResetMinmax (GLenum target );
+extern void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values );
+extern void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params );
+extern void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params );
+extern void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image );
+extern void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image );
+extern void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params );
+extern void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params );
+extern void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params );
+extern void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params );
+extern void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width );
+extern void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+extern void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image );
+extern void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params );
+extern void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params );
+extern void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column );
+extern void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span );
+extern void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
+extern void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
+extern void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+extern void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height );
+
+#endif /* WIN32 */
+
+#endif /* GL_VERSION_1_2 */
+
+/* OpenGL 1.3 */
+
+#ifndef GL_VERSION_1_3
+#define GL_VERSION_1_3 1
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
+#define GL_MAX_TEXTURE_UNITS 0x84E2
+
+#define GL_NORMAL_MAP 0x8511
+#define GL_REFLECTION_MAP 0x8512
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+
+#define GL_COMPRESSED_ALPHA 0x84E9
+#define GL_COMPRESSED_LUMINANCE 0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
+#define GL_COMPRESSED_INTENSITY 0x84EC
+#define GL_COMPRESSED_RGB 0x84ED
+#define GL_COMPRESSED_RGBA 0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+#define GL_TEXTURE_COMPRESSED 0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+
+#define GL_MULTISAMPLE 0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_MULTISAMPLE_BIT 0x20000000
+
+#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
+
+#define GL_COMBINE 0x8570
+#define GL_COMBINE_RGB 0x8571
+#define GL_COMBINE_ALPHA 0x8572
+#define GL_SOURCE0_RGB 0x8580
+#define GL_SOURCE1_RGB 0x8581
+#define GL_SOURCE2_RGB 0x8582
+#define GL_SOURCE0_ALPHA 0x8588
+#define GL_SOURCE1_ALPHA 0x8589
+#define GL_SOURCE2_ALPHA 0x858A
+#define GL_OPERAND0_RGB 0x8590
+#define GL_OPERAND1_RGB 0x8591
+#define GL_OPERAND2_RGB 0x8592
+#define GL_OPERAND0_ALPHA 0x8598
+#define GL_OPERAND1_ALPHA 0x8599
+#define GL_OPERAND2_ALPHA 0x859A
+#define GL_RGB_SCALE 0x8573
+#define GL_ADD_SIGNED 0x8574
+#define GL_INTERPOLATE 0x8575
+#define GL_SUBTRACT 0x84E7
+#define GL_CONSTANT 0x8576
+#define GL_PRIMARY_COLOR 0x8577
+#define GL_PREVIOUS 0x8578
+#define GL_DOT3_RGB 0x86AE
+#define GL_DOT3_RGBA 0x86AF
+#define GL_CLAMP_TO_BORDER 0x812D
+
+typedef void (APIENTRY * glActiveTexturePROC) (GLenum texture );
+typedef void (APIENTRY * glClientActiveTexturePROC) (GLenum texture );
+typedef void (APIENTRY * glCompressedTexImage1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexImage2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexImage3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glGetCompressedTexImagePROC) (GLenum target, GLint lod, GLvoid *img );
+typedef void (APIENTRY * glMultiTexCoord1dPROC) (GLenum target, GLdouble s );
+typedef void (APIENTRY * glMultiTexCoord1dvPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord1fPROC) (GLenum target, GLfloat s );
+typedef void (APIENTRY * glMultiTexCoord1fvPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord1iPROC) (GLenum target, GLint s );
+typedef void (APIENTRY * glMultiTexCoord1ivPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord1sPROC) (GLenum target, GLshort s );
+typedef void (APIENTRY * glMultiTexCoord1svPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord2dPROC) (GLenum target, GLdouble s, GLdouble t );
+typedef void (APIENTRY * glMultiTexCoord2dvPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord2fPROC) (GLenum target, GLfloat s, GLfloat t );
+typedef void (APIENTRY * glMultiTexCoord2fvPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord2iPROC) (GLenum target, GLint s, GLint t );
+typedef void (APIENTRY * glMultiTexCoord2ivPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord2sPROC) (GLenum target, GLshort s, GLshort t );
+typedef void (APIENTRY * glMultiTexCoord2svPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord3dPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r );
+typedef void (APIENTRY * glMultiTexCoord3dvPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord3fPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r );
+typedef void (APIENTRY * glMultiTexCoord3fvPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord3iPROC) (GLenum target, GLint s, GLint t, GLint r );
+typedef void (APIENTRY * glMultiTexCoord3ivPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord3sPROC) (GLenum target, GLshort s, GLshort t, GLshort r );
+typedef void (APIENTRY * glMultiTexCoord3svPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord4dPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );
+typedef void (APIENTRY * glMultiTexCoord4dvPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord4fPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
+typedef void (APIENTRY * glMultiTexCoord4fvPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord4iPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q );
+typedef void (APIENTRY * glMultiTexCoord4ivPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord4sPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );
+typedef void (APIENTRY * glMultiTexCoord4svPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glLoadTransposeMatrixdPROC) (const GLdouble m[16] );
+typedef void (APIENTRY * glLoadTransposeMatrixfPROC) (const GLfloat m[16] );
+typedef void (APIENTRY * glMultTransposeMatrixdPROC) (const GLdouble m[16] );
+typedef void (APIENTRY * glMultTransposeMatrixfPROC) (const GLfloat m[16] );
+typedef void (APIENTRY * glSampleCoveragePROC) (GLclampf value, GLboolean invert );
+
+#ifdef _WIN32
+
+extern glActiveTexturePROC glActiveTexture;
+extern glClientActiveTexturePROC glClientActiveTexture;
+extern glMultiTexCoord1dPROC glMultiTexCoord1d;
+extern glMultiTexCoord1dvPROC glMultiTexCoord1dv;
+extern glMultiTexCoord1fPROC glMultiTexCoord1f;
+extern glMultiTexCoord1fvPROC glMultiTexCoord1fv;
+extern glMultiTexCoord1iPROC glMultiTexCoord1i;
+extern glMultiTexCoord1ivPROC glMultiTexCoord1iv;
+extern glMultiTexCoord1sPROC glMultiTexCoord1s;
+extern glMultiTexCoord1svPROC glMultiTexCoord1sv;
+extern glMultiTexCoord2dPROC glMultiTexCoord2d;
+extern glMultiTexCoord2dvPROC glMultiTexCoord2dv;
+extern glMultiTexCoord2fPROC glMultiTexCoord2f;
+extern glMultiTexCoord2fvPROC glMultiTexCoord2fv;
+extern glMultiTexCoord2iPROC glMultiTexCoord2i;
+extern glMultiTexCoord2ivPROC glMultiTexCoord2iv;
+extern glMultiTexCoord2sPROC glMultiTexCoord2s;
+extern glMultiTexCoord2svPROC glMultiTexCoord2sv;
+extern glMultiTexCoord3dPROC glMultiTexCoord3d;
+extern glMultiTexCoord3dvPROC glMultiTexCoord3dv;
+extern glMultiTexCoord3fPROC glMultiTexCoord3f;
+extern glMultiTexCoord3fvPROC glMultiTexCoord3fv;
+extern glMultiTexCoord3iPROC glMultiTexCoord3i;
+extern glMultiTexCoord3ivPROC glMultiTexCoord3iv;
+extern glMultiTexCoord3sPROC glMultiTexCoord3s;
+extern glMultiTexCoord3svPROC glMultiTexCoord3sv;
+extern glMultiTexCoord4dPROC glMultiTexCoord4d;
+extern glMultiTexCoord4dvPROC glMultiTexCoord4dv;
+extern glMultiTexCoord4fPROC glMultiTexCoord4f;
+extern glMultiTexCoord4fvPROC glMultiTexCoord4fv;
+extern glMultiTexCoord4iPROC glMultiTexCoord4i;
+extern glMultiTexCoord4ivPROC glMultiTexCoord4iv;
+extern glMultiTexCoord4sPROC glMultiTexCoord4s;
+extern glMultiTexCoord4svPROC glMultiTexCoord4sv;
+extern glLoadTransposeMatrixfPROC glLoadTransposeMatrixf;
+extern glLoadTransposeMatrixdPROC glLoadTransposeMatrixd;
+extern glMultTransposeMatrixfPROC glMultTransposeMatrixf;
+extern glMultTransposeMatrixdPROC glMultTransposeMatrixd;
+extern glCompressedTexImage3DPROC glCompressedTexImage3D;
+extern glCompressedTexImage2DPROC glCompressedTexImage2D;
+extern glCompressedTexImage1DPROC glCompressedTexImage1D;
+extern glCompressedTexSubImage3DPROC glCompressedTexSubImage3D;
+extern glCompressedTexSubImage2DPROC glCompressedTexSubImage2D;
+extern glCompressedTexSubImage1DPROC glCompressedTexSubImage1D;
+extern glGetCompressedTexImagePROC glGetCompressedTexImage;
+extern glSampleCoveragePROC glSampleCoverage;
+
+#else
+
+extern void APIENTRY glActiveTexture (GLenum texture );
+extern void APIENTRY glClientActiveTexture (GLenum texture );
+extern void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data );
+extern void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
+extern void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
+extern void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data );
+extern void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
+extern void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );
+extern void APIENTRY glGetCompressedTexImage (GLenum target, GLint lod, GLvoid *img );
+extern void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s );
+extern void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v );
+extern void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s );
+extern void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v );
+extern void APIENTRY glMultiTexCoord1i (GLenum target, GLint s );
+extern void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v );
+extern void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s );
+extern void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v );
+extern void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t );
+extern void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v );
+extern void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t );
+extern void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v );
+extern void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t );
+extern void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v );
+extern void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t );
+extern void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v );
+extern void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r );
+extern void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v );
+extern void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r );
+extern void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v );
+extern void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r );
+extern void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v );
+extern void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r );
+extern void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v );
+extern void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );
+extern void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v );
+extern void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
+extern void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v );
+extern void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q );
+extern void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v );
+extern void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );
+extern void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v );
+extern void APIENTRY glLoadTransposeMatrixd (const GLdouble m[16] );
+extern void APIENTRY glLoadTransposeMatrixf (const GLfloat m[16] );
+extern void APIENTRY glMultTransposeMatrixd (const GLdouble m[16] );
+extern void APIENTRY glMultTransposeMatrixf (const GLfloat m[16] );
+extern void APIENTRY glSampleCoverage (GLclampf value, GLboolean invert );
+
+#endif /* WIN32 */
+
+#endif /* GL_VERSION_1_3 */
+
+/* OpenGL 1.4 */
+
+#ifndef GL_VERSION_1_4
+#define GL_VERSION_1_4
+
+/*#ifndef GL_VERSION_1_2
+#define GL_BLEND_EQUATION 0x8009
+#define GL_MIN 0x8007
+#define GL_MAX 0x8008
+#define GL_FUNC_ADD 0x8006
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_BLEND_COLOR 0x8005
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+#endif *//* GL_VERSION_1_2 */
+
+#define GL_GENERATE_MIPMAP 0x8191
+#define GL_GENERATE_MIPMAP_HINT 0x8192
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT24 0x81A6
+#define GL_DEPTH_COMPONENT32 0x81A7
+#define GL_TEXTURE_DEPTH_SIZE 0x884A
+#define GL_DEPTH_TEXTURE_MODE 0x884B
+#define GL_TEXTURE_COMPARE_MODE 0x884C
+#define GL_TEXTURE_COMPARE_FUNC 0x884D
+#define GL_COMPARE_R_TO_TEXTURE 0x884E
+#define GL_FOG_COORDINATE_SOURCE 0x8450
+#define GL_FOG_COORDINATE 0x8451
+#define GL_FRAGMENT_DEPTH 0x8452
+#define GL_CURRENT_FOG_COORDINATE 0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
+#define GL_FOG_COORDINATE_ARRAY 0x8457
+#define GL_POINT_SIZE_MIN 0x8126
+#define GL_POINT_SIZE_MAX 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+#define GL_POINT_DISTANCE_ATTENUATION 0x8129
+#define GL_COLOR_SUM 0x8458
+#define GL_CURRENT_SECONDARY_COLOR 0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
+#define GL_SECONDARY_COLOR_ARRAY 0x845E
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_INCR_WRAP 0x8507
+#define GL_DECR_WRAP 0x8508
+#define GL_TEXTURE_FILTER_CONTROL 0x8500
+#define GL_TEXTURE_LOD_BIAS 0x8501
+#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+#define GL_GL_MIRRORED_REPEAT 0x8370
+
+/*#ifndef GL_VERSION_1_2
+typedef void (APIENTRY * glBlendEquationPROC) (GLenum mode );
+typedef void (APIENTRY * glBlendColorPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
+#endif *//* GL_VERSION_1_2 */
+typedef void (APIENTRY * glFogCoordfPROC) (GLfloat coord);
+typedef void (APIENTRY * glFogCoordfvPROC) (const GLfloat *coord);
+typedef void (APIENTRY * glFogCoorddPROC) (GLdouble coord);
+typedef void (APIENTRY * glFogCoorddvPROC) (const GLdouble *coord);
+typedef void (APIENTRY * glFogCoordPointerPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * glMultiDrawArraysPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * glMultiDrawElementsPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
+typedef void (APIENTRY * glPointParameterfPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glPointParameterfvPROC) (GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glSecondaryColor3bPROC) (GLbyte red, GLbyte green, GLbyte blue);
+typedef void (APIENTRY * glSecondaryColor3bvPROC) (const GLbyte *v);
+typedef void (APIENTRY * glSecondaryColor3dPROC) (GLdouble red, GLdouble green, GLdouble blue);
+typedef void (APIENTRY * glSecondaryColor3dvPROC) (const GLdouble *v);
+typedef void (APIENTRY * glSecondaryColor3fPROC) (GLfloat red, GLfloat green, GLfloat blue);
+typedef void (APIENTRY * glSecondaryColor3fvPROC) (const GLfloat *v);
+typedef void (APIENTRY * glSecondaryColor3iPROC) (GLint red, GLint green, GLint blue);
+typedef void (APIENTRY * glSecondaryColor3ivPROC) (const GLint *v);
+typedef void (APIENTRY * glSecondaryColor3sPROC) (GLshort red, GLshort green, GLshort blue);
+typedef void (APIENTRY * glSecondaryColor3svPROC) (const GLshort *v);
+typedef void (APIENTRY * glSecondaryColor3ubPROC) (GLubyte red, GLubyte green, GLubyte blue);
+typedef void (APIENTRY * glSecondaryColor3ubvPROC) (const GLubyte *v);
+typedef void (APIENTRY * glSecondaryColor3uiPROC) (GLuint red, GLuint green, GLuint blue);
+typedef void (APIENTRY * glSecondaryColor3uivPROC) (const GLuint *v);
+typedef void (APIENTRY * glSecondaryColor3usPROC) (GLushort red, GLushort green, GLushort blue);
+typedef void (APIENTRY * glSecondaryColor3usvPROC) (const GLushort *v);
+typedef void (APIENTRY * glSecondaryColorPointerPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+typedef void (APIENTRY * glBlendFuncSeparatePROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (APIENTRY * glWindowPos2dPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRY * glWindowPos2fPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRY * glWindowPos2iPROC) (GLint x, GLint y);
+typedef void (APIENTRY * glWindowPos2sPROC) (GLshort x, GLshort y);
+typedef void (APIENTRY * glWindowPos2dvPROC) (const GLdouble *p);
+typedef void (APIENTRY * glWindowPos2fvPROC) (const GLfloat *p);
+typedef void (APIENTRY * glWindowPos2ivPROC) (const GLint *p);
+typedef void (APIENTRY * glWindowPos2svPROC) (const GLshort *p);
+typedef void (APIENTRY * glWindowPos3dPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glWindowPos3fPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glWindowPos3iPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRY * glWindowPos3sPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glWindowPos3dvPROC) (const GLdouble *p);
+typedef void (APIENTRY * glWindowPos3fvPROC) (const GLfloat *p);
+typedef void (APIENTRY * glWindowPos3ivPROC) (const GLint *p);
+typedef void (APIENTRY * glWindowPos3svPROC) (const GLshort *p);
+
+/*#ifndef GL_VERSION_1_2
+extern glBlendColorPROC glBlendColor;
+extern glBlendEquationPROC glBlendEquation;
+#endif *//* GL_VERSION_1_2 */
+
+#ifdef _WIN32
+
+extern glFogCoordfPROC glFogCoordf;
+extern glFogCoordfvPROC glFogCoordfv;
+extern glFogCoorddPROC glFogCoordd;
+extern glFogCoorddvPROC glFogCoorddv;
+extern glFogCoordPointerPROC glFogCoordPointer;
+extern glMultiDrawArraysPROC glMultiDrawArrays;
+extern glMultiDrawElementsPROC glMultiDrawElements;
+extern glPointParameterfPROC glPointParameterf;
+extern glPointParameterfvPROC glPointParameterfv;
+extern glSecondaryColor3bPROC glSecondaryColor3b;
+extern glSecondaryColor3bvPROC glSecondaryColor3bv;
+extern glSecondaryColor3dPROC glSecondaryColor3d;
+extern glSecondaryColor3dvPROC glSecondaryColor3dv;
+extern glSecondaryColor3fPROC glSecondaryColor3f;
+extern glSecondaryColor3fvPROC glSecondaryColor3fv;
+extern glSecondaryColor3iPROC glSecondaryColor3i;
+extern glSecondaryColor3ivPROC glSecondaryColor3iv;
+extern glSecondaryColor3sPROC glSecondaryColor3s;
+extern glSecondaryColor3svPROC glSecondaryColor3sv;
+extern glSecondaryColor3ubPROC glSecondaryColor3ub;
+extern glSecondaryColor3ubvPROC glSecondaryColor3ubv;
+extern glSecondaryColor3uiPROC glSecondaryColor3ui;
+extern glSecondaryColor3uivPROC glSecondaryColor3uiv;
+extern glSecondaryColor3usPROC glSecondaryColor3us;
+extern glSecondaryColor3usvPROC glSecondaryColor3usv;
+extern glSecondaryColorPointerPROC glSecondaryColorPointer;
+extern glBlendFuncSeparatePROC glBlendFuncSeparate;
+extern glWindowPos2dPROC glWindowPos2d;
+extern glWindowPos2fPROC glWindowPos2f;
+extern glWindowPos2iPROC glWindowPos2i;
+extern glWindowPos2sPROC glWindowPos2s;
+extern glWindowPos2dvPROC glWindowPos2dv;
+extern glWindowPos2fvPROC glWindowPos2fv;
+extern glWindowPos2ivPROC glWindowPos2iv;
+extern glWindowPos2svPROC glWindowPos2sv;
+extern glWindowPos3dPROC glWindowPos3d;
+extern glWindowPos3fPROC glWindowPos3f;
+extern glWindowPos3iPROC glWindowPos3i;
+extern glWindowPos3sPROC glWindowPos3s;
+extern glWindowPos3dvPROC glWindowPos3dv;
+extern glWindowPos3fvPROC glWindowPos3fv;
+extern glWindowPos3ivPROC glWindowPos3iv;
+extern glWindowPos3svPROC glWindowPos3sv;
+
+#else
+
+extern void APIENTRY glFogCoordf (GLfloat coord);
+extern void APIENTRY glFogCoordfv (const GLfloat *coord);
+extern void APIENTRY glFogCoordd (GLdouble coord);
+extern void APIENTRY glFogCoorddv (const GLdouble *coord);
+extern void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const GLvoid *pointer);
+extern void APIENTRY glMultiDrawArrays (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+extern void APIENTRY glMultiDrawElements (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
+extern void APIENTRY glPointParameterf (GLenum pname, GLfloat param);
+extern void APIENTRY glPointParameterfv (GLenum pname, GLfloat *params);
+extern void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue);
+extern void APIENTRY glSecondaryColor3bv (const GLbyte *v);
+extern void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue);
+extern void APIENTRY glSecondaryColor3dv (const GLdouble *v);
+extern void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue);
+extern void APIENTRY glSecondaryColor3fv (const GLfloat *v);
+extern void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue);
+extern void APIENTRY glSecondaryColor3iv (const GLint *v);
+extern void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue);
+extern void APIENTRY glSecondaryColor3sv (const GLshort *v);
+extern void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue);
+extern void APIENTRY glSecondaryColor3ubv (const GLubyte *v);
+extern void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue);
+extern void APIENTRY glSecondaryColor3uiv (const GLuint *v);
+extern void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue);
+extern void APIENTRY glSecondaryColor3usv (const GLushort *v);
+extern void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+extern void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+extern void APIENTRY glWindowPos2d (GLdouble x, GLdouble y);
+extern void APIENTRY glWindowPos2f (GLfloat x, GLfloat y);
+extern void APIENTRY glWindowPos2i (GLint x, GLint y);
+extern void APIENTRY glWindowPos2s (GLshort x, GLshort y);
+extern void APIENTRY glWindowPos2dv (const GLdouble *p);
+extern void APIENTRY glWindowPos2fv (const GLfloat *p);
+extern void APIENTRY glWindowPos2iv (const GLint *p);
+extern void APIENTRY glWindowPos2sv (const GLshort *p);
+extern void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z);
+extern void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z);
+extern void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z);
+extern void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z);
+extern void APIENTRY glWindowPos3dv (const GLdouble *p);
+extern void APIENTRY glWindowPos3fv (const GLfloat *p);
+extern void APIENTRY glWindowPos3iv (const GLint *p);
+extern void APIENTRY glWindowPos3sv (const GLshort *p);
+
+#endif /* WIN32 */
+
+#endif /* GL_VERSION_1_4 */
+
+/*-------------------------------------------------------------------*/
+/*------------EXTENSIONS---------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_MULTITEXTURE---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_multitexture
+#define GL_ARB_multitexture 1
+#define GL_TEXTURE0_ARB 0x84C0
+#define GL_TEXTURE1_ARB 0x84C1
+#define GL_TEXTURE2_ARB 0x84C2
+#define GL_TEXTURE3_ARB 0x84C3
+#define GL_TEXTURE4_ARB 0x84C4
+#define GL_TEXTURE5_ARB 0x84C5
+#define GL_TEXTURE6_ARB 0x84C6
+#define GL_TEXTURE7_ARB 0x84C7
+#define GL_TEXTURE8_ARB 0x84C8
+#define GL_TEXTURE9_ARB 0x84C9
+#define GL_TEXTURE10_ARB 0x84CA
+#define GL_TEXTURE11_ARB 0x84CB
+#define GL_TEXTURE12_ARB 0x84CC
+#define GL_TEXTURE13_ARB 0x84CD
+#define GL_TEXTURE14_ARB 0x84CE
+#define GL_TEXTURE15_ARB 0x84CF
+#define GL_TEXTURE16_ARB 0x84D0
+#define GL_TEXTURE17_ARB 0x84D1
+#define GL_TEXTURE18_ARB 0x84D2
+#define GL_TEXTURE19_ARB 0x84D3
+#define GL_TEXTURE20_ARB 0x84D4
+#define GL_TEXTURE21_ARB 0x84D5
+#define GL_TEXTURE22_ARB 0x84D6
+#define GL_TEXTURE23_ARB 0x84D7
+#define GL_TEXTURE24_ARB 0x84D8
+#define GL_TEXTURE25_ARB 0x84D9
+#define GL_TEXTURE26_ARB 0x84DA
+#define GL_TEXTURE27_ARB 0x84DB
+#define GL_TEXTURE28_ARB 0x84DC
+#define GL_TEXTURE29_ARB 0x84DD
+#define GL_TEXTURE30_ARB 0x84DE
+#define GL_TEXTURE31_ARB 0x84DF
+#define GL_ACTIVE_TEXTURE_ARB 0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+
+typedef void (APIENTRY * glActiveTextureARBPROC) (GLenum texture );
+typedef void (APIENTRY * glClientActiveTextureARBPROC) (GLenum texture );
+typedef void (APIENTRY * glMultiTexCoord1dARBPROC) (GLenum target, GLdouble s );
+typedef void (APIENTRY * glMultiTexCoord1dvARBPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord1fARBPROC) (GLenum target, GLfloat s );
+typedef void (APIENTRY * glMultiTexCoord1fvARBPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord1iARBPROC) (GLenum target, GLint s );
+typedef void (APIENTRY * glMultiTexCoord1ivARBPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord1sARBPROC) (GLenum target, GLshort s );
+typedef void (APIENTRY * glMultiTexCoord1svARBPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord2dARBPROC) (GLenum target, GLdouble s, GLdouble t );
+typedef void (APIENTRY * glMultiTexCoord2dvARBPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord2fARBPROC) (GLenum target, GLfloat s, GLfloat t );
+typedef void (APIENTRY * glMultiTexCoord2fvARBPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord2iARBPROC) (GLenum target, GLint s, GLint t );
+typedef void (APIENTRY * glMultiTexCoord2ivARBPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord2sARBPROC) (GLenum target, GLshort s, GLshort t );
+typedef void (APIENTRY * glMultiTexCoord2svARBPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord3dARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r );
+typedef void (APIENTRY * glMultiTexCoord3dvARBPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord3fARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r );
+typedef void (APIENTRY * glMultiTexCoord3fvARBPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord3iARBPROC) (GLenum target, GLint s, GLint t, GLint r );
+typedef void (APIENTRY * glMultiTexCoord3ivARBPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord3sARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r );
+typedef void (APIENTRY * glMultiTexCoord3svARBPROC) (GLenum target, const GLshort *v );
+typedef void (APIENTRY * glMultiTexCoord4dARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );
+typedef void (APIENTRY * glMultiTexCoord4dvARBPROC) (GLenum target, const GLdouble *v );
+typedef void (APIENTRY * glMultiTexCoord4fARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
+typedef void (APIENTRY * glMultiTexCoord4fvARBPROC) (GLenum target, const GLfloat *v );
+typedef void (APIENTRY * glMultiTexCoord4iARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q );
+typedef void (APIENTRY * glMultiTexCoord4ivARBPROC) (GLenum target, const GLint *v );
+typedef void (APIENTRY * glMultiTexCoord4sARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );
+typedef void (APIENTRY * glMultiTexCoord4svARBPROC) (GLenum target, const GLshort *v );
+
+#ifdef _WIN32
+
+extern glActiveTextureARBPROC glActiveTextureARB;
+extern glClientActiveTextureARBPROC glClientActiveTextureARB;
+extern glMultiTexCoord1dARBPROC glMultiTexCoord1dARB;
+extern glMultiTexCoord1dvARBPROC glMultiTexCoord1dvARB;
+extern glMultiTexCoord1fARBPROC glMultiTexCoord1fARB;
+extern glMultiTexCoord1fvARBPROC glMultiTexCoord1fvARB;
+extern glMultiTexCoord1iARBPROC glMultiTexCoord1iARB;
+extern glMultiTexCoord1ivARBPROC glMultiTexCoord1ivARB;
+extern glMultiTexCoord1sARBPROC glMultiTexCoord1sARB;
+extern glMultiTexCoord1svARBPROC glMultiTexCoord1svARB;
+extern glMultiTexCoord2dARBPROC glMultiTexCoord2dARB;
+extern glMultiTexCoord2dvARBPROC glMultiTexCoord2dvARB;
+extern glMultiTexCoord2fARBPROC glMultiTexCoord2fARB;
+extern glMultiTexCoord2fvARBPROC glMultiTexCoord2fvARB;
+extern glMultiTexCoord2iARBPROC glMultiTexCoord2iARB;
+extern glMultiTexCoord2ivARBPROC glMultiTexCoord2ivARB;
+extern glMultiTexCoord2sARBPROC glMultiTexCoord2sARB;
+extern glMultiTexCoord2svARBPROC glMultiTexCoord2svARB;
+extern glMultiTexCoord3dARBPROC glMultiTexCoord3dARB;
+extern glMultiTexCoord3dvARBPROC glMultiTexCoord3dvARB;
+extern glMultiTexCoord3fARBPROC glMultiTexCoord3fARB;
+extern glMultiTexCoord3fvARBPROC glMultiTexCoord3fvARB;
+extern glMultiTexCoord3iARBPROC glMultiTexCoord3iARB;
+extern glMultiTexCoord3ivARBPROC glMultiTexCoord3ivARB;
+extern glMultiTexCoord3sARBPROC glMultiTexCoord3sARB;
+extern glMultiTexCoord3svARBPROC glMultiTexCoord3svARB;
+extern glMultiTexCoord4dARBPROC glMultiTexCoord4dARB;
+extern glMultiTexCoord4dvARBPROC glMultiTexCoord4dvARB;
+extern glMultiTexCoord4fARBPROC glMultiTexCoord4fARB;
+extern glMultiTexCoord4fvARBPROC glMultiTexCoord4fvARB;
+extern glMultiTexCoord4iARBPROC glMultiTexCoord4iARB;
+extern glMultiTexCoord4ivARBPROC glMultiTexCoord4ivARB;
+extern glMultiTexCoord4sARBPROC glMultiTexCoord4sARB;
+extern glMultiTexCoord4svARBPROC glMultiTexCoord4svARB;
+
+#else
+
+extern void APIENTRY glActiveTextureARB (GLenum texture );
+extern void APIENTRY glClientActiveTextureARB (GLenum texture );
+extern void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s );
+extern void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v );
+extern void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s );
+extern void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v );
+extern void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s );
+extern void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v );
+extern void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s );
+extern void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v );
+extern void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t );
+extern void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v );
+extern void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t );
+extern void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v );
+extern void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t );
+extern void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v );
+extern void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t );
+extern void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v );
+extern void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r );
+extern void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v );
+extern void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r );
+extern void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v );
+extern void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r );
+extern void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v );
+extern void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r );
+extern void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v );
+extern void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );
+extern void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v );
+extern void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
+extern void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v );
+extern void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q );
+extern void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v );
+extern void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );
+extern void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v );
+
+#endif /* WIN32 */
+
+#endif /* GL_ARB_multitexture */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TRANSPOSE_MATRIX-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_transpose_matrix
+#define GL_ARB_transpose_matrix 1
+
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
+
+typedef void (APIENTRY * glLoadTransposeMatrixdARBPROC) (const GLdouble m[16] );
+typedef void (APIENTRY * glLoadTransposeMatrixfARBPROC) (const GLfloat m[16] );
+typedef void (APIENTRY * glMultTransposeMatrixdARBPROC) (const GLdouble m[16] );
+typedef void (APIENTRY * glMultTransposeMatrixfARBPROC) (const GLfloat m[16] );
+
+extern glLoadTransposeMatrixfARBPROC glLoadTransposeMatrixfARB;
+extern glLoadTransposeMatrixdARBPROC glLoadTransposeMatrixdARB;
+extern glMultTransposeMatrixfARBPROC glMultTransposeMatrixfARB;
+extern glMultTransposeMatrixdARBPROC glMultTransposeMatrixdARB;
+
+#endif /* GL_ARB_transpose_matrix */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_COMPRESSION--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_compression
+#define GL_ARB_texture_compression 1
+
+#define GL_COMPRESSED_ALPHA_ARB 0x84E9
+#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
+#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
+#define GL_COMPRESSED_RGB_ARB 0x84ED
+#define GL_COMPRESSED_RGBA_ARB 0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
+#define GL_TEXTURE_IMAGE_SIZE_ARB 0x86A0
+#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
+
+typedef void (APIENTRY * glCompressedTexImage1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexImage2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexImage3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glCompressedTexSubImage3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );
+typedef void (APIENTRY * glGetCompressedTexImageARBPROC) (GLenum target, GLint lod, GLvoid *img );
+
+extern glCompressedTexImage3DARBPROC glCompressedTexImage3DARB;
+extern glCompressedTexImage2DARBPROC glCompressedTexImage2DARB;
+extern glCompressedTexImage1DARBPROC glCompressedTexImage1DARB;
+extern glCompressedTexSubImage3DARBPROC glCompressedTexSubImage3DARB;
+extern glCompressedTexSubImage2DARBPROC glCompressedTexSubImage2DARB;
+extern glCompressedTexSubImage1DARBPROC glCompressedTexSubImage1DARB;
+extern glGetCompressedTexImageARBPROC glGetCompressedTexImageARB;
+
+#endif /* GL_ARB_texture_compression */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_CUBE_MAP-------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_cube_map
+#define GL_ARB_texture_cube_map 1
+
+#define GL_NORMAL_MAP_ARB 0x8511
+#define GL_REFLECTION_MAP_ARB 0x8512
+#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
+
+#endif /* GL_ARB_texture_cube_map */
+
+/*-------------------------------------------------------------------*/
+/*------------SGIX_SHADOW--------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_SGIX_shadow
+#define GL_SGIX_shadow 1
+
+#define GL_TEXTURE_COMPARE_SGIX 0x819A
+#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
+#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
+#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
+
+#endif /* GL_SGIX_shadow */
+
+/*-------------------------------------------------------------------*/
+/*------------SGIX_DEPTH_TEXTURE-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_SGIX_depth_texture
+#define GL_SGIX_depth_texture 1
+
+#define GL_DEPTH_COMPONENT16_SGIX 0x81A5
+#define GL_DEPTH_COMPONENT24_SGIX 0x81A6
+#define GL_DEPTH_COMPONENT32_SGIX 0x81A7
+
+#endif /* GL_SGIX_depth_texture */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_COMPILED_VERTEX_ARRAY------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_compiled_vertex_array
+#define GL_EXT_compiled_vertex_array 1
+
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
+
+typedef void (APIENTRY * glLockArraysEXTPROC) (GLint first, GLsizei count);
+typedef void (APIENTRY * glUnlockArraysEXTPROC) ();
+
+extern glLockArraysEXTPROC glLockArraysEXT;
+extern glUnlockArraysEXTPROC glUnlockArraysEXT;
+
+#endif /* GL_EXT_compiled_vertex_array */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_ENV_COMBINE--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_env_combine
+#define GL_ARB_texture_env_combine 1
+
+#define GL_COMBINE_ARB 0x8570
+#define GL_COMBINE_RGB_ARB 0x8571
+#define GL_COMBINE_ALPHA_ARB 0x8572
+#define GL_RGB_SCALE_ARB 0x8573
+#define GL_ADD_SIGNED_ARB 0x8574
+#define GL_INTERPOLATE_ARB 0x8575
+#define GL_CONSTANT_ARB 0x8576
+#define GL_PRIMARY_COLOR_ARB 0x8577
+#define GL_PREVIOUS_ARB 0x8578
+#define GL_SOURCE0_RGB_ARB 0x8580
+#define GL_SOURCE1_RGB_ARB 0x8581
+#define GL_SOURCE2_RGB_ARB 0x8582
+#define GL_SOURCE0_ALPHA_ARB 0x8588
+#define GL_SOURCE1_ALPHA_ARB 0x8589
+#define GL_SOURCE2_ALPHA_ARB 0x858A
+#define GL_OPERAND0_RGB_ARB 0x8590
+#define GL_OPERAND1_RGB_ARB 0x8591
+#define GL_OPERAND2_RGB_ARB 0x8592
+#define GL_OPERAND0_ALPHA_ARB 0x8598
+#define GL_OPERAND1_ALPHA_ARB 0x8599
+#define GL_OPERAND2_ALPHA_ARB 0x859A
+
+#endif /* GL_ARB_texture_env_combine */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_ENV_DOT3-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_env_dot3
+#define GL_ARB_texture_env_dot3 1
+
+#define GL_DOT3_RGB_ARB 0x86AE
+#define GL_DOT3_RGBA_ARB 0x86AF
+
+#endif /* GL_ARB_texture_env_dot3 */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_BORDER_CLAMP-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_border_clamp
+#define GL_ARB_texture_border_clamp 1
+
+#define GL_CLAMP_TO_BORDER_ARB 0x812D
+
+#endif /* GL_ARB_texture_border_clamp */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_ENV_ADD------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_env_add
+#define GL_ARB_texture_env_add 1
+
+
+#endif /* GL_ARB_texture_env_add */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_SECONDARY_COLOR------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_secondary_color
+#define GL_EXT_secondary_color 1
+
+#define GL_COLOR_SUM_EXT 0x8458
+#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
+#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
+
+typedef void (APIENTRY * glSecondaryColor3bEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
+typedef void (APIENTRY * glSecondaryColor3bvEXTPROC) (const GLbyte *v);
+typedef void (APIENTRY * glSecondaryColor3dEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
+typedef void (APIENTRY * glSecondaryColor3dvEXTPROC) (const GLdouble *v);
+typedef void (APIENTRY * glSecondaryColor3fEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
+typedef void (APIENTRY * glSecondaryColor3fvEXTPROC) (const GLfloat *v);
+typedef void (APIENTRY * glSecondaryColor3iEXTPROC) (GLint red, GLint green, GLint blue);
+typedef void (APIENTRY * glSecondaryColor3ivEXTPROC) (const GLint *v);
+typedef void (APIENTRY * glSecondaryColor3sEXTPROC) (GLshort red, GLshort green, GLshort blue);
+typedef void (APIENTRY * glSecondaryColor3svEXTPROC) (const GLshort *v);
+typedef void (APIENTRY * glSecondaryColor3ubEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
+typedef void (APIENTRY * glSecondaryColor3ubvEXTPROC) (const GLubyte *v);
+typedef void (APIENTRY * glSecondaryColor3uiEXTPROC) (GLuint red, GLuint green, GLuint blue);
+typedef void (APIENTRY * glSecondaryColor3uivEXTPROC) (const GLuint *v);
+typedef void (APIENTRY * glSecondaryColor3usEXTPROC) (GLushort red, GLushort green, GLushort blue);
+typedef void (APIENTRY * glSecondaryColor3usvEXTPROC) (const GLushort *v);
+typedef void (APIENTRY * glSecondaryColorPointerEXTPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+
+extern glSecondaryColor3bEXTPROC glSecondaryColor3bEXT;
+extern glSecondaryColor3bvEXTPROC glSecondaryColor3bvEXT;
+extern glSecondaryColor3dEXTPROC glSecondaryColor3dEXT;
+extern glSecondaryColor3dvEXTPROC glSecondaryColor3dvEXT;
+extern glSecondaryColor3fEXTPROC glSecondaryColor3fEXT;
+extern glSecondaryColor3fvEXTPROC glSecondaryColor3fvEXT;
+extern glSecondaryColor3iEXTPROC glSecondaryColor3iEXT;
+extern glSecondaryColor3ivEXTPROC glSecondaryColor3ivEXT;
+extern glSecondaryColor3sEXTPROC glSecondaryColor3sEXT;
+extern glSecondaryColor3svEXTPROC glSecondaryColor3svEXT;
+extern glSecondaryColor3ubEXTPROC glSecondaryColor3ubEXT;
+extern glSecondaryColor3ubvEXTPROC glSecondaryColor3ubvEXT;
+extern glSecondaryColor3uiEXTPROC glSecondaryColor3uiEXT;
+extern glSecondaryColor3uivEXTPROC glSecondaryColor3uivEXT;
+extern glSecondaryColor3usEXTPROC glSecondaryColor3usEXT;
+extern glSecondaryColor3usvEXTPROC glSecondaryColor3usvEXT;
+extern glSecondaryColorPointerEXTPROC glSecondaryColorPointerEXT;
+
+#endif /* GL_EXT_secondary_color */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_FOG_COORD------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_fog_coord
+#define GL_EXT_fog_coord 1
+
+#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+#define GL_FOG_COORDINATE_EXT 0x8451
+#define GL_FRAGMENT_DEPTH_EXT 0x8452
+#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+
+typedef void (APIENTRY * glFogCoordfEXTPROC) (GLfloat coord);
+typedef void (APIENTRY * glFogCoordfvEXTPROC) (const GLfloat *coord);
+typedef void (APIENTRY * glFogCoorddEXTPROC) (GLdouble coord);
+typedef void (APIENTRY * glFogCoorddvEXTPROC) (const GLdouble *coord);
+typedef void (APIENTRY * glFogCoordPointerEXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
+
+extern glFogCoordfEXTPROC glFogCoordfEXT;
+extern glFogCoordfvEXTPROC glFogCoordfvEXT;
+extern glFogCoorddEXTPROC glFogCoorddEXT;
+extern glFogCoorddvEXTPROC glFogCoorddvEXT;
+extern glFogCoordPointerEXTPROC glFogCoordPointerEXT;
+
+#endif /* GL_EXT_fog_coord */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_VERTEX_ARRAY_RANGE----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_array_range
+#define GL_NV_vertex_array_range 1
+
+#define GL_VERTEX_ARRAY_RANGE_NV 0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
+#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
+#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
+#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
+
+typedef void (APIENTRY * glFlushVertexArrayRangeNVPROC) (void);
+typedef void (APIENTRY * glVertexArrayRangeNVPROC) (GLsizei size, const GLvoid *pointer);
+
+extern glFlushVertexArrayRangeNVPROC glFlushVertexArrayRangeNV;
+extern glVertexArrayRangeNVPROC glVertexArrayRangeNV;
+
+#ifdef _WIN32
+
+typedef void * (APIENTRY * wglAllocateMemoryNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
+typedef void (APIENTRY * wglFreeMemoryNVPROC) (void *pointer);
+
+extern wglAllocateMemoryNVPROC wglAllocateMemoryNV;
+extern wglFreeMemoryNVPROC wglFreeMemoryNV;
+
+#else
+
+typedef void * (APIENTRY * glXAllocateMemoryNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
+typedef void (APIENTRY * glXFreeMemoryNVPROC) (void *pointer);
+
+extern glXAllocateMemoryNVPROC glXAllocateMemoryNV;
+extern glXFreeMemoryNVPROC glXFreeMemoryNV;
+
+#endif /* WIN32 */
+
+#endif /* GL_NV_vertex_array_range */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_VERTEX_ARRAY_RANGE2---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_array_range2
+#define GL_NV_vertex_array_range2 1
+
+#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
+
+#endif /* GL_NV_vertex_array_range2 */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_POINT_PARAMETERS-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_point_parameters
+#define GL_EXT_point_parameters 1
+
+#define GL_POINT_SIZE_MIN_EXT 0x8126
+#define GL_POINT_SIZE_MAX_EXT 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
+#define GL_DISTANCE_ATTENUATION_EXT 0x8129
+
+typedef void (APIENTRY * glPointParameterfEXTPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glPointParameterfvEXTPROC) (GLenum pname, const GLfloat *params);
+
+extern glPointParameterfEXTPROC glPointParameterfEXT;
+extern glPointParameterfvEXTPROC glPointParameterfvEXT;
+
+#endif /* GL_EXT_point_parameters */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_REGISTER_COMBINERS----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_register_combiners
+#define GL_NV_register_combiners 1
+
+#define GL_REGISTER_COMBINERS_NV 0x8522
+#define GL_COMBINER0_NV 0x8550
+#define GL_COMBINER1_NV 0x8551
+#define GL_COMBINER2_NV 0x8552
+#define GL_COMBINER3_NV 0x8553
+#define GL_COMBINER4_NV 0x8554
+#define GL_COMBINER5_NV 0x8555
+#define GL_COMBINER6_NV 0x8556
+#define GL_COMBINER7_NV 0x8557
+#define GL_VARIABLE_A_NV 0x8523
+#define GL_VARIABLE_B_NV 0x8524
+#define GL_VARIABLE_C_NV 0x8525
+#define GL_VARIABLE_D_NV 0x8526
+#define GL_VARIABLE_E_NV 0x8527
+#define GL_VARIABLE_F_NV 0x8528
+#define GL_VARIABLE_G_NV 0x8529
+#define GL_CONSTANT_COLOR0_NV 0x852A
+#define GL_CONSTANT_COLOR1_NV 0x852B
+#define GL_PRIMARY_COLOR_NV 0x852C
+#define GL_SECONDARY_COLOR_NV 0x852D
+#define GL_SPARE0_NV 0x852E
+#define GL_SPARE1_NV 0x852F
+#define GL_UNSIGNED_IDENTITY_NV 0x8536
+#define GL_UNSIGNED_INVERT_NV 0x8537
+#define GL_EXPAND_NORMAL_NV 0x8538
+#define GL_EXPAND_NEGATE_NV 0x8539
+#define GL_HALF_BIAS_NORMAL_NV 0x853A
+#define GL_HALF_BIAS_NEGATE_NV 0x853B
+#define GL_SIGNED_IDENTITY_NV 0x853C
+#define GL_SIGNED_NEGATE_NV 0x853D
+#define GL_E_TIMES_F_NV 0x8531
+#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
+#define GL_SCALE_BY_TWO_NV 0x853E
+#define GL_SCALE_BY_FOUR_NV 0x853F
+#define GL_SCALE_BY_ONE_HALF_NV 0x8540
+#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
+#define GL_DISCARD_NV 0x8530
+#define GL_COMBINER_INPUT_NV 0x8542
+#define GL_COMBINER_MAPPING_NV 0x8543
+#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
+#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
+#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
+#define GL_COMBINER_MUX_SUM_NV 0x8547
+#define GL_COMBINER_SCALE_NV 0x8548
+#define GL_COMBINER_BIAS_NV 0x8549
+#define GL_COMBINER_AB_OUTPUT_NV 0x854A
+#define GL_COMBINER_CD_OUTPUT_NV 0x854B
+#define GL_COMBINER_SUM_OUTPUT_NV 0x854C
+#define GL_NUM_GENERAL_COMBINERS_NV 0x854E
+#define GL_COLOR_SUM_CLAMP_NV 0x854F
+#define GL_MAX_GENERAL_COMBINERS_NV 0x854D
+
+typedef void (APIENTRY * glCombinerParameterfvNVPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * glCombinerParameterfNVPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glCombinerParameterivNVPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRY * glCombinerParameteriNVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * glCombinerInputNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRY * glCombinerOutputNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+typedef void (APIENTRY * glFinalCombinerInputNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRY * glGetCombinerInputParameterfvNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetCombinerInputParameterivNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetCombinerOutputParameterfvNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetCombinerOutputParameterivNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetFinalCombinerInputParameterfvNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetFinalCombinerInputParameterivNVPROC) (GLenum variable, GLenum pname, GLint *params);
+
+extern glCombinerParameterfvNVPROC glCombinerParameterfvNV;
+extern glCombinerParameterfNVPROC glCombinerParameterfNV;
+extern glCombinerParameterivNVPROC glCombinerParameterivNV;
+extern glCombinerParameteriNVPROC glCombinerParameteriNV;
+extern glCombinerInputNVPROC glCombinerInputNV;
+extern glCombinerOutputNVPROC glCombinerOutputNV;
+extern glFinalCombinerInputNVPROC glFinalCombinerInputNV;
+extern glGetCombinerInputParameterfvNVPROC glGetCombinerInputParameterfvNV;
+extern glGetCombinerInputParameterivNVPROC glGetCombinerInputParameterivNV;
+extern glGetCombinerOutputParameterfvNVPROC glGetCombinerOutputParameterfvNV;
+extern glGetCombinerOutputParameterivNVPROC glGetCombinerOutputParameterivNV;
+extern glGetFinalCombinerInputParameterfvNVPROC glGetFinalCombinerInputParameterfvNV;
+extern glGetFinalCombinerInputParameterivNVPROC glGetFinalCombinerInputParameterivNV;
+
+#endif /* GL_NV_register_combiners */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_MULTISAMPLE----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_multisample
+#define GL_ARB_multisample 1
+
+#define GL_MULTISAMPLE_ARB 0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
+#define GL_SAMPLE_COVERAGE_ARB 0x80A0
+#define GL_SAMPLE_BUFFERS_ARB 0x80A8
+#define GL_SAMPLES_ARB 0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
+#define GL_MULTISAMPLE_BIT_ARB 0x20000000
+
+typedef void (APIENTRY * glSampleCoverageARBPROC) (GLclampf value, GLboolean invert );
+
+extern glSampleCoverageARBPROC glSampleCoverageARB;
+
+#endif /* GL_ARB_multisample */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXTURE_SHADER--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_shader
+#define GL_NV_texture_shader 1
+
+#define GL_TEXTURE_SHADER_NV 0x86DE
+#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
+#define GL_SHADER_OPERATION_NV 0x86DF
+#define GL_CULL_MODES_NV 0x86E0
+#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
+#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
+#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
+#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
+#define GL_CONST_EYE_NV 0x86E5
+#define GL_SHADER_CONSISTENT_NV 0x86DD
+#define GL_PASS_THROUGH_NV 0x86E6
+#define GL_CULL_FRAGMENT_NV 0x86E7
+#define GL_OFFSET_TEXTURE_2D_NV 0x86E8
+#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
+#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
+#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
+#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
+#define GL_DOT_PRODUCT_NV 0x86EC
+#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
+#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
+#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
+#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
+#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
+#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
+#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
+#define GL_HILO_NV 0x86F4
+#define GL_DSDT_NV 0x86F5
+#define GL_DSDT_MAG_NV 0x86F6
+#define GL_DSDT_MAG_VIB_NV 0x86F7
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
+#define GL_SIGNED_RGBA_NV 0x86FB
+#define GL_SIGNED_RGBA8_NV 0x86FC
+#define GL_SIGNED_RGB_NV 0x86FE
+#define GL_SIGNED_RGB8_NV 0x86FF
+#define GL_SIGNED_LUMINANCE_NV 0x8701
+#define GL_SIGNED_LUMINANCE8_NV 0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
+#define GL_SIGNED_ALPHA_NV 0x8705
+#define GL_SIGNED_ALPHA8_NV 0x8706
+#define GL_SIGNED_INTENSITY_NV 0x8707
+#define GL_SIGNED_INTENSITY8_NV 0x8708
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
+#define GL_HILO16_NV 0x86F8
+#define GL_SIGNED_HILO_NV 0x86F9
+#define GL_SIGNED_HILO16_NV 0x86FA
+#define GL_DSDT8_NV 0x8709
+#define GL_DSDT8_MAG8_NV 0x870A
+#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
+#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
+#define GL_HI_SCALE_NV 0x870E
+#define GL_LO_SCALE_NV 0x870F
+#define GL_DS_SCALE_NV 0x8710
+#define GL_DT_SCALE_NV 0x8711
+#define GL_MAGNITUDE_SCALE_NV 0x8712
+#define GL_VIBRANCE_SCALE_NV 0x8713
+#define GL_HI_BIAS_NV 0x8714
+#define GL_LO_BIAS_NV 0x8715
+#define GL_DS_BIAS_NV 0x8716
+#define GL_DT_BIAS_NV 0x8717
+#define GL_MAGNITUDE_BIAS_NV 0x8718
+#define GL_VIBRANCE_BIAS_NV 0x8719
+#define GL_TEXTURE_BORDER_VALUES_NV 0x871A
+#define GL_TEXTURE_HI_SIZE_NV 0x871B
+#define GL_TEXTURE_LO_SIZE_NV 0x871C
+#define GL_TEXTURE_DS_SIZE_NV 0x871D
+#define GL_TEXTURE_DT_SIZE_NV 0x871E
+#define GL_TEXTURE_MAG_SIZE_NV 0x871F
+
+#endif /* GL_NV_texture_shader */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_NV_TEXTURE_RECTANGLE--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_rectangle
+#define GL_NV_texture_rectangle 1
+
+#define GL_TEXTURE_RECTANGLE_NV 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
+
+#endif /* GL_NV_texture_recrangle */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXTURE_ENV_COMBINE4--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_env_combine4
+#define GL_NV_texture_env_combine4 1
+
+#define GL_COMBINE4_NV 0x8503
+#define GL_SOURCE3_RGB_NV 0x8583
+#define GL_SOURCE3_ALPHA_NV 0x858B
+#define GL_OPERAND3_RGB_NV 0x8593
+#define GL_OPERAND3_ALPHA_NV 0x859B
+
+#endif /* GL_NV_texture_env_combine */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_FOG_DISTANCE----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_fog_distance
+#define GL_NV_fog_distance 1
+
+#define GL_FOG_DISTANCE_MODE_NV 0x855A
+#define GL_EYE_RADIAL_NV 0x855B
+#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
+
+#endif /* GL_NV_fog_distance */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_TEXTURE_FILTER_ANISOTROPIC-------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_texture_filter_anisotropic
+#define GL_EXT_texture_filter_anisotropic 1
+
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+
+#endif /* GL_EXT_texture_filter_anisotropic */
+
+/*-------------------------------------------------------------------*/
+/*------------SGIS_GENERATE_MIPMAP-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_SGIS_generate_mipmap
+#define GL_SGIS_generate_mipmap 1
+
+#define GL_GENERATE_MIPMAP_SGIS 0x8191
+#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
+
+#endif /* GL_SGIS_generate_mipmap */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXGEN_REFLECTION-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texgen_reflection
+#define GL_NV_texgen_reflection 1
+
+#define GL_NORMAL_MAP_NV 0x8511
+#define GL_REFLECTION_MAP_NV 0x8512
+
+#endif /* GL_NV_texgen_reflection */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_VERTEX_WEIGHTING-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_vertex_weighting
+#define GL_EXT_vertex_weighting 1
+
+#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 /* alias to GL_MODELVIEW_STACK_DEPTH */
+#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
+#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 /* alias to GL_MODELVIEW_MATRIX */
+#define GL_MODELVIEW1_MATRIX_EXT 0x8506
+#define GL_VERTEX_WEIGHTING_EXT 0x8509
+#define GL_MODELVIEW0_EXT 0x1700 /* alias to GL_MODELVIEW */
+#define GL_MODELVIEW1_EXT 0x850A
+#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
+#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
+#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
+#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
+#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
+#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
+
+typedef void (APIENTRY * glVertexWeightfEXTPROC) (GLfloat weight);
+typedef void (APIENTRY * glVertexWeightfvEXTPROC) (const GLfloat *weight);
+typedef void (APIENTRY * glVertexWeightPointerEXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
+
+extern glVertexWeightfEXTPROC glVertexWeightfEXT;
+extern glVertexWeightfvEXTPROC glVertexWeightfvEXT;
+extern glVertexWeightPointerEXTPROC glVertexWeightPointerEXT;
+
+#endif /* GL_EXT_vertex_weighting */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_VERTEX_PROGRAM--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_program
+#define GL_NV_vertex_program 1
+
+#define GL_VERTEX_PROGRAM_NV 0x8620
+#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
+#define GL_VERTEX_STATE_PROGRAM_NV 0x8621
+#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
+#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
+#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
+#define GL_CURRENT_ATTRIB_NV 0x8626
+#define GL_PROGRAM_PARAMETER_NV 0x8644
+#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
+#define GL_PROGRAM_TARGET_NV 0x8646
+#define GL_PROGRAM_LENGTH_NV 0x8627
+#define GL_PROGRAM_RESIDENT_NV 0x8647
+#define GL_PROGRAM_STRING_NV 0x8628
+#define GL_TRACK_MATRIX_NV 0x8648
+#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
+#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
+#define GL_MAX_TRACK_MATRICES_NV 0x862F
+#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
+#define GL_CURRENT_MATRIX_NV 0x8641
+#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
+#define GL_PROGRAM_ERROR_POSITION_NV 0x864B
+#define GL_MODELVIEW_PROJECTION_NV 0x8629
+#define GL_MATRIX0_NV 0x8630
+#define GL_MATRIX1_NV 0x8631
+#define GL_MATRIX2_NV 0x8632
+#define GL_MATRIX3_NV 0x8633
+#define GL_MATRIX4_NV 0x8634
+#define GL_MATRIX5_NV 0x8635
+#define GL_MATRIX6_NV 0x8636
+#define GL_MATRIX7_NV 0x8637
+#define GL_IDENTITY_NV 0x862A
+#define GL_INVERSE_NV 0x862B
+#define GL_TRANSPOSE_NV 0x862C
+#define GL_INVERSE_TRANSPOSE_NV 0x862D
+#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
+#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
+#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
+#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
+#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
+#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
+#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
+#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
+#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
+#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
+#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
+#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
+#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
+#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
+#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
+#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
+#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
+#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
+#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
+#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
+#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
+#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
+#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
+#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
+#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
+#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
+#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
+#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
+#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
+#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
+#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
+#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
+#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
+#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
+#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
+#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
+#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
+#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
+#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
+#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
+#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
+#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
+#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
+#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
+#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
+#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
+#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
+#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
+
+typedef void (APIENTRY * glBindProgramNVPROC) (GLenum target, GLuint id);
+typedef void (APIENTRY * glDeleteProgramsNVPROC) (GLsizei n, const GLuint *ids);
+typedef void (APIENTRY * glExecuteProgramNVPROC) (GLenum target, GLuint id, const GLfloat *params);
+typedef void (APIENTRY * glGenProgramsNVPROC) (GLsizei n, GLuint *ids);
+typedef GLboolean (APIENTRY * glAreProgramsResidentNVPROC) (GLsizei n, const GLuint *ids, GLboolean *residences);
+typedef void (APIENTRY * glRequestResidentProgramsNVPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRY * glGetProgramParameterfvNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetProgramParameterdvNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRY * glGetProgramivNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetProgramStringNVPROC) (GLuint id, GLenum pname, GLubyte *program);
+typedef void (APIENTRY * glGetTrackMatrixivNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetVertexAttribdvNVPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRY * glGetVertexAttribfvNVPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetVertexAttribivNVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetVertexAttribPointervNVPROC) (GLuint index, GLenum pname, GLvoid **pointer);
+typedef GLboolean (APIENTRY * glIsProgramNVPROC) (GLuint id);
+typedef void (APIENTRY * glLoadProgramNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
+typedef void (APIENTRY * glProgramParameter4fNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glProgramParameter4dNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glProgramParameter4dvNVPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRY * glProgramParameter4fvNVPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRY * glProgramParameters4dvNVPROC) (GLenum target, GLuint index, GLuint num, const GLdouble *params);
+typedef void (APIENTRY * glProgramParameters4fvNVPROC) (GLenum target, GLuint index, GLuint num, const GLfloat *params);
+typedef void (APIENTRY * glTrackMatrixNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
+typedef void (APIENTRY * glVertexAttribPointerNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * glVertexAttrib1sNVPROC) (GLuint index, GLshort x);
+typedef void (APIENTRY * glVertexAttrib1fNVPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRY * glVertexAttrib1dNVPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRY * glVertexAttrib2sNVPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRY * glVertexAttrib2fNVPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRY * glVertexAttrib2dNVPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRY * glVertexAttrib3sNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glVertexAttrib3fNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glVertexAttrib3dNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glVertexAttrib4sNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * glVertexAttrib4fNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glVertexAttrib4dNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glVertexAttrib4ubNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRY * glVertexAttrib1svNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib1fvNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib1dvNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib2svNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib2fvNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib2dvNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib3svNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib3fvNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib3dvNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib4svNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib4fvNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib4dvNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib4ubvNVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRY * glVertexAttribs1svNVPROC) (GLuint index, GLsizei n, const GLshort *v);
+typedef void (APIENTRY * glVertexAttribs1fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttribs1dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttribs2svNVPROC) (GLuint index, GLsizei n, const GLshort *v);
+typedef void (APIENTRY * glVertexAttribs2fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttribs2dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttribs3svNVPROC) (GLuint index, GLsizei n, const GLshort *v);
+typedef void (APIENTRY * glVertexAttribs3fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttribs3dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttribs4svNVPROC) (GLuint index, GLsizei n, const GLshort *v);
+typedef void (APIENTRY * glVertexAttribs4fvNVPROC) (GLuint index, GLsizei n, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttribs4dvNVPROC) (GLuint index, GLsizei n, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttribs4ubvNVPROC) (GLuint index, GLsizei n, const GLubyte *v);
+
+extern glBindProgramNVPROC glBindProgramNV;
+extern glDeleteProgramsNVPROC glDeleteProgramsNV;
+extern glExecuteProgramNVPROC glExecuteProgramNV;
+extern glGenProgramsNVPROC glGenProgramsNV;
+extern glAreProgramsResidentNVPROC glAreProgramsResidentNV;
+extern glRequestResidentProgramsNVPROC glRequestResidentProgramsNV;
+extern glGetProgramParameterfvNVPROC glGetProgramParameterfvNV;
+extern glGetProgramParameterdvNVPROC glGetProgramParameterdvNV;
+extern glGetProgramivNVPROC glGetProgramivNV;
+extern glGetProgramStringNVPROC glGetProgramStringNV;
+extern glGetTrackMatrixivNVPROC glGetTrackMatrixivNV;
+extern glGetVertexAttribdvNVPROC glGetVertexAttribdvNV;
+extern glGetVertexAttribfvNVPROC glGetVertexAttribfvNV;
+extern glGetVertexAttribivNVPROC glGetVertexAttribivNV;
+extern glGetVertexAttribPointervNVPROC glGetVertexAttribPointervNV;
+extern glIsProgramNVPROC glIsProgramNV;
+extern glLoadProgramNVPROC glLoadProgramNV;
+extern glProgramParameter4fNVPROC glProgramParameter4fNV;
+extern glProgramParameter4dNVPROC glProgramParameter4dNV;
+extern glProgramParameter4dvNVPROC glProgramParameter4dvNV;
+extern glProgramParameter4fvNVPROC glProgramParameter4fvNV;
+extern glProgramParameters4dvNVPROC glProgramParameters4dvNV;
+extern glProgramParameters4fvNVPROC glProgramParameters4fvNV;
+extern glTrackMatrixNVPROC glTrackMatrixNV;
+extern glVertexAttribPointerNVPROC glVertexAttribPointerNV;
+extern glVertexAttrib1sNVPROC glVertexAttrib1sNV;
+extern glVertexAttrib1fNVPROC glVertexAttrib1fNV;
+extern glVertexAttrib1dNVPROC glVertexAttrib1dNV;
+extern glVertexAttrib2sNVPROC glVertexAttrib2sNV;
+extern glVertexAttrib2fNVPROC glVertexAttrib2fNV;
+extern glVertexAttrib2dNVPROC glVertexAttrib2dNV;
+extern glVertexAttrib3sNVPROC glVertexAttrib3sNV;
+extern glVertexAttrib3fNVPROC glVertexAttrib3fNV;
+extern glVertexAttrib3dNVPROC glVertexAttrib3dNV;
+extern glVertexAttrib4sNVPROC glVertexAttrib4sNV;
+extern glVertexAttrib4fNVPROC glVertexAttrib4fNV;
+extern glVertexAttrib4dNVPROC glVertexAttrib4dNV;
+extern glVertexAttrib4ubNVPROC glVertexAttrib4ubNV;
+extern glVertexAttrib1svNVPROC glVertexAttrib1svNV;
+extern glVertexAttrib1fvNVPROC glVertexAttrib1fvNV;
+extern glVertexAttrib1dvNVPROC glVertexAttrib1dvNV;
+extern glVertexAttrib2svNVPROC glVertexAttrib2svNV;
+extern glVertexAttrib2fvNVPROC glVertexAttrib2fvNV;
+extern glVertexAttrib2dvNVPROC glVertexAttrib2dvNV;
+extern glVertexAttrib3svNVPROC glVertexAttrib3svNV;
+extern glVertexAttrib3fvNVPROC glVertexAttrib3fvNV;
+extern glVertexAttrib3dvNVPROC glVertexAttrib3dvNV;
+extern glVertexAttrib4svNVPROC glVertexAttrib4svNV;
+extern glVertexAttrib4fvNVPROC glVertexAttrib4fvNV;
+extern glVertexAttrib4dvNVPROC glVertexAttrib4dvNV;
+extern glVertexAttrib4ubvNVPROC glVertexAttrib4ubvNV;
+extern glVertexAttribs1svNVPROC glVertexAttribs1svNV;
+extern glVertexAttribs1fvNVPROC glVertexAttribs1fvNV;
+extern glVertexAttribs1dvNVPROC glVertexAttribs1dvNV;
+extern glVertexAttribs2svNVPROC glVertexAttribs2svNV;
+extern glVertexAttribs2fvNVPROC glVertexAttribs2fvNV;
+extern glVertexAttribs2dvNVPROC glVertexAttribs2dvNV;
+extern glVertexAttribs3svNVPROC glVertexAttribs3svNV;
+extern glVertexAttribs3fvNVPROC glVertexAttribs3fvNV;
+extern glVertexAttribs3dvNVPROC glVertexAttribs3dvNV;
+extern glVertexAttribs4svNVPROC glVertexAttribs4svNV;
+extern glVertexAttribs4fvNVPROC glVertexAttribs4fvNV;
+extern glVertexAttribs4dvNVPROC glVertexAttribs4dvNV;
+extern glVertexAttribs4ubvNVPROC glVertexAttribs4ubvNV;
+
+#endif /* GL_NV_vertex_program */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_FENCE-----------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_fence
+#define GL_NV_fence 1
+
+#define GL_ALL_COMPLETED_NV 0x84F2
+#define GL_FENCE_STATUS_NV 0x84F3
+#define GL_FENCE_CONDITION_NV 0x84F4
+
+typedef void (APIENTRY * glGenFencesNVPROC) (GLsizei n, GLuint *fences);
+typedef void (APIENTRY * glDeleteFencesNVPROC) (GLsizei n, const GLuint *fences);
+typedef void (APIENTRY * glSetFenceNVPROC) (GLuint fence, GLenum condition);
+typedef GLboolean (APIENTRY * glTestFenceNVPROC) (GLuint fence);
+typedef void (APIENTRY * glFinishFenceNVPROC) (GLuint fence);
+typedef GLboolean (APIENTRY * glIsFenceNVPROC) (GLuint fence);
+typedef void (APIENTRY * glGetFenceivNVPROC) (GLuint fence, GLenum pname, GLint *params);
+
+extern glGenFencesNVPROC glGenFencesNV;
+extern glDeleteFencesNVPROC glDeleteFencesNV;
+extern glSetFenceNVPROC glSetFenceNV;
+extern glTestFenceNVPROC glTestFenceNV;
+extern glFinishFenceNVPROC glFinishFenceNV;
+extern glIsFenceNVPROC glIsFenceNV;
+extern glGetFenceivNVPROC glGetFenceivNV;
+
+#endif /* GL_NV_fence */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXTURE_SHADER2-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_shader2
+#define GL_NV_texture_shader2
+
+#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
+#define GL_HILO_NV 0x86F4
+#define GL_DSDT_NV 0x86F5
+#define GL_DSDT_MAG_NV 0x86F6
+#define GL_DSDT_MAG_VIB_NV 0x86F7
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
+#define GL_SIGNED_RGBA_NV 0x86FB
+#define GL_SIGNED_RGBA8_NV 0x86FC
+#define GL_SIGNED_RGB_NV 0x86FE
+#define GL_SIGNED_RGB8_NV 0x86FF
+#define GL_SIGNED_LUMINANCE_NV 0x8701
+#define GL_SIGNED_LUMINANCE8_NV 0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
+#define GL_SIGNED_ALPHA_NV 0x8705
+#define GL_SIGNED_ALPHA8_NV 0x8706
+#define GL_SIGNED_INTENSITY_NV 0x8707
+#define GL_SIGNED_INTENSITY8_NV 0x8708
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
+#define GL_HILO16_NV 0x86F8
+#define GL_SIGNED_HILO_NV 0x86F9
+#define GL_SIGNED_HILO16_NV 0x86FA
+#define GL_DSDT8_NV 0x8709
+#define GL_DSDT8_MAG8_NV 0x870A
+#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
+#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
+
+#endif /* GL_NV_texture_shader2 */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_BLEND_SQUARE----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_blend_square
+#define GL_NV_blend_square 1
+
+#endif /* GL_NV_blend_square */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_LIGHT_MAX_EXPONENT----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_light_max_exponent
+#define GL_NV_light_max_exponent 1
+
+#define GL_MAX_SHININESS_NV 0x8504
+#define GL_MAX_SPOT_EXPONENT_NV 0x8505
+
+#endif /* GL_NV_light_max_exponent */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_PACKED_DEPTH_STENCIL--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_packed_depth_stencil
+#define GL_NV_packed_depth_stencil 1
+
+#define GL_DEPTH_STENCIL_NV 0x84F9
+#define GL_UNSIGNED_INT_24_8_NV 0x84FA
+
+#endif /* GL_NV_packed_depth_stencil */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_REGISTER_COMBINERS2---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_register_combiners2
+#define GL_NV_register_combiners2
+
+#define GL_PER_STAGE_CONSTANTS_NV 0x8535
+
+typedef void (APIENTRY * glCombinerStageParameterfvNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * glGetCombinerStageParameterfvNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
+
+extern glCombinerStageParameterfvNVPROC glCombinerStageParameterfvNV;
+extern glGetCombinerStageParameterfvNVPROC glGetCombinerStageParameterfvNV;
+
+#endif /* GL_NV_register_combiners2 */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_ABGR-----------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_abgr
+#define GL_EXT_abgr 1
+
+#define GL_ABGR_EXT 0x8000
+
+#endif /* GL_EXT_abgr */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_STENCIL_WRAP---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_stencil_wrap
+#define GL_EXT_stencil_wrap 1
+
+#define GL_INCR_WRAP_EXT 0x8507
+#define GL_DECR_WRAP_EXT 0x8508
+
+#endif /* GL_EXT_stencil_wrap */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_TEXTURE_LOD_BIAS-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_texture_lod_bias
+#define GL_EXT_texture_lod_bias 1
+
+#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
+#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
+#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
+
+#endif /* GL_EXT_texture_lod_bias */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_EVALUATORS------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_evaluators
+#define GL_NV_evaluators 1
+
+#define GL_EVAL_2D_NV 0x86C0
+#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
+#define GL_MAP_TESSELLATION_NV 0x86C2
+#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
+#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
+#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
+#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
+#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
+#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
+#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
+#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
+#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
+#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
+#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
+#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
+#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
+#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
+#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
+#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
+#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
+#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
+#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
+#define GL_MAX_MAP_TESSELLATION_NV 0x86D6
+#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
+
+typedef void (APIENTRY * glMapControlPointsNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
+typedef void (APIENTRY * glMapParameterivNVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * glMapParameterfvNVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * glGetMapControlPointsNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
+typedef void (APIENTRY * glGetMapParameterivNVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetMapParameterfvNVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetMapAttribParameterivNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetMapAttribParameterfvNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glEvalMapsNVPROC) (GLenum target, GLenum mode);
+
+extern glMapControlPointsNVPROC glMapControlPointsNV;
+extern glMapParameterivNVPROC glMapParameterivNV;
+extern glMapParameterfvNVPROC glMapParameterfvNV;
+extern glGetMapControlPointsNVPROC glGetMapControlPointsNV;
+extern glGetMapParameterivNVPROC glGetMapParameterivNV;
+extern glGetMapParameterfvNVPROC glGetMapParameterfvNV;
+extern glGetMapAttribParameterivNVPROC glGetMapAttribParameterivNV;
+extern glGetMapAttribParameterfvNVPROC glGetMapAttribParameterfvNV;
+extern glEvalMapsNVPROC glEvalMapsNV;
+
+#endif /* GL_NV_evaluators */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_COPY_DEPTH_TO_COLOR---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_copy_depth_to_color
+#define GL_NV_copy_depth_to_color 1
+
+#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
+#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
+
+#endif /* GL_NV_copy_depth_to_color */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_PN_TRIANGLES---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_pn_triangles
+#define GL_ATI_pn_triangles 1
+
+#define GL_PN_TRIANGLES_ATI 0x87F0
+#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
+#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
+#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
+#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
+#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
+#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
+#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
+#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
+
+typedef void (APIENTRY * glPNTrianglesiATIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * glPNTrianglesfATIPROC) (GLenum pname, GLfloat param);
+
+extern glPNTrianglesiATIPROC glPNTrianglesiATI;
+extern glPNTrianglesfATIPROC glPNTrianglesfATI;
+
+#endif /* GL_ATI_pn_triangles */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_POINT_PARAMETERS-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_point_parameters
+#define GL_ARB_point_parameters 1
+
+#define GL_POINT_SIZE_MIN_ARB 0x8126
+#define GL_POINT_SIZE_MAX_ARB 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
+#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
+
+typedef void (APIENTRY * glPointParameterfARBPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glPointParameterfvARBPROC) (GLenum pname, GLfloat *params);
+
+extern glPointParameterfARBPROC glPointParameterfARB;
+extern glPointParameterfvARBPROC glPointParameterfvARB;
+
+#endif /* GL_ARB_point_parameters */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_ENV_CROSSBAR-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_env_crossbar
+#define GL_ARB_texture_env_crossbar 1
+
+#endif
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_VERTEX_BLEND---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_vertex_blend
+#define GL_ARB_vertex_blend 1
+
+#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
+#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
+#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
+#define GL_VERTEX_BLEND_ARB 0x86A7
+#define GL_CURRENT_WEIGHT_ARB 0x86A8
+#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
+#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
+#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
+#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
+#define GL_WEIGHT_ARRAY_ARB 0x86AD
+#define GL_MODELVIEW0_ARB 0x1700
+#define GL_MODELVIEW1_ARB 0x850A
+#define GL_MODELVIEW2_ARB 0x8722
+#define GL_MODELVIEW3_ARB 0x8723
+#define GL_MODELVIEW4_ARB 0x8724
+#define GL_MODELVIEW5_ARB 0x8725
+#define GL_MODELVIEW6_ARB 0x8726
+#define GL_MODELVIEW7_ARB 0x8727
+#define GL_MODELVIEW8_ARB 0x8728
+#define GL_MODELVIEW9_ARB 0x8729
+#define GL_MODELVIEW10_ARB 0x872A
+#define GL_MODELVIEW11_ARB 0x872B
+#define GL_MODELVIEW12_ARB 0x872C
+#define GL_MODELVIEW13_ARB 0x872D
+#define GL_MODELVIEW14_ARB 0x872E
+#define GL_MODELVIEW15_ARB 0x872F
+#define GL_MODELVIEW16_ARB 0x8730
+#define GL_MODELVIEW17_ARB 0x8731
+#define GL_MODELVIEW18_ARB 0x8732
+#define GL_MODELVIEW19_ARB 0x8733
+#define GL_MODELVIEW20_ARB 0x8734
+#define GL_MODELVIEW21_ARB 0x8735
+#define GL_MODELVIEW22_ARB 0x8736
+#define GL_MODELVIEW23_ARB 0x8737
+#define GL_MODELVIEW24_ARB 0x8738
+#define GL_MODELVIEW25_ARB 0x8739
+#define GL_MODELVIEW26_ARB 0x873A
+#define GL_MODELVIEW27_ARB 0x873B
+#define GL_MODELVIEW28_ARB 0x873C
+#define GL_MODELVIEW29_ARB 0x873D
+#define GL_MODELVIEW30_ARB 0x873E
+#define GL_MODELVIEW31_ARB 0x873F
+
+typedef void (APIENTRY * glWeightbvARBPROC) (GLint size, GLbyte *weights);
+typedef void (APIENTRY * glWeightsvARBPROC) (GLint size, GLshort *weights);
+typedef void (APIENTRY * glWeightivARBPROC) (GLint size, GLint *weights);
+typedef void (APIENTRY * glWeightfvARBPROC) (GLint size, GLfloat *weights);
+typedef void (APIENTRY * glWeightdvARBPROC) (GLint size, GLdouble *weights);
+typedef void (APIENTRY * glWeightubvARBPROC) (GLint size, GLubyte *weights);
+typedef void (APIENTRY * glWeightusvARBPROC) (GLint size, GLushort *weights);
+typedef void (APIENTRY * glWeightuivARBPROC) (GLint size, GLuint *weights);
+typedef void (APIENTRY * glWeightPointerARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+typedef void (APIENTRY * glVertexBlendARBPROC) (GLint count);
+
+extern glWeightbvARBPROC glWeightbvARB;
+extern glWeightsvARBPROC glWeightsvARB;
+extern glWeightivARBPROC glWeightivARB;
+extern glWeightfvARBPROC glWeightfvARB;
+extern glWeightdvARBPROC glWeightdvARB;
+extern glWeightubvARBPROC glWeightubvARB;
+extern glWeightusvARBPROC glWeightusvARB;
+extern glWeightuivARBPROC glWeightuivARB;
+extern glWeightPointerARBPROC glWeightPointerARB;
+extern glVertexBlendARBPROC glVertexBlendARB;
+
+#endif /* GL_ARB_vertex_blend */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_MULTI_DRAW_ARRAYS----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_multi_draw_arrays
+#define GL_EXT_multi_draw_arrays 1
+
+typedef void (APIENTRY * glMultiDrawArraysEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * glMultiDrawElementsEXTPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
+
+extern glMultiDrawArraysEXTPROC glMultiDrawArraysEXT;
+extern glMultiDrawElementsEXTPROC glMultiDrawElementsEXT;
+
+#endif /* GL_EXT_multi_draw_arrays */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_MATRIX_PALETTE-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_matrix_palette
+#define GL_ARB_matrix_palette 1
+
+#define GL_MATRIX_PALETTE_ARB 0x8840
+#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
+#define GL_MAX_PALETTE_MATRICES_ARB 0x8842
+#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
+#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
+#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
+#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
+#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
+#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
+
+typedef void (APIENTRY * glCurrentPaletteMatrixARBPROC) (GLint index);
+typedef void (APIENTRY * glMatrixIndexubvARBPROC) (GLint size, GLubyte *indices);
+typedef void (APIENTRY * glMatrixIndexusvARBPROC) (GLint size, GLushort *indices);
+typedef void (APIENTRY * glMatrixIndexuivARBPROC) (GLint size, GLuint *indices);
+typedef void (APIENTRY * glMatrixIndexPointerARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+
+extern glCurrentPaletteMatrixARBPROC glCurrentPaletteMatrixARB;
+extern glMatrixIndexubvARBPROC glMatrixIndexubvARB;
+extern glMatrixIndexusvARBPROC glMatrixIndexusvARB;
+extern glMatrixIndexuivARBPROC glMatrixIndexuivARB;
+extern glMatrixIndexPointerARBPROC glMatrixIndexPointerARB;
+
+#endif /* GL_ARB_matrix_palette */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_VERTEX_SHADER--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_vertex_shader
+#define GL_EXT_vertex_shader 1
+
+#define GL_VERTEX_SHADER_EXT 0x8780
+#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
+#define GL_OP_INDEX_EXT 0x8782
+#define GL_OP_NEGATE_EXT 0x8783
+#define GL_OP_DOT3_EXT 0x8784
+#define GL_OP_DOT4_EXT 0x8785
+#define GL_OP_MUL_EXT 0x8786
+#define GL_OP_ADD_EXT 0x8787
+#define GL_OP_MADD_EXT 0x8788
+#define GL_OP_FRAC_EXT 0x8789
+#define GL_OP_MAX_EXT 0x878A
+#define GL_OP_MIN_EXT 0x878B
+#define GL_OP_SET_GE_EXT 0x878C
+#define GL_OP_SET_LT_EXT 0x878D
+#define GL_OP_CLAMP_EXT 0x878E
+#define GL_OP_FLOOR_EXT 0x878F
+#define GL_OP_ROUND_EXT 0x8790
+#define GL_OP_EXP_BASE_2_EXT 0x8791
+#define GL_OP_LOG_BASE_2_EXT 0x8792
+#define GL_OP_POWER_EXT 0x8793
+#define GL_OP_RECIP_EXT 0x8794
+#define GL_OP_RECIP_SQRT_EXT 0x8795
+#define GL_OP_SUB_EXT 0x8796
+#define GL_OP_CROSS_PRODUCT_EXT 0x8797
+#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
+#define GL_OP_MOV_EXT 0x8799
+#define GL_OUTPUT_VERTEX_EXT 0x879A
+#define GL_OUTPUT_COLOR0_EXT 0x879B
+#define GL_OUTPUT_COLOR1_EXT 0x879C
+#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
+#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
+#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
+#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
+#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
+#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
+#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
+#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
+#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
+#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
+#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
+#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
+#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
+#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
+#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
+#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
+#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
+#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
+#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
+#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
+#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
+#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
+#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
+#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
+#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
+#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
+#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
+#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
+#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
+#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
+#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
+#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
+#define GL_OUTPUT_FOG_EXT 0x87BD
+#define GL_SCALAR_EXT 0x87BE
+#define GL_VECTOR_EXT 0x87BF
+#define GL_MATRIX_EXT 0x87C0
+#define GL_VARIANT_EXT 0x87C1
+#define GL_INVARIANT_EXT 0x87C2
+#define GL_LOCAL_CONSTANT_EXT 0x87C3
+#define GL_LOCAL_EXT 0x87C4
+#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
+#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
+#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
+#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
+#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
+#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
+#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
+#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
+#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
+#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
+#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
+#define GL_X_EXT 0x87D5
+#define GL_Y_EXT 0x87D6
+#define GL_Z_EXT 0x87D7
+#define GL_W_EXT 0x87D8
+#define GL_NEGATIVE_X_EXT 0x87D9
+#define GL_NEGATIVE_Y_EXT 0x87DA
+#define GL_NEGATIVE_Z_EXT 0x87DB
+#define GL_NEGATIVE_W_EXT 0x87DC
+#define GL_ZERO_EXT 0x87DD
+#define GL_ONE_EXT 0x87DE
+#define GL_NEGATIVE_ONE_EXT 0x87DF
+#define GL_NORMALIZED_RANGE_EXT 0x87E0
+#define GL_FULL_RANGE_EXT 0x87E1
+#define GL_CURRENT_VERTEX_EXT 0x87E2
+#define GL_MVP_MATRIX_EXT 0x87E3
+#define GL_VARIANT_VALUE_EXT 0x87E4
+#define GL_VARIANT_DATATYPE_EXT 0x87E5
+#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
+#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
+#define GL_VARIANT_ARRAY_EXT 0x87E8
+#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
+#define GL_INVARIANT_VALUE_EXT 0x87EA
+#define GL_INVARIANT_DATATYPE_EXT 0x87EB
+#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
+#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
+
+typedef void (APIENTRY * glBeginVertexShaderEXTPROC) ();
+typedef void (APIENTRY * glEndVertexShaderEXTPROC) ();
+typedef void (APIENTRY * glBindVertexShaderEXTPROC) (GLuint id);
+typedef GLuint (APIENTRY * glGenVertexShadersEXTPROC) (GLuint range);
+typedef void (APIENTRY * glDeleteVertexShaderEXTPROC) (GLuint id);
+typedef void (APIENTRY * glShaderOp1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
+typedef void (APIENTRY * glShaderOp2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+typedef void (APIENTRY * glShaderOp3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
+typedef void (APIENTRY * glSwizzleEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (APIENTRY * glWriteMaskEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (APIENTRY * glInsertComponentEXTPROC) (GLuint res, GLuint src, GLuint num);
+typedef void (APIENTRY * glExtractComponentEXTPROC) (GLuint res, GLuint src, GLuint num);
+typedef GLuint (APIENTRY * glGenSymbolsEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components);
+typedef void (APIENTRY * glSetInvariantEXTPROC) (GLuint id, GLenum type, GLvoid *addr);
+typedef void (APIENTRY * glSetLocalConstantEXTPROC) (GLuint id, GLenum type, GLvoid *addr);
+typedef void (APIENTRY * glVariantbvEXTPROC) (GLuint id, GLbyte *addr);
+typedef void (APIENTRY * glVariantsvEXTPROC) (GLuint id, GLshort *addr);
+typedef void (APIENTRY * glVariantivEXTPROC) (GLuint id, GLint *addr);
+typedef void (APIENTRY * glVariantfvEXTPROC) (GLuint id, GLfloat *addr);
+typedef void (APIENTRY * glVariantdvEXTPROC) (GLuint id, GLdouble *addr);
+typedef void (APIENTRY * glVariantubvEXTPROC) (GLuint id, GLubyte *addr);
+typedef void (APIENTRY * glVariantusvEXTPROC) (GLuint id, GLushort *addr);
+typedef void (APIENTRY * glVariantuivEXTPROC) (GLuint id, GLuint *addr);
+typedef void (APIENTRY * glVariantPointerEXTPROC) (GLuint id, GLenum type, GLuint stride, GLvoid *addr);
+typedef void (APIENTRY * glEnableVariantClientStateEXTPROC) (GLuint id);
+typedef void (APIENTRY * glDisableVariantClientStateEXTPROC) (GLuint id);
+typedef GLuint (APIENTRY * glBindLightParameterEXTPROC) (GLenum light, GLenum value);
+typedef GLuint (APIENTRY * glBindMaterialParameterEXTPROC) (GLenum face, GLenum value);
+typedef GLuint (APIENTRY * glBindTexGenParameterEXTPROC) (GLenum unit, GLenum coord, GLenum value);
+typedef GLuint (APIENTRY * glBindTextureUnitParameterEXTPROC) (GLenum unit, GLenum value);
+typedef GLuint (APIENTRY * glBindParameterEXTPROC) (GLenum value);
+typedef GLboolean (APIENTRY * glIsVariantEnabledEXTPROC) (GLuint id, GLenum cap);
+typedef void (APIENTRY * glGetVariantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * glGetVariantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * glGetVariantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+typedef void (APIENTRY * glGetVariantPointervEXTPROC) (GLuint id, GLenum value, GLvoid **data);
+typedef void (APIENTRY * glGetInvariantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * glGetInvariantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * glGetInvariantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+typedef void (APIENTRY * glGetLocalConstantBooleanvEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRY * glGetLocalConstantIntegervEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRY * glGetLocalConstantFloatvEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+
+extern glBeginVertexShaderEXTPROC glBeginVertexShaderEXT;
+extern glEndVertexShaderEXTPROC glEndVertexShaderEXT;
+extern glBindVertexShaderEXTPROC glBindVertexShaderEXT;
+extern glGenVertexShadersEXTPROC glGenVertexShadersEXT;
+extern glDeleteVertexShaderEXTPROC glDeleteVertexShaderEXT;
+extern glShaderOp1EXTPROC glShaderOp1EXT;
+extern glShaderOp2EXTPROC glShaderOp2EXT;
+extern glShaderOp3EXTPROC glShaderOp3EXT;
+extern glSwizzleEXTPROC glSwizzleEXT;
+extern glWriteMaskEXTPROC glWriteMaskEXT;
+extern glInsertComponentEXTPROC glInsertComponentEXT;
+extern glExtractComponentEXTPROC glExtractComponentEXT;
+extern glGenSymbolsEXTPROC glGenSymbolsEXT;
+extern glSetInvariantEXTPROC glSetInvariantEXT;
+extern glSetLocalConstantEXTPROC glSetLocalConstantEXT;
+extern glVariantbvEXTPROC glVariantbvEXT;
+extern glVariantsvEXTPROC glVariantsvEXT;
+extern glVariantivEXTPROC glVariantivEXT;
+extern glVariantfvEXTPROC glVariantfvEXT;
+extern glVariantdvEXTPROC glVariantdvEXT;
+extern glVariantubvEXTPROC glVariantubvEXT;
+extern glVariantusvEXTPROC glVariantusvEXT;
+extern glVariantuivEXTPROC glVariantuivEXT;
+extern glVariantPointerEXTPROC glVariantPointerEXT;
+extern glEnableVariantClientStateEXTPROC glEnableVariantClientStateEXT;
+extern glDisableVariantClientStateEXTPROC glDisableVariantClientStateEXT;
+extern glBindLightParameterEXTPROC glBindLightParameterEXT;
+extern glBindMaterialParameterEXTPROC glBindMaterialParameterEXT;
+extern glBindTexGenParameterEXTPROC glBindTexGenParameterEXT;
+extern glBindTextureUnitParameterEXTPROC glBindTextureUnitParameterEXT;
+extern glBindParameterEXTPROC glBindParameterEXT;
+extern glIsVariantEnabledEXTPROC glIsVariantEnabledEXT;
+extern glGetVariantBooleanvEXTPROC glGetVariantBooleanvEXT;
+extern glGetVariantIntegervEXTPROC glGetVariantIntegervEXT;
+extern glGetVariantFloatvEXTPROC glGetVariantFloatvEXT;
+extern glGetVariantPointervEXTPROC glGetVariantPointervEXT;
+extern glGetInvariantBooleanvEXTPROC glGetInvariantBooleanvEXT;
+extern glGetInvariantIntegervEXTPROC glGetInvariantIntegervEXT;
+extern glGetInvariantFloatvEXTPROC glGetInvariantFloatvEXT;
+extern glGetLocalConstantBooleanvEXTPROC glGetLocalConstantBooleanvEXT;
+extern glGetLocalConstantIntegervEXTPROC glGetLocalConstantIntegervEXT;
+extern glGetLocalConstantFloatvEXTPROC glGetLocalConstantFloatvEXT;
+
+#endif /* GL_EXT_vertex_shader */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_ENVMAP_BUMPMAP-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_envmap_bumpmap
+#define GL_ATI_envmap_bumpmap 1
+
+#define GL_BUMP_ROT_MATRIX_ATI 0x8775
+#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
+#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
+#define GL_BUMP_TEX_UNITS_ATI 0x8778
+#define GL_DUDV_ATI 0x8779
+#define GL_DU8DV8_ATI 0x877A
+#define GL_BUMP_ENVMAP_ATI 0x877B
+#define GL_BUMP_TARGET_ATI 0x877C
+
+typedef void (APIENTRY * glTexBumpParameterivATIPROC) (GLenum pname, GLint *param);
+typedef void (APIENTRY * glTexBumpParameterfvATIPROC) (GLenum pname, GLfloat *param);
+typedef void (APIENTRY * glGetTexBumpParameterivATIPROC) (GLenum pname, GLint *param);
+typedef void (APIENTRY * glGetTexBumpParameterfvATIPROC) (GLenum pname, GLfloat *param);
+
+extern glTexBumpParameterivATIPROC glTexBumpParameterivATI;
+extern glTexBumpParameterfvATIPROC glTexBumpParameterfvATI;
+extern glGetTexBumpParameterivATIPROC glGetTexBumpParameterivATI;
+extern glGetTexBumpParameterfvATIPROC glGetTexBumpParameterfvATI;
+
+#endif /* GL_ATI_envmap_bumpmap */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_FRAGMENT_SHADER------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_fragment_shader
+#define GL_ATI_fragment_shader 1
+
+#define GL_FRAGMENT_SHADER_ATI 0x8920
+#define GL_REG_0_ATI 0x8921
+#define GL_REG_1_ATI 0x8922
+#define GL_REG_2_ATI 0x8923
+#define GL_REG_3_ATI 0x8924
+#define GL_REG_4_ATI 0x8925
+#define GL_REG_5_ATI 0x8926
+#define GL_REG_6_ATI 0x8927
+#define GL_REG_7_ATI 0x8928
+#define GL_REG_8_ATI 0x8929
+#define GL_REG_9_ATI 0x892A
+#define GL_REG_10_ATI 0x892B
+#define GL_REG_11_ATI 0x892C
+#define GL_REG_12_ATI 0x892D
+#define GL_REG_13_ATI 0x892E
+#define GL_REG_14_ATI 0x892F
+#define GL_REG_15_ATI 0x8930
+#define GL_REG_16_ATI 0x8931
+#define GL_REG_17_ATI 0x8932
+#define GL_REG_18_ATI 0x8933
+#define GL_REG_19_ATI 0x8934
+#define GL_REG_20_ATI 0x8935
+#define GL_REG_21_ATI 0x8936
+#define GL_REG_22_ATI 0x8937
+#define GL_REG_23_ATI 0x8938
+#define GL_REG_24_ATI 0x8939
+#define GL_REG_25_ATI 0x893A
+#define GL_REG_26_ATI 0x893B
+#define GL_REG_27_ATI 0x893C
+#define GL_REG_28_ATI 0x893D
+#define GL_REG_29_ATI 0x893E
+#define GL_REG_30_ATI 0x893F
+#define GL_REG_31_ATI 0x8940
+#define GL_CON_0_ATI 0x8941
+#define GL_CON_1_ATI 0x8942
+#define GL_CON_2_ATI 0x8943
+#define GL_CON_3_ATI 0x8944
+#define GL_CON_4_ATI 0x8945
+#define GL_CON_5_ATI 0x8946
+#define GL_CON_6_ATI 0x8947
+#define GL_CON_7_ATI 0x8948
+#define GL_CON_8_ATI 0x8949
+#define GL_CON_9_ATI 0x894A
+#define GL_CON_10_ATI 0x894B
+#define GL_CON_11_ATI 0x894C
+#define GL_CON_12_ATI 0x894D
+#define GL_CON_13_ATI 0x894E
+#define GL_CON_14_ATI 0x894F
+#define GL_CON_15_ATI 0x8950
+#define GL_CON_16_ATI 0x8951
+#define GL_CON_17_ATI 0x8952
+#define GL_CON_18_ATI 0x8953
+#define GL_CON_19_ATI 0x8954
+#define GL_CON_20_ATI 0x8955
+#define GL_CON_21_ATI 0x8956
+#define GL_CON_22_ATI 0x8957
+#define GL_CON_23_ATI 0x8958
+#define GL_CON_24_ATI 0x8959
+#define GL_CON_25_ATI 0x895A
+#define GL_CON_26_ATI 0x895B
+#define GL_CON_27_ATI 0x895C
+#define GL_CON_28_ATI 0x895D
+#define GL_CON_29_ATI 0x895E
+#define GL_CON_30_ATI 0x895F
+#define GL_CON_31_ATI 0x8960
+#define GL_MOV_ATI 0x8961
+#define GL_ADD_ATI 0x8963
+#define GL_MUL_ATI 0x8964
+#define GL_SUB_ATI 0x8965
+#define GL_DOT3_ATI 0x8966
+#define GL_DOT4_ATI 0x8967
+#define GL_MAD_ATI 0x8968
+#define GL_LERP_ATI 0x8969
+#define GL_CND_ATI 0x896A
+#define GL_CND0_ATI 0x896B
+#define GL_DOT2_ADD_ATI 0x896C
+#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
+#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
+#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
+#define GL_NUM_PASSES_ATI 0x8970
+#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
+#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
+#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
+#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
+#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
+#define GL_SWIZZLE_STR_ATI 0x8976
+#define GL_SWIZZLE_STQ_ATI 0x8977
+#define GL_SWIZZLE_STR_DR_ATI 0x8978
+#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
+#define GL_SWIZZLE_STRQ_ATI 0x897A
+#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
+#define GL_RED_BIT_ATI 0x00000001
+#define GL_GREEN_BIT_ATI 0x00000002
+#define GL_BLUE_BIT_ATI 0x00000004
+#define GL_2X_BIT_ATI 0x00000001
+#define GL_4X_BIT_ATI 0x00000002
+#define GL_8X_BIT_ATI 0x00000004
+#define GL_HALF_BIT_ATI 0x00000008
+#define GL_QUARTER_BIT_ATI 0x00000010
+#define GL_EIGHTH_BIT_ATI 0x00000020
+#define GL_SATURATE_BIT_ATI 0x00000040
+#define GL_COMP_BIT_ATI 0x00000002
+#define GL_NEGATE_BIT_ATI 0x00000004
+#define GL_BIAS_BIT_ATI 0x00000008
+
+typedef GLuint (APIENTRY * glGenFragmentShadersATIPROC) (GLuint range);
+typedef void (APIENTRY * glBindFragmentShaderATIPROC) (GLuint id);
+typedef void (APIENTRY * glDeleteFragmentShaderATIPROC) (GLuint id);
+typedef void (APIENTRY * glBeginFragmentShaderATIPROC) (GLvoid);
+typedef void (APIENTRY * glEndFragmentShaderATIPROC) (GLvoid);
+typedef void (APIENTRY * glPassTexCoordATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
+typedef void (APIENTRY * glSampleMapATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
+typedef void (APIENTRY * glColorFragmentOp1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (APIENTRY * glColorFragmentOp2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (APIENTRY * glColorFragmentOp3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (APIENTRY * glAlphaFragmentOp1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (APIENTRY * glAlphaFragmentOp2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (APIENTRY * glAlphaFragmentOp3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (APIENTRY * glSetFragmentShaderConstantATIPROC) (GLuint dst, const GLfloat *value);
+
+extern glGenFragmentShadersATIPROC glGenFragmentShadersATI;
+extern glBindFragmentShaderATIPROC glBindFragmentShaderATI;
+extern glDeleteFragmentShaderATIPROC glDeleteFragmentShaderATI;
+extern glBeginFragmentShaderATIPROC glBeginFragmentShaderATI;
+extern glEndFragmentShaderATIPROC glEndFragmentShaderATI;
+extern glPassTexCoordATIPROC glPassTexCoordATI;
+extern glSampleMapATIPROC glSampleMapATI;
+extern glColorFragmentOp1ATIPROC glColorFragmentOp1ATI;
+extern glColorFragmentOp2ATIPROC glColorFragmentOp2ATI;
+extern glColorFragmentOp3ATIPROC glColorFragmentOp3ATI;
+extern glAlphaFragmentOp1ATIPROC glAlphaFragmentOp1ATI;
+extern glAlphaFragmentOp2ATIPROC glAlphaFragmentOp2ATI;
+extern glAlphaFragmentOp3ATIPROC glAlphaFragmentOp3ATI;
+extern glSetFragmentShaderConstantATIPROC glSetFragmentShaderConstantATI;
+
+#endif /* GL_ATI_fragment_shader */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_TEXTURE_MIRROR_ONCE--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_texture_mirror_once
+#define GL_ATI_texture_mirror_once 1
+
+#define GL_MIRROR_CLAMP_ATI 0x8742
+#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
+
+#endif
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_ELEMENT_ARRAY--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_element_array
+#define GL_ATI_element_array 1
+
+#define GL_ELEMENT_ARRAY_ATI 0x8768
+#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
+#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
+
+typedef void (APIENTRY * glElementPointerATIPROC) (GLenum type, const GLvoid *pointer);
+typedef void (APIENTRY * glDrawElementArrayATIPROC) (GLenum mode, GLsizei count);
+typedef void (APIENTRY * glDrawRangeElementArrayATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
+
+extern glElementPointerATIPROC glElementPointerATI;
+extern glDrawElementArrayATIPROC glDrawElementArrayATI;
+extern glDrawRangeElementArrayATIPROC glDrawRangeElementArrayATI;
+
+#endif /* GL_ATI_element_array */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_VERTEX_STREAMS-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_vertex_streams
+#define GL_ATI_vertex_streams 1
+
+#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
+#define GL_VERTEX_SOURCE_ATI 0x876C
+#define GL_VERTEX_STREAM0_ATI 0x876D
+#define GL_VERTEX_STREAM1_ATI 0x876E
+#define GL_VERTEX_STREAM2_ATI 0x876F
+#define GL_VERTEX_STREAM3_ATI 0x8770
+#define GL_VERTEX_STREAM4_ATI 0x8771
+#define GL_VERTEX_STREAM5_ATI 0x8772
+#define GL_VERTEX_STREAM6_ATI 0x8773
+#define GL_VERTEX_STREAM7_ATI 0x8774
+
+typedef void (APIENTRY * glClientActiveVertexStreamATIPROC) (GLenum stream);
+typedef void (APIENTRY * glVertexBlendEnviATIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * glVertexBlendEnvfATIPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * glVertexStream2sATIPROC) (GLenum stream, GLshort x, GLshort y);
+typedef void (APIENTRY * glVertexStream2svATIPROC) (GLenum stream, const GLshort *v);
+typedef void (APIENTRY * glVertexStream2iATIPROC) (GLenum stream, GLint x, GLint y);
+typedef void (APIENTRY * glVertexStream2ivATIPROC) (GLenum stream, const GLint *v);
+typedef void (APIENTRY * glVertexStream2fATIPROC) (GLenum stream, GLfloat x, GLfloat y);
+typedef void (APIENTRY * glVertexStream2fvATIPROC) (GLenum stream, const GLfloat *v);
+typedef void (APIENTRY * glVertexStream2dATIPROC) (GLenum stream, GLdouble x, GLdouble y);
+typedef void (APIENTRY * glVertexStream2dvATIPROC) (GLenum stream, const GLdouble *v);
+typedef void (APIENTRY * glVertexStream3sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glVertexStream3svATIPROC) (GLenum stream, const GLshort *v);
+typedef void (APIENTRY * glVertexStream3iATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
+typedef void (APIENTRY * glVertexStream3ivATIPROC) (GLenum stream, const GLint *v);
+typedef void (APIENTRY * glVertexStream3fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glVertexStream3fvATIPROC) (GLenum stream, const GLfloat *v);
+typedef void (APIENTRY * glVertexStream3dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glVertexStream3dvATIPROC) (GLenum stream, const GLdouble *v);
+typedef void (APIENTRY * glVertexStream4sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * glVertexStream4svATIPROC) (GLenum stream, const GLshort *v);
+typedef void (APIENTRY * glVertexStream4iATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRY * glVertexStream4ivATIPROC) (GLenum stream, const GLint *v);
+typedef void (APIENTRY * glVertexStream4fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glVertexStream4fvATIPROC) (GLenum stream, const GLfloat *v);
+typedef void (APIENTRY * glVertexStream4dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glVertexStream4dvATIPROC) (GLenum stream, const GLdouble *v);
+typedef void (APIENTRY * glNormalStream3bATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z);
+typedef void (APIENTRY * glNormalStream3bvATIPROC) (GLenum stream, const GLbyte *v);
+typedef void (APIENTRY * glNormalStream3sATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glNormalStream3svATIPROC) (GLenum stream, const GLshort *v);
+typedef void (APIENTRY * glNormalStream3iATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
+typedef void (APIENTRY * glNormalStream3ivATIPROC) (GLenum stream, const GLint *v);
+typedef void (APIENTRY * glNormalStream3fATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glNormalStream3fvATIPROC) (GLenum stream, const GLfloat *v);
+typedef void (APIENTRY * glNormalStream3dATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glNormalStream3dvATIPROC) (GLenum stream, const GLdouble *v);
+
+
+extern glClientActiveVertexStreamATIPROC glClientActiveVertexStreamATI;
+extern glVertexBlendEnviATIPROC glVertexBlendEnviATI;
+extern glVertexBlendEnvfATIPROC glVertexBlendEnvfATI;
+extern glVertexStream2sATIPROC glVertexStream2sATI;
+extern glVertexStream2svATIPROC glVertexStream2svATI;
+extern glVertexStream2iATIPROC glVertexStream2iATI;
+extern glVertexStream2ivATIPROC glVertexStream2ivATI;
+extern glVertexStream2fATIPROC glVertexStream2fATI;
+extern glVertexStream2fvATIPROC glVertexStream2fvATI;
+extern glVertexStream2dATIPROC glVertexStream2dATI;
+extern glVertexStream2dvATIPROC glVertexStream2dvATI;
+extern glVertexStream3sATIPROC glVertexStream3sATI;
+extern glVertexStream3svATIPROC glVertexStream3svATI;
+extern glVertexStream3iATIPROC glVertexStream3iATI;
+extern glVertexStream3ivATIPROC glVertexStream3ivATI;
+extern glVertexStream3fATIPROC glVertexStream3fATI;
+extern glVertexStream3fvATIPROC glVertexStream3fvATI;
+extern glVertexStream3dATIPROC glVertexStream3dATI;
+extern glVertexStream3dvATIPROC glVertexStream3dvATI;
+extern glVertexStream4sATIPROC glVertexStream4sATI;
+extern glVertexStream4svATIPROC glVertexStream4svATI;
+extern glVertexStream4iATIPROC glVertexStream4iATI;
+extern glVertexStream4ivATIPROC glVertexStream4ivATI;
+extern glVertexStream4fATIPROC glVertexStream4fATI;
+extern glVertexStream4fvATIPROC glVertexStream4fvATI;
+extern glVertexStream4dATIPROC glVertexStream4dATI;
+extern glVertexStream4dvATIPROC glVertexStream4dvATI;
+extern glNormalStream3bATIPROC glNormalStream3bATI;
+extern glNormalStream3bvATIPROC glNormalStream3bvATI;
+extern glNormalStream3sATIPROC glNormalStream3sATI;
+extern glNormalStream3svATIPROC glNormalStream3svATI;
+extern glNormalStream3iATIPROC glNormalStream3iATI;
+extern glNormalStream3ivATIPROC glNormalStream3ivATI;
+extern glNormalStream3fATIPROC glNormalStream3fATI;
+extern glNormalStream3fvATIPROC glNormalStream3fvATI;
+extern glNormalStream3dATIPROC glNormalStream3dATI;
+extern glNormalStream3dvATIPROC glNormalStream3dvATI;
+
+#endif /* GL_ATI_vertex_streams */
+
+/*-------------------------------------------------------------------*/
+/*------------ATI_VERTEX_ARRAY_OBJECT--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_vertex_array_object
+#define GL_ATI_vertex_array_object 1
+
+#define GL_STATIC_ATI 0x8760
+#define GL_DYNAMIC_ATI 0x8761
+#define GL_PRESERVE_ATI 0x8762
+#define GL_DISCARD_ATI 0x8763
+#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
+#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
+#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
+#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
+
+typedef GLuint (APIENTRY * glNewObjectBufferATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);
+typedef GLboolean (APIENTRY * glIsObjectBufferATIPROC) (GLuint buffer);
+typedef void (APIENTRY * glUpdateObjectBufferATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
+typedef void (APIENTRY * glGetObjectBufferfvATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetObjectBufferivATIPROC) (GLuint buffer, GLenum pname, GLint *params);
+typedef void (APIENTRY * glFreeObjectBufferATIPROC) (GLuint buffer);
+typedef void (APIENTRY * glArrayObjectATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRY * glGetArrayObjectfvATIPROC) (GLenum array, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetArrayObjectivATIPROC) (GLenum array, GLenum pname, GLint *params);
+typedef void (APIENTRY * glVariantArrayObjectATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRY * glGetVariantArrayObjectfvATIPROC) (GLuint id, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetVariantArrayObjectivATIPROC) (GLuint id, GLenum pname, GLint *params);
+
+extern glNewObjectBufferATIPROC glNewObjectBufferATI;
+extern glIsObjectBufferATIPROC glIsObjectBufferATI;
+extern glUpdateObjectBufferATIPROC glUpdateObjectBufferATI;
+extern glGetObjectBufferfvATIPROC glGetObjectBufferfvATI;
+extern glGetObjectBufferivATIPROC glGetObjectBufferivATI;
+extern glFreeObjectBufferATIPROC glFreeObjectBufferATI;
+extern glArrayObjectATIPROC glArrayObjectATI;
+extern glGetArrayObjectfvATIPROC glGetArrayObjectfvATI;
+extern glGetArrayObjectivATIPROC glGetArrayObjectivATI;
+extern glVariantArrayObjectATIPROC glVariantArrayObjectATI;
+extern glGetVariantArrayObjectfvATIPROC glGetVariantArrayObjectfvATI;
+extern glGetVariantArrayObjectivATIPROC glGetVariantArrayObjectivATI;
+
+#endif /* GL_ATI_vertex_array_object */
+
+/*-------------------------------------------------------------------*/
+/*------------HP_OCCLUSION_TEST--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_HP_occlusion_test
+#define GL_HP_occlusion_test 1
+
+#define GL_OCCLUSION_TEST_HP 0x8165;
+#define GL_OCCLUSION_TEST_RESULT_HP 0x8166;
+
+#endif /* GL_HP_occlusion_test */
+
+/*-------------------------------------------------------------------*/
+/*------------ATIX_POINT_SPRITES-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATIX_point_sprites
+#define GL_ATIX_point_sprites 1
+
+#define GL_TEXTURE_POINT_MODE_ATIX 0x60b0
+#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60b1
+#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60b2
+#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60b3
+#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60b4
+#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60b5
+
+#endif /* GL_ATIX_point_sprites */
+
+/*-------------------------------------------------------------------*/
+/*------------ATIX_TEXTURE_ENV_ROUTE---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATIX_texture_env_route
+#define GL_ATIX_texture_env_route 1
+
+#define GL_SECONDARY_COLOR_ATIX 0x8747
+#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
+#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749
+
+#endif /* GL_ATIX_texture_env_route */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_DEPTH_CLAMP-----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_depth_clamp
+#define GL_NV_depth_clamp 1
+
+#define GL_DEPTH_CLAMP_NV 0x864F
+
+#endif /* GL_NV_depth_clamp */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_OCCLUSION_QUERY-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_occlusion_query
+#define GL_NV_occlusion_query 1
+
+#ifndef GL_HP_occlusion_test
+#define GL_OCCLUSION_TEST_HP 0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
+#endif /* GL_HP_occlusion_test */
+#define GL_PIXEL_COUNTER_BITS_NV 0x8864
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
+#define GL_PIXEL_COUNT_NV 0x8866
+#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
+
+typedef void (APIENTRY * glGenOcclusionQueriesNVPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRY * glDeleteOcclusionQueriesNVPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRY * glIsOcclusionQueryNVPROC) (GLuint id);
+typedef void (APIENTRY * glBeginOcclusionQueryNVPROC) (GLuint id);
+typedef void (APIENTRY * glEndOcclusionQueryNVPROC) (void);
+typedef void (APIENTRY * glGetOcclusionQueryivNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetOcclusionQueryuivNVPROC) (GLuint id, GLenum pname, GLuint *params);
+
+extern glGenOcclusionQueriesNVPROC glGenOcclusionQueriesNV;
+extern glDeleteOcclusionQueriesNVPROC glDeleteOcclusionQueriesNV;
+extern glIsOcclusionQueryNVPROC glIsOcclusionQueryNV;
+extern glBeginOcclusionQueryNVPROC glBeginOcclusionQueryNV;
+extern glEndOcclusionQueryNVPROC glEndOcclusionQueryNV;
+extern glGetOcclusionQueryivNVPROC glGetOcclusionQueryivNV;
+extern glGetOcclusionQueryuivNVPROC glGetOcclusionQueryuivNV;
+
+#endif /* GL_NV_occlusion_query */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_POINT_SPRITE----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_point_sprite
+#define GL_NV_point_sprite 1
+
+#define GL_POINT_SPRITE_NV 0x8861
+#define GL_COORD_REPLACE_NV 0x8862
+#define GL_POINT_SPRITE_R_MODE_NV 0x8863
+
+typedef void (APIENTRY * glPointParameteriNVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * glPointParameterivNVPROC) (GLenum pname, const GLint *params);
+
+extern glPointParameteriNVPROC glPointParameteriNV;
+extern glPointParameterivNVPROC glPointParameterivNV;
+
+#endif /* GL_NV_point_sprite */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_TEXTURE_SHADER3-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_texture_shader3
+#define GL_NV_texture_shader3 1
+
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
+#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
+#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
+#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
+#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
+#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
+#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
+#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
+#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
+#define GL_HILO8_NV 0x885E
+#define GL_SIGNED_HILO8_NV 0x885F
+#define GL_FORCE_BLUE_TO_ONE_NV 0x8860
+
+#endif /* GL_NV_texture_shader3 */
+
+/*-------------------------------------------------------------------*/
+/*------------NV_VERTEX_PROGRAM1_1-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_program1_1
+#define GL_NV_vertex_program1_1
+
+#endif /* GL_NV_vertex_program1_1 */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_TEXTURE_MIRRORED_REPEAT----------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_texture_mirrored_repeat
+#define GL_ARB_texture_mirrored_repeat 1
+
+#define GL_GL_MIRRORED_REPEAT_ARB 0x8370
+
+#endif /* GL_ARB_texture_mirrored_repeat */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_SHADOW---------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_shadow
+#define GL_ARB_shadow 1
+
+#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
+#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
+#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
+
+#endif /* GL_ARB_shadow */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_SHADOW_AMBIENT-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_shadow_ambient
+#define GL_ARB_shadow_ambient 1
+
+#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
+
+#endif /* GL_ARB_shadow_ambient */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_DEPTH_TEXTURE--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_depth_texture
+#define GL_ARB_depth_texture 1
+
+#define GL_DEPTH_COMPONENT16_ARB 0x81A5
+#define GL_DEPTH_COMPONENT24_ARB 0x81A6
+#define GL_DEPTH_COMPONENT32_ARB 0x81A7
+#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
+#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
+
+#endif /* GL_ARB_depth_texture */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_WINDOW_POS-----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_window_pos
+#define GL_ARB_window_pos 1
+
+typedef void (APIENTRY * glWindowPos2dARBPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRY * glWindowPos2fARBPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRY * glWindowPos2iARBPROC) (GLint x, GLint y);
+typedef void (APIENTRY * glWindowPos2sARBPROC) (GLshort x, GLshort y);
+typedef void (APIENTRY * glWindowPos2dvARBPROC) (const GLdouble *p);
+typedef void (APIENTRY * glWindowPos2fvARBPROC) (const GLfloat *p);
+typedef void (APIENTRY * glWindowPos2ivARBPROC) (const GLint *p);
+typedef void (APIENTRY * glWindowPos2svARBPROC) (const GLshort *p);
+typedef void (APIENTRY * glWindowPos3dARBPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glWindowPos3fARBPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glWindowPos3iARBPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRY * glWindowPos3sARBPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glWindowPos3dvARBPROC) (const GLdouble *p);
+typedef void (APIENTRY * glWindowPos3fvARBPROC) (const GLfloat *p);
+typedef void (APIENTRY * glWindowPos3ivARBPROC) (const GLint *p);
+typedef void (APIENTRY * glWindowPos3svARBPROC) (const GLshort *p);
+
+extern glWindowPos2dARBPROC glWindowPos2dARB;
+extern glWindowPos2fARBPROC glWindowPos2fARB;
+extern glWindowPos2iARBPROC glWindowPos2iARB;
+extern glWindowPos2sARBPROC glWindowPos2sARB;
+extern glWindowPos2dvARBPROC glWindowPos2dvARB;
+extern glWindowPos2fvARBPROC glWindowPos2fvARB;
+extern glWindowPos2ivARBPROC glWindowPos2ivARB;
+extern glWindowPos2svARBPROC glWindowPos2svARB;
+extern glWindowPos3dARBPROC glWindowPos3dARB;
+extern glWindowPos3fARBPROC glWindowPos3fARB;
+extern glWindowPos3iARBPROC glWindowPos3iARB;
+extern glWindowPos3sARBPROC glWindowPos3sARB;
+extern glWindowPos3dvARBPROC glWindowPos3dvARB;
+extern glWindowPos3fvARBPROC glWindowPos3fvARB;
+extern glWindowPos3ivARBPROC glWindowPos3ivARB;
+extern glWindowPos3svARBPROC glWindowPos3svARB;
+
+#endif /* GL_ARB_window_pos */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_SHADOW_FUNCS---------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_shadow_funcs
+#define GL_EXT_shadow_funcs 1
+
+#endif /* GL_EXT_shadow_funcs */
+
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_draw_range_elements--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+
+#ifndef GL_EXT_draw_range_elements
+#define GL_EXT_draw_range_elements 1
+
+typedef void (APIENTRY * glDrawRangeElementsEXTPROC) ( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
+
+extern glDrawRangeElementsEXTPROC glDrawRangeElementsEXT;
+
+#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
+#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
+
+#endif
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_texture_compression_s3tc---------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_texture_compression_s3tc
+#define GL_EXT_texture_compression_s3tc 1
+
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
+
+#endif /* GL_EXT_texture_compression_s3tc */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_stencil_two_side-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_stencil_two_side
+#define GL_EXT_stencil_two_side 1
+
+typedef void (APIENTRY * glActiveStencilFaceEXTPROC) (GLenum face);
+
+extern glActiveStencilFaceEXTPROC glActiveStencilFaceEXT;
+
+#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
+#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
+
+#endif /* GL_EXT_stencil_two_side */
+
+/*-------------------------------------------------------------------*/
+/*------------ARB_vertex_program-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_vertex_program
+#define GL_ARB_vertex_program 1
+
+typedef void (APIENTRY * glVertexAttrib1sARBPROC) (GLuint index, GLshort x);
+typedef void (APIENTRY * glVertexAttrib1fARBPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRY * glVertexAttrib1dARBPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRY * glVertexAttrib2sARBPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRY * glVertexAttrib2fARBPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRY * glVertexAttrib2dARBPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRY * glVertexAttrib3sARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * glVertexAttrib3fARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * glVertexAttrib3dARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * glVertexAttrib4sARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * glVertexAttrib4fARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glVertexAttrib4dARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glVertexAttrib4NubARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRY * glVertexAttrib1svARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib1fvARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib1dvARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib2svARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib2fvARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib2dvARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib3svARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib3fvARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib3dvARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib4bvARBPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRY * glVertexAttrib4svARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib4ivARBPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRY * glVertexAttrib4ubvARBPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRY * glVertexAttrib4usvARBPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRY * glVertexAttrib4uivARBPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRY * glVertexAttrib4fvARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRY * glVertexAttrib4dvARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRY * glVertexAttrib4NbvARBPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRY * glVertexAttrib4NsvARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRY * glVertexAttrib4NivARBPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRY * glVertexAttrib4NubvARBPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRY * glVertexAttrib4NusvARBPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRY * glVertexAttrib4NuivARBPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRY * glVertexAttribPointerARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+typedef void (APIENTRY * glEnableVertexAttribArrayARBPROC) (GLuint index);
+typedef void (APIENTRY * glDisableVertexAttribArrayARBPROC) (GLuint index);
+typedef void (APIENTRY * glProgramStringARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
+typedef void (APIENTRY * glBindProgramARBPROC) (GLenum target, GLuint program);
+typedef void (APIENTRY * glDeleteProgramsARBPROC) (GLsizei n, const GLuint *programs);
+typedef void (APIENTRY * glGenProgramsARBPROC) (GLsizei n, GLuint *programs);
+typedef void (APIENTRY * glProgramEnvParameter4dARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glProgramEnvParameter4dvARBPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRY * glProgramEnvParameter4fARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glProgramEnvParameter4fvARBPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRY * glProgramLocalParameter4dARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glProgramLocalParameter4dvARBPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRY * glProgramLocalParameter4fARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glProgramLocalParameter4fvARBPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRY * glGetProgramEnvParameterdvARBPROC) (GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRY * glGetProgramEnvParameterfvARBPROC) (GLenum target, GLuint index, GLfloat *params);
+typedef void (APIENTRY * glGetProgramLocalParameterdvARBPROC) (GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRY * glGetProgramLocalParameterfvARBPROC) (GLenum target, GLuint index, GLfloat *params);
+typedef void (APIENTRY * glGetProgramivARBPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetProgramStringARBPROC) (GLenum target, GLenum pname, GLvoid *string);
+typedef void (APIENTRY * glGetVertexAttribdvARBPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRY * glGetVertexAttribfvARBPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glGetVertexAttribivARBPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRY * glGetVertexAttribPointervARBPROC) (GLuint index, GLenum pname, GLvoid **pointer);
+typedef GLboolean (APIENTRY * glIsProgramARBPROC) (GLuint program);
+
+extern glVertexAttrib1sARBPROC glVertexAttrib1sARB;
+extern glVertexAttrib1fARBPROC glVertexAttrib1fARB;
+extern glVertexAttrib1dARBPROC glVertexAttrib1dARB;
+extern glVertexAttrib2sARBPROC glVertexAttrib2sARB;
+extern glVertexAttrib2fARBPROC glVertexAttrib2fARB;
+extern glVertexAttrib2dARBPROC glVertexAttrib2dARB;
+extern glVertexAttrib3sARBPROC glVertexAttrib3sARB;
+extern glVertexAttrib3fARBPROC glVertexAttrib3fARB;
+extern glVertexAttrib3dARBPROC glVertexAttrib3dARB;
+extern glVertexAttrib4sARBPROC glVertexAttrib4sARB;
+extern glVertexAttrib4fARBPROC glVertexAttrib4fARB;
+extern glVertexAttrib4dARBPROC glVertexAttrib4dARB;
+extern glVertexAttrib4NubARBPROC glVertexAttrib4NubARB;
+extern glVertexAttrib1svARBPROC glVertexAttrib1svARB;
+extern glVertexAttrib1fvARBPROC glVertexAttrib1fvARB;
+extern glVertexAttrib1dvARBPROC glVertexAttrib1dvARB;
+extern glVertexAttrib2svARBPROC glVertexAttrib2svARB;
+extern glVertexAttrib2fvARBPROC glVertexAttrib2fvARB;
+extern glVertexAttrib2dvARBPROC glVertexAttrib2dvARB;
+extern glVertexAttrib3svARBPROC glVertexAttrib3svARB;
+extern glVertexAttrib3fvARBPROC glVertexAttrib3fvARB;
+extern glVertexAttrib3dvARBPROC glVertexAttrib3dvARB;
+extern glVertexAttrib4bvARBPROC glVertexAttrib4bvARB;
+extern glVertexAttrib4svARBPROC glVertexAttrib4svARB;
+extern glVertexAttrib4ivARBPROC glVertexAttrib4ivARB;
+extern glVertexAttrib4ubvARBPROC glVertexAttrib4ubvARB;
+extern glVertexAttrib4usvARBPROC glVertexAttrib4usvARB;
+extern glVertexAttrib4uivARBPROC glVertexAttrib4uivARB;
+extern glVertexAttrib4fvARBPROC glVertexAttrib4fvARB;
+extern glVertexAttrib4dvARBPROC glVertexAttrib4dvARB;
+extern glVertexAttrib4NbvARBPROC glVertexAttrib4NbvARB;
+extern glVertexAttrib4NsvARBPROC glVertexAttrib4NsvARB;
+extern glVertexAttrib4NivARBPROC glVertexAttrib4NivARB;
+extern glVertexAttrib4NubvARBPROC glVertexAttrib4NubvARB;
+extern glVertexAttrib4NusvARBPROC glVertexAttrib4NusvARB;
+extern glVertexAttrib4NuivARBPROC glVertexAttrib4NuivARB;
+extern glVertexAttribPointerARBPROC glVertexAttribPointerARB;
+extern glEnableVertexAttribArrayARBPROC glEnableVertexAttribArrayARB;
+extern glDisableVertexAttribArrayARBPROC glDisableVertexAttribArrayARB;
+extern glProgramStringARBPROC glProgramStringARB;
+extern glBindProgramARBPROC glBindProgramARB;
+extern glDeleteProgramsARBPROC glDeleteProgramsARB;
+extern glGenProgramsARBPROC glGenProgramsARB;
+extern glProgramEnvParameter4dARBPROC glProgramEnvParameter4dARB;
+extern glProgramEnvParameter4dvARBPROC glProgramEnvParameter4dvARB;
+extern glProgramEnvParameter4fARBPROC glProgramEnvParameter4fARB;
+extern glProgramEnvParameter4fvARBPROC glProgramEnvParameter4fvARB;
+extern glProgramLocalParameter4dARBPROC glProgramLocalParameter4dARB;
+extern glProgramLocalParameter4dvARBPROC glProgramLocalParameter4dvARB;
+extern glProgramLocalParameter4fARBPROC glProgramLocalParameter4fARB;
+extern glProgramLocalParameter4fvARBPROC glProgramLocalParameter4fvARB;
+extern glGetProgramEnvParameterdvARBPROC glGetProgramEnvParameterdvARB;
+extern glGetProgramEnvParameterfvARBPROC glGetProgramEnvParameterfvARB;
+extern glGetProgramLocalParameterdvARBPROC glGetProgramLocalParameterdvARB;
+extern glGetProgramLocalParameterfvARBPROC glGetProgramLocalParameterfvARB;
+extern glGetProgramivARBPROC glGetProgramivARB;
+extern glGetProgramStringARBPROC glGetProgramStringARB;
+extern glGetVertexAttribdvARBPROC glGetVertexAttribdvARB;
+extern glGetVertexAttribfvARBPROC glGetVertexAttribfvARB;
+extern glGetVertexAttribivARBPROC glGetVertexAttribivARB;
+extern glGetVertexAttribPointervARBPROC glGetVertexAttribPointervARB;
+extern glIsProgramARBPROC glIsProgramARB;
+
+#define GL_VERTEX_PROGRAM_ARB 0x8620
+#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
+#define GL_COLOR_SUM_ARB 0x8458
+#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
+#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
+#define GL_PROGRAM_LENGTH_ARB 0x8627
+#define GL_PROGRAM_FORMAT_ARB 0x8876
+#define GL_PROGRAM_BINDING_ARB 0x8677
+#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
+#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
+#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
+#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
+#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
+#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
+#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
+#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
+#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
+#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
+#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
+#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
+#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
+#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
+#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
+#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
+#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
+#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
+#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
+#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
+#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
+#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
+#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
+#define GL_PROGRAM_STRING_ARB 0x8628
+#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
+#define GL_CURRENT_MATRIX_ARB 0x8641
+#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
+#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
+#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
+#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
+#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
+#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
+#define GL_MATRIX0_ARB 0x88C0
+#define GL_MATRIX1_ARB 0x88C1
+#define GL_MATRIX2_ARB 0x88C2
+#define GL_MATRIX3_ARB 0x88C3
+#define GL_MATRIX4_ARB 0x88C4
+#define GL_MATRIX5_ARB 0x88C5
+#define GL_MATRIX6_ARB 0x88C6
+#define GL_MATRIX7_ARB 0x88C7
+#define GL_MATRIX8_ARB 0x88C8
+#define GL_MATRIX9_ARB 0x88C9
+#define GL_MATRIX10_ARB 0x88CA
+#define GL_MATRIX11_ARB 0x88CB
+#define GL_MATRIX12_ARB 0x88CC
+#define GL_MATRIX13_ARB 0x88CD
+#define GL_MATRIX14_ARB 0x88CE
+#define GL_MATRIX15_ARB 0x88CF
+#define GL_MATRIX16_ARB 0x88D0
+#define GL_MATRIX17_ARB 0x88D1
+#define GL_MATRIX18_ARB 0x88D2
+#define GL_MATRIX19_ARB 0x88D3
+#define GL_MATRIX20_ARB 0x88D4
+#define GL_MATRIX21_ARB 0x88D5
+#define GL_MATRIX22_ARB 0x88D6
+#define GL_MATRIX23_ARB 0x88D7
+#define GL_MATRIX24_ARB 0x88D8
+#define GL_MATRIX25_ARB 0x88D9
+#define GL_MATRIX26_ARB 0x88DA
+#define GL_MATRIX27_ARB 0x88DB
+#define GL_MATRIX28_ARB 0x88DC
+#define GL_MATRIX29_ARB 0x88DD
+#define GL_MATRIX30_ARB 0x88DE
+#define GL_MATRIX31_ARB 0x88DF
+
+#endif /* GL_ARB_vertex_program */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_EXT_BGRA--------------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_bgra
+#define GL_EXT_bgra 1
+
+#define GL_BGR_EXT 0x80E0
+#define GL_BGRA_EXT 0x80E1
+
+#endif /* GL_EXT_bgra */
+
+/*-------------------------------------------------------------------*/
+/*------------EXT_CULL_VERTEX----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_cull_vertex
+#define GL_EXT_cull_vertex 1
+
+#define GL_CULL_VERTEX_EXT 0x81AA
+#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
+#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
+
+typedef void (APIENTRY * glCullParameterfvEXTPROC) (GLenum pname, GLfloat *params);
+typedef void (APIENTRY * glCullParameterdvEXTPROC) (GLenum pname, GLdouble *params);
+
+extern glCullParameterfvEXTPROC glCullParameterfvEXT;
+extern glCullParameterdvEXTPROC glCullParameterdvEXT;
+
+
+#endif /* GL_EXT_cull_vertex */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_ATI_POINT_CULL_MODE---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_point_cull_mode
+#define GL_ATI_point_cull_mode 1
+
+#define GL_POINT_CULL_MODE_ATI 0x60b3
+#define GL_POINT_CULL_CENTER_ATI 0x60b4
+#define GL_POINT_CLIP_ATI 0x60b5
+
+#endif /* GL_ATI_point_cull_mode */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_BLEND_FUNC_SEPARATE---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_blend_func_separate
+#define GL_EXT_blend_func_separate 1
+
+#define GL_BLEND_DST_RGB_EXT 0x80C8
+#define GL_BLEND_SRC_RGB_EXT 0x80C9
+#define GL_BLEND_DST_ALPHA_EXT 0x80CA
+#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
+
+typedef void (APIENTRY * glBlendFuncSeparateEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+extern glBlendFuncSeparateEXTPROC glBlendFuncSeparateEXT;
+
+#endif /* GL_EXT_blend_func_separate */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_EXT_SEPARATE_SPECULAR_COLOR-------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_separate_specular_color
+#define GL_EXT_separate_specular_color 1
+
+#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
+#define GL_SINGLE_COLOR_EXT 0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
+
+#endif /* GL_EXT_separate_specular_color */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_NV_ELEMENT_ARRAY------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_element_array
+#define GL_NV_element_array 1
+
+#define GL_ELEMENT_ARRAY_TYPE_NV 0x8769
+#define GL_ELEMENT_ARRAY_POINTER_NV 0x876A
+
+typedef void (APIENTRY * glElementPointerNVPROC) (GLenum type, const GLvoid *pointer);
+typedef void (APIENTRY * glDrawElementArrayNVPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (APIENTRY * glDrawRangeElementArrayNVPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+typedef void (APIENTRY * glMultiDrawElementArrayNVPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+typedef void (APIENTRY * glMultiDrawRangeElementArrayNVPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
+
+extern glElementPointerNVPROC glElementPointerNV;
+extern glDrawElementArrayNVPROC glDrawElementArrayNV;
+extern glDrawRangeElementArrayNVPROC glDrawRangeElementArrayNV;
+extern glMultiDrawElementArrayNVPROC glMultiDrawElementArrayNV;
+extern glMultiDrawRangeElementArrayNVPROC glMultiDrawRangeElementArrayNV;
+
+#endif /* GL_NV_element_array */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_NV_FLOAT_BUFFER-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_float_buffer
+#define GL_NV_float_buffer 1
+
+#define GL_FLOAT_R_NV 0x8880
+#define GL_FLOAT_RG_NV 0x8881
+#define GL_FLOAT_RGB_NV 0x8882
+#define GL_FLOAT_RGBA_NV 0x8883
+#define GL_FLOAT_R32_NV 0x8885
+#define GL_FLOAT_R16_NV 0x8884
+#define GL_FLOAT_R32_NV 0x8885
+#define GL_FLOAT_RG16_NV 0x8886
+#define GL_FLOAT_RG32_NV 0x8887
+#define GL_FLOAT_RGB16_NV 0x8888
+#define GL_FLOAT_RGB32_NV 0x8889
+#define GL_FLOAT_RGBA16_NV 0x888A
+#define GL_FLOAT_RGBA32_NV 0x888B
+#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
+#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
+#define GL_FLOAT_RGBA_MODE_NV 0x888E
+
+#ifdef _WIN32
+#define WGL_FLOAT_COMPONENTS_NV 0x20B0
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
+#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
+#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
+#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
+#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
+#endif /* _WIN32 */
+
+#endif /* GL_NV_float_buffer */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_NV_FRAGMENT_PROGRAM---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_fragment_program
+#define GL_NV_fragment_program 1
+
+#define GL_FRAGMENT_PROGRAM_NV 0x8870
+#define GL_MAX_TEXTURE_COORDS_NV 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
+#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
+#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
+#define GL_PROGRAM_ERROR_STRING_NV 0x8874
+
+typedef void (APIENTRY * glProgramNamedParameter4fNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glProgramNamedParameter4dNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glProgramNamedParameter4fvNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat v[]);
+typedef void (APIENTRY * glProgramNamedParameter4dvNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble v[]);
+typedef void (APIENTRY * glGetProgramNamedParameterfvNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
+typedef void (APIENTRY * glGetProgramNamedParameterdvNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
+
+#ifndef GL_ARB_vertex_program
+typedef void (APIENTRY * glProgramLocalParameter4dARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * glProgramLocalParameter4dvARBPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRY * glProgramLocalParameter4fARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * glProgramLocalParameter4fvARBPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRY * glGetProgramLocalParameterdvARBPROC) (GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRY * glGetProgramLocalParameterfvARBPROC) (GLenum target, GLuint index, GLfloat *params);
+#endif /* GL_ARB_vertex_program */
+
+extern glProgramNamedParameter4fNVPROC glProgramNamedParameter4fNV;
+extern glProgramNamedParameter4dNVPROC glProgramNamedParameter4dNV;
+extern glProgramNamedParameter4fvNVPROC glProgramNamedParameter4fvNV;
+extern glProgramNamedParameter4dvNVPROC glProgramNamedParameter4dvNV;
+extern glGetProgramNamedParameterfvNVPROC glGetProgramNamedParameterfvNV;
+extern glGetProgramNamedParameterdvNVPROC glGetProgramNamedParameterdvNV;
+
+#ifndef GL_ARB_vertex_program
+extern glProgramLocalParameter4dARBPROC glProgramLocalParameter4dARB;
+extern glProgramLocalParameter4dvARBPROC glProgramLocalParameter4dvARB;
+extern glProgramLocalParameter4fARBPROC glProgramLocalParameter4fARB;
+extern glProgramLocalParameter4fvARBPROC glProgramLocalParameter4fvARB;
+extern glGetProgramLocalParameterdvARBPROC glGetProgramLocalParameterdvARB;
+extern glGetProgramLocalParameterfvARBPROC glGetProgramLocalParameterfvARB;
+#endif /* GL_ARB_vertex_program */
+
+#endif /* GL_NV_fragment_program */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_NV_PRIMITIVE_RESTART--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_primitive_restart
+#define GL_NV_primitive_restart 1
+
+#define GL_PRIMITIVE_RESTART_NV 0x8558
+#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
+
+typedef void (APIENTRY * glPrimitiveRestartNVPROC) ();
+typedef void (APIENTRY * glPrimitiveRestartIndexNVPROC) (GLuint index);
+
+extern glPrimitiveRestartNVPROC glPrimitiveRestartNV;
+extern glPrimitiveRestartIndexNVPROC glPrimitiveRestartIndexNV;
+
+#endif /* GL_NV_primitive_restart */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_NV_VERTEX_PROGRAM2----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_NV_vertex_program2
+#define GL_NV_vertex_program2 1
+
+#endif /* GL_NV_vertex_program2 */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_ARB_FRAGMENT_PROGRAM--------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ARB_fragment_program
+#define GL_ARB_fragment_program
+
+#ifndef GL_ARB_vertex_program
+#error ARB_vertex_program not defined
+#endif
+
+/* no new entry points, all of ARB_vertex_program reused */
+
+#define GL_FRAGMENT_PROGRAM_ARB 0x8804
+#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
+#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
+#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
+#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
+#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
+#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
+#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
+#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
+#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
+#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
+#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
+#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
+#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
+
+#endif /* GL_ARB_fragment_program */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_ATI_TEXT_FRAGMENT_SHADER----------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_text_fragment_shader
+#define GL_ATI_text_fragment_shader 1
+
+#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
+
+#endif /* GL_ATI_text_fragment_shader */
+
+/*-------------------------------------------------------------------*/
+/*------------GL_EXT_textzre_env_combine-----------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_texture_env_combine
+#define GL_EXT_texture_env_combine 1
+
+#define GL_COMBINE_EXT 0x8570
+#define GL_COMBINE_RGB_EXT 0x8571
+#define GL_COMBINE_ALPHA_EXT 0x8572
+#define GL_RGB_SCALE_EXT 0x8573
+#define GL_ADD_SIGNED_EXT 0x8574
+#define GL_INTERPOLATE_EXT 0x8575
+#define GL_CONSTANT_EXT 0x8576
+#define GL_PRIMARY_COLOR_EXT 0x8577
+#define GL_PREVIOUS_EXT 0x8578
+#define GL_SOURCE0_RGB_EXT 0x8580
+#define GL_SOURCE1_RGB_EXT 0x8581
+#define GL_SOURCE2_RGB_EXT 0x8582
+#define GL_SOURCE0_ALPHA_EXT 0x8588
+#define GL_SOURCE1_ALPHA_EXT 0x8589
+#define GL_SOURCE2_ALPHA_EXT 0x858A
+#define GL_OPERAND0_RGB_EXT 0x8590
+#define GL_OPERAND1_RGB_EXT 0x8591
+#define GL_OPERAND2_RGB_EXT 0x8592
+#define GL_OPERAND0_ALPHA_EXT 0x8598
+#define GL_OPERAND1_ALPHA_EXT 0x8599
+#define GL_OPERAND2_ALPHA_EXT 0x859A
+
+#endif /* GL_EXT_texture_env_combine */
+
+// added -ec
+/*-------------------------------------------------------------------*/
+/*------------GL_EXT_TEXTURE_RECTANGLE-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_EXT_texture_rectangle
+#define GL_EXT_texture_rectangle 1
+
+#define GL_TEXTURE_RECTANGLE_EXT 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
+
+#endif /* GL_EXT_texture_rectangle */
+
+// added -ec
+/*-------------------------------------------------------------------*/
+/*------------GL_ATI_texture_float-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_texture_float
+#define GL_ATI_texture_float 1
+
+#define GL_RGBA_FLOAT32_ATI 0x8814
+#define GL_RGB_FLOAT32_ATI 0x8815
+#define GL_ALPHA_FLOAT32_ATI 0x8816
+#define GL_INTENSITY_FLOAT32_ATI 0x8817
+#define GL_LUMINANCE_FLOAT32_ATI 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
+#define GL_RGBA_FLOAT16_ATI 0x881A
+#define GL_RGB_FLOAT16_ATI 0x881B
+#define GL_ALPHA_FLOAT16_ATI 0x881C
+#define GL_INTENSITY_FLOAT16_ATI 0x881D
+#define GL_LUMINANCE_FLOAT16_ATI 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
+
+#endif /* GL_ATI_texture_float */
+
+// added -ec
+/*-------------------------------------------------------------------*/
+/*------------GL_ATI_draw_buffers------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef GL_ATI_draw_buffers
+#define GL_ATI_draw_buffers 1
+//
+// requires GL_ARB_fragment_program
+//
+
+#define GL_MAX_DRAW_BUFFERS_ATI 0x8824
+#define GL_DRAW_BUFFER0_ATI 0x8825
+#define GL_DRAW_BUFFER1_ATI 0x8826
+#define GL_DRAW_BUFFER2_ATI 0x8827
+#define GL_DRAW_BUFFER3_ATI 0x8828
+#define GL_DRAW_BUFFER4_ATI 0x8829
+#define GL_DRAW_BUFFER5_ATI 0x882A
+#define GL_DRAW_BUFFER6_ATI 0x882B
+#define GL_DRAW_BUFFER7_ATI 0x882C
+#define GL_DRAW_BUFFER8_ATI 0x882D
+#define GL_DRAW_BUFFER9_ATI 0x882E
+#define GL_DRAW_BUFFER10_ATI 0x882F
+#define GL_DRAW_BUFFER11_ATI 0x8830
+#define GL_DRAW_BUFFER12_ATI 0x8831
+#define GL_DRAW_BUFFER13_ATI 0x8832
+#define GL_DRAW_BUFFER14_ATI 0x8833
+#define GL_DRAW_BUFFER15_ATI 0x8834
+
+typedef void (APIENTRY * PFNGLDRAWBUFFERS) (GLsizei n, const GLenum *bufs);
+
+extern PFNGLDRAWBUFFERS glDrawBuffersATI;
+
+#endif /* GL_ATI_draw_buffers */
+
+// added -ec
+/*-------------------------------------------------------------------*/
+/*------------GL_ATI_pixel_format_float------------------------------*/
+/*-------------------------------------------------------------------*/
+#ifndef WGL_ATI_pixel_format_float
+#define WGL_ATI_pixel_format_float
+
+#define WGL_RGBA_FLOAT_MODE_ATI 0x8820
+#define WGL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
+#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
+
+#endif /* WGL_ATI_pixel_format_float */
+
+/*-------------------------------------------------------------------*/
+/*------------END GL EXTENSIONS--------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------*/
+/*------------WGL EXTENSIONS HERE------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifdef _WIN32
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_EXT_EXTENSION_STRING-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_EXT_extensions_string
+#define WGL_EXT_extensions_string 1
+
+typedef const char* (APIENTRY * wglGetExtensionsStringEXTPROC) ();
+
+extern wglGetExtensionsStringEXTPROC wglGetExtensionsStringEXT;
+
+#endif /* WGL_EXT_extensions_string */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_BUFFER_REGION----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_buffer_region
+#define WGL_ARB_buffer_region 1
+
+
+#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
+#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
+#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
+#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
+
+typedef HANDLE (APIENTRY * wglCreateBufferRegionARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
+typedef VOID (APIENTRY * wglDeleteBufferRegionARBPROC) (HANDLE hRegion);
+typedef BOOL (APIENTRY * wglSaveBufferRegionARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
+typedef BOOL (APIENTRY * wglRestoreBufferRegionARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
+
+extern wglCreateBufferRegionARBPROC wglCreateBufferRegionARB;
+extern wglDeleteBufferRegionARBPROC wglDeleteBufferRegionARB;
+extern wglSaveBufferRegionARBPROC wglSaveBufferRegionARB;
+extern wglRestoreBufferRegionARBPROC wglRestoreBufferRegionARB;
+
+#endif /* WGL_ARB_buffer_region */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_EXTENSION_STRING-------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_extensions_string
+#define WGL_ARB_extensions_string 1
+
+typedef const char* (APIENTRY * wglGetExtensionsStringARBPROC) (HDC hdc);
+
+extern wglGetExtensionsStringARBPROC wglGetExtensionsStringARB;
+
+#endif /* WGL_ARB_extensions_string */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_PBUFFER----------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_pbuffer
+#define WGL_ARB_pbuffer 1
+
+#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
+#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
+#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
+#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
+#define WGL_PBUFFER_LARGEST_ARB 0x2033
+#define WGL_PBUFFER_WIDTH_ARB 0x2034
+#define WGL_PBUFFER_HEIGHT_ARB 0x2035
+#define WGL_PBUFFER_LOST_ARB 0x2036
+
+DECLARE_HANDLE(HPBUFFERARB);
+
+typedef HPBUFFERARB (APIENTRY * wglCreatePbufferARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+typedef HDC (APIENTRY * wglGetPbufferDCARBPROC) (HPBUFFERARB hPbuffer);
+typedef int (APIENTRY * wglReleasePbufferDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
+typedef BOOL (APIENTRY * wglDestroyPbufferARBPROC) (HPBUFFERARB hPbuffer);
+typedef BOOL (APIENTRY * wglQueryPbufferARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+
+extern wglCreatePbufferARBPROC wglCreatePbufferARB;
+extern wglGetPbufferDCARBPROC wglGetPbufferDCARB;
+extern wglReleasePbufferDCARBPROC wglReleasePbufferDCARB;
+extern wglDestroyPbufferARBPROC wglDestroyPbufferARB;
+extern wglQueryPbufferARBPROC wglQueryPbufferARB;
+
+#endif /* WGL_ARB_pbuffer */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_PIXEL_FORMAT-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_pixel_format
+#define WGL_ARB_pixel_format 1
+
+#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
+#define WGL_DRAW_TO_BITMAP_ARB 0x2002
+#define WGL_ACCELERATION_ARB 0x2003
+#define WGL_NEED_PALETTE_ARB 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+#define WGL_SWAP_METHOD_ARB 0x2007
+#define WGL_NUMBER_OVERLAYS_ARB 0x2008
+#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
+#define WGL_TRANSPARENT_ARB 0x200A
+#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+#define WGL_SHARE_DEPTH_ARB 0x200C
+#define WGL_SHARE_STENCIL_ARB 0x200D
+#define WGL_SHARE_ACCUM_ARB 0x200E
+#define WGL_SUPPORT_GDI_ARB 0x200F
+#define WGL_SUPPORT_OPENGL_ARB 0x2010
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
+#define WGL_STEREO_ARB 0x2012
+#define WGL_PIXEL_TYPE_ARB 0x2013
+#define WGL_COLOR_BITS_ARB 0x2014
+#define WGL_RED_BITS_ARB 0x2015
+#define WGL_RED_SHIFT_ARB 0x2016
+#define WGL_GREEN_BITS_ARB 0x2017
+#define WGL_GREEN_SHIFT_ARB 0x2018
+#define WGL_BLUE_BITS_ARB 0x2019
+#define WGL_BLUE_SHIFT_ARB 0x201A
+#define WGL_ALPHA_BITS_ARB 0x201B
+#define WGL_ALPHA_SHIFT_ARB 0x201C
+#define WGL_ACCUM_BITS_ARB 0x201D
+#define WGL_ACCUM_RED_BITS_ARB 0x201E
+#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
+#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
+#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+#define WGL_DEPTH_BITS_ARB 0x2022
+#define WGL_STENCIL_BITS_ARB 0x2023
+#define WGL_AUX_BUFFERS_ARB 0x2024
+#define WGL_NO_ACCELERATION_ARB 0x2025
+#define WGL_GENERIC_ACCELERATION_ARB 0x2026
+#define WGL_FULL_ACCELERATION_ARB 0x2027
+#define WGL_SWAP_EXCHANGE_ARB 0x2028
+#define WGL_SWAP_COPY_ARB 0x2029
+#define WGL_SWAP_UNDEFINED_ARB 0x202A
+#define WGL_TYPE_RGBA_ARB 0x202B
+#define WGL_TYPE_COLORINDEX_ARB 0x202C
+
+typedef BOOL (APIENTRY * wglGetPixelFormatAttribivARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+typedef BOOL (APIENTRY * wglGetPixelFormatAttribfvARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+typedef BOOL (APIENTRY * wglChoosePixelFormatARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+
+extern wglGetPixelFormatAttribivARBPROC wglGetPixelFormatAttribivARB;
+extern wglGetPixelFormatAttribfvARBPROC wglGetPixelFormatAttribfvARB;
+extern wglChoosePixelFormatARBPROC wglChoosePixelFormatARB;
+
+#endif /* WGL_ARB_pixel_format */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_RENDER_TEXTURE---------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_render_texture
+#define WGL_ARB_render_texture 1
+
+#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
+#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
+#define WGL_TEXTURE_FORMAT_ARB 0x2072
+#define WGL_TEXTURE_TARGET_ARB 0x2073
+#define WGL_MIPMAP_TEXTURE_ARB 0x2074
+#define WGL_TEXTURE_RGB_ARB 0x2075
+#define WGL_TEXTURE_RGBA_ARB 0x2076
+#define WGL_NO_TEXTURE_ARB 0x2077
+#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
+#define WGL_TEXTURE_1D_ARB 0x2079
+#define WGL_TEXTURE_2D_ARB 0x207A
+#define WGL_NO_TEXTURE_ARB 0x2077
+#define WGL_MIPMAP_LEVEL_ARB 0x207B
+#define WGL_CUBE_MAP_FACE_ARB 0x207C
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
+#define WGL_FRONT_LEFT_ARB 0x2083
+#define WGL_FRONT_RIGHT_ARB 0x2084
+#define WGL_BACK_LEFT_ARB 0x2085
+#define WGL_BACK_RIGHT_ARB 0x2086
+#define WGL_AUX0_ARB 0x2087
+#define WGL_AUX1_ARB 0x2088
+#define WGL_AUX2_ARB 0x2089
+#define WGL_AUX3_ARB 0x208A
+#define WGL_AUX4_ARB 0x208B
+#define WGL_AUX5_ARB 0x208C
+#define WGL_AUX6_ARB 0x208D
+#define WGL_AUX7_ARB 0x208E
+#define WGL_AUX8_ARB 0x208F
+#define WGL_AUX9_ARB 0x2090
+
+typedef BOOL (APIENTRY * wglBindTexImageARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL (APIENTRY * wglReleaseTexImageARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL (APIENTRY * wglSetPbufferAttribARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
+
+extern wglBindTexImageARBPROC wglBindTexImageARB;
+extern wglReleaseTexImageARBPROC wglReleaseTexImageARB;
+extern wglSetPbufferAttribARBPROC wglSetPbufferAttribARB;
+
+#endif /*WGL_ARB_render_texture */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_EXT_SWAP_CONTROL-----------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_EXT_swap_control
+#define WGL_EXT_swap_control 1
+
+typedef BOOL (APIENTRY * wglSwapIntervalEXTPROC) (int interval);
+typedef int (APIENTRY * wglGetSwapIntervalEXTPROC) (void);
+
+extern wglSwapIntervalEXTPROC wglSwapIntervalEXT;
+extern wglGetSwapIntervalEXTPROC wglGetSwapIntervalEXT;
+
+#endif /* WGL_EXT_swap_control */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_MAKE_CURRENT_READ------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_make_current_read
+#define WGL_ARB_make_current_read 1
+
+#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
+
+typedef BOOL (APIENTRY * wglMakeContextCurrentARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (APIENTRY * wglGetCurrentReadDCARBPROC) (void);
+
+extern wglMakeContextCurrentARBPROC wglMakeContextCurrentARB;
+extern wglGetCurrentReadDCARBPROC wglGetCurrentReadDCARB;
+
+#endif /* WGL_ARB_make_current_read */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_ARB_MULTISAMPLE------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_ARB_multisample
+#define WGL_ARB_multisample 1
+
+#define WGL_SAMPLE_BUFFERS_ARB 0x2041
+#define WGL_SAMPLES_ARB 0x2042
+
+#endif /* WGL_ARB_multisample */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_NV_RENDER_DEPTH_TEXTURE----------------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_NV_render_depth_texture
+#define WGL_NV_render_depth_texture 1
+
+#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
+#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
+#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
+#define WGL_NO_TEXTURE_ARB 0x2077
+#define WGL_DEPTH_COMPONENT_NV 0x20A7
+
+#endif /* WGL_NV_render_depth_texture */
+
+/*-------------------------------------------------------------------*/
+/*------------WGL_NV_RENDER_TEXTURE_RECTANGLE-----------------------*/
+/*-------------------------------------------------------------------*/
+
+#ifndef WGL_NV_render_texture_rectangle
+#define WGL_NV_render_texture_rectangle 1
+
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
+#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
+
+#endif /* WGL_NV_render_texture_rectangle */
+
+/*-------------------------------------------------------------------*/
+/*------------END WGL EXTENSIONS-------------------------------------*/
+/*-------------------------------------------------------------------*/
+
+#endif /* WIN32 */
+
+/* helper stuff */
+
+/* I use int here because C does not know bool */
+
+#ifdef _WIN32
+
+struct WGLExtensionTypes
+{
+ int ARB_buffer_region;
+ int ARB_extensions_string;
+ int ARB_make_current_read;
+ int ARB_multisample;
+ int ARB_pbuffer;
+ int ARB_pixel_format;
+ int ARB_render_texture;
+ int EXT_extensions_string;
+ int EXT_swap_control;
+ int NV_render_depth_texture;
+ int NV_render_texture_rectangle;
+ int ATI_pixel_format_float;
+};
+
+#else /* No WIN32 */
+
+struct GLXExtensionTypes
+{
+
+};
+
+#endif /* WIN32 */
+
+struct ExtensionTypes
+{
+#ifdef _WIN32 /* WGL extensions */
+ struct WGLExtensionTypes wgl;
+#else /* no WIN32 */
+ struct GLXExtensionTypes glx;
+#endif /* WIN32 */
+ int ARB_imaging;
+ int ARB_depth_texture;
+ int ARB_fragment_program;
+ int ARB_matrix_palette;
+ int ARB_multisample;
+ int ARB_multitexture;
+ int ARB_point_parameters;
+ int ARB_shadow;
+ int ARB_shadow_ambient;
+ int ARB_texture_border_clamp;
+ int ARB_texture_compression;
+ int ARB_texture_cube_map;
+ int ARB_texture_env_add;
+ int ARB_texture_env_dot3;
+ int ARB_texture_env_combine;
+ int ARB_texture_env_crossbar;
+ int ARB_texture_mirrored_repeat;
+ int ARB_transpose_matrix;
+ int ARB_vertex_blend;
+ int ARB_vertex_program;
+ int ARB_window_pos;
+ int EXT_abgr;
+ int EXT_bgra;
+ int EXT_blend_func_separate;
+ int EXT_compiled_vertex_array;
+ int EXT_cull_vertex;
+ int EXT_fog_coord;
+ int EXT_multi_draw_arrays;
+ int EXT_point_parameters;
+ int EXT_secondary_color;
+ int EXT_separate_specular_color;
+ int EXT_shadow_funcs;
+ int EXT_stencil_two_side;
+ int EXT_stencil_wrap;
+ int EXT_texture_compression_s3tc;
+ int EXT_texture_env_combine;
+ int EXT_texture_filter_anisotropic;
+ int EXT_texture_lod_bias;
+ int EXT_texture_rectangle; // added -ec
+ int EXT_vertex_shader;
+ int EXT_vertex_weighting;
+ int EXT_draw_range_elements;
+ int ATI_draw_buffers; // added -ec
+ int ATI_element_array;
+ int ATI_envmap_bumpmap;
+ int ATI_fragment_shader;
+ int ATI_pn_triangles;
+ int ATI_point_cull_mode;
+ int ATI_text_fragment_shader;
+ int ATI_texture_float; // added -ec
+ int ATI_texture_mirror_once;
+ int ATI_vertex_array_object;
+ int ATI_vertex_streams;
+ int ATIX_point_sprites;
+ int ATIX_texture_env_route;
+ int HP_occlusion_test;
+ int NV_blend_square;
+ int NV_copy_depth_to_color;
+ int NV_depth_clamp;
+ int NV_element_array;
+ int NV_evaluators;
+ int NV_fence;
+ int NV_float_buffer;
+ int NV_fog_distance;
+ int NV_fragment_program;
+ int NV_light_max_exponent;
+ int NV_occlusion_query;
+ int NV_packed_depth_stencil;
+ int NV_point_sprite;
+ int NV_primitive_restart;
+ int NV_register_combiners;
+ int NV_register_combiners2;
+ int NV_texgen_reflection;
+ int NV_texture_env_combine4;
+ int NV_texture_rectangle;
+ int NV_texture_shader;
+ int NV_texture_shader2;
+ int NV_texture_shader3;
+ int NV_vertex_array_range;
+ int NV_vertex_array_range2;
+ int NV_vertex_program;
+ int NV_vertex_program1_1;
+ int NV_vertex_program2;
+ int SGIS_generate_mipmap;
+ int SGIX_shadow;
+ int SGIX_depth_texture;
+ int OpenGL12;
+ int OpenGL13;
+ int OpenGL14;
+};
+
+extern struct ExtensionTypes extgl_Extensions;
+
+extern struct ExtensionTypes SupportedExtensions; /* deprecated, please do not use */
+
+/* initializes everything, call this right after the rc is created. the function returns 0 if successful */
+LIB_RENDERING_EXPORT
+int extgl_Initialize();
+
+LIB_RENDERING_EXPORT
+int glInitialize(); /* deprecated, please do not use */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __EXTGL_H__ */
diff --git a/source/blender/freestyle/intern/rendering/pbuffer.cpp b/source/blender/freestyle/intern/rendering/pbuffer.cpp
new file mode 100755
index 00000000000..ec73fc52ae4
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/pbuffer.cpp
@@ -0,0 +1,292 @@
+#include <pbuffer.h>
+
+#include <memory.h>
+
+#define MAX_PFORMATS 256
+#define MAX_ATTRIBS 32
+#define PBUFFER_AS_TEXTURE 2048
+
+//************************************************************
+// Implementation of PBuffer
+//************************************************************
+/*!
+ * Creates a PBuffer of size \p w by \p h, eith mode \p mode.
+ */
+PBuffer::PBuffer(const unsigned int w,
+ const unsigned int h,
+ const int format)
+ : format_(format),
+ sharedContext_(false),
+ sharedLists_(false),
+ display_(NULL),
+ glxPbuffer_(0),
+ glxContext_(0),
+ width_(w),
+ height_(h)
+{
+}
+/*!
+ * Initialize the pbuffer. If \p shareContext is true, then the currently
+ * active context with be shared by the pbuffer, meaning for example that
+ * textures objects or display lists of the currently active GL context will
+ * be available to the pbuffer. If you want it to be the case just for
+ * display lists, set \p sharedContext to false and \p shareLists to true.
+ *
+ * This function is outside of the constructor for several reasons. First it
+ * might raise exceptions so it cannot be done in the constructor. Secondly,
+ * it is using the current context for sharing so you might want to create
+ * the pbuffer at a moment where this context is not yet active, and then
+ * initialise it once the context has been created and activated.
+ *
+ * Return false if creation failed.
+ */
+bool
+PBuffer::create(const bool shareContext, const bool shareLists)
+{
+ // Set display and screen
+ Display *pDisplay = glXGetCurrentDisplay();
+ if (pDisplay == NULL)
+ {
+ pDisplay = XOpenDisplay(NULL);
+ }
+ int iScreen = DefaultScreen(pDisplay);
+ GLXContext glxContext = glXGetCurrentContext();
+
+ GLXFBConfig *glxConfig;
+ int iConfigCount;
+
+ sharedContext_ = shareContext;
+ sharedLists_ = shareLists;
+
+ if (sharedContext_)
+ {
+ glxConfig = glXGetFBConfigs(pDisplay, iScreen, &iConfigCount);
+ if (!glxConfig)
+ {
+// "pbuffer creation error: glXGetFBConfigs() failed"
+ return false;
+ }
+ }
+ else
+ {
+ int iAttributes[2*MAX_ATTRIBS];
+ int curAttrib = 0;
+
+ memset(iAttributes, 0, 2*MAX_ATTRIBS*sizeof(int));
+
+ iAttributes[2*curAttrib ] = GLX_DRAWABLE_TYPE;
+ iAttributes[2*curAttrib+1] = GLX_PBUFFER_BIT;
+ curAttrib++;
+
+ if (format_ & ColorIndex)
+ {
+ iAttributes[2*curAttrib ] = GLX_RENDER_TYPE;
+ iAttributes[2*curAttrib+1] = GLX_COLOR_INDEX_BIT;
+ curAttrib++;
+ }
+ else
+ {
+ iAttributes[2*curAttrib ] = GLX_RENDER_TYPE;
+ iAttributes[2*curAttrib+1] = GLX_RGBA_BIT;
+ iAttributes[2*curAttrib ] = GLX_ALPHA_SIZE;
+ iAttributes[2*curAttrib+1] = 8;
+ curAttrib++;
+ }
+
+ if (format_ & DoubleBuffer)
+ {
+ iAttributes[2*curAttrib ] = GLX_DOUBLEBUFFER;
+ iAttributes[2*curAttrib+1] = true;
+ curAttrib++;
+ }
+ else
+ {
+ iAttributes[2*curAttrib ] = GLX_DOUBLEBUFFER;
+ iAttributes[2*curAttrib+1] = false;
+ curAttrib++;
+ }
+ if (format_ & DepthBuffer)
+ {
+ iAttributes[2*curAttrib ] = GLX_DEPTH_SIZE;
+ iAttributes[2*curAttrib+1] = 1;
+ curAttrib++;
+ }
+ else
+ {
+ iAttributes[2*curAttrib ] = GLX_DEPTH_SIZE;
+ iAttributes[2*curAttrib+1] = 0;
+ curAttrib++;
+ }
+
+ if (format_ & StencilBuffer)
+ {
+ iAttributes[2*curAttrib ] = GLX_STENCIL_SIZE;
+ iAttributes[2*curAttrib+1] = 1;
+ curAttrib++;
+ }
+ else
+ {
+ iAttributes[2*curAttrib ] = GLX_STENCIL_SIZE;
+ iAttributes[2*curAttrib+1] = 0;
+ curAttrib++;
+ }
+
+ iAttributes[2*curAttrib ] = None;
+
+ glxConfig = glXChooseFBConfigSGIX(pDisplay, iScreen, iAttributes, &iConfigCount);
+ if (!glxConfig)
+ {
+ // "pbuffer creation error: glXChooseFBConfig() failed"
+ return false;
+ }
+ }
+
+ int attributes[5];
+ int iCurAttrib = 0;
+
+ memset(attributes, 0, 5*sizeof(int));
+
+ attributes[2*iCurAttrib ] = GLX_LARGEST_PBUFFER;
+ attributes[2*iCurAttrib+1] = true;
+ iCurAttrib++;
+
+ attributes[2*iCurAttrib ] = GLX_PRESERVED_CONTENTS;
+ attributes[2*iCurAttrib+1] = true;
+ iCurAttrib++;
+
+ attributes[2*iCurAttrib ] = None;
+
+ glxPbuffer_ = glXCreateGLXPbufferSGIX(pDisplay, glxConfig[0],
+ width_, height_, attributes);
+
+ if (!glxPbuffer_)
+ {
+ // "pbuffer creation error: glXCreatePbuffer() failed"
+ return false;
+ }
+
+ if (sharedContext_)
+ {
+ glxContext_ = glxContext;
+ }
+ else
+ {
+ if (format_ & ColorIndex)
+ {
+ if (sharedLists_)
+ glxContext_ = glXCreateContextWithConfigSGIX(pDisplay,
+ glxConfig[0],
+ GLX_COLOR_INDEX_TYPE,
+ glxContext, true);
+ else
+ glxContext_ = glXCreateContextWithConfigSGIX(pDisplay,
+ glxConfig[0],
+ GLX_COLOR_INDEX_TYPE,
+ NULL, true);
+ }
+ else
+ {
+ if (sharedLists_)
+ glxContext_ = glXCreateContextWithConfigSGIX(pDisplay,
+ glxConfig[0],
+ GLX_RGBA_TYPE,
+ glxContext, true);
+ else
+ glxContext_ = glXCreateContextWithConfigSGIX(pDisplay,
+ glxConfig[0],
+ GLX_RGBA_TYPE,
+ NULL, true);
+ }
+
+ if (!glxConfig)
+ {
+ // "pbuffer creation error: glXCreateNewContext() failed"
+ return false;
+ }
+ }
+
+ display_ = pDisplay;
+
+ glXQueryGLXPbufferSGIX(display_, glxPbuffer_, GLX_WIDTH, &width_);
+ glXQueryGLXPbufferSGIX(display_, glxPbuffer_, GLX_HEIGHT, &height_);
+
+ return true;
+}
+/*!
+ * Destroy the pbuffer
+ */
+PBuffer::~PBuffer()
+{
+ if (glxPbuffer_)
+ {
+ glXDestroyGLXPbufferSGIX(display_, glxPbuffer_);
+ }
+}
+/*!
+ * Activate the pbuffer as the current GL context. All subsequents GL
+ * commands will now affect the pbuffer. If you want to push/pop the current
+ * OpenGL context use subclass PBufferEx instead.
+ *
+ * Return false if it failed.
+ */
+bool
+PBuffer::makeCurrent()
+{
+ return glXMakeCurrent(display_, glxPbuffer_, glxContext_);
+}
+/*!
+ * Return the width of the pbuffer
+ */
+unsigned int
+PBuffer::width() const
+{
+ return width_;
+}
+/*!
+ * Return the height of the pbuffer
+ */
+unsigned int
+PBuffer::height() const
+{
+ return height_;
+}
+//************************************************************
+// Implementation of PBufferEx
+//************************************************************
+PBufferEx::PBufferEx(const unsigned int width,
+ const unsigned int height,
+ const int mode)
+ : PBuffer(width, height, mode),
+ oldDisplay_(NULL),
+ glxOldDrawable_(0),
+ glxOldContext_(0)
+{
+}
+/*!
+ * Activate the pbuffer as the current GL context. All subsequents GL
+ * commands will now affect the pbuffer. Once you are done with you GL
+ * commands, you can call endCurrent() to restore the context that was active
+ * when you call makeCurrent().
+ *
+ * Return false if it failed.
+ */
+bool
+PBufferEx::makeCurrent()
+{
+ oldDisplay_ = glXGetCurrentDisplay();
+ glxOldDrawable_ = glXGetCurrentDrawable();
+ glxOldContext_ = glXGetCurrentContext();
+
+ return PBuffer::makeCurrent();
+}
+/*!
+ * Restore the GL context that was active when makeCurrent() was called.
+ *
+ * Return false if it failed.
+ */
+bool
+PBufferEx::endCurrent()
+{
+ return glXMakeCurrent(oldDisplay_, glxOldDrawable_, glxOldContext_);
+}
+
diff --git a/source/blender/freestyle/intern/rendering/pbuffer.h b/source/blender/freestyle/intern/rendering/pbuffer.h
new file mode 100755
index 00000000000..7f11f461b1c
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/pbuffer.h
@@ -0,0 +1,77 @@
+#ifndef PBUFFERS_H
+#define PBUFFERS_H
+
+#ifndef WIN32
+# ifdef __MACH__
+# include <OpenGL/gl.h>
+# else
+# include <GL/gl.h>
+# include <GL/glx.h>
+# endif
+
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Interface of PBuffer
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+class PBuffer
+{
+public:
+ enum FormatOption
+ {
+ DoubleBuffer = 0x0001,
+ DepthBuffer = 0x0002,
+ Rgba = 0x0004,
+ StencilBuffer = 0x0020,
+ SingleBuffer = DoubleBuffer << 16,
+ NoDepthBuffer = DepthBuffer << 16,
+ ColorIndex = Rgba << 16,
+ NoStencilBuffer = StencilBuffer << 16,
+ };
+
+ PBuffer(const unsigned int width,
+ const unsigned int height,
+ int format);
+ bool create(const bool shareContext = false,
+ const bool shareLists = false);
+ virtual ~PBuffer();
+
+ virtual bool makeCurrent();
+ unsigned int width() const;
+ unsigned int height() const;
+protected:
+ ///! Flags indicating the type of pbuffer.
+ int format_;
+ ///! Flag indicating if the rendering context is shared with another context.
+ bool sharedContext_;
+ //! Flag indicating if display lists should be shared between rendering
+ // contexts.(If the rendering context is shared (default), then display
+ // lists are automatically shared).
+ bool sharedLists_;
+ Display* display_;
+ GLXPbuffer glxPbuffer_;
+ GLXContext glxContext_;
+ unsigned int width_;
+ unsigned int height_;
+};
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// Interface of PBufferEx
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+/*!
+ * pbuffer layer to keep previous pbuffer states.
+ */
+class PBufferEx : public PBuffer
+{
+public:
+ PBufferEx(const unsigned int width,
+ const unsigned int height,
+ const int mode );
+ virtual bool makeCurrent();
+ bool endCurrent();
+private:
+ Display* oldDisplay_;
+ GLXDrawable glxOldDrawable_;
+ GLXContext glxOldContext_;
+ int vp[4];
+};
+
+#endif //PBUFFERS_H
+#endif //WIN32
diff --git a/source/blender/freestyle/intern/rendering/rendering.pro b/source/blender/freestyle/intern/rendering/rendering.pro
new file mode 100755
index 00000000000..0bbca195b6b
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/rendering.pro
@@ -0,0 +1,102 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+TEMPLATE = lib
+
+TARGET = $${LIB_RENDERING}
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= opengl glut dll
+
+exists (../libconfig.pri) {
+ include (../libconfig.pri)
+}
+
+#
+# DEFINES
+#
+#######################################
+
+#DEFINES *= ROOT_DIR=\"$(FREESTYLE_DIR)\"
+win32:DEFINES *= MAKE_LIB_RENDERING_DLL
+
+#
+# INCLUDE PATH
+#
+#######################################
+
+#INCLUDEPATH *= ../scene_graph ../winged_edge ../view_map ../geometry \
+# ../stroke ../system ../image
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+!win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}/lib
+win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+
+#
+# LIBS
+#
+#######################################
+
+win32:LIBS *= $${DESTDIR}/$${LIB_GEOMETRY}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SCENE_GRAPH}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SYSTEM}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_WINGED_EDGE}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_VIEW_MAP}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_STROKE}$${LIBVERSION}.lib
+
+!win32 {
+ lib_bundle {
+ LIBS += -F$${DESTDIR} -framework $${LIB_GEOMETRY} \
+ -framework $${LIB_IMAGE} -framework $${LIB_SCENE_GRAPH} \
+ -framework $${LIB_SYSTEM} -framework $${LIB_WINGED_EDGE} \
+ -framework $${LIB_VIEW_MAP} -framework $${LIB_STROKE}
+ } else {
+ LIBS *= -L$${DESTDIR} -l$${LIB_GEOMETRY} -l$${LIB_IMAGE} -l$${LIB_SCENE_GRAPH} \
+ -l$${LIB_SYSTEM} -l$${LIB_WINGED_EDGE} -l$${LIB_VIEW_MAP} -l$${LIB_STROKE}
+ }
+ }
+#
+# INSTALL
+#
+#######################################
+
+LIB_DIR = ../../lib
+# install library
+target.path = $$LIB_DIR
+# "make install" configuration options
+INSTALLS += target
+
+#
+# SOURCES & HEADERS
+#
+#######################################
+
+!static {
+ include(src.pri)
+}
+
+
+#
+# DEFINES
+#
+#######################################
+!win32: DEFINES += GLX_GLXEXT_PROTOTYPES
diff --git a/source/blender/freestyle/intern/rendering/src.pri b/source/blender/freestyle/intern/rendering/src.pri
new file mode 100755
index 00000000000..aee4cdb2782
--- /dev/null
+++ b/source/blender/freestyle/intern/rendering/src.pri
@@ -0,0 +1,33 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+RENDERING_DIR = ../rendering
+
+SOURCES *= $${RENDERING_DIR}/GLBBoxRenderer.cpp \
+ $${RENDERING_DIR}/GLDebugRenderer.cpp \
+ $${RENDERING_DIR}/GLFreeMemoryVisitor.cpp \
+ $${RENDERING_DIR}/GLMonoColorRenderer.cpp \
+ $${RENDERING_DIR}/GLRenderer.cpp \
+ $${RENDERING_DIR}/GLSelectRenderer.cpp \
+ $${RENDERING_DIR}/GLStrokeRenderer.cpp \
+ $${RENDERING_DIR}/GLUtils.cpp
+
+win32:SOURCES *= $${RENDERING_DIR}/extgl.cpp
+
+#!win32:SOURCES *= $${RENDERING_DIR}/pbuffer.cpp
+
+HEADERS *= $${RENDERING_DIR}/GLBBoxRenderer.h \
+ $${RENDERING_DIR}/GLDebugRenderer.h \
+ $${RENDERING_DIR}/GLFreeMemoryVisitor.h \
+ $${RENDERING_DIR}/GLMonoColorRenderer.h \
+ $${RENDERING_DIR}/GLRenderer.h \
+ $${RENDERING_DIR}/GLSelectRenderer.h \
+ $${RENDERING_DIR}/GLStrokeRenderer.h \
+ $${RENDERING_DIR}/GLUtils.h
+
+win32:HEADERS *= $${RENDERING_DIR}/extgl.h
+
+#!win32:HEADERS *= $${RENDERING_DIR}/pbuffer.h
+
diff --git a/source/blender/freestyle/intern/scene_graph/DrawingStyle.h b/source/blender/freestyle/intern/scene_graph/DrawingStyle.h
new file mode 100755
index 00000000000..e2be6fa8264
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/DrawingStyle.h
@@ -0,0 +1,82 @@
+//
+// Filename : DrawingStyle.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define the drawing style of a node
+// Date of creation : 10/10/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef DRAWINGSTYLE_H
+# define DRAWINGSTYLE_H
+
+class DrawingStyle
+{
+public:
+ enum STYLE
+ {FILLED, LINES, POINTS, INVISIBLE};
+
+ inline DrawingStyle() {Style = FILLED; LineWidth = 2.f; PointSize = 2.f; LightingEnabled = true;}
+ inline explicit DrawingStyle(const DrawingStyle& iBrother);
+
+ virtual ~DrawingStyle() {}
+
+ /*! operators */
+ inline DrawingStyle& operator=(const DrawingStyle& ds);
+
+ inline void SetStyle(const STYLE iStyle) {Style = iStyle;}
+ inline void SetLineWidth(const float iLineWidth) {LineWidth = iLineWidth;}
+ inline void SetPointSize(const float iPointSize) {PointSize = iPointSize;}
+ inline void SetLightingEnabled(const bool on) {LightingEnabled = on;}
+
+ inline STYLE style() const {return Style;}
+ inline float lineWidth() const {return LineWidth;}
+ inline float pointSize() const {return PointSize;}
+ inline bool lightingEnabled() const {return LightingEnabled;}
+
+private:
+ STYLE Style;
+ float LineWidth;
+ float PointSize;
+ bool LightingEnabled;
+};
+
+DrawingStyle::DrawingStyle(const DrawingStyle& iBrother)
+{
+ Style = iBrother.Style;
+ LineWidth = iBrother.LineWidth;
+ PointSize = iBrother.PointSize;
+ LightingEnabled = iBrother.LightingEnabled;
+}
+
+DrawingStyle& DrawingStyle::operator=(const DrawingStyle& ds)
+{
+ Style = ds.Style;
+ LineWidth = ds.LineWidth;
+ PointSize = ds.PointSize;
+ LightingEnabled = ds.LightingEnabled;
+
+ return *this;
+}
+
+#endif // DRAWINGSTYLE_H
diff --git a/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.cpp b/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.cpp
new file mode 100755
index 00000000000..ec3d3ad748c
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.cpp
@@ -0,0 +1,321 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "IndexedFaceSet.h"
+
+IndexedFaceSet::IndexedFaceSet()
+: Rep()
+{
+ _Vertices = NULL;
+ _Normals = NULL;
+ _Materials = 0;
+ _TexCoords = 0;
+ _VSize = 0;
+ _NSize = 0;
+ _MSize = 0;
+ _TSize = 0;
+ _NumFaces = 0;
+ _NumVertexPerFace = NULL;
+ _FaceStyle = NULL;
+ _VIndices = NULL;
+ _VISize = 0;
+ _NIndices = NULL;
+ _NISize = 0;
+ _MIndices = NULL;
+ _MISize = 0;
+ _TIndices = NULL;
+ _TISize = 0;
+ _displayList = 0;
+}
+
+IndexedFaceSet::IndexedFaceSet( real *iVertices, unsigned iVSize,
+ real *iNormals, unsigned iNSize,
+ Material **iMaterials, unsigned iMSize,
+ real *iTexCoords, unsigned iTSize,
+ unsigned iNumFaces, unsigned *iNumVertexPerFace, TRIANGLES_STYLE *iFaceStyle,
+ unsigned *iVIndices, unsigned iVISize,
+ unsigned *iNIndices, unsigned iNISize,
+ unsigned *iMIndices, unsigned iMISize,
+ unsigned *iTIndices, unsigned iTISize,
+ unsigned iCopy)
+ : Rep()
+{
+ if(1 == iCopy)
+ {
+ _VSize = iVSize;
+ _Vertices = new real[_VSize];
+ memcpy(_Vertices, iVertices, iVSize*sizeof(real));
+
+ _NSize = iNSize;
+ _Normals = new real[_NSize];
+ memcpy(_Normals, iNormals, iNSize*sizeof(real));
+
+ _MSize = iMSize;
+ _Materials = 0;
+ if(iMaterials){
+ _Materials = new Material*[_MSize];
+ for(unsigned i=0; i<_MSize; ++i)
+ _Materials[i] = new Material(*(iMaterials[i]));
+ }
+ _TSize = iTSize;
+ _TexCoords = 0;
+ if(_TSize){
+ _TexCoords = new real[_TSize];
+ memcpy(_TexCoords, iTexCoords, iTSize*sizeof(real));
+ }
+
+ _NumFaces = iNumFaces;
+ _NumVertexPerFace = new unsigned[_NumFaces];
+ memcpy(_NumVertexPerFace, iNumVertexPerFace, _NumFaces*sizeof(unsigned));
+
+ _FaceStyle = new TRIANGLES_STYLE[_NumFaces];
+ memcpy(_FaceStyle, iFaceStyle, _NumFaces*sizeof(TRIANGLES_STYLE));
+
+ _VISize = iVISize;
+ _VIndices = new unsigned[_VISize];
+ memcpy(_VIndices, iVIndices, _VISize*sizeof(unsigned));
+
+ _NISize = iNISize;
+ _NIndices = new unsigned[_NISize];
+ memcpy(_NIndices, iNIndices, _NISize*sizeof(unsigned));
+
+ _MISize = iMISize;
+ _MIndices = 0;
+ if(iMIndices){
+ _MIndices = new unsigned[_MISize];
+ memcpy(_MIndices, iMIndices, _MISize*sizeof(unsigned));
+ }
+ _TISize = iTISize;
+ _TIndices = 0;
+ if(_TISize){
+ _TIndices = new unsigned[_TISize];
+ memcpy(_TIndices, iTIndices, _TISize*sizeof(unsigned));
+ }
+ }
+ else
+ {
+ _VSize = iVSize;
+ _Vertices = iVertices;
+
+ _NSize = iNSize;
+ _Normals = iNormals;
+
+ _MSize = iMSize;
+ _Materials = 0;
+ if(iMaterials)
+ _Materials = iMaterials;
+
+ _TSize = iTSize;
+ _TexCoords = iTexCoords;
+
+ _NumFaces = iNumFaces;
+ _NumVertexPerFace = iNumVertexPerFace;
+ _FaceStyle = iFaceStyle;
+
+ _VISize = iVISize;
+ _VIndices = iVIndices;
+
+ _NISize = iNISize;
+ _NIndices = iNIndices;
+
+ _MISize = iMISize;
+ _MIndices = 0;
+ if(iMISize)
+ _MIndices = iMIndices;
+
+ _TISize = iTISize;
+ _TIndices = iTIndices;
+ }
+
+ _displayList = 0;
+}
+
+IndexedFaceSet::IndexedFaceSet( const IndexedFaceSet& iBrother)
+:Rep(iBrother)
+{
+ _VSize = iBrother.vsize();
+ _Vertices = new real[_VSize];
+ memcpy(_Vertices, iBrother.vertices(), _VSize*sizeof(real));
+
+ _NSize = iBrother.nsize();
+ _Normals = new real[_NSize];
+ memcpy(_Normals, iBrother.normals(), _NSize*sizeof(real));
+
+ _MSize = iBrother.msize();
+ if(_MSize){
+ _Materials = new Material*[_MSize];
+ for(unsigned i=0; i<_MSize; ++i){
+ _Materials[i] = new Material(*(iBrother._Materials[i]));
+ }
+ }else{
+ _Materials = 0;
+ }
+
+ _TSize = iBrother.tsize();
+ _TexCoords = 0;
+ if(_TSize){
+ _TexCoords = new real[_TSize];
+ memcpy(_TexCoords, iBrother.texCoords(), _TSize*sizeof(real));
+ }
+
+ _NumFaces = iBrother.numFaces();
+ _NumVertexPerFace = new unsigned[_NumFaces];
+ memcpy(_NumVertexPerFace, iBrother.numVertexPerFaces(), _NumFaces*sizeof(unsigned));
+
+ _FaceStyle = new TRIANGLES_STYLE[_NumFaces];
+ memcpy(_FaceStyle, iBrother.trianglesStyle(), _NumFaces*sizeof(TRIANGLES_STYLE));
+
+ _VISize = iBrother.visize();
+ _VIndices = new unsigned[_VISize];
+ memcpy(_VIndices, iBrother.vindices(), _VISize*sizeof(unsigned));
+
+ _NISize = iBrother.nisize();
+ _NIndices = new unsigned[_NISize];
+ memcpy(_NIndices, iBrother.nindices(), _NISize*sizeof(unsigned));
+
+ _MISize = iBrother.misize();
+ if(_MISize){
+ _MIndices = new unsigned[_MISize];
+ memcpy(_MIndices, iBrother.mindices(), _MISize*sizeof(unsigned));
+ }else{
+ _MIndices=0;
+ }
+
+ _TISize = iBrother.tisize();
+ _TIndices = 0;
+ if(_TISize){
+ _TIndices = new unsigned[_TISize];
+ memcpy(_TIndices, iBrother.tindices(), _TISize*sizeof(unsigned));
+ }
+
+ _displayList = 0;
+}
+
+IndexedFaceSet::~IndexedFaceSet()
+{
+ if(NULL != _Vertices)
+ {
+ delete [] _Vertices;
+ _Vertices = NULL;
+ }
+
+ if(NULL != _Normals)
+ {
+ delete [] _Normals;
+ _Normals = NULL;
+ }
+
+ if(NULL != _Materials)
+ {
+ for(unsigned i=0; i<_MSize; ++i)
+ delete _Materials[i];
+ delete [] _Materials;
+ _Materials = NULL;
+ }
+
+ if(NULL != _TexCoords)
+ {
+ delete [] _TexCoords;
+ _TexCoords = NULL;
+ }
+
+ if(NULL != _NumVertexPerFace)
+ {
+ delete [] _NumVertexPerFace;
+ _NumVertexPerFace = NULL;
+ }
+
+ if(NULL != _FaceStyle)
+ {
+ delete [] _FaceStyle;
+ _FaceStyle = NULL;
+ }
+
+ if(NULL != _VIndices)
+ {
+ delete [] _VIndices;
+ _VIndices = NULL;
+ }
+
+ if(NULL != _NIndices)
+ {
+ delete [] _NIndices;
+ _NIndices = NULL;
+ }
+
+ if(NULL != _MIndices)
+ {
+ delete [] _MIndices;
+ _MIndices = NULL;
+ }
+ if(NULL != _TIndices)
+ {
+ delete [] _TIndices;
+ _TIndices = NULL;
+ }
+ // should find a way to deallocates the displayList
+ // glDeleteLists(GLuint list, GLSizei range)
+ _displayList = 0;
+}
+
+void IndexedFaceSet::accept(SceneVisitor& v) {
+ Rep::accept(v);
+ v.visitIndexedFaceSet(*this);
+}
+
+void IndexedFaceSet::ComputeBBox()
+{
+ real XMax = _Vertices[0];
+ real YMax = _Vertices[1];
+ real ZMax = _Vertices[2];
+
+ real XMin = _Vertices[0];
+ real YMin = _Vertices[1];
+ real ZMin = _Vertices[2];
+
+ // parse all the coordinates to find
+ // the Xmax, YMax, ZMax
+ real *v = _Vertices;
+
+ for(unsigned i=0; i<_VSize/3; i++)
+ {
+ // X
+ if(*v > XMax)
+ XMax = *v;
+ if(*v < XMin)
+ XMin = *v;
+ v++;
+
+ if(*v > YMax)
+ YMax = *v;
+ if(*v < YMin)
+ YMin = *v;
+ v++;
+
+ if(*v > ZMax)
+ ZMax = *v;
+ if(*v < ZMin)
+ ZMin = *v;
+ v++;
+ }
+
+ SetBBox(BBox<Vec3r>(Vec3r(XMin, YMin, ZMin), Vec3r(XMax, YMax, ZMax)));
+}
diff --git a/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.h b/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.h
new file mode 100755
index 00000000000..c6951942dbb
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/IndexedFaceSet.h
@@ -0,0 +1,222 @@
+//
+// Filename : IndexedFaceSet.h
+// Author(s) : Stephane Grabli
+// Purpose : A Set of indexed faces to represent a surfacic object
+// Date of creation : 22/01/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef INDEXEDFACESET_H
+# define INDEXEDFACESET_H
+
+# include <stdio.h>
+# include <memory.h>
+
+//! inherits from class Rep
+# include "Rep.h"
+
+# include "../system/FreestyleConfig.h"
+
+class LIB_SCENE_GRAPH_EXPORT IndexedFaceSet : public Rep
+ {
+public:
+
+ /*! Triangles description style:*/
+ enum TRIANGLES_STYLE{TRIANGLE_STRIP, TRIANGLE_FAN, TRIANGLES};
+
+ /*! Builds an empty indexed face set
+ */
+ IndexedFaceSet();
+ /*! Builds an indexed face set
+ iVertices
+ The array of object vertices 3D coordinates (for all faces).
+ If iCopy != 0, the array is copied; you must desallocate iVertices. Else you must not.
+ iVSize
+ The size of iVertices (must be a multiple of 3)
+ iNormals
+ The array of object normals 3D coordinates.
+ If iCopy != 0, the array is copied; you must desallocate iNormals. Else you must not.
+ iNSize
+ The size of iNormals
+ iMaterials
+ The array of materials
+ iMSize
+ The size of iMaterials
+ iTexCoords
+ The array of texture coordinates.
+ iTSize
+ The size of iTexCoords (must be multiple of 2)
+ iNumFaces
+ The number of faces
+ iNumVertexPerFace
+ Array containing the number of vertices per face.
+ iFaceStyle
+ Array containing the description style of each faces.
+ The style belongs to:
+ - TRIANGLE_STRIP: the face indices describe a triangle strip
+ - TRIANGLE_FAN : the face indices describe a triangle fan
+ - TRIANGLES : the face indices describe single triangles
+ If iCopy != 0, the array is copied; you must desallocate iFaceStyle. Else you must not.
+ iVIndices,
+ Array of vertices indices.
+ The integers contained in this array must be multiple of 3.
+ If iCopy != 0, the array is copied; you must desallocate iVIndices. Else you must not.
+ iVISize
+ The size of iVIndices.
+ iNIndices
+ Array of normals indices.
+ The integers contained in this array must be multiple of 3.
+ If iCopy != 0, the array is copied; you must desallocate iNIndices. Else you must not.
+ iNISize
+ The size of iNIndices
+ iMIndices
+ The Material indices (per vertex)
+ iMISize
+ The size of iMIndices
+ iTIndices
+ The Texture coordinates indices (per vertex). The integers contained in this array must be multiple of 2.
+ iTISize
+ The size of iMIndices
+ iCopy
+ 0 : the arrays are not copied. The pointers passed as arguments are used.
+ IndexedFaceSet takes these arrays desallocation in charge.
+ 1 : the arrays are copied. The caller is in charge of the arrays, passed
+ as arguments desallocation.
+ */
+ IndexedFaceSet( real *iVertices, unsigned iVSize,
+ real *iNormals, unsigned iNSize,
+ Material **iMaterials, unsigned iMSize,
+ real *iTexCoords, unsigned iTSize,
+ unsigned iNumFaces, unsigned *iNumVertexPerFace, TRIANGLES_STYLE *iFaceStyle,
+ unsigned *iVIndices, unsigned iVISize,
+ unsigned *iNIndices, unsigned iNISize,
+ unsigned *iMIndices, unsigned iMISize,
+ unsigned *iTIndices, unsigned iTISize,
+ unsigned iCopy = 1
+ );
+
+ /*! Builds an indexed face set from an other indexed face set */
+ IndexedFaceSet(const IndexedFaceSet& iBrother);
+
+ void swap(IndexedFaceSet& ioOther){
+ std::swap(_Vertices, ioOther._Vertices);
+ std::swap(_Normals, ioOther._Normals);
+ std::swap(_Materials, ioOther._Materials);
+ std::swap(_TexCoords, ioOther._TexCoords);
+
+ std::swap(_VSize, ioOther._VSize);
+ std::swap(_NSize, ioOther._NSize);
+ std::swap(_MSize, ioOther._MSize);
+ std::swap(_TSize, ioOther._TSize);
+
+ std::swap(_NumFaces, ioOther._NumFaces);
+ std::swap(_NumVertexPerFace, ioOther._NumVertexPerFace);
+ std::swap(_FaceStyle, ioOther._FaceStyle);
+
+ std::swap(_VIndices, ioOther._VIndices);
+ std::swap(_NIndices, ioOther._NIndices);
+ std::swap(_MIndices, ioOther._MIndices); // Material Indices
+ std::swap(_TIndices, ioOther._TIndices);
+
+ std::swap(_VISize, ioOther._VISize);
+ std::swap(_NISize, ioOther._NISize);
+ std::swap(_MISize, ioOther._MISize);
+ std::swap(_TISize, ioOther._TISize);
+
+ std::swap(_displayList, ioOther._displayList);
+
+ Rep::swap(ioOther);
+ }
+
+ IndexedFaceSet& operator=(const IndexedFaceSet& iBrother){
+ IndexedFaceSet tmp(iBrother);
+ swap(tmp);
+ return *this;
+ }
+
+ /*! Desctructor
+ desallocates all the ressources */
+ virtual ~IndexedFaceSet();
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v);
+
+ /*! Compute the Bounding Box */
+ virtual void ComputeBBox();
+
+ /*! modifiers */
+ inline void SetDisplayList(unsigned int index) {_displayList = index;}
+
+ /*! Accessors */
+ virtual const real * vertices() const {return _Vertices;}
+ virtual const real * normals() const {return _Normals;}
+ virtual const Material*const* materials() const {return _Materials;}
+ virtual const real* texCoords() const {return _TexCoords;}
+ virtual const unsigned vsize() const {return _VSize;}
+ virtual const unsigned nsize() const {return _NSize;}
+ virtual const unsigned msize() const {return _MSize;}
+ virtual const unsigned tsize() const {return _TSize;}
+ virtual const unsigned numFaces() const {return _NumFaces;}
+ virtual const unsigned * numVertexPerFaces() const {return _NumVertexPerFace;}
+ virtual const TRIANGLES_STYLE * trianglesStyle() const {return _FaceStyle;}
+ virtual const unsigned* vindices() const {return _VIndices;}
+ virtual const unsigned* nindices() const {return _NIndices;}
+ virtual const unsigned* mindices() const {return _MIndices;}
+ virtual const unsigned* tindices() const {return _TIndices;}
+ virtual const unsigned visize() const {return _VISize;}
+ virtual const unsigned nisize() const {return _NISize;}
+ virtual const unsigned misize() const {return _MISize;}
+ virtual const unsigned tisize() const {return _TISize;}
+ inline unsigned int displayList() const {return _displayList;}
+
+protected:
+ real *_Vertices;
+ real *_Normals;
+ Material** _Materials;
+ real *_TexCoords;
+
+ unsigned _VSize;
+ unsigned _NSize;
+ unsigned _MSize;
+ unsigned _TSize;
+
+ unsigned _NumFaces;
+ unsigned *_NumVertexPerFace;
+ TRIANGLES_STYLE *_FaceStyle;
+
+ unsigned *_VIndices;
+ unsigned *_NIndices;
+ unsigned *_MIndices; // Material Indices
+ unsigned *_TIndices; // Texture coordinates Indices
+
+ unsigned _VISize;
+ unsigned _NISize;
+ unsigned _MISize;
+ unsigned _TISize;
+
+ unsigned int _displayList;
+
+};
+
+#endif // INDEXEDFACESET_H
diff --git a/source/blender/freestyle/intern/scene_graph/LineRep.cpp b/source/blender/freestyle/intern/scene_graph/LineRep.cpp
new file mode 100755
index 00000000000..9dec2ec803f
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/LineRep.cpp
@@ -0,0 +1,58 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "LineRep.h"
+
+void LineRep::ComputeBBox()
+{
+ real XMax = _vertices.front()[0];
+ real YMax = _vertices.front()[1];
+ real ZMax = _vertices.front()[2];
+
+ real XMin = _vertices.front()[0];
+ real YMin = _vertices.front()[1];
+ real ZMin = _vertices.front()[2];
+
+ // parse all the coordinates to find
+ // the XMax, YMax, ZMax
+ vector<Vec3r>::iterator v;
+ for(v=_vertices.begin(); v!=_vertices.end(); v++) {
+ // X
+ if((*v)[0] > XMax)
+ XMax = (*v)[0];
+ if((*v)[0] < XMin)
+ XMin = (*v)[0];
+
+ // Y
+ if((*v)[1] > YMax)
+ YMax = (*v)[1];
+ if((*v)[1] < YMin)
+ YMin = (*v)[1];
+
+ // Z
+ if((*v)[2] > ZMax)
+ ZMax = (*v)[2];
+ if((*v)[2] < ZMin)
+ ZMin = (*v)[2];
+ }
+
+ SetBBox(BBox<Vec3r>(Vec3r(XMin, YMin, ZMin), Vec3r(XMax, YMax, ZMax)));
+}
diff --git a/source/blender/freestyle/intern/scene_graph/LineRep.h b/source/blender/freestyle/intern/scene_graph/LineRep.h
new file mode 100755
index 00000000000..1bbba130ba3
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/LineRep.h
@@ -0,0 +1,130 @@
+//
+// Filename : LineRep.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define the representation of 3D Line.
+// Date of creation : 26/03/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef LINEREP_H
+# define LINEREP_H
+
+# include <vector>
+# include <list>
+# include "Rep.h"
+# include "../system/FreestyleConfig.h"
+
+using namespace std;
+
+/*! Base class for all lines objects */
+class LIB_SCENE_GRAPH_EXPORT LineRep : public Rep
+{
+public:
+
+ /*! Line description style */
+ enum LINES_STYLE{LINES, LINE_STRIP, LINE_LOOP};
+ inline LineRep() : Rep() {_width = 0.f;}
+
+ /*! Builds a single line from 2 vertices
+ * v1
+ * first vertex
+ * v2
+ * second vertex
+ */
+ inline LineRep(const Vec3r& v1, const Vec3r& v2)
+ : Rep()
+ {
+ SetStyle(LINES);
+ AddVertex(v1);
+ AddVertex(v2);
+ _width = 0.f;
+ }
+
+ /*! Builds a line rep from a vertex chain */
+ inline LineRep(const vector<Vec3r>& vertices)
+ : Rep()
+ {
+ _vertices = vertices;
+ SetStyle(LINE_STRIP);
+ _width = 0.f;
+ }
+
+ /*! Builds a line rep from a vertex chain */
+ inline LineRep(const list<Vec3r>& vertices)
+ : Rep()
+ {
+ for(list<Vec3r>::const_iterator v=vertices.begin(), end=vertices.end();
+ v!=end;
+ v++)
+ {
+ _vertices.push_back(*v);
+ }
+ SetStyle(LINE_STRIP);
+ _width = 0.f;
+ }
+
+ virtual ~LineRep()
+ {
+ _vertices.clear();
+ }
+
+ /*! accessors */
+ inline const LINES_STYLE style() const {return _Style;}
+ inline const vector<Vec3r>& vertices() const {return _vertices;}
+ inline float width() const {return _width;}
+
+ /*! modifiers */
+ inline void SetStyle(const LINES_STYLE iStyle) {_Style = iStyle;}
+ inline void AddVertex(const Vec3r& iVertex) {_vertices.push_back(iVertex);}
+ inline void SetVertices(const vector<Vec3r>& iVertices)
+ {
+ if(0 != _vertices.size())
+ {
+ _vertices.clear();
+ }
+ for(vector<Vec3r>::const_iterator v=iVertices.begin(), end=iVertices.end();
+ v!=end;
+ v++)
+ {
+ _vertices.push_back(*v);
+ }
+ }
+ inline void SetWidth(float iWidth) {_width=iWidth;}
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v) {
+ Rep::accept(v);
+ v.visitLineRep(*this);
+ }
+
+ /*! Computes the line bounding box.*/
+ virtual void ComputeBBox();
+
+private:
+ LINES_STYLE _Style;
+ vector<Vec3r> _vertices;
+ float _width;
+};
+
+#endif // LINEREP_H
diff --git a/source/blender/freestyle/intern/scene_graph/Material.h b/source/blender/freestyle/intern/scene_graph/Material.h
new file mode 100755
index 00000000000..09557ad3473
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/Material.h
@@ -0,0 +1,304 @@
+//
+// Filename : Material.h
+// Author(s) : Stephane Grabli
+// Purpose : Class used to handle materials.
+// Date of creation : 10/10/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef MATERIAL_H
+# define MATERIAL_H
+
+# include "../system/FreestyleConfig.h"
+
+/*! Class defining a material */
+class Material
+{
+public:
+ /*! Default constructor */
+ inline Material();
+ /*! Builds a Material from its diffuse, ambiant, specular, emissive
+ * colors and a shininess coefficient.
+ * \param iDiffuse
+ * A 4 element float-array containing the diffuse color.
+ * \param iAmbiant
+ * A 4 element float-array containing the ambiant color.
+ * \param iSpecular
+ * A 4 element float-array containing the specular color.
+ * \param iEmission
+ * A 4 element float-array containing the emissive color.
+ * \param iShininess
+ * The shininess coefficient.
+ */
+ inline Material(const float *iDiffuse,
+ const float *iAmbiant,
+ const float *iSpecular,
+ const float *iEmission,
+ const float iShininess);
+
+ /*! Copy constructor */
+ inline Material(const Material& m);
+ /*! Destructor */
+ virtual ~Material() {}
+
+
+ /*! Returns the diffuse color as a 4 float array */
+ inline const float * diffuse() const { return Diffuse; }
+ /*! Returns the red component of the diffuse color */
+ inline const float diffuseR() const { return Diffuse[0]; }
+ /*! Returns the green component of the diffuse color */
+ inline const float diffuseG() const { return Diffuse[1]; }
+ /*! Returns the blue component of the diffuse color */
+ inline const float diffuseB() const { return Diffuse[2]; }
+ /*! Returns the alpha component of the diffuse color */
+ inline const float diffuseA() const { return Diffuse[3]; }
+
+ /*! Returns the specular color as a 4 float array */
+ inline const float * specular() const { return Specular; }
+ /*! Returns the red component of the specular color */
+ inline const float specularR() const { return Specular[0]; }
+ /*! Returns the green component of the specular color */
+ inline const float specularG() const { return Specular[1]; }
+ /*! Returns the blue component of the specular color */
+ inline const float specularB() const { return Specular[2]; }
+ /*! Returns the alpha component of the specular color */
+ inline const float specularA() const { return Specular[3]; }
+
+ /*! Returns the ambiant color as a 4 float array */
+ inline const float * ambient() const { return Ambient; }
+ /*! Returns the red component of the ambiant color */
+ inline const float ambientR() const { return Ambient[0]; }
+ /*! Returns the green component of the ambiant color */
+ inline const float ambientG() const { return Ambient[1]; }
+ /*! Returns the blue component of the ambiant color */
+ inline const float ambientB() const { return Ambient[2]; }
+ /*! Returns the alpha component of the ambiant color */
+ inline const float ambientA() const { return Ambient[3]; }
+
+ /*! Returns the emissive color as a 4 float array */
+ inline const float * emission() const { return Emission; }
+ /*! Returns the red component of the emissive color */
+ inline const float emissionR() const { return Emission[0]; }
+ /*! Returns the green component of the emissive color */
+ inline const float emissionG() const { return Emission[1]; }
+ /*! Returns the blue component of the emissive color */
+ inline const float emissionB() const { return Emission[2]; }
+ /*! Returns the alpha component of the emissive color */
+ inline const float emissionA() const { return Emission[3]; }
+
+ /*! Returns the shininess coefficient */
+ inline const float shininess() const { return Shininess; }
+
+ /*! Sets the diffuse color.
+ * \param r
+ * Red component
+ * \param g
+ * Green component
+ * \param b
+ * Blue component
+ * \param a
+ * Alpha component
+ */
+ inline void SetDiffuse(const float r, const float g, const float b, const float a);
+ /*! Sets the specular color.
+ * \param r
+ * Red component
+ * \param g
+ * Green component
+ * \param b
+ * Blue component
+ * \param a
+ * Alpha component
+ */
+ inline void SetSpecular(const float r, const float g, const float b, const float a);
+ /*! Sets the ambiant color.
+ * \param r
+ * Red component
+ * \param g
+ * Green component
+ * \param b
+ * Blue component
+ * \param a
+ * Alpha component
+ */
+ inline void SetAmbient(const float r, const float g, const float b, const float a);
+
+ /*! Sets the emissive color.
+ * \param r
+ * Red component
+ * \param g
+ * Green component
+ * \param b
+ * Blue component
+ * \param a
+ * Alpha component
+ */
+ inline void SetEmission(const float r, const float g, const float b, const float a);
+
+ /*! Sets the shininess.
+ * \param s
+ * Shininess
+ */
+ inline void SetShininess(const float s);
+
+ /* operators */
+ inline Material& operator=(const Material& m);
+ inline bool operator!=(const Material& m) const;
+ inline bool operator==(const Material& m) const;
+
+private:
+
+ /*! Material properties */
+ float Diffuse[4];
+ float Specular[4];
+ float Ambient[4];
+ float Emission[4];
+ float Shininess;
+
+};
+
+Material::Material()
+{
+ Ambient[0] = Ambient[1] = Ambient[2] = 0.2f;
+ Ambient[3] = 1.f;
+
+ Diffuse[0] = Diffuse[1] = Diffuse[2] = 0.8f;
+ Diffuse[3] = 1.f;
+
+ Emission[0] = Emission[1] = Emission[2] = 0.f;
+ Emission[3] = 1.f;
+
+ Specular[0] = Specular[1] = Specular[2] = 0.f;
+ Specular[3] = 1.f;
+
+ Shininess = 0.f;
+}
+
+Material::Material(const float *iDiffuse,
+ const float *iAmbiant,
+ const float *iSpecular,
+ const float *iEmission,
+ const float iShininess)
+{
+ for(int i=0; i<4; i++)
+ {
+ Diffuse[i] = iDiffuse[i];
+ Specular[i] = iSpecular[i];
+ Ambient[i] = iAmbiant[i];
+ Emission[i] = iEmission[i];
+ }
+
+ Shininess = iShininess;
+}
+
+Material::Material(const Material& m)
+{
+ for(int i=0; i<4; i++)
+ {
+ Diffuse[i] = m.diffuse()[i];
+ Specular[i] = m.specular()[i];
+ Ambient[i] = m.ambient()[i];
+ Emission[i] = m.emission()[i];
+ }
+
+ Shininess = m.shininess();
+}
+
+void Material::SetDiffuse(const float r, const float g, const float b, const float a)
+{
+ Diffuse[0] = r;
+ Diffuse[1] = g;
+ Diffuse[2] = b;
+ Diffuse[3] = a;
+}
+
+void Material::SetSpecular(const float r, const float g, const float b, const float a)
+{
+ Specular[0] = r;
+ Specular[1] = g;
+ Specular[2] = b;
+ Specular[3] = a;
+}
+
+void Material::SetAmbient(const float r, const float g, const float b, const float a)
+{
+ Ambient[0] = r;
+ Ambient[1] = g;
+ Ambient[2] = b;
+ Ambient[3] = a;
+}
+
+void Material::SetEmission(const float r, const float g, const float b, const float a)
+{
+ Emission[0] = r;
+ Emission[1] = g;
+ Emission[2] = b;
+ Emission[3] = a;
+}
+
+void Material::SetShininess(const float s)
+{
+ Shininess = s;
+}
+
+Material& Material::operator=(const Material& m)
+{
+ for(int i=0; i<4; i++)
+ {
+ Diffuse[i] = m.diffuse()[i];
+ Specular[i] = m.specular()[i];
+ Ambient[i] = m.ambient()[i];
+ Emission[i] = m.emission()[i];
+ }
+
+ Shininess = m.shininess();
+
+ return *this;
+}
+
+bool Material::operator!=(const Material& m) const
+{
+ if(Shininess != m.shininess())
+ return true;
+ for(int i=0; i<4; i++)
+ {
+ if(Diffuse[i] != m.diffuse()[i])
+ return true;
+ if(Specular[i] != m.specular()[i])
+ return true;
+ if(Ambient[i] != m.ambient()[i])
+ return true;
+ if(Emission[i] != m.emission()[i])
+ return true;
+ }
+
+ return false;
+}
+
+bool Material::operator==(const Material& m) const
+{
+ return (!((*this)!=m));
+}
+
+#endif // MATERIAL_H
diff --git a/source/blender/freestyle/intern/scene_graph/MaxFileLoader.cpp b/source/blender/freestyle/intern/scene_graph/MaxFileLoader.cpp
new file mode 100755
index 00000000000..515874c4021
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/MaxFileLoader.cpp
@@ -0,0 +1,388 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "MaxFileLoader.h"
+
+MaxFileLoader::MaxFileLoader()
+{
+ _FileName = NULL;
+ _3dsFile = NULL;
+ _Scene = NULL;
+ _numFacesRead = 0;
+ _minEdgeSize = DBL_MAX;
+}
+
+MaxFileLoader::MaxFileLoader(const char *iFileName)
+{
+ _FileName = new char[strlen(iFileName)+1];
+ strcpy(_FileName, iFileName);
+
+ _3dsFile = NULL;
+ _Scene = NULL;
+ _numFacesRead = 0;
+ _minEdgeSize = DBL_MAX;
+}
+
+MaxFileLoader::~MaxFileLoader()
+{
+ if(NULL != _FileName)
+ {
+ delete [] _FileName;
+ _FileName = NULL;
+ }
+
+ if(NULL != _3dsFile)
+ {
+ lib3ds_file_free(_3dsFile);
+ _3dsFile = NULL;
+ }
+
+ _Scene = NULL;
+}
+
+void MaxFileLoader::SetFileName(const char *iFileName)
+{
+ if(NULL != _FileName)
+ delete [] _FileName;
+
+ _FileName = new char[strlen(iFileName)+1];
+ strcpy(_FileName, iFileName);
+}
+
+NodeGroup* MaxFileLoader::Load()
+{
+ _3dsFile=lib3ds_file_load(_FileName);
+ if(NULL == _3dsFile)
+ return NULL;
+
+ /* No nodes? Fabricate nodes to display all the meshes. */
+ if( !_3dsFile->nodes )
+ {
+ Lib3dsMesh *mesh;
+ Lib3dsNode *node;
+
+ for(mesh = _3dsFile->meshes; mesh != NULL; mesh = mesh->next)
+ {
+ node = lib3ds_node_new_object();
+ strcpy(node->name, mesh->name);
+ node->parent_id = LIB3DS_NO_PARENT;
+ node->data.object.scl_track.keyL = lib3ds_lin3_key_new();
+ node->data.object.scl_track.keyL->value[0] = 1.;
+ node->data.object.scl_track.keyL->value[1] = 1.;
+ node->data.object.scl_track.keyL->value[2] = 1.;
+ lib3ds_file_insert_node(_3dsFile, node);
+ }
+ }
+
+ lib3ds_file_eval(_3dsFile, 0);
+
+ // creation of the scene root node
+ _Scene = new NodeGroup;
+
+ // converts the 3ds format to the scene format
+ // the RenderNode method modifies _Scene.
+ Lib3dsNode *p;
+ for (p=_3dsFile->nodes; p!=0; p=p->next) {
+ RenderNode(p);
+ }
+ //Returns the built scene.
+ return _Scene;
+}
+
+void lib3ds_normal_transform(Lib3dsVector c, Lib3dsMatrix m, Lib3dsVector a)
+{
+ c[0]= (m[0][0]*a[0] + m[1][0]*a[1] + m[2][0]*a[2]);
+ c[1]= (m[0][1]*a[0] + m[1][1]*a[1] + m[2][1]*a[2]);
+ c[2]= (m[0][2]*a[0] + m[1][2]*a[1] + m[2][2]*a[2]);
+
+ // c[0]= (m[0][0]*a[0] + m[1][0]*a[1] + m[2][0]*a[2])/m[0][0];
+ // c[1]= (m[0][1]*a[0] + m[1][1]*a[1] + m[2][1]*a[2])/m[1][1];
+ // c[2]= (m[0][2]*a[0] + m[1][2]*a[1] + m[2][2]*a[2])/m[2][2];
+
+ //lib3ds_vector_normalize(c);
+
+ // c[0] = c[0]*m[0][0];
+ // c[1] = c[1]*m[1][1];
+ // c[2] = c[2]*m[2][2];
+
+}
+
+
+
+void MaxFileLoader::RenderNode(Lib3dsNode *iNode)
+{
+ Lib3dsNode *p;
+ for (p=iNode->childs; p!=0; p=p->next)
+ RenderNode(p);
+
+ float minBBox[3];
+ float maxBBox[3];
+ if (iNode->type==LIB3DS_OBJECT_NODE)
+ {
+ if (strcmp(iNode->name,"$$$DUMMY")==0)
+ return;
+
+ NodeTransform *currentMesh = new NodeTransform;
+ NodeShape * shape;
+
+ if (!iNode->user.d) // If the shape is not built yet, just do it !
+ {
+ Lib3dsMesh *mesh=lib3ds_file_mesh_by_name(_3dsFile, iNode->name);
+ ASSERT(mesh);
+ if (!mesh)
+ return;
+
+ // builds the shape:
+ shape = new NodeShape;
+ iNode->user.d=(unsigned long)shape; // We store as user data the NodeShape address
+
+ // We invert the matrix in order to
+ // be able to retrieve the shape's coordinates
+ // in its local coordinates system (origin is the iNode pivot)
+ Lib3dsMatrix M;
+ lib3ds_matrix_copy(M, mesh->matrix);
+ lib3ds_matrix_inv(M);
+
+ // We compute a normal per vertex and manages the smoothing of the shape:
+ Lib3dsVector *normalL=(Lib3dsVector*)malloc(3*sizeof(Lib3dsVector)*mesh->faces);
+ lib3ds_mesh_calculate_normals(mesh, normalL);
+
+ // We build the rep:
+ IndexedFaceSet *rep;
+ unsigned numFaces = mesh->faces;
+
+ unsigned vSize = 3*3*numFaces;
+ float *vertices = new float[vSize];
+ unsigned nSize = vSize;
+ float *normals = new float[nSize];
+ unsigned *numVertexPerFaces = new unsigned[numFaces];
+ vector<Material> meshMaterials;
+
+ IndexedFaceSet::TRIANGLES_STYLE *faceStyle = new IndexedFaceSet::TRIANGLES_STYLE[numFaces];
+ unsigned i;
+ for (i = 0; i <numFaces; i++) {
+ faceStyle[i] = IndexedFaceSet::TRIANGLES;
+ numVertexPerFaces[i] = 3;
+ }
+
+ unsigned viSize = 3*numFaces;
+ unsigned *VIndices = new unsigned[viSize];
+ unsigned niSize = viSize;
+ unsigned *NIndices = new unsigned[niSize];
+ unsigned *MIndices = new unsigned[viSize]; // Material Indices
+
+
+ float *pv = vertices;
+ float *pn = normals;
+ unsigned *pvi = VIndices;
+ unsigned *pni = NIndices;
+ unsigned *pmi = MIndices;
+
+ unsigned currentIndex = 0;
+ unsigned currentMIndex = 0;
+
+ Material tmpMat;
+
+ // we want to find the min and max coordinates as we build the rep.
+ // We initialize the min and max values whith the first vertex.
+ float pvtmp[3];
+ lib3ds_vector_transform(pvtmp, M, mesh->pointL[mesh->faceL[0].points[0]].pos);
+ minBBox[0] = pvtmp[0];
+ maxBBox[0] = pvtmp[0];
+ minBBox[1] = pvtmp[1];
+ maxBBox[1] = pvtmp[1];
+ minBBox[2] = pvtmp[2];
+ maxBBox[2] = pvtmp[2];
+
+ unsigned p;
+ real vert[3][3];
+ real norm;
+ for(p=0; p<mesh->faces; ++p) // we parse the faces of the mesh
+ {
+ Lib3dsFace *f=&mesh->faceL[p];
+ Lib3dsMaterial *mat=0;
+ if (f->material[0])
+ mat=lib3ds_file_material_by_name(_3dsFile, f->material);
+
+ if (mat)
+ {
+ tmpMat.SetDiffuse(mat->diffuse[0], mat->diffuse[1], mat->diffuse[2], mat->diffuse[3]);
+ tmpMat.SetSpecular(mat->specular[0], mat->specular[1], mat->specular[2], mat->specular[3]);
+ float s = (float)pow(2.0, 10.0*mat->shininess);
+ if(s > 128.f)
+ s = 128.f;
+ tmpMat.SetShininess(s);
+ }
+
+ if(meshMaterials.empty()){
+ meshMaterials.push_back(tmpMat);
+ shape->SetMaterial(tmpMat);
+ }else{
+ // find if the material is aleady in the list
+ unsigned i=0;
+ bool found = false;
+ for(vector<Material>::iterator it=meshMaterials.begin(), itend=meshMaterials.end();
+ it!=itend;
+ ++it){
+ if(*it == tmpMat){
+ currentMIndex = i;
+ found = true;
+ break;
+ }
+ ++i;
+ }
+ if(!found){
+ meshMaterials.push_back(tmpMat);
+ currentMIndex = meshMaterials.size()-1;
+ }
+ }
+
+
+ for(i=0; i<3; ++i) // we parse the vertices of the face f
+ {
+ unsigned j;
+ lib3ds_vector_transform(pv, M, mesh->pointL[f->points[i]].pos); //fills the cells of the pv array
+ for(j=0; j<3; j++) // we parse the xyz coordinates of the vertex i
+ {
+ if(minBBox[j] > pv[j])
+ minBBox[j] = pv[j];
+
+ if(maxBBox[j] < pv[j])
+ maxBBox[j] = pv[j];
+
+ vert[i][j] = pv[j];
+ }
+
+ for(j=0; j<3; j++)
+ pn[j] = f->normal[j];
+
+ lib3ds_normal_transform(pn, M, normalL[3*p+i]); //fills the cells of the pv array
+ //lib3ds_vector_normalize(pn);
+
+
+ *pvi = currentIndex;
+ *pni = currentIndex;
+ *pmi = currentMIndex;
+
+
+ currentIndex +=3;
+ pv += 3;
+ pn += 3;
+ pvi++;
+ pni++;
+ pmi++;
+
+ }
+
+ for(i=0; i<3; i++)
+ {
+ norm = 0.0;
+ for (unsigned j = 0; j < 3; j++)
+ norm += (vert[i][j] - vert[(i+1)%3][j])*(vert[i][j] - vert[(i+1)%3][j]);
+ norm = sqrt(norm);
+ if(_minEdgeSize > norm)
+ _minEdgeSize = norm;
+ }
+
+ _numFacesRead++;
+ }
+
+ free(normalL);
+
+ // We might have several times the same vertex. We want a clean
+ // shape with no real-vertex. Here, we are making a cleaning
+ // pass.
+ real *cleanVertices = NULL;
+ unsigned cvSize;
+ unsigned *cleanVIndices = NULL;
+
+ GeomCleaner::CleanIndexedVertexArray(
+ vertices, vSize,
+ VIndices, viSize,
+ &cleanVertices, &cvSize,
+ &cleanVIndices);
+
+ real *cleanNormals = NULL;
+ unsigned cnSize;
+ unsigned *cleanNIndices = NULL;
+
+ GeomCleaner::CleanIndexedVertexArray(
+ normals, nSize,
+ NIndices, niSize,
+ &cleanNormals, &cnSize,
+ &cleanNIndices);
+
+ // format materials array
+ Material** marray = new Material*[meshMaterials.size()];
+ unsigned mindex=0;
+ for(vector<Material>::iterator m=meshMaterials.begin(), mend=meshMaterials.end();
+ m!=mend;
+ ++m){
+ marray[mindex] = new Material(*m);
+ ++mindex;
+ }
+ // deallocates memory:
+ delete [] vertices;
+ delete [] normals;
+ delete [] VIndices;
+ delete [] NIndices;
+
+ // Create the IndexedFaceSet with the retrieved attributes
+ rep = new IndexedFaceSet(cleanVertices, cvSize,
+ cleanNormals, cnSize,
+ marray, meshMaterials.size(),
+ 0, 0,
+ numFaces, numVertexPerFaces, faceStyle,
+ cleanVIndices, viSize,
+ cleanNIndices, niSize,
+ MIndices, viSize,
+ 0,0,
+ 0);
+ // sets the id of the rep
+ rep->SetId(Id(iNode->node_id, 0));
+
+
+ const BBox<Vec3r> bbox = BBox<Vec3r>(Vec3r(minBBox[0], minBBox[1], minBBox[2]),
+ Vec3r(maxBBox[0], maxBBox[1], maxBBox[2]));
+ rep->SetBBox(bbox);
+ shape->AddRep(rep);
+ }
+
+ if (iNode->user.d)
+ {
+ if(NULL != iNode->matrix)
+ {
+ Lib3dsObjectData *d = &iNode->data.object;
+ Matrix44r M44f;
+ for(unsigned i=0; i<4; i++)
+ for(unsigned j=0; j<4; j++)
+ M44f(i,j) = iNode->matrix[j][i];
+
+ currentMesh->SetMatrix(Matrix44r(M44f));
+ currentMesh->Translate(-d->pivot[0], -d->pivot[1], -d->pivot[2]);
+ }
+ shape = (NodeShape*)iNode->user.d;
+ currentMesh->AddChild(shape);
+ _Scene->AddChild(currentMesh);
+ }
+ }
+
+}
diff --git a/source/blender/freestyle/intern/scene_graph/MaxFileLoader.h b/source/blender/freestyle/intern/scene_graph/MaxFileLoader.h
new file mode 100755
index 00000000000..ab31e656d46
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/MaxFileLoader.h
@@ -0,0 +1,94 @@
+//
+// Filename : MaxFileLoader.h
+// Author(s) : Stephane Grabli
+// Purpose : Class used to load 3ds models.
+// Date of creation : 10/10/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef MAX_FILE_LOADER_H
+# define MAX_FILE_LOADER_H
+
+# include <string.h>
+# include <float.h>
+# include <lib3ds/file.h>
+# include <lib3ds/node.h>
+# include <lib3ds/camera.h>
+# include <lib3ds/mesh.h>
+# include <lib3ds/material.h>
+# include <lib3ds/matrix.h>
+# include <lib3ds/vector.h>
+# include <lib3ds/file.h>
+# include "../system/FreestyleConfig.h"
+# include "NodeGroup.h"
+# include "NodeTransform.h"
+# include "NodeShape.h"
+# include "IndexedFaceSet.h"
+# include "../geometry/BBox.h"
+# include "../geometry/Geom.h"
+# include "../geometry/GeomCleaner.h"
+
+
+class NodeGroup;
+
+class LIB_SCENE_GRAPH_EXPORT MaxFileLoader
+{
+public:
+ /*! Builds a MaxFileLoader */
+ MaxFileLoader();
+ /*! Builds a MaxFileLoader to load the iFileName
+ file.
+ iFileName
+ The name of the 3dsMax file to load
+ */
+ explicit MaxFileLoader(const char *iFileName);
+ virtual ~MaxFileLoader();
+
+ /*! Sets the name of the 3dsMax file to load */
+ void SetFileName(const char *iFileName);
+
+ /*! Loads the 3D scene and returns
+ * a pointer to the scene root node
+ */
+ NodeGroup * Load();
+ //void Load(const char *iFileName);
+
+ /*! Gets the number of read faces */
+ inline unsigned int numFacesRead() {return _numFacesRead;}
+
+ /*! Gets the smallest edge size read */
+ inline real minEdgeSize() {return _minEdgeSize;}
+
+protected:
+ void RenderNode(Lib3dsNode *iNode);
+
+protected:
+ char *_FileName;
+ Lib3dsFile *_3dsFile;
+ NodeGroup* _Scene;
+ unsigned _numFacesRead;
+ real _minEdgeSize;
+};
+
+#endif // MAX_FILE_LOADER_H
diff --git a/source/blender/freestyle/intern/scene_graph/Node.h b/source/blender/freestyle/intern/scene_graph/Node.h
new file mode 100755
index 00000000000..1726dd3c853
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/Node.h
@@ -0,0 +1,97 @@
+//
+// Filename : Node.h
+// Author(s) : Stephane Grabli
+// Purpose : Abstract class for scene graph nodes. Inherits from
+// BaseObject which defines the addRef release mechanism.
+// Date of creation : 24/01/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef NODE_H
+# define NODE_H
+
+# include "../system/FreestyleConfig.h"
+# include "../system/BaseObject.h"
+# include "SceneVisitor.h"
+# include "../geometry/BBox.h"
+# include "../geometry/Geom.h"
+# include "../system/Precision.h"
+
+using namespace std;
+using namespace Geometry;
+
+class LIB_SCENE_GRAPH_EXPORT Node : public BaseObject
+{
+public:
+
+ inline Node() : BaseObject() {}
+ inline Node(const Node& iBrother) : BaseObject()
+ {
+ _BBox = iBrother.bbox();
+ }
+ virtual ~Node(){}
+
+ /*! Accept the corresponding visitor
+ * Each inherited node
+ * must overload this method
+ */
+ virtual void accept(SceneVisitor& v) {
+ v.visitNode(*this);
+ }
+
+ /*! bounding box management */
+ /*! Returns the node bounding box
+ * If no bounding box exists, an empty bbox
+ * is returned
+ */
+ virtual const BBox<Vec3r>& bbox() const {return _BBox;}
+
+ /*! Sets the Node bounding box */
+ virtual void SetBBox(const BBox<Vec3r>& iBox) {_BBox = iBox;}
+
+ /*! Makes the union of _BBox and iBox */
+ virtual void AddBBox(const BBox<Vec3r>& iBox)
+ {
+ if(iBox.empty())
+ return;
+
+ if(_BBox.empty())
+ _BBox = iBox;
+ else
+ _BBox += iBox;
+ }
+
+ /*! Updates the BBox */
+ virtual const BBox<Vec3r>& UpdateBBox() {return _BBox;}
+
+ /*! Clears the bounding box */
+ virtual void clearBBox() { _BBox.clear(); }
+
+protected:
+
+private:
+ BBox<Vec3r> _BBox;
+};
+
+#endif // NODE_H
diff --git a/source/blender/freestyle/intern/scene_graph/NodeCamera.cpp b/source/blender/freestyle/intern/scene_graph/NodeCamera.cpp
new file mode 100644
index 00000000000..2d850287ae5
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeCamera.cpp
@@ -0,0 +1,119 @@
+#include "NodeCamera.h"
+#include <math.h>
+
+void loadIdentity(double * matrix){
+ int i;
+
+ // Build Identity matrix
+ for(i=0;i<16;++i){
+ double value ;
+ if((i % 5) == 0)
+ value = 1.0;
+ else
+ value = 0;
+ matrix[i] = value;
+ }
+}
+
+NodeCamera::NodeCamera(CameraType camera_type)
+:camera_type_(camera_type){
+ loadIdentity(modelview_matrix_);
+ loadIdentity(projection_matrix_);
+}
+
+NodeCamera::NodeCamera(const NodeCamera& iBrother)
+:camera_type_(iBrother.camera_type_){
+ memcpy(modelview_matrix_, iBrother.modelview_matrix_, 16*sizeof(double));
+ memcpy(projection_matrix_, iBrother.projection_matrix_, 16*sizeof(double));
+}
+
+void NodeCamera::accept(SceneVisitor& v){
+ v.visitNodeCamera(*this) ;
+}
+
+void NodeCamera::setModelViewMatrix(double modelview_matrix[16]){
+ memcpy(modelview_matrix_, modelview_matrix,16*sizeof(double));
+}
+
+void NodeCamera::setProjectionMatrix(double projection_matrix[16]){
+ memcpy(projection_matrix_, projection_matrix,16*sizeof(double));
+}
+
+NodeOrthographicCamera::NodeOrthographicCamera()
+:NodeCamera(NodeCamera::ORTHOGRAPHIC),
+left_(0),right_(0),bottom_(0),top_(0),zNear_(0),zFar_(0){
+ loadIdentity(projection_matrix_);
+ loadIdentity(modelview_matrix_);
+}
+
+NodeOrthographicCamera::NodeOrthographicCamera(double left
+ , double right
+ , double bottom
+ , double top
+ , double zNear
+ , double zFar
+ )
+:NodeCamera(NodeCamera::ORTHOGRAPHIC),
+left_(left),
+right_(right),
+bottom_(bottom),
+top_(top),
+zNear_(zNear),
+zFar_(zFar){
+
+ loadIdentity(projection_matrix_);
+
+ projection_matrix_[0] = 2.0/(right-left);
+ projection_matrix_[3] = -(right + left) / (right - left) ;
+ projection_matrix_[5] = 2.0/(top-bottom);
+ projection_matrix_[7] = -(top + bottom) / (top - bottom) ;
+ projection_matrix_[10] = -2.0/(zFar-zNear);
+ projection_matrix_[11] = -(zFar + zNear) / (zFar - zNear);
+
+}
+
+NodeOrthographicCamera::NodeOrthographicCamera(const NodeOrthographicCamera& iBrother)
+:NodeCamera(iBrother),left_(iBrother.left_),right_(iBrother.right_),bottom_(iBrother.bottom_),top_(iBrother.top_),zNear_(iBrother.zNear_),zFar_(iBrother.zFar_){
+}
+
+NodePerspectiveCamera::NodePerspectiveCamera()
+:NodeCamera(NodeCamera::PERSPECTIVE){
+}
+
+NodePerspectiveCamera::NodePerspectiveCamera(double fovy
+ , double aspect
+ , double zNear
+ , double zFar)
+:NodeCamera(NodeCamera::PERSPECTIVE){
+ loadIdentity(projection_matrix_);
+
+ double f = cos(fovy/2.0)/sin(fovy/2.0); // cotangent
+
+ projection_matrix_[0] = f/aspect;
+ projection_matrix_[5] = f;
+ projection_matrix_[10] = (zNear+zFar)/(zNear-zFar);
+ projection_matrix_[11] = (2.0*zNear*zFar)/(zNear-zFar);
+ projection_matrix_[14] = -1.0;
+ projection_matrix_[15] = 0;
+
+}
+
+NodePerspectiveCamera::NodePerspectiveCamera(double left,
+ double right,
+ double bottom,
+ double top,
+ double zNear,
+ double zFar)
+:NodeCamera(NodeCamera::PERSPECTIVE){
+ loadIdentity(projection_matrix_);
+
+ projection_matrix_[0] = (2.0*zNear)/(right-left);
+ projection_matrix_[2] = (right+left)/(right-left);
+ projection_matrix_[5] = (2.0*zNear)/(top-bottom);
+ projection_matrix_[6] = (top+bottom)/(top-bottom);
+ projection_matrix_[10] = - (zFar+zNear)/(zFar-zNear);
+ projection_matrix_[11] = - (2.0*zFar*zNear)/(zFar-zNear);
+ projection_matrix_[14] = -1.0;
+ projection_matrix_[15] = 0;
+}
+
diff --git a/source/blender/freestyle/intern/scene_graph/NodeCamera.h b/source/blender/freestyle/intern/scene_graph/NodeCamera.h
new file mode 100644
index 00000000000..76ccf465d38
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeCamera.h
@@ -0,0 +1,192 @@
+//
+// Filename : NodeCamera.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to represent a light node
+// Date of creation : 25/01/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+#ifndef NODE_CAMERA_H_
+#define NODE_CAMERA_H_
+
+# include "../geometry/Geom.h"
+# include "../system/FreestyleConfig.h"
+# include "Node.h"
+
+using namespace Geometry;
+
+class NodeOrthographicCamera;
+class NodePerspectiveCamera;
+class LIB_SCENE_GRAPH_EXPORT NodeCamera : public Node
+{
+public:
+ typedef enum {PERSPECTIVE,ORTHOGRAPHIC,GENERIC} CameraType;
+
+ /*! Default matrices: Identity for both projection and modelview. */
+ NodeCamera(CameraType camera_type = GENERIC);
+ NodeCamera(const NodeCamera& iBrother);
+
+ virtual ~NodeCamera() {}
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v);
+
+ /*! Matrix is copied */
+ void setModelViewMatrix(double modelview_matrix[16]);
+ /*! Matrix is copied */
+ void setProjectionMatrix(double projection_matrix[16]);
+
+ double * modelViewMatrix() {return modelview_matrix_;}
+ double * projectionMatrix() {return projection_matrix_;}
+
+protected:
+ // row major right handed matrix
+ double modelview_matrix_[16];
+ // row major right handed matrix
+ double projection_matrix_[16];
+
+ CameraType camera_type_;
+};
+
+class LIB_SCENE_GRAPH_EXPORT NodeOrthographicCamera : public NodeCamera{
+public:
+ NodeOrthographicCamera();
+ /*! Builds a parallel projection matrix a la glOrtho.
+ A 0 0 tx
+ 0 B 0 ty
+ 0 0 C tz
+ 0 0 0 1
+
+ where
+
+ A =
+ 2 / (right - left)
+ B =
+ 2 / (top - bottom)
+ C =
+ -2 / (far - near)
+ tx =
+ -(right + left) / (right - left)
+ ty =
+ -(top + bottom) / (top - bottom)
+ tz =
+ -(zFar + zNear) / (zFar - zNear)
+ */
+ NodeOrthographicCamera(double left
+ , double right
+ , double bottom
+ , double top
+ , double zNear
+ , double zFar
+ );
+
+ double left() const {return left_;}
+ double right() const {return right_;}
+ double bottom() const {return bottom_;}
+ double top() const {return top_;}
+ double zNear() const {return zNear_;}
+ double zFar() const {return zFar_;}
+
+ NodeOrthographicCamera(const NodeOrthographicCamera& iBrother);
+
+private:
+ double left_;
+ double right_;
+ double bottom_;
+ double top_;
+ double zNear_;
+ double zFar_;
+};
+
+class LIB_SCENE_GRAPH_EXPORT NodePerspectiveCamera : public NodeCamera {
+public:
+ NodePerspectiveCamera();
+ /*! Builds a perspective projection matrix a la gluPerspective.
+ Given f defined as follows:
+ fovy
+ f = cotangent(____)
+ 2
+ The generated matrix is
+
+
+ ( f )
+ | ______ |
+ | aspect 0 0 0 |
+ | |
+ | 0 f 0 0 |
+ | |
+ | zNear+zFar 2*zNear*zFar |
+ | __________ ____________ |
+ | 0 0 zNear-zFar zNear-zFar |
+ | |
+ ( 0 0 -1 0 )
+ \param fovy
+ Field of View specified in radians.
+ */
+ NodePerspectiveCamera(double fovy
+ , double aspect
+ , double zNear
+ , double zFar);
+
+ /*! Builds a perspective projection matrix a la glFrustum.
+ ( 2*zNear )
+ | __________ |
+ | right-left 0 A 0 |
+ | |
+ | 2*zNear |
+ | 0 __________ B 0 |
+ | top-bottom |
+ | |
+ | 0 0 C D |
+ | |
+ | 0 0 -1 0 |
+ ( )
+
+ right+left
+ A = __________
+ right-left
+
+ top+bottom
+ B = __________
+ top-bottom
+
+ zFar+zNear
+ C = - __________
+ zFar-zNear
+
+ 2*zFar*zNear
+ D = - ____________
+ zFar-zNear
+ */
+ NodePerspectiveCamera(double left,
+ double right,
+ double bottom,
+ double top,
+ double zNear,
+ double zFar);
+};
+
+
+#endif // NODE_CAMERA_H_ \ No newline at end of file
diff --git a/source/blender/freestyle/intern/scene_graph/NodeDrawingStyle.cpp b/source/blender/freestyle/intern/scene_graph/NodeDrawingStyle.cpp
new file mode 100755
index 00000000000..acd740ee055
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeDrawingStyle.cpp
@@ -0,0 +1,34 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "NodeDrawingStyle.h"
+
+void NodeDrawingStyle::accept(SceneVisitor& v) {
+ v.visitNodeDrawingStyle(*this);
+
+ v.visitNodeDrawingStyleBefore(*this);
+ v.visitDrawingStyle(_DrawingStyle);
+ for(vector<Node*>::iterator node=_Children.begin(), end=_Children.end();
+ node!=end;
+ node++)
+ (*node)->accept(v);
+ v.visitNodeDrawingStyleAfter(*this);
+}
diff --git a/source/blender/freestyle/intern/scene_graph/NodeDrawingStyle.h b/source/blender/freestyle/intern/scene_graph/NodeDrawingStyle.h
new file mode 100755
index 00000000000..18442ae10f9
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeDrawingStyle.h
@@ -0,0 +1,70 @@
+//
+// Filename : NodeDrawingStyle.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a Drawing Style to be applied
+// to the underlying children. Inherits from NodeGroup.
+// Date of creation : 06/02/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef NODEDRAWINGSTYLE_H
+# define NODEDRAWINGSTYLE_H
+
+# include "../system/FreestyleConfig.h"
+# include "NodeGroup.h"
+# include "DrawingStyle.h"
+
+class LIB_SCENE_GRAPH_EXPORT NodeDrawingStyle : public NodeGroup
+{
+public:
+
+ inline NodeDrawingStyle() : NodeGroup() {}
+ virtual ~NodeDrawingStyle() {}
+
+ inline const DrawingStyle& drawingStyle() const { return _DrawingStyle; }
+ inline void SetDrawingStyle(const DrawingStyle& iDrawingStyle) { _DrawingStyle = iDrawingStyle; }
+
+ /*! Sets the style. Must be one of FILLED, LINES, POINTS, INVISIBLE. */
+ inline void SetStyle(const DrawingStyle::STYLE iStyle) { _DrawingStyle.SetStyle(iStyle); }
+ /*! Sets the line width in the LINES style case */
+ inline void SetLineWidth(const float iLineWidth) { _DrawingStyle.SetLineWidth(iLineWidth); }
+ /*! Sets the Point size in the POINTS style case */
+ inline void SetPointSize(const float iPointSize) { _DrawingStyle.SetPointSize(iPointSize); }
+ /*! Enables or disables the lighting. TRUE = enable */
+ inline void SetLightingEnabled(const bool iEnableLighting) { _DrawingStyle.SetLightingEnabled(iEnableLighting); }
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v);
+
+ /*! accessors */
+ inline DrawingStyle::STYLE style() const {return _DrawingStyle.style();}
+ inline float lineWidth() const {return _DrawingStyle.lineWidth();}
+ inline float pointSize() const {return _DrawingStyle.pointSize();}
+ inline bool lightingEnabled() const {return _DrawingStyle.lightingEnabled();}
+
+private:
+ DrawingStyle _DrawingStyle;
+};
+
+#endif // NODEDRAWINGSTYLE_H
diff --git a/source/blender/freestyle/intern/scene_graph/NodeGroup.cpp b/source/blender/freestyle/intern/scene_graph/NodeGroup.cpp
new file mode 100755
index 00000000000..3d2aa2c8694
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeGroup.cpp
@@ -0,0 +1,122 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "NodeGroup.h"
+
+void NodeGroup::AddChild(Node *iChild)
+{
+ if(NULL == iChild)
+ return;
+
+ _Children.push_back(iChild);
+ iChild->addRef();
+}
+
+int NodeGroup::destroy()
+{
+ /*! Node::destroy makes a release on the object
+ * and then returns the reference counter.
+ * If the reference counter is equal to 0,
+ * that means that nobody else is linking
+ * this node group and that we can destroy the whole
+ * underlying tree.
+ * Else, one or several Node link this node group,
+ * and we only returns the reference counter
+ * decremented by Node::destroy();
+ */
+ int refThis = Node::destroy();
+
+ // if refThis != 0, we can't destroy the tree
+ if(0 != refThis)
+ return refThis;
+
+ // If we are here, that means that nobody else
+ // needs our NodeGroup and we can destroy it.
+ int refCount = 0;
+ vector<Node *>::iterator node;
+
+ for(node=_Children.begin(); node!=_Children.end(); node++)
+ {
+ refCount = (*node)->destroy();
+ if(0 == refCount)
+ delete (*node);
+ }
+
+ _Children.clear();
+
+ return refThis;
+}
+
+void NodeGroup::accept(SceneVisitor& v) {
+ v.visitNodeGroup(*this);
+
+ v.visitNodeGroupBefore(*this);
+ for(vector<Node *>::iterator node=_Children.begin(), end=_Children.end();
+ node!=end;
+ node++)
+ (*node)->accept(v);
+ v.visitNodeGroupAfter(*this);
+}
+
+void NodeGroup::DetachChildren()
+{
+ vector<Node *>::iterator node;
+
+ for(node=_Children.begin(); node!=_Children.end(); node++)
+ {
+ (*node)->release();
+ }
+
+ _Children.clear();
+}
+
+void NodeGroup::DetachChild(Node *iChild)
+{
+ int found = 0;
+ vector<Node*>::iterator node;
+
+ for(node=_Children.begin(); node!=_Children.end(); node++)
+ {
+ if((*node) == iChild)
+ {
+ (*node)->release();
+ _Children.erase(node);
+ found = 1;
+ break;
+ }
+ }
+}
+
+void NodeGroup::RetrieveChildren(vector<Node*>& oNodes){
+ oNodes = _Children;
+}
+
+const BBox<Vec3r>& NodeGroup::UpdateBBox()
+{
+ vector<Node *>::iterator node;
+ clearBBox();
+ for(node=_Children.begin(); node!=_Children.end(); node++)
+ {
+ AddBBox((*node)->UpdateBBox());
+ }
+
+ return Node::UpdateBBox();
+}
diff --git a/source/blender/freestyle/intern/scene_graph/NodeGroup.h b/source/blender/freestyle/intern/scene_graph/NodeGroup.h
new file mode 100755
index 00000000000..a1bd2b57e56
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeGroup.h
@@ -0,0 +1,84 @@
+//
+// Filename : NodeGroup.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to represent a group node. This node can contains
+// several children. It also contains a transform matrix
+// indicating the transform state of the underlying
+// children.
+// Date of creation : 24/01/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef NODEGROUP_H
+# define NODEGROUP_H
+
+# include <vector>
+# include "../system/FreestyleConfig.h"
+# include "Node.h"
+
+using namespace std;
+
+class LIB_SCENE_GRAPH_EXPORT NodeGroup : public Node
+{
+public:
+
+ inline NodeGroup(): Node() {}
+ virtual ~NodeGroup(){}
+
+ /*! Adds a child. Makes a addRef on the
+ * iChild reference counter */
+ virtual void AddChild(Node *iChild);
+
+ /*! destroys all the underlying nodes
+ * Returns the reference counter
+ * after having done a release() */
+ virtual int destroy();
+
+ /*! Detaches all the children */
+ virtual void DetachChildren();
+
+ /*! Detached the sepcified child */
+ virtual void DetachChild(Node *iChild);
+
+ /*! Retrieve children */
+ virtual void RetrieveChildren(vector<Node*>& oNodes);
+
+
+ /*! Renders every children */
+ // virtual void Render(Renderer *iRenderer);
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v);
+
+ /*! Updates the BBox */
+ virtual const BBox<Vec3r>& UpdateBBox();
+
+ /*! Returns the number of children */
+ virtual int numberOfChildren() {return _Children.size();}
+
+protected:
+ vector<Node*> _Children;
+};
+
+#endif // NODEGROUP_H
diff --git a/source/blender/freestyle/intern/scene_graph/NodeLight.cpp b/source/blender/freestyle/intern/scene_graph/NodeLight.cpp
new file mode 100755
index 00000000000..61a46155cfa
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeLight.cpp
@@ -0,0 +1,80 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "NodeLight.h"
+
+int NodeLight::numberOfLights = 0;
+
+NodeLight::NodeLight()
+: Node()
+{
+ if(numberOfLights > 7)
+ {
+ _number = 7;
+ }
+ else
+ {
+ _number = numberOfLights;
+ numberOfLights++;
+ }
+
+ Ambient[0] = Ambient[1] = Ambient[2] = 0.f;
+ Ambient[3] = 1.f;
+
+ for(int i=0; i<4; i++)
+ {
+ Diffuse[i] = 1.f;
+ Specular[i] = 1.f;
+ }
+
+ Position[0] = Position[1] = Position[3] = 0.f;
+ Position[2] = 1.f;
+
+ on = true;
+}
+
+NodeLight::NodeLight(NodeLight& iBrother)
+: Node(iBrother)
+{
+ if(numberOfLights > 7)
+ {
+ _number = 7;
+ }
+ else
+ {
+ _number = numberOfLights;
+ numberOfLights++;
+ }
+
+ for(int i=0; i<4; i++)
+ {
+ Ambient[i] = iBrother.ambient()[i];
+ Diffuse[i] = iBrother.diffuse()[i];
+ Specular[i] = iBrother.specular()[i];
+ Position[i] = iBrother.position()[i];
+ }
+
+ on = iBrother.isOn();
+}
+
+void NodeLight::accept(SceneVisitor& v) {
+ v.visitNodeLight(*this);
+}
diff --git a/source/blender/freestyle/intern/scene_graph/NodeLight.h b/source/blender/freestyle/intern/scene_graph/NodeLight.h
new file mode 100755
index 00000000000..0689505fb24
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeLight.h
@@ -0,0 +1,86 @@
+//
+// Filename : NodeLight.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to represent a light node
+// Date of creation : 25/01/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef NODELIGHT_H
+# define NODELIGHT_H
+
+# include "../geometry/Geom.h"
+# include "../system/FreestyleConfig.h"
+# include "Node.h"
+
+using namespace Geometry;
+
+class LIB_SCENE_GRAPH_EXPORT NodeLight : public Node
+{
+public:
+
+ NodeLight();
+ NodeLight(NodeLight& iBrother);
+
+ virtual ~NodeLight() {}
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v);
+
+ /*! Accessors for the light properties */
+ inline const float * ambient() const {return Ambient;}
+ inline const float * diffuse() const {return Diffuse;}
+ inline const float * specular() const {return Specular;}
+ inline const float * position() const {return Position;}
+ inline bool isOn() const {return on;}
+ inline int number() const {return _number;}
+
+private:
+ // Data members
+ // ============
+
+ /*! on=true, the light is on */
+ bool on;
+
+ /*! The color definition */
+ float Ambient[4];
+ float Diffuse[4];
+ float Specular[4];
+
+ /*! Light position. if w = 0, the light is
+ * placed at infinite.
+ */
+ float Position[4];
+
+ /*! used to manage the number of lights */
+ /*! numberOfLights
+ * the number of lights in the scene.
+ * Initially, 0.
+ */
+ static int numberOfLights;
+ /*! The current lignt number */
+ int _number;
+};
+
+#endif // NODELIGHT_H
diff --git a/source/blender/freestyle/intern/scene_graph/NodeShape.cpp b/source/blender/freestyle/intern/scene_graph/NodeShape.cpp
new file mode 100755
index 00000000000..2012ef83b9f
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeShape.cpp
@@ -0,0 +1,51 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "NodeShape.h"
+
+NodeShape::~NodeShape()
+{
+ vector<Rep *>::iterator rep;
+
+ if(0 != _Shapes.size())
+ {
+ for(rep=_Shapes.begin(); rep!=_Shapes.end(); rep++)
+ {
+ int refCount = (*rep)->destroy();
+ if(0 == refCount)
+ delete (*rep);
+ }
+
+ _Shapes.clear();
+ }
+}
+
+void NodeShape::accept(SceneVisitor& v) {
+ v.visitNodeShape(*this);
+
+ v.visitMaterial(_Material);
+
+ v.visitNodeShapeBefore(*this);
+ vector<Rep *>::iterator rep;
+ for(rep = _Shapes.begin(); rep != _Shapes.end(); rep++)
+ (*rep)->accept(v);
+ v.visitNodeShapeAfter(*this);
+}
diff --git a/source/blender/freestyle/intern/scene_graph/NodeShape.h b/source/blender/freestyle/intern/scene_graph/NodeShape.h
new file mode 100755
index 00000000000..3e963beec38
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeShape.h
@@ -0,0 +1,89 @@
+//
+// Filename : NodeShape.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to build a shape node. It contains a Rep,
+// which is the shape geometry
+// Date of creation : 25/01/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef NODESHAPE_H
+# define NODESHAPE_H
+
+# include <vector>
+# include "../system/FreestyleConfig.h"
+# include "Node.h"
+# include "Rep.h"
+# include "../geometry/BBox.h"
+# include "../geometry/Geom.h"
+# include "Material.h"
+
+using namespace std;
+using namespace Geometry;
+
+class LIB_SCENE_GRAPH_EXPORT NodeShape : public Node
+{
+public:
+
+ inline NodeShape() : Node() {}
+
+ virtual ~NodeShape();
+
+ /*! Adds a Rep to the _Shapes list
+ * The delete of the rep is done
+ * when it is not used any more by
+ * the Scene Manager. So, it must not
+ * be deleted by the caller
+ */
+ virtual void AddRep(Rep *iRep)
+ {
+ if(NULL == iRep)
+ return;
+ _Shapes.push_back(iRep);
+ iRep->addRef();
+
+ // updates bbox:
+ AddBBox(iRep->bbox());
+ }
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v);
+
+ /*! Sets the shape material */
+ inline void SetMaterial(const Material& iMaterial) { _Material = iMaterial; }
+
+ /*! accessors */
+ /*! returns the shape's material */
+ inline Material& material() { return _Material; }
+ inline const vector<Rep*>& shapes() {return _Shapes;}
+
+private:
+ /*! list of shapes */
+ vector<Rep*> _Shapes;
+
+ /*! Shape Material */
+ Material _Material;
+};
+
+#endif // NODESHAPE_H
diff --git a/source/blender/freestyle/intern/scene_graph/NodeTransform.cpp b/source/blender/freestyle/intern/scene_graph/NodeTransform.cpp
new file mode 100755
index 00000000000..64e9b7a4dd6
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeTransform.cpp
@@ -0,0 +1,166 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+#include "../system/FreestyleConfig.h"
+#include "NodeTransform.h"
+
+void NodeTransform::Translate(real x, real y, real z)
+{
+ _Matrix(0, 3) += x;
+ _Matrix(1, 3) += y;
+ _Matrix(2, 3) += z;
+}
+
+void NodeTransform::Rotate(real iAngle, real x, real y, real z)
+{
+ //Normalize the x,y,z vector;
+ real norm = (real)sqrt(x*x+y*y+z*z);
+ if(0 == norm)
+ return;
+
+ x /= norm;
+ y /= norm;
+ z /= norm;
+
+ // find the corresponding matrix with the Rodrigues formula:
+ // R = I + sin(iAngle)*Ntilda + (1-cos(iAngle))*Ntilda*Ntilda
+ Matrix33r Ntilda;
+ Ntilda(0,0) = Ntilda(1,1) = Ntilda(2,2) = 0.f;
+ Ntilda(0,1) = -z;
+ Ntilda(0,2) = y;
+ Ntilda(1,0) = z;
+ Ntilda(1,2) = -x;
+ Ntilda(2,0) = -y;
+ Ntilda(2,1) = x;
+
+ const Matrix33r Ntilda2(Ntilda * Ntilda);
+
+
+ const real sinAngle = (real)sin((iAngle/180.f)*M_PI);
+ const real cosAngle = (real)cos((iAngle/180.f)*M_PI);
+
+ Matrix33r NS(Ntilda*sinAngle);
+ Matrix33r NC(Ntilda2*(1.f-cosAngle));
+ Matrix33r R;
+ R = Matrix33r::identity();
+ R += NS + NC;
+
+ //R4 is the corresponding 4x4 matrix
+ Matrix44r R4;
+ R4 = Matrix44r::identity();
+
+ for(int i=0; i<3; i++)
+ for(int j=0; j<3; j++)
+ R4(i,j) = R(i,j);
+
+ // Finally, we multiply our current matrix by R4:
+ Matrix44r mat_tmp(_Matrix);
+ _Matrix = mat_tmp * R4;
+}
+
+void NodeTransform::Scale(real x, real y, real z)
+{
+ _Matrix(0,0) *= x;
+ _Matrix(1,1) *= y;
+ _Matrix(2,2) *= z;
+
+ _Scaled = true;
+}
+
+void NodeTransform::MultiplyMatrix(const Matrix44r &iMatrix)
+{
+ Matrix44r mat_tmp(_Matrix);
+ _Matrix = mat_tmp * iMatrix;
+}
+
+void NodeTransform::SetMatrix(const Matrix44r &iMatrix)
+{
+ _Matrix = iMatrix;
+ if(isScaled(iMatrix))
+ _Scaled = true;
+}
+
+void NodeTransform::accept(SceneVisitor& v) {
+ v.visitNodeTransform(*this);
+
+ v.visitNodeTransformBefore(*this);
+ for(vector<Node *>::iterator node=_Children.begin(), end=_Children.end();
+ node!=end;
+ node++)
+ (*node)->accept(v);
+ v.visitNodeTransformAfter(*this);
+}
+
+void NodeTransform::AddBBox(const BBox<Vec3r>& iBBox)
+{
+ Vec3r oldMin(iBBox.getMin());
+ Vec3r oldMax(iBBox.getMax());
+
+ // compute the 8 corners of the bbox
+ HVec3r box[8];
+ box[0] = HVec3r(iBBox.getMin());
+ box[1] = HVec3r(oldMax[0], oldMin[1], oldMin[2]);
+ box[2] = HVec3r(oldMax[0], oldMax[1], oldMin[2]);
+ box[3] = HVec3r(oldMin[0], oldMax[1], oldMin[2]);
+ box[4] = HVec3r(oldMin[0], oldMin[1], oldMax[2]);
+ box[5] = HVec3r(oldMax[0], oldMin[1], oldMax[2]);
+ box[6] = HVec3r(oldMax[0], oldMax[1], oldMax[2]);
+ box[7] = HVec3r(oldMin[0], oldMax[1], oldMax[2]);
+
+ // Computes the transform iBBox
+ HVec3r tbox[8];
+ unsigned i;
+ for(i = 0; i < 8; i++)
+ tbox[i] = _Matrix * box[i];
+
+ Vec3r newMin(tbox[0]);
+ Vec3r newMax(tbox[0]);
+ for (i=0; i<8; i++)
+ {
+ for (unsigned int j=0; j<3; j++)
+ {
+ if (newMin[j] > tbox[i][j])
+ newMin[j] = tbox[i][j];
+ if (newMax[j] < tbox[i][j])
+ newMax[j] = tbox[i][j];
+ }
+ }
+
+ BBox<Vec3r> transformBox(newMin, newMax);
+
+ Node::AddBBox(transformBox);
+}
+
+bool NodeTransform::isScaled(const Matrix44r &M)
+{
+ for(unsigned int j=0; j<3; j++)
+ {
+ real norm = 0;
+ for(unsigned int i=0; i<3; i++)
+ {
+ norm += M(i,j)*M(i,j);
+ }
+ if((norm > 1.01) || (norm < 0.99))
+ return true;
+ }
+
+ return false;
+}
diff --git a/source/blender/freestyle/intern/scene_graph/NodeTransform.h b/source/blender/freestyle/intern/scene_graph/NodeTransform.h
new file mode 100755
index 00000000000..3929c60996b
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/NodeTransform.h
@@ -0,0 +1,107 @@
+//
+// Filename : NodeTransform.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to represent a transform node. A Transform node
+// contains one or several children, all affected by the
+// transformation.
+// Date of creation : 06/02/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef NODETRANSFORM_H
+# define NODETRANSFORM_H
+
+# include "../geometry/Geom.h"
+# include "../system/FreestyleConfig.h"
+# include "NodeGroup.h"
+
+using namespace Geometry;
+
+class LIB_SCENE_GRAPH_EXPORT NodeTransform : public NodeGroup
+{
+public:
+
+ inline NodeTransform() : NodeGroup() {
+ _Matrix = Matrix44r::identity();
+ _Scaled=false;
+ }
+
+ virtual ~NodeTransform() {}
+
+ /*! multiplys the current matrix by the
+ * x, y, z translation matrix.
+ */
+ void Translate(real x, real y, real z);
+
+ /*! multiplys the current matrix by a
+ * rotation matrix
+ * iAngle
+ * The rotation angle
+ * x, y, z
+ * The rotation axis
+ */
+ void Rotate(real iAngle, real x, real y, real z);
+
+ /*! multiplys the current matrix by a
+ * scaling matrix.
+ * x, y, z
+ * The scaling coefficients
+ * with respect to the x,y,z axis
+ */
+ void Scale(real x, real y, real z);
+
+ /*! Multiplys the current matrix
+ * by iMatrix
+ */
+ void MultiplyMatrix(const Matrix44r &iMatrix);
+
+ /*! Sets the current matrix to iMatrix */
+ void SetMatrix(const Matrix44r &iMatrix);
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v);
+
+ /*! Overloads the Node::AddBBox in order to take care
+ * about the transformation
+ */
+ virtual void AddBBox(const BBox<Vec3r>& iBBox);
+
+ /*! Checks whether a matrix contains a scale factor
+ * or not.
+ * Returns true if yes.
+ * iMatrix
+ * The matrix to check
+ */
+ bool isScaled(const Matrix44r &M);
+
+ /*! accessors */
+ inline const Matrix44r& matrix() const { return _Matrix; }
+ inline bool scaled() const {return _Scaled;}
+
+private:
+ Matrix44r _Matrix;
+ bool _Scaled;
+};
+
+#endif // NODETRANSFORM_H
diff --git a/source/blender/freestyle/intern/scene_graph/OrientedLineRep.cpp b/source/blender/freestyle/intern/scene_graph/OrientedLineRep.cpp
new file mode 100755
index 00000000000..2d0205308b9
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/OrientedLineRep.cpp
@@ -0,0 +1,31 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "OrientedLineRep.h"
+#include "../system/BaseObject.h"
+
+void OrientedLineRep::accept(SceneVisitor& v) {
+ Rep::accept(v);
+ if(!material())
+ v.visitOrientedLineRep(*this);
+ else
+ v.visitLineRep(*this);
+}
diff --git a/source/blender/freestyle/intern/scene_graph/OrientedLineRep.h b/source/blender/freestyle/intern/scene_graph/OrientedLineRep.h
new file mode 100755
index 00000000000..4274581e39a
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/OrientedLineRep.h
@@ -0,0 +1,67 @@
+//
+// Filename : OrientedLineRep.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to display an oriented line representation.
+// Date of creation : 24/10/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VIEWEDGEREP_H
+# define VIEWEDGEREP_H
+
+# include "../system/FreestyleConfig.h"
+# include "LineRep.h"
+
+class LIB_SCENE_GRAPH_EXPORT OrientedLineRep : public LineRep
+{
+public:
+
+ OrientedLineRep() : LineRep() {}
+ /*! Builds a single line from 2 vertices
+ * v1
+ * first vertex
+ * v2
+ * second vertex
+ */
+ inline OrientedLineRep(const Vec3r& v1, const Vec3r& v2)
+ : LineRep(v1,v2)
+ {}
+
+ /*! Builds a line rep from a vertex chain */
+ inline OrientedLineRep(const vector<Vec3r>& vertices)
+ : LineRep(vertices)
+ {}
+
+ /*! Builds a line rep from a vertex chain */
+ inline OrientedLineRep(const list<Vec3r>& vertices)
+ : LineRep(vertices)
+ {}
+
+ virtual ~OrientedLineRep() {}
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v);
+};
+
+#endif // VIEWEDGEREP_H
diff --git a/source/blender/freestyle/intern/scene_graph/Rep.cpp b/source/blender/freestyle/intern/scene_graph/Rep.cpp
new file mode 100755
index 00000000000..520d3c41e2e
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/Rep.cpp
@@ -0,0 +1 @@
+#include "Rep.h" \ No newline at end of file
diff --git a/source/blender/freestyle/intern/scene_graph/Rep.h b/source/blender/freestyle/intern/scene_graph/Rep.h
new file mode 100755
index 00000000000..6ccc2152c48
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/Rep.h
@@ -0,0 +1,127 @@
+//
+// Filename : Rep.h
+// Author(s) : Stephane Grabli
+// Purpose : Base class for all shapes. Inherits from BasicObjects
+// for references counter management (addRef, release).
+// Date of creation : 25/01/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef REP_H
+# define REP_H
+
+# include "../system/BaseObject.h"
+# include "SceneVisitor.h"
+# include "../geometry/BBox.h"
+# include "../geometry/Geom.h"
+# include "../system/Precision.h"
+# include "Material.h"
+# include "../system/Id.h"
+
+using namespace Geometry;
+
+class LIB_SCENE_GRAPH_EXPORT Rep : public BaseObject
+{
+public:
+
+ inline Rep() : BaseObject() {_Id = 0; _Material=0;}
+ inline Rep(const Rep& iBrother)
+ : BaseObject()
+ {
+ _Id = iBrother._Id;
+ if(0 == iBrother._Material)
+ _Material = 0;
+ else
+ _Material = new Material(*(iBrother._Material));
+
+ _BBox = iBrother.bbox();
+ }
+ inline void swap(Rep& ioOther){
+ std::swap(_BBox,ioOther._BBox);
+ std::swap(_Id, ioOther._Id);
+ std::swap(_Material,ioOther._Material);
+ }
+ Rep& operator=(const Rep& iBrother){
+ if(&iBrother != this){
+ _Id = iBrother._Id;
+ if(0 == iBrother._Material)
+ _Material = 0;
+ else{
+ if(_Material == 0){
+ _Material = new Material(*iBrother._Material);
+ }else{
+ (*_Material)=(*(iBrother._Material));
+ }
+ _BBox = iBrother.bbox();
+ }
+ }
+ return *this;
+ }
+ virtual ~Rep()
+ {
+ if(0 != _Material)
+ {
+ delete _Material;
+ _Material = 0;
+ }
+ }
+
+ /*! Accept the corresponding visitor
+ * Must be overload by
+ * inherited classes
+ */
+ virtual void accept(SceneVisitor& v) {
+ if(_Material)
+ v.visitMaterial(*_Material);
+ v.visitRep(*this);
+ }
+
+ /*! Computes the rep bounding box.
+ * Each Inherited rep must compute
+ * its bbox depending on the way the data
+ * are stored. So, each inherited class
+ * must overload this method
+ */
+ virtual void ComputeBBox() = 0;
+
+ /*! Returns the rep bounding box */
+ virtual const BBox<Vec3r>& bbox() const {return _BBox;}
+ inline Id getId() const {return _Id;}
+ inline const Material * material() const {return _Material;}
+
+ /*! Sets the Rep bounding box */
+ virtual void SetBBox(const BBox<Vec3r>& iBox) {_BBox = iBox;}
+ inline void SetId(const Id& id) {_Id = id;}
+ inline void SetMaterial(const Material& iMaterial)
+ {
+ _Material = new Material(iMaterial);
+ }
+
+private:
+ BBox<Vec3r> _BBox;
+ Id _Id;
+ Material *_Material;
+};
+
+#endif // REP_H
diff --git a/source/blender/freestyle/intern/scene_graph/ScenePrettyPrinter.cpp b/source/blender/freestyle/intern/scene_graph/ScenePrettyPrinter.cpp
new file mode 100755
index 00000000000..aeee87f8222
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/ScenePrettyPrinter.cpp
@@ -0,0 +1,86 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <iomanip>
+#include "ScenePrettyPrinter.h"
+#include "IndexedFaceSet.h"
+
+#define VISIT(CLASS) \
+ void ScenePrettyPrinter::visit##CLASS(CLASS&) { \
+ _ofs << _space << #CLASS << endl; \
+ }
+
+VISIT(Node)
+VISIT(NodeShape)
+VISIT(NodeGroup)
+VISIT(NodeLight)
+VISIT(NodeDrawingStyle)
+VISIT(NodeTransform)
+
+void ScenePrettyPrinter::visitNodeShapeBefore(NodeShape&) {
+ increaseSpace();
+}
+
+void ScenePrettyPrinter::visitNodeShapeAfter(NodeShape&) {
+ decreaseSpace();
+}
+
+void ScenePrettyPrinter::visitNodeGroupBefore(NodeGroup&) {
+ increaseSpace();
+}
+
+void ScenePrettyPrinter::visitNodeGroupAfter(NodeGroup&) {
+ decreaseSpace();
+}
+
+void ScenePrettyPrinter::visitNodeDrawingStyleBefore(NodeDrawingStyle&) {
+ increaseSpace();
+}
+
+void ScenePrettyPrinter::visitNodeDrawingStyleAfter(NodeDrawingStyle&) {
+ decreaseSpace();
+}
+
+void ScenePrettyPrinter::visitNodeTransformBefore(NodeTransform&) {
+ increaseSpace();
+}
+
+void ScenePrettyPrinter::visitNodeTransformAfter(NodeTransform&) {
+ decreaseSpace();
+}
+
+VISIT(LineRep)
+VISIT(OrientedLineRep)
+VISIT(TriangleRep)
+VISIT(VertexRep)
+
+void ScenePrettyPrinter::visitIndexedFaceSet(IndexedFaceSet& ifs) {
+ const real* vertices = ifs.vertices();
+ unsigned vsize = ifs.vsize();
+
+ _ofs << _space << "IndexedFaceSet" << endl;
+ const real *p = vertices;
+ for (unsigned i = 0; i < vsize / 3; i++) {
+ _ofs << _space << " " << setw(3) << setfill('0') << i << ": "
+ << p[0] << ", " << p[1] << ", " << p[2] << endl;
+ p += 3;
+ }
+}
diff --git a/source/blender/freestyle/intern/scene_graph/ScenePrettyPrinter.h b/source/blender/freestyle/intern/scene_graph/ScenePrettyPrinter.h
new file mode 100755
index 00000000000..4e83825ff55
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/ScenePrettyPrinter.h
@@ -0,0 +1,105 @@
+//
+// Filename : ScenePrettyPrinter.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Class to display textual information
+// about a scene graph.
+// Date of creation : 26/04/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef SCENE_PRETTY_PRINTER_H
+# define SCENE_PRETTY_PRINTER_H
+
+# include <iostream>
+# include <fstream>
+# include <string>
+# include "SceneVisitor.h"
+
+using namespace std;
+
+class ScenePrettyPrinter : public SceneVisitor
+{
+public:
+
+ ScenePrettyPrinter(const string filename = "SceneLog.txt")
+ : SceneVisitor() {
+ if (!filename.empty())
+ _ofs.open(filename.c_str());
+ if (!_ofs.is_open())
+ cerr << "Warning, unable to open file \"" << filename << "\"" << endl;
+ _space = "";
+ }
+
+ virtual ~ScenePrettyPrinter() {
+ if (_ofs.is_open())
+ _ofs.close();
+ }
+
+
+ //
+ // visitClass methods
+ //
+ //////////////////////////////////////////////
+
+ VISIT_DECL(Node)
+ VISIT_DECL(NodeShape)
+ VISIT_DECL(NodeGroup)
+ VISIT_DECL(NodeLight)
+ VISIT_DECL(NodeDrawingStyle)
+ VISIT_DECL(NodeTransform)
+
+ VISIT_DECL(LineRep)
+ VISIT_DECL(OrientedLineRep)
+ VISIT_DECL(TriangleRep)
+ VISIT_DECL(VertexRep)
+ VISIT_DECL(IndexedFaceSet)
+
+ virtual void visitNodeShapeBefore(NodeShape&);
+ virtual void visitNodeShapeAfter(NodeShape&);
+ virtual void visitNodeGroupBefore(NodeGroup&);
+ virtual void visitNodeGroupAfter(NodeGroup&);
+ virtual void visitNodeDrawingStyleBefore(NodeDrawingStyle&);
+ virtual void visitNodeDrawingStyleAfter(NodeDrawingStyle&);
+ virtual void visitNodeTransformBefore(NodeTransform&);
+ virtual void visitNodeTransformAfter(NodeTransform&);
+
+ protected:
+
+ void increaseSpace()
+ {
+ _space += " ";
+ }
+
+ void decreaseSpace()
+ {
+ _space.erase(0, 2);
+ }
+
+ private:
+
+ ofstream _ofs;
+ string _space;
+};
+
+#endif // SCENE_PRETTY_PRINTER_H
diff --git a/source/blender/freestyle/intern/scene_graph/SceneVisitor.cpp b/source/blender/freestyle/intern/scene_graph/SceneVisitor.cpp
new file mode 100755
index 00000000000..9cfb9d40d24
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/SceneVisitor.cpp
@@ -0,0 +1 @@
+#include "SceneVisitor.h" \ No newline at end of file
diff --git a/source/blender/freestyle/intern/scene_graph/SceneVisitor.h b/source/blender/freestyle/intern/scene_graph/SceneVisitor.h
new file mode 100755
index 00000000000..c57bd2e0f6e
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/SceneVisitor.h
@@ -0,0 +1,98 @@
+//
+// Filename : SceneVisitor.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Class to visit (without doing anything)
+// a scene graph structure
+// Date of creation : 26/04/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef SCENE_VISITOR_H
+# define SCENE_VISITOR_H
+
+# define VISIT_COMPLETE_DEF(type) \
+virtual void visit##type(type&) {} \
+virtual void visit##type##Before(type&) {} \
+virtual void visit##type##After(type&) {}
+
+# define VISIT_DECL(type) virtual void visit##type(type&);
+
+# define VISIT_COMPLETE_DECL(type) \
+ virtual void visit##type##Before(type&); \
+ virtual void visit##type(type&); \
+ virtual void visit##type##After(type&);
+
+#include "../system/FreestyleConfig.h"
+
+class Node;
+class NodeShape;
+class NodeGroup;
+class NodeLight;
+class NodeCamera;
+class NodeDrawingStyle;
+class NodeTransform;
+
+class Rep;
+class LineRep;
+class OrientedLineRep;
+class TriangleRep;
+class VertexRep;
+class IndexedFaceSet;
+class DrawingStyle;
+class Material;
+
+class LIB_SCENE_GRAPH_EXPORT SceneVisitor
+{
+public:
+
+ SceneVisitor() {}
+ virtual ~SceneVisitor() {}
+
+ virtual void beginScene() {}
+ virtual void endScene() {}
+
+ //
+ // visitClass methods
+ //
+ //////////////////////////////////////////////
+
+ VISIT_COMPLETE_DEF(Node)
+ VISIT_COMPLETE_DEF(NodeShape)
+ VISIT_COMPLETE_DEF(NodeGroup)
+ VISIT_COMPLETE_DEF(NodeLight)
+ VISIT_COMPLETE_DEF(NodeCamera)
+ VISIT_COMPLETE_DEF(NodeDrawingStyle)
+ VISIT_COMPLETE_DEF(NodeTransform)
+
+ VISIT_COMPLETE_DEF(Rep)
+ VISIT_COMPLETE_DEF(LineRep)
+ VISIT_COMPLETE_DEF(OrientedLineRep)
+ VISIT_COMPLETE_DEF(TriangleRep)
+ VISIT_COMPLETE_DEF(VertexRep)
+ VISIT_COMPLETE_DEF(IndexedFaceSet)
+ VISIT_COMPLETE_DEF(DrawingStyle)
+ VISIT_COMPLETE_DEF(Material)
+};
+
+#endif // SCENEVISITOR_H
diff --git a/source/blender/freestyle/intern/scene_graph/TriangleRep.cpp b/source/blender/freestyle/intern/scene_graph/TriangleRep.cpp
new file mode 100755
index 00000000000..215124b0676
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/TriangleRep.cpp
@@ -0,0 +1,59 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TriangleRep.h"
+
+void TriangleRep::ComputeBBox()
+{
+ real XMax = _vertices[0][0];
+ real YMax = _vertices[0][1];
+ real ZMax = _vertices[0][2];
+
+ real XMin = _vertices[0][0];
+ real YMin = _vertices[0][1];
+ real ZMin = _vertices[0][2];
+
+ // parse all the coordinates to find
+ // the XMax, YMax, ZMax
+ for(int i=0; i<3; ++i)
+ {
+ // X
+ if(_vertices[i][0] > XMax)
+ XMax = _vertices[i][0];
+ if(_vertices[i][0] < XMin)
+ XMin = _vertices[i][0];
+
+ // Y
+ if(_vertices[i][1] > YMax)
+ YMax = _vertices[i][1];
+ if(_vertices[i][1] < YMin)
+ YMin = _vertices[i][1];
+
+ // Z
+ if(_vertices[i][2] > ZMax)
+ ZMax = _vertices[i][2];
+ if(_vertices[i][2] < ZMin)
+ ZMin = _vertices[i][2];
+
+ }
+
+ SetBBox(BBox<Vec3r>(Vec3r(XMin, YMin, ZMin), Vec3r(XMax, YMax, ZMax)));
+}
diff --git a/source/blender/freestyle/intern/scene_graph/TriangleRep.h b/source/blender/freestyle/intern/scene_graph/TriangleRep.h
new file mode 100755
index 00000000000..20df12cfd8f
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/TriangleRep.h
@@ -0,0 +1,106 @@
+//
+// Filename : TriangleRep.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define the represenation of a triangle
+// Date of creation : 16/12/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef TRIANGLEREP_H
+# define TRIANGLEREP_H
+
+//! inherits from class Rep
+#include "Rep.h"
+
+/*! Base class for all lines objects */
+class LIB_SCENE_GRAPH_EXPORT TriangleRep : public Rep
+{
+public:
+
+ /*! Line description style */
+ enum TRIANGLE_STYLE{FILL, LINES};
+private:
+ TRIANGLE_STYLE _Style;
+ Vec3r _vertices[3];
+ Vec3r _colors[3];
+public:
+ inline TriangleRep() : Rep() {_Style = FILL;}
+
+ /*! Builds a triangle from 3 vertices
+ * v0
+ * first vertex
+ * v1
+ * second vertex
+ * v2
+ * third vertex
+ */
+ inline TriangleRep(const Vec3r& v0, const Vec3r& v1, const Vec3r& v2)
+ : Rep()
+ {
+ _vertices[0] = v0;
+ _vertices[1] = v1;
+ _vertices[2] = v2;
+ _Style = FILL;
+ }
+ inline TriangleRep( const Vec3r& v0, const Vec3r& c0,
+ const Vec3r& v1, const Vec3r& c1,
+ const Vec3r& v2, const Vec3r& c2)
+ : Rep()
+ {
+ _vertices[0] = v0;
+ _vertices[1] = v1;
+ _vertices[2] = v2;
+ _colors[0] = c0;
+ _colors[1] = c1;
+ _colors[2] = c2;
+ _Style = FILL;
+ }
+
+ virtual ~TriangleRep()
+ {}
+
+ /*! accessors */
+ inline const TRIANGLE_STYLE style() const {return _Style;}
+ inline const Vec3r& vertex(int index) const {return _vertices[index];}
+ inline const Vec3r& color(int index) const {return _colors[index];}
+ /*! modifiers */
+ inline void SetStyle(const TRIANGLE_STYLE iStyle) {_Style = iStyle;}
+ inline void SetVertex(int index, const Vec3r& iVertex) {_vertices[index] = iVertex;}
+ inline void SetColor(int index, const Vec3r& iColor) {_colors[index] = iColor;}
+ inline void SetVertices(const Vec3r& v0, const Vec3r& v1, const Vec3r& v2) {_vertices[0] = v0; _vertices[1] = v1; _vertices[2] = v2;}
+ inline void SetColors(const Vec3r& c0, const Vec3r& c1, const Vec3r& c2) {_colors[0] = c0; _colors[1] = c1; _colors[2] = c2;}
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v) {
+ Rep::accept(v);
+ v.visitTriangleRep(*this);
+ }
+
+ /*! Computes the triangle bounding box.*/
+ virtual void ComputeBBox();
+
+
+};
+
+#endif
diff --git a/source/blender/freestyle/intern/scene_graph/VertexRep.cpp b/source/blender/freestyle/intern/scene_graph/VertexRep.cpp
new file mode 100755
index 00000000000..1ecb5f141e1
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/VertexRep.cpp
@@ -0,0 +1,29 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "VertexRep.h"
+
+void VertexRep::ComputeBBox()
+{
+
+ SetBBox(BBox<Vec3r>(Vec3r(_coordinates[0], _coordinates[1], _coordinates[2]),
+ Vec3r(_coordinates[0], _coordinates[1], _coordinates[2])));
+}
diff --git a/source/blender/freestyle/intern/scene_graph/VertexRep.h b/source/blender/freestyle/intern/scene_graph/VertexRep.h
new file mode 100755
index 00000000000..9dce7fbbe9c
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/VertexRep.h
@@ -0,0 +1,87 @@
+//
+// Filename : VertexRep.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define the representation of a vertex for
+// displaying purpose.
+// Date of creation : 03/04/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VERTEXREP_H
+# define VERTEXREP_H
+
+#include "Rep.h"
+
+class LIB_SCENE_GRAPH_EXPORT VertexRep : public Rep
+{
+public:
+
+ inline VertexRep() : Rep() {_vid = 0;_PointSize = 0.f;}
+ inline VertexRep(real x, real y, real z, int id = 0)
+ : Rep()
+ {
+ _coordinates[0] = x;
+ _coordinates[1] = y;
+ _coordinates[2] = z;
+
+ _vid = id;
+ _PointSize = 0.f;
+ }
+
+ inline ~VertexRep() {}
+
+ /*! Accept the corresponding visitor */
+
+ virtual void accept(SceneVisitor& v) {
+ Rep::accept(v);
+ v.visitVertexRep(*this);
+ }
+
+ /*! Computes the rep bounding box.
+ */
+ virtual void ComputeBBox();
+
+ /*! accessors */
+ inline const int vid() const {return _vid;}
+ inline const real * coordinates() const {return _coordinates;}
+ inline real x() const {return _coordinates[0];}
+ inline real y() const {return _coordinates[1];}
+ inline real z() const {return _coordinates[2];}
+ inline float pointSize() const {return _PointSize;}
+
+ /*! modifiers */
+ inline void SetVid(int id) {_vid = id;}
+ inline void setX(real x) {_coordinates[0] = x;}
+ inline void setY(real y) {_coordinates[1] = y;}
+ inline void setZ(real z) {_coordinates[2] = z;}
+ inline void SetCoordinates(real x, real y, real z) {_coordinates[0] = x;_coordinates[1] = y; _coordinates[2] = z;}
+ inline void SetPointSize(float iPointSize) {_PointSize = iPointSize;}
+
+private:
+ int _vid; // vertex id
+ real _coordinates[3];
+ float _PointSize;
+};
+
+#endif // VERTEXREP_H
diff --git a/source/blender/freestyle/intern/scene_graph/scene_graph.pro b/source/blender/freestyle/intern/scene_graph/scene_graph.pro
new file mode 100755
index 00000000000..5736104a597
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/scene_graph.pro
@@ -0,0 +1,86 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+TEMPLATE = lib
+
+TARGET = $${LIB_SCENE_GRAPH}
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= dll 3ds$${LIB3DS_VERSION_MAJ}.$${LIB3DS_VERSION_MIN}
+
+
+exists (../libconfig.pri) {
+ include (../libconfig.pri)
+}
+#
+# DEFINES
+#
+#######################################
+
+win32:DEFINES *= MAKE_LIB_SCENE_GRAPH_DLL
+
+#
+# INCLUDE PATH
+#
+#######################################
+
+#INCLUDEPATH *= ../geometry ../system
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+!win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}/lib
+win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+
+#
+# LIBS
+#
+#######################################
+
+win32:LIBS *= $${DESTDIR}/$${LIB_GEOMETRY}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SYSTEM}$${LIBVERSION}.lib
+!win32 {
+ lib_bundle {
+ LIBS += -F$${DESTDIR} -framework $${LIB_GEOMETRY} \
+ -framework $${LIB_SYSTEM}
+ } else {
+ LIBS *= -L$${DESTDIR}/ -l$${LIB_GEOMETRY} -l$${LIB_SYSTEM}
+ }
+}
+
+#
+# INSTALL
+#
+#######################################
+
+LIB_DIR = ../../lib
+# install library
+target.path = $$LIB_DIR
+# "make install" configuration options
+INSTALLS += target
+
+#
+# SOURCES & HEADERS
+#
+#######################################
+
+!static {
+ include(src.pri)
+}
diff --git a/source/blender/freestyle/intern/scene_graph/src.pri b/source/blender/freestyle/intern/scene_graph/src.pri
new file mode 100755
index 00000000000..994db200812
--- /dev/null
+++ b/source/blender/freestyle/intern/scene_graph/src.pri
@@ -0,0 +1,41 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+SCENE_GRAPH_DIR = ../scene_graph
+
+SOURCES *= $${SCENE_GRAPH_DIR}/IndexedFaceSet.cpp \
+ $${SCENE_GRAPH_DIR}/LineRep.cpp \
+ $${SCENE_GRAPH_DIR}/MaxFileLoader.cpp \
+ $${SCENE_GRAPH_DIR}/NodeCamera.cpp \
+ $${SCENE_GRAPH_DIR}/NodeDrawingStyle.cpp \
+ $${SCENE_GRAPH_DIR}/NodeGroup.cpp \
+ $${SCENE_GRAPH_DIR}/NodeLight.cpp \
+ $${SCENE_GRAPH_DIR}/NodeShape.cpp \
+ $${SCENE_GRAPH_DIR}/NodeTransform.cpp \
+ $${SCENE_GRAPH_DIR}/OrientedLineRep.cpp \
+ $${SCENE_GRAPH_DIR}/ScenePrettyPrinter.cpp \
+ $${SCENE_GRAPH_DIR}/TriangleRep.cpp \
+ $${SCENE_GRAPH_DIR}/VertexRep.cpp \
+ $${SCENE_GRAPH_DIR}/Rep.cpp \
+ $${SCENE_GRAPH_DIR}/SceneVisitor.cpp
+
+HEADERS *= $${SCENE_GRAPH_DIR}/DrawingStyle.h \
+ $${SCENE_GRAPH_DIR}/IndexedFaceSet.h \
+ $${SCENE_GRAPH_DIR}/LineRep.h \
+ $${SCENE_GRAPH_DIR}/Material.h \
+ $${SCENE_GRAPH_DIR}/MaxFileLoader.h \
+ $${SCENE_GRAPH_DIR}/Node.h \
+ $${SCENE_GRAPH_DIR}/NodeCamera.h \
+ $${SCENE_GRAPH_DIR}/NodeDrawingStyle.h \
+ $${SCENE_GRAPH_DIR}/NodeGroup.h \
+ $${SCENE_GRAPH_DIR}/NodeLight.h \
+ $${SCENE_GRAPH_DIR}/NodeShape.h \
+ $${SCENE_GRAPH_DIR}/NodeTransform.h \
+ $${SCENE_GRAPH_DIR}/OrientedLineRep.h \
+ $${SCENE_GRAPH_DIR}/Rep.h \
+ $${SCENE_GRAPH_DIR}/ScenePrettyPrinter.h \
+ $${SCENE_GRAPH_DIR}/SceneVisitor.h \
+ $${SCENE_GRAPH_DIR}/TriangleRep.h \
+ $${SCENE_GRAPH_DIR}/VertexRep.h
diff --git a/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.cpp b/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.cpp
new file mode 100755
index 00000000000..c22e183eccb
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.cpp
@@ -0,0 +1,85 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+# include "../view_map/Functions0D.h"
+# include "AdvancedFunctions0D.h"
+# include "../view_map/SteerableViewMap.h"
+# include "Canvas.h"
+
+namespace Functions0D {
+
+ double DensityF0D::operator()(Interface0DIterator& iter) {
+ Canvas* canvas = Canvas::getInstance();
+ int bound = _filter.getBound();
+ if( (iter->getProjectedX()-bound < 0) || (iter->getProjectedX()+bound>canvas->width())
+ || (iter->getProjectedY()-bound < 0) || (iter->getProjectedY()+bound>canvas->height()))
+ return 0.0;
+ RGBImage image;
+ canvas->readColorPixels((int)iter->getProjectedX() - bound,
+ (int)iter->getProjectedY() - bound,
+ _filter.maskSize(),
+ _filter.maskSize(),
+ image);
+ return _filter.getSmoothedPixel<RGBImage>(&image, (int)iter->getProjectedX(),
+ (int)iter->getProjectedY());
+ }
+
+
+ double LocalAverageDepthF0D::operator()(Interface0DIterator& iter) {
+ Canvas * iViewer = Canvas::getInstance();
+ int bound = _filter.getBound();
+
+ if( (iter->getProjectedX()-bound < 0) || (iter->getProjectedX()+bound>iViewer->width())
+ || (iter->getProjectedY()-bound < 0) || (iter->getProjectedY()+bound>iViewer->height()))
+ return 0.0;
+ GrayImage image ;
+ iViewer->readDepthPixels((int)iter->getProjectedX()-bound,(int)iter->getProjectedY()-bound,_filter.maskSize(),_filter.maskSize(),image);
+ return _filter.getSmoothedPixel(&image, (int)iter->getProjectedX(), (int)iter->getProjectedY());
+ }
+
+ float ReadMapPixelF0D::operator()(Interface0DIterator& iter) {
+ Canvas * canvas = Canvas::getInstance();
+ return canvas->readMapPixel(_mapName, _level, (int)iter->getProjectedX(), (int)iter->getProjectedY());
+ }
+
+ float ReadSteerableViewMapPixelF0D::operator()(Interface0DIterator& iter) {
+ SteerableViewMap *svm = Canvas::getInstance()->getSteerableViewMap();
+ float v = svm->readSteerableViewMapPixel(_orientation, _level,(int)iter->getProjectedX(), (int)iter->getProjectedY());
+ return v;
+ }
+
+ float ReadCompleteViewMapPixelF0D::operator()(Interface0DIterator& iter) {
+ SteerableViewMap *svm = Canvas::getInstance()->getSteerableViewMap();
+ float v = svm->readCompleteViewMapPixel(_level,(int)iter->getProjectedX(), (int)iter->getProjectedY());
+ return v;
+ }
+
+ float GetViewMapGradientNormF0D::operator()(Interface0DIterator& iter){
+ SteerableViewMap *svm = Canvas::getInstance()->getSteerableViewMap();
+ float pxy = svm->readCompleteViewMapPixel(_level,(int)iter->getProjectedX(), (int)iter->getProjectedY());
+ float gx = svm->readCompleteViewMapPixel(_level,(int)iter->getProjectedX()+_step, (int)iter->getProjectedY())
+ - pxy;
+ float gy = svm->readCompleteViewMapPixel(_level,(int)iter->getProjectedX(), (int)iter->getProjectedY()+_step)
+ - pxy;
+ float f = Vec2f(gx,gy).norm();
+ return f;
+ }
+} // end of namespace Functions0D
diff --git a/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h b/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h
new file mode 100755
index 00000000000..d92575cf110
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/AdvancedFunctions0D.h
@@ -0,0 +1,209 @@
+//
+// Filename : AdvancedFunctions0D.h
+// Author(s) : Stephane Grabli
+// Emmanuel Turquin
+// Purpose : Functions taking 0D input
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ADVANCED_FUNCTIONS0D_HPP
+# define ADVANCED_FUNCTIONS0D_HPP
+
+
+# include "../image/Image.h"
+# include "../image/GaussianFilter.h"
+# include "../view_map/Functions0D.h"
+
+//
+// Functions definitions
+//
+///////////////////////////////////////////////////////////
+
+namespace Functions0D {
+
+ // DensityF0D
+ /*! Returns the density of the (result) image evaluated at an Interface0D.
+ * This density is evaluated using a pixels square window around the
+ * evaluation point and integrating these values using
+ * a gaussian.
+ */
+ class LIB_STROKE_EXPORT DensityF0D : public UnaryFunction0D<double>
+ {
+ public:
+ /*! Builds the functor from the gaussian sigma value.
+ * \param sigma
+ * sigma indicates the x value for which the gaussian
+ * function is 0.5. It leads to the window size
+ * value. (the larger, the smoother)
+ */
+ DensityF0D(double sigma = 2) : UnaryFunction0D<double>() {
+ _filter.SetSigma((float)sigma);
+ }
+ /*! Returns the string "DensityF0D"*/
+ string getName() const {
+ return "DensityF0D";
+ }
+ /*! The () operator. */
+ double operator()(Interface0DIterator& iter);
+
+ private:
+
+ GaussianFilter _filter;
+ };
+
+ // LocalAverageDepthF0D
+ /*! Returns the average depth around a point.
+ * The result is obtained by querying the
+ * depth buffer on a window around that point.
+ */
+ class LIB_STROKE_EXPORT LocalAverageDepthF0D : public UnaryFunction0D<double>
+ {
+ private:
+ GaussianFilter _filter;
+ public:
+ /*! Builds the functor from the size of the mask that
+ * will be used.
+ */
+ LocalAverageDepthF0D(real maskSize=5.f) : UnaryFunction0D<double>() {
+ _filter.SetSigma((float)maskSize/2.f);
+ }
+ /*! Returns the string "LocalAverageDepthF0D"*/
+ string getName() const {
+ return "LocalAverageDepthF0D";
+ }
+ /*! the () operator.*/
+ double operator()(Interface0DIterator& iter);
+ };
+
+ // ReadMapPixel
+ /*! Reads a pixel in a map.
+ */
+ class LIB_STROKE_EXPORT ReadMapPixelF0D : public UnaryFunction0D<float>
+ {
+ private:
+ const char * _mapName;
+ int _level;
+ public:
+ /*! Builds the functor from name of the
+ * Map that must be read.
+ * \param iMapName
+ * The name of the map.
+ * \param level
+ * The level of the pyramid from which
+ * the pixel must be read.
+ */
+ ReadMapPixelF0D(const char *iMapName, int level) : UnaryFunction0D<float>() {
+ _mapName = iMapName;
+ _level = level;
+ }
+ /*! Returns the string "ReadMapPixelF0D"*/
+ string getName() const {
+ return "ReadMapPixelF0D";
+ }
+ /*! the () operator.*/
+ float operator()(Interface0DIterator& iter);
+ };
+
+ // ReadSteerableViewMapPixel
+ /*! Reads a pixel in one of the level of one of the steerable viewmaps.
+ */
+ class LIB_STROKE_EXPORT ReadSteerableViewMapPixelF0D : public UnaryFunction0D<float>
+ {
+ private:
+ unsigned _orientation;
+ int _level;
+ public:
+ /*! Builds the functor
+ * \param nOrientation
+ * The integer belonging to [0,4] indicating the orientation (E,NE,N,NW)
+ * we are interested in.
+ * \param level
+ * The level of the pyramid from which
+ * the pixel must be read.
+ */
+ ReadSteerableViewMapPixelF0D(unsigned nOrientation, int level) : UnaryFunction0D<float>() {
+ _orientation = nOrientation;
+ _level = level;
+ }
+ /*! Returns the string "ReadSteerableViewMapPixelF0D"*/
+ string getName() const {
+ return "ReadSteerableViewMapPixelF0D";
+ }
+ /*! the () operator.*/
+ float operator()(Interface0DIterator& iter);
+ };
+
+ // ReadCompleteViewMapPixel
+ /*! Reads a pixel in one of the level of the complete viewmap.
+ */
+ class LIB_STROKE_EXPORT ReadCompleteViewMapPixelF0D : public UnaryFunction0D<float>
+ {
+ private:
+ int _level;
+ public:
+ /*! Builds the functor
+ * \param level
+ * The level of the pyramid from which
+ * the pixel must be read.
+ */
+ ReadCompleteViewMapPixelF0D(int level) : UnaryFunction0D<float>() {
+ _level = level;
+ }
+ /*! Returns the string "ReadCompleteViewMapPixelF0D"*/
+ string getName() const {
+ return "ReadCompleteViewMapPixelF0D";
+ }
+ /*! the () operator.*/
+ float operator()(Interface0DIterator& iter);
+ };
+
+ // GetViewMapGradientNormF0D
+ /*! Returns the norm of the gradient of the global viewmap density image.
+ */
+ class LIB_STROKE_EXPORT GetViewMapGradientNormF0D: public UnaryFunction0D< float>
+ {
+ private:
+ int _level;
+ float _step;
+ public:
+ /*! Builds the functor
+ * \param level
+ * The level of the pyramid from which
+ * the pixel must be read.
+ */
+ GetViewMapGradientNormF0D(int level) : UnaryFunction0D<float>() {
+ _level = level;
+ _step = (float)pow(2.0,_level);
+ }
+ /*! Returns the string "GetOccludeeF0D"*/
+ string getName() const {
+ return "GetViewMapGradientNormF0D";
+ }
+ /*! the () operator.*/
+ float operator()(Interface0DIterator& iter);
+ };
+} // end of namespace Functions0D
+
+#endif // ADVANCED_FUNCTIONS0D_HPP
diff --git a/source/blender/freestyle/intern/stroke/AdvancedFunctions1D.cpp b/source/blender/freestyle/intern/stroke/AdvancedFunctions1D.cpp
new file mode 100755
index 00000000000..cf2982606e0
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/AdvancedFunctions1D.cpp
@@ -0,0 +1,108 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+# include "AdvancedFunctions1D.h"
+# include "../view_map/SteerableViewMap.h"
+# include "Canvas.h"
+
+// FIXME
+namespace Functions1D {
+
+ real GetSteerableViewMapDensityF1D::operator()(Interface1D& inter) {
+ SteerableViewMap * svm = Canvas::getInstance()->getSteerableViewMap();
+ Interface0DIterator it = inter.pointsBegin(_sampling);
+ Interface0DIterator itnext = it;++itnext;
+ FEdge *fe;
+ unsigned nSVM;
+ vector<float> values;
+ while(!itnext.isEnd()){
+ Interface0D& i0D = (*it);
+ Interface0D& i0Dnext = (*itnext);
+ fe = i0D.getFEdge(i0Dnext);
+ if(fe == 0){
+ cerr << "GetSteerableViewMapDensityF1D warning: no FEdge between " << i0D.getId() << " and " << i0Dnext.getId() << endl;
+ // compute the direction between these two ???
+ Vec2f dir = i0Dnext.getPoint2D()-i0D.getPoint2D();
+ nSVM = svm->getSVMNumber(dir);
+ }else{
+ nSVM = svm->getSVMNumber(fe->getId().getFirst());
+ }
+ Vec2r m((i0D.getProjectedX()+i0Dnext.getProjectedX())/2.0,
+ (i0D.getProjectedY()+i0Dnext.getProjectedY())/2.0);
+ values.push_back(svm->readSteerableViewMapPixel(nSVM,_level,(int)m[0],(int)m[1]));
+ ++it;++itnext;
+ }
+ float res, res_tmp;
+ vector<float>::iterator v = values.begin(), vend=values.end();
+ unsigned size = 1;
+ switch(_integration) {
+ case MIN:
+ res = *v;++v;
+ for (; v!=vend; ++v) {
+ res_tmp = *v;
+ if (res_tmp < res)
+ res = res_tmp;
+ }
+ break;
+ case MAX:
+ res = *v;++v;
+ for (; v!=vend; ++v) {
+ res_tmp = *v;
+ if (res_tmp > res)
+ res = res_tmp;
+ }
+ break;
+ case FIRST:
+ res = *v;
+ break;
+ case LAST:
+ --vend;
+ res = *vend;
+ break;
+ case MEAN:
+ default:
+ res = *v;++v;
+ for (; v!=vend; ++v, ++size)
+ res += *v;
+ res /= (size ? size : 1);
+ break;
+ }
+ return res;
+ }
+
+ double GetDirectionalViewMapDensityF1D::operator()(Interface1D& inter) {
+ unsigned size;
+ double res = integrate(_fun, inter.pointsBegin(_sampling), inter.pointsEnd(_sampling), _integration);
+ return res;
+ }
+
+ double GetCompleteViewMapDensityF1D::operator()(Interface1D& inter) {
+ unsigned size;
+ Id id = inter.getId();
+ double res = integrate(_fun, inter.pointsBegin(_sampling), inter.pointsEnd(_sampling), _integration);
+ return res;
+ }
+
+ real GetViewMapGradientNormF1D::operator()(Interface1D& inter){
+ return integrate(_func, inter.pointsBegin(_sampling), inter.pointsEnd(_sampling), _integration);
+ }
+}
+
diff --git a/source/blender/freestyle/intern/stroke/AdvancedFunctions1D.h b/source/blender/freestyle/intern/stroke/AdvancedFunctions1D.h
new file mode 100755
index 00000000000..65b0eec36fd
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/AdvancedFunctions1D.h
@@ -0,0 +1,286 @@
+//
+// Filename : AdvancedFunctions1D.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Functions taking 1D input
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ADVANCED_FUNCTIONS1D_HPP
+# define ADVANCED_FUNCTIONS1D_HPP
+
+
+# include "AdvancedFunctions0D.h"
+# include "../view_map/Functions1D.h"
+
+//
+// Functions definitions
+//
+///////////////////////////////////////////////////////////
+
+namespace Functions1D {
+
+ // DensityF1D
+ /*! Returns the density evaluated for an Interface1D.
+ * The density is evaluated for a set of points along
+ * the Interface1D (using the DensityF0D functor)
+ * with a user-defined sampling and
+ * then integrated into a single value using
+ * a user-defined integration method.
+ */
+ class DensityF1D : public UnaryFunction1D<double>
+ {
+ private:
+ float _sampling;
+ public:
+ /*! Builds the functor.
+ * \param sigma
+ * Thesigma used in DensityF0D and determining
+ * the window size used in each density query.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ * \param sampling
+ * The resolution used to sample the chain: the corresponding 0D function
+ * is evaluated at each sample point and the result is obtained by
+ * combining the resulting values into a single one, following the
+ * method specified by iType.
+ */
+ DensityF1D(double sigma = 2, IntegrationType iType = MEAN, float sampling=2.f) : UnaryFunction1D<double>(iType), _fun(sigma) {
+ _sampling = sampling;
+ }
+ /*! Destructor */
+ virtual ~DensityF1D(){}
+
+ /*! Returns the string "DensityF1D"*/
+ string getName() const {
+ return "DensityF1D";
+ }
+ /*! the () operator.*/
+ double operator()(Interface1D& inter) {
+ return integrate(_fun, inter.pointsBegin(_sampling), inter.pointsEnd(_sampling), _integration);
+ }
+ private:
+ Functions0D::DensityF0D _fun;
+ };
+
+ // LocalAverageDepthF1D
+ /*! Returns the average depth evaluated for an Interface1D.
+ * The average depth is evaluated for a set of points along
+ * the Interface1D (using the LocalAverageDepthF0D functor)
+ * with a user-defined sampling and
+ * then integrated into a single value using
+ * a user-defined integration method.
+ */
+ class LocalAverageDepthF1D : public UnaryFunction1D<double>
+ {
+ public:
+ /*! Builds the functor.
+ * \param sigma
+ * The sigma used in DensityF0D and determining
+ * the window size used in each density query.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ LocalAverageDepthF1D(real sigma, IntegrationType iType = MEAN)
+ : UnaryFunction1D<double>(iType), _fun(sigma){
+ }
+ /*! Returns the string "LocalAverageDepthF1D"*/
+ string getName() const {
+ return "LocalAverageDepthF1D";
+ }
+ /*! the () operator.*/
+ double operator()(Interface1D& inter) {
+ return integrate(_fun, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+ private:
+ Functions0D::LocalAverageDepthF0D _fun;
+ };
+
+ // GetCompleteViewMapDensity
+ /*! Returns the density evaluated for an Interface1D in the
+ * complete viewmap image.
+ * The density is evaluated for a set of points along
+ * the Interface1D (using the ReadCompleteViewMapPixelF0D functor)
+ * and then integrated into a single value using
+ * a user-defined integration method.
+ */
+ class LIB_STROKE_EXPORT GetCompleteViewMapDensityF1D : public UnaryFunction1D<double>
+ {
+ public:
+ /*! Builds the functor.
+ * \param level
+ * The level of the pyramid from which
+ * the pixel must be read.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ * \param sampling
+ * The resolution used to sample the chain: the corresponding 0D function
+ * is evaluated at each sample point and the result is obtained by
+ * combining the resulting values into a single one, following the
+ * method specified by iType.
+ */
+ GetCompleteViewMapDensityF1D(unsigned level, IntegrationType iType = MEAN, float sampling=2.f)
+ : UnaryFunction1D<double>(iType), _fun(level){_sampling = sampling;}
+ /*! Returns the string "GetCompleteViewMapDensityF1D"*/
+ string getName() const {
+ return "GetCompleteViewMapDensityF1D";
+ }
+ /*! the () operator.*/
+ double operator()(Interface1D& inter);
+
+ private:
+ Functions0D::ReadCompleteViewMapPixelF0D _fun;
+ float _sampling;
+ };
+
+ // GetDirectionalViewMapDensity
+ /*! Returns the density evaluated for an Interface1D in of the
+ * steerable viewmaps image.
+ * The direction telling which Directional map to choose
+ * is explicitely specified by the user.
+ * The density is evaluated for a set of points along
+ * the Interface1D (using the ReadSteerableViewMapPixelF0D functor)
+ * and then integrated into a single value using
+ * a user-defined integration method.
+ */
+ class LIB_STROKE_EXPORT GetDirectionalViewMapDensityF1D : public UnaryFunction1D<double>
+ {
+ public:
+ /*! Builds the functor.
+ * \param iOrientation
+ * The number of the directional map
+ * we must work with.
+ * \param level
+ * The level of the pyramid from which
+ * the pixel must be read.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ * \param sampling
+ * The resolution used to sample the chain: the corresponding 0D function
+ * is evaluated at each sample point and the result is obtained by
+ * combining the resulting values into a single one, following the
+ * method specified by iType.
+ */
+ GetDirectionalViewMapDensityF1D(unsigned iOrientation, unsigned level, IntegrationType iType = MEAN, float sampling=2.f)
+ : UnaryFunction1D<double>(iType), _fun(iOrientation,level){_sampling = sampling;}
+ /*! Returns the string "GetDirectionalViewMapDensityF1D"*/
+ string getName() const {
+ return "GetDirectionalViewMapDensityF1D";
+ }
+ /*! the () operator.*/
+ double operator()(Interface1D& inter);
+
+ private:
+ Functions0D::ReadSteerableViewMapPixelF0D _fun;
+ float _sampling;
+ };
+
+ // GetSteerableViewMapDensityF1D
+ /*! Returns the density of the viewmap
+ * for a given Interface1D. The density of each
+ * FEdge is evaluated in the proper steerable
+ * ViewMap depending on its oorientation.
+ */
+ class LIB_STROKE_EXPORT GetSteerableViewMapDensityF1D : public UnaryFunction1D<real>
+ {
+ private:
+ int _level;
+ float _sampling;
+ public:
+ /*! Builds the functor from the level
+ * of the pyramid from which the pixel must be read.
+ * \param level
+ * The level of the pyramid from which
+ * the pixel must be read.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ * \param sampling
+ * The resolution used to sample the chain: the corresponding 0D function
+ * is evaluated at each sample point and the result is obtained by
+ * combining the resulting values into a single one, following the
+ * method specified by iType.
+ */
+ GetSteerableViewMapDensityF1D(int level,IntegrationType iType = MEAN, float sampling=2.f) : UnaryFunction1D<real>(iType) {
+ _level = level;
+ _sampling = sampling;
+ }
+ /*! Destructor */
+ virtual ~GetSteerableViewMapDensityF1D(){}
+
+ /*! Returns the string "GetSteerableViewMapDensityF1D"*/
+ string getName() const {
+ return "GetSteerableViewMapDensityF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter);
+ };
+
+ // GetViewMapGradientNormF1D
+ /*! Returns the density of the viewmap
+ * for a given Interface1D. The density of each
+ * FEdge is evaluated in the proper steerable
+ * ViewMap depending on its oorientation.
+ */
+ class LIB_STROKE_EXPORT GetViewMapGradientNormF1D : public UnaryFunction1D<real>
+ {
+ private:
+ int _level;
+ float _sampling;
+ Functions0D::GetViewMapGradientNormF0D _func;
+ public:
+ /*! Builds the functor from the level
+ * of the pyramid from which the pixel must be read.
+ * \param level
+ * The level of the pyramid from which
+ * the pixel must be read.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ * \param sampling
+ * The resolution used to sample the chain: the corresponding 0D function
+ * is evaluated at each sample point and the result is obtained by
+ * combining the resulting values into a single one, following the
+ * method specified by iType.
+ */
+ GetViewMapGradientNormF1D(int level,IntegrationType iType = MEAN, float sampling=2.f)
+ : UnaryFunction1D<real>(iType), _func(level) {
+ _level = level;
+ _sampling = sampling;
+ }
+
+ /*! Returns the string "GetSteerableViewMapDensityF1D"*/
+ string getName() const {
+ return "GetViewMapGradientNormF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter);
+ };
+} // end of namespace Functions1D
+
+#endif // ADVANCED_FUNCTIONS1D_HPP
diff --git a/source/blender/freestyle/intern/stroke/AdvancedPredicates1D.h b/source/blender/freestyle/intern/stroke/AdvancedPredicates1D.h
new file mode 100755
index 00000000000..f348f8593e5
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/AdvancedPredicates1D.h
@@ -0,0 +1,81 @@
+//
+// Filename : AdvancedPredicates1D.h
+// Author(s) : Stephane Grabli
+// Purpose : Class gathering stroke creation algorithms
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ADVANCED_PREDICATES1D_H
+# define ADVANCED_PREDICATES1D_H
+
+# include <string>
+# include "../view_map/Interface1D.h"
+# include "AdvancedFunctions1D.h"
+# include "Predicates1D.h"
+
+//
+// Predicates definitions
+//
+///////////////////////////////////////////////////////////
+
+namespace Predicates1D {
+
+ // DensityLowerThanUP1D
+ /*! Returns true if the density evaluated for the
+ * Interface1D is less than a user-defined density value.
+ */
+ class DensityLowerThanUP1D : public UnaryPredicate1D
+ {
+ public:
+ /*! Builds the functor.
+ * \param threshold
+ * The value of the threshold density.
+ * Any Interface1D having a density lower than
+ * this threshold will match.
+ * \param sigma
+ * The sigma value defining the density evaluation window size
+ * used in the DensityF0D functor.
+ */
+ DensityLowerThanUP1D(double threshold, double sigma = 2) {
+ _threshold = threshold;
+ _sigma = sigma;
+ }
+ /*! Returns the string "DensityLowerThanUP1D"*/
+ string getName() const {
+ return "DensityLowerThanUP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& inter) {
+ Functions1D::DensityF1D fun(_sigma);
+ return (fun(inter) < _threshold);
+ }
+ private:
+ double _sigma;
+ double _threshold;
+ };
+
+} // end of namespace Predicates1D
+
+#endif // ADVANCED_PREDICATES1D_H
diff --git a/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.cpp b/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.cpp
new file mode 100755
index 00000000000..b1c5317c5f1
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.cpp
@@ -0,0 +1,423 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "../system/PseudoNoise.h"
+#include "../system/RandGen.h"
+#include "AdvancedStrokeShaders.h"
+#include "StrokeIterators.h"
+
+/////////////////////////////////////////
+//
+// CALLIGRAPHICS SHADER
+//
+/////////////////////////////////////////
+
+
+CalligraphicShader::CalligraphicShader (real iMinThickness, real iMaxThickness,
+ const Vec2f &iOrientation, bool clamp)
+ : StrokeShader()
+{
+ _minThickness=iMinThickness;
+ _maxThickness=iMaxThickness;
+ _orientation = iOrientation;
+ _orientation.normalize();
+ _clamp = clamp;
+}
+
+float ksinToto=0;
+
+void
+CalligraphicShader::shade(Stroke &ioStroke) const
+{
+ Interface0DIterator v;
+ Functions0D::VertexOrientation2DF0D fun;
+ StrokeVertex* sv;
+ for(v=ioStroke.verticesBegin();
+ !v.isEnd();
+ ++v)
+ {
+ real thickness;
+ Vec2f vertexOri(fun(v));
+ Vec2r ori2d(-vertexOri[1], vertexOri[0]);
+ ori2d.normalizeSafe();
+ real scal = ori2d * _orientation;
+ sv = dynamic_cast<StrokeVertex*>(&(*v));
+ if (_clamp && (scal<0)) {
+ scal=0.0;
+ sv->attribute().setColor(1,1,1);
+ }
+ else {
+ scal=fabs(scal);
+ sv->attribute().setColor(0,0,0);
+ }
+ thickness=_minThickness+scal*(_maxThickness-_minThickness);
+ if (thickness<0.0)
+ thickness=0.0;
+ sv->attribute().setThickness(thickness/2.0,thickness/2.0);
+ }
+
+}
+
+//void
+//TipRemoverShader::shade(Stroke &ioStroke) const
+//{
+//
+// StrokeInternal::StrokeVertexIterator v, vend;
+// for(v=ioStroke.strokeVerticesBegin(), vend=ioStroke.strokeVerticesEnd();
+// v!=vend;
+// ++v)
+// {
+// if (((*v)->curvilinearAbscissa()<_tipLength) ||
+// ((*v)->strokeLength()-(*v)->curvilinearAbscissa()<_tipLength))
+// {
+// (*v)->attribute().setThickness(0.0, 0.0);
+// (*v)->attribute().setColor(1,1,1);
+// }
+// }
+//
+//}
+
+
+
+/////////////////////////////////////////
+//
+// SPATIAL NOISE SHADER
+//
+/////////////////////////////////////////
+
+static const unsigned NB_VALUE_NOISE = 512;
+
+SpatialNoiseShader::SpatialNoiseShader (float ioamount, float ixScale, int nbOctave,
+ bool smooth, bool pureRandom)
+ : StrokeShader()
+{
+ _amount = ioamount;
+ if (ixScale==0) _xScale=0;
+ else _xScale=1.0/ixScale/real(NB_VALUE_NOISE);
+ _nbOctave=nbOctave;
+ _smooth=smooth;
+ _pureRandom=pureRandom;
+}
+void
+SpatialNoiseShader::shade(Stroke &ioStroke) const
+{
+ Interface0DIterator v, v2;
+ v=ioStroke.verticesBegin();
+ Vec2r p(v->getProjectedX(), v->getProjectedY());
+ v2=v; ++v2;
+ Vec2r p0(v2->getProjectedX(), v2->getProjectedY());
+ p0=p+2*(p-p0);
+ StrokeVertex* sv;
+ sv = dynamic_cast<StrokeVertex*>(&(*v));
+ real initU = sv->strokeLength()*real(NB_VALUE_NOISE);
+ if (_pureRandom) initU+=RandGen::drand48()*real(NB_VALUE_NOISE);
+
+ Functions0D::VertexOrientation2DF0D fun;
+ while (!v.isEnd())
+ {
+ sv = dynamic_cast<StrokeVertex*>(&(*v));
+ Vec2r p(sv->getPoint());
+ Vec2r vertexOri(fun(v));
+ Vec2r ori2d(vertexOri[0], vertexOri[1]);
+ ori2d = Vec2r(p-p0);
+ ori2d.normalizeSafe();
+
+ PseudoNoise mynoise;
+ real bruit;
+
+ if (_smooth)
+ bruit=mynoise.turbulenceSmooth(_xScale*sv->curvilinearAbscissa()+initU,
+ _nbOctave);
+ else
+ bruit=mynoise.turbulenceLinear(_xScale*sv->curvilinearAbscissa()+initU,
+ _nbOctave);
+
+ Vec2r noise(-ori2d[1]*_amount*bruit,
+ ori2d[0]*_amount*bruit);
+
+ sv->SetPoint(p[0]+noise[0], p[1]+noise[1]);
+ p0=p;
+
+ ++v;
+ }
+
+}
+
+
+
+/////////////////////////////////////////
+//
+// SMOOTHING SHADER
+//
+/////////////////////////////////////////
+
+
+SmoothingShader::SmoothingShader (int ionbIteration, real iFactorPoint, real ifactorCurvature, real iFactorCurvatureDifference,
+ real iAnisoPoint, real iAnisoNormal, real iAnisoCurvature, real iCarricatureFactor)
+ : StrokeShader()
+{
+ _nbIterations=ionbIteration;
+ _factorCurvature=ifactorCurvature;
+ _factorCurvatureDifference=iFactorCurvatureDifference;
+ _anisoNormal=iAnisoNormal;
+ _anisoCurvature=iAnisoCurvature;
+ _carricatureFactor=iCarricatureFactor;
+ _factorPoint=iFactorPoint;
+ _anisoPoint=iAnisoPoint;
+}
+
+
+
+void
+SmoothingShader::shade(Stroke &ioStroke) const
+{
+ //cerr<<" Smoothing a stroke "<<endl;
+
+ Smoother smoother(ioStroke);
+ smoother.smooth(_nbIterations, _factorPoint, _factorCurvature, _factorCurvatureDifference,
+ _anisoPoint, _anisoNormal, _anisoCurvature, _carricatureFactor);
+}
+
+// SMOOTHER
+////////////////////////////
+
+Smoother::Smoother(Stroke &ioStroke)
+{
+ _stroke=&ioStroke;
+
+ _nbVertices=ioStroke.vertices_size();
+ _vertex=new Vec2r[_nbVertices];
+ _curvature=new real[_nbVertices];
+ _normal=new Vec2r[_nbVertices];
+ StrokeInternal::StrokeVertexIterator v, vend;
+ int i=0;
+ for(v = ioStroke.strokeVerticesBegin(), vend = ioStroke.strokeVerticesEnd();
+ v != vend;
+ ++v)
+ {
+ _vertex[i]=(v)->getPoint();
+ i++;
+ }
+ Vec2r vec_tmp(_vertex[0]-_vertex[_nbVertices-1]);
+ _isClosedCurve = (vec_tmp.norm() < M_EPSILON);
+
+ _safeTest=(_nbVertices>4);
+}
+
+void Smoother::smooth(int nbIteration, real iFactorPoint, real ifactorCurvature, real iFactorCurvatureDifference,
+ real iAnisoPoint, real iAnisoNormal, real iAnisoCurvature, real iCarricatureFactor)
+{
+ _factorCurvature=ifactorCurvature;
+ _factorCurvatureDifference=iFactorCurvatureDifference;
+ _anisoNormal=iAnisoNormal;
+ _anisoCurvature=iAnisoCurvature;
+ _carricatureFactor=iCarricatureFactor;
+ _factorPoint=iFactorPoint;
+ _anisoPoint=iAnisoPoint;
+
+ for (int i=0; i<nbIteration; i++)
+ iteration ();
+ copyVertices();
+}
+
+real edgeStopping (real x, real sigma)
+{
+ if (sigma==0.0) return 1.0;
+ return exp(-x*x/(sigma*sigma));
+}
+
+void
+Smoother::iteration ()
+{
+ computeCurvature();
+ for (int i=1; i<_nbVertices-1; i++)
+ {
+ real motionNormal=_factorCurvature*_curvature[i]*
+ edgeStopping(_curvature[i], _anisoNormal);
+
+ real diffC1=_curvature[i]-_curvature[i-1];
+ real diffC2=_curvature[i]-_curvature[i+1];
+ real motionCurvature=edgeStopping(diffC1, _anisoCurvature)*diffC1 +
+ edgeStopping(diffC2, _anisoCurvature)*diffC2;//_factorCurvatureDifference;
+ motionCurvature*=_factorCurvatureDifference;
+ //motionCurvature=_factorCurvatureDifference*(diffC1+diffC2);
+ if (_safeTest)
+ _vertex[i]=Vec2r(_vertex[i]+(motionNormal+motionCurvature)*_normal[i]);
+ Vec2r v1(_vertex[i-1]-_vertex[i]);
+ Vec2r v2(_vertex[i+1]-_vertex[i]);
+ real d1 = v1.norm();
+ real d2 = v2.norm();
+ _vertex[i]=Vec2r(_vertex[i]+
+ _factorPoint*edgeStopping(d2, _anisoPoint)*(_vertex[i-1]-_vertex[i]) +
+ _factorPoint*edgeStopping(d1, _anisoPoint)*(_vertex[i+1]-_vertex[i]) );
+ }
+
+ if (_isClosedCurve)
+ {
+ real motionNormal=_factorCurvature*_curvature[0]*
+ edgeStopping(_curvature[0], _anisoNormal);
+
+ real diffC1=_curvature[0]-_curvature[_nbVertices-2];
+ real diffC2=_curvature[0]-_curvature[1];
+ real motionCurvature=edgeStopping(diffC1, _anisoCurvature)*diffC1 +
+ edgeStopping(diffC2, _anisoCurvature)*diffC2;//_factorCurvatureDifference;
+ motionCurvature*=_factorCurvatureDifference;
+ //motionCurvature=_factorCurvatureDifference*(diffC1+diffC2);
+ _vertex[0]=Vec2r(_vertex[0]+(motionNormal+motionCurvature)*_normal[0]);
+ _vertex[_nbVertices-1]=_vertex[0];
+ }
+}
+
+
+void
+Smoother::computeCurvature ()
+{
+ int i;
+ Vec2r BA, BC, normalCurvature;
+ for (i = 1; i < _nbVertices - 1; i++)
+ {
+ BA=_vertex[i-1]-_vertex[i];
+ BC=_vertex[i+1]-_vertex[i];
+ real lba=BA.norm(), lbc=BC.norm();
+ BA.normalizeSafe();
+ BC.normalizeSafe();
+ normalCurvature = BA + BC;
+
+ _normal[i]=Vec2r(-(BC-BA)[1], (BC-BA)[0]);
+ _normal[i].normalizeSafe();
+
+ _curvature[i] = normalCurvature * _normal[i];
+ if (lba+lbc > M_EPSILON)
+ _curvature[i]/=(0.5*lba+lbc);
+ }
+ _curvature[0]=_curvature[1];
+ _curvature[_nbVertices-1]=_curvature[_nbVertices-2];
+ Vec2r di(_vertex[1]-_vertex[0]);
+ _normal[0] = Vec2r(-di[1], di[0]);
+ _normal[0].normalizeSafe();
+ di=_vertex[_nbVertices-1]-_vertex[_nbVertices-2];
+ _normal[_nbVertices-1]=Vec2r(-di[1], di[0]);
+ _normal[_nbVertices-1].normalizeSafe();
+
+ if (_isClosedCurve)
+ {
+ BA=_vertex[_nbVertices-2]-_vertex[0];
+ BC=_vertex[1]-_vertex[0];
+ real lba=BA.norm(), lbc=BC.norm();
+ BA.normalizeSafe();
+ BC.normalizeSafe();
+ normalCurvature = BA + BC;
+
+ _normal[i]=Vec2r(-(BC-BA)[1], (BC-BA)[0]);
+ _normal[i].normalizeSafe();
+
+ _curvature[i] = normalCurvature * _normal[i];
+ if (lba+lbc > M_EPSILON)
+ _curvature[i]/=(0.5*lba+lbc);
+
+ _normal[_nbVertices-1]=_normal[0];
+ _curvature[_nbVertices-1]=_curvature[0];
+ }
+}
+
+void
+Smoother::copyVertices ()
+{
+ int i=0;
+ StrokeInternal::StrokeVertexIterator v, vend;
+ for(v=_stroke->strokeVerticesBegin(), vend=_stroke->strokeVerticesEnd();
+ v!=vend;
+ ++v)
+ {
+ const Vec2r p0((v)->getPoint());
+ const Vec2r p1(_vertex[i]);
+ Vec2r p(p0 + _carricatureFactor * (p1 - p0));
+
+ (v)->SetPoint(p[0], p[1]);
+ i++;
+ }
+
+}
+
+
+/////////////////////////////////////////
+//
+// OMISSION SHADER
+//
+/////////////////////////////////////////
+
+OmissionShader::OmissionShader (real sizeWindow, real thrVari, real thrFlat, real lFlat)
+{
+ _sizeWindow=sizeWindow;
+ _thresholdVariation=thrVari;
+ _thresholdFlat=thrFlat;
+ _lengthFlat=lFlat;
+}
+
+void
+OmissionShader::shade(Stroke &ioStroke) const
+{
+ Omitter omi(ioStroke);
+ omi.omit(_sizeWindow, _thresholdVariation, _thresholdFlat, _lengthFlat);
+
+}
+
+
+// OMITTER
+///////////////////////////
+
+Omitter::Omitter (Stroke &ioStroke)
+ :Smoother (ioStroke)
+{
+ StrokeInternal::StrokeVertexIterator v, vend;
+ int i=0;
+ for(v=ioStroke.strokeVerticesBegin(), vend=ioStroke.strokeVerticesEnd();
+ v!=vend;
+ ++v)
+ {
+ _u[i]=(v)->curvilinearAbscissa();
+ i++;
+ }
+
+}
+
+void
+Omitter::omit (real sizeWindow, real thrVari, real thrFlat, real lFlat)
+{
+ _sizeWindow=sizeWindow;
+ _thresholdVariation=thrVari;
+ _thresholdFlat=thrFlat;
+ _lengthFlat=lFlat;
+
+ for (int i=1; i<_nbVertices-1; i++)
+ {
+ if (_u[i]<_lengthFlat) continue;
+ // is the previous segment flat?
+ int j=i-1;
+ while ((j>=0) && (_u[i]-_u[j]<_lengthFlat))
+ {
+ if ((_normal[j] * _normal[i]) < _thresholdFlat)
+ ; // FIXME
+ j--;
+ }
+
+ }
+}
diff --git a/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h b/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h
new file mode 100755
index 00000000000..b624ccd3e6b
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/AdvancedStrokeShaders.h
@@ -0,0 +1,222 @@
+//
+// Filename : AdvancedStrokeShaders.h
+// Author : Fredo Durand
+// Purpose : Fredo's stroke shaders
+// Date of creation : 17/12/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ADVANCEDSTROKESHADERS_H
+# define ADVANCEDSTROKESHADERS_H
+
+# include "BasicStrokeShaders.h"
+
+/*! [ Thickness Shader ].
+ * Assigns thicknesses to the stroke vertices
+ * so that the stroke looks like made with a calligraphic tool.
+ * i.e. The stroke will be the thickest in a main direction,
+ * the thinest in the direction perpendicular to this one,
+ * and an interpolation inbetween.
+ */
+class LIB_STROKE_EXPORT CalligraphicShader : public StrokeShader
+{
+
+public:
+ /*! Builds the shader.
+ * \param iMinThickness
+ * The minimum thickness in the direction perpandicular
+ * to the main direction.
+ * \param iMaxThickness
+ * The maximum thickness in the main direction.
+ * \param iOrientation
+ * The 2D vector giving the main direction.
+ * \param clamp
+ * Tells ???
+ */
+ CalligraphicShader (real iMinThickness, real iMaxThickness,
+ const Vec2f &iOrientation, bool clamp);
+ /*! Destructor. */
+ virtual ~CalligraphicShader () {}
+ /*! The shading method */
+ virtual void shade(Stroke &ioStroke) const;
+protected:
+ real _maxThickness;
+ real _minThickness;
+ Vec2f _orientation;
+ bool _clamp;
+};
+
+/*! [ Geometry Shader ].
+ * Spatial Noise stroke shader.
+ * Moves the vertices to make the stroke more noisy.
+ * @see \htmlonly <a href=noise/noise.html>noise/noise.html</a> \endhtmlonly
+ */
+class LIB_STROKE_EXPORT SpatialNoiseShader : public StrokeShader
+{
+public:
+ /*! Builds the shader.
+ * \param iAmount
+ * The amplitude of the noise.
+ * \param ixScale
+ * The noise frequency
+ * \param nbOctave
+ * The number of octaves
+ * \param smooth
+ * If you want the noise to be smooth
+ * \param pureRandom
+ * If you don't want any coherence
+ */
+ SpatialNoiseShader (float iAmount, float ixScale, int nbOctave, bool smooth, bool pureRandom);
+ /*! Destructor. */
+ virtual ~SpatialNoiseShader () {}
+ /*! The shading method. */
+ virtual void shade(Stroke &ioStroke) const;
+
+protected:
+
+ float _amount;
+ float _xScale;
+ int _nbOctave;
+ bool _smooth;
+ bool _pureRandom;
+};
+
+/*! [ Geometry Shader ].
+ * Smoothes the stroke.
+ * (Moves the vertices to make the stroke smoother).
+ * Uses curvature flow to converge towards a curve of constant
+ * curvature. The diffusion method we use is anisotropic
+ * to prevent the diffusion accross corners.
+ * @see \htmlonly <a href=/smoothing/smoothing.html>smoothing/smoothing.html</a> endhtmlonly
+ */
+class LIB_STROKE_EXPORT SmoothingShader : public StrokeShader
+{
+public:
+ /*! Builds the shader.
+ * \param iNbIteration
+ * The number of iterations. (400)
+ * \param iFactorPoint
+ * 0
+ * \param ifactorCurvature
+ * 0
+ * \param iFactorCurvatureDifference
+ * 0.2
+ * \param iAnisoPoint
+ * 0
+ * \param iAnisNormal
+ * 0
+ * \param iAnisoCurvature
+ * 0
+ * \param icarricatureFactor
+ * 1
+ */
+ SmoothingShader (int iNbIteration, real iFactorPoint, real ifactorCurvature, real iFactorCurvatureDifference,
+ real iAnisoPoint, real iAnisoNormal, real iAnisoCurvature, real icarricatureFactor);
+ /*! Destructor. */
+ virtual ~SmoothingShader () {}
+
+ /*! The shading method. */
+ virtual void shade(Stroke &ioStroke) const;
+
+protected:
+
+ int _nbIterations;
+ real _factorPoint;
+ real _factorCurvature;
+ real _factorCurvatureDifference;
+ real _anisoPoint;
+ real _anisoNormal;
+ real _anisoCurvature;
+ real _carricatureFactor;
+};
+
+class LIB_STROKE_EXPORT Smoother
+{
+public:
+ Smoother (Stroke &ioStroke);
+
+ virtual ~Smoother () {}
+
+ void smooth (int nbIterations, real iFactorPoint, real ifactorCurvature, real iFactorCurvatureDifference,
+ real iAnisoPoint, real iAnisoNormal, real iAnisoCurvature, real icarricatureFactor);
+ void computeCurvature ();
+
+protected:
+ real _factorPoint;
+ real _factorCurvature;
+ real _factorCurvatureDifference;
+ real _anisoPoint;
+ real _anisoNormal;
+ real _anisoCurvature;
+ real _carricatureFactor;
+
+ void iteration();
+ void copyVertices ();
+
+ Stroke *_stroke;
+ int _nbVertices;
+ Vec2r *_vertex;
+ Vec2r *_normal;
+ real *_curvature;
+ bool *_isFixedVertex;
+
+ bool _isClosedCurve;
+ bool _safeTest;
+};
+
+class LIB_STROKE_EXPORT Omitter : public Smoother
+{
+public:
+ Omitter (Stroke &ioStroke);
+ virtual ~Omitter () {}
+
+ void omit (real sizeWindow, real thrVari, real thrFlat, real lFlat);
+protected:
+ real *_u;
+
+ real _sizeWindow;
+ real _thresholdVariation;
+ real _thresholdFlat;
+ real _lengthFlat;
+};
+
+/*! Omission shader
+ */
+class LIB_STROKE_EXPORT OmissionShader : public StrokeShader
+{
+public:
+ OmissionShader (real sizeWindow, real thrVari, real thrFlat, real lFlat);
+ virtual ~OmissionShader () {}
+
+ virtual void shade(Stroke &ioStroke) const;
+
+protected:
+
+ real _sizeWindow;
+ real _thresholdVariation;
+ real _thresholdFlat;
+ real _lengthFlat;
+};
+
+#endif // ADVANCEDSTROKESHADERS_H
diff --git a/source/blender/freestyle/intern/stroke/BasicStrokeShaders.cpp b/source/blender/freestyle/intern/stroke/BasicStrokeShaders.cpp
new file mode 100755
index 00000000000..c3827ae3e36
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/BasicStrokeShaders.cpp
@@ -0,0 +1,1100 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <fstream>
+#include <qimage.h>
+#include "BasicStrokeShaders.h"
+#include "../system/PseudoNoise.h"
+#include "../system/RandGen.h"
+#include "../view_map/Functions0D.h"
+#include "../view_map/Functions1D.h"
+#include "AdvancedFunctions0D.h"
+#include "AdvancedFunctions1D.h"
+#include "StrokeIterators.h"
+#include "../system/StringUtils.h"
+#include "StrokeRenderer.h"
+#include "StrokeIO.h"
+#include <QString>
+
+// Internal function
+void convert(const QImage& iImage, float **oArray, unsigned &oSize) {
+ oSize = iImage.width();
+ *oArray = new float[oSize];
+ for(unsigned i=0; i<oSize; ++i) {
+ QRgb rgb = iImage.pixel(i,0);
+ (*oArray)[i] = ((float)qBlue(rgb))/255.f;
+ }
+}
+
+namespace StrokeShaders {
+
+ //
+ // Thickness modifiers
+ //
+ //////////////////////////////////////////////////////////
+
+ void ConstantThicknessShader::shade(Stroke& stroke) const
+ {
+ StrokeInternal::StrokeVertexIterator v, vend;
+ int i=0;
+ int size = stroke.strokeVerticesSize();
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+ ++v)
+ {
+ if((1 == i) || (size-2 == i))
+ v->attribute().setThickness(_thickness/4.0,_thickness/4.0);
+ if((0 == i) || (size-1 == i))
+ v->attribute().setThickness(0,0);
+
+ v->attribute().setThickness(_thickness/2.0, _thickness/2.0);
+ }
+ }
+
+ void ConstantExternThicknessShader::shade(Stroke& stroke) const
+ {
+ StrokeInternal::StrokeVertexIterator v, vend;
+ int i=0;
+ int size = stroke.strokeVerticesSize();
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+ ++v)
+ {
+ if((1 == i) || (size-2 == i))
+ v->attribute().setThickness(_thickness/2.0,0);
+ if((0 == i) || (size-1 == i))
+ v->attribute().setThickness(0,0);
+
+ v->attribute().setThickness(_thickness, 0);
+ }
+ }
+
+ void IncreasingThicknessShader::shade(Stroke& stroke) const
+ {
+
+ int n=stroke.strokeVerticesSize()-1;
+ StrokeInternal::StrokeVertexIterator v, vend;
+ int i=0;
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+
+ ++v)
+ {
+ float t;
+ if(i < (float)n/2.f)
+ t = (1.0-(float)i/(float)n)*_ThicknessMin + (float)i/(float)n*_ThicknessMax;
+ else
+ t = (1.0-(float)i/(float)n)*_ThicknessMax + (float)i/(float)n*_ThicknessMin;
+ v->attribute().setThickness(t/2.0, t/2.0);
+ ++i;
+ }
+ }
+
+ void ConstrainedIncreasingThicknessShader::shade(Stroke& stroke) const
+ {
+ float slength = stroke.getLength2D();
+ float maxT = min(_ratio*slength,_ThicknessMax);
+ int n=stroke.strokeVerticesSize()-1;
+ StrokeInternal::StrokeVertexIterator v, vend;
+ int i=0;
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+
+ ++v)
+ {
+ float t;
+ if(i < (float)n/2.f)
+ t = (1.0-(float)i/(float)n)*_ThicknessMin + (float)i/(float)n*maxT;
+ else
+ t = (1.0-(float)i/(float)n)*maxT + (float)i/(float)n*_ThicknessMin;
+ v->attribute().setThickness(t/2.0, t/2.0);
+ if(i == n-1)
+ v->attribute().setThickness(_ThicknessMin/2.0, _ThicknessMin/2.0);
+ ++i;
+ }
+ }
+
+
+ void LengthDependingThicknessShader::shade(Stroke& stroke) const
+ {
+ float step = (_maxThickness-_minThickness)/3.f;
+ float l = stroke.getLength2D();
+ float thickness;
+ if(l>300.f)
+ thickness = _minThickness+3.f*step;
+ else if((l< 300.f) && (l>100.f))
+ thickness = _minThickness+2.f*step;
+ else if((l<100.f) && (l>50.f))
+ thickness = _minThickness+1.f*step;
+ else if(l< 50.f)
+ thickness = _minThickness;
+
+ StrokeInternal::StrokeVertexIterator v, vend;
+ int i=0;
+ int size = stroke.strokeVerticesSize();
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+ ++v)
+ {
+ if((1 == i) || (size-2 == i))
+ v->attribute().setThickness(thickness/4.0,thickness/4.0);
+ if((0 == i) || (size-1 == i))
+ v->attribute().setThickness(0,0);
+
+ v->attribute().setThickness(thickness/2.0, thickness/2.0);
+ }
+ }
+
+
+ ThicknessVariationPatternShader::ThicknessVariationPatternShader(const string pattern_name,
+ float iMinThickness,
+ float iMaxThickness,
+ bool stretch)
+ : StrokeShader() {
+ _stretch = stretch;
+ _minThickness = iMinThickness;
+ _maxThickness = iMaxThickness;
+ QImage image;
+ vector<string> pathnames;
+ StringUtils::getPathName(TextureManager::Options::getPatternsPath(),
+ pattern_name,
+ pathnames);
+ for (vector<string>::const_iterator j = pathnames.begin(); j != pathnames.end(); j++) {
+ ifstream ifs(j->c_str());
+ if (ifs.is_open()) {
+ image.load(j->c_str());
+ break;
+ }
+ }
+ if (image.isNull())
+ cerr << "Error: cannot find pattern \"" << pattern_name
+ << "\" - check the path in the Options" << endl;
+ else
+ convert(image, &_aThickness, _size);
+ }
+
+ void ThicknessVariationPatternShader::shade(Stroke& stroke) const
+ {
+ StrokeInternal::StrokeVertexIterator v, vend;
+ float *array = 0;
+ int size;
+ array = _aThickness;
+ size = _size;
+ // }
+ int vert_size = stroke.strokeVerticesSize();
+ int sig = 0;
+ unsigned index;
+ const float* originalThickness;
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+ ++v)
+ {
+ originalThickness = v->attribute().getThickness();
+ if (_stretch) {
+ float tmp = v->u()*(_size-1);
+ index = (unsigned)floor(tmp);
+ if((tmp-index) > (index+1-tmp))
+ ++index;
+ }
+ else
+ index = (unsigned)floor(v->curvilinearAbscissa());
+ index %= _size;
+ float thicknessR = array[index]*originalThickness[0];
+ float thicknessL = array[index]*originalThickness[1];
+ if(thicknessR+thicknessL < _minThickness)
+ {
+ thicknessL = _minThickness/2.f;
+ thicknessR = _minThickness/2.f;
+ }
+ if(thicknessR+thicknessL > _maxThickness)
+ {
+ thicknessL = _maxThickness/2.f;
+ thicknessR = _maxThickness/2.f;
+ }
+ if((sig==0) || (sig==vert_size-1))
+ v->attribute().setThickness(1, 1);
+ else
+ v->attribute().setThickness(thicknessR, thicknessL);
+ ++sig;
+ }
+ }
+
+
+ static const unsigned NB_VALUE_NOISE = 512;
+ ThicknessNoiseShader::ThicknessNoiseShader()
+ :StrokeShader()
+ {_amplitude=1.f;_scale=1.f/2.f/(float)NB_VALUE_NOISE;}
+
+ ThicknessNoiseShader::ThicknessNoiseShader(float iAmplitude, float iPeriod)
+ :StrokeShader()
+ {_amplitude=iAmplitude;_scale=1.f/iPeriod/(float)NB_VALUE_NOISE;}
+
+
+ void ThicknessNoiseShader::shade(Stroke& stroke) const
+ {
+ StrokeInternal::StrokeVertexIterator v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ real initU1=v->strokeLength()*real(NB_VALUE_NOISE)+RandGen::drand48()*real(NB_VALUE_NOISE);
+ real initU2=v->strokeLength()*real(NB_VALUE_NOISE)+RandGen::drand48()*real(NB_VALUE_NOISE);
+
+ real bruit, bruit2;
+ PseudoNoise mynoise, mynoise2;
+ for(;
+ v!=vend;
+ ++v)
+ {
+
+ bruit=mynoise.turbulenceSmooth(_scale*v->curvilinearAbscissa()+initU1,
+ 2); //2 : nbOctaves
+ bruit2=mynoise2.turbulenceSmooth(_scale*v->curvilinearAbscissa()+initU2,
+ 2); //2 : nbOctaves
+ const float *originalThickness = v->attribute().getThickness();
+ float r = bruit*_amplitude+originalThickness[0];
+ float l = bruit2*_amplitude+originalThickness[1];
+ v->attribute().setThickness(r,l);
+ }
+
+ }
+
+ //
+ // Color shaders
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+
+ void ConstantColorShader::shade(Stroke& stroke) const
+ {
+ StrokeInternal::StrokeVertexIterator v, vend;
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+ ++v)
+ {
+ v->attribute().setColor(_color[0], _color[1], _color[2]);
+ v->attribute().setAlpha(_color[3]);
+ }
+ }
+
+ void IncreasingColorShader::shade(Stroke& stroke) const
+ {
+ StrokeInternal::StrokeVertexIterator v, vend;
+ int n=stroke.strokeVerticesSize()-1;
+ int yo=0;
+ float newcolor[4];
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+
+ ++v)
+ {
+ for(int i=0; i<4; ++i)
+ {
+ newcolor[i] = (1.0-(float)yo/(float)n)*_colorMin[i] + (float)yo/(float)n*_colorMax[i];
+ }
+ v->attribute().setColor(newcolor[0], newcolor[1], newcolor[2]);
+ v->attribute().setAlpha(newcolor[3]);
+ ++yo;
+ }
+ }
+
+ ColorVariationPatternShader::ColorVariationPatternShader(const string pattern_name,
+ bool stretch)
+ : StrokeShader() {
+ _stretch = stretch;
+ QImage image;
+ vector<string> pathnames;
+ StringUtils::getPathName(TextureManager::Options::getPatternsPath(),
+ pattern_name,
+ pathnames);
+ for (vector<string>::const_iterator j = pathnames.begin(); j != pathnames.end(); j++) {
+ ifstream ifs(j->c_str());
+ if (ifs.is_open()) {
+ image.load(j->c_str());
+ break;
+ }
+ }
+ if (image.isNull())
+ cerr << "Error: cannot find pattern \"" << pattern_name
+ << "\" - check the path in the Options" << endl;
+ else
+ convert(image, &_aVariation, _size);
+ }
+
+ void ColorVariationPatternShader::shade(Stroke& stroke) const
+ {
+ StrokeInternal::StrokeVertexIterator v, vend;
+ unsigned index;
+ for(v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ v!=vend;
+ ++v)
+ {
+ const float *originalColor = v->attribute().getColor();
+ if (_stretch) {
+ float tmp = v->u()*(_size-1);
+ index = (unsigned)floor(tmp);
+ if((tmp-index) > (index+1-tmp))
+ ++index;
+ }
+ else
+ index = (unsigned)floor(v->curvilinearAbscissa());
+ index %= _size;
+ float r = _aVariation[index]*originalColor[0];
+ float g = _aVariation[index]*originalColor[1];
+ float b = _aVariation[index]*originalColor[2];
+ v->attribute().setColor(r,g,b);
+ }
+ }
+
+ void MaterialColorShader::shade(Stroke& stroke) const
+ {
+ Interface0DIterator v, vend;
+ Functions0D::MaterialF0D fun;
+ StrokeVertex *sv;
+ for(v=stroke.verticesBegin(), vend=stroke.verticesEnd();
+ v!=vend;
+ ++v)
+ {
+ const float *diffuse = fun(v).diffuse();
+ sv = dynamic_cast<StrokeVertex*>(&(*v));
+ sv->attribute().setColor(diffuse[0]*_coefficient, diffuse[1]*_coefficient, diffuse[2]*_coefficient);
+ sv->attribute().setAlpha(diffuse[3]);
+ }
+ }
+
+
+ void CalligraphicColorShader::shade(Stroke& stroke) const
+ {
+ Interface0DIterator v;
+ Functions0D::VertexOrientation2DF0D fun;
+ StrokeVertex* sv;
+ for(v=stroke.verticesBegin();
+ !v.isEnd();
+ ++v)
+ {
+ Vec2f vertexOri(fun(v));
+ Vec2d ori2d(-vertexOri[1], vertexOri[0]);
+ ori2d.normalizeSafe();
+ real scal = ori2d * _orientation;
+ sv = dynamic_cast<StrokeVertex*>(&(*v));
+ if ((scal<0))
+ sv->attribute().setColor(0,0,0);
+ else
+ sv->attribute().setColor(1,1,1);
+ }
+ }
+
+
+ ColorNoiseShader::ColorNoiseShader()
+ :StrokeShader()
+ {_amplitude=1.f;_scale=1.f/2.f/(float)NB_VALUE_NOISE;}
+
+ ColorNoiseShader::ColorNoiseShader(float iAmplitude, float iPeriod)
+ :StrokeShader()
+ {_amplitude=iAmplitude;_scale=1.f/iPeriod/(float)NB_VALUE_NOISE;}
+
+
+ void ColorNoiseShader::shade(Stroke& stroke) const
+ {
+ StrokeInternal::StrokeVertexIterator v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ real initU=v->strokeLength()*real(NB_VALUE_NOISE)+RandGen::drand48()*real(NB_VALUE_NOISE);
+
+ real bruit;
+ PseudoNoise mynoise;
+ for(;
+ v!=vend;
+ ++v)
+ {
+
+ bruit=mynoise.turbulenceSmooth(_scale*v->curvilinearAbscissa()+initU,
+ 2); //2 : nbOctaves
+ const float *originalColor = v->attribute().getColor();
+ float r = bruit*_amplitude+originalColor[0];
+ float g = bruit*_amplitude+originalColor[1];
+ float b = bruit*_amplitude+originalColor[2];
+ v->attribute().setColor(r,g,b);
+ }
+
+ }
+
+
+ //
+ // Texture Shaders
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+
+ void TextureAssignerShader::shade(Stroke& stroke) const
+ {
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/charcoalAlpha.bmp", Stroke::HUMID_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/washbrushAlpha.bmp", Stroke::HUMID_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/oil.bmp", Stroke::HUMID_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/oilnoblend.bmp", Stroke::HUMID_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/charcoalAlpha.bmp", Stroke::DRY_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/washbrushAlpha.bmp", Stroke::DRY_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/opaqueDryBrushAlpha.bmp", Stroke::OPAQUE_MEDIUM);
+ // getBrushTextureIndex(TEXTURES_DIR "/brushes/opaqueBrushAlpha.bmp", Stroke::OPAQUE_MEDIUM);
+
+ TextureManager * instance = TextureManager::getInstance();
+ if(!instance)
+ return;
+ string pathname;
+ Stroke::MediumType mediumType;
+ bool hasTips = false;
+ switch(_textureId)
+ {
+ case 0:
+ //pathname = TextureManager::Options::getBrushesPath() + "/charcoalAlpha.bmp";
+ pathname = "/charcoalAlpha.bmp";
+ mediumType = Stroke::HUMID_MEDIUM;
+ hasTips = false;
+ break;
+ case 1:
+ pathname = "/washbrushAlpha.bmp";
+ mediumType = Stroke::HUMID_MEDIUM;
+ hasTips = true;
+ break;
+ case 2:
+ pathname = "/oil.bmp";
+ mediumType = Stroke::HUMID_MEDIUM;
+ hasTips = true;
+ break;
+ case 3:
+ pathname = "/oilnoblend.bmp";
+ mediumType = Stroke::HUMID_MEDIUM;
+ hasTips = true;
+ break;
+ case 4:
+ pathname = "/charcoalAlpha.bmp";
+ mediumType = Stroke::DRY_MEDIUM;
+ hasTips = false;
+ break;
+ case 5:
+ mediumType = Stroke::DRY_MEDIUM;
+ hasTips = true;
+ break;
+ case 6:
+ pathname = "/opaqueDryBrushAlpha.bmp";
+ mediumType = Stroke::OPAQUE_MEDIUM;
+ hasTips = true;
+ break;
+ case 7:
+ pathname = "/opaqueBrushAlpha.bmp";
+ mediumType = Stroke::OPAQUE_MEDIUM;
+ hasTips = true;
+ break;
+ default:
+ pathname = "/smoothAlpha.bmp";
+ mediumType = Stroke::OPAQUE_MEDIUM;
+ hasTips = false;
+ break;
+ }
+ unsigned int texId = instance->getBrushTextureIndex(pathname, mediumType);
+ stroke.SetMediumType(mediumType);
+ stroke.SetTips(hasTips);
+ stroke.SetTextureId(texId);
+ }
+
+ // FIXME
+ void StrokeTextureShader::shade(Stroke& stroke) const
+ {
+ TextureManager * instance = TextureManager::getInstance();
+ if(!instance)
+ return;
+ string pathname = TextureManager::Options::getBrushesPath() + "/" + _texturePath;
+ unsigned int texId = instance->getBrushTextureIndex(pathname, _mediumType);
+ stroke.SetMediumType(_mediumType);
+ stroke.SetTips(_tips);
+ stroke.SetTextureId(texId);
+ }
+
+ //
+ // Geometry Shaders
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+
+ void BackboneStretcherShader::shade(Stroke& stroke) const
+ {
+ float l=stroke.getLength2D();
+ if(l <= 50)
+ return;
+
+ StrokeInternal::StrokeVertexIterator v0=stroke.strokeVerticesBegin();
+ StrokeInternal::StrokeVertexIterator v1=v0;++v1;
+ StrokeInternal::StrokeVertexIterator vn=stroke.strokeVerticesEnd();--vn;
+ StrokeInternal::StrokeVertexIterator vn_1=vn;--vn_1;
+
+
+ Vec2d first((v0)->x(), (v0)->y());
+ Vec2d last((vn)->x(), (vn)->y());
+
+ Vec2d d1(first-Vec2d((v1)->x(), (v1)->y()));
+ d1.normalize();
+ Vec2d dn(last-Vec2d((vn_1)->x(), (vn_1)->y()));
+ dn.normalize();
+
+ Vec2d newFirst(first+_amount*d1);
+ (v0)->SetPoint(newFirst[0], newFirst[1]);
+ Vec2d newLast(last+_amount*dn);
+ (vn)->SetPoint(newLast[0], newLast[1]);
+ }
+
+ void SamplingShader::shade(Stroke& stroke) const
+ {
+ stroke.Resample(_sampling);
+ }
+
+ void ExternalContourStretcherShader::shade(Stroke& stroke) const
+ {
+ float l=stroke.getLength2D();
+ Interface0DIterator it=stroke.verticesBegin();
+ Functions0D::Normal2DF0D fun;
+ StrokeVertex* sv;
+ while (!it.isEnd())
+ {
+ Vec2f n(fun(it));
+ sv = dynamic_cast<StrokeVertex*>(&(*it));
+ Vec2d newPoint(sv->x()+_amount*n.x(), sv->y()+_amount*n.y());
+ sv->SetPoint(newPoint[0], newPoint[1]);
+ ++it;
+ }
+ }
+
+ void BSplineShader::shade(Stroke& stroke) const
+ {
+ if(stroke.strokeVerticesSize() < 4)
+ return;
+
+ // Find the new vertices
+ vector<Vec2d> newVertices;
+ double t=0.f;
+ float _sampling = 5.f;
+
+ StrokeInternal::StrokeVertexIterator p0,p1,p2,p3, end;
+ p0 = stroke.strokeVerticesBegin();
+ p1 = p0;
+ p2 = p1;
+ p3 = p2;
+ end = stroke.strokeVerticesEnd();
+ double a[4],b[4];
+ int n=0;
+ while(p1 != end)
+ {
+ // if(p1 == end)
+ // p1 = p0;
+ if(p2 == end)
+ p2 = p1;
+ if(p3 == end)
+ p3 = p2;
+ // compute new matrix
+ a[0] = (-(p0)->x()+3*(p1)->x()-3*(p2)->x()+(p3)->x())/6.0;
+ a[1] = (3*(p0)->x()-6*(p1)->x()+3*(p2)->x())/6.0;
+ a[2] = (-3*(p0)->x()+3*(p2)->x())/6.0;
+ a[3] = ((p0)->x()+4*(p1)->x()+(p2)->x())/6.0;
+
+ b[0] = (-(p0)->y()+3*(p1)->y()-3*(p2)->y()+(p3)->y())/6.0;
+ b[1] = (3*(p0)->y()-6*(p1)->y()+3*(p2)->y())/6.0;
+ b[2] = (-3*(p0)->y()+3*(p2)->y())/6.0;
+ b[3] = ((p0)->y()+4*(p1)->y()+(p2)->y())/6.0;
+
+
+ // draw the spline depending on resolution:
+ Vec2d p1p2((p2)->x()-(p1)->x(), (p2)->y()-(p1)->y());
+ double norm = p1p2.norm();
+ //t = _sampling/norm;
+ t=0;
+ while(t<1)
+ {
+ newVertices.push_back(Vec2d((a[3] + t*(a[2] + t*(a[1] + t*a[0]))),
+ (b[3] + t*(b[2] + t*(b[1] + t*b[0])))));
+ t = t + _sampling/norm;
+ }
+ if(n > 2)
+ {
+ ++p0;
+ ++p1;
+ ++p2;
+ ++p3;
+ }
+ else
+ {
+ if(n==0)
+ ++p3;
+ if(n==1)
+ {++p2;++p3;}
+ if(n==2)
+ {++p1;++p2;++p3;}
+ ++n;
+ }
+ }
+ //last point:
+ newVertices.push_back(Vec2d((p0)->x(), (p0)->y()));
+
+ int originalSize = newVertices.size();
+ _sampling = stroke.ComputeSampling(originalSize);
+
+ // Resample and set x,y coordinates
+ stroke.Resample(_sampling);
+ int newsize = stroke.strokeVerticesSize();
+
+ int nExtraVertex=0;
+ if(newsize < originalSize)
+ cerr << "Warning: unsufficient resampling" << endl;
+ else
+ {
+ nExtraVertex = newsize - originalSize;
+ }
+
+ // assigns the new coordinates:
+ vector<Vec2d>::iterator p,pend;
+ p=newVertices.begin();pend=newVertices.end();
+ vector<Vec2d>::iterator last = p;
+ n=0;
+ StrokeInternal::StrokeVertexIterator it=stroke.strokeVerticesBegin(), itend=stroke.strokeVerticesEnd();
+ it=stroke.strokeVerticesBegin();
+ for(;
+ ((it!=itend) && (p!=pend));
+ ++it)
+ {
+ it->SetX(p->x());
+ it->SetY(p->y());
+ last = p;
+ ++p;
+ ++n;
+ }
+ // nExtraVertex should stay unassigned
+ for(int i=0; i< nExtraVertex; ++i)
+ {
+ it->SetX(last->x());
+ it->SetY(last->y());
+ if(it.isEnd())
+ cerr << "Warning: Problem encountered while creating B-spline" << endl;
+ ++it;
+ ++n;
+ }
+ }
+
+ //!! Bezier curve stroke shader
+ void BezierCurveShader::shade(Stroke& stroke) const
+ {
+ if(stroke.strokeVerticesSize() < 4)
+ return;
+
+ // Build the Bezier curve from this set of data points:
+ vector<Vec2d> data;
+ StrokeInternal::StrokeVertexIterator v=stroke.strokeVerticesBegin(), vend=stroke.strokeVerticesEnd();
+ data.push_back(Vec2d(v->x(), v->y()));//first one
+ StrokeInternal::StrokeVertexIterator previous = v;++v;
+ for(;
+ v!=vend;
+ ++v)
+ {
+ if(!((fabs(v->x() -(previous)->x())<M_EPSILON) && ((fabs(v->y() - (previous)->y())<M_EPSILON))))
+ data.push_back(Vec2d(v->x(), v->y()));
+ previous = v;
+ }
+
+ // Vec2d tmp;bool equal=false;
+ // if(data.front() == data.back())
+ // {
+ // tmp = data.back();
+ // data.pop_back();
+ // equal=true;
+ // }
+ // here we build the bezier curve
+ BezierCurve bcurve(data, _error);
+
+ // bad performances are here !!! // FIXME
+ vector<Vec2d> CurveVertices;
+ vector<BezierCurveSegment*>& bsegments = bcurve.segments();
+ vector<BezierCurveSegment*>::iterator s=bsegments.begin(),send=bsegments.end();
+ vector<Vec2d>& segmentsVertices = (*s)->vertices();
+ vector<Vec2d>::iterator p,pend;
+ // first point
+ CurveVertices.push_back(segmentsVertices[0]);
+ for(;
+ s!=send;
+ ++s)
+ {
+ segmentsVertices = (*s)->vertices();
+ p=segmentsVertices.begin(); pend=segmentsVertices.end();
+ ++p;
+ for(;
+ p!=pend;
+ ++p)
+ {
+ CurveVertices.push_back((*p));
+ }
+ }
+
+ //if(equal)
+ // if(data.back() == data.front())
+ // {
+ // vector<Vec2d>::iterator d=data.begin(), dend=data.end();
+ // cout << "ending point = starting point" << endl;
+ // cout << "---------------DATA----------" << endl;
+ // for(;
+ // d!=dend;
+ // ++d)
+ // {
+ // cout << d->x() << "-" << d->y() << endl;
+ // }
+ // cout << "--------------BEZIER RESULT----------" << endl;
+ // d=CurveVertices.begin(), dend=CurveVertices.end();
+ // for(;d!=dend;++d)
+ // {
+ // cout << d->x() << "-" << d->y() << endl;
+ // }
+ // }
+
+ // Resample the Stroke depending on the number of
+ // vertices of the bezier curve:
+ int originalSize = CurveVertices.size();
+ //float sampling = stroke.ComputeSampling(originalSize);
+ //stroke.Resample(sampling);
+ stroke.Resample(originalSize);
+ int newsize = stroke.strokeVerticesSize();
+ int nExtraVertex=0;
+ if(newsize < originalSize)
+ cerr << "Warning: unsufficient resampling" << endl;
+ else
+ {
+ //cout << "Oversampling" << endl;
+ nExtraVertex = newsize - originalSize;
+ if(nExtraVertex != 0)
+ cout << "Bezier Shader : Stroke " << stroke.getId() << " have not been resampled" << endl;
+ }
+
+ // assigns the new coordinates:
+ p=CurveVertices.begin();pend=CurveVertices.end();
+ vector<Vec2d>::iterator last = p;
+ int n=0;
+ StrokeInternal::StrokeVertexIterator it=stroke.strokeVerticesBegin(), itend=stroke.strokeVerticesEnd();
+ // while(p!=pend)
+ // {
+ // ++n;
+ // ++p;
+ // }
+ it=stroke.strokeVerticesBegin();
+ for(;
+ ((it!=itend) && (p!=pend));
+ ++it)
+ {
+ it->SetX(p->x());
+ it->SetY(p->y());
+ // double x = p->x();
+ // double y = p->y();
+ // cout << "x = " << x << "-" << "y = " << y << endl;
+ last = p;
+ ++p;
+ ++n;
+ }
+
+ // Deal with extra vertices:
+ if(nExtraVertex == 0)
+ return;
+
+ // nExtraVertex should stay unassigned
+ vector<StrokeAttribute> attributes;
+ vector<StrokeVertex*> verticesToRemove;
+ for(int i=0; i< nExtraVertex; ++i)
+ {
+ verticesToRemove.push_back(&(*it));
+ if(it.isEnd())
+ cout << "fucked up" << endl;
+ ++it;
+ ++n;
+ }
+ it=stroke.strokeVerticesBegin();
+ for(;
+ it!=itend;
+ ++it)
+ {
+ attributes.push_back(it->attribute());
+ }
+
+ for(vector<StrokeVertex*>::iterator vr=verticesToRemove.begin(), vrend=verticesToRemove.end();
+ vr!=vrend;
+ ++vr)
+ {
+ stroke.RemoveVertex(*vr);
+ }
+ it=stroke.strokeVerticesBegin();
+ itend=stroke.strokeVerticesEnd();
+ vector<StrokeAttribute>::iterator a=attributes.begin(), aend=attributes.end();
+ int index = 0;
+ int index1 = (int)floor((float)originalSize/2.0);
+ int index2 = index1+nExtraVertex;
+ for(;
+ (it!=itend) && (a!=aend);
+ ++it)
+ {
+ (it)->SetAttribute(*a);
+ if((index <= index1)||(index>index2))
+ ++a;
+ ++index;
+ }
+ }
+
+ void InflateShader::shade(Stroke& stroke) const
+ {
+ // we're computing the curvature variance of the stroke.(Combo 5)
+ // If it's too high, forget about it
+ Functions1D::Curvature2DAngleF1D fun;
+ if(fun(stroke) > _curvatureThreshold)
+ return;
+
+ Functions0D::VertexOrientation2DF0D ori_fun;
+ Functions0D::Curvature2DAngleF0D curv_fun;
+ Functions1D::Normal2DF1D norm_fun;
+ Interface0DIterator it=stroke.verticesBegin();
+ StrokeVertex* sv;
+ while (!it.isEnd())
+ {
+ Vec2f ntmp = ori_fun(it);
+ Vec2f n(ntmp.y(), -ntmp.x());
+ Vec2f strokeN(norm_fun(stroke));
+ if(n*strokeN < 0)
+ {
+ n[0] = -n[0];
+ n[1] = -n[1];
+ }
+ sv = dynamic_cast<StrokeVertex*>(&(*it));
+ float u=sv->u();
+ float t = 4.f*(0.25f - (u-0.5)*(u-0.5));
+ float curvature_coeff = (M_PI-curv_fun(it))/M_PI;
+ Vec2d newPoint(sv->x()+curvature_coeff*t*_amount*n.x(), sv->y()+curvature_coeff*t*_amount*n.y());
+ sv->SetPoint(newPoint[0], newPoint[1]);
+ ++it;
+ }
+ }
+
+ class CurvePiece
+ {
+ public:
+ StrokeInternal::StrokeVertexIterator _begin;
+ StrokeInternal::StrokeVertexIterator _last;
+ Vec2d A;
+ Vec2d B;
+ int size;
+ float _error;
+
+ CurvePiece(StrokeInternal::StrokeVertexIterator b, StrokeInternal::StrokeVertexIterator l, int iSize)
+ {
+ _begin = b;
+ _last = l;
+ A = Vec2d((_begin)->x(),(_begin)->y());
+ B = Vec2d((_last)->x(),(_last)->y());
+ size = iSize;
+ }
+
+ float error()
+ {
+ float maxE = 0.f;
+ for(StrokeInternal::StrokeVertexIterator it=_begin;
+ it!=_last;
+ ++it)
+ {
+ Vec2d P(it->x(), it->y());
+ float d = GeomUtils::distPointSegment(P,A,B);
+ if(d > maxE)
+ maxE = d;
+ }
+ _error = maxE;
+ return maxE;
+ }
+ //! Subdivides the curve into two pieces.
+ // The first piece is this same object (modified)
+ // the second piece is returned by the method
+ CurvePiece * subdivide()
+ {
+ StrokeInternal::StrokeVertexIterator it=_begin;
+ int actualSize = 1;
+ for(int i=0; i<size/2; ++i)
+ {
+ ++it;
+ ++actualSize;
+ }
+ CurvePiece * second = new CurvePiece(it, _last, size-actualSize+1);
+ size = actualSize;
+ _last = it;
+ B = Vec2d((_last)->x(), (_last)->y());
+ return second;
+ }
+ };
+
+ void PolygonalizationShader::shade(Stroke& stroke) const
+ {
+ vector<CurvePiece*> _pieces;
+ vector<CurvePiece*> _results;
+ vector<CurvePiece*>::iterator cp,cpend;
+
+ // Compute first approx:
+ StrokeInternal::StrokeVertexIterator a=stroke.strokeVerticesBegin();
+ StrokeInternal::StrokeVertexIterator b=stroke.strokeVerticesEnd();--b;
+ int size = stroke.strokeVerticesSize();
+
+ CurvePiece * piece = new CurvePiece(a,b,size);
+ _pieces.push_back(piece);
+
+ while(!_pieces.empty())
+ {
+ piece = _pieces.back();_pieces.pop_back();
+ if(piece->error() > _error)
+ {
+ CurvePiece * second = piece->subdivide();
+ _pieces.push_back(second);
+ _pieces.push_back(piece);
+ }
+ else
+ {
+ _results.push_back(piece);
+ }
+ }
+
+ // actually modify the geometry for each piece:
+ for(cp=_results.begin(), cpend=_results.end();
+ cp!=cpend;
+ ++cp)
+ {
+ a = (*cp)->_begin;
+ b = (*cp)->_last;
+ Vec2d u = (*cp)->B-(*cp)->A;
+ Vec2d n(u[1], -u[0]);n.normalize();
+ //Vec2d n(0,0);
+ float offset = ((*cp)->_error);
+ StrokeInternal::StrokeVertexIterator v,vlast;
+ for(v=a;
+ v!=b;
+ ++v)
+ {
+ v->SetPoint((*cp)->A.x()+v->u()*u.x()+n.x()*offset, (*cp)->A.y()+v->u()*u.y()+n.y()*offset);
+ }
+ // u.normalize();
+ // (*a)->SetPoint((*a)->x()-u.x()*10, (*a)->y()-u.y()*10);
+ }
+
+ // delete stuff
+ for(cp=_results.begin(), cpend=_results.end();
+ cp!=cpend;
+ ++cp)
+ {
+ delete (*cp);
+ }
+ _results.clear();
+ }
+
+ void GuidingLinesShader::shade(Stroke& stroke) const
+ {
+ Functions1D::Normal2DF1D norm_fun;
+ StrokeInternal::StrokeVertexIterator a=stroke.strokeVerticesBegin();
+ StrokeInternal::StrokeVertexIterator b=stroke.strokeVerticesEnd();--b;
+ int size = stroke.strokeVerticesSize();
+ CurvePiece piece(a,b,size);
+
+ Vec2d u = piece.B-piece.A;
+ Vec2f n(u[1], -u[0]);n.normalize();
+ Vec2f strokeN(norm_fun(stroke));
+ if(n*strokeN < 0)
+ {
+ n[0] = -n[0];
+ n[1] = -n[1];
+ }
+ float offset = (piece.error())/2.f*_offset;
+ StrokeInternal::StrokeVertexIterator v=a,vend=stroke.strokeVerticesEnd();
+ for(;
+ v!=vend;
+ ++v)
+ {
+ v->SetPoint(piece.A.x()+v->u()*u.x()+n.x()*offset, piece.A.y()+v->u()*u.y()+n.y()*offset);
+ }
+ }
+
+ /////////////////////////////////////////
+ //
+ // Tip Remover
+ //
+ /////////////////////////////////////////
+
+
+ TipRemoverShader::TipRemoverShader(real tipLength)
+ : StrokeShader()
+ {
+ _tipLength = tipLength;
+ }
+
+ void
+ TipRemoverShader::shade(Stroke& stroke) const
+ {
+ int originalSize = stroke.strokeVerticesSize();
+
+ if(originalSize<4)
+ return;
+
+ StrokeInternal::StrokeVertexIterator v, vend;
+ vector<StrokeVertex*> verticesToRemove;
+ vector<StrokeAttribute> oldAttributes;
+ v=stroke.strokeVerticesBegin(); vend=stroke.strokeVerticesEnd();
+ for(;
+ v!=vend;
+ ++v)
+ {
+ if ((v->curvilinearAbscissa()<_tipLength) ||
+ (v->strokeLength()-v->curvilinearAbscissa()<_tipLength))
+ {
+ verticesToRemove.push_back(&(*v));
+ }
+ oldAttributes.push_back(v->attribute());
+ }
+
+ if(originalSize-verticesToRemove.size() < 2)
+ return;
+
+ vector<StrokeVertex*>::iterator sv=verticesToRemove.begin(), svend=verticesToRemove.end();
+ for(;
+ sv!=svend;
+ ++sv)
+ {
+ stroke.RemoveVertex((*sv));
+ }
+
+ // Resample so that our new stroke have the same
+ // number of vertices than before
+ stroke.Resample(originalSize);
+
+ if(stroke.strokeVerticesSize() != originalSize)
+ cerr << "Warning: resampling problem" << endl;
+
+ // assign old attributes to new stroke vertices:
+ v=stroke.strokeVerticesBegin(); vend=stroke.strokeVerticesEnd();
+ vector<StrokeAttribute>::iterator a=oldAttributes.begin(), aend=oldAttributes.end();
+ //cout << "-----------------------------------------------" << endl;
+ for(;(v!=vend)&&(a!=aend);++v,++a)
+ {
+ v->SetAttribute(*a);
+ //cout << "thickness = " << (*a).getThickness()[0] << "-" << (*a).getThickness()[1] << endl;
+ }
+ // we're done!
+ }
+
+ void streamShader::shade(Stroke& stroke) const{
+ cout << stroke << endl;
+ }
+ void fstreamShader::shade(Stroke& stroke) const{
+ _stream << stroke << endl;
+ }
+
+} // end of namespace StrokeShaders
+
diff --git a/source/blender/freestyle/intern/stroke/BasicStrokeShaders.h b/source/blender/freestyle/intern/stroke/BasicStrokeShaders.h
new file mode 100755
index 00000000000..f68971a3966
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/BasicStrokeShaders.h
@@ -0,0 +1,791 @@
+//
+// Filename : BasicStrokeShaders.h
+// Author : Stephane Grabli
+// Purpose : Class gathering basic stroke shaders
+// Date of creation : 17/12/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef BASIC_STROKE_SHADERS_H
+# define BASIC_STROKE_SHADERS_H
+
+# include "Stroke.h"
+# include "../geometry/Geom.h"
+# include "../geometry/Bezier.h"
+# include "StrokeShader.h"
+# include <fstream>
+
+using namespace std;
+using namespace Geometry;
+
+namespace StrokeShaders {
+
+ //
+ // Thickness modifiers
+ //
+ //////////////////////////////////////////////////////
+ /*! [ Thickness Shader ].
+ * Assigns an absolute constant thickness to every
+ * vertices of the Stroke.
+ */
+ class LIB_STROKE_EXPORT ConstantThicknessShader : public StrokeShader
+ {
+ public:
+ /*! Builds the shader.
+ * \param thickness
+ * The thickness that must be assigned
+ * to the stroke.
+ */
+ ConstantThicknessShader(float thickness) : StrokeShader() {
+ _thickness = thickness;
+ }
+ /*! Destructor. */
+ virtual ~ConstantThicknessShader() {}
+ /*! Returns the string "ConstantThicknessShader".*/
+ virtual string getName() const {
+ return "ConstantThicknessShader";
+ }
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+
+ private:
+ float _thickness;
+ };
+
+ /* [ Thickness Shader ].
+ * Assigns an absolute constant external thickness to every
+ * vertices of the Stroke. The external thickness of a point
+ * is its thickness from the point to the strip border
+ * in the direction pointing outside the object the
+ * Stroke delimitates.
+ */
+ class LIB_STROKE_EXPORT ConstantExternThicknessShader : public StrokeShader
+ {
+ public:
+
+ ConstantExternThicknessShader(float thickness) : StrokeShader() {
+ _thickness = thickness;
+ }
+
+ virtual ~ConstantExternThicknessShader() {}
+
+ virtual string getName() const {
+ return "ConstantExternThicknessShader";
+ }
+
+ virtual void shade(Stroke& stroke) const;
+
+ private:
+
+ float _thickness;
+ };
+
+ /*! [ Thickness Shader ].
+ * Assigns thicknesses values such as the thickness
+ * increases from a thickness value A to a thickness value B
+ * between the first vertex to the midpoint vertex and
+ * then decreases from B to a A between this midpoint vertex
+ * and the last vertex.
+ * The thickness is linearly interpolated from A to B.
+ */
+ class LIB_STROKE_EXPORT IncreasingThicknessShader : public StrokeShader
+ {
+ public:
+ /*! Builds the shader.
+ * \param iThicknessMin
+ * The first thickness value.
+ * \param iThicknessMax
+ * The second thickness value.
+ */
+ IncreasingThicknessShader(float iThicknessMin, float iThicknessMax)
+ : StrokeShader()
+ {
+ _ThicknessMin = iThicknessMin;
+ _ThicknessMax = iThicknessMax;
+ }
+ /*! Destructor.*/
+ virtual ~IncreasingThicknessShader() {}
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+
+ private:
+
+ float _ThicknessMin;
+ float _ThicknessMax;
+ };
+
+ /*! [ Thickness shader ].
+ * Same as previous but
+ * here we allow the user to control the ratio thickness/length so that
+ * we don't get fat short lines
+ */
+ class LIB_STROKE_EXPORT ConstrainedIncreasingThicknessShader : public StrokeShader
+ {
+ private:
+ float _ThicknessMin;
+ float _ThicknessMax;
+ float _ratio;
+ public:
+ /*! Builds the shader.
+ * \param iThicknessMin
+ * The first thickness value.
+ * \param iThicknessMax
+ * The second thickness value.
+ * \param iRatio
+ * The ration thickness/length we don't want to
+ * exceed.
+ */
+ ConstrainedIncreasingThicknessShader(float iThicknessMin, float iThicknessMax, float iRatio)
+ : StrokeShader()
+ {
+ _ThicknessMin = iThicknessMin;
+ _ThicknessMax = iThicknessMax;
+ _ratio = iRatio;
+ }
+ /*! Destructor.*/
+ virtual ~ConstrainedIncreasingThicknessShader() {}
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ /* [ Thickness Shader ].
+ * Modifys the thickness in a relative way
+ * depending on its length.
+ */
+ class LIB_STROKE_EXPORT LengthDependingThicknessShader : public StrokeShader
+ {
+ private:
+ float _minThickness;
+ float _maxThickness;
+ // We divide the strokes in 4 categories:
+ // l > 300
+ // 100 < l < 300
+ // 50 < l < 100
+ // l < 50
+ public:
+ LengthDependingThicknessShader(float iMinThickness, float iMaxThickness)
+ : StrokeShader()
+ {
+ _minThickness = iMinThickness;
+ _maxThickness = iMaxThickness;
+ }
+ virtual ~LengthDependingThicknessShader() {}
+
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ /*! [ Thickness Shader ].
+ * Applys a pattern (texture) to vary thickness.
+ * The new thicknesses are the result of the multiplication
+ * of the pattern and the original thickness
+ */
+ class LIB_STROKE_EXPORT ThicknessVariationPatternShader : public StrokeShader
+ {
+ public:
+
+ /*! Builds the shader.
+ * \param pattern_name
+ * The texture file name.
+ * \param iMinThickness
+ * The minimum thickness we don't want to exceed.
+ * \param iMaxThickness
+ * The maximum thickness we don't want to exceed.
+ * \param stretch
+ * Tells whether the pattern texture must
+ * be stretched or repeted to fit the stroke.
+ */
+ ThicknessVariationPatternShader(const string pattern_name,
+ float iMinThickness = 1.f,
+ float iMaxThickness = 5.f,
+ bool stretch = true);
+ /*! Destructor.*/
+ virtual ~ThicknessVariationPatternShader()
+ {
+ if(0 != _aThickness)
+ {
+ delete [] _aThickness;
+ _aThickness = 0;
+ }
+ }
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+
+ private:
+
+ float* _aThickness; // array of thickness values, in % of the max (i.e comprised between 0 and 1)
+ unsigned _size;
+ float _minThickness;
+ float _maxThickness;
+ bool _stretch;
+ };
+
+ /*! [ Thickness Shader ].
+ * Adds some noise to the stroke thickness.
+ * \see \htmlonly <a href=noise/noise.html>noise/noise.html</a>\endhtmlonly
+ */
+ class LIB_STROKE_EXPORT ThicknessNoiseShader : public StrokeShader
+ {
+ private:
+ float _amplitude;
+ float _scale;
+ public:
+ ThicknessNoiseShader();
+ /*! Builds a Thickness Noise Shader
+ * \param iAmplitude
+ * The amplitude of the noise signal
+ * \param iPeriod
+ * The period of the noise signal
+ */
+ ThicknessNoiseShader(float iAmplitude, float iPeriod);
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+
+ //
+ // Color shaders
+ //
+ /////////////////////////////////////////////////////////
+ /*! [ Color Shader ].
+ * Assigns a constant color to every vertices of the Stroke.
+ */
+ class LIB_STROKE_EXPORT ConstantColorShader : public StrokeShader
+ {
+ public:
+ /*! Builds the shader from a user-specified color.
+ * \param iR
+ * The red component
+ * \param iG
+ * The green component
+ * \param iB
+ * The blue component
+ * \param iAlpha
+ * The alpha value
+ */
+ ConstantColorShader(float iR, float iG, float iB, float iAlpha=1.f)
+ : StrokeShader()
+ {
+ _color[0] = iR;
+ _color[1] = iG;
+ _color[2] = iB;
+ _color[3] = iAlpha;
+ }
+
+ virtual string getName() const {
+ return "ConstantColorShader";
+ }
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+
+ private:
+
+ float _color[4];
+ };
+
+ /*! [ Color Shader ].
+ * Assigns a varying color to the stroke.
+ * The user specifies 2 colors A and B. The stroke
+ * color will change linearly from A to B between the
+ * first and the last vertex.
+ */
+ class LIB_STROKE_EXPORT IncreasingColorShader : public StrokeShader
+ {
+ private:
+ float _colorMin[4];
+ float _colorMax[4];
+ public:
+ /*! Builds the shader from 2 user-specified colors.
+ * \param iRm
+ * The first color red component
+ * \param iGm
+ * The first color green component
+ * \param iBm
+ * The first color blue component
+ * \param iAlpham
+ * The first color alpha value
+ * \param iRM
+ * The second color red component
+ * \param iGM
+ * The second color green component
+ * \param iBM
+ * The second color blue component
+ * \param iAlphaM
+ * The second color alpha value
+ */
+ IncreasingColorShader(float iRm, float iGm, float iBm, float iAlpham,
+ float iRM, float iGM, float iBM, float iAlphaM)
+ : StrokeShader()
+ {
+ _colorMin[0] = iRm;
+ _colorMin[1] = iGm;
+ _colorMin[2] = iBm;
+ _colorMin[3] = iAlpham;
+
+ _colorMax[0] = iRM;
+ _colorMax[1] = iGM;
+ _colorMax[2] = iBM;
+ _colorMax[3] = iAlphaM;
+ }
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ /*! [ Color Shader ].
+ * Applys a pattern to vary original color.
+ * The new color is the result of the multiplication
+ * of the pattern and the original color
+ */
+ class LIB_STROKE_EXPORT ColorVariationPatternShader : public StrokeShader
+ {
+ public:
+ /*! Builds the shader from the pattern texture file name.
+ * \param pattern_name
+ * The file name of the texture file to use as pattern
+ * \param stretch
+ * Tells whether the texture must be strecthed or repeted
+ * to fit the stroke.
+ */
+ ColorVariationPatternShader(const string pattern_name, bool stretch = true);
+ /*! Destructor */
+ virtual ~ColorVariationPatternShader()
+ {
+ if(0 != _aVariation)
+ {
+ delete [] _aVariation;
+ _aVariation = 0;
+ }
+ }
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+
+ private:
+
+ float* _aVariation; // array of coef values, in % of the max (i.e comprised between 0 and 1)
+ unsigned _size;
+ bool _stretch;
+ };
+
+ /* [ Color Shader ].
+ * Assigns a color to the stroke depending
+ * on the material of the shape to which ot belongs
+ * to. (Disney shader)
+ */
+ class LIB_STROKE_EXPORT MaterialColorShader : public StrokeShader
+ {
+ private:
+ float _coefficient;
+ public:
+ MaterialColorShader(float coeff=1.f)
+ : StrokeShader()
+ {_coefficient=coeff;}
+
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ class LIB_STROKE_EXPORT CalligraphicColorShader : public StrokeShader
+ {
+ private:
+ int _textureId;
+ Vec2d _orientation;
+ public:
+ CalligraphicColorShader(
+ const Vec2d &iOrientation)
+ : StrokeShader()
+ {
+ _orientation=iOrientation;
+ _orientation.normalize();
+ }
+ virtual void shade(Stroke& stroke) const;
+
+ };
+
+ /*! [ Color Shader ].
+ * Shader to add noise to the stroke colors.
+ */
+ class LIB_STROKE_EXPORT ColorNoiseShader : public StrokeShader
+ {
+ private:
+ float _amplitude;
+ float _scale;
+
+ public:
+ ColorNoiseShader();
+ /*! Builds a Color Noise Shader
+ * \param iAmplitude
+ * The amplitude of the noise signal
+ * \param iPeriod
+ * The period of the noise signal
+ */
+ ColorNoiseShader(float iAmplitude, float iPeriod);
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ //
+ // Texture Shaders
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+ /*! [ Texture Shader ].
+ * Assigns a texture to the stroke in order to simulate
+ * its marks system. This shader takes as input an integer value
+ * telling which texture and blending mode to use among a set of
+ * predefined textures.
+ * Here are the different presets:
+ * 0) -> /brushes/charcoalAlpha.bmp, HUMID_MEDIUM
+ * 1) -> /brushes/washbrushAlpha.bmp, HUMID_MEDIUM
+ * 2) -> /brushes/oil.bmp, HUMID_MEDIUM
+ * 3) -> /brushes/oilnoblend.bmp, HUMID_MEDIUM
+ * 4) -> /brushes/charcoalAlpha.bmp, DRY_MEDIUM
+ * 5) -> /brushes/washbrushAlpha.bmp, DRY_MEDIUM
+ * 6) -> /brushes/opaqueDryBrushAlpha.bmp, OPAQUE_MEDIUM
+ * 7) -> /brushes/opaqueBrushAlpha.bmp, Stroke::OPAQUE_MEDIUM
+ * Any other value will lead to the following preset:
+ * default) -> /brushes/smoothAlpha.bmp, OPAQUE_MEDIUM.
+ */
+ class LIB_STROKE_EXPORT TextureAssignerShader : public StrokeShader // FIXME
+ {
+ private:
+ int _textureId;
+ public:
+ /*! Builds the shader.
+ * \param id
+ * The number of the preset to use.
+ */
+ TextureAssignerShader(int id)
+ : StrokeShader()
+ {
+ _textureId = id;
+ }
+ /*! The shading method */
+ virtual void shade(Stroke& stroke) const;
+
+ };
+ /*! [ Texture Shader ].
+ * Assigns a texture and a blending mode to the stroke
+ * in order to simulate its marks system.
+ */
+ class LIB_STROKE_EXPORT StrokeTextureShader : public StrokeShader
+ {
+ private:
+ string _texturePath;
+ Stroke::MediumType _mediumType;
+ bool _tips; // 0 or 1
+
+ public:
+ /*! Builds the shader from the texture file name and the blending mode to use.
+ * \param textureFile
+ * The the texture file name.
+ * \attention The textures must be placed in the $FREESTYLE_DIR/data/textures/brushes
+ * directory.
+ * \param mediumType
+ * The medium type and therefore, the blending mode that must
+ * be used for the rendering of this stroke.
+ * \param iTips
+ * Tells whether the texture includes tips or not.
+ * If it is the case, the texture image must respect the following
+ * format:
+ * \verbatim
+ * __________
+ * | |
+ * | A |
+ * |__________|
+ * | | |
+ * | B | C |
+ * |_____|____|
+ *
+ * \endverbatim
+ * - A : The stroke's corpus texture
+ * - B : The stroke's left extremity texture
+ * - C : The stroke's right extremity texture
+ */
+ StrokeTextureShader(const string textureFile, Stroke::MediumType mediumType = Stroke::OPAQUE_MEDIUM, bool iTips = false)
+ : StrokeShader()
+ {
+ _texturePath = textureFile;
+ _mediumType = mediumType;
+ _tips = iTips;
+ }
+ /*! The shading method */
+ virtual void shade(Stroke& stroke) const;
+
+ };
+
+
+ //
+ // Geometry Shaders
+ //
+ ///////////////////////////////////////////////////////////////////////////////
+ /*! [ Geometry Shader ].
+ * Stretches the stroke at its two extremities and following the
+ * respective directions: v(1)v(0) and v(n-1)v(n).
+ */
+ class LIB_STROKE_EXPORT BackboneStretcherShader : public StrokeShader
+ {
+ private:
+ float _amount;
+ public:
+ /*! Builds the shader.
+ * \param iAmount
+ * The stretching amount value.
+ */
+ BackboneStretcherShader(float iAmount=2.f)
+ : StrokeShader()
+ {
+ _amount = iAmount;
+ }
+ /*! The shading method */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ /*! [ Geometry Shader. ]
+ * Resamples the stroke.
+ * @see Stroke::Resample(float).
+ */
+ class LIB_STROKE_EXPORT SamplingShader: public StrokeShader
+ {
+ private:
+ float _sampling;
+ public:
+ /*! Builds the shader.
+ * \param sampling
+ * The sampling to use for the
+ * stroke resampling
+ */
+ SamplingShader(float sampling)
+ : StrokeShader()
+ {
+ _sampling = sampling;
+ }
+ /*! The shading method */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+
+ class LIB_STROKE_EXPORT ExternalContourStretcherShader : public StrokeShader
+ {
+ private:
+ float _amount;
+ public:
+ ExternalContourStretcherShader(float iAmount=2.f)
+ : StrokeShader()
+ {
+ _amount = iAmount;
+ }
+
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ // B-Spline stroke shader
+ class LIB_STROKE_EXPORT BSplineShader: public StrokeShader
+ {
+ public:
+ BSplineShader()
+ : StrokeShader()
+ {}
+
+ virtual void shade(Stroke& stroke) const;
+ };
+
+
+ // Bezier curve stroke shader
+ /*! [ Geometry Shader ].
+ * Transforms the stroke backbone geometry
+ * so that it corresponds to a Bezier Curve
+ * approximation of the original backbone geometry.
+ * @see \htmlonly <a href=bezier/bezier.html>bezier/bezier.html</a> \endhtmlonly
+ */
+ class LIB_STROKE_EXPORT BezierCurveShader : public StrokeShader
+ {
+ private:
+ float _error;
+ public:
+ /*! Builds the shader.
+ * \param error
+ * The error we're allowing for the approximation.
+ * This error is the max distance allowed between
+ * the new curve and the original geometry.
+ */
+ BezierCurveShader(float error = 4.0)
+ : StrokeShader()
+ {_error=error;}
+
+ /*! The shading method */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ /* Shader to inflate the curves. It keeps the extreme
+ * points positions and moves the other ones along
+ * the 2D normal. The displacement value is proportional
+ * to the 2d curvature at the considered point (the higher
+ * the curvature, the smaller the displacement) and to a value
+ * specified by the user.
+ */
+ class LIB_STROKE_EXPORT InflateShader : public StrokeShader
+ {
+ private:
+ float _amount;
+ float _curvatureThreshold;
+ public:
+ /*! Builds an inflate shader
+ * \param iAmount
+ * A multiplicative coefficient that
+ * acts on the amount and direction of displacement
+ * \param iThreshold
+ * The curves having a 2d curvature > iThreshold
+ * at one of their points is not inflated
+ */
+ InflateShader(float iAmount,float iThreshold)
+ : StrokeShader()
+ {
+ _amount = iAmount;
+ _curvatureThreshold = iThreshold;
+ }
+ /*! The shading method */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ /*! [ Geometry Shader ].
+ * Shader to modify the Stroke geometry so that
+ * it looks more "polygonal".
+ * The basic idea is to start from the
+ * minimal stroke approximation consisting in
+ * a line joining the first vertex to the last one and
+ * to subdivide using the original stroke vertices
+ * until a certain error is reached.
+ */
+ class LIB_STROKE_EXPORT PolygonalizationShader : public StrokeShader
+ {
+ private:
+ float _error;
+ public:
+ /*! Builds the shader.
+ * \param iError
+ * The error we want our polygonal approximation
+ * to have with respect to the original geometry.
+ * The smaller, the closer the new stroke to
+ * the orinal one.
+ * This error corresponds to the maximum distance
+ * between the new stroke and the old one.
+ */
+ PolygonalizationShader(float iError) : StrokeShader()
+ {_error = iError;}
+ /*! The shading method */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+
+ /*! [ Geometry Shader ].
+ * Shader to modify the Stroke geometry so that
+ * it corresponds to its main direction line.
+ * This shader must be used together with the
+ * splitting operator using the curvature criterion.
+ * Indeed, the precision of the approximation
+ * will depend on the size of the stroke's pieces.
+ * The bigger the pieces, the rougher the approximation.
+ */
+ class LIB_STROKE_EXPORT GuidingLinesShader : public StrokeShader
+ {
+ private:
+ float _offset;
+ public:
+ /*! Builds a Guiding Lines shader
+ * \param iOffset
+ * The line that replaces the stroke
+ * is initially in the middle
+ * of the initial stroke "bbox".
+ * iOffset is the value of the displacement
+ * which is applied to this line along its
+ * normal.
+ */
+ GuidingLinesShader(float iOffset) : StrokeShader()
+ {_offset = iOffset;}
+ /*! The shading method */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ /*! [ Geometry Shader ].
+ * Removes the stroke's extremities.
+ */
+ class LIB_STROKE_EXPORT TipRemoverShader : public StrokeShader
+ {
+ public:
+ /*! Builds the shader.
+ * \param tipLength
+ * The length of the piece of stroke
+ * we want to remove at each extremity.
+ */
+ TipRemoverShader (real tipLength);
+ /*! Destructor. */
+ virtual ~TipRemoverShader () {}
+ /*! The shading method */
+ virtual void shade(Stroke &stroke) const;
+
+ protected:
+
+ real _tipLength;
+ };
+
+ /*! [ output Shader ].
+ * streams the Stroke
+ */
+ class LIB_STROKE_EXPORT streamShader : public StrokeShader
+ {
+ public:
+ /*! Destructor. */
+ virtual ~streamShader() {}
+ /*! Returns the string "streamShader".*/
+ virtual string getName() const {
+ return "streamShader";
+ }
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+ };
+
+ /*! [ output Shader ].
+ * streams the Stroke in a file
+ */
+ class LIB_STROKE_EXPORT fstreamShader : public StrokeShader
+ {
+ protected:
+ mutable ofstream _stream;
+ public:
+ /*! Builds the shader from the output file name */
+ fstreamShader(const char *iFileName) : StrokeShader(){
+ _stream .open(iFileName);
+ if(!_stream.is_open()){
+ cout << "couldn't open file " << iFileName << endl;
+ }
+ }
+ /*! Destructor. */
+ virtual ~fstreamShader() {_stream.close();}
+ /*! Returns the string "fstreamShader".*/
+ virtual string getName() const {
+ return "fstreamShader";
+ }
+ /*! The shading method. */
+ virtual void shade(Stroke& stroke) const;
+ };
+} // end of namespace StrokeShaders
+
+#endif // BASIC_STROKE_SHADERS_H
diff --git a/source/blender/freestyle/intern/stroke/Canvas.cpp b/source/blender/freestyle/intern/stroke/Canvas.cpp
new file mode 100755
index 00000000000..ecb76c4a015
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Canvas.cpp
@@ -0,0 +1,427 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <vector>
+#include "../system/FreestyleConfig.h"
+#include "StrokeRenderer.h"
+#include "../system/TimeStamp.h"
+#include "../system/PseudoNoise.h"
+#include "Canvas.h"
+#include <qimage.h>
+#include <QString>
+#include "../image/Image.h"
+#include "../image/GaussianFilter.h"
+#include "../image/ImagePyramid.h"
+#include "../view_map/SteerableViewMap.h"
+#include "StyleModule.h"
+
+using namespace std;
+
+LIB_STROKE_EXPORT
+Canvas * Canvas::_pInstance = 0;
+
+LIB_STROKE_EXPORT
+const char * Canvas::_MapsPath = 0;
+
+using namespace std;
+
+Canvas::Canvas()
+{
+ _SelectedFEdge = 0;
+ _pInstance = this;
+ PseudoNoise::init(42);
+ _paperTextureIndex = 0;
+ _Renderer = 0;
+ _drawPaper = true;
+ _current_sm = NULL;
+ _steerableViewMap = new SteerableViewMap(NB_STEERABLE_VIEWMAP-1);
+}
+
+Canvas::Canvas(const Canvas& iBrother)
+{
+ _SelectedFEdge = iBrother._SelectedFEdge;
+ _pInstance = this;
+ PseudoNoise::init(42);
+ _paperTextureIndex = iBrother._paperTextureIndex;
+ _Renderer = iBrother._Renderer;
+ _drawPaper = iBrother._drawPaper;
+ _current_sm = iBrother._current_sm;
+ _steerableViewMap = new SteerableViewMap(*(iBrother._steerableViewMap));
+
+}
+
+Canvas::~Canvas()
+{
+ _pInstance = 0;
+
+ Clear();
+ if(_Renderer)
+ {
+ delete _Renderer;
+ _Renderer = 0;
+ }
+ // FIXME: think about an easy control
+ // for the maps memory management...
+ if(!_maps.empty()){
+ for(mapsMap::iterator m=_maps.begin(), mend=_maps.end();
+ m!=mend;
+ ++m){
+ delete ((*m).second);
+ }
+ _maps.clear();
+ }
+ if(_steerableViewMap)
+ delete _steerableViewMap;
+}
+
+void Canvas::preDraw() {}
+
+void Canvas::Draw()
+{
+ if(_StyleModules.empty())
+ return;
+ preDraw();
+ TimeStamp *timestamp = TimeStamp::instance();
+
+ for(unsigned i = 0; i < _StyleModules.size(); i++) {
+ _current_sm = _StyleModules[i];
+ if (!_StyleModules[i]->getModified())
+ {
+ if (_StyleModules[i]->getDrawable() && _Layers[i])
+ _Layers[i]->Render(_Renderer);
+ continue;
+ }
+ if (i < _Layers.size() && _Layers[i])
+ delete _Layers[i];
+
+ _Layers[i] = _StyleModules[i]->execute();
+
+ if (_StyleModules[i]->getDrawable() && _Layers[i])
+ _Layers[i]->Render(_Renderer);
+
+ timestamp->increment();
+ }
+ postDraw();
+}
+
+void Canvas::postDraw()
+{
+ update();
+}
+
+
+void Canvas::Clear()
+{
+ if(!_Layers.empty()) {
+ for (deque<StrokeLayer*>::iterator sl=_Layers.begin(), slend=_Layers.end();
+ sl != slend;
+ ++sl)
+ if (*sl)
+ delete (*sl);
+ _Layers.clear();
+ }
+
+ if(!_StyleModules.empty()) {
+ for (deque<StyleModule*>::iterator s=_StyleModules.begin(), send=_StyleModules.end();
+ s != send;
+ ++s)
+ if (*s)
+ delete (*s);
+ _StyleModules.clear();
+ }
+ if(_steerableViewMap)
+ _steerableViewMap->Reset();
+}
+
+void Canvas::Erase()
+{
+ if(!_Layers.empty())
+ {
+ for (deque<StrokeLayer*>::iterator sl=_Layers.begin(), slend=_Layers.end();
+ sl != slend;
+ ++sl)
+ if (*sl)
+ (*sl)->clear();
+ }
+ if(_steerableViewMap)
+ _steerableViewMap->Reset();
+ update();
+}
+
+void Canvas::InsertStyleModule(unsigned index, StyleModule *iStyleModule) {
+ unsigned size = _StyleModules.size();
+ StrokeLayer* layer = new StrokeLayer();
+ if((_StyleModules.empty()) || (index == size)) {
+ _StyleModules.push_back(iStyleModule);
+ _Layers.push_back(layer);
+ return;
+ }
+ _StyleModules.insert(_StyleModules.begin() + index, iStyleModule);
+ _Layers.insert(_Layers.begin()+index, layer);
+}
+
+void Canvas::RemoveStyleModule(unsigned index)
+{
+ unsigned i=0;
+ if (!_StyleModules.empty())
+ {
+ for(deque<StyleModule*>::iterator s=_StyleModules.begin(), send=_StyleModules.end();
+ s!=send;
+ ++s)
+ {
+ if(i == index)
+ {
+ // remove shader
+ if (*s)
+ delete *s;
+ _StyleModules.erase(s);
+ break;
+ }
+ ++i;
+ }
+ }
+ i=0;
+ if(!_Layers.empty())
+ {
+ for(deque<StrokeLayer*>::iterator sl=_Layers.begin(), slend=_Layers.end();
+ sl!=slend;
+ ++sl)
+ {
+ if(i == index)
+ {
+ // remove layer
+ if (*sl)
+ delete *sl;
+ _Layers.erase(sl);
+ break;
+ }
+ ++i;
+ }
+ }
+}
+
+
+void Canvas::SwapStyleModules(unsigned i1, unsigned i2)
+{
+ StyleModule* tmp;
+ tmp = _StyleModules[i1];
+ _StyleModules[i1] = _StyleModules[i2];
+ _StyleModules[i2] = tmp;
+
+ StrokeLayer* tmp2;
+ tmp2 = _Layers[i1];
+ _Layers[i1] = _Layers[i2];
+ _Layers[i2] = tmp2;
+}
+
+void Canvas::ReplaceStyleModule(unsigned index, StyleModule *iStyleModule)
+{
+ unsigned i=0;
+ for(deque<StyleModule*>::iterator s=_StyleModules.begin(), send=_StyleModules.end();
+ s != send;
+ ++s)
+ {
+ if(i == index)
+ {
+ if (*s)
+ delete *s;
+ *s = iStyleModule;
+ break;
+ }
+ ++i;
+ }
+}
+
+void Canvas::SetVisible(unsigned index, bool iVisible) {
+ _StyleModules[index]->setDisplayed(iVisible);
+}
+
+void Canvas::setModified(unsigned index, bool iMod)
+{
+ _StyleModules[index]->setModified(iMod);
+}
+
+void Canvas::resetModified(bool iMod/* =false */)
+{
+ unsigned size = _StyleModules.size();
+ for(unsigned i = 0; i < size; ++i)
+ setModified(i,iMod);
+}
+
+void Canvas::causalStyleModules(vector<unsigned>& vec, unsigned index) {
+ unsigned size = _StyleModules.size();
+
+ for(unsigned i = index; i < size; ++i)
+ if (_StyleModules[i]->getCausal())
+ vec.push_back(i);
+}
+
+void Canvas::changePaperTexture(bool increment)
+{
+ if(increment)
+ _paperTextureIndex = (_paperTextureIndex+1) % TextureManager::getPaperTexturesNumber();
+ else
+ {
+ _paperTextureIndex--;
+ if(_paperTextureIndex < 0)
+ _paperTextureIndex = TextureManager::getPaperTexturesNumber() - 1;
+ }
+}
+
+void Canvas::Render(const StrokeRenderer *iRenderer)
+{
+ for (unsigned i = 0; i < _StyleModules.size(); i++) {
+ if(!_StyleModules[i]->getDisplayed() || !_Layers[i])
+ continue;
+ _Layers[i]->Render(iRenderer);
+ }
+}
+
+void Canvas::RenderBasic(const StrokeRenderer *iRenderer)
+
+{
+ for (unsigned i = 0; i < _StyleModules.size(); i++) {
+ if(!_StyleModules[i]->getDisplayed() || !_Layers[i])
+ continue;
+ _Layers[i]->RenderBasic(iRenderer);
+ }
+}
+
+void Canvas::loadMap(const char *iFileName, const char *iMapName, unsigned int iNbLevels, float iSigma){
+ // check whether this map was already loaded:
+ if(!_maps.empty()){
+ mapsMap::iterator m = _maps.find(iMapName);
+ if(m!=_maps.end()){
+ // lazy check for size changes
+ ImagePyramid * pyramid = (*m).second;
+ if((pyramid->width() != width()) || (pyramid->height() != height())){
+ delete pyramid;
+ }else{
+ return;
+ }
+ }
+ }
+ string filePath;
+ if(_MapsPath){
+ filePath = _MapsPath;
+ filePath += iFileName;
+ }else{
+ filePath = iFileName;
+ }
+ QImage * qimg;
+ QImage newMap(filePath.c_str());
+ if(newMap.isNull()){
+ cout << "Could not load image file " << filePath << endl;
+ return;
+ }
+ qimg = &newMap;
+
+ //resize
+ QImage scaledImg;
+ if((newMap.width()!=width()) || (newMap.height()!=height())){
+ scaledImg = newMap.scaled(width(), height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+ qimg = &scaledImg;
+ }
+
+ // deal with color image
+ // if(newMap->depth() != 8){
+ // int w = newMap->width();
+ // int h = newMap->height();
+ // QImage *tmp = new QImage(w, h, 8);
+ // for(unsigned y=0;y<h;++y){
+ // for(unsigned x=0;x<w;++x){
+ // int c = qGray(newMap->pixel(x,y));
+ // tmp->setPixel(x,y,c);
+ // }
+ // }
+ // delete newMap;
+ // newMap = tmp;
+ // }
+
+ unsigned x,y;
+ int w = qimg->width();
+ int h = qimg->height();
+ GrayImage tmp(w,h);
+ for(y=0; y<h;++y){
+ for(x=0;x<w;++x){
+ float c = qGray(qimg->pixel(x,y));// /255.f;
+ tmp.setPixel(x,y,c);
+ }
+ }
+
+ // GrayImage blur(w,h);
+ // GaussianFilter gf(4.f);
+ // //int bound = gf.getBound();
+ // for(y=0; y<h;++y){
+ // for(x=0;x<w;++x){
+ // int c = gf.getSmoothedPixel<GrayImage>(&tmp, x,y);
+ // blur.setPixel(x,y,c);
+ // }
+ // }
+
+ GaussianPyramid *pyramid = new GaussianPyramid(tmp, iNbLevels, iSigma);
+ int ow = pyramid->width(0);
+ int oh = pyramid->height(0);
+ QString base(iMapName);
+ for(unsigned i=0; i<pyramid->getNumberOfLevels(); ++i){
+ // save each image:
+ // w = pyramid.width(i);
+ // h = pyramid.height(i);
+ QImage qtmp(ow, oh, QImage::Format_RGB32);
+ //int k = (1<<i);
+ for(y=0;y<oh;++y){
+ for(x=0;x<ow;++x){
+ int c = pyramid->pixel(x,y,i);//255*pyramid->pixel(x,y,i);
+ qtmp.setPixel(x,y,qRgb(c,c,c));
+ }
+ }
+ qtmp.save(base+QString::number(i)+".bmp", "BMP");
+ }
+ // QImage *qtmp = new QImage(w, h, 32);
+ // for(y=0;y<h;++y){
+ // for(x=0;x<w;++x){
+ // int c = (int)blur.pixel(x,y);
+ // qtmp->setPixel(x,y,qRgb(c,c,c));
+ // }
+ // }
+ // delete newMap;
+ // newMap = qtmp;
+ //
+ _maps[iMapName] = pyramid;
+ // newMap->save("toto.bmp", "BMP");
+}
+
+float Canvas::readMapPixel(const char *iMapName, int level, int x, int y){
+ if(_maps.empty()){
+ cout << "readMapPixel warning: no map was loaded "<< endl;
+ return -1;
+ }
+ mapsMap::iterator m = _maps.find(iMapName);
+ if(m==_maps.end()){
+ cout << "readMapPixel warning: no map was loaded with the name " << iMapName << endl;
+ return -1;
+ }
+ ImagePyramid *pyramid = (*m).second;
+ if((x<0) || (x>=pyramid->width()) || (y<0) || (y>=pyramid->height()))
+ return 0;
+
+ return pyramid->pixel(x,height()-1-y,level);
+}
diff --git a/source/blender/freestyle/intern/stroke/Canvas.h b/source/blender/freestyle/intern/stroke/Canvas.h
new file mode 100755
index 00000000000..cae50162933
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Canvas.h
@@ -0,0 +1,198 @@
+//
+// Filename : Canvas.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a canvas designed to draw style modules
+// Date of creation : 20/10/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef CANVAS_H
+# define CANVAS_H
+
+# include <deque>
+# include <vector>
+# include <map>
+# include "../system/FreestyleConfig.h"
+# include "StrokeLayer.h"
+# include "../geometry/BBox.h"
+# include "../geometry/Geom.h"
+
+using namespace Geometry;
+
+struct ltstr
+{
+ bool operator()(const char* s1, const char* s2) const
+ {
+ return strcmp(s1, s2) < 0;
+ }
+};
+
+class InformationMap;
+class StrokeRenderer;
+class ViewMap;
+class ViewEdge;
+class FEdge;
+class RGBImage;
+class GrayImage;
+class QImage;
+class ImagePyramid;
+class SteerableViewMap;
+class StyleModule;
+
+/*! Class to define the canvas on which strokes are drawn.
+ * It's used to store state information about the drawing.
+ */
+class LIB_STROKE_EXPORT Canvas
+{
+public:
+ /*! Returns a pointer on the Canvas instance */
+ static Canvas * getInstance() {return _pInstance;}
+ typedef std::map<const char*, ImagePyramid*, ltstr> mapsMap ;
+ static const int NB_STEERABLE_VIEWMAP = 5;
+protected:
+ static Canvas *_pInstance;
+ std::deque<StrokeLayer*> _Layers;
+ std::deque<StyleModule*> _StyleModules;
+ FEdge *_SelectedFEdge;
+ int _paperTextureIndex;
+ bool _drawPaper;
+ StrokeRenderer *_Renderer;
+ StyleModule* _current_sm;
+ mapsMap _maps;
+ static const char * _MapsPath;
+ SteerableViewMap *_steerableViewMap;
+
+public:
+ /* Builds the Canvas */
+ Canvas();
+ /* Copy constructor */
+ Canvas(const Canvas& iBrother);
+ /* Destructor */
+ virtual ~Canvas();
+
+ /* operations that need to be done before a draw */
+ virtual void preDraw();
+
+ /* Draw the canvas using the current shader */
+ virtual void Draw();
+
+ /* operations that need to be done after a draw */
+ virtual void postDraw();
+
+ /* Renders the created strokes */
+ virtual void Render(const StrokeRenderer *iRenderer);
+ /* Basic Renders the created strokes */
+ virtual void RenderBasic(const StrokeRenderer *iRenderer);
+ /* Renders a stroke */
+ virtual void RenderStroke(Stroke *iStroke) = 0;
+
+ /* init the canvas */
+ virtual void init() = 0;
+
+ /* Clears the Canvas (shaders stack, layers stack...)*/
+ void Clear();
+
+ /* Erases the layers */
+ virtual void Erase();
+
+ /* Reads a pixel area from the canvas */
+ virtual void readColorPixels(int x, int y,int w, int h, RGBImage& oImage) const = 0;
+ /* Reads a depth pixel area from the canvas */
+ virtual void readDepthPixels(int x, int y,int w, int h, GrayImage& oImage) const = 0;
+
+ /* update the canvas (display) */
+ virtual void update() = 0;
+
+ /* checks whether the canvas is empty or not */
+ bool isEmpty() const {return (_Layers.empty());}
+
+ /* Maps management */
+ /*! Loads an image map. The map will be scaled
+ * (without preserving the ratio in order
+ * to fit the actual canvas size.)
+ * The image must be a gray values image...
+ * \param iFileName
+ * The name of the image file
+ * \param iMapName
+ * The name that will be used to access
+ * this image
+ * \param iNbLevels
+ * The number of levels in the map pyramid. (default = 4).
+ * If iNbLevels == 0, the complete pyramid is built.
+ */
+ void loadMap(const char *iFileName, const char *iMapName, unsigned iNbLevels=4, float iSigma = 1.f);
+
+ /*! Reads a pixel value in a map.
+ * Returns a value between 0 and 1.
+ * \param iMapName
+ * The name of the map
+ * \param level
+ * The level of the pyramid from which the pixel must
+ * be read.
+ * \param x
+ * The abscissa of the desired pixel specified in level0 coordinate
+ * system. The origin is the lower left corner.
+ * \param y
+ * The ordinate of the desired pixel specified in level0 coordinate
+ * system. The origin is the lower left corner.
+ */
+ float readMapPixel(const char *iMapName, int level, int x, int y);
+
+ /*! Sets the steerable viewmap */
+ void loadSteerableViewMap(SteerableViewMap * iSVM) {_steerableViewMap = iSVM;}
+
+ /*! Returns the steerable VM */
+ SteerableViewMap * getSteerableViewMap() {return _steerableViewMap;}
+
+ /*! accessors */
+ inline const FEdge * selectedFEdge() const {return _SelectedFEdge;}
+ inline FEdge * selectedFEdge() {return _SelectedFEdge;}
+ virtual int width() const = 0;
+ virtual int height() const = 0;
+ inline int currentPaperTextureIndex() const {return _paperTextureIndex;}
+ virtual BBox<Vec3r> scene3DBBox() const = 0;
+ inline const StrokeRenderer * renderer() const {return _Renderer;}
+ inline StyleModule* getCurrentStyleModule() { return _current_sm; }
+ virtual bool getRecordFlag() const {return false;}
+
+ /*! modifiers */
+ inline void SetSelectedFEdge(FEdge *iFEdge) {_SelectedFEdge = iFEdge;}
+ /*! inserts a shader at pos index+1 */
+ void InsertStyleModule(unsigned index, StyleModule *iStyleModule);
+ void RemoveStyleModule(unsigned index);
+ void SwapStyleModules(unsigned i1, unsigned i2);
+ void ReplaceStyleModule(unsigned index, StyleModule *iStyleModule);
+ void SetVisible(unsigned index, bool iVisible) ;
+ //inline void SetDensityMap(InformationMap<RGBImage>* iMap) {_DensityMap = iMap;}
+ inline void AddLayer(StrokeLayer *iLayer) {_Layers.push_back(iLayer);}
+ inline void SetCurrentPaperTextureIndex(int i) {_paperTextureIndex = i;}
+ void changePaperTexture(bool increment=true) ;
+ /*! enables/disables paper texture */
+ inline void togglePaperTexture() {_drawPaper = !_drawPaper;}
+ void resetModified(bool iMod=false);
+ void causalStyleModules(std::vector<unsigned>& vec, unsigned index = 0);
+ void setModified(unsigned index, bool b);
+};
+
+#endif // CANVAS_H
diff --git a/source/blender/freestyle/intern/stroke/Chain.cpp b/source/blender/freestyle/intern/stroke/Chain.cpp
new file mode 100755
index 00000000000..3776cd58a03
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Chain.cpp
@@ -0,0 +1,126 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "Chain.h"
+#include "../view_map/ViewMapIterators.h"
+#include "../view_map/ViewMapAdvancedIterators.h"
+
+void Chain::push_viewedge_back(ViewEdge *iViewEdge, bool orientation)
+{
+ ViewEdge::vertex_iterator v;
+ ViewEdge::vertex_iterator vend;
+ ViewEdge::vertex_iterator vfirst;
+ Vec3r previous, current;
+ if(true == orientation)
+ {
+ v=iViewEdge->vertices_begin();
+ vfirst = v;
+ vend=iViewEdge->vertices_end();
+ }
+ else
+ {
+ v=iViewEdge->vertices_last();
+ vfirst = v;
+ vend=iViewEdge->vertices_end();
+ }
+
+ if(!_Vertices.empty())
+ {
+ previous = _Vertices.back()->point2d();
+ if(orientation)
+ ++v;
+ else
+ --v;
+ }
+ else
+ previous = (*v)->point2d();
+ do{
+ current = (*v)->point2d();
+ Curve::push_vertex_back(*v);
+ //_Length += (current-previous).norm();
+ previous = current;
+ if(orientation)
+ ++v;
+ else
+ --v;
+ }while((v!=vend) && (v!=vfirst));
+
+ if(v==vfirst)
+ {
+ //Add last one:
+ current = (*v)->point2d();
+ Curve::push_vertex_back(*v);
+ //_Length += (current-previous).norm();
+ }
+}
+
+void Chain::push_viewedge_front(ViewEdge *iViewEdge, bool orientation)
+{
+ orientation = !orientation;
+ ViewEdge::vertex_iterator v;
+ ViewEdge::vertex_iterator vend;
+ ViewEdge::vertex_iterator vfirst;
+ Vec3r previous, current;
+ if(true == orientation)
+ {
+ v=iViewEdge->vertices_begin();
+ vfirst = v;
+ vend=iViewEdge->vertices_end();
+ }
+ else
+ {
+ v=iViewEdge->vertices_last();
+ vfirst = v;
+ vend=iViewEdge->vertices_end();
+ }
+
+ if(!_Vertices.empty())
+ {
+ previous = _Vertices.front()->point2d();
+ if(orientation)
+ ++v;
+ else
+ --v;
+ }
+ else
+ previous = (*v)->point2d();
+ do{
+ current = (*v)->point2d();
+ Curve::push_vertex_front((*v));
+ //_Length += (current-previous).norm();
+ previous = current;
+ if(orientation)
+ ++v;
+ else
+ --v;
+ }while((v!=vend) && (v!=vfirst));
+
+ if(v==vfirst)
+ {
+ //Add last one:
+ current = (*v)->point2d();
+ Curve::push_vertex_front(*v);
+ //_Length += (current-previous).norm();
+ }
+}
+
+
+
diff --git a/source/blender/freestyle/intern/stroke/Chain.h b/source/blender/freestyle/intern/stroke/Chain.h
new file mode 100755
index 00000000000..042437a4154
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Chain.h
@@ -0,0 +1,82 @@
+//
+// Filename : Chain.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a chain of viewedges.
+// Date of creation : 09/01/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef CHAIN_H
+# define CHAIN_H
+
+# include "../view_map/ViewMap.h"
+# include "Curve.h"
+/*! Class to represent a 1D elements issued
+ * from the chaining process.
+ * A Chain is the last step before the Stroke and
+ * is used in the Splitting and Creation processes.
+ */
+class Chain : public Curve
+{
+protected:
+ // tmp
+ Id * _splittingId;
+public:
+ /*! Defult constructor. */
+ Chain() : Curve() {_splittingId=0;}
+ /*! Builds a chain from its Id. */
+ Chain(const Id& id) : Curve(id) {_splittingId=0;}
+ /*! Copy Constructor */
+ Chain(const Chain& iBrother) : Curve(iBrother) {_splittingId=iBrother._splittingId;}
+ /*! Destructor. */
+ virtual ~Chain() {
+ // only the last splitted deletes this id
+ if(_splittingId){
+ if(*_splittingId == _Id)
+ delete _splittingId;
+ }
+ }
+
+ /*! Adds a ViewEdge at the end of the chain
+ * \param iViewEdge
+ * The ViewEdge that must be added.
+ * \param orientation
+ * The orientation with which this ViewEdge
+ * must be processed.
+ */
+ void push_viewedge_back(ViewEdge *iViewEdge, bool orientation) ;
+ /*! Adds a ViewEdge at the beginning of the chain
+ * \param iViewEdge
+ * The ViewEdge that must be added.
+ * \param orientation
+ * The orientation with which this ViewEdge
+ * must be processed.
+ */
+ void push_viewedge_front(ViewEdge *iViewEdge, bool orientation) ;
+
+ inline void setSplittingId(Id * sid){_splittingId = sid;}
+ inline Id* getSplittingId() {return _splittingId;}
+};
+
+#endif // CHAIN_H
diff --git a/source/blender/freestyle/intern/stroke/ChainingIterators.cpp b/source/blender/freestyle/intern/stroke/ChainingIterators.cpp
new file mode 100755
index 00000000000..206b6eb7364
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/ChainingIterators.cpp
@@ -0,0 +1,147 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "ChainingIterators.h"
+#include "../system/TimeStamp.h"
+
+ViewEdge* AdjacencyIterator::operator*() {
+ return (*_internalIterator).first;
+}
+bool AdjacencyIterator::isIncoming() const{
+ return (*_internalIterator).second;
+}
+
+void AdjacencyIterator::increment(){
+ ++_internalIterator;
+ while((!_internalIterator.isEnd()) && (!isValid((*_internalIterator).first)))
+ ++_internalIterator;
+}
+
+bool AdjacencyIterator::isValid(ViewEdge* edge){
+ if(_restrictToSelection)
+ if(edge->getTimeStamp() != TimeStamp::instance()->getTimeStamp())
+ return false;
+ if(_restrictToUnvisited)
+ if(edge->getChainingTimeStamp() > TimeStamp::instance()->getTimeStamp())
+ return false;
+ return true;
+}
+
+void ChainingIterator::increment() {
+ _increment = true;
+ ViewVertex * vertex = getVertex();
+ if(!vertex){
+ _edge = 0;
+ return;
+ }
+ AdjacencyIterator it = AdjacencyIterator(vertex, _restrictToSelection, _restrictToUnvisited);
+ if(it.isEnd())
+ _edge = 0;
+ else
+ _edge = traverse(it);
+ if(_edge == 0)
+ return;
+ if(_edge->A() == vertex)
+ _orientation = true;
+ else
+ _orientation = false;
+}
+
+void ChainingIterator::decrement() {
+ _increment = false;
+ ViewVertex * vertex = getVertex();
+ if(!vertex){
+ _edge = 0;
+ return;
+ }
+ AdjacencyIterator it = AdjacencyIterator(vertex, _restrictToSelection, _restrictToUnvisited);
+ if(it.isEnd())
+ _edge = 0;
+ else
+ _edge = traverse(it);
+ if(_edge == 0)
+ return;
+ if(_edge->B() == vertex)
+ _orientation = true;
+ else
+ _orientation = false;
+}
+
+//
+// ChainSilhouetteIterators
+//
+///////////////////////////////////////////////////////////
+
+ViewEdge * ChainSilhouetteIterator::traverse(const AdjacencyIterator& ait){
+ AdjacencyIterator it(ait);
+ ViewVertex* nextVertex = getVertex();
+ // we can't get a NULL nextVertex here, it was intercepted
+ // before
+ if(nextVertex->getNature() & Nature::T_VERTEX){
+ TVertex * tvertex = (TVertex*)nextVertex;
+ ViewEdge *mate = (tvertex)->mate(getCurrentEdge());
+ while(!it.isEnd()){
+ ViewEdge *ve = *it;
+ if(ve == mate)
+ return ve;
+ ++it;
+ }
+ return 0;
+ }
+ if(nextVertex->getNature() & Nature::NON_T_VERTEX){
+ NonTVertex * nontvertex = (NonTVertex*)nextVertex;
+ ViewEdge * newEdge(0);
+ // we'll try to chain the edges by keeping the same nature...
+ // the preseance order is : SILHOUETTE, BORDER, CREASE, SUGGESTIVE, VALLEY, RIDGE
+ Nature::EdgeNature natures[6] = {Nature::SILHOUETTE, Nature::BORDER, Nature::CREASE, Nature::SUGGESTIVE_CONTOUR, Nature::VALLEY, Nature::RIDGE};
+ for(unsigned i=0; i<6; ++i){
+ if(getCurrentEdge()->getNature() & natures[i]){
+ int n = 0;
+ while(!it.isEnd()){
+ ViewEdge *ve = *it;
+ if(ve->getNature() & natures[i]){
+ ++n;
+ newEdge = ve;
+ }
+ ++it;
+ }
+ if(n == 1){
+ return newEdge;
+ }else{
+ return 0;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+ViewEdge * ChainPredicateIterator::traverse(const AdjacencyIterator& ait){
+ AdjacencyIterator it(ait);
+ // Iterates over next edges to see if one of them
+ // respects the predicate:
+ while(!it.isEnd()) {
+ ViewEdge *ve = *it;
+ if(((*_unary_predicate)(*ve)) && ((*_binary_predicate)(*(getCurrentEdge()),*(ve))))
+ return ve;
+ ++it;
+ }
+ return 0;
+}
diff --git a/source/blender/freestyle/intern/stroke/ChainingIterators.h b/source/blender/freestyle/intern/stroke/ChainingIterators.h
new file mode 100755
index 00000000000..1e946855dce
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/ChainingIterators.h
@@ -0,0 +1,364 @@
+//
+// Filename : ChainingIterators
+// Author : Stephane Grabli
+// Purpose : Chaining iterators
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#ifndef CHAININGITERATORS_H
+# define CHAININGITERATORS_H
+
+# include <iostream>
+# include "../view_map/ViewMap.h"
+# include "../view_map/ViewMapIterators.h"
+# include "../view_map/ViewMapAdvancedIterators.h"
+# include "Predicates1D.h"
+
+//using namespace ViewEdgeInternal;
+
+//
+// Adjacency iterator used in the chaining process
+//
+///////////////////////////////////////////////////////////
+class LIB_STROKE_EXPORT AdjacencyIterator{
+protected:
+ ViewVertexInternal::orientedViewEdgeIterator _internalIterator;
+ bool _restrictToSelection;
+ bool _restrictToUnvisited;
+public:
+ AdjacencyIterator(){
+ _restrictToSelection = true;
+ _restrictToUnvisited = true;
+ }
+ AdjacencyIterator(ViewVertex *iVertex, bool iRestrictToSelection = true, bool iRestrictToUnvisited = true){
+ _restrictToSelection = iRestrictToSelection;
+ _restrictToUnvisited = iRestrictToUnvisited;
+ _internalIterator = iVertex->edgesBegin();
+ while((!_internalIterator.isEnd()) && (!isValid((*_internalIterator).first)))
+ ++_internalIterator;
+ }
+ AdjacencyIterator(const AdjacencyIterator& iBrother){
+ _internalIterator = iBrother._internalIterator;
+ _restrictToSelection = iBrother._restrictToSelection;
+ _restrictToUnvisited = iBrother._restrictToUnvisited;
+ }
+ AdjacencyIterator& operator=(const AdjacencyIterator& iBrother) {
+ _internalIterator = iBrother._internalIterator;
+ _restrictToSelection = iBrother._restrictToSelection;
+ _restrictToUnvisited = iBrother._restrictToUnvisited;
+ return *this;
+ }
+ virtual ~AdjacencyIterator(){
+ }
+
+ inline bool isEnd(){
+ return _internalIterator.isEnd();
+ }
+ inline bool isBegin(){
+ return _internalIterator.isBegin();
+ }
+ /*! Returns true if the current ViewEdge is is coming
+ * towards the iteration vertex. False otherwise.
+ */
+ bool isIncoming() const ;
+
+ /*! Returns a *pointer* to the pointed ViewEdge. */
+ virtual ViewEdge* operator*() ;
+ virtual ViewEdge* operator->() {return operator*();}
+ virtual AdjacencyIterator& operator++() {
+ increment();
+ return *this;
+ }
+ virtual AdjacencyIterator operator++(int) {
+ AdjacencyIterator tmp(*this);
+ increment();
+ return tmp;
+ }
+ void increment();
+
+protected:
+ bool isValid(ViewEdge* edge);
+};
+
+//
+// Base class for Chaining Iterators
+//
+///////////////////////////////////////////////////////////
+
+/*! Base class for chaining iterators.
+ * This class is designed to be overloaded
+ * in order to describe chaining rules.
+ * It makes the works of chaining rules description
+ * easier.
+ * The two main methods that need to overloaded are
+ * traverse() and init().
+ * traverse() tells which ViewEdge to follow, among the adjacent ones.
+ * If you specify restriction rules (such as "Chain only
+ * ViewEdges of the selection"), they will be included
+ * in the adjacency iterator. (i.e, the adjacent iterator
+ * will only stop on "valid" edges).
+ */
+class LIB_STROKE_EXPORT ChainingIterator : public ViewEdgeInternal::ViewEdgeIterator{
+protected:
+ bool _restrictToSelection;
+ bool _restrictToUnvisited;
+ bool _increment; //true if we're currently incrementing, false when decrementing
+
+public:
+ /*! Builds a Chaining Iterator from the first ViewEdge used for iteration
+ * and its orientation.
+ * \param iRestrictToSelection
+ * Indicates whether to force the chaining to stay within
+ * the set of selected ViewEdges or not.
+ * \param iRestrictToUnvisited
+ * Indicates whether a ViewEdge that has already been chained
+ * must be ignored ot not.
+ * \param begin
+ * The ViewEdge from which to start the chain.
+ * \param orientation
+ * The direction to follow to explore the graph. If true,
+ * the direction indicated by the first ViewEdge is used.
+ */
+ ChainingIterator(bool iRestrictToSelection = true, bool iRestrictToUnvisited = true, ViewEdge* begin = 0, bool orientation = true)
+ : ViewEdgeIterator(begin, orientation) {
+ _restrictToSelection = iRestrictToSelection;
+ _restrictToUnvisited = iRestrictToUnvisited;
+ _increment = true;
+ }
+
+ /*! Copy constructor */
+ ChainingIterator(const ChainingIterator& brother)
+ : ViewEdgeIterator(brother) {
+ _restrictToSelection = brother._restrictToSelection;
+ _restrictToUnvisited = brother._restrictToUnvisited;
+ _increment = brother._increment;
+ }
+
+ /*! Returns the string "ChainingIterator" */
+ virtual string getExactTypeName() const {
+ return "ChainingIterator";
+ }
+
+ /*! Inits the iterator context.
+ * This method is called each time
+ * a new chain is started.
+ * It can be used to reset some
+ * history information that you
+ * might want to keep.
+ */
+ virtual void init(){}
+
+ /*! This method iterates over the potential next
+ * ViewEdges and returns the one that will be
+ * followed next.
+ * returns the next ViewEdge to follow or
+ * 0 when the end of the chain is reached.
+ * \param it
+ * The iterator over the ViewEdges adjacent to
+ * the end vertex of the current ViewEdge.
+ * The Adjacency iterator reflects the restriction
+ * rules by only iterating over the valid ViewEdges.
+ */
+ virtual ViewEdge * traverse(const AdjacencyIterator &it){
+ cerr << "Warning: the traverse method was not defined" << endl;
+ return 0;
+ }
+
+ /* accessors */
+ /*! Returns true if the orientation of the current ViewEdge
+ * corresponds to its natural orientation
+ */
+ //inline bool getOrientation() const {}
+ /*! Returns the vertex which is the next crossing */
+ inline ViewVertex * getVertex() {
+ if(_increment){
+ if(_orientation){
+ return _edge->B();
+ }else{
+ return _edge->A();
+ }
+ }else{
+ if(_orientation){
+ return _edge->A();
+ }else{
+ return _edge->B();
+ }
+ }
+ }
+
+ /*! Returns true if the current iteration is an incrementation */
+ inline bool isIncrementing() const{
+ return _increment;
+ }
+
+ /* increments.*/
+ virtual void increment() ;
+ virtual void decrement() ;
+};
+
+//
+// Chaining iterators definitions
+//
+///////////////////////////////////////////////////////////
+
+/*! A ViewEdge Iterator used to follow ViewEdges the most naturally.
+ * For example, it will follow visible ViewEdges of same nature.
+ * As soon, as the nature or the visibility changes, the iteration
+ * stops (by setting the pointed ViewEdge to 0).
+ * In the case of an iteration over a set of ViewEdge that are both
+ * Silhouette and Crease, there will be a precedence of the silhouette
+ * over the crease criterion.
+ */
+class LIB_STROKE_EXPORT ChainSilhouetteIterator : public ChainingIterator
+{
+public:
+ /*! Builds a ChainSilhouetteIterator from the first ViewEdge used for iteration
+ * and its orientation.
+ * \param iRestrictToSelection
+ * Indicates whether to force the chaining to stay within
+ * the set of selected ViewEdges or not.
+ * \param begin
+ * The ViewEdge from where to start the iteration.
+ * \param orientation
+ * If true, we'll look for the next ViewEdge among the
+ * ViewEdges that surround the ending ViewVertex of begin.
+ * If false, we'll search over the ViewEdges surrounding
+ * the ending ViewVertex of begin.
+ */
+ ChainSilhouetteIterator(bool iRestrictToSelection = true, ViewEdge* begin = NULL, bool orientation = true)
+ : ChainingIterator(iRestrictToSelection, true, begin, orientation) {}
+
+ /*! Copy constructor */
+ ChainSilhouetteIterator(const ChainSilhouetteIterator& brother)
+ : ChainingIterator(brother) {}
+
+ /*! Returns the string "ChainSilhouetteIterator" */
+ virtual string getExactTypeName() const {
+ return "ChainSilhouetteIterator";
+ }
+
+ /*! This method iterates over the potential next
+ * ViewEdges and returns the one that will be
+ * followed next.
+ * When reaching the end of a chain, 0 is returned.
+ */
+ virtual ViewEdge * traverse(const AdjacencyIterator& it);
+
+};
+
+//
+// ChainPredicateIterator
+//
+///////////////////////////////////////////////////////////
+
+/*! A "generic" user-controlled ViewEdge iterator. This iterator
+ * is in particular built from a unary predicate and a binary predicate.
+ * First, the unary predicate is evaluated for all potential next ViewEdges
+ * in order to only keep the ones respecting a certain constraint.
+ * Then, the binary predicate is evaluated on the current ViewEdge
+ * together with each ViewEdge of the previous selection. The first
+ * ViewEdge respecting both the unary predicate and the binary predicate
+ * is kept as the next one. If none of the potential next ViewEdge respects
+ * these 2 predicates, 0 is returned.
+ */
+class LIB_STROKE_EXPORT ChainPredicateIterator : public ChainingIterator
+{
+protected:
+ BinaryPredicate1D *_binary_predicate; // the caller is responsible for the deletion of this object
+ UnaryPredicate1D *_unary_predicate; // the caller is responsible for the deletion of this object
+public:
+
+ /*! Builds a ChainPredicateIterator from a starting ViewEdge and its orientation.
+ * \param iRestrictToSelection
+ * Indicates whether to force the chaining to stay within
+ * the set of selected ViewEdges or not.
+ * \param iRestrictToUnvisited
+ * Indicates whether a ViewEdge that has already been chained
+ * must be ignored ot not.
+ * \param begin
+ * The ViewEdge from where to start the iteration.
+ * \param orientation
+ * If true, we'll look for the next ViewEdge among the
+ * ViewEdges that surround the ending ViewVertex of begin.
+ * If false, we'll search over the ViewEdges surrounding
+ * the ending ViewVertex of begin.
+ */
+ ChainPredicateIterator(bool iRestrictToSelection = true, bool iRestrictToUnvisited = true, ViewEdge* begin = NULL, bool orientation = true)
+ : ChainingIterator(iRestrictToSelection, iRestrictToUnvisited, begin, orientation) {
+ _binary_predicate = 0;
+ _unary_predicate = 0;
+ }
+
+ /*! Builds a ChainPredicateIterator from a unary predicate, a binary predicate, a starting ViewEdge and its orientation.
+ * \param iRestrictToSelection
+ * Indicates whether to force the chaining to stay within
+ * the set of selected ViewEdges or not.
+ * \param iRestrictToUnvisited
+ * Indicates whether a ViewEdge that has already been chained
+ * must be ignored ot not.
+ * \param upred
+ * The unary predicate that the next ViewEdge must satisfy.
+ * \param bpred
+ * The binary predicate that the next ViewEdge must satisfy
+ * together with the actual pointed ViewEdge.
+ * \param begin
+ * The ViewEdge from where to start the iteration.
+ * \param orientation
+ * If true, we'll look for the next ViewEdge among the
+ * ViewEdges that surround the ending ViewVertex of begin.
+ * If false, we'll search over the ViewEdges surrounding
+ * the ending ViewVertex of begin.
+ */
+ ChainPredicateIterator(UnaryPredicate1D& upred, BinaryPredicate1D& bpred, bool iRestrictToSelection = true, bool iRestrictToUnvisited = true, ViewEdge* begin = NULL, bool orientation = true)
+ : ChainingIterator(iRestrictToSelection, iRestrictToUnvisited, begin, orientation) {
+ _unary_predicate = &upred;
+ _binary_predicate = &bpred;
+ }
+
+ /*! Copy constructor */
+ ChainPredicateIterator(const ChainPredicateIterator& brother)
+ : ChainingIterator(brother){
+ _unary_predicate = brother._unary_predicate;
+ _binary_predicate = brother._binary_predicate;
+ }
+
+ /*! Destructor. */
+ virtual ~ChainPredicateIterator(){
+ _unary_predicate = 0;
+ _binary_predicate = 0;
+ }
+
+ /*! Returns the string "ChainPredicateIterator" */
+ virtual string getExactTypeName() const {
+ return "ChainPredicateIterator";
+ }
+
+ /*! This method iterates over the potential next
+ * ViewEdges and returns the one that will be
+ * followed next.
+ * When reaching the end of a chain, 0 is returned.
+ */
+ virtual ViewEdge * traverse(const AdjacencyIterator &it);
+};
+
+#endif // CHAININGITERATORS_H
diff --git a/source/blender/freestyle/intern/stroke/ContextFunctions.cpp b/source/blender/freestyle/intern/stroke/ContextFunctions.cpp
new file mode 100755
index 00000000000..b55da1fb0f8
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/ContextFunctions.cpp
@@ -0,0 +1,60 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "ContextFunctions.h"
+#include "../view_map/SteerableViewMap.h"
+#include "../system/TimeStamp.h"
+namespace ContextFunctions {
+
+ unsigned GetTimeStampCF(){
+ return TimeStamp::instance()->getTimeStamp();
+ }
+
+ unsigned GetCanvasWidthCF(){
+ return Canvas::getInstance()->width();
+ }
+
+ unsigned GetCanvasHeightCF(){
+ return Canvas::getInstance()->height();
+ }
+ void LoadMapCF(const char *iFileName, const char *iMapName, unsigned iNbLevels, float iSigma ){
+ return Canvas::getInstance()->loadMap(iFileName, iMapName, iNbLevels,iSigma);
+ }
+
+ float ReadMapPixelCF(const char *iMapName, int level, unsigned x, unsigned y){
+ Canvas * canvas = Canvas::getInstance();
+ return canvas->readMapPixel(iMapName, level, x,y);
+ }
+
+ float ReadCompleteViewMapPixelCF(int level, unsigned x, unsigned y){
+ SteerableViewMap *svm = Canvas::getInstance()->getSteerableViewMap();
+ return svm->readCompleteViewMapPixel(level,x,y);
+ }
+
+ float ReadDirectionalViewMapPixelCF(int iOrientation, int level, unsigned x, unsigned y){
+ SteerableViewMap *svm = Canvas::getInstance()->getSteerableViewMap();
+ return svm->readSteerableViewMapPixel(iOrientation, level,x,y);
+ }
+
+ FEdge * GetSelectedFEdgeCF(){
+ return Canvas::getInstance()->selectedFEdge();
+ }
+}
diff --git a/source/blender/freestyle/intern/stroke/ContextFunctions.h b/source/blender/freestyle/intern/stroke/ContextFunctions.h
new file mode 100755
index 00000000000..37c98656fa7
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/ContextFunctions.h
@@ -0,0 +1,124 @@
+//
+// Filename : AdvancedFunctions0D.h
+// Author(s) : Stephane Grabli
+// Purpose : Functions related to context queries
+// Date of creation : 20/12/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef CONTEXT_FUNCTIONS_HPP
+# define CONTEXT_FUNCTIONS_HPP
+
+# include "Canvas.h"
+# include "../image/Image.h"
+# include "../image/GaussianFilter.h"
+
+/*! \file ContextFunctions.h
+ * Interface to access the context related
+ * information.
+ */
+//
+// Context Functions definitions
+//
+///////////////////////////////////////////////////////////
+/*! namespace containing all the Context related functions */
+namespace ContextFunctions {
+
+ // GetTimeStamp
+ LIB_STROKE_EXPORT
+ /*! Returns the system time stamp */
+ unsigned GetTimeStampCF();
+
+ // GetCanvasWidth
+ /*! Returns the canvas width */
+ LIB_STROKE_EXPORT
+ unsigned GetCanvasWidthCF();
+
+ // GetCanvasHeight
+ /*! Returns the canvas width */
+ LIB_STROKE_EXPORT
+ unsigned GetCanvasHeightCF();
+
+ // Load map
+ /*! Loads an image map for further reading */
+ LIB_STROKE_EXPORT
+ void LoadMapCF(const char *iFileName, const char *iMapName, unsigned iNbLevels=4, float iSigma=1.f);
+
+ // ReadMapPixel
+ /*! Reads a pixel in a user-defined map
+ * \return the floating value stored for that pixel
+ * \param iMapName
+ * The name of the map
+ * \param level
+ * The level of the pyramid in which we wish to read the pixel
+ * \param x
+ * The x-coordinate of the pixel we wish to read. The origin is
+ * in the lower-left corner.
+ * \param y
+ * The y-coordinate of the pixel we wish to read. The origin is
+ * in the lower-left corner.
+ */
+ LIB_STROKE_EXPORT
+ float ReadMapPixelCF(const char *iMapName, int level, unsigned x, unsigned y);
+
+ // ReadCompleteViewMapPixel
+ /*! Reads a pixel in the complete view map
+ * \return the floating value stored for that pixel
+ * \param level
+ * The level of the pyramid in which we wish to read the pixel
+ * \param x
+ * The x-coordinate of the pixel we wish to read. The origin is
+ * in the lower-left corner.
+ * \param y
+ * The y-coordinate of the pixel we wish to read. The origin is
+ * in the lower-left corner.
+ */
+ LIB_STROKE_EXPORT
+ float ReadCompleteViewMapPixelCF(int level, unsigned x, unsigned y);
+
+ // ReadOrientedViewMapPixel
+ /*! Reads a pixel in one of the oriented view map images
+ * \return the floating value stored for that pixel
+ * \param iOrientation
+ * The number telling which orientation we want to check
+ * \param level
+ * The level of the pyramid in which we wish to read the pixel
+ * \param x
+ * The x-coordinate of the pixel we wish to read. The origin is
+ * in the lower-left corner.
+ * \param y
+ * The y-coordinate of the pixel we wish to read. The origin is
+ * in the lower-left corner.
+ */
+ LIB_STROKE_EXPORT
+ float ReadDirectionalViewMapPixelCF(int iOrientation, int level, unsigned x, unsigned y);
+
+ // DEBUG
+ LIB_STROKE_EXPORT
+ FEdge * GetSelectedFEdgeCF();
+
+} // end of namespace ContextFunctions
+
+#endif // CONTEXT_FUNCTIONS_HPP
+
diff --git a/source/blender/freestyle/intern/stroke/Curve.cpp b/source/blender/freestyle/intern/stroke/Curve.cpp
new file mode 100755
index 00000000000..f7b255c3ef4
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Curve.cpp
@@ -0,0 +1,818 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "Curve.h"
+#include "CurveIterators.h"
+#include "CurveAdvancedIterators.h"
+
+ /**********************************/
+ /* */
+ /* */
+ /* CurvePoint */
+ /* */
+ /* */
+ /**********************************/
+
+CurvePoint::CurvePoint()
+{
+ __A=0;
+ __B=0;
+ _t2d=0;
+}
+
+CurvePoint::CurvePoint(SVertex *iA, SVertex *iB, float t)
+{
+ __A=iA;
+ __B=iB;
+ _t2d=t;
+ if((iA == 0) && (t == 1.f))
+ {
+ _Point2d=__B->point2d();
+ _Point3d=__B->point3d();
+ }
+ else if((iB == 0) && (t == 0.f))
+ {
+ _Point2d=__A->point2d();
+ _Point3d=__A->point3d();
+ }
+ else
+ {
+ _Point2d=__A->point2d()+_t2d*(__B->point2d()-__A->point2d());
+ _Point3d=__A->point3d()+_t2d*(__B->point3d()-__A->point3d());
+ }
+}
+
+CurvePoint::CurvePoint(CurvePoint *iA, CurvePoint *iB, float t3)
+{
+ float t1=iA->t2d();
+ float t2=iB->t2d();
+ if((iA->A() == iB->A()) && (iA->B() == iB->B()) && (iA->A() != 0) && (iA->B() != 0) && (iB->A() != 0) && (iB->B() != 0))
+ {
+ __A=iA->A();
+ __B=iB->B();
+ _t2d=t1+t2*t3-t1*t3;
+ }
+ else if((iA->B() == 0) && (iB->B() == 0))
+ {
+ __A = iA->A();
+ __B = iB->A();
+ _t2d = t3;
+ }
+ else if((iA->t2d() == 0) && (iB->t2d() == 0))
+ {
+ __A = iA->A();
+ __B = iB->A();
+ _t2d = t3;
+ }
+ else if(iA->A() == iB->A()){
+ if(iA->t2d() == 0){
+ __A = iB->A();
+ __B = iB->B();
+ _t2d = t3;
+ }else if(iB->t2d() == 0){
+ __A = iA->A();
+ __B = iA->B();
+ _t2d = t3;
+ }
+ }else if(iA->B() == iB->B()){
+ if(iA->t2d() == 1){
+ __A = iB->A();
+ __B = iB->B();
+ _t2d = t3;
+ }else if(iB->t2d() == 1){
+ __A = iA->A();
+ __B = iA->B();
+ _t2d = t3;
+ }
+ }
+ else if(iA->B() == iB->A())
+ {
+ if((iA->t2d() != 1.f) && (iB->t2d() == 0.f))
+ {
+ __A = iA->A();
+ __B = iA->B();
+ _t2d=t1+t3-t1*t3;
+ //_t2d = t3;
+ }
+ else if((iA->t2d() == 1.f) && (iB->t2d() != 0.f))
+ {
+ __A = iB->A();
+ __B = iB->B();
+ //_t2d = t3;
+ _t2d=t2*t3;
+ }
+
+ }
+ //_Point2d=__A->point2d()+_t2d*(__B->point2d()-__A->point2d());
+ //_Point3d=__A->point3d()+_t2d*(__B->point3d()-__A->point3d());
+
+ _Point2d= iA->point2d()+t3*(iB->point2d()-iA->point2d());
+ _Point3d=__A->point3d()+_t2d*(__B->point3d()-__A->point3d());
+}
+
+CurvePoint::CurvePoint(const CurvePoint& iBrother)
+{
+ __A=iBrother.__A;
+ __B=iBrother.__B;
+ _t2d=iBrother._t2d;
+ _Point2d=iBrother._Point2d;
+ _Point3d=iBrother._Point3d;
+}
+
+CurvePoint& CurvePoint::operator=(const CurvePoint& iBrother)
+{
+ __A=iBrother.__A;
+ __B=iBrother.__B;
+ _t2d=iBrother._t2d;
+ _Point2d=iBrother._Point2d;
+ _Point3d=iBrother._Point3d;
+ return *this;
+}
+
+
+FEdge *CurvePoint::fedge()
+{
+ if(getNature() & Nature::T_VERTEX)
+ return 0;
+ return __A->fedge();
+}
+
+
+FEdge* CurvePoint::getFEdge(Interface0D& inter)
+{
+ CurvePoint* iVertexB = dynamic_cast<CurvePoint*>(&inter);
+ if (!iVertexB)
+ return 0;
+ if(((__A == iVertexB->__A) && (__B == iVertexB->__B))
+ ||
+ ((__A == iVertexB->__B) && (__B == iVertexB->__A)))
+ return __A->getFEdge(*__B);
+ else if(__B == 0)
+ {
+ if(iVertexB->__B == 0)
+ return __A->getFEdge(*(iVertexB->__A));
+ else if(iVertexB->__A == __A)
+ return __A->getFEdge(*(iVertexB->__B));
+ else if(iVertexB->__B == __A)
+ return __A->getFEdge(*(iVertexB->__A));
+ }
+ else if(iVertexB->__B == 0)
+ {
+ if(iVertexB->__A == __A)
+ return __B->getFEdge(*(iVertexB->__A));
+ else if(iVertexB->__A == __B)
+ return __A->getFEdge(*(iVertexB->__A));
+ }
+ else if(__B == iVertexB->__A)
+ {
+ if((_t2d != 1) && (iVertexB->_t2d == 0))
+ return __A->getFEdge(*__B);
+ if((_t2d == 1) && (iVertexB->_t2d != 0))
+ return iVertexB->__A->getFEdge(*(iVertexB->__B));
+ }
+ else if(__B == iVertexB->__B)
+ {
+ if((_t2d != 1) && (iVertexB->_t2d == 1))
+ return __A->getFEdge(*__B);
+ if((_t2d == 1) && (iVertexB->_t2d != 1))
+ return iVertexB->__A->getFEdge(*(iVertexB->__B));
+ }
+ else if(__A == iVertexB->__A)
+ {
+ if((_t2d == 0) && (iVertexB->_t2d != 0))
+ return iVertexB->__A->getFEdge(*(iVertexB->__B));
+ if((_t2d != 0) && (iVertexB->_t2d == 0))
+ return __A->getFEdge(*__B);
+ }
+ else if(__A == iVertexB->__B)
+ {
+ if((_t2d == 0) && (iVertexB->_t2d != 1))
+ return iVertexB->__A->getFEdge(*(iVertexB->__B));
+ if((_t2d != 0) && (iVertexB->_t2d == 1))
+ return __A->getFEdge(*__B);
+ }
+
+ cerr << "Warning: you should not be there..." << endl;
+
+ return 0;
+}
+
+
+ Vec3r CurvePoint::normal() const
+{
+ if(__B == 0)
+ return __A->normal();
+ if(__A == 0)
+ return __B->normal();
+ Vec3r Na = __A->normal();
+ if(Exception::getException())
+ Na = Vec3r(0,0,0);
+ Vec3r Nb = __B->normal();
+ if(Exception::getException())
+ Nb = Vec3r(0,0,0);
+ // compute t3d:
+ real t3d = SilhouetteGeomEngine::ImageToWorldParameter(__A->getFEdge(*__B),_t2d);
+ return ((1-t3d)*Na+t3d*Nb);
+}
+
+
+ // Material CurvePoint::material() const
+ //{
+ // if(__A == 0)
+ // return __B->material();
+ // return __A->material();
+ //}
+
+
+// Id CurvePoint::shape_id() const
+// {
+// if(__A == 0)
+// return __B->shape_id();
+// return __A->shape_id();
+// }
+
+
+ const SShape * CurvePoint::shape() const
+{
+ if(__A == 0)
+ return __B->shape();
+ return __A->shape();
+}
+
+
+
+// float CurvePoint::shape_importance() const
+// {
+
+// if(__A == 0)
+
+// return __B->shape_importance();
+// return __A->shape_importance();
+// }
+
+
+ // const unsigned CurvePoint::qi() const
+ //{
+ // if(__A == 0)
+ // return __B->qi();
+ // if(__B == 0)
+ // return __A->qi();
+ // return __A->getFEdge(*__B)->qi();
+ //}
+
+
+ occluder_container::const_iterator CurvePoint::occluders_begin() const
+{
+ if(__A == 0)
+ return __B->occluders_begin();
+ if(__B == 0)
+ return __A->occluders_begin();
+ return __A->getFEdge(*__B)->occluders_begin();
+}
+
+ occluder_container::const_iterator CurvePoint::occluders_end() const
+{
+ if(__A == 0)
+ return __B->occluders_end();
+ if(__B == 0)
+ return __A->occluders_end();
+ return __A->getFEdge(*__B)->occluders_end();
+}
+
+ bool CurvePoint::occluders_empty() const
+{
+ if(__A == 0)
+ return __B->occluders_empty();
+ if(__B == 0)
+ return __A->occluders_empty();
+ return __A->getFEdge(*__B)->occluders_empty();
+}
+
+ int CurvePoint::occluders_size() const
+{
+ if(__A == 0)
+ return __B->occluders_size();
+ if(__B == 0)
+ return __A->occluders_size();
+ return __A->getFEdge(*__B)->occluders_size();
+}
+
+ const SShape * CurvePoint::occluded_shape() const
+{
+ if(__A == 0)
+ return __B->occluded_shape();
+ if(__B == 0)
+ return __A->occluded_shape();
+ return __A->getFEdge(*__B)->occluded_shape();
+}
+
+ const Polygon3r& CurvePoint::occludee() const
+{
+ if(__A == 0)
+ return __B->occludee();
+ if(__B == 0)
+ return __A->occludee();
+ return __A->getFEdge(*__B)->occludee();
+}
+
+ const bool CurvePoint::occludee_empty() const
+{
+ if(__A == 0)
+ return __B->occludee_empty();
+ if(__B == 0)
+ return __A->occludee_empty();
+ return __A->getFEdge(*__B)->occludee_empty();
+}
+
+ real CurvePoint::z_discontinuity() const
+{
+ if(__A == 0)
+ return __B->z_discontinuity();
+ if(__B == 0)
+ return __A->z_discontinuity();
+ if(__A->getFEdge(*__B) == 0)
+ return 0.0;
+
+ return __A->getFEdge(*__B)->z_discontinuity();
+}
+//
+// float CurvePoint::local_average_depth() const
+//{
+// return local_average_depth_function<CurvePoint >(this);
+//}
+//
+// float CurvePoint::local_depth_variance() const
+//{
+// return local_depth_variance_function<CurvePoint >(this);
+//}
+//
+// real CurvePoint::local_average_density(float sigma) const
+//{
+// //return local_average_density<CurvePoint >(this);
+//
+// return density_function<CurvePoint >(this);
+//}
+// Vec3r shaded_color() const ;
+//
+// Vec3r CurvePoint::orientation2d() const
+// {
+// if(__A == 0)
+// return __B->orientation2d();
+// if(__B == 0)
+// return __A->orientation2d();
+// return __B->point2d()-__A->point2d();
+// }
+//
+// Vec3r CurvePoint::orientation3d() const
+// {
+// if(__A == 0)
+// return __B->orientation3d();
+// if(__B == 0)
+// return __A->orientation3d();
+// return __B->point3d()-__A->point3d();
+// }
+
+// real curvature2d() const {return viewedge()->curvature2d((_VertexA->point2d()+_VertexB->point2d())/2.0);}
+//
+// Vec3r CurvePoint::curvature2d_as_vector() const
+//{
+// // Vec3r edgeA = (_FEdges[0])->orientation2d().normalize();
+// // Vec3r edgeB = (_FEdges[1])->orientation2d().normalize();
+// // return edgeA+edgeB;
+// //
+// if(__A == 0)
+// return __B->curvature2d_as_vector();
+// if(__B == 0)
+// return __A->curvature2d_as_vector();
+// return ((1-_t2d)*__A->curvature2d_as_vector()+_t2d*__B->curvature2d_as_vector());
+//}
+//
+// real CurvePoint::curvature2d_as_angle() const
+//{
+// // Vec3r edgeA = (_FEdges[0])->orientation2d();
+// // Vec3r edgeB = (_FEdges[1])->orientation2d();
+// // Vec2d N1(-edgeA.y(), edgeA.x());N1.normalize();
+// // Vec2d N2(-edgeB.y(), edgeB.x());N2.normalize();
+// // return acos((N1*N2));
+//
+// if(__A == 0)
+// return __B->curvature2d_as_angle();
+// if(__B == 0)
+// return __A->curvature2d_as_angle();
+// return ((1-_t2d)*__A->curvature2d_as_angle()+_t2d*__B->curvature2d_as_angle());
+//}
+
+
+real CurvePoint::curvatureFredo() const
+{
+ if(__A == 0)
+ return __B->curvatureFredo();
+ if(__B == 0)
+ return __A->curvatureFredo();
+ return ((1-_t2d)*__A->curvatureFredo()+_t2d*__B->curvatureFredo());
+}
+
+Vec2d CurvePoint::directionFredo () const
+{
+ if(__A == 0)
+ return __B->directionFredo();
+ if(__B == 0)
+ return __A->directionFredo();
+ return ((1-_t2d)*__A->directionFredo()+_t2d*__B->directionFredo());
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* Curve */
+ /* */
+ /* */
+ /**********************************/
+
+/* for functions */
+
+
+Curve::~Curve()
+{
+ if(!_Vertices.empty())
+ {
+ for(vertex_container::iterator it=_Vertices.begin(), itend =_Vertices.end();
+ it!=itend;
+ ++it)
+ {
+ delete (*it);
+ }
+ _Vertices.clear();
+ }
+}
+
+/*! iterators access */
+Curve::point_iterator Curve::points_begin(float step)
+{
+ vertex_container::iterator second = _Vertices.begin();++second;
+ return point_iterator(_Vertices.begin(), second, _Vertices.begin(), _Vertices.end(), _nSegments, step, 0.f, 0.f);
+ //return point_iterator(_Vertices.begin(), second, _nSegments, step, 0.f, 0.f);
+}
+Curve::const_point_iterator Curve::points_begin(float step) const
+{
+ vertex_container::const_iterator second = _Vertices.begin();++second;
+ return const_point_iterator(_Vertices.begin(), second, _Vertices.begin(), _Vertices.end(), _nSegments, step, 0.f, 0.f);
+ //return const_point_iterator(_Vertices.begin(), second, _nSegments, step, 0.f, 0.f);
+}
+Curve::point_iterator Curve::points_end(float step)
+{
+ return point_iterator(_Vertices.end(), _Vertices.end(), _Vertices.begin(), _Vertices.end(), _nSegments, step, 1.f, _Length);
+ //return point_iterator(_Vertices.end(), _Vertices.end(), _nSegments, step, 1.f, _Length);
+}
+Curve::const_point_iterator Curve::points_end(float step) const
+{
+ return const_point_iterator(_Vertices.end(), _Vertices.end(), _Vertices.begin(), _Vertices.end(), _nSegments, step, 1.f, _Length);
+ //return const_point_iterator(_Vertices.end(), _Vertices.end(), _nSegments, step, 1.f, _Length);
+}
+
+// Adavnced Iterators access
+Curve::point_iterator Curve::vertices_begin(){return points_begin(0);}
+Curve::const_point_iterator Curve::vertices_begin() const {return points_begin(0);}
+Curve::point_iterator Curve::vertices_end(){return points_end(0);}
+Curve::const_point_iterator Curve::vertices_end() const {return points_end(0);}
+
+// specialized iterators access
+CurveInternal::CurvePointIterator Curve::curvePointsBegin(float t){
+ vertex_container::iterator second = _Vertices.begin();++second;
+ return CurveInternal::CurvePointIterator(_Vertices.begin(), second, _Vertices.begin(), _Vertices.end(), 0, _nSegments, _Length, t, 0.f, 0.f);
+}
+
+CurveInternal::CurvePointIterator Curve::curvePointsEnd(float t){
+ vertex_container::iterator last = _Vertices.end();--last;
+ return CurveInternal::CurvePointIterator(last, _Vertices.end(), _Vertices.begin(), _Vertices.end(), _nSegments, _nSegments, _Length, t, 0.f, _Length);
+}
+
+CurveInternal::CurvePointIterator Curve::curveVerticesBegin(){
+ return curvePointsBegin(0);
+}
+
+CurveInternal::CurvePointIterator Curve::curveVerticesEnd(){
+ return curvePointsEnd(0);
+}
+
+Interface0DIterator Curve::pointsBegin(float t){
+ vertex_container::iterator second = _Vertices.begin();++second;
+ Interface0DIterator ret(new CurveInternal::CurvePointIterator(_Vertices.begin(), second, _Vertices.begin(), _Vertices.end(), 0, _nSegments, _Length, t, 0.f, 0.f));
+ return ret;
+}
+
+Interface0DIterator Curve::pointsEnd(float t){
+ vertex_container::iterator last = _Vertices.end();--last;
+ Interface0DIterator ret(new CurveInternal::CurvePointIterator(last, _Vertices.end(), _Vertices.begin(), _Vertices.end(), _nSegments, _nSegments, _Length, t, 0.f, _Length));
+ return ret;
+}
+
+Interface0DIterator Curve::verticesBegin(){
+ return pointsBegin(0);
+}
+
+Interface0DIterator Curve::verticesEnd(){
+ return pointsEnd(0);
+}
+
+
+// Vec3r shaded_color(int iCombination = 0) const ;
+//
+// Vec3r Curve::orientation2d(point_iterator it) const
+//{
+// return (*it)->orientation2d();
+//}
+/* template <class BaseVertex> */
+/* Vec3r Curve::orientation2d(int iCombination) const */
+/* { */
+/* return edge_orientation2d_function<Curve >(this, iCombination); */
+/* } */
+//
+// Vec3r Curve::orientation3d(point_iterator it) const
+//{
+// return (*it)->orientation3d();
+//}
+/* */
+/* Vec3r Curve::orientation3d(int iCombination) const */
+/* { */
+/* return edge_orientation3d_function<Curve >(this, iCombination); */
+/* } */
+// real curvature2d(point_iterator it) const {return (*it)->curvature2d();}
+// real curvature2d(int iCombination = 0) const ;
+
+// Material Curve::material() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// const Material& mat = (*v)->material();
+// for(;v!=vend;++v)
+// {
+// if((*v)->material() != mat)
+// Exception::raiseException();
+// }
+// return mat;
+//}
+
+// int Curve::qi() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// int qi_= (*v)->qi();
+// for(;v!=vend;++v)
+// {
+// if((*v)->qi() != qi_)
+// Exception::raiseException();
+// }
+// return qi_;
+//}
+// occluder_container::const_iterator occluders_begin() const {return _FEdgeA->occluders().begin();}
+// occluder_container::const_iterator occluders_end() const {return _FEdgeA->occluders().end();}
+
+//int Curve::occluders_size() const
+//{
+// return qi();
+//}
+
+// bool Curve::occluders_empty() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// bool empty = (*v)->occluders_empty();
+// for(;v!=vend;++v)
+// {
+// if((*v)->occluders_empty() != empty)
+// Exception::raiseException();
+// }
+// return empty;
+//}
+// const Polygon3r& occludee() const {return *(_FEdgeA->aFace());}
+
+// const SShape * Curve::occluded_shape() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// const SShape *sshape = (*v)->occluded_shape();
+// for(;v!=vend;++v)
+// {
+// if((*v)->occluded_shape() != sshape)
+// Exception::raiseException();
+// }
+// return sshape;
+//}
+
+
+// const bool Curve::occludee_empty() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// bool empty = (*v)->occludee_empty();
+// for(;v!=vend;++v)
+// {
+// if((*v)->occludee_empty() != empty)
+// Exception::raiseException();
+// }
+// return empty;
+//}
+/* */
+/* real Curve::z_discontinuity(int iCombination) const */
+/* { */
+/* return z_discontinuity_edge_function<Curve >(this, iCombination); */
+/* } */
+
+// int Curve::shape_id() const
+// {
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// Id id = (*v)->shape_id();
+// for(;v!=vend;++v)
+// {
+// if((*v)->shape_id() != id)
+// Exception::raiseException();
+// }
+// return id.first;
+// }
+
+
+// const SShape * Curve::shape() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// const SShape *sshape = (*v)->shape();
+// for(;v!=vend;++v)
+// {
+// if((*v)->shape() != sshape)
+// Exception::raiseException();
+// }
+// return sshape;
+//}
+
+
+// occluder_container::const_iterator Curve::occluders_begin() const
+//{
+// const_vertex_iterator v=vertices_begin();
+// return (*v)->occluders_begin();
+//}
+//
+//
+// occluder_container::const_iterator Curve::occluders_end() const
+//{
+// const_vertex_iterator v=vertices_end();
+// return (*v)->occluders_end();
+//}
+
+/* */
+/* Vec3r Curve::curvature2d_as_vector(int iCombination) const */
+/* { */
+/* return curvature2d_as_vector_edge_function<Curve >(this, iCombination); */
+/* } */
+/* */
+/* real Curve::curvature2d_as_angle(int iCombination) const */
+/* { */
+/* return curvature2d_as_angle_edge_function<Curve >(this, iCombination); */
+/* } */
+
+/* */
+/* float Curve::shape_importance(int iCombination) const */
+/* { */
+/* return shape_importance_edge_function<Curve >(this, iCombination); */
+/* } */
+
+/* */
+/* float Curve::local_average_depth(int iCombination) const */
+/* { */
+/* return local_average_depth_edge_function<Curve >(this, iCombination); */
+/* } */
+/* */
+/* float Curve::local_depth_variance(int iCombination ) const */
+/* { */
+/* return local_depth_variance_edge_function<Curve >(this, iCombination); */
+/* // local_depth_variance_functor<Point> functor; */
+/* // float result; */
+/* // Evaluate<float, local_depth_variance_functor<Point> >(&functor, iCombination, result); */
+/* // return result; */
+/* } */
+
+/* */
+/* real Curve::local_average_density(float sigma, int iCombination ) const */
+/* { */
+/* return density_edge_function<Curve >(this, iCombination); */
+/* // density_functor<Point> functor; */
+/* // real result; */
+/* // Evaluate<real, density_functor<Point> >(&functor, iCombination, result); */
+/* // return result; */
+/* } */
+
+#define EPS_CURVA_DIR 0.01
+
+
+void Curve::computeCurvatureAndOrientation ()
+{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end(), v2, prevV, v0;
+// Vec2d p0, p1, p2;
+// Vec3r p;
+
+// p=(*v)->point2d();
+// p0=Vec2d(p[0], p[1]);
+// prevV=v; ++v;
+// p=(*v)->point2d();
+// p1=Vec2d(p[0], p[1]);
+// Vec2d prevDir(p1-p0);
+
+// for(;v!=vend;++v)
+// {
+// v2=v; ++v2;
+// if (v2==vend) break;
+// Vec3r p2=(*v2)->point2d();
+
+// Vec2d BA=p0-p1;
+// Vec2d BC=p2-p1;
+// real lba=BA.norm(), lbc=BC.norm();
+// BA.normalizeSafe();
+// BC.normalizeSafe();
+// Vec2d normalCurvature=BA+BC;
+// Vec2d dir=Vec2d(BC-BA);
+// Vec2d normal=Vec2d(-dir[1], dir[0]);
+
+// normal.normalizeSafe();
+// real curvature=normalCurvature*normal;
+// if (lba+lbc > MY_EPSILON)
+// curvature/=(0.5*lba+lbc);
+// if (dir.norm() < MY_EPSILON)
+// dir=0.1*prevDir;
+// (*v)->setCurvatureFredo(curvature);
+// (*v)->setDirectionFredo(dir);
+
+// prevV=v; p0=p1; p1=p2; prevDir=dir; prevDir.normalize();
+// }
+// (*v)->setCurvatureFredo((*prevV)->curvatureFredo());
+// (*v)->setDirectionFredo((*v)->point2d()-(*prevV)->point2d());
+// v0=vertices_begin(); v2=v0; ++v2;
+// (*v0)->setCurvatureFredo((*v2)->curvatureFredo());
+// (*v0)->setDirectionFredo((*v2)->point2d()-(*v0)->point2d());
+
+// //closed curve case one day...
+
+// //
+// return;
+
+// //numerical degeneracy verification.. we'll see later
+// const_vertex_iterator vLastReliable=vertices_begin();
+
+// v=vertices_begin();
+// p=(*v)->point2d();
+// p0=Vec2d(p[0], p[1]);
+// prevV=v; ++v;
+// p=(*v)->point2d();
+// p1=Vec2d(p[0], p[1]);
+// bool isReliable=false;
+// if ((p1-p0).norm>EPS_CURVA)
+// {
+// vLastReliable=v;
+// isReliable=true;
+// }
+
+// for(;v!=vend;++v)
+// {
+// v2=v; ++v2;
+// if (v2==vend) break;
+// Vec3r p2=(*v2)->point2d();
+
+// Vec2d BA=p0-p1;
+// Vec2d BC=p2-p1;
+// real lba=BA.norm(), lbc=BC.norm();
+
+// if ((lba+lbc)<EPS_CURVA)
+// {
+// isReliable=false;
+// cerr<<"/";
+// }
+// else
+// {
+// if (!isReliable)//previous points were not reliable
+// {
+// const_vertex_iterator vfix=vLastReliable;
+// vfix++;
+// for (; vfix!=v; ++vfix)
+// {
+// (*vfix)->setCurvatureFredo((*v)->curvatureFredo());
+// (*vfix)->setDirectionFredo((*v)->directionFredo());
+// }
+// }
+// isReliable=true;
+// vLastReliable=v;
+// }
+// prevV=v; p0=p1; p1=p2;
+// }
+
+}
diff --git a/source/blender/freestyle/intern/stroke/Curve.h b/source/blender/freestyle/intern/stroke/Curve.h
new file mode 100755
index 00000000000..400f27e5d5a
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Curve.h
@@ -0,0 +1,463 @@
+//
+// Filename : Curve.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define a container for curves
+// Date of creation : 11/01/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef CURVE_H
+# define CURVE_H
+
+# include <deque>
+# include "../system/BaseIterator.h"
+# include "../geometry/Geom.h"
+//# include "../scene_graph/Material.h"
+# include "../view_map/Silhouette.h"
+# include "../view_map/SilhouetteGeomEngine.h"
+# include "../view_map/Interface0D.h"
+# include "../view_map/Interface1D.h"
+
+using namespace std;
+using namespace Geometry;
+
+ /**********************************/
+ /* */
+ /* */
+ /* CurvePoint */
+ /* */
+ /* */
+ /**********************************/
+
+/*! Class to represent a point of a curve.
+ * A CurvePoint can be any point of a 1D curve
+ * (it doesn't have to be a vertex of the curve).
+ * Any Interface1D is built upon ViewEdges, themselves
+ * built upon FEdges. Therefore, a curve is basically
+ * a polyline made of a list SVertex.
+ * Thus, a CurvePoint is built by lineraly interpolating
+ * two SVertex.
+ * CurvePoint can be used as virtual points while
+ * querying 0D information along a curve at a given resolution.
+ */
+class LIB_STROKE_EXPORT CurvePoint : public Interface0D
+{
+public: // Implementation of Interface0D
+ /*! Returns the string "CurvePoint"*/
+ virtual string getExactTypeName() const {
+ return "CurvePoint";
+ }
+
+ // Data access methods
+ /*! Returns the 3D X coordinate of the point */
+ virtual real getX() const {
+ return _Point3d.x();
+ }
+ /*! Returns the 3D Y coordinate of the point */
+ virtual real getY() const {
+ return _Point3d.y();
+ }
+ /*! Returns the 3D Z coordinate of the point */
+ virtual real getZ() const {
+ return _Point3d.z();
+ }
+ /*! Returns the 3D point. */
+ virtual Vec3f getPoint3D() const {
+ return _Point3d;
+ }
+ /*! Returns the projected 3D X coordinate of the point */
+ virtual real getProjectedX() const {
+ return _Point2d.x();
+ }
+ /*! Returns the projected 3D Y coordinate of the point */
+ virtual real getProjectedY() const {
+ return _Point2d.y();
+ }
+ /*! Returns the projected 3D Z coordinate of the point */
+ virtual real getProjectedZ() const {
+ return _Point2d.z();
+ }
+ /*! Returns the 2D point. */
+ virtual Vec2f getPoint2D() const {
+ return Vec2f((float)_Point2d.x(),(float)_Point2d.y());
+ }
+
+ virtual FEdge* getFEdge(Interface0D& inter);
+ /*! Returns the CurvePoint's Id */
+ virtual Id getId() const {
+ Id id;
+ if(_t2d == 0)
+ return __A->getId();
+ else if(_t2d == 1)
+ return __B->getId();
+ return id;
+ }
+ /*! Returns the CurvePoint's Nature */
+ virtual Nature::VertexNature getNature() const {
+ Nature::VertexNature nature = Nature::POINT;
+ if(_t2d == 0)
+ nature |= __A->getNature();
+ else if(_t2d == 1)
+ nature |= __B->getNature();
+ return nature;
+ }
+
+ /*! Cast the Interface0D in SVertex if it can be. */
+ virtual SVertex * castToSVertex(){
+ if(_t2d == 0)
+ return __A;
+ else if(_t2d == 1)
+ return __B;
+ return Interface0D::castToSVertex();
+ }
+
+ /*! Cast the Interface0D in ViewVertex if it can be. */
+ virtual ViewVertex * castToViewVertex(){
+ if(_t2d == 0)
+ return __A->castToViewVertex();
+ else if(_t2d == 1)
+ return __B->castToViewVertex();
+ return Interface0D::castToViewVertex();
+ }
+
+ /*! Cast the Interface0D in NonTVertex if it can be. */
+ virtual NonTVertex * castToNonTVertex(){
+ if(_t2d == 0)
+ return __A->castToNonTVertex();
+ else if(_t2d == 1)
+ return __B->castToNonTVertex();
+ return Interface0D::castToNonTVertex();
+ }
+
+ /*! Cast the Interface0D in TVertex if it can be. */
+ virtual TVertex * castToTVertex(){
+ if(_t2d == 0)
+ return __A->castToTVertex();
+ else if(_t2d == 1)
+ return __B->castToTVertex();
+ return Interface0D::castToTVertex();
+ }
+public:
+ typedef SVertex vertex_type;
+protected:
+ SVertex *__A;
+ SVertex *__B;
+ float _t2d;
+ //float _t3d;
+ Vec3r _Point2d;
+ Vec3r _Point3d;
+public:
+ /*! Defult Constructor. */
+ CurvePoint();
+ /*! Builds a CurvePoint from two SVertex and an interpolation
+ * parameter.
+ * \param iA
+ * The first SVertex
+ * \param iB
+ * The second SVertex
+ * \param t2d
+ * A 2D interpolation parameter
+ * used to linearly interpolate \a iA and \a iB
+ */
+ CurvePoint(SVertex *iA, SVertex *iB, float t2d) ;
+ /*! Builds a CurvePoint from two CurvePoint and an interpolation parameter.
+ * \param iA
+ * The first CurvePoint
+ * \param iB
+ * The second CurvePoint
+ * \param t2d
+ * The 2D interpolation parameter used
+ * to linearly interpolate \a iA and \a iB.
+ */
+ CurvePoint(CurvePoint *iA, CurvePoint *iB, float t2d) ;
+ // CurvePoint(SVertex *iA, SVertex *iB, float t2d, float t3d) ;
+ /*! Copy Constructor. */
+ CurvePoint(const CurvePoint& iBrother) ;
+ /*! Operator = */
+ CurvePoint& operator=(const CurvePoint& iBrother) ;
+ /*! Destructor */
+ virtual ~CurvePoint() {}
+ /*! Operator == */
+ bool operator==(const CurvePoint& b){
+ return ((__A==b.__A) && (__B==b.__B) && (_t2d==b._t2d));
+ }
+
+ /* accessors */
+ /*! Returns the first SVertex upon which
+ * the CurvePoint is built. */
+ inline SVertex * A() {return __A;}
+ /*! Returns the second SVertex upon which
+ * the CurvePoint is built. */
+ inline SVertex * B() {return __B;}
+ /*! Returns the interpolation parameter. */
+ inline float t2d() const {return _t2d;}
+ //inline const float t3d() const {return _t3d;}
+
+ /* modifiers */
+ /*! Sets the first SVertex upon which to build
+ * the CurvePoint.
+ */
+ inline void SetA(SVertex *iA) {__A = iA;}
+ /*! Sets the second SVertex upon which to build
+ * the CurvePoint.
+ */
+ inline void SetB(SVertex *iB) {__B = iB;}
+ /*! Sets the 2D interpolation parameter to use.
+ */
+ inline void SetT2d(float t) {_t2d = t;}
+ //inline void SetT3d(float t) {_t3d = t;}
+
+ /* Information access interface */
+
+ FEdge *fedge() ;
+ inline const Vec3r& point2d() const {return _Point2d;}
+ inline const Vec3r& point3d() const {return _Point3d;}
+ Vec3r normal() const ;
+ //Material material() const ;
+ // Id shape_id() const ;
+ const SShape * shape() const ;
+ // float shape_importance() const ;
+
+ //const unsigned qi() const ;
+ occluder_container::const_iterator occluders_begin() const ;
+ occluder_container::const_iterator occluders_end() const ;
+ bool occluders_empty() const ;
+ int occluders_size() const ;
+ const Polygon3r& occludee() const ;
+ const SShape * occluded_shape() const ;
+ const bool occludee_empty() const ;
+ real z_discontinuity() const ;
+ // float local_average_depth() const ;
+ // float local_depth_variance() const ;
+ // real local_average_density(float sigma = 2.3f) const ;
+ // Vec3r shaded_color() const ;
+// Vec3r orientation2d() const ;
+// Vec3r orientation3d() const ;
+ // // real curvature2d() const {return viewedge()->curvature2d((_VertexA->point2d()+_VertexB->point2d())/2.0);}
+ // Vec3r curvature2d_as_vector() const ;
+ // /*! angle in radians */
+ // real curvature2d_as_angle() const ;
+
+ real curvatureFredo () const;
+ Vec2d directionFredo () const;
+};
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* Curve */
+ /* */
+ /* */
+ /**********************************/
+
+namespace CurveInternal {
+ class CurvePoint_const_traits;
+ class CurvePoint_nonconst_traits;
+ template<class Traits> class __point_iterator;
+ class CurvePointIterator;
+} // end of namespace CurveInternal
+
+/*! Base class for curves made of CurvePoints.
+ * SVertex is the type of the initial curve vertices.
+ * A Chain is a specialization of a Curve.
+ */
+class LIB_STROKE_EXPORT Curve : public Interface1D
+{
+public:
+ typedef CurvePoint Vertex;
+ typedef CurvePoint Point;
+ typedef Point point_type;
+ typedef Vertex vertex_type;
+ typedef deque<Vertex*> vertex_container;
+
+ /* Iterator to iterate over a vertex edges */
+
+ typedef CurveInternal::__point_iterator<CurveInternal::CurvePoint_nonconst_traits > point_iterator;
+ typedef CurveInternal::__point_iterator<CurveInternal::CurvePoint_const_traits > const_point_iterator;
+ typedef point_iterator vertex_iterator ;
+ typedef const_point_iterator const_vertex_iterator ;
+
+protected:
+ vertex_container _Vertices;
+ double _Length;
+ Id _Id;
+ unsigned _nSegments; // number of segments
+
+public:
+ /*! Default Constructor. */
+ Curve() {_Length = 0;_Id = 0;_nSegments=0;}
+ /*! Builds a Curve from its id */
+ Curve(const Id& id) {_Length = 0;_Id = id;_nSegments=0;}
+ /*! Copy Constructor. */
+ Curve(const Curve& iBrother) {_Length = iBrother._Length;_Vertices = iBrother._Vertices;_Id=iBrother._Id;_nSegments=0;}
+ /*! Destructor. */
+ virtual ~Curve() ;
+
+ /*
+ fredo's curvature storage
+ */
+ void computeCurvatureAndOrientation ();
+
+ /*! Adds a single vertex (CurvePoint) at the end of the Curve */
+ inline void push_vertex_back(Vertex *iVertex)
+ {
+ if(!_Vertices.empty())
+ {
+ Vec3r vec_tmp(iVertex->point2d() - _Vertices.back()->point2d());
+ _Length += vec_tmp.norm();
+ ++_nSegments;
+ }
+ Vertex * new_vertex = new Vertex(*iVertex);
+ _Vertices.push_back(new_vertex);
+ }
+ /*! Adds a single vertex (SVertex) at the end of the Curve */
+ inline void push_vertex_back(SVertex *iVertex)
+ {
+ if(!_Vertices.empty())
+ {
+ Vec3r vec_tmp(iVertex->point2d() - _Vertices.back()->point2d());
+ _Length += vec_tmp.norm();
+ ++_nSegments;
+ }
+ Vertex *new_vertex = new Vertex(iVertex, 0,0);
+ _Vertices.push_back(new_vertex);
+ }
+ /*! Adds a single vertex (CurvePoint) at the front of the Curve */
+ inline void push_vertex_front(Vertex *iVertex)
+ {
+ if(!_Vertices.empty())
+ {
+ Vec3r vec_tmp(iVertex->point2d() - _Vertices.front()->point2d());
+ _Length += vec_tmp.norm();
+ ++_nSegments;
+ }
+ Vertex * new_vertex = new Vertex(*iVertex);
+ _Vertices.push_front(new_vertex);
+ }
+ /*! Adds a single vertex (SVertex) at the front of the Curve */
+ inline void push_vertex_front(SVertex *iVertex)
+ {
+ if(!_Vertices.empty())
+ {
+ Vec3r vec_tmp(iVertex->point2d() - _Vertices.front()->point2d());
+ _Length += vec_tmp.norm();
+ ++_nSegments;
+ }
+ Vertex *new_vertex = new Vertex(iVertex, 0,0);
+ _Vertices.push_front(new_vertex);
+ }
+ /*! Returns true is the Curve doesn't have any Vertex yet. */
+ inline bool empty() const {return _Vertices.empty();}
+ /*! Returns the 2D length of the Curve.*/
+ inline real getLength2D() const {return _Length;}
+ /*! Returns the Id of the 1D element .*/
+ virtual Id getId() const {
+ return _Id;
+ }
+ /*! Returns the number of segments in the
+ * oplyline constituing the Curve.
+ */
+ inline unsigned int nSegments() const {return _nSegments;}
+
+ inline void setId(const Id& id){_Id = id;}
+ /* Information access interface */
+
+
+ //inline Vec3r shaded_color(int iCombination = 0) const ;
+ // inline Vec3r orientation2d(point_iterator it) const ;
+ //Vec3r orientation2d(int iCombination = 0) const ;
+ // Vec3r orientation3d(point_iterator it) const ;
+ //Vec3r orientation3d(int iCombination = 0) const ;
+ // real curvature2d(point_iterator it) const {return (*it)->curvature2d();}
+ // real curvature2d(int iCombination = 0) const ;
+ //Material material() const ;
+ //int qi() const ;
+ // occluder_container::const_iterator occluders_begin() const ;
+ // occluder_container::const_iterator occluders_end() const ;
+ //int occluders_size() const;
+ //bool occluders_empty() const ;
+ // const Polygon3r& occludee() const {return *(_FEdgeA->aFace());}
+ //const SShape * occluded_shape() const;
+ //const bool occludee_empty() const ;
+ //real z_discontinuity(int iCombination = 0) const ;
+ // int shape_id() const ;
+ //const SShape * shape() const ;
+ //float shape_importance(int iCombination=0) const ;
+ //float local_average_depth(int iCombination = 0) const;
+ //float local_depth_variance(int iCombination = 0) const ;
+ //real local_average_density(float sigma = 2.3f, int iCombination = 0) const ;
+ //Vec3r curvature2d_as_vector(int iCombination=0) const ;
+ /*! angle in radians */
+ //real curvature2d_as_angle(int iCombination=0) const ;
+
+ /* advanced iterators access */
+ point_iterator points_begin(float step = 0);
+ const_point_iterator points_begin(float step = 0) const;
+ point_iterator points_end(float step = 0);
+ const_point_iterator points_end(float step = 0) const;
+
+ // methods given for convenience */
+ point_iterator vertices_begin();
+ const_point_iterator vertices_begin() const;
+ point_iterator vertices_end();
+ const_point_iterator vertices_end() const;
+
+ // specialized iterators access
+ CurveInternal::CurvePointIterator curvePointsBegin(float t=0.f);
+ CurveInternal::CurvePointIterator curvePointsEnd(float t=0.f);
+
+ CurveInternal::CurvePointIterator curveVerticesBegin();
+ CurveInternal::CurvePointIterator curveVerticesEnd();
+
+ // Iterators access
+ /*! Returns an Interface0DIterator pointing onto
+ * the first vertex of the Curve and that can iterate
+ * over the \a vertices of the Curve.
+ */
+ virtual Interface0DIterator verticesBegin();
+ /*! Returns an Interface0DIterator pointing after
+ * the last vertex of the Curve and that can iterate
+ * over the \a vertices of the Curve.
+ */
+ virtual Interface0DIterator verticesEnd();
+ /*! Returns an Interface0DIterator pointing onto
+ * the first point of the Curve and that can iterate
+ * over the \a points of the Curve at any resolution.
+ * At each iteration a virtual temporary CurvePoint
+ * is created.
+ */
+ virtual Interface0DIterator pointsBegin(float t=0.f);
+ /*! Returns an Interface0DIterator pointing after
+ * the last point of the Curve and that can iterate
+ * over the \a points of the Curve at any resolution.
+ * At each iteration a virtual temporary CurvePoint
+ * is created.
+ */
+ virtual Interface0DIterator pointsEnd(float t=0.f);
+};
+
+
+
+#endif
diff --git a/source/blender/freestyle/intern/stroke/CurveAdvancedIterators.h b/source/blender/freestyle/intern/stroke/CurveAdvancedIterators.h
new file mode 100755
index 00000000000..dfc9f2719f8
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/CurveAdvancedIterators.h
@@ -0,0 +1,378 @@
+//
+// Filename : CurveAdvancedIterators.h
+// Author(s) : Stephane Grabli
+// Purpose : Iterators used to iterate over the elements of the Curve
+// Can't be used in python
+// Date of creation : 01/08/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ADVANCEDCURVEITERATORS_H
+# define ADVANCEDCURVEITERATORS_H
+
+# include "Stroke.h"
+
+namespace CurveInternal {
+
+ class CurvePoint_const_traits : public Const_traits<CurvePoint*> {
+ public:
+ typedef deque<CurvePoint*> vertex_container;
+ typedef vertex_container::const_iterator vertex_container_iterator;
+ typedef SVertex vertex_type;
+ };
+
+ class CurvePoint_nonconst_traits : public Nonconst_traits<CurvePoint*> {
+ public:
+ typedef deque<CurvePoint*> vertex_container;
+ typedef vertex_container::iterator vertex_container_iterator ;
+ typedef SVertex vertex_type;
+ };
+
+ /**********************************/
+ /* */
+ /* */
+ /* CurvePoint Iterator */
+ /* */
+ /* */
+ /**********************************/
+
+
+ /*! iterator on a curve. Allows an iterating outside
+ * initial vertices. A CurvePoint is instanciated an returned
+ * when the iterator is dereferenced.
+ */
+
+ template<class Traits>
+ class __point_iterator : public IteratorBase<Traits, BidirectionalIteratorTag_Traits>
+ {
+ public:
+ typedef __point_iterator <Traits> Self;
+ typedef typename Traits::vertex_container_iterator vertex_container_iterator;
+ typedef typename Traits::vertex_type vertex_type;
+ typedef CurvePoint Point;
+ typedef Point point_type;
+
+ typedef __point_iterator<CurvePoint_nonconst_traits > iterator;
+ typedef __point_iterator<CurvePoint_const_traits > const_iterator;
+
+ // public:
+ // typedef Vertex vertex_type ;
+ // typedef vertex_container_iterator vertex_iterator_type;
+ // typedef CurvePoint<Vertex> Point;
+ // typedef Point point_type;
+ typedef IteratorBase<Traits,BidirectionalIteratorTag_Traits> parent_class;
+ //# if defined(__GNUC__) && (__GNUC__ < 3)
+ // typedef bidirectional_iterator<CurvePoint<Vertex>,ptrdiff_t> bidirectional_point_iterator;
+ //# else
+ // typedef iterator<bidirectional_iterator_tag, CurvePoint<Vertex>,ptrdiff_t> bidirectional_point_iterator;
+ //# endif
+ friend class Curve;
+ //friend class Curve::vertex_iterator;
+ //friend class __point_iterator<CurvePoint_nonconst_traits >;
+ //friend class iterator;
+ //protected:
+ public:
+ float _CurvilinearLength;
+ float _step;
+ vertex_container_iterator __A;
+ vertex_container_iterator __B;
+ vertex_container_iterator _begin;
+ vertex_container_iterator _end;
+ int _n;
+ int _currentn;
+ float _t;
+ mutable Point *_Point;
+
+ public:
+
+ public:
+ inline __point_iterator(float step = 0.f)
+ : parent_class()
+ {
+ _step = step;
+ _CurvilinearLength = 0.f;
+ _t = 0.f;
+ _Point = 0;
+ _n = 0;
+ _currentn = 0;
+ }
+
+ inline __point_iterator(const iterator& iBrother)
+ : parent_class()
+ {
+ __A = iBrother.__A;
+ __B = iBrother.__B;
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ _CurvilinearLength = iBrother._CurvilinearLength;
+ _step = iBrother._step;
+ _t = iBrother._t;
+ if(iBrother._Point == 0)
+ _Point = 0;
+ else
+ _Point = new Point(*(iBrother._Point));
+ _n = iBrother._n;
+ _currentn = iBrother._currentn;
+ }
+ inline __point_iterator(const const_iterator& iBrother)
+ : parent_class()
+ {
+ __A = iBrother.__A;
+ __B = iBrother.__B;
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ _CurvilinearLength = iBrother._CurvilinearLength;
+ _step = iBrother._step;
+ _t = iBrother._t;
+ if(iBrother._Point == 0)
+ _Point = 0;
+ else
+ _Point = new Point(*(iBrother._Point));
+ _n = iBrother._n;
+ _currentn = iBrother._currentn;
+ }
+ inline Self& operator=(const Self& iBrother)
+ {
+ //((bidirectional_point_iterator*)this)->operator=(iBrother);
+ __A = iBrother.__A;
+ __B = iBrother.__B;
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ _CurvilinearLength = iBrother._CurvilinearLength;
+ _step = iBrother._step;
+ _t = iBrother._t;
+ if(iBrother._Point == 0)
+ _Point = 0;
+ else
+ _Point = new Point(*(iBrother._Point));
+ _n = iBrother._n;
+ _currentn = iBrother._currentn;
+ return *this;
+ }
+ virtual ~__point_iterator()
+ {
+ if(_Point != 0)
+ delete _Point;
+ }
+ //protected://FIXME
+ public:
+ inline __point_iterator(vertex_container_iterator iA,
+ vertex_container_iterator iB,
+ vertex_container_iterator ibegin,
+ vertex_container_iterator iend,
+ int currentn,
+ int n,
+ float step, float t=0.f, float iCurvilinearLength = 0.f)
+ : parent_class()
+ {
+ __A = iA;
+ __B = iB;
+ _begin = ibegin;
+ _end = iend;
+ _CurvilinearLength = iCurvilinearLength;
+ _step = step;
+ _t = t;
+ _Point = 0;
+ _n = n;
+ _currentn = currentn;
+ }
+
+ public:
+
+ // operators
+ inline Self& operator++() // operator corresponding to ++i
+ {
+ increment();
+ return *this;
+ }
+ inline Self operator++(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ increment(); // dans un temporaire.
+ return tmp;
+ }
+ inline Self& operator--() // operator corresponding to ++i
+ {
+ decrement();
+ return *this;
+ }
+ inline Self operator--(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ decrement(); // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const Self& b) const
+ {
+ return ((__A!=b.__A) || (__B!=b.__B) || (_t != b._t));
+ }
+ virtual bool operator==(const Self& b) const
+ {
+ return !(*this != b);
+ }
+
+ // dereferencing
+ virtual typename Traits::reference operator*() const
+ {
+ if(_Point != 0)
+ {
+ delete _Point;
+ _Point = 0;
+ }
+ if((_currentn < 0) || (_currentn >= _n))
+ return _Point; // 0 in this case
+ return (_Point = new Point(*__A,*__B,_t));
+ }
+ virtual typename Traits::pointer operator->() const { return &(operator*());}
+
+ public:
+ virtual bool begin() const
+ {
+ if((__A == _begin) && (_t < (float)M_EPSILON))
+ return true;
+ return false;
+ }
+ virtual bool end() const
+ {
+ if((__B == _end))
+ return true;
+ return false;
+ }
+ protected:
+ virtual void increment()
+ {
+ if(_Point != 0)
+ {
+ delete _Point;
+ _Point = 0;
+ }
+ if((_currentn == _n-1) && (_t == 1.f))
+ {
+ // we're setting the iterator to end
+ ++__A;
+ ++__B;
+ ++_currentn;
+ _t = 0.f;
+ return;
+ }
+
+ if(0 == _step) // means we iterate over initial vertices
+ {
+ Vec3r vec_tmp((*__B)->point2d() - (*__A)->point2d());
+ _CurvilinearLength += vec_tmp.norm();
+ if(_currentn == _n-1)
+ {
+ _t = 1.f;
+ return;
+ }
+ ++__B;
+ ++__A;
+ ++_currentn;
+ return;
+ }
+
+ // compute the new position:
+ Vec3r vec_tmp2((*__A)->point2d() - (*__B)->point2d());
+ float normAB = vec_tmp2.norm();
+
+ if(normAB > M_EPSILON)
+ {
+ _CurvilinearLength += _step;
+ _t = _t + _step/normAB;
+ }
+ else
+ _t = 1.f; // AB is a null segment, we're directly at its end
+ //if normAB ~= 0, we don't change these values
+ if(_t >= 1)
+ {
+ _CurvilinearLength -= normAB*(_t-1);
+ if(_currentn == _n-1)
+ _t=1.f;
+ else
+ {
+ _t = 0.f;
+ ++_currentn;
+ ++__A;++__B;
+ }
+ }
+ }
+ virtual void decrement()
+ {
+ if(_Point != 0)
+ {
+ delete _Point;
+ _Point = 0;
+ }
+
+ if(_t == 0.f) //we're at the beginning of the edge
+ {
+ _t = 1.f;
+ --_currentn;
+ --__A; --__B;
+ if(_currentn == _n-1)
+ return;
+ }
+
+ if(0 == _step) // means we iterate over initial vertices
+ {
+ Vec3r vec_tmp((*__B)->point2d() - (*__A)->point2d());
+ _CurvilinearLength -= vec_tmp.norm();
+ _t = 0;
+ return;
+ }
+
+ // compute the new position:
+ Vec3r vec_tmp2((*__A)->point2d() - (*__B)->point2d());
+ float normAB = vec_tmp2.norm();
+
+ if(normAB >M_EPSILON)
+ {
+ _CurvilinearLength -= _step;
+ _t = _t - _step/normAB;
+ }
+ else
+ _t = -1.f; // We just need a negative value here
+
+ // round value
+ if(fabs(_t) < (float)M_EPSILON)
+ _t = 0.0;
+ if(_t < 0)
+ {
+ if(_currentn == 0)
+ _CurvilinearLength = 0.f;
+ else
+ _CurvilinearLength += normAB*(-_t);
+ _t = 0.f;
+ }
+ }
+ };
+
+
+
+} // end of namespace StrokeInternal
+
+
+#endif // ADVANCEDCURVEITERATORS_H
diff --git a/source/blender/freestyle/intern/stroke/CurveIterators.h b/source/blender/freestyle/intern/stroke/CurveIterators.h
new file mode 100755
index 00000000000..92f8bf065f4
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/CurveIterators.h
@@ -0,0 +1,295 @@
+//
+// Filename : CurveIterators.h
+// Author(s) : Stephane Grabli
+// Purpose : Iterators used to iterate over the elements of the Curve
+// Date of creation : 01/08/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef CURVEITERATORS_H
+# define CURVEITERATORS_H
+
+#include "Stroke.h"
+#include "Curve.h"
+
+namespace CurveInternal {
+
+ /*! iterator on a curve. Allows an iterating outside
+ * initial vertices. A CurvePoint is instanciated an returned
+ * when the iterator is dereferenced.
+ */
+
+ class CurvePointIterator : public Interface0DIteratorNested
+ {
+ public:
+ friend class ::Curve;
+ public:
+ float _CurvilinearLength;
+ float _step;
+ ::Curve::vertex_container::iterator __A;
+ ::Curve::vertex_container::iterator __B;
+ ::Curve::vertex_container::iterator _begin;
+ ::Curve::vertex_container::iterator _end;
+ int _n;
+ int _currentn;
+ float _t;
+ mutable CurvePoint _Point;
+ float _CurveLength;
+
+ public:
+
+ public:
+ inline CurvePointIterator(float step = 0.f)
+ : Interface0DIteratorNested()
+ {
+ _step = step;
+ _CurvilinearLength = 0.f;
+ _t = 0.f;
+ //_Point = 0;
+ _n = 0;
+ _currentn = 0;
+ _CurveLength=0;
+ }
+
+ inline CurvePointIterator(const CurvePointIterator& iBrother)
+ : Interface0DIteratorNested()
+ {
+ __A = iBrother.__A;
+ __B = iBrother.__B;
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ _CurvilinearLength = iBrother._CurvilinearLength;
+ _step = iBrother._step;
+ _t = iBrother._t;
+ _Point = iBrother._Point;
+ _n = iBrother._n;
+ _currentn = iBrother._currentn;
+ _CurveLength = iBrother._CurveLength;
+ }
+ inline CurvePointIterator& operator=(const CurvePointIterator& iBrother)
+ {
+ __A = iBrother.__A;
+ __B = iBrother.__B;
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ _CurvilinearLength = iBrother._CurvilinearLength;
+ _step = iBrother._step;
+ _t = iBrother._t;
+ _Point = iBrother._Point;
+ _n = iBrother._n;
+ _currentn = iBrother._currentn;
+ _CurveLength = iBrother._CurveLength;
+ return *this;
+ }
+ virtual ~CurvePointIterator()
+ {
+ }
+ protected:
+ inline CurvePointIterator(::Curve::vertex_container::iterator iA,
+ ::Curve::vertex_container::iterator iB,
+ ::Curve::vertex_container::iterator ibegin,
+ ::Curve::vertex_container::iterator iend,
+ int currentn,
+ int n,
+ float iCurveLength,
+ float step, float t=0.f, float iCurvilinearLength = 0.f)
+ : Interface0DIteratorNested()
+ {
+ __A = iA;
+ __B = iB;
+ _begin = ibegin;
+ _end = iend;
+ _CurvilinearLength = iCurvilinearLength;
+ _step = step;
+ _t = t;
+ _n = n;
+ _currentn = currentn;
+ _CurveLength = iCurveLength;
+ }
+
+ public:
+
+ virtual CurvePointIterator* copy() const {
+ return new CurvePointIterator(*this);
+ }
+
+ inline Interface0DIterator CastToInterface0DIterator() const{
+ Interface0DIterator ret(new CurveInternal::CurvePointIterator(*this));
+ return ret;
+ }
+ virtual string getExactTypeName() const {
+ return "CurvePointIterator";
+ }
+
+ // operators
+ inline CurvePointIterator& operator++() // operator corresponding to ++i
+ {
+ increment();
+ return *this;
+ }
+
+ inline CurvePointIterator& operator--() // operator corresponding to ++i
+ {
+ decrement();
+ return *this;
+ }
+
+ // comparibility
+ virtual bool operator==(const Interface0DIteratorNested& b) const
+ {
+ const CurvePointIterator* it_exact = dynamic_cast<const CurvePointIterator*>(&b);
+ if (!it_exact)
+ return false;
+ return ((__A==it_exact->__A) && (__B==it_exact->__B) && (_t == it_exact->_t));
+ }
+
+ // dereferencing
+ virtual CurvePoint& operator*()
+ {
+ return (_Point = CurvePoint(*__A,*__B,_t));
+ }
+ virtual CurvePoint* operator->() { return &(operator*());}
+ public:
+ virtual bool isBegin() const
+ {
+ if((__A == _begin) && (_t < (float)M_EPSILON))
+ return true;
+ return false;
+ }
+ virtual bool isEnd() const
+ {
+ if(__B == _end)
+ return true;
+ return false;
+ }
+ protected:
+ virtual void increment()
+ {
+ if((_currentn == _n-1) && (_t == 1.f))
+ {
+ // we're setting the iterator to end
+ ++__A;
+ ++__B;
+ ++_currentn;
+ _t = 0.f;
+ return;
+ }
+
+ if(0 == _step) // means we iterate over initial vertices
+ {
+ Vec3r vec_tmp((*__B)->point2d() - (*__A)->point2d());
+ _CurvilinearLength += (float)vec_tmp.norm();
+ if(_currentn == _n-1)
+ {
+ _t = 1.f;
+ return;
+ }
+ ++__B;
+ ++__A;
+ ++_currentn;
+ return;
+ }
+
+ // compute the new position:
+ Vec3r vec_tmp2((*__A)->point2d() - (*__B)->point2d());
+ float normAB = (float)vec_tmp2.norm();
+
+ if(normAB > M_EPSILON)
+ {
+ _CurvilinearLength += _step;
+ _t = _t + _step/normAB;
+ }
+ else
+ _t = 1.f; // AB is a null segment, we're directly at its end
+ //if normAB ~= 0, we don't change these values
+ if(_t >= 1)
+ {
+ _CurvilinearLength -= normAB*(_t-1);
+ if(_currentn == _n-1)
+ _t=1.f;
+ else
+ {
+ _t = 0.f;
+ ++_currentn;
+ ++__A;++__B;
+ }
+ }
+ }
+ virtual void decrement()
+ {
+ if(_t == 0.f) //we're at the beginning of the edge
+ {
+ _t = 1.f;
+ --_currentn;
+ --__A; --__B;
+ if(_currentn == _n-1)
+ return;
+ }
+
+ if(0 == _step) // means we iterate over initial vertices
+ {
+ Vec3r vec_tmp((*__B)->point2d() - (*__A)->point2d());
+ _CurvilinearLength -= (float)vec_tmp.norm();
+ _t = 0;
+ return;
+ }
+
+ // compute the new position:
+ Vec3r vec_tmp2((*__A)->point2d() - (*__B)->point2d());
+ float normAB = (float)vec_tmp2.norm();
+
+ if(normAB >M_EPSILON)
+ {
+ _CurvilinearLength -= _step;
+ _t = _t - _step/normAB;
+ }
+ else
+ _t = -1.f; // We just need a negative value here
+
+ // round value
+ if(fabs(_t) < (float)M_EPSILON)
+ _t = 0.0;
+ if(_t < 0)
+ {
+ if(_currentn == 0)
+ _CurvilinearLength = 0.f;
+ else
+ _CurvilinearLength += normAB*(-_t);
+ _t = 0.f;
+ }
+ }
+
+ virtual float t() const{
+ return _CurvilinearLength;
+ }
+ virtual float u() const{
+ return _CurvilinearLength/_CurveLength;
+ }
+ };
+
+
+
+} // end of namespace StrokeInternal
+
+#endif // CURVEITERATORS_H
diff --git a/source/blender/freestyle/intern/stroke/Modifiers.h b/source/blender/freestyle/intern/stroke/Modifiers.h
new file mode 100755
index 00000000000..c3be65ffc89
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Modifiers.h
@@ -0,0 +1,71 @@
+//
+// Filename : Modifiers.h
+// Author : Stephane Grabli
+// Purpose : modifiers...
+// Date of creation : 05/01/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef MODIFIERS_H
+# define MODIFIERS_H
+
+# include "TimeStamp.h"
+
+/* ----------------------------------------- *
+ * *
+ * modifiers *
+ * *
+ * ----------------------------------------- */
+/*! Base class for modifiers.
+ * Modifiers are used in the
+ * Operators in order to "mark"
+ * the processed Interface1D.
+ */
+template<class Edge>
+struct EdgeModifier : public unary_function<Edge,void>
+{
+ /*! Default construction */
+ EdgeModifier() : unary_function<Edge,void>() {}
+ /*! the () operator */
+ virtual void operator()(Edge& iEdge) {}
+};
+
+/*! Modifier that sets the time stamp
+ * of an Interface1D to the time stamp
+ * of the system.
+ */
+template<class Edge>
+struct TimestampModifier : public EdgeModifier<Edge>
+{
+ /*! Default constructor */
+ TimestampModifier() : EdgeModifier<Edge>() {}
+ /*! The () operator. */
+ virtual void operator()(Edge& iEdge)
+ {
+ TimeStamp *timestamp = TimeStamp::instance();
+ iEdge.SetTimeStamp(timestamp->getTimeStamp());
+ }
+};
+
+#endif // MODIFIERS_H
diff --git a/source/blender/freestyle/intern/stroke/Module.h b/source/blender/freestyle/intern/stroke/Module.h
new file mode 100755
index 00000000000..591bb157392
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Module.h
@@ -0,0 +1,72 @@
+//
+// Filename : Module.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Set the type of the module
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef MODULE_H
+# define MODULE_H
+
+# include "Canvas.h"
+# include "StyleModule.h"
+
+class Module
+{
+public:
+
+ static void setAlwaysRefresh(bool b = true) {
+ getCurrentStyleModule()->setAlwaysRefresh(b);
+ }
+
+ static void setCausal(bool b = true) {
+ getCurrentStyleModule()->setCausal(b);
+ }
+
+ static void setDrawable(bool b = true) {
+ getCurrentStyleModule()->setDrawable(b);
+ }
+
+ static bool getAlwaysRefresh() {
+ return getCurrentStyleModule()->getAlwaysRefresh();
+ }
+
+ static bool getCausal() {
+ return getCurrentStyleModule()->getCausal();
+ }
+
+ static bool getDrawable() {
+ return getCurrentStyleModule()->getDrawable();
+ }
+
+private:
+
+ static StyleModule* getCurrentStyleModule() {
+ Canvas* canvas = Canvas::getInstance();
+ return canvas->getCurrentStyleModule();
+ }
+};
+
+#endif // MODULE_H
diff --git a/source/blender/freestyle/intern/stroke/Operators.cpp b/source/blender/freestyle/intern/stroke/Operators.cpp
new file mode 100755
index 00000000000..121dee3ba26
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Operators.cpp
@@ -0,0 +1,862 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <algorithm>
+#include "Operators.h"
+#include "Canvas.h"
+#include "Stroke.h"
+
+LIB_STROKE_EXPORT Operators::I1DContainer Operators::_current_view_edges_set;
+LIB_STROKE_EXPORT Operators::I1DContainer Operators::_current_chains_set;
+LIB_STROKE_EXPORT Operators::I1DContainer* Operators::_current_set = NULL;
+LIB_STROKE_EXPORT Operators::StrokesContainer Operators::_current_strokes_set;
+
+void Operators::select(UnaryPredicate1D& pred) {
+ if (!_current_set)
+ return;
+ if(_current_set->empty())
+ return;
+ I1DContainer new_set;
+ I1DContainer rejected;
+ Functions1D::ChainingTimeStampF1D cts;
+ Functions1D::TimeStampF1D ts;
+ I1DContainer::iterator it = _current_set->begin();
+ I1DContainer::iterator itbegin = it;
+ while (it != _current_set->end()) {
+ Interface1D * i1d = *it;
+ cts(*i1d); // mark everyone's chaining time stamp anyway
+ if (pred(*i1d)){
+ new_set.push_back(i1d);
+ ts(*i1d);
+ }else{
+ rejected.push_back(i1d);
+ }
+ ++it;
+ }
+ if((*itbegin)->getExactTypeName() != "ViewEdge"){
+ for (it = rejected.begin();
+ it != rejected.end();
+ ++it)
+ delete *it;
+ }
+ rejected.clear();
+ _current_set->clear();
+ *_current_set = new_set;
+}
+
+
+void Operators::chain(ViewEdgeInternal::ViewEdgeIterator& it,
+ UnaryPredicate1D& pred,
+ UnaryFunction1D<void>& modifier) {
+ if (_current_view_edges_set.empty())
+ return;
+
+ unsigned id = 0;
+ ViewEdge* edge;
+ Chain* new_chain;
+
+ for (I1DContainer::iterator it_edge = _current_view_edges_set.begin();
+ it_edge != _current_view_edges_set.end();
+ ++it_edge) {
+ if (pred(**it_edge))
+ continue;
+
+ edge = dynamic_cast<ViewEdge*>(*it_edge);
+ it.setBegin(edge);
+ it.setCurrentEdge(edge);
+
+ Chain* new_chain = new Chain(id);++id;
+ do {
+ new_chain->push_viewedge_back(*it, it.getOrientation());
+ modifier(**it);
+ ++it;
+ } while (!it.isEnd() && !pred(**it));
+
+ _current_chains_set.push_back(new_chain);
+ }
+
+ if (!_current_chains_set.empty())
+ _current_set = &_current_chains_set;
+}
+
+
+void Operators::chain(ViewEdgeInternal::ViewEdgeIterator& it,
+ UnaryPredicate1D& pred) {
+ if (_current_view_edges_set.empty())
+ return;
+
+ unsigned id = 0;
+ Functions1D::IncrementChainingTimeStampF1D ts;
+ Predicates1D::EqualToChainingTimeStampUP1D pred_ts(TimeStamp::instance()->getTimeStamp()+1);
+
+ ViewEdge* edge;
+ Chain* new_chain;
+
+ for (I1DContainer::iterator it_edge = _current_view_edges_set.begin();
+ it_edge != _current_view_edges_set.end();
+ ++it_edge) {
+ if (pred(**it_edge) || pred_ts(**it_edge))
+ continue;
+
+ edge = dynamic_cast<ViewEdge*>(*it_edge);
+ it.setBegin(edge);
+ it.setCurrentEdge(edge);
+
+ Chain* new_chain = new Chain(id);++id;
+ do {
+ new_chain->push_viewedge_back(*it, it.getOrientation());
+ ts(**it);
+ ++it;
+ } while (!it.isEnd() && !pred(**it) && !pred_ts(**it));
+
+ _current_chains_set.push_back(new_chain);
+ }
+
+ if (!_current_chains_set.empty())
+ _current_set = &_current_chains_set;
+}
+
+
+//void Operators::bidirectionalChain(ViewEdgeIterator& it,
+// UnaryPredicate1D& pred,
+// UnaryFunction1D<void>& modifier) {
+// if (_current_view_edges_set.empty())
+// return;
+//
+// unsigned id = 0;
+// ViewEdge* edge;
+// Chain* new_chain;
+//
+// for (I1DContainer::iterator it_edge = _current_view_edges_set.begin();
+// it_edge != _current_view_edges_set.end();
+// ++it_edge) {
+// if (pred(**it_edge))
+// continue;
+//
+// edge = dynamic_cast<ViewEdge*>(*it_edge);
+// it.setBegin(edge);
+// it.setCurrentEdge(edge);
+//
+// Chain* new_chain = new Chain(id);++id;
+// //ViewEdgeIterator it_back(it);--it_back; // FIXME
+// do {
+// new_chain->push_viewedge_back(*it, it.getOrientation());
+// modifier(**it);
+// ++it;
+// } while (!it.isEnd() && !pred(**it));
+// it.setBegin(edge);
+// it.setCurrentEdge(edge);
+// --it;
+// while (!it.isEnd() && !pred(**it)) {
+// new_chain->push_viewedge_front(*it, it.getOrientation());
+// modifier(**it);
+// --it;
+// }
+//
+// _current_chains_set.push_back(new_chain);
+// }
+//
+// if (!_current_chains_set.empty())
+// _current_set = &_current_chains_set;
+//}
+//
+//void Operators::bidirectionalChain(ViewEdgeIterator& it,
+// UnaryPredicate1D& pred) {
+// if (_current_view_edges_set.empty())
+// return;
+//
+// unsigned id = 0;
+// Functions1D::IncrementChainingTimeStampF1D ts;
+// Predicates1D::EqualToChainingTimeStampUP1D pred_ts(TimeStamp::instance()->getTimeStamp()+1);
+//
+// ViewEdge* edge;
+// Chain* new_chain;
+//
+// for (I1DContainer::iterator it_edge = _current_view_edges_set.begin();
+// it_edge != _current_view_edges_set.end();
+// ++it_edge) {
+// if (pred(**it_edge) || pred_ts(**it_edge))
+// continue;
+//
+// edge = dynamic_cast<ViewEdge*>(*it_edge);
+// it.setBegin(edge);
+// it.setCurrentEdge(edge);
+ //
+ // Chain* new_chain = new Chain(id);++id;
+ // //ViewEdgeIterator it_back(it);--it_back;//FIXME
+ // do {
+ // new_chain->push_viewedge_back(*it, it.getOrientation());
+ // ts(**it);
+ // ++it;
+ // } while (!it.isEnd() && !pred(**it) && !pred_ts(**it));
+ // it.setBegin(edge);
+ // it.setCurrentEdge(edge);
+ // --it;
+ // while (!it.isEnd() && !pred(**it) && !pred_ts(**it)) {
+ // new_chain->push_viewedge_front(*it, it.getOrientation());
+ // ts(**it);
+ // --it;
+ // }
+ //
+ // _current_chains_set.push_back(new_chain);
+ // }
+ //
+ // if (!_current_chains_set.empty())
+ // _current_set = &_current_chains_set;
+ //}
+
+void Operators::bidirectionalChain(ChainingIterator& it, UnaryPredicate1D& pred) {
+ if (_current_view_edges_set.empty())
+ return;
+
+ unsigned id = 0;
+ Functions1D::IncrementChainingTimeStampF1D ts;
+ Predicates1D::EqualToChainingTimeStampUP1D pred_ts(TimeStamp::instance()->getTimeStamp()+1);
+
+ ViewEdge* edge;
+ Chain* new_chain;
+
+ for (I1DContainer::iterator it_edge = _current_view_edges_set.begin();
+ it_edge != _current_view_edges_set.end();
+ ++it_edge) {
+ if (pred(**it_edge) || pred_ts(**it_edge))
+ continue;
+
+ edge = dynamic_cast<ViewEdge*>(*it_edge);
+ // re-init iterator
+ it.setBegin(edge);
+ it.setCurrentEdge(edge);
+ it.setOrientation(true);
+ it.init();
+
+ Chain* new_chain = new Chain(id);++id;
+ //ViewEdgeIterator it_back(it);--it_back;//FIXME
+ do {
+ new_chain->push_viewedge_back(*it, it.getOrientation());
+ ts(**it);
+ it.increment(); // FIXME
+ } while (!it.isEnd() && !pred(**it));
+ it.setBegin(edge);
+ it.setCurrentEdge(edge);
+ it.setOrientation(true);
+ it.decrement(); // FIXME
+ while (!it.isEnd() && !pred(**it)) {
+ new_chain->push_viewedge_front(*it, it.getOrientation());
+ ts(**it);
+ it.decrement();// FIXME
+ }
+ _current_chains_set.push_back(new_chain);
+ }
+
+ if (!_current_chains_set.empty())
+ _current_set = &_current_chains_set;
+}
+
+void Operators::bidirectionalChain(ChainingIterator& it) {
+ if (_current_view_edges_set.empty())
+ return;
+
+ unsigned id = 0;
+ Functions1D::IncrementChainingTimeStampF1D ts;
+ Predicates1D::EqualToChainingTimeStampUP1D pred_ts(TimeStamp::instance()->getTimeStamp()+1);
+
+ ViewEdge* edge;
+ Chain* new_chain;
+
+ for (I1DContainer::iterator it_edge = _current_view_edges_set.begin();
+ it_edge != _current_view_edges_set.end();
+ ++it_edge) {
+ if (pred_ts(**it_edge))
+ continue;
+
+ edge = dynamic_cast<ViewEdge*>(*it_edge);
+ // re-init iterator
+ it.setBegin(edge);
+ it.setCurrentEdge(edge);
+ it.setOrientation(true);
+ it.init();
+
+ Chain* new_chain = new Chain(id);++id;
+ //ViewEdgeIterator it_back(it);--it_back;//FIXME
+ do {
+ new_chain->push_viewedge_back(*it, it.getOrientation());
+ ts(**it);
+ it.increment(); // FIXME
+ } while (!it.isEnd());
+ it.setBegin(edge);
+ it.setCurrentEdge(edge);
+ it.setOrientation(true);
+ it.decrement(); // FIXME
+ while (!it.isEnd()) {
+ new_chain->push_viewedge_front(*it, it.getOrientation());
+ ts(**it);
+ it.decrement();// FIXME
+ }
+ _current_chains_set.push_back(new_chain);
+ }
+
+ if (!_current_chains_set.empty())
+ _current_set = &_current_chains_set;
+}
+
+void Operators::sequentialSplit(UnaryPredicate0D& pred,
+ float sampling)
+{
+ if (_current_chains_set.empty()) {
+ cerr << "Warning: current set empty" << endl;
+ return;
+ }
+ CurvePoint *point;
+ Chain * new_curve;
+ I1DContainer splitted_chains;
+ Interface0DIterator first;
+ Interface0DIterator end;
+ Interface0DIterator last;
+ Interface0DIterator it;
+ I1DContainer::iterator cit = _current_chains_set.begin(), citend = _current_chains_set.end();
+ for (;
+ cit != citend;
+ ++cit) {
+
+ Id currentId = (*cit)->getId();
+ new_curve = new Chain(currentId);
+ first = (*cit)->pointsBegin(sampling);
+ end = (*cit)->pointsEnd(sampling);
+ last = end;--last;
+ it = first;
+
+ point = dynamic_cast<CurvePoint*>(&(*it));
+ new_curve->push_vertex_back(point);++it;
+ for(; it!= end; ++it)
+ {
+ point = dynamic_cast<CurvePoint*>(&(*it));
+ new_curve->push_vertex_back(point);
+ if((pred(it)) && (it!=last))
+ {
+ splitted_chains.push_back(new_curve);
+ currentId.setSecond(currentId.getSecond()+1);
+ new_curve = new Chain(currentId);
+ new_curve->push_vertex_back(point);
+ }
+ }
+ if(new_curve->nSegments() == 0){
+ delete new_curve;
+ return;
+ }
+
+ splitted_chains.push_back(new_curve);
+ }
+
+ // Update the current set of chains:
+ cit = _current_chains_set.begin();
+ for(;
+ cit != citend;
+ ++cit){
+ delete (*cit);
+ }
+ _current_chains_set.clear();
+ _current_chains_set = splitted_chains;
+ splitted_chains.clear();
+
+ if (!_current_chains_set.empty())
+ _current_set = &_current_chains_set;
+}
+
+void Operators::sequentialSplit(UnaryPredicate0D& startingPred, UnaryPredicate0D& stoppingPred,
+ float sampling)
+{
+ if (_current_chains_set.empty()) {
+ cerr << "Warning: current set empty" << endl;
+ return;
+ }
+ CurvePoint *point;
+ Chain * new_curve;
+ I1DContainer splitted_chains;
+ Interface0DIterator first;
+ Interface0DIterator end;
+ Interface0DIterator last;
+ Interface0DIterator itStart;
+ Interface0DIterator itStop;
+ I1DContainer::iterator cit = _current_chains_set.begin(), citend = _current_chains_set.end();
+ for (;
+ cit != citend;
+ ++cit) {
+ Id currentId = (*cit)->getId();
+ first = (*cit)->pointsBegin(sampling);
+ end = (*cit)->pointsEnd(sampling);
+ last = end;--last;
+ itStart = first;
+ do{
+ itStop = itStart;++itStop;
+
+ new_curve = new Chain(currentId);
+ currentId.setSecond(currentId.getSecond()+1);
+
+ point = dynamic_cast<CurvePoint*>(&(*itStart));
+ new_curve->push_vertex_back(point);
+ do{
+ point = dynamic_cast<CurvePoint*>(&(*itStop));
+ new_curve->push_vertex_back(point);
+ ++itStop;
+ }while((itStop!=end) && (!stoppingPred(itStop)));
+ if(itStop!=end){
+ point = dynamic_cast<CurvePoint*>(&(*itStop));
+ new_curve->push_vertex_back(point);
+ }
+ if(new_curve->nSegments() == 0){
+ delete new_curve;
+ }else{
+ splitted_chains.push_back(new_curve);
+ }
+ // find next start
+ do{
+ ++itStart;
+ }while((itStart!=end) && (!startingPred(itStart)));
+ }while((itStart!=end) && (itStart!=last));
+ }
+
+ // Update the current set of chains:
+ cit = _current_chains_set.begin();
+ for(;
+ cit != citend;
+ ++cit){
+ delete (*cit);
+ }
+ _current_chains_set.clear();
+ _current_chains_set = splitted_chains;
+ splitted_chains.clear();
+
+ if (!_current_chains_set.empty())
+ _current_set = &_current_chains_set;
+}
+
+#include "CurveIterators.h"
+
+// Internal function
+void __recursiveSplit(Chain *_curve, UnaryFunction0D<double>& func, UnaryPredicate1D& pred, float sampling,
+ Operators::I1DContainer& newChains, Operators::I1DContainer& splitted_chains)
+{
+ if(((_curve->nSegments() == 1) && (sampling == 0)) || (_curve->getLength2D() <= sampling)){
+ newChains.push_back(_curve);
+ return;
+ }
+
+ CurveInternal::CurvePointIterator first = _curve->curvePointsBegin(sampling);
+ CurveInternal::CurvePointIterator second = first; ++second;
+ CurveInternal::CurvePointIterator end = _curve->curvePointsEnd(sampling);
+ CurveInternal::CurvePointIterator it = second;
+ CurveInternal::CurvePointIterator split = second;
+ Interface0DIterator it0d = it.CastToInterface0DIterator();
+ real _min = FLT_MAX;++it;//func(it0d);++it;
+ CurveInternal::CurvePointIterator next = it;++next;
+ real tmp;
+
+ bool bsplit = false;
+ for(; ((it != end) && (next != end)); ++it,++next){
+ it0d = it.CastToInterface0DIterator();
+ tmp = func(it0d);
+ if(tmp < _min){
+ _min = tmp;
+ split = it;
+ bsplit = true;
+ }
+ }
+
+ if(!bsplit){ // we didn't find any minimum
+ newChains.push_back(_curve);
+ return;
+ }
+
+ // retrieves the current splitting id
+ Id * newId = _curve->getSplittingId();
+ if(newId == 0){
+ newId = new Id(_curve->getId());
+ _curve->setSplittingId(newId);
+ }
+
+ Chain *new_curve_a = new Chain(*newId);
+ newId->setSecond(newId->getSecond()+1);
+ new_curve_a->setSplittingId(newId);
+ Chain *new_curve_b = new Chain(*newId);
+ newId->setSecond(newId->getSecond()+1);
+ new_curve_b->setSplittingId(newId);
+
+ CurveInternal::CurvePointIterator vit = _curve->curveVerticesBegin(), vitend=_curve->curveVerticesEnd();
+ CurveInternal::CurvePointIterator vnext = vit; ++vnext;
+
+
+ for(; (vit!=vitend)&&(vnext!=vitend)&&(split._CurvilinearLength-vit._CurvilinearLength> 0.001); ++vit,++vnext){
+ new_curve_a->push_vertex_back(&(*vit));
+ }
+ if((vit==vitend) || (vnext == vitend)){
+ cout << "The split takes place in bad location" << endl;
+ newChains.push_back(_curve);
+ delete new_curve_a;
+ delete new_curve_b;
+ return;
+ }
+
+ // build the two resulting chains
+ if(fabs(vit._CurvilinearLength-split._CurvilinearLength) > 0.001){
+ new_curve_a->push_vertex_back(&(*split));
+ new_curve_b->push_vertex_back(&(*split));
+ }
+ else{
+ new_curve_a->push_vertex_back(&(*vit));
+ }
+
+ for(;vit!=vitend;++vit)
+ new_curve_b->push_vertex_back(&(*vit));
+
+ // let's check whether one or two of the two new curves
+ // satisfy the stopping condition or not.
+ // (if one of them satisfies it, we don't split)
+ if((pred(*new_curve_a)) || (pred(*new_curve_b))){
+ // we don't actually create these two chains
+ newChains.push_back(_curve);
+ delete new_curve_a;
+ delete new_curve_b;
+ return;
+ }
+ // here we know we'll split _curve:
+ splitted_chains.push_back(_curve);
+
+ __recursiveSplit(new_curve_a, func, pred, sampling, newChains, splitted_chains);
+ __recursiveSplit(new_curve_b, func, pred, sampling, newChains, splitted_chains);
+}
+
+void Operators::recursiveSplit(UnaryFunction0D<double>& func, UnaryPredicate1D& pred, float sampling)
+{
+ if (_current_chains_set.empty()) {
+ cerr << "Warning: current set empty" << endl;
+ return;
+ }
+
+ Chain *currentChain = 0;
+ I1DContainer splitted_chains;
+ I1DContainer newChains;
+ I1DContainer::iterator cit = _current_chains_set.begin(), citend = _current_chains_set.end();
+ for (;
+ cit != citend;
+ ++cit) {
+ currentChain = dynamic_cast<Chain*>(*cit);
+ if(!currentChain)
+ continue;
+ // let's check the first one:
+ if(!pred(*currentChain)){
+ __recursiveSplit(currentChain, func, pred, sampling, newChains, splitted_chains);
+ }else{
+ newChains.push_back(currentChain);
+ }
+ }
+ // Update the current set of chains:
+ if(!splitted_chains.empty()){
+ for(cit = splitted_chains.begin(), citend = splitted_chains.end();
+ cit != citend;
+ ++cit){
+ delete (*cit);
+ }
+ splitted_chains.clear();
+ }
+
+ _current_chains_set.clear();
+ _current_chains_set = newChains;
+ newChains.clear();
+
+ if (!_current_chains_set.empty())
+ _current_set = &_current_chains_set;
+}
+
+
+// recursive split with pred 0D
+void __recursiveSplit(Chain *_curve, UnaryFunction0D<double>& func, UnaryPredicate0D& pred0d, UnaryPredicate1D& pred, float sampling,
+ Operators::I1DContainer& newChains, Operators::I1DContainer& splitted_chains)
+{
+ if(((_curve->nSegments() == 1) && (sampling == 0)) || (_curve->getLength2D() <= sampling)){
+ newChains.push_back(_curve);
+ return;
+ }
+
+ CurveInternal::CurvePointIterator first = _curve->curvePointsBegin(sampling);
+ CurveInternal::CurvePointIterator second = first; ++second;
+ CurveInternal::CurvePointIterator end = _curve->curvePointsEnd(sampling);
+ CurveInternal::CurvePointIterator it = second;
+ CurveInternal::CurvePointIterator split = second;
+ Interface0DIterator it0d = it.CastToInterface0DIterator();
+ //real _min = func(it0d);++it;
+ real _min = FLT_MAX;++it;
+ real mean = 0.f;
+ real variance = 0.f;
+ unsigned count = 0;
+ CurveInternal::CurvePointIterator next = it;++next;
+ real tmp;
+
+ bool bsplit = false;
+ for(; ((it != end) && (next != end)); ++it,++next){
+ ++count;
+ it0d = it.CastToInterface0DIterator();
+ if(!pred0d(it0d))
+ continue;
+ tmp = func(it0d);
+ mean += tmp;
+ if(tmp < _min){
+ _min = tmp;
+ split = it;
+ bsplit = true;
+ }
+ }
+ mean /= (float)count;
+
+ //if((!bsplit) || (mean-_min>mean)){ // we didn't find any minimum
+ if(!bsplit){ // we didn't find any minimum
+ newChains.push_back(_curve);
+ return;
+ }
+
+ // retrieves the current splitting id
+ Id * newId = _curve->getSplittingId();
+ if(newId == 0){
+ newId = new Id(_curve->getId());
+ _curve->setSplittingId(newId);
+ }
+
+ Chain *new_curve_a = new Chain(*newId);
+ newId->setSecond(newId->getSecond()+1);
+ new_curve_a->setSplittingId(newId);
+ Chain *new_curve_b = new Chain(*newId);
+ newId->setSecond(newId->getSecond()+1);
+ new_curve_b->setSplittingId(newId);
+
+ CurveInternal::CurvePointIterator vit = _curve->curveVerticesBegin(), vitend=_curve->curveVerticesEnd();
+ CurveInternal::CurvePointIterator vnext = vit; ++vnext;
+
+
+ for(; (vit!=vitend)&&(vnext!=vitend)&&(split._CurvilinearLength-vit._CurvilinearLength> 0.001); ++vit,++vnext){
+ new_curve_a->push_vertex_back(&(*vit));
+ }
+ if((vit==vitend) || (vnext == vitend)){
+ cout << "The split takes place in bad location" << endl;
+ newChains.push_back(_curve);
+ delete new_curve_a;
+ delete new_curve_b;
+ return;
+ }
+
+ // build the two resulting chains
+ if(fabs(vit._CurvilinearLength-split._CurvilinearLength) > 0.001){
+ new_curve_a->push_vertex_back(&(*split));
+ new_curve_b->push_vertex_back(&(*split));
+ }
+ else{
+ new_curve_a->push_vertex_back(&(*vit));
+ }
+
+ for(;vit!=vitend;++vit)
+ new_curve_b->push_vertex_back(&(*vit));
+
+ // let's check whether one or two of the two new curves
+ // satisfy the stopping condition or not.
+ // (if one of them satisfies it, we don't split)
+ if((pred(*new_curve_a)) || (pred(*new_curve_b))){
+ // we don't actually create these two chains
+ newChains.push_back(_curve);
+ delete new_curve_a;
+ delete new_curve_b;
+ return;
+ }
+ // here we know we'll split _curve:
+ splitted_chains.push_back(_curve);
+
+ __recursiveSplit(new_curve_a, func, pred0d, pred, sampling, newChains, splitted_chains);
+ __recursiveSplit(new_curve_b, func, pred0d, pred, sampling, newChains, splitted_chains);
+}
+
+void Operators::recursiveSplit(UnaryFunction0D<double>& func, UnaryPredicate0D& pred0d, UnaryPredicate1D& pred, float sampling)
+{
+ if (_current_chains_set.empty()) {
+ cerr << "Warning: current set empty" << endl;
+ return;
+ }
+
+ Chain *currentChain = 0;
+ I1DContainer splitted_chains;
+ I1DContainer newChains;
+ I1DContainer::iterator cit = _current_chains_set.begin(), citend = _current_chains_set.end();
+ for (;
+ cit != citend;
+ ++cit) {
+ currentChain = dynamic_cast<Chain*>(*cit);
+ if(!currentChain)
+ continue;
+ // let's check the first one:
+ if(!pred(*currentChain)){
+ __recursiveSplit(currentChain, func, pred0d, pred, sampling, newChains, splitted_chains);
+ }else{
+ newChains.push_back(currentChain);
+ }
+ }
+ // Update the current set of chains:
+ if(!splitted_chains.empty()){
+ for(cit = splitted_chains.begin(), citend = splitted_chains.end();
+ cit != citend;
+ ++cit){
+ delete (*cit);
+ }
+ splitted_chains.clear();
+ }
+
+ _current_chains_set.clear();
+ _current_chains_set = newChains;
+ newChains.clear();
+
+ if (!_current_chains_set.empty())
+ _current_set = &_current_chains_set;
+}
+// Internal class
+class PredicateWrapper
+{
+public:
+
+ inline PredicateWrapper(BinaryPredicate1D& pred) {
+ _pred = &pred;
+ }
+
+ inline bool operator()(Interface1D* i1, Interface1D* i2) {
+ return (*_pred)(*i1, *i2);
+ }
+
+private:
+
+ BinaryPredicate1D* _pred;
+};
+
+void Operators::sort(BinaryPredicate1D& pred) {
+ if (!_current_set)
+ return;
+ std::sort(_current_set->begin(), _current_set->end(), PredicateWrapper(pred));
+}
+
+Stroke* createStroke(Interface1D& inter) {
+ Stroke* stroke = new Stroke;
+ stroke->SetId(inter.getId());
+
+ float currentCurvilignAbscissa = 0.f;
+
+ Interface0DIterator it = inter.verticesBegin(), itend = inter.verticesEnd();
+ Interface0DIterator itfirst = it;
+
+ Vec3r current(it->getProjectedX(), it->getProjectedY(), it->getProjectedZ());
+ Vec3r previous = current;
+ SVertex* sv;
+ CurvePoint* cp;
+ StrokeVertex* stroke_vertex;
+
+ do {
+ cp = dynamic_cast<CurvePoint*>(&(*it));
+ if (!cp) {
+ sv = dynamic_cast<SVertex*>(&(*it));
+ if (!sv) {
+ cerr << "Warning: unexpected Vertex type" << endl;
+ continue;
+ }
+ stroke_vertex = new StrokeVertex(sv);
+ }
+ else
+ stroke_vertex = new StrokeVertex(cp);
+ current = stroke_vertex->point2d();
+ Vec3r vec_tmp(current - previous);
+ currentCurvilignAbscissa += vec_tmp.norm();
+ stroke_vertex->SetCurvilinearAbscissa(currentCurvilignAbscissa);
+ stroke->push_back(stroke_vertex);
+ previous = current;
+ ++it;
+ } while((it != itend) && (it != itfirst));
+
+ if (it == itfirst) {
+ // Add last vertex:
+ cp = dynamic_cast<CurvePoint*>(&(*it));
+ if (!cp) {
+ sv = dynamic_cast<SVertex*>(&(*it));
+ if (!sv)
+ cerr << "Warning: unexpected Vertex type" << endl;
+ else
+ stroke_vertex = new StrokeVertex(sv);
+ }
+ else
+ stroke_vertex = new StrokeVertex(cp);
+ current = stroke_vertex->point2d();
+ Vec3r vec_tmp(current - previous);
+ currentCurvilignAbscissa += vec_tmp.norm();
+ stroke_vertex->SetCurvilinearAbscissa(currentCurvilignAbscissa);
+ stroke->push_back(stroke_vertex);
+ }
+ stroke->SetLength(currentCurvilignAbscissa);
+ return stroke;
+}
+
+
+inline void applyShading(Stroke& stroke, vector<StrokeShader*>& shaders) {
+ for (vector<StrokeShader*>::iterator it = shaders.begin();
+ it != shaders.end();
+ ++it)
+ (*it)->shade(stroke);
+}
+
+
+void Operators::create(UnaryPredicate1D& pred, vector<StrokeShader*> shaders) {
+ Canvas* canvas = Canvas::getInstance();
+ if (!_current_set) {
+ cerr << "Warning: current set empty" << endl;
+ return;
+ }
+ for (Operators::I1DContainer::iterator it = _current_set->begin();
+ it != _current_set->end();
+ ++it) {
+ if (!pred(**it))
+ continue;
+ Stroke* stroke = createStroke(**it);
+ if (stroke) {
+ applyShading(*stroke, shaders);
+ canvas->RenderStroke(stroke);
+ _current_strokes_set.push_back(stroke);
+ }
+ }
+}
+
+
+void Operators::reset() {
+ ViewMap* vm = ViewMap::getInstance();
+ if (!vm) {
+ cerr << "Error: no ViewMap computed yet" << endl;
+ return;
+ }
+ _current_view_edges_set.clear();
+ for (I1DContainer::iterator it = _current_chains_set.begin();
+ it != _current_chains_set.end();
+ ++it)
+ delete *it;
+ _current_chains_set.clear();
+ _current_view_edges_set.insert(_current_view_edges_set.begin(),
+ vm->ViewEdges().begin(),
+ vm->ViewEdges().end());
+ _current_set = &_current_view_edges_set;
+ _current_strokes_set.clear();
+}
diff --git a/source/blender/freestyle/intern/stroke/Operators.h b/source/blender/freestyle/intern/stroke/Operators.h
new file mode 100755
index 00000000000..96ecd0aa75b
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Operators.h
@@ -0,0 +1,311 @@
+//
+// Filename : Operators.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Class gathering stroke creation algorithms
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef OPERATORS_H
+# define OPERATORS_H
+
+# include <vector>
+# include <iostream>
+# include "../view_map/Interface1D.h"
+# include "Predicates1D.h"
+# include "Predicates0D.h"
+# include "../view_map/ViewMap.h"
+# include "Chain.h"
+# include "ChainingIterators.h"
+# include "../system/TimeStamp.h"
+# include "StrokeShader.h"
+
+/*! Class defining the operators used in a style module.
+ * There are 4 classes of operators: Selection, Chaining,
+ * Splitting and Creating. All these operators are user controlled
+ * in the scripting language through Functors, Predicates and Shaders
+ * that are taken as arguments.
+ */
+class LIB_STROKE_EXPORT Operators {
+
+public:
+
+ typedef vector<Interface1D*> I1DContainer;
+ typedef vector<Stroke*> StrokesContainer;
+
+
+ //
+ // Operators
+ //
+ ////////////////////////////////////////////////
+
+ /*! Selects the ViewEdges of the ViewMap verifying
+ * a specified condition.
+ * \param pred The predicate expressing this condition
+ */
+ static void select(UnaryPredicate1D& pred);
+
+ /*! Builds a set of chains from the current set of ViewEdges.
+ * Each ViewEdge of the current list starts a new chain. The chaining
+ * operator then iterates over the ViewEdges of the ViewMap using the
+ * user specified iterator.
+ * This operator only iterates using the increment operator and is
+ * therefore unidirectional.
+ * \param it
+ * The iterator on the ViewEdges of the ViewMap. It contains
+ * the chaining rule.
+ * \param pred
+ * The predicate on the ViewEdge that expresses the stopping
+ * condition.
+ * \param modifier
+ * A function that takes a ViewEdge as argument and that
+ * is used to modify the processed ViewEdge state (the timestamp
+ * incrementation is a typical illustration of such a modifier)
+ */
+ static void chain(ViewEdgeInternal::ViewEdgeIterator& it,
+ UnaryPredicate1D& pred,
+ UnaryFunction1D<void>& modifier);
+
+ /*! Builds a set of chains from the current set of ViewEdges.
+ * Each ViewEdge of the current list starts a new chain. The chaining
+ * operator then iterates over the ViewEdges of the ViewMap using the
+ * user specified iterator.
+ * This operator only iterates using the increment operator and is
+ * therefore unidirectional.
+ * This chaining operator is different from the previous one because
+ * it doesn't take any modifier as argument. Indeed, the time stamp (insuring
+ * that a ViewEdge is processed one time) is automatically managed in this case.
+ * \param it
+ * The iterator on the ViewEdges of the ViewMap. It contains
+ * the chaining rule.
+ * \param pred
+ * The predicate on the ViewEdge that expresses the stopping
+ * condition.
+ */
+ static void chain(ViewEdgeInternal::ViewEdgeIterator& it,
+ UnaryPredicate1D& pred);
+
+ /*! Builds a set of chains from the current set of ViewEdges.
+ * Each ViewEdge of the current list potentially starts a new chain. The chaining
+ * operator then iterates over the ViewEdges of the ViewMap using the
+ * user specified iterator.
+ * This operator iterates both using the increment and decrement operators and is
+ * therefore bidirectional.
+ * This operator works with a ChainingIterator which contains the
+ * chaining rules. It is this last one which can be told
+ * to chain only edges that belong to the selection or not to
+ * process twice a ViewEdge during the chaining.
+ * Each time a ViewEdge is added to a chain, its chaining time stamp
+ * is incremented. This allows you to keep track of
+ * the number of chains to which a ViewEdge belongs to.
+ * \param it
+ * The ChainingIterator on the ViewEdges of the ViewMap. It contains
+ * the chaining rule.
+ * \param pred
+ * The predicate on the ViewEdge that expresses the stopping
+ * condition.
+ */
+ static void bidirectionalChain(ChainingIterator& it, UnaryPredicate1D& pred);
+
+ /*! The only difference with the above bidirectional chaining algorithm is
+ * that we don't need to pass a stopping criterion. This might be desirable
+ * when the stopping criterion is already contained in the iterator
+ * definition.
+ * Builds a set of chains from the current set of ViewEdges.
+ * Each ViewEdge of the current list potentially starts a new chain. The chaining
+ * operator then iterates over the ViewEdges of the ViewMap using the
+ * user specified iterator.
+ * This operator iterates both using the increment and decrement operators and is
+ * therefore bidirectional.
+ * This operator works with a ChainingIterator which contains the
+ * chaining rules. It is this last one which can be told
+ * to chain only edges that belong to the selection or not to
+ * process twice a ViewEdge during the chaining.
+ * Each time a ViewEdge is added to a chain, its chaining time stamp
+ * is incremented. This allows you to keep track of
+ * the number of chains to which a ViewEdge belongs to.
+ * \param it
+ * The ChainingIterator on the ViewEdges of the ViewMap. It contains
+ * the chaining rule.
+ */
+ static void bidirectionalChain(ChainingIterator& it);
+
+ /*! Splits each chain of the current set of chains in a sequential way.
+ * The points of each chain are processed (with a specified sampling) sequentially.
+ * Each time a user specified starting condition is verified, a new chain begins and
+ * ends as soon as a user-defined stopping predicate is verified.
+ * This allows chains overlapping rather than chains partitioning.
+ * The first point of the initial chain is the first point of one of the
+ * resulting chains.
+ * The splitting ends when no more chain can start.
+ * \param startingPred
+ * The predicate on a point that expresses the starting
+ * condition
+ * \param stoppingPred
+ * The predicate on a point that expresses the stopping
+ * condition
+ * \param sampling
+ * The resolution used to sample the chain for the predicates
+ * evaluation. (The chain is not actually resampled, a virtual point
+ * only progresses along the curve using this resolution)
+ */
+ static void sequentialSplit(UnaryPredicate0D& startingPred, UnaryPredicate0D& stoppingPred,
+ float sampling = 0.f);
+
+ /*! Splits each chain of the current set of chains in a sequential way.
+ * The points of each chain are processed (with a specified sampling) sequentially
+ * and each time a user specified condition is verified, the chain is split into two chains.
+ * The resulting set of chains is a partition of the initial chain
+ * \param pred
+ * The predicate on a point that expresses the splitting
+ * condition
+ * \param sampling
+ * The resolution used to sample the chain for the predicate
+ * evaluation. (The chain is not actually resampled, a virtual point
+ * only progresses along the curve using this resolution)
+ */
+ static void sequentialSplit(UnaryPredicate0D& pred,
+ float sampling = 0.f);
+
+ /*! Splits the current set of chains in a recursive way.
+ * We process the points of each chain (with a specified sampling) to find
+ * the point minimizing a specified function. The chain is split in two at this
+ * point and the two new chains are processed in the same way.
+ * The recursivity level is controlled through a predicate 1D that expresses a stopping condition
+ * on the chain that is about to be processed.
+ * \param func
+ * The Unary Function evaluated at each point of the chain.
+ * The splitting point is the point minimizing this function
+ * \param pred
+ * The Unary Predicate ex pressing the recursivity stopping condition.
+ * This predicate is evaluated for each curve before it actually gets
+ * split. If pred(chain) is true, the curve won't be split anymore.
+ * \param sampling
+ * The resolution used to sample the chain for the predicates
+ * evaluation. (The chain is not actually resampled, a virtual point
+ * only progresses along the curve using this resolution)
+ */
+ static void recursiveSplit(UnaryFunction0D<double>& func, UnaryPredicate1D& pred, float sampling = 0);
+
+ /*! Splits the current set of chains in a recursive way.
+ * We process the points of each chain (with a specified sampling) to find
+ * the point minimizing a specified function. The chain is split in two at this
+ * point and the two new chains are processed in the same way.
+ * The user can specify a 0D predicate to make a first selection
+ * on the points that can potentially be split.
+ * A point that doesn't verify the 0D predicate won't be candidate
+ * in realizing the min.
+ * The recursivity level is controlled through a predicate 1D that expresses a stopping condition
+ * on the chain that is about to be processed.
+ * \param func
+ * The Unary Function evaluated at each point of the chain.
+ * The splitting point is the point minimizing this function
+ * \param pred0d
+ * The Unary Predicate 0D used to select the candidate points
+ * where the split can occur.
+ * For example, it is very likely that would rather have
+ * your chain splitting around its middle point than around
+ * one of its extremities. A 0D predicate working on
+ * the curvilinear abscissa allows to add this kind of constraints.
+ * \param pred
+ * The Unary Predicate ex pressing the recursivity stopping condition.
+ * This predicate is evaluated for each curve before it actually gets
+ * split. If pred(chain) is true, the curve won't be split anymore.
+ * \param sampling
+ * The resolution used to sample the chain for the predicates
+ * evaluation. (The chain is not actually resampled, a virtual point
+ * only progresses along the curve using this resolution)
+ *
+ */
+ static void recursiveSplit(UnaryFunction0D<double>& func, UnaryPredicate0D& pred0d, UnaryPredicate1D& pred, float sampling = 0);
+
+ /*! Sorts the current set of chains (or viewedges) according to the
+ * comparison predicate given as argument.
+ * \param pred
+ * The binary predicate used for the comparison
+ */
+ static void sort(BinaryPredicate1D& pred);
+
+ /*! Creates and shades the strokes from the current set of chains.
+ * A predicate can be specified to make a selection pass on the
+ * chains.
+ * \param pred
+ * The predicate that a chain must verify in order to
+ * be transform as a stroke
+ * \param shaders
+ * The list of shaders used to shade the strokes
+ */
+ static void create(UnaryPredicate1D& pred, vector<StrokeShader*> shaders);
+
+ //
+ // Data access
+ //
+ ////////////////////////////////////////////////
+
+ static ViewEdge* getViewEdgeFromIndex(unsigned i) {
+ return dynamic_cast<ViewEdge*>(_current_view_edges_set[i]);
+ }
+
+ static Chain* getChainFromIndex(unsigned i) {
+ return dynamic_cast<Chain*>(_current_chains_set[i]);
+ }
+
+ static Stroke* getStrokeFromIndex(unsigned i) {
+ return _current_strokes_set[i];
+ }
+
+ static unsigned getViewEdgesSize() {
+ return _current_view_edges_set.size();
+ }
+
+ static unsigned getChainsSize() {
+ return _current_chains_set.size();
+ }
+
+ static unsigned getStrokesSize() {
+ return _current_strokes_set.size();
+ }
+
+ //
+ // Not exported in Python
+ //
+ //////////////////////////////////////////////////
+
+ static StrokesContainer* getStrokesSet() {
+ return &_current_strokes_set;
+ }
+
+ static void reset();
+
+private:
+
+ Operators() {}
+
+ static I1DContainer _current_view_edges_set;
+ static I1DContainer _current_chains_set;
+ static I1DContainer* _current_set;
+ static StrokesContainer _current_strokes_set;
+};
+
+#endif // OPERATORS_H
diff --git a/source/blender/freestyle/intern/stroke/PSStrokeRenderer.cpp b/source/blender/freestyle/intern/stroke/PSStrokeRenderer.cpp
new file mode 100755
index 00000000000..dc9c94e0e11
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/PSStrokeRenderer.cpp
@@ -0,0 +1,89 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+# include "PSStrokeRenderer.h"
+# include "Canvas.h"
+
+PSStrokeRenderer::PSStrokeRenderer(const char* iFileName)
+:StrokeRenderer(){
+ if(!iFileName)
+ iFileName = "freestyle.ps";
+ // open the stream:
+ _ofstream.open(iFileName, ios::out);
+ if(!_ofstream.is_open()){
+ cerr << "couldn't open the output file " << iFileName << endl;
+ }
+ _ofstream << "%!PS-Adobe-2.0 EPSF-2.0" << endl;
+ _ofstream << "%%Creator: Freestyle (http://artis.imag.fr/Software/Freestyle)" << endl;
+ _ofstream << "%%BoundingBox: " << 0 << " "<< 0 << " " << Canvas::getInstance()->width() << " " << Canvas::getInstance()->height() << endl;
+ _ofstream << "%%EndComments" << endl;
+}
+
+PSStrokeRenderer::~PSStrokeRenderer(){
+ Close();
+}
+
+void PSStrokeRenderer::RenderStrokeRep(StrokeRep *iStrokeRep) const{
+ RenderStrokeRepBasic(iStrokeRep);
+}
+
+void PSStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const{
+ vector<Strip*>& strips = iStrokeRep->getStrips();
+ Strip::vertex_container::iterator v[3];
+ StrokeVertexRep *svRep[3];
+ Vec3r color[3];
+ for(vector<Strip*>::iterator s=strips.begin(), send=strips.end();
+ s!=send;
+ ++s){
+ Strip::vertex_container& vertices = (*s)->vertices();
+ v[0] = vertices.begin();
+ v[1] = v[0];++(v[1]);
+ v[2] = v[1]; ++(v[2]);
+
+ while(v[2]!=vertices.end()){
+ svRep[0] = *(v[0]);
+ svRep[1] = *(v[1]);
+ svRep[2] = *(v[2]);
+
+ color[0] = svRep[0]->color();
+ //color[1] = svRep[1]->color();
+ //color[2] = svRep[2]->color();
+
+ _ofstream << "newpath" << endl;
+ _ofstream << (color[0])[0] << " " << (color[0])[1] << " " << (color[0])[2] << " setrgbcolor" <<endl;
+ _ofstream << svRep[0]->point2d()[0] << " " <<svRep[0]->point2d()[1] << " moveto" << endl;
+ _ofstream << svRep[1]->point2d()[0] << " " <<svRep[1]->point2d()[1] << " lineto" << endl;
+ _ofstream << svRep[2]->point2d()[0] << " " <<svRep[2]->point2d()[1] << " lineto" << endl;
+ _ofstream << "closepath" << endl;
+ _ofstream << "fill" << endl;
+
+ ++v[0];
+ ++v[1];
+ ++v[2];
+ }
+ }
+}
+
+void PSStrokeRenderer::Close(){
+ if(_ofstream.is_open())
+ _ofstream.close();
+}
+
diff --git a/source/blender/freestyle/intern/stroke/PSStrokeRenderer.h b/source/blender/freestyle/intern/stroke/PSStrokeRenderer.h
new file mode 100755
index 00000000000..821c016ab91
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/PSStrokeRenderer.h
@@ -0,0 +1,63 @@
+//
+// Filename : PSStrokeRenderer.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define the Postscript rendering of a stroke
+// Date of creation : 10/26/2004
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef PSSTROKERENDERER_H
+# define PSSTROKERENDERER_H
+
+# include "../system/FreestyleConfig.h"
+# include "StrokeRenderer.h"
+# include <fstream>
+
+/**********************************/
+/* */
+/* */
+/* PSStrokeRenderer */
+/* */
+/* */
+/**********************************/
+
+class LIB_STROKE_EXPORT PSStrokeRenderer : public StrokeRenderer
+{
+public:
+ PSStrokeRenderer(const char * iFileName = 0);
+ virtual ~PSStrokeRenderer();
+
+ /*! Renders a stroke rep */
+ virtual void RenderStrokeRep(StrokeRep *iStrokeRep) const;
+ virtual void RenderStrokeRepBasic(StrokeRep *iStrokeRep) const;
+
+ /*! Closes the output PS file */
+ void Close();
+
+protected:
+ mutable ofstream _ofstream;
+};
+
+#endif // PSSTROKERENDERER_H
+
diff --git a/source/blender/freestyle/intern/stroke/Predicates0D.h b/source/blender/freestyle/intern/stroke/Predicates0D.h
new file mode 100755
index 00000000000..4c2dfacdf98
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Predicates0D.h
@@ -0,0 +1,160 @@
+//
+// Filename : Predicates0D.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Class gathering stroke creation algorithms
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef PREDICATES0D_H
+# define PREDICATES0D_H
+
+# include "../view_map/Functions0D.h"
+
+//
+// UnaryPredicate0D (base class for predicates in 0D)
+//
+///////////////////////////////////////////////////////////
+/*! Base class for Unary Predicates that work
+ * on Interface0DIterator.
+ * A UnaryPredicate0D is a functor that evaluates
+ * a condition on a Interface0DIterator and returns
+ * true or false depending on whether this condition is
+ * satisfied or not.
+ * The UnaryPredicate0D is used by calling its () operator.
+ * Any inherited class must overload the () operator.
+ */
+class UnaryPredicate0D
+{
+public:
+ /*! Default constructor. */
+ UnaryPredicate0D() {}
+ /*! Destructor. */
+ virtual ~UnaryPredicate0D() {}
+ /*! Returns the string of the name
+ * of the UnaryPredicate0D.
+ */
+ virtual string getName() const {
+ return "UnaryPredicate0D";
+ }
+ /*! The () operator. Must be overload
+ * by inherited classes.
+ * \param it
+ * The Interface0DIterator pointing onto the
+ * Interface0D at which we wish to evaluate
+ * the predicate.
+ * \return true if the condition is satisfied,
+ * false otherwise.
+ */
+ virtual bool operator()(Interface0DIterator& it) {
+ cerr << "Warning: operator() not implemented" << endl;
+ return false;
+ }
+};
+
+
+//
+// BinaryPredicate0D (base class for predicates in 0D)
+//
+///////////////////////////////////////////////////////////
+/*! Base class for Binary Predicates working on Interface0D.
+ * A BinaryPredicate0D is typically an ordering relation
+ * between two Interface0D.
+ * It evaluates a relation between 2 Interface0D and
+ * returns true or false.
+ * It is used by calling the () operator.
+ */
+class BinaryPredicate0D
+{
+public:
+ /*! Default constructor. */
+ BinaryPredicate0D() {}
+ /*! Destructor. */
+ virtual ~BinaryPredicate0D() {}
+ /*! Returns the string of the name of the
+ * binary predicate.
+ */
+ virtual string getName() const {
+ return "BinaryPredicate0D";
+ }
+
+ /*! The () operator. Must be overload by inherited classes.
+ * It evaluates a relation between 2 Interface0D.
+ * \param inter1
+ * The first Interface0D.
+ * \param inter2
+ * The second Interface0D.
+ * \return true or false.
+ */
+ virtual bool operator()(Interface0D& inter1, Interface0D& inter2) {
+ cerr << "Warning: operator() not implemented" << endl;
+ return false;
+ }
+};
+
+
+//
+// Predicates definitions
+//
+///////////////////////////////////////////////////////////
+
+namespace Predicates0D {
+
+ // TrueUP0D
+ /*! Returns true any time */
+ class TrueUP0D : public UnaryPredicate0D
+ {
+ public:
+ /*! Default constructor. */
+ TrueUP0D() {}
+ /*! Returns the string "TrueUP0D"*/
+ string getName() const {
+ return "TrueUP0D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface0DIterator&) {
+ return true;
+ }
+ };
+
+ // FalseUP0D
+ /*! Returns false any time */
+ class FalseUP0D : public UnaryPredicate0D
+ {
+ public:
+ /*! Default constructor. */
+ FalseUP0D() {}
+ /*! Returns the string "FalseUP0D"*/
+ string getName() const {
+ return "FalseUP0D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface0DIterator&) {
+ return false;
+ }
+ };
+
+} // end of namespace Predicates0D
+
+#endif // PREDICATES0D_H
diff --git a/source/blender/freestyle/intern/stroke/Predicates1D.h b/source/blender/freestyle/intern/stroke/Predicates1D.h
new file mode 100755
index 00000000000..cf9a3283ae4
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Predicates1D.h
@@ -0,0 +1,438 @@
+//
+// Filename : Predicates1D.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Class gathering stroke creation algorithms
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef PREDICATES1D_H
+# define PREDICATES1D_H
+
+# include <string>
+# include "../system/TimeStamp.h"
+# include "../view_map/Interface1D.h"
+# include "../view_map/Functions1D.h"
+# include "AdvancedFunctions1D.h"
+
+//
+// UnaryPredicate1D (base class for predicates in 1D)
+//
+///////////////////////////////////////////////////////////
+/*! Base class for Unary Predicates that work
+ * on Interface1D.
+ * A UnaryPredicate1D is a functor that evaluates
+ * a condition on a Interface1D and returns
+ * true or false depending on whether this condition is
+ * satisfied or not.
+ * The UnaryPredicate1D is used by calling its () operator.
+ * Any inherited class must overload the () operator.
+ */
+class UnaryPredicate1D
+{
+public:
+ /*! Default constructor. */
+ UnaryPredicate1D() {}
+ /*! Destructor. */
+ virtual ~UnaryPredicate1D() {}
+ /*! Returns the string of the name
+ * of the UnaryPredicate1D.
+ */
+ virtual string getName() const {
+ return "UnaryPredicate1D";
+ }
+ /*! The () operator. Must be overload
+ * by inherited classes.
+ * \param inter
+ * The Interface1D on which we wish to evaluate
+ * the predicate.
+ * \return true if the condition is satisfied,
+ * false otherwise.
+ */
+ virtual bool operator()(Interface1D& inter) {
+ cerr << "Warning: operator() not implemented" << endl;
+ return false;
+ }
+};
+
+
+//
+// BinaryPredicate1D (base class for predicates in 1D)
+//
+///////////////////////////////////////////////////////////
+/*! Base class for Binary Predicates working on Interface1D.
+ * A BinaryPredicate1D is typically an ordering relation
+ * between two Interface1D.
+ * It evaluates a relation between 2 Interface1D and
+ * returns true or false.
+ * It is used by calling the () operator.
+ */
+class BinaryPredicate1D
+{
+public:
+ /*! Default constructor. */
+ BinaryPredicate1D() {}
+ /*! Destructor. */
+ virtual ~BinaryPredicate1D() {}
+ /*! Returns the string of the name of the
+ * binary predicate.
+ */
+ virtual string getName() const {
+ return "BinaryPredicate1D";
+ }
+ /*! The () operator. Must be overload by inherited classes.
+ * It evaluates a relation between 2 Interface1D.
+ * \param inter1
+ * The first Interface1D.
+ * \param inter2
+ * The second Interface1D.
+ * \return true or false.
+ */
+ virtual bool operator()(Interface1D& inter1, Interface1D& inter2) {
+ cerr << "Warning: operator() not implemented" << endl;
+ return false;
+ }
+};
+
+
+//
+// Predicates definitions
+//
+///////////////////////////////////////////////////////////
+
+namespace Predicates1D {
+
+ // TrueUP1D
+ /*! Returns true */
+ class TrueUP1D : public UnaryPredicate1D
+ {
+ public:
+ /*! Constructor */
+ TrueUP1D() {}
+ /*! Returns the string "TrueUP1D"*/
+ string getName() const {
+ return "TrueUP1D";
+ }
+ /*! the () operator */
+ bool operator()(Interface1D&) {
+ return true;
+ }
+ };
+
+ // FalseUP1D
+ /*! Returns false */
+ class FalseUP1D : public UnaryPredicate1D
+ {
+ public:
+ /*! Constructor */
+ FalseUP1D() {}
+ /*! Returns the string "FalseUP1D"*/
+ string getName() const {
+ return "FalseUP1D";
+ }
+ /*! the () operator */
+ bool operator()(Interface1D&) {
+ return false;
+ }
+ };
+
+ // QuantitativeInvisibilityUP1D
+ /*! Returns true if the Quantitative Invisibility evaluated
+ * at an Interface1D, using the QuantitativeInvisibilityF1D
+ * functor, equals a certain user-defined value.
+ */
+ class QuantitativeInvisibilityUP1D : public UnaryPredicate1D
+ {
+ public:
+ /*! Builds the Predicate.
+ * \param qi
+ * The Quantitative Invisibility you want
+ * the Interface1D to have
+ */
+ QuantitativeInvisibilityUP1D(unsigned qi = 0) : _qi(qi) {}
+ /*! Returns the string "QuantitativeInvisibilityUP1D"*/
+ string getName() const {
+ return "QuantitativeInvisibilityUP1D";
+ }
+ /*! the () operator */
+ bool operator()(Interface1D& inter) {
+ Functions1D::QuantitativeInvisibilityF1D func;
+ return (func(inter) == _qi);
+ }
+ private:
+ unsigned _qi;
+ };
+
+ // ContourUP1D
+ /*! Returns true if the Interface1D is a contour.
+ * An Interface1D is a contour if it is borded
+ * by a different shape on each of its sides.
+ */
+ class ContourUP1D : public UnaryPredicate1D
+ {
+ private:
+ Functions1D::CurveNatureF1D _getNature;
+ public:
+ /*! Returns the string "ContourUP1D"*/
+ string getName() const {
+ return "ContourUP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& inter) {
+ if((_getNature(inter) & Nature::SILHOUETTE) || (_getNature(inter) & Nature::BORDER)){
+ Interface0DIterator it=inter.verticesBegin();
+ for(; !it.isEnd(); ++it){
+ if(Functions0D::getOccludeeF0D(it) != Functions0D::getShapeF0D(it))
+ return true;
+ }
+ }
+ return false;
+ }
+ };
+
+ // ExternalContourUP1D
+ /*! Returns true if the Interface1D is an external contour.
+ * An Interface1D is an external contour if it is borded
+ * by no shape on one of its sides.
+ */
+ class ExternalContourUP1D : public UnaryPredicate1D
+ {
+ private:
+ Functions1D::CurveNatureF1D _getNature;
+ public:
+ /*! Returns the string "ExternalContourUP1D"*/
+ string getName() const {
+ return "ExternalContourUP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& inter) {
+ if((_getNature(inter) & Nature::SILHOUETTE) || (_getNature(inter) & Nature::BORDER)){
+ set<ViewShape*> occluded;
+ Functions1D::getOccludeeF1D(inter, occluded);
+ for(set<ViewShape*>::iterator os=occluded.begin(), osend=occluded.end();
+ os!=osend;
+ ++os){
+ if((*os) == 0)
+ return true;
+ }
+ }
+ return false;
+ }
+ };
+
+ // EqualToTimeStampUP1D
+ /*! Returns true if the Interface1D's time stamp
+ * is equal to a certain user-defined value.
+ */
+ class EqualToTimeStampUP1D : public UnaryPredicate1D
+ {
+ protected:
+ unsigned _timeStamp;
+ public:
+ EqualToTimeStampUP1D(unsigned ts) : UnaryPredicate1D(){
+ _timeStamp = ts;
+ }
+ /*! Returns the string "EqualToTimeStampUP1D"*/
+ string getName() const {
+ return "EqualToTimeStampUP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& inter) {
+ return (inter.getTimeStamp() == _timeStamp);
+ }
+ };
+
+ // EqualToChainingTimeStampUP1D
+ /*! Returns true if the Interface1D's time stamp
+ * is equal to a certain user-defined value.
+ */
+ class EqualToChainingTimeStampUP1D : public UnaryPredicate1D
+ {
+ protected:
+ unsigned _timeStamp;
+ public:
+ EqualToChainingTimeStampUP1D(unsigned ts) : UnaryPredicate1D(){
+ _timeStamp = ts;
+ }
+ /*! Returns the string "EqualToChainingTimeStampUP1D"*/
+ string getName() const {
+ return "EqualToChainingTimeStampUP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& inter) {
+ ViewEdge* edge = dynamic_cast<ViewEdge*>(&inter);
+ if (!edge)
+ return false;
+ return (edge->getChainingTimeStamp() >= _timeStamp);
+ }
+ };
+
+ // ShapeUP1D
+ /*! Returns true if the shape to which the Interface1D
+ * belongs to has the same Id as the one specified by the
+ * user.
+ */
+ class ShapeUP1D: public UnaryPredicate1D
+ {
+ private:
+ Id _id;
+ public:
+ /*! Builds the Predicate.
+ * \param idFirst
+ * The first Id component.
+ * \param idSecond
+ * The second Id component.
+ */
+ ShapeUP1D(unsigned idFirst, unsigned idSecond=0)
+ : UnaryPredicate1D(){
+ _id = Id(idFirst, idSecond);
+ }
+ /*! Returns the string "ShapeUP1D"*/
+ string getName() const {
+ return "ShapeUP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& inter) {
+ set<ViewShape*> shapes;
+ Functions1D::getShapeF1D(inter, shapes);
+ for(set<ViewShape*>::iterator s=shapes.begin(), send=shapes.end();
+ s!=send;
+ ++s){
+ if((*s)->getId() == _id)
+ return true;
+ }
+ return false;
+ }
+ };
+
+ //
+ // Binary Predicates definitions
+ //
+ ///////////////////////////////////////////////////////////
+
+ // TrueBP1D
+ /*! Returns true. */
+ class TrueBP1D : public BinaryPredicate1D
+ {
+ public:
+ /*! Returns the string "TrueBP1D"*/
+ string getName() const {
+ return "TrueBP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& i1, Interface1D& i2) {
+ return true;
+ }
+ };
+
+ // FalseBP1D
+ /*! Returns false. */
+ class FalseBP1D : public BinaryPredicate1D
+ {
+ public:
+ /*! Returns the string "FalseBP1D"*/
+ string getName() const {
+ return "FalseBP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& i1, Interface1D& i2) {
+ return false;
+ }
+ };
+
+ // Length2DBP1D
+ /*! Returns true if the 2D length of the Interface1D i1
+ * is less than the 2D length of the Interface1D i2.
+ */
+ class Length2DBP1D : public BinaryPredicate1D
+ {
+ public:
+ /*! Returns the string "Length2DBP1D"*/
+ string getName() const {
+ return "Length2DBP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& i1, Interface1D& i2) {
+ return (i1.getLength2D() > i2.getLength2D());
+ }
+ };
+
+ // SameShapeIdBP1D
+ /*! Returns true if the Interface1D i1 and i2 belong
+ * to the same shape.
+ */
+ class SameShapeIdBP1D : public BinaryPredicate1D
+ {
+ public:
+ /*! Returns the string "SameShapeIdBP1D"*/
+ string getName() const {
+ return "SameShapeIdBP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& i1, Interface1D& i2) {
+ set<ViewShape*> shapes1;
+ Functions1D::getShapeF1D(i1, shapes1);
+ set<ViewShape*> shapes2;
+ Functions1D::getShapeF1D(i2, shapes2);
+ // FIXME:// n2 algo, can do better...
+ for(set<ViewShape*>::iterator s=shapes1.begin(), send=shapes1.end();
+ s!=send;
+ ++s){
+ Id current = (*s)->getId();
+ for(set<ViewShape*>::iterator s2=shapes2.begin(), s2end=shapes2.end();
+ s2!=s2end;
+ ++s2){
+ if((*s2)->getId() == current)
+ return true;
+ }
+ }
+ return false;
+ }
+ };
+
+ // ViewMapGradientNormBP1D
+ /*! Returns true if the evaluation of the
+ * Gradient norm Function is higher for Interface1D i1
+ * than for i2.
+ */
+ class ViewMapGradientNormBP1D : public BinaryPredicate1D
+ {
+ private:
+ Functions1D::GetViewMapGradientNormF1D _func;
+ public:
+ ViewMapGradientNormBP1D(int level, IntegrationType iType=MEAN, float sampling=2.0)
+ : BinaryPredicate1D(), _func(level, iType, sampling) {
+ }
+ /*! Returns the string "ViewMapGradientNormBP1D"*/
+ string getName() const {
+ return "ViewMapGradientNormBP1D";
+ }
+ /*! The () operator. */
+ bool operator()(Interface1D& i1, Interface1D& i2) {
+ return (_func(i1) > _func(i2));
+ }
+ };
+} // end of namespace Predicates1D
+
+#endif // PREDICATES1D_H
diff --git a/source/blender/freestyle/intern/stroke/QInformationMap.h b/source/blender/freestyle/intern/stroke/QInformationMap.h
new file mode 100755
index 00000000000..2542bdba147
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/QInformationMap.h
@@ -0,0 +1,58 @@
+//
+// Filename : QInformationMap.h
+// Author : Stephane Grabli
+// Purpose : Class defining an information map using a QImage
+// Date of creation : 04/01/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef QINFORMATIONMAP_H
+# define QINFORMATIONMAP_H
+
+# include <qimage.h>
+# include "InformationMap.h"
+
+class QInformationMap : public InformationMap
+{
+private:
+ QImage _map; // the image or a piece of image
+
+public:
+ QInformationMap();
+ QInformationMap(const QImage&);
+ QInformationMap(const QInformationMap&);
+ QInformationMap& operator=(const QInformationMap&);
+
+ //float getSmoothedPixel(int x, int y, float sigma = 0.2f)
+ virtual float getMean(int x, int y) ;
+ virtual void retrieveMeanAndVariance(int x, int y, float &oMean, float &oVariance) ;
+
+ inline const QImage& map() const {return _map;}
+ inline void SetMap(const QImage& iMap, float iw, float ih) {_map = iMap.copy();_w=iw;_h=ih;}
+
+protected:
+ virtual float computeGaussian(int x, int y);
+};
+
+#endif // QINFORMATIONMAP_H
diff --git a/source/blender/freestyle/intern/stroke/Stroke.cpp b/source/blender/freestyle/intern/stroke/Stroke.cpp
new file mode 100755
index 00000000000..d6ff4d255c4
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Stroke.cpp
@@ -0,0 +1,949 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "Stroke.h"
+#include "StrokeRenderer.h"
+#include "StrokeIterators.h"
+#include "StrokeAdvancedIterators.h"
+
+ /**********************************/
+ /* */
+ /* */
+ /* StrokeAttribute */
+ /* */
+ /* */
+ /**********************************/
+
+StrokeAttribute::StrokeAttribute()
+{
+ int i;
+ _alpha = 1.f;
+ _thickness[0] = 1.f;
+ _thickness[1] = 1.f;
+ for(i=0; i<3; ++i)
+ _color[i] = 0.2f;
+ _color[0]=0.8;
+ _userAttributesReal = 0;
+ _userAttributesVec2f = 0;
+ _userAttributesVec3f = 0;
+ _visible = true;
+}
+StrokeAttribute::StrokeAttribute(const StrokeAttribute& iBrother)
+{
+ _alpha = iBrother._alpha;
+ _thickness[0] = iBrother._thickness[0];
+ _thickness[1] = iBrother._thickness[1];
+ for(int i=0; i<3; ++i)
+ _color[i] = iBrother._color[i];
+ _visible = iBrother._visible;
+ if(iBrother._userAttributesReal)
+ _userAttributesReal = new realMap(*iBrother._userAttributesReal);
+ else
+ _userAttributesReal = 0;
+ if(iBrother._userAttributesVec2f)
+ _userAttributesVec2f = new Vec2fMap(*iBrother._userAttributesVec2f);
+ else
+ _userAttributesVec2f = 0;
+ if(iBrother._userAttributesVec3f)
+ _userAttributesVec3f = new Vec3fMap(*iBrother._userAttributesVec3f);
+ else
+ _userAttributesVec3f = 0;
+}
+StrokeAttribute::StrokeAttribute( float iRColor, float iGColor, float iBColor,
+ float iAlpha,
+ float iRThickness, float iLThickness)
+{
+ _color[0] = iRColor;
+ _color[1] = iGColor;
+ _color[2] = iBColor;
+
+ _alpha = iAlpha;
+
+ _thickness[0] = iRThickness;
+ _thickness[1] = iLThickness;
+
+ _visible = true;
+
+ _userAttributesReal = 0;
+ _userAttributesVec2f = 0;
+ _userAttributesVec3f = 0;
+}
+StrokeAttribute::StrokeAttribute(const StrokeAttribute& a1, const StrokeAttribute& a2, float t)
+
+{
+
+ _alpha = (1-t)*a1._alpha + t*a2._alpha;
+ _thickness[0] = (1-t)*a1._thickness[0] + t*a2._thickness[0];
+ _thickness[1] = (1-t)*a1._thickness[1] + t*a2._thickness[1];
+ for(int i=0; i<3; ++i)
+ _color[i] = (1-t)*a1._color[i] + t*a2._color[i];
+
+ _visible = true;
+
+ // FIXME: a verifier (et a ameliorer)
+ if((a1._userAttributesReal) && (a2._userAttributesReal)){
+ if(a1._userAttributesReal->size() == a2._userAttributesReal->size()){
+ _userAttributesReal = new realMap;
+ realMap::iterator it1=a1._userAttributesReal->begin(), it1end=a1._userAttributesReal->end();
+ realMap::iterator it2=a2._userAttributesReal->begin(), it2end=a2._userAttributesReal->end();
+ for(; (it1!=it1end); ++it1){
+ (*_userAttributesReal)[(*it1).first] = ((1-t)*(*it1).second+t*(*it2).second);
+ }
+ }
+ }else{
+ _userAttributesReal = 0;
+ }
+ if((a1._userAttributesVec2f) && (a2._userAttributesVec2f)){
+ if(a1._userAttributesVec2f->size() == a2._userAttributesVec2f->size()){
+ _userAttributesVec2f = new Vec2fMap;
+ Vec2fMap::iterator it1=a1._userAttributesVec2f->begin(), it1end=a1._userAttributesVec2f->end();
+ Vec2fMap::iterator it2=a2._userAttributesVec2f->begin(), it2end=a2._userAttributesVec2f->end();
+ for(; (it1!=it1end); ++it1){
+ (*_userAttributesVec2f)[(*it1).first] = ((1-t)*(*it1).second+t*(*it2).second);
+ }
+ }
+ }else{
+ _userAttributesVec2f = 0;
+ }
+ if((a1._userAttributesVec3f) && (a2._userAttributesVec3f)){
+ if(a1._userAttributesVec3f->size() == a2._userAttributesVec3f->size()){
+ _userAttributesVec3f = new Vec3fMap;
+ Vec3fMap::iterator it1=a1._userAttributesVec3f->begin(), it1end=a1._userAttributesVec3f->end();
+ Vec3fMap::iterator it2=a2._userAttributesVec3f->begin(), it2end=a2._userAttributesVec3f->end();
+ for(; (it1!=it1end); ++it1){
+ (*_userAttributesVec3f)[(*it1).first] = ((1-t)*(*it1).second+t*(*it2).second);
+ }
+ }
+ }else{
+ _userAttributesVec3f = 0;
+ }
+
+}
+StrokeAttribute::~StrokeAttribute()
+{
+ if(_userAttributesReal){
+ _userAttributesReal->clear();
+ delete _userAttributesReal;
+ }
+ if(_userAttributesVec2f){
+ _userAttributesVec2f->clear();
+ delete _userAttributesVec2f;
+ }
+ if(_userAttributesVec3f){
+ _userAttributesVec3f->clear();
+ delete _userAttributesVec3f;
+ }
+}
+
+StrokeAttribute& StrokeAttribute::operator=(const StrokeAttribute& iBrother)
+{
+ int i;
+ _alpha = iBrother._alpha;
+ _thickness[0] = iBrother._thickness[0];
+ _thickness[1] = iBrother._thickness[1];
+ for(i=0; i<3; ++i)
+ _color[i] = iBrother._color[i];
+ _visible = iBrother._visible;
+ if(iBrother._userAttributesReal){
+ if(!_userAttributesReal)
+ _userAttributesReal = new realMap;
+ _userAttributesReal = new realMap(*(iBrother._userAttributesReal));
+ }else{
+ _userAttributesReal = 0;
+ }
+ if(iBrother._userAttributesVec2f){
+ if(!_userAttributesVec2f)
+ _userAttributesVec2f = new Vec2fMap;
+ _userAttributesVec2f = new Vec2fMap(*(iBrother._userAttributesVec2f));
+ }else{
+ _userAttributesVec2f = 0;
+ }
+ if(iBrother._userAttributesVec3f){
+ if(!_userAttributesVec3f)
+ _userAttributesVec3f = new Vec3fMap;
+ _userAttributesVec3f = new Vec3fMap(*(iBrother._userAttributesVec3f));
+ }else{
+ _userAttributesVec3f = 0;
+ }
+ return *this;
+}
+
+float StrokeAttribute::getAttributeReal(const char *iName) const{
+ if(!_userAttributesReal){
+ cout << "StrokeAttribute warning: no real attribute was defined"<< endl;
+ return 0;
+ }
+ realMap::iterator a = _userAttributesReal->find(iName);
+ if(a ==_userAttributesReal->end()){
+ cout << "StrokeAttribute warning: no real attribute was added with the name " << iName << endl;
+ return 0;
+ }
+ return (*a).second;
+}
+Vec2f StrokeAttribute::getAttributeVec2f(const char *iName) const{
+ if(!_userAttributesVec2f){
+ cout << "StrokeAttribute warning: no Vec2f attribute was defined "<< endl;
+ return 0;
+ }
+ Vec2fMap::iterator a = _userAttributesVec2f->find(iName);
+ if(a ==_userAttributesVec2f->end()){
+ cout << "StrokeAttribute warning: no Vec2f attribute was added with the name " << iName << endl;
+ return 0;
+ }
+ return (*a).second;
+}
+Vec3f StrokeAttribute::getAttributeVec3f(const char *iName) const{
+ if(!_userAttributesVec3f){
+ cout << "StrokeAttribute warning: no Vec3f attribute was defined"<< endl;
+ return 0;
+ }
+ Vec3fMap::iterator a = _userAttributesVec3f->find(iName);
+ if(a ==_userAttributesVec3f->end()){
+ cout << "StrokeAttribute warning: no Vec3f attribute was added with the name " << iName << endl;
+ return 0;
+ }
+ return (*a).second;
+}
+bool StrokeAttribute::isAttributeAvailableReal(const char *iName) const{
+ if(!_userAttributesReal){
+ return false;
+ }
+ realMap::iterator a = _userAttributesReal->find(iName);
+ if(a ==_userAttributesReal->end()){
+ return false;
+ }
+ return true;
+}
+bool StrokeAttribute::isAttributeAvailableVec2f(const char *iName) const{
+ if(!_userAttributesVec2f){
+ return false;
+ }
+ Vec2fMap::iterator a = _userAttributesVec2f->find(iName);
+ if(a ==_userAttributesVec2f->end()){
+ return false;
+ }
+ return true;
+}
+bool StrokeAttribute::isAttributeAvailableVec3f(const char *iName) const{
+ if(!_userAttributesVec3f){
+ return false;
+ }
+ Vec3fMap::iterator a = _userAttributesVec3f->find(iName);
+ if(a ==_userAttributesVec3f->end()){
+ return false;
+ }
+ return true;
+}
+void StrokeAttribute::setAttributeReal(const char *iName, float att){
+ if(!_userAttributesReal)
+ _userAttributesReal = new realMap;
+ (*_userAttributesReal)[iName] = att;
+}
+void StrokeAttribute::setAttributeVec2f(const char *iName, const Vec2f& att){
+ if(!_userAttributesVec2f)
+ _userAttributesVec2f = new Vec2fMap;
+ (*_userAttributesVec2f)[iName] = att;
+}
+void StrokeAttribute::setAttributeVec3f(const char *iName, const Vec3f& att){
+ if(!_userAttributesVec3f)
+ _userAttributesVec3f = new Vec3fMap;
+ (*_userAttributesVec3f)[iName] = att;
+}
+ /**********************************/
+ /* */
+ /* */
+ /* StrokeVertex */
+ /* */
+ /* */
+ /**********************************/
+
+StrokeVertex::StrokeVertex()
+
+:CurvePoint()
+{
+
+ _CurvilignAbscissa = 0.f;
+
+ _StrokeLength = 0.f;
+}
+
+
+
+StrokeVertex::StrokeVertex(const StrokeVertex& iBrother)
+
+:CurvePoint(iBrother)
+{
+ _Attribute = iBrother._Attribute;
+
+ _CurvilignAbscissa = 0.f;
+
+ _StrokeLength = 0.f;
+}
+StrokeVertex::StrokeVertex(SVertex *iSVertex)
+
+:CurvePoint(iSVertex,0,0.f)
+
+{
+
+ _CurvilignAbscissa = 0.f;
+
+ _StrokeLength = 0.f;
+
+}
+
+
+
+StrokeVertex::StrokeVertex(CurvePoint *iPoint)
+
+:CurvePoint(*iPoint)
+
+{
+
+ _CurvilignAbscissa = 0.f;
+
+ _StrokeLength = 0.f;
+
+}
+
+
+
+StrokeVertex::StrokeVertex(StrokeVertex *iA, StrokeVertex *iB, float t3)
+
+:CurvePoint(iA,iB,t3)
+
+{
+
+ // interpolate attributes:
+
+ _Attribute = StrokeAttribute(iA->attribute(), iB->attribute(), t3);
+ _CurvilignAbscissa = (1-t3)*iA->curvilinearAbscissa()+t3*iB->curvilinearAbscissa();
+ _StrokeLength = iA->strokeLength();
+
+}
+
+
+
+StrokeVertex::StrokeVertex(SVertex *iSVertex, const StrokeAttribute& iAttribute)
+
+:CurvePoint(iSVertex,0,0.f)
+
+{
+
+ _Attribute = iAttribute;
+
+ _CurvilignAbscissa = 0.f;
+
+ _StrokeLength = 0.f;
+
+}
+StrokeVertex::~StrokeVertex()
+{
+}
+
+StrokeVertex& StrokeVertex::operator=(const StrokeVertex& iBrother)
+{
+ ((CurvePoint*)this)->operator=(iBrother);
+ _Attribute = iBrother._Attribute;
+
+ _CurvilignAbscissa = 0.f;
+
+ _StrokeLength = 0.f;
+ return *this;
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* Stroke */
+ /* */
+ /* */
+ /**********************************/
+
+Stroke::Stroke()
+{
+ _Length = 0;
+ _id = 0;
+ _sampling = FLT_MAX;
+ //_mediumType = DEFAULT_STROKE;
+ _mediumType = OPAQUE_MEDIUM;
+ _textureId = 0;
+ _tips = false;
+ _rep = 0;
+}
+
+Stroke::Stroke(const Stroke& iBrother)
+{
+ for(vertex_container::const_iterator v=iBrother._Vertices.begin(), vend=iBrother._Vertices.end();
+ v!=vend;
+ v++)
+ {
+ _Vertices.push_back(*v);
+ }
+ _Length = 0;
+ _id = iBrother._id;
+ _ViewEdges = iBrother._ViewEdges;
+ _sampling = iBrother._sampling;
+ _mediumType = iBrother._mediumType;
+ _textureId = iBrother._textureId;
+ _tips = iBrother._tips;
+ _rep = new StrokeRep(*(iBrother._rep));
+}
+
+Stroke::~Stroke()
+{
+ if(!_Vertices.empty())
+ {
+ for(vertex_container::iterator v=_Vertices.begin(), vend=_Vertices.end();
+ v!=vend;
+ v++)
+ {
+ delete (*v);
+ }
+ _Vertices.clear();
+ }
+
+ _ViewEdges.clear();
+ if(_rep != 0)
+ {
+ delete _rep;
+ _rep = 0;
+ }
+}
+
+Stroke& Stroke::operator=(const Stroke& iBrother)
+{
+ if(!_Vertices.empty())
+ _Vertices.clear();
+
+ for(vertex_container::const_iterator v=iBrother._Vertices.begin(), vend=iBrother._Vertices.end();
+ v!=vend;
+ v++)
+ {
+ _Vertices.push_back(*v);
+ }
+ _Length = iBrother._Length;
+ _id = iBrother._id;
+ _ViewEdges = iBrother._ViewEdges;
+ _sampling = iBrother._sampling;
+ if(_rep) delete _rep;
+ if(iBrother._rep)
+ _rep = new StrokeRep(*(iBrother._rep));
+ return *this;
+}
+
+
+void Stroke::SetLength(float iLength)
+{
+ _Length = iLength;
+ for(vertex_container::iterator v=_Vertices.begin(), vend=_Vertices.end();
+ v!=vend;
+ ++v)
+ {
+ (*v)->SetStrokeLength(iLength);
+ }
+}
+
+float Stroke::ComputeSampling(int iNVertices)
+{
+ if(iNVertices <= _Vertices.size())
+ return _sampling;
+
+ float sampling = _Length/(float)(iNVertices-_Vertices.size()+1);
+ return sampling;
+}
+
+class StrokeSegment
+{
+public:
+ StrokeInternal::StrokeVertexIterator _begin;
+ StrokeInternal::StrokeVertexIterator _end;
+ float _length;
+ int _n;
+ float _sampling;
+ bool _resampled;
+
+ StrokeSegment(StrokeInternal::StrokeVertexIterator ibegin,
+ StrokeInternal::StrokeVertexIterator iend,
+ float ilength,
+ int in,
+ float isampling)
+ {
+ _begin=ibegin;
+ _end=iend;
+ _length=ilength;
+ _n=in;
+ _sampling = isampling;
+ _resampled = false;
+ }
+};
+
+void Stroke::Resample(int iNPoints)
+{
+ int vertsize = strokeVerticesSize();
+ if(iNPoints <= vertsize)
+ return;
+
+ StrokeInternal::StrokeVertexIterator it = strokeVerticesBegin();
+ StrokeInternal::StrokeVertexIterator next = it;++next;
+ StrokeInternal::StrokeVertexIterator itend = strokeVerticesEnd();
+
+ vertex_container newVertices;
+ real t=0.f;
+ StrokeVertex * newVertex = 0;
+ vector<StrokeSegment> strokeSegments;
+ int N=0;
+ float meanlength = 0;
+ int nsegments = 0;
+ while(((it!=itend)&&(next!=itend)))
+ {
+ Vec3r a((it)->point2d());
+ Vec3r b((next)->point2d());
+ Vec3r vec_tmp(b - a);
+ real norm_var = vec_tmp.norm();
+ int numberOfPointsToAdd = (int)floor((iNPoints-strokeVerticesSize())*norm_var/_Length);
+ float csampling = norm_var/(float)(numberOfPointsToAdd+1);
+ strokeSegments.push_back(StrokeSegment(it,next,norm_var,numberOfPointsToAdd, csampling));
+ N+=numberOfPointsToAdd;
+ meanlength += norm_var;
+ ++nsegments;
+ ++it; ++next;
+ }
+ meanlength /= (float)nsegments;
+
+ // if we don't have enough points let's resample
+ // finer some segments
+ int NPointsToAdd = iNPoints-vertsize;
+ bool checkEveryone = false;
+ while(N < NPointsToAdd)
+ {
+ for(vector<StrokeSegment>::iterator s=strokeSegments.begin(), send=strokeSegments.end();
+ s!=send;
+ ++s)
+ {
+ if(s->_sampling == 0.f)
+ continue;
+
+ if(s->_resampled == false)
+ {
+ if((!checkEveryone) && (s->_length < meanlength))
+ continue;
+ //resample
+ s->_n = s->_n+1;
+ s->_sampling = s->_length/(float)(s->_n+1);
+ s->_resampled = true;
+ N++;
+ if(N == NPointsToAdd)
+ break;
+ }
+ }
+ checkEveryone = true;
+ }
+ //actually resample:
+ for(vector<StrokeSegment>::iterator s=strokeSegments.begin(), send=strokeSegments.end();
+ s!=send;
+ ++s)
+ {
+ newVertices.push_back(&(*(s->_begin)));
+ if(s->_sampling < _sampling)
+ _sampling = s->_sampling;
+
+ t = s->_sampling/s->_length;
+ for(int i=0; i<s->_n; ++i)
+ {
+ newVertex = new StrokeVertex(&(*(s->_begin)),&(*(s->_end)),t);
+ newVertices.push_back(newVertex);
+ t += s->_sampling/s->_length;
+ }
+ it=s->_begin;
+ next=s->_end;
+ }
+
+ // add last:
+ ++it;++next;
+ if((it != itend) && (next == itend))// && (t == 0.f))
+ newVertices.push_back(&(*it));
+
+ int newsize = newVertices.size();
+ if(newsize != iNPoints)
+ cerr << "Warning: incorrect points number" << endl;
+
+ _Vertices.clear();
+ _Vertices = newVertices;
+ newVertices.clear();
+
+ if(_rep)
+ {
+ delete _rep;
+ _rep = new StrokeRep(this);
+ }
+}
+
+
+void Stroke::Resample(float iSampling)
+{
+ // cerr<<"old size :"<<strokeVerticesSize()<<endl;
+ if(iSampling == 0)
+
+ return;
+ if(iSampling >= _sampling)
+ return ;
+
+ _sampling = iSampling;
+ // Resample...
+ //real curvilinearLength = 0.f;
+ vertex_container newVertices;
+ real t=0.f;
+ StrokeVertex * newVertex = 0;
+ StrokeInternal::StrokeVertexIterator it = strokeVerticesBegin();
+ StrokeInternal::StrokeVertexIterator next = it;++next;
+ StrokeInternal::StrokeVertexIterator itend = strokeVerticesEnd();
+ while(((it!=itend)&&(next!=itend)))
+ {
+ newVertices.push_back(&(*it));
+ Vec3r a((it)->point2d());
+ Vec3r b((next)->point2d());
+ Vec3r vec_tmp(b - a);
+ real norm_var = vec_tmp.norm();
+ if(norm_var <= _sampling)
+ {
+ //curvilinearLength += norm_var;
+ ++it; ++next;
+ continue;
+ }
+
+ //curvilinearLength += _sampling;
+ t = _sampling/norm_var;
+ float limit = 0.99f;
+ while(t<limit)
+ {
+ newVertex = new StrokeVertex(&(*it),&(*next),t);
+ //newVertex->SetCurvilinearAbscissa(curvilinearLength);
+ newVertices.push_back(newVertex);
+ t = t + _sampling/norm_var;
+ }
+ ++it; ++next;
+ }
+ // add last:
+ if((it != itend) && (next == itend))// && (t == 0.f))
+ newVertices.push_back(&(*it));
+
+ _Vertices.clear();
+ _Vertices = newVertices;
+ newVertices.clear();
+
+ if(_rep)
+ {
+ delete _rep;
+ _rep = new StrokeRep(this);
+ }
+}
+
+void Stroke::RemoveVertex(StrokeVertex *iVertex)
+{
+ vertex_container::iterator it=_Vertices.begin(), itend=_Vertices.end();
+ for(;
+ it!=itend;
+ ++it)
+ {
+ if((*it) == iVertex)
+ {
+ delete iVertex;
+ it = _Vertices.erase(it); // it is now the element just after the erased element
+ break;
+ }
+ }
+ // recompute various values (length, curvilign abscissa)
+ float curvabsc = 0.f;
+ it=_Vertices.begin();
+ itend=_Vertices.end();
+ vertex_container::iterator previous=it;
+ for(;
+ (it!=itend);
+ ++it)
+ {
+ if(it != previous)
+ curvabsc += ((*it)->point2d()-(*previous)->point2d()).norm();
+ (*it)->SetCurvilinearAbscissa(curvabsc);
+ previous = it;
+ }
+ _Length = curvabsc;
+ it=_Vertices.begin();
+ for(;
+ (it!=itend);
+ ++it)
+ {
+ (*it)->SetStrokeLength(_Length);
+ }
+}
+
+void Stroke::InsertVertex(StrokeVertex *iVertex, StrokeInternal::StrokeVertexIterator next)
+{
+ vertex_container::iterator it=_Vertices.begin(), itend=_Vertices.end();
+
+ vertex_container::iterator itnext = next.getIt();
+ _Vertices.insert(itnext, iVertex);
+ // recompute various values (length, curvilign abscissa)
+ float curvabsc = 0.f;
+ it=_Vertices.begin();
+ itend=_Vertices.end();
+ vertex_container::iterator previous=it;
+ for(;
+ (it!=itend);
+ ++it)
+ {
+ curvabsc += ((*it)->point2d()-(*previous)->point2d()).norm();
+ (*it)->SetCurvilinearAbscissa(curvabsc);
+ previous = it;
+ }
+ _Length = curvabsc;
+ for(;
+ (it!=itend);
+ ++it)
+ {
+ (*it)->SetStrokeLength(_Length);
+ }
+}
+
+//! embedding vertex iterator
+Stroke::const_vertex_iterator Stroke::vertices_begin() const { return const_vertex_iterator(_Vertices.begin(),_Vertices.begin(), _Vertices.end()); }
+Stroke::const_vertex_iterator Stroke::vertices_end() const { return const_vertex_iterator(_Vertices.end(),_Vertices.begin(), _Vertices.end()); }
+Stroke::vertex_iterator Stroke::vertices_end() { return vertex_iterator(_Vertices.end(),_Vertices.begin(), _Vertices.end()); }
+
+StrokeInternal::StrokeVertexIterator Stroke::strokeVerticesBegin(float t) {
+ if((t!=0) && (t < _sampling))
+ Resample(t);
+ return StrokeInternal::StrokeVertexIterator(this->_Vertices.begin(), this->_Vertices.begin(), this->_Vertices.end());
+}
+
+StrokeInternal::StrokeVertexIterator Stroke::strokeVerticesEnd() {
+ return StrokeInternal::StrokeVertexIterator(this->_Vertices.end(), this->_Vertices.begin(), this->_Vertices.end());
+}
+
+Interface0DIterator Stroke::verticesBegin() {
+ Interface0DIterator ret(new StrokeInternal::StrokeVertexIterator(this->_Vertices.begin(),
+ this->_Vertices.begin(),
+ this->_Vertices.end()));
+ return ret;
+}
+
+Interface0DIterator Stroke::verticesEnd() {
+ Interface0DIterator ret(new StrokeInternal::StrokeVertexIterator(this->_Vertices.end(),
+ this->_Vertices.begin(),
+ this->_Vertices.end()));
+ return ret;
+}
+
+Interface0DIterator Stroke::pointsBegin(float t) {
+ return verticesBegin(); // FIXME
+}
+
+Interface0DIterator Stroke::pointsEnd(float t) {
+ return verticesEnd();
+}
+
+void Stroke::Render(const StrokeRenderer *iRenderer)
+{
+ if(!_rep)
+ _rep = new StrokeRep(this);
+ iRenderer->RenderStrokeRep(_rep);
+}
+
+void Stroke::RenderBasic(const StrokeRenderer *iRenderer)
+{
+ if(!_rep)
+ _rep = new StrokeRep(this);
+ iRenderer->RenderStrokeRepBasic(_rep);
+}
+
+Stroke::vertex_iterator Stroke::vertices_begin(float sampling)
+{
+ // Resample if necessary
+ if((sampling != 0) && (sampling < _sampling))
+ Resample(sampling);
+ return vertex_iterator(_Vertices.begin(),_Vertices.begin(),_Vertices.end());
+ //return _Vertices.begin();
+}
+//
+//Stroke::vertex_iterator Stroke::vertices_last()
+//{
+// vertex_iterator res = vertices_begin();
+// vertex_iterator next = res;++next;
+// while(!next.end())
+// {
+// ++next;
+// ++res;
+// }
+// return res;
+//}
+//
+//Stroke::const_vertex_iterator Stroke::vertices_last() const
+//{
+// const_vertex_iterator res = vertices_begin();
+// const_vertex_iterator next = res;++next;
+// while(!next.end())
+// {
+// ++next;
+// ++res;
+// }
+// return res;
+//}
+
+//Stroke::vertex_container::reverse_iterator Stroke::vertices_last(float sampling)
+//{
+// // Resample if necessary
+// if(sampling < _sampling)
+// Resample(sampling);
+// return _Vertices.rbegin();
+//}
+
+
+//inline Vec3r shaded_color(int iCombination = 0) const ;
+//inline Vec<3,real> Stroke::orientation2d(const_vertex_iterator it) const
+//{
+// return iterator_edge_orientation2d_function<Stroke, const_vertex_iterator>(this, it);
+//}
+// Vec3r Stroke::orientation2d(int iCombination) const
+// {
+// return edge_orientation2d_function<Stroke>(*this, iCombination);
+// }
+//inline Vec3r Stroke::orientation3d(const_vertex_iterator it) const
+//{
+// return iterator_edge_orientation3d_function<Stroke, const_vertex_iterator>(*this, it);
+//}
+// Vec3r Stroke::orientation3d(int iCombination) const
+// {
+// return edge_orientation3d_function<Stroke>(*this, iCombination);
+// }
+
+//Material Stroke::material() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=strokeVerticesEnd();
+// Material mat = (*v)->material();
+// for(;v!=vend;++v)
+// {
+// if(mat != (*v)->material())
+// Exception::raiseException();
+// }
+// return mat;
+//}
+
+//int Stroke::qi() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// int qi_= (*v)->qi();
+// for(;v!=vend;++v)
+// {
+// if((*v)->qi() != qi_)
+// Exception::raiseException();
+// }
+// return qi_;
+//}
+//inline occluder_container::const_iterator occluders_begin() const {return _FEdgeA->occluders().begin();}
+//inline occluder_container::const_iterator occluders_end() const {return _FEdgeA->occluders().end();}
+
+//int Stroke::occluders_size() const
+//{
+// return qi();
+//}
+//
+//bool Stroke::occluders_empty() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// bool empty = (*v)->occluders_empty();
+// for(;v!=vend;++v)
+// {
+// if((*v)->occluders_empty() != empty)
+// Exception::raiseException();
+// }
+// return empty;
+//}
+////inline const polygon3d& occludee() const {return *(_FEdgeA->aFace());}
+//const SShape * Stroke::occluded_shape() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// const SShape *sshape = (*v)->occluded_shape();
+// for(;v!=vend;++v)
+// {
+// if((*v)->occluded_shape() != sshape)
+// Exception::raiseException();
+// }
+// return sshape;
+//}
+//
+//const bool Stroke::occludee_empty() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// bool empty = (*v)->occludee_empty();
+// for(;v!=vend;++v)
+// {
+// if((*v)->occludee_empty() != empty)
+// Exception::raiseException();
+// }
+// return empty;
+//}
+
+//const SShape * Stroke::shape() const
+//{
+// const_vertex_iterator v=vertices_begin(), vend=vertices_end();
+// const SShape *sshape = (*v)->shape();
+// for(;v!=vend;++v)
+// {
+// if((*v)->shape() != sshape)
+// Exception::raiseException();
+// }
+// return sshape;
+//}
+
+// real Stroke::z_discontinuity(int iCombination) const
+// {
+// return z_discontinuity_edge_function<Stroke>(*this, iCombination);
+// }
+
+// Vec3r Stroke::curvature2d_as_vector(int iCombination) const
+// {
+// return curvature2d_as_vector_edge_function<Stroke>(*this, iCombination);
+// }
+
+// real Stroke::curvature2d_as_angle(int iCombination) const
+// {
+// return curvature2d_as_angle_edge_function<Stroke>(*this, iCombination);
+// }
+
+// float Stroke::shape_importance(int iCombination) const
+// {
+// return shape_importance_edge_function<Stroke>(*this, iCombination);
+// }
+
+
+// float Stroke::local_average_depth(int iCombination ) const
+// {
+// return local_average_depth_edge_function<Stroke >(*this, iCombination);
+// }
+
+// float Stroke::local_depth_variance(int iCombination) const
+// {
+// return local_depth_variance_edge_function<Stroke>(*this, iCombination);
+// }
+
+// real Stroke::local_average_density(float sigma , int iCombination ) const
+// {
+// return density_edge_function<Stroke>(*this, iCombination);
+// }
diff --git a/source/blender/freestyle/intern/stroke/Stroke.h b/source/blender/freestyle/intern/stroke/Stroke.h
new file mode 100755
index 00000000000..a5cf51f8224
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/Stroke.h
@@ -0,0 +1,584 @@
+//
+// Filename : Stroke.h
+// Author(s) : Stephane Grabli
+// Purpose : Classes to define a stroke
+// Date of creation : 09/09/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STROKE_H
+# define STROKE_H
+
+# include <vector>
+# include <map>
+# include "../system/FreestyleConfig.h"
+# include "../view_map/Silhouette.h"
+# include "Curve.h"
+# include "../view_map/Interface1D.h"
+# include "../system/StringUtils.h"
+
+//
+// StrokeAttribute
+//
+////////////////////////////////////////////////////////
+
+/*! Class to define an attribute associated to a Stroke Vertex.
+ * This attribute stores the color, alpha and thickness values
+ * for a Stroke Vertex.
+ */
+class LIB_STROKE_EXPORT StrokeAttribute
+{
+public:
+
+ /*! default constructor */
+ StrokeAttribute();
+ /*! Copy constructor */
+ StrokeAttribute(const StrokeAttribute& iBrother);
+ /*! Builds a stroke vertex attribute from
+ * a set of parameters.
+ * \param iRColor
+ * The Red Component value.
+ * \param iGColor
+ * The Green Component value.
+ * \param iBColor
+ * The Blue Component value.
+ * \param iAlpha
+ * The transparency value
+ * \param iRThickness
+ * The thickness of the stroke on the right
+ * \param iLThickness
+ * The Thickness of the stroke on the left
+ */
+ StrokeAttribute(float iRColor, float iGColor, float iBColor,
+ float iAlpha,
+ float iRThickness, float iLThickness);
+
+ /*! Interpolation constructor.
+ * Builds a StrokeAttribute from two
+ * StrokeAttributes and an interpolation parameter.
+ * \param a1
+ * The first Attribute.
+ * \param a2
+ * The second parameter.
+ * \param t
+ * The interpolation parameter.
+ */
+ StrokeAttribute(const StrokeAttribute& a1, const StrokeAttribute& a2, float t);
+
+ /*! destructor */
+ virtual ~StrokeAttribute();
+
+ /* operators */
+ /*! operator = */
+ StrokeAttribute& operator=(const StrokeAttribute& iBrother);
+
+ /* accessors */
+ /*! Returns the attribute's color.
+ * \return The array of 3 floats containing the R,G,B values
+ * of the attribute's color.
+ */
+ inline const float* getColor() const { return _color; }
+ /*! Returns the R color component. */
+ inline const float getColorR() const { return _color[0]; }
+ /*! Returns the G color component. */
+ inline const float getColorG() const { return _color[1]; }
+ /*! Returns the B color component. */
+ inline const float getColorB() const { return _color[2]; }
+ /*! Returns the RGB color components. */
+ inline Vec3f getColorRGB() const { return Vec3f(_color[0], _color[1], _color[2]); }
+ /*! Returns the alpha color component. */
+ inline float getAlpha() const { return _alpha; }
+ /*! Returns the attribute's thickness.
+ * \return an array of 2 floats. the first value is
+ * the thickness on the right of the vertex when following
+ * the stroke, the second one is the thickness on the left.
+ */
+ inline const float* getThickness() const { return _thickness; }
+ /*! Returns the thickness on the right of the vertex when following the
+ * stroke. */
+ inline const float getThicknessR() const { return _thickness[0]; }
+ /*! Returns the thickness on the left of the vertex when following the
+ * stroke. */
+ inline const float getThicknessL() const { return _thickness[1]; }
+ /*! Returns the thickness on the right and on the left of the vertex when following the
+ * stroke. */
+ inline Vec2f getThicknessRL() const { return Vec2f(_thickness[0], _thickness[1]); }
+
+ /*! Returns true if the strokevertex is visible, false otherwise */
+ inline bool isVisible() const {return _visible;}
+
+ /*! Returns an attribute of type real
+ * \param iName
+ * The name of the attribute
+ */
+ float getAttributeReal(const char *iName) const;
+ /*! Returns an attribute of type Vec2f
+ * \param iName
+ * The name of the attribute
+ */
+ Vec2f getAttributeVec2f(const char *iName) const;
+ /*! Returns an attribute of type Vec3f
+ * \param iName
+ * The name of the attribute
+ */
+ Vec3f getAttributeVec3f(const char *iName) const;
+
+ /*! Checks whether the attribute iName is availbale */
+ bool isAttributeAvailableReal(const char *iName) const ;
+ /*! Checks whether the attribute iName is availbale */
+ bool isAttributeAvailableVec2f(const char *iName) const ;
+ /*! Checks whether the attribute iName is availbale */
+ bool isAttributeAvailableVec3f(const char *iName) const ;
+
+ /* modifiers */
+ /*! Sets the attribute's color.
+ * \param r
+ * The new R value.
+ * \param g
+ * The new G value.
+ * \param b
+ * The new B value.
+ */
+ inline void setColor(float r, float g, float b) { _color[0]=r; _color[1]=g; _color[2]=b; }
+ /*! Sets the attribute's color.
+ * \param iRGB
+ * The new RGB values.
+ */
+ inline void setColor(const Vec3f& iRGB) { _color[0]=iRGB[0]; _color[1]=iRGB[1]; _color[2]=iRGB[2]; }
+ /*! Sets the attribute's alpha value.
+ * \param alpha
+ * The new alpha value.
+ */
+ inline void setAlpha(float alpha) { _alpha = alpha; }
+ /*! Sets the attribute's thickness.
+ * \param tr
+ * The thickness on the right of the vertex when following the stroke.
+ * \param tl
+ * The thickness on the left of the vertex when following the stroke.
+ */
+ inline void setThickness(float tr, float tl) { _thickness[0]=tr; _thickness[1]=tl; }
+ /*! Sets the attribute's thickness.
+ * \param tRL
+ * The thickness on the right and on the left of the vertex when following the stroke.
+ */
+ inline void setThickness(const Vec2f& tRL) { _thickness[0]=tRL[0]; _thickness[1]=tRL[1]; }
+
+ /*! Sets the visible flag. True means visible. */
+ inline void SetVisible(bool iVisible){ _visible = iVisible; }
+
+ /*! Adds a user defined attribute of type real
+ * If there is no attribute of name iName, it is added.
+ * Otherwise, the new value replaces the old one.
+ * \param iName
+ * The name of the attribute
+ * \param att
+ * The attribute's value
+ */
+ void setAttributeReal(const char *iName, float att);
+ /*! Adds a user defined attribute of type Vec2f
+ * If there is no attribute of name iName, it is added.
+ * Otherwise, the new value replaces the old one.
+ * \param iName
+ * The name of the attribute
+ * \param att
+ * The attribute's value
+ */
+ void setAttributeVec2f(const char *iName, const Vec2f& att);
+ /*! Adds a user defined attribute of type Vec3f
+ * If there is no attribute of name iName, it is added.
+ * Otherwise, the new value replaces the old one.
+ * \param iName
+ * The name of the attribute
+ * \param att
+ * The attribute's value
+ */
+ void setAttributeVec3f(const char *iName, const Vec3f& att);
+
+private:
+
+ typedef std::map<const char*, float, StringUtils::ltstr> realMap ;
+ typedef std::map<const char*, Vec2f, StringUtils::ltstr> Vec2fMap ;
+ typedef std::map<const char*, Vec3f, StringUtils::ltstr> Vec3fMap ;
+
+ float _color[3]; //! the color
+ float _alpha; //! alpha
+ float _thickness[2]; //! the thickness on the right and on the left of the backbone vertex (the stroke is oriented)
+ bool _visible;
+ realMap *_userAttributesReal;
+ Vec2fMap *_userAttributesVec2f;
+ Vec3fMap *_userAttributesVec3f;
+};
+
+
+//
+// StrokeVertex
+//
+////////////////////////////////////////////////////////
+
+/*! Class to define a stroke vertex.
+ */
+class LIB_STROKE_EXPORT StrokeVertex : public CurvePoint
+{
+public: // Implementation of Interface0D
+
+ /*! Returns the string "StrokeVertex"*/
+ virtual string getExactTypeName() const {
+ return "StrokeVertex";
+ }
+
+private:
+
+ StrokeAttribute _Attribute; //! The attribute associated to the vertex
+ float _CurvilignAbscissa; //! the curvilign abscissa
+ float _StrokeLength; // stroke length
+
+public:
+
+ /*! default constructor */
+ StrokeVertex();
+ /*! Copy constructor */
+ StrokeVertex(const StrokeVertex& iBrother);
+ /*! Builds a stroke vertex from a SVertex */
+ StrokeVertex(SVertex *iSVertex);
+ /*! Builds a stroke vertex from a CurvePoint */
+ StrokeVertex(CurvePoint *iPoint);
+ /*! Builds Stroke Vertex from 2 stroke vertices and an interpolation parameter*/
+ StrokeVertex(StrokeVertex *iA, StrokeVertex *iB, float t3);
+ /*! Builds a stroke from a view vertex and an attribute */
+ StrokeVertex(SVertex *iSVertex, const StrokeAttribute& iAttribute);
+ /*! destructor */
+ virtual ~StrokeVertex();
+
+ /* operators */
+ /*! operator = */
+ StrokeVertex& operator=(const StrokeVertex& iBrother);
+
+ /* accessors */
+ /*! Returns the 2D point x coordinate */
+ inline real x() const { return _Point2d[0]; }
+ /*! Returns the 2D point y coordinate */
+ inline real y() const { return _Point2d[1]; }
+ /*! Returns the 2D point coordinates as a Vec2d */
+ Vec2f getPoint () {return Vec2f((float)point2d()[0], (float)point2d()[1]);}
+ /*! Returns the ith 2D point coordinate (i=0 or 1)*/
+ inline real operator[](const int i) const { return _Point2d[i]; }
+ /*! Returns the StrokeAttribute for this StrokeVertex */
+ inline const StrokeAttribute& attribute() const { return _Attribute; }
+ /*! Returns a non-const reference to the StrokeAttribute of this StrokeVertex */
+ inline StrokeAttribute& attribute() {return _Attribute;}
+ /*! Returns the curvilinear abscissa */
+ inline float curvilinearAbscissa() const {return _CurvilignAbscissa;}
+ /*! Returns the length of the Stroke to which this StrokeVertex belongs */
+ inline float strokeLength() const {return _StrokeLength;}
+ /*! Returns the curvilinear abscissa of this StrokeVertex in the Stroke */
+ inline float u() const {return _CurvilignAbscissa/_StrokeLength;}
+
+ /* modifiers */
+ /*! Sets the 2D x value */
+ inline void SetX(real x) { _Point2d[0]=x; }
+ /*! Sets the 2D y value */
+ inline void SetY(real y) { _Point2d[1]=y; }
+ /*! Sets the 2D x and y values */
+ inline void SetPoint(real x, real y) { _Point2d[0]=x; _Point2d[1]=y;}
+ /*! Sets the 2D x and y values */
+ inline void SetPoint(const Vec2f& p) { _Point2d[0] = p[0];_Point2d[1] = p[1];}
+ /*! Returns a reference to the ith 2D point coordinate (i=0 or 1) */
+ inline real& operator[](const int i) { return _Point2d[i]; }
+ /*! Sets the attribute. */
+ inline void SetAttribute(const StrokeAttribute& iAttribute) { _Attribute = iAttribute; }
+ /*! Sets the curvilinear abscissa of this StrokeVertex in the Stroke */
+ inline void SetCurvilinearAbscissa(float iAbscissa) {_CurvilignAbscissa = iAbscissa;}
+ /*! Sets the Stroke's length (it's only a value stored by the Stroke Vertex, it won't
+ * change the real Stroke's length.)
+ */
+ inline void SetStrokeLength(float iLength) {_StrokeLength = iLength;}
+
+ /* interface definition */
+ /* inherited */
+
+};
+
+
+//
+// Stroke
+//
+////////////////////////////////////////////////////////
+
+class StrokeRenderer;
+class StrokeRep;
+
+namespace StrokeInternal {
+ class vertex_const_traits ;
+ class vertex_nonconst_traits ;
+ template<class Traits> class vertex_iterator_base;
+ class StrokeVertexIterator;
+} // end of namespace StrokeInternal
+
+/*! Class to define a stroke.
+ * A stroke is made of a set of 2D vertices (StrokeVertex), regularly spaced out.
+ * This set of vertices defines the stroke's backbone geometry.
+ * Each of these stroke vertices defines the stroke's shape and appearance
+ * at this vertex position.
+ */
+class LIB_STROKE_EXPORT Stroke : public Interface1D
+{
+public: // Implementation of Interface1D
+
+ /*! Returns the string "Stroke" */
+ virtual string getExactTypeName() const {
+ return "Stroke";
+ }
+
+ // Data access methods
+
+ /*! Returns the Id of the Stroke */
+ virtual Id getId() const {
+ return _id;
+ }
+ /*! The different blending modes
+ * available to similate the interaction
+ * media-medium.
+ */
+ typedef enum{
+ DRY_MEDIUM,/*!< To simulate a dry medium such as Pencil or Charcoal.*/
+ HUMID_MEDIUM,/*!< To simulate ink painting (color substraction blending).*/
+ OPAQUE_MEDIUM, /*!< To simulate an opaque medium (oil, spray...).*/
+ } MediumType;
+
+
+public:
+ typedef std::deque<StrokeVertex*> vertex_container; // the vertices container
+ typedef std::vector<ViewEdge*> viewedge_container; // the viewedges container
+ typedef StrokeInternal::vertex_iterator_base<StrokeInternal::vertex_nonconst_traits > vertex_iterator;
+ typedef StrokeInternal::vertex_iterator_base<StrokeInternal::vertex_const_traits> const_vertex_iterator;
+
+public:
+ //typedef StrokeVertex vertex_type;
+private:
+ vertex_container _Vertices; //! The stroke's backbone vertices
+ Id _id;
+ float _Length; // The stroke length
+ viewedge_container _ViewEdges;
+ float _sampling;
+ StrokeRenderer *_renderer; // mark implementation OpenGL renderer
+ MediumType _mediumType;
+ unsigned int _textureId;
+ bool _tips;
+ Vec2r _extremityOrientations[2]; // the orientations of the first and last extermity
+ StrokeRep *_rep;
+
+public:
+ /*! default constructor */
+ Stroke();
+ /*! copy constructor */
+ Stroke(const Stroke& iBrother);
+ /*! Builds a stroke from a set of StrokeVertex.
+ * This constructor is templated by an iterator type.
+ * This iterator type must allow the vertices parsing
+ * using the ++ operator.
+ * \param iBegin
+ * The iterator pointing to the first vertex.
+ * \param iEnd
+ * The iterator pointing to the end of the vertex list.
+ */
+ template<class InputVertexIterator>
+ Stroke(InputVertexIterator iBegin, InputVertexIterator iEnd);
+
+ /*! Destructor */
+ virtual ~Stroke();
+
+ /* operators */
+ /*! operator = */
+ Stroke& operator=(const Stroke& iBrother);
+
+ /*! Compute the sampling needed to get iNVertices
+ * vertices.
+ * If the specified number of vertices is less than the
+ * actual number of vertices, the actual sampling value is returned.
+ * (To remove Vertices, use the RemoveVertex() method of this class).
+ * \param iNVertices
+ * The number of StrokeVertices we eventually want
+ * in our Stroke.
+ * \return the sampling that must be used in the Resample(float) method.
+ * @see Resample(int)
+ * @see Resample(float)
+ */
+ float ComputeSampling(int iNVertices);
+
+ /*! Resampling method.
+ * Resamples the curve so that it eventually
+ * has iNPoints. That means it is going
+ * to add iNPoints-vertices_size, if vertices_size
+ * is the number of points we already have.
+ * Is vertices_size >= iNPoints, no resampling is done.
+ * \param iNPoints
+ * The number of vertices we eventually want in our stroke.
+ */
+ void Resample(int iNPoints);
+
+ /*! Resampling method.
+ * Resamples the curve with a given sampling.
+ * If this sampling is < to the actual sampling
+ * value, no resampling is done.
+ * \param iSampling
+ * The new sampling value.
+ */
+ void Resample(float iSampling);
+
+ /*! Removes the stroke vertex iVertex
+ * from the stroke.
+ * The length and curvilinear abscissa are updated
+ * consequently.
+ */
+ void RemoveVertex(StrokeVertex *iVertex);
+
+ /*! Inserts the stroke vertex iVertex
+ * in the stroke before next.
+ * The length, curvilinear abscissa are updated
+ * consequently.
+ * \param iVertex
+ * The StrokeVertex to insert in the Stroke.
+ * \param next
+ * A StrokeVertexIterator pointing to the StrokeVeretx before
+ * which iVertex must be inserted.
+ */
+ void InsertVertex(StrokeVertex *iVertex, StrokeInternal::StrokeVertexIterator next);
+
+ /* Render method */
+ void Render(const StrokeRenderer *iRenderer );
+ void RenderBasic(const StrokeRenderer *iRenderer );
+
+ /* Iterator definition */
+
+ /* accessors */
+ /*! Returns the 2D length of the Stroke */
+ inline real getLength2D() const {return _Length;}
+ /*! Returns a reference to the time stamp value of the stroke. */
+ /*! Returns the MediumType used for this Stroke. */
+ inline MediumType getMediumType() const {return _mediumType;}
+ /*! Returns the id of the texture used to simulate th marks system
+ * for this Stroke
+ */
+ inline unsigned int getTextureId() {return _textureId;}
+ /*! Returns true if this Stroke uses a texture with tips, false
+ * otherwise.
+ */
+ inline bool hasTips() const {return _tips;}
+ /* these advanced iterators are used only in C++ */
+ inline int vertices_size() const {return _Vertices.size();}
+ inline viewedge_container::const_iterator viewedges_begin() const {return _ViewEdges.begin();}
+ inline viewedge_container::iterator viewedges_begin() {return _ViewEdges.begin();}
+ inline viewedge_container::const_iterator viewedges_end() const {return _ViewEdges.end();}
+ inline viewedge_container::iterator viewedges_end() {return _ViewEdges.end();}
+ inline int viewedges_size() const {return _ViewEdges.size();}
+
+ inline Vec2r getBeginningOrientation() const {return _extremityOrientations[0];}
+ inline real getBeginningOrientationX() const {return _extremityOrientations[0].x();}
+ inline real getBeginningOrientationY() const {return _extremityOrientations[0].y();}
+ inline Vec2r getEndingOrientation() const {return _extremityOrientations[1];}
+ inline real getEndingOrientationX() const {return _extremityOrientations[1].x();}
+ inline real getEndingOrientationY() const {return _extremityOrientations[1].y();}
+
+
+ /* modifiers */
+ /*! Sets the Id of the Stroke. */
+ inline void SetId(const Id& id) {_id = id;}
+ /*! Sets the 2D length of the Stroke. */
+ void SetLength(float iLength);
+ /*! Sets the medium type that must be used for this Stroke. */
+ inline void SetMediumType(MediumType iType) {_mediumType = iType;}
+ /*! Sets the texture id to be used to simulate the marks system for this Stroke. */
+ inline void SetTextureId(unsigned int id) {_textureId = id;}
+ /*! Sets the flag telling whether this stroke is using a texture with
+ * tips or not.
+ */
+ inline void SetTips(bool iTips) {_tips = iTips;}
+
+ inline void push_back(StrokeVertex* iVertex) { _Vertices.push_back(iVertex); }
+ inline void push_front(StrokeVertex* iVertex) { _Vertices.push_front(iVertex); }
+ inline void AddViewEdge(ViewEdge *iViewEdge) {_ViewEdges.push_back(iViewEdge);}
+ inline void SetBeginningOrientation(const Vec2r& iOrientation) {_extremityOrientations[0] = iOrientation;}
+ inline void SetBeginningOrientation(real x, real y) {_extremityOrientations[0] = Vec2r(x,y);}
+ inline void SetEndingOrientation(const Vec2r& iOrientation) {_extremityOrientations[1] = iOrientation;}
+ inline void SetEndingOrientation(real x, real y) {_extremityOrientations[1] = Vec2r(x,y);}
+
+ /* Information access interface */
+
+ // embedding vertex iterator
+ const_vertex_iterator vertices_begin() const;
+ vertex_iterator vertices_begin(float t=0.f);
+ const_vertex_iterator vertices_end() const;
+ vertex_iterator vertices_end();
+
+ /*! Returns a StrokeVertexIterator pointing on the first StrokeVertex of the
+ * Stroke. One can specifly a sampling value to resample the Stroke
+ * on the fly if needed.
+ * \param t
+ * The resampling value with which we want our Stroke to be resampled.
+ * If 0 is specified, no resampling is done.
+ */
+ StrokeInternal::StrokeVertexIterator strokeVerticesBegin(float t=0.f);
+ /*! Returns a StrokeVertexIterator pointing after the last StrokeVertex of the
+ * Stroke.
+ */
+ StrokeInternal::StrokeVertexIterator strokeVerticesEnd();
+ /*! Returns the number of StrokeVertex constituing the Stroke. */
+ inline unsigned int strokeVerticesSize() const {return _Vertices.size();}
+
+ // Iterator access (Interface1D)
+ /*! Returns an Interface0DIterator pointing on the first StrokeVertex of the
+ * Stroke.
+ */
+ virtual Interface0DIterator verticesBegin();
+ /*! Returns an Interface0DIterator pointing after the last StrokeVertex of the
+ * Stroke.
+ */
+ virtual Interface0DIterator verticesEnd();
+
+ virtual Interface0DIterator pointsBegin(float t=0.f);
+ virtual Interface0DIterator pointsEnd(float t=0.f);
+};
+
+
+
+//
+// Implementation
+//
+////////////////////////////////////////////////////////
+
+
+template<class InputVertexIterator>
+Stroke::Stroke(InputVertexIterator iBegin, InputVertexIterator iEnd)
+{
+ for(InputVertexIterator v=iBegin, vend=iEnd;
+ v!=vend;
+ v++)
+ {
+ _Vertices.push_back(*v);
+ }
+ _Length = 0;
+ _id = 0;
+}
+
+#endif // STROKE_H
diff --git a/source/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h b/source/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h
new file mode 100755
index 00000000000..279a0b12089
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h
@@ -0,0 +1,142 @@
+//
+// Filename : StrokeAdvancedIterators.h
+// Author(s) : Stephane Grabli
+// Purpose : Iterators used to iterate over the elements of the Stroke
+// Can't be used in python
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STROKEADVANCEDITERATORS_H
+# define STROKEADVANCEDITERATORS_H
+
+# include "Stroke.h"
+
+namespace StrokeInternal {
+
+ class vertex_const_traits : public Const_traits<StrokeVertex*> {
+ public:
+ typedef std::deque<StrokeVertex*> vertex_container;
+ typedef vertex_container::const_iterator vertex_container_iterator ;
+ };
+ class vertex_nonconst_traits : public Nonconst_traits<StrokeVertex*> {
+ public:
+ typedef std::deque<StrokeVertex*> vertex_container; //! the vertices container
+ typedef vertex_container::iterator vertex_container_iterator ;
+ };
+
+
+ template<class Traits>
+ class vertex_iterator_base : public IteratorBase<Traits,BidirectionalIteratorTag_Traits>
+ {
+ public:
+ typedef vertex_iterator_base<Traits> Self;
+ protected:
+ typedef IteratorBase<Traits,BidirectionalIteratorTag_Traits> parent_class;
+ typedef typename Traits::vertex_container_iterator vertex_container_iterator;
+ typedef vertex_iterator_base<vertex_nonconst_traits> iterator;
+ typedef vertex_iterator_base<vertex_const_traits> const_iterator;
+ //protected:
+ public:
+ vertex_container_iterator _it;
+ vertex_container_iterator _begin;
+ vertex_container_iterator _end;
+ public:
+ friend class Stroke;
+ //friend class vertex_iterator;
+ inline vertex_iterator_base()
+ : parent_class()
+ {}
+ inline vertex_iterator_base(const iterator& iBrother)
+ : parent_class()
+ {_it = iBrother._it;_begin = iBrother._begin;_end = iBrother._end;}
+ inline vertex_iterator_base(const const_iterator& iBrother)
+ : parent_class()
+ {_it = iBrother._it;_begin = iBrother._begin;_end = iBrother._end;}
+ //protected://FIXME
+ public:
+ inline vertex_iterator_base(vertex_container_iterator it, vertex_container_iterator begin, vertex_container_iterator end)
+ : parent_class()
+ {
+ _it = it;
+ _begin = begin;
+ _end = end;
+ }
+
+ public:
+ virtual ~vertex_iterator_base() {}
+
+ virtual bool begin() const {return _it==_begin? true : false;}
+ virtual bool end() const {return _it==_end ? true : false;}
+
+ // operators
+ inline Self& operator++() // operator corresponding to ++i
+ {
+ ++_it;
+ return *(this);
+ }
+ inline Self operator++(int) // opérateur correspondant à i++
+ {
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ ++_it; // dans un temporaire.
+ return tmp;
+ }
+ inline Self& operator--() // operator corresponding to ++i
+ {
+ --_it;
+ return *(this);
+ }
+ inline Self operator--(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ --_it; // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const Self& b) const
+ {
+ return (_it != b._it);
+ }
+ virtual bool operator==(const Self& b) const
+ {
+ return !(*this != b);
+ }
+
+ // dereferencing
+ virtual typename Traits::reference operator*() const {return *(_it);}
+ virtual typename Traits::pointer operator->() const { return &(operator*());}
+
+ /*! accessors */
+ inline vertex_container_iterator it() const {return _it;}
+ inline vertex_container_iterator getBegin() const {return _begin;}
+ inline vertex_container_iterator getEnd() const {return _end;}
+ };
+
+} // end of namespace StrokeInternal
+
+
+#endif // STROKEADVANCEDITERATORS_H
+
+
diff --git a/source/blender/freestyle/intern/stroke/StrokeIO.cpp b/source/blender/freestyle/intern/stroke/StrokeIO.cpp
new file mode 100755
index 00000000000..7f540939fa1
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeIO.cpp
@@ -0,0 +1,55 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "StrokeIO.h"
+#include "StrokeAdvancedIterators.h"
+
+
+ostream& operator<<(ostream& out, const StrokeAttribute& iStrokeAttribute){
+ out << " StrokeAttribute" << endl;
+ out << " color : (" << iStrokeAttribute.getColorR() << "," << iStrokeAttribute.getColorG() << "," << iStrokeAttribute.getColorB() << ")" << endl;
+ out << " alpha : " << iStrokeAttribute.getAlpha() << endl;
+ out << " thickness : " << iStrokeAttribute.getThicknessR() << ", " << iStrokeAttribute.getThicknessL() << endl;
+ out << " visible : " << iStrokeAttribute.isVisible() << endl;
+ return out;
+}
+
+ostream& operator<<(ostream& out, const StrokeVertex& iStrokeVertex){
+ out << " StrokeVertex" << endl;
+ out << " id : " << iStrokeVertex.getId() << endl;
+ out << " curvilinear length : " << iStrokeVertex.curvilinearAbscissa() << endl;
+ out << " 2d coordinates : (" << iStrokeVertex.getProjectedX() << "," << iStrokeVertex.getProjectedY() << "," << iStrokeVertex.getProjectedZ() << ")" << endl;
+ out << " 3d coordinates : (" << iStrokeVertex.getX() << "," << iStrokeVertex.getY() << "," << iStrokeVertex.getZ() << ")"<< endl;
+ out << iStrokeVertex.attribute() << endl;
+ return out;
+}
+
+ostream& operator<<(ostream& out, const Stroke& iStroke){
+ out << "Stroke" << endl;
+ out << " id : " << iStroke.getId() << endl;
+ out << " length : " << iStroke.getLength2D() << endl;
+ out << " medium type : " << iStroke.getMediumType() << endl;
+ for(Stroke::const_vertex_iterator v=iStroke.vertices_begin(), vend=iStroke.vertices_end();
+ v!=vend;
+ ++v){
+ out << *(*v) << endl;
+ }
+ return out;
+} \ No newline at end of file
diff --git a/source/blender/freestyle/intern/stroke/StrokeIO.h b/source/blender/freestyle/intern/stroke/StrokeIO.h
new file mode 100755
index 00000000000..42b99420f4a
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeIO.h
@@ -0,0 +1,47 @@
+//
+// Filename : StrokeIO.h
+// Author(s) : Stephane Grabli
+// Purpose : Functions to manage I/O for the stroke
+// Date of creation : 03/02/2004
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STROKEIO_H
+# define STROKEIO_H
+
+# include <iostream>
+# include "../system/FreestyleConfig.h"
+# include "Stroke.h"
+
+LIB_STROKE_EXPORT
+ostream& operator<<(ostream& out, const StrokeAttribute& iStrokeAttribute);
+
+LIB_STROKE_EXPORT
+ostream& operator<<(ostream& out, const StrokeVertex& iStrokeVertex);
+
+LIB_STROKE_EXPORT
+ostream& operator<<(ostream& out, const Stroke& iStroke);
+
+
+#endif // STROKEIO_H \ No newline at end of file
diff --git a/source/blender/freestyle/intern/stroke/StrokeIterators.h b/source/blender/freestyle/intern/stroke/StrokeIterators.h
new file mode 100755
index 00000000000..9cc08a0532a
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeIterators.h
@@ -0,0 +1,227 @@
+//
+// Filename : StrokeIterators.h
+// Author(s) : Stephane Grabli
+// Purpose : Iterators used to iterate over the elements of the Stroke
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STROKEITERATORS_H
+# define STROKEITERATORS_H
+
+# include "Stroke.h"
+
+namespace StrokeInternal {
+
+ //
+ // StrokeVertexIterator
+ //
+ /////////////////////////////////////////////////
+
+ /*! Class defining an iterator designed to iterate over
+ * the StrokeVertex of a Stroke.
+ * An instance of a StrokeVertexIterator can only be obtained
+ * from a Stroke by calling strokeVerticesBegin() or strokeVerticesEnd().
+ * It is iterating over the same vertices as an Interface0DIterator.
+ * The difference resides in the object access. Indeed, an Interface0DIterator
+ * allows only an access to an Interface0D whereas we could need
+ * to access the specialized StrokeVertex type. In this case, one
+ * should use a StrokeVertexIterator.
+ * The castToInterface0DIterator() method is useful to get an Interface0DIterator
+ * from a StrokeVertexIterator in order to call any functions of the
+ * type UnaryFunction0D.
+ * \attention In the scripting language, you must call
+ * \code it2 = StrokeVertexIterator(it1) \endcode instead of
+ * \code it2 = it1 \endcode
+ * where \a it1 and \a it2 are 2 StrokeVertexIterator.
+ * Otherwise, incrementing \a it1 will also increment \a it2.
+ */
+ class StrokeVertexIterator : public Interface0DIteratorNested
+ {
+ public:
+
+ /*! Default constructor. */
+ StrokeVertexIterator() {}
+
+ /*! Copy constructor. */
+ StrokeVertexIterator(const StrokeVertexIterator& vi) {
+ _it = vi._it;
+ _begin = vi._begin;
+ _end = vi._end;
+ }
+
+ StrokeVertexIterator(const ::Stroke::vertex_container::iterator& it,
+ const ::Stroke::vertex_container::iterator& begin,
+ const ::Stroke::vertex_container::iterator& end) {
+ _it = it;
+ _begin = begin;
+ _end = end;
+ }
+
+ virtual ~StrokeVertexIterator() {}
+
+ /*! Casts this StrokeVertexIterator into an Interface0DIterator.
+ * Useful for any call to a function of the type UnaryFunction0D.
+ */
+ inline Interface0DIterator castToInterface0DIterator() const {
+ Interface0DIterator ret(new StrokeVertexIterator(*this));
+ return ret;
+ }
+ /*! operator=
+ * \attention In the scripting language, you must call
+ * \code it2 = StrokeVertexIterator(it1) \endcode instead of
+ * \code it2 = it1 \endcode
+ * where \a it1 and \a it2 are 2 StrokeVertexIterator.
+ * Otherwise, incrementing \a it1 will also increment \a it2.
+ *
+ */
+ StrokeVertexIterator& operator=(const StrokeVertexIterator& vi) {
+ _it = vi._it;
+ _begin = vi._begin;
+ _end = vi._end;
+ return *this;
+ }
+
+ /*! Returns the string "StrokeVertexIterator". */
+ virtual string getExactTypeName() const {
+ return "StrokeVertexIterator";
+ }
+
+ /*! Returns a reference to the pointed StrokeVertex.
+ * In the scripting language, you must call
+ * "getObject()"instead.
+ */
+ virtual StrokeVertex& operator*() {
+ return **_it;
+ }
+
+ /*! Returns a pointer to the pointed StrokeVertex.
+ * Can't be called in the scripting language.
+ */
+ virtual StrokeVertex* operator->() {
+ return &(operator*());
+ }
+
+ /*! Increments. In the scripting language, call
+ * "increment()".
+ */
+ virtual StrokeVertexIterator& operator++() {
+ increment();
+ return *this;
+ }
+
+ /*! Increments. In the scripting language, call
+ * "increment()".
+ */
+ virtual StrokeVertexIterator operator++(int) {
+ StrokeVertexIterator ret(*this);
+ increment();
+ return ret;
+ }
+
+ /*! Decrements. In the scripting language, call
+ * "decrement()".
+ */
+ virtual StrokeVertexIterator& operator--() {
+ decrement();
+ return *this;
+ }
+
+ /*! Decrements. In the scripting language, call
+ * "decrement()".
+ */
+ virtual StrokeVertexIterator operator--(int) {
+ StrokeVertexIterator ret(*this);
+ decrement();
+ return ret;
+ }
+
+ /*! Increments. */
+ virtual void increment() {
+ ++_it;
+ }
+
+ /*! Decrements. */
+ virtual void decrement() {
+ --_it;
+ }
+
+ /*! Returns true if the pointed StrokeVertex is the
+ * first of the Stroke.
+ */
+ bool isBegin() const {
+ return _it == _begin;
+ }
+
+ /*! Returns true if the pointed StrokeVertex is after the
+ * last StrokeVertex of the Stroke.
+ */
+ bool isEnd() const {
+ return _it == _end;
+ }
+
+ /*! operator == */
+ virtual bool operator==(const Interface0DIteratorNested& it) const {
+ const StrokeVertexIterator* it_exact = dynamic_cast<const StrokeVertexIterator*>(&it);
+ if (!it_exact)
+ return false;
+ return (_it == it_exact->_it);
+ }
+
+ /*! Returns the curvilinear abscissa of the current point */
+ virtual float t() const{
+ return (*_it)->curvilinearAbscissa();
+ }
+ /*! Returns the point's parameter in the stroke */
+ virtual float u() const{
+ return (*_it)->u();
+ }
+
+ /*! Cloning method */
+ virtual StrokeVertexIterator* copy() const {
+ return new StrokeVertexIterator(*this);
+ }
+
+ //
+ // Not exported in Python
+ //
+ //////////////////////////////////////////////////
+
+ const ::Stroke::vertex_container::iterator& getIt() {
+ return _it;
+ }
+
+ private:
+
+ ::Stroke::vertex_container::iterator _it;
+ ::Stroke::vertex_container::iterator _begin;
+ ::Stroke::vertex_container::iterator _end;
+ };
+
+} // end of namespace StrokeInternal
+
+
+#endif // STROKEITERATORS_H
+
+
diff --git a/source/blender/freestyle/intern/stroke/StrokeLayer.cpp b/source/blender/freestyle/intern/stroke/StrokeLayer.cpp
new file mode 100755
index 00000000000..8b469399ca8
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeLayer.cpp
@@ -0,0 +1,55 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "StrokeLayer.h"
+#include "Stroke.h"
+#include "Canvas.h"
+
+StrokeLayer::~StrokeLayer()
+{
+ clear();
+}
+
+void StrokeLayer::Render(const StrokeRenderer *iRenderer )
+{
+ for(StrokeLayer::stroke_container::iterator s=_strokes.begin(), send=_strokes.end();
+ s!=send;
+ ++s){
+ (*s)->Render(iRenderer);
+ }
+}
+
+void StrokeLayer::RenderBasic(const StrokeRenderer *iRenderer )
+{
+ for(StrokeLayer::stroke_container::iterator s=_strokes.begin(), send=_strokes.end();
+ s!=send;
+ ++s){
+ (*s)->RenderBasic(iRenderer);
+ }
+}
+void StrokeLayer::clear()
+{
+ for(stroke_container::iterator s=_strokes.begin(), send=_strokes.end();
+ s!=send;
+ ++s)
+ delete *s;
+ _strokes.clear();
+}
diff --git a/source/blender/freestyle/intern/stroke/StrokeLayer.h b/source/blender/freestyle/intern/stroke/StrokeLayer.h
new file mode 100755
index 00000000000..b89b77a85a7
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeLayer.h
@@ -0,0 +1,75 @@
+//
+// Filename : StrokeLayer.h
+// Author : Stephane Grabli
+// Purpose : Class to define a layer of strokes.
+// Date of creation : 18/12/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STROKELAYER_H
+# define STROKELAYER_H
+
+# include <deque>
+
+class Stroke;
+class StrokeRenderer;
+class StrokeLayer
+{
+public:
+ typedef std::deque<Stroke*> stroke_container;
+
+protected:
+ stroke_container _strokes;
+public:
+ StrokeLayer() {}
+ StrokeLayer(const stroke_container& iStrokes)
+ {
+ _strokes = iStrokes;
+ }
+ StrokeLayer(const StrokeLayer& iBrother)
+ {
+ _strokes = iBrother._strokes;
+ }
+ virtual ~StrokeLayer() ;
+
+ /*! Render method */
+ void Render(const StrokeRenderer *iRenderer );
+ void RenderBasic(const StrokeRenderer *iRenderer );
+
+ /*! clears the layer */
+ void clear() ;
+
+ /*! accessors */
+ inline stroke_container::iterator strokes_begin() {return _strokes.begin();}
+ inline stroke_container::iterator strokes_end() {return _strokes.end();}
+ inline int strokes_size() const {return _strokes.size();}
+ inline bool empty() const {return _strokes.empty();}
+
+ /*! modifiers */
+ inline void SetStrokes(stroke_container& iStrokes) {_strokes = iStrokes;}
+ inline void AddStroke(Stroke *iStroke) {_strokes.push_back(iStroke);}
+
+};
+
+#endif // STROKELAYER_H
diff --git a/source/blender/freestyle/intern/stroke/StrokeRenderer.cpp b/source/blender/freestyle/intern/stroke/StrokeRenderer.cpp
new file mode 100755
index 00000000000..e747fb4f5cd
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeRenderer.cpp
@@ -0,0 +1,146 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "StrokeRenderer.h"
+#include "../geometry/GeomUtils.h"
+using namespace std;
+
+/**********************************/
+/* */
+/* */
+/* StrokeRenderer */
+/* */
+/* */
+/**********************************/
+
+LIB_STROKE_EXPORT
+TextureManager *StrokeRenderer::_textureManager = 0;
+
+StrokeRenderer::StrokeRenderer ()
+{
+}
+
+StrokeRenderer::~StrokeRenderer ()
+{
+}
+
+bool StrokeRenderer::loadTextures()
+{
+ _textureManager->load();
+ return true;
+}
+
+// unsigned int StrokeRenderer::getPaperTextureIndex(unsigned int index)
+// {
+ // return _textureManager->getPaperTextureIndex(index);
+// }
+
+
+/**********************************/
+/* */
+/* */
+/* TextureManager */
+/* */
+/* */
+/**********************************/
+
+
+LIB_STROKE_EXPORT
+TextureManager* TextureManager::_pInstance = 0;
+
+LIB_STROKE_EXPORT
+vector<string> TextureManager::_papertextures;
+
+LIB_STROKE_EXPORT
+string TextureManager::_patterns_path;
+
+LIB_STROKE_EXPORT
+string TextureManager::_brushes_path;
+
+TextureManager::TextureManager ()
+{
+ _papertexname = NULL;
+ _hasLoadedTextures=false;
+ _pInstance = this;
+ _defaultTextureId = 0;
+}
+
+TextureManager::~TextureManager ()
+{
+ if (_papertexname)
+ delete _papertexname;
+ if(!_brushesMap.empty())
+ _brushesMap.clear();
+ _pInstance = 0;
+}
+
+void TextureManager::load()
+{
+ if(_hasLoadedTextures)
+ return ;
+ loadPapers();
+ loadStandardBrushes();
+ _hasLoadedTextures = true;
+}
+
+unsigned TextureManager::getBrushTextureIndex(string name, Stroke::MediumType loadingMode)
+{
+ BrushTexture bt(name,loadingMode);
+ brushesMap::iterator b = _brushesMap.find(bt);
+ if(b == _brushesMap.end()){
+ unsigned texId = loadBrush(name, loadingMode);
+ _brushesMap[bt] = texId;
+ return texId;
+ cout << "brush file " << name << " not found" << endl;
+ return 0;
+ }else{
+ return _brushesMap[bt];
+ }
+}
+
+vector<string>& TextureManager::Options::getPaperTextures() {
+ return _papertextures;
+}
+
+void TextureManager::Options::setPaperTextures(const vector<string>& sl) {
+ _papertextures = sl;
+}
+
+void TextureManager::Options::setPatternsPath(const string& path) {
+ _patterns_path = path;
+}
+
+string TextureManager::Options::getPatternsPath() {
+ return _patterns_path;
+}
+
+void TextureManager::Options::setBrushesPath(const string& path) {
+ _brushes_path = path;
+}
+
+string TextureManager::Options::getBrushesPath() {
+ return _brushes_path;
+}
+
+unsigned TextureManager::getPaperTexturesNumber() {
+ return _papertextures.size();
+}
+
diff --git a/source/blender/freestyle/intern/stroke/StrokeRenderer.h b/source/blender/freestyle/intern/stroke/StrokeRenderer.h
new file mode 100755
index 00000000000..d192fe30145
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeRenderer.h
@@ -0,0 +1,140 @@
+//
+// Filename : StrokeRenderer.h
+// Author(s) : Fredo Durand
+// Purpose : Classes to render a stroke with OpenGL
+// Date of creation : 09/09/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STROKE_RENDERER_H
+# define STROKE_RENDERER_H
+
+# include <vector>
+# include <map>
+# include <utility>
+# include "../system/FreestyleConfig.h"
+# include "Stroke.h"
+# include "StrokeRep.h"
+# include <string.h>
+
+
+/**********************************/
+/* */
+/* */
+/* TextureManager */
+/* */
+/* */
+/**********************************/
+
+
+/*! Class to load textures
+ */
+class LIB_STROKE_EXPORT TextureManager
+{
+public:
+
+ TextureManager ();
+ virtual ~TextureManager ();
+ static TextureManager * getInstance() {return _pInstance;}
+ void load () ;
+ unsigned getBrushTextureIndex(string name, Stroke::MediumType iType = Stroke::OPAQUE_MEDIUM) ;
+ unsigned getPaperTextureIndex(unsigned i) { return _papertexname[i]; }
+
+ static unsigned getPaperTexturesNumber();
+ inline bool hasLoaded() const {return _hasLoadedTextures;}
+ inline unsigned int getDefaultTextureId() const {return _defaultTextureId;}
+
+ struct LIB_STROKE_EXPORT Options
+ {
+ static void setPaperTextures(const vector<string>& sl);
+ static vector<string>& getPaperTextures();
+
+ static void setPatternsPath(const string& path);
+ static string getPatternsPath();
+
+ static void setBrushesPath(const string& path);
+ static string getBrushesPath();
+ };
+
+ protected:
+ virtual void loadPapers() = 0;
+ virtual void loadStandardBrushes() = 0;
+ virtual unsigned loadBrush(string fileName, Stroke::MediumType = Stroke::OPAQUE_MEDIUM) = 0;
+
+ typedef std::pair<string,Stroke::MediumType> BrushTexture;
+ struct cmpBrushTexture{
+ bool operator()(const BrushTexture& bt1, const BrushTexture& bt2) const{
+ int r = strcmp(bt1.first.c_str(), bt2.first.c_str());
+ if(r != 0)
+ return (r<0);
+ else
+ return (bt1.second < bt2.second);
+ }
+ };
+ typedef std::map<BrushTexture, unsigned, cmpBrushTexture> brushesMap;
+
+ static TextureManager * _pInstance;
+ bool _hasLoadedTextures;
+ brushesMap _brushesMap;
+ unsigned* _papertexname;
+ static string _patterns_path;
+ static string _brushes_path;
+ static vector<string> _papertextures;
+ unsigned int _defaultTextureId;
+};
+
+
+/**********************************/
+/* */
+/* */
+/* StrokeRenderer */
+/* */
+/* */
+/**********************************/
+
+/*! Class to render a stroke.
+ Creates a triangle strip and stores it
+ strip is lazily created at the first rendering
+*/
+class LIB_STROKE_EXPORT StrokeRenderer
+{
+ public:
+ StrokeRenderer();
+ virtual ~StrokeRenderer ();
+
+ /*! Renders a stroke rep */
+ virtual void RenderStrokeRep(StrokeRep *iStrokeRep) const = 0;
+ virtual void RenderStrokeRepBasic(StrokeRep *iStrokeRep) const = 0;
+
+ // initializes the texture manager
+ // lazy, checks if it has already been done
+ static bool loadTextures() ;
+
+ //static unsigned int getTextureIndex(unsigned int index) ;
+ //static unsigned int getPaperTextureIndex(unsigned int index) ;
+ static TextureManager *_textureManager;
+};
+
+
+#endif // STROKE_RENDERER_H
diff --git a/source/blender/freestyle/intern/stroke/StrokeRep.cpp b/source/blender/freestyle/intern/stroke/StrokeRep.cpp
new file mode 100755
index 00000000000..055e1fb1be4
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeRep.cpp
@@ -0,0 +1,820 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "StrokeRep.h"
+#include "Stroke.h"
+#include "StrokeRenderer.h"
+#include "StrokeAdvancedIterators.h"
+#include "StrokeIterators.h"
+
+using namespace std;
+
+//
+// STROKE VERTEX REP
+/////////////////////////////////////
+StrokeVertexRep::StrokeVertexRep(const StrokeVertexRep& iBrother){
+ _point2d = iBrother._point2d;
+ _texCoord = iBrother._texCoord;
+ _color = iBrother._color;
+ _alpha = iBrother._alpha;
+}
+
+//
+// STRIP
+/////////////////////////////////////
+
+Strip::Strip(const vector<StrokeVertex*>& iStrokeVertices, bool hasTips, bool beginTip, bool endTip){
+ createStrip(iStrokeVertices);
+ if (!hasTips)
+ computeTexCoord (iStrokeVertices);
+ else
+ computeTexCoordWithTips (iStrokeVertices, beginTip, endTip);
+}
+Strip::Strip(const Strip& iBrother){
+ if(!iBrother._vertices.empty()){
+ for(vertex_container::const_iterator v=iBrother._vertices.begin(), vend=iBrother._vertices.end();
+ v!=vend;
+ ++v){
+ _vertices.push_back(new StrokeVertexRep(**v));
+ }
+ }
+ _averageThickness = iBrother._averageThickness;
+}
+
+Strip::~Strip(){
+ if(!_vertices.empty()){
+ for(vertex_container::iterator v=_vertices.begin(), vend=_vertices.end();
+ v!=vend;
+ ++v){
+ delete (*v);
+ }
+ _vertices.clear();
+ }
+}
+
+//////////////////////////
+// Strip creation
+//////////////////////////
+#define EPS_SINGULARITY_RENDERER 0.05
+#define ZERO 0.00001
+#define MAX_RATIO_LENGTH_SINGU 2
+#define HUGE_COORD 1e4
+
+bool notValid (Vec2r p)
+{
+ return (p[0]!=p[0]) || (p[1]!=p[1]) || (fabs(p[0])>HUGE_COORD) || (fabs(p[1])>HUGE_COORD)
+ || (p[0] <-HUGE_COORD) || (p[1]<-HUGE_COORD);
+}
+
+real crossP(const Vec2r& A, const Vec2r& B){
+ return A[0]*B[1] - A[1]*B[0];
+}
+
+void
+Strip::createStrip (const vector<StrokeVertex*>& iStrokeVertices)
+{
+ //computeParameterization();
+ if (iStrokeVertices.size() <2)
+ {
+ cerr << "Warning: strip has less than 2 vertices" << endl;
+ return;
+ }
+ _vertices.reserve(2*iStrokeVertices.size());
+ if(!_vertices.empty()){
+ for(vertex_container::iterator v=_vertices.begin(), vend=_vertices.end();
+ v!=vend;
+ ++v){
+ delete (*v);
+ }
+ _vertices.clear();
+ }
+ _averageThickness=0.0;
+
+ vector<StrokeVertex*>::const_iterator v ,vend, v2, vPrev;
+ StrokeVertex *sv, *sv2, *svPrev;
+
+ //special case of first vertex
+ v=iStrokeVertices.begin();
+ sv=*v;
+ vPrev=v; //in case the stroke has only 2 vertices;
+ ++v; sv2=*v;
+ Vec2r dir(sv2->getPoint()-sv->getPoint());
+ Vec2r orthDir(-dir[1], dir[0]);
+ if (orthDir.norm() > ZERO)
+ orthDir.normalize();
+ const float *thickness = sv->attribute().getThickness();
+ _vertices.push_back(new StrokeVertexRep(sv->getPoint()+thickness[1]*orthDir));
+ _vertices.push_back(new StrokeVertexRep(sv->getPoint()-thickness[0]*orthDir));
+
+ Vec2r stripDir(orthDir);
+ // check whether the orientation
+ // was user defined
+ if(sv->attribute().isAttributeAvailableVec2f("orientation")){
+ Vec2r userDir = sv->attribute().getAttributeVec2f("orientation");
+ userDir.normalize();
+ Vec2r t(orthDir[1], -orthDir[0]);
+ real dp1 = userDir*orthDir;
+ real dp2 = userDir*t;
+ real h = (thickness[1]+thickness[0])/dp1;
+ real x = fabs(h*dp2/2.0);
+ if(dp1>0){
+ //i'm in the upper part of the unit circle
+ if(dp2>0){
+ //i'm in the upper-right part of the unit circle
+ // i must move vertex 1
+ _vertices[1]->setPoint2d(_vertices[0]->point2d()-userDir*(h));
+ //_vertices[0]->setPoint2d(_vertices[0]->point2d()+t*x);
+ //_vertices[1]->setPoint2d(_vertices[1]->point2d()-t*x);
+ }else{
+ //i'm in the upper-left part of the unit circle
+ // i must move vertex 0
+ _vertices[0]->setPoint2d(_vertices[1]->point2d()+userDir*(h));
+ //_vertices[0]->setPoint2d(_vertices[0]->point2d()-t*x);
+ //_vertices[1]->setPoint2d(_vertices[1]->point2d()+t*x);
+ }
+ }else{
+ //i'm in the lower part of the unit circle
+ if(dp2>0){
+ //i'm in the lower-right part of the unit circle
+ // i must move vertex 0
+ //_vertices[0]->setPoint2d(_vertices[1]->point2d()-userDir*(h));
+ _vertices[0]->setPoint2d(_vertices[0]->point2d()-t*x);
+ //_vertices[1]->setPoint2d(_vertices[1]->point2d()+t*x);
+ }else{
+ //i'm in the lower-left part of the unit circle
+ // i must move vertex 1
+ _vertices[1]->setPoint2d(_vertices[0]->point2d()+userDir*(h));
+ //_vertices[0]->setPoint2d(_vertices[0]->point2d()-t*x);
+ //_vertices[1]->setPoint2d(_vertices[1]->point2d()-t*x);
+ }
+ }
+ }
+
+
+ // Vec2r userDir = _stroke->getBeginningOrientation();
+ // if(userDir != Vec2r(0,0)){
+ // userDir.normalize();
+ // real o1 = (orthDir*userDir);
+ // real o2 = crossP(orthDir,userDir);
+ // real orientation = o1 * o2;
+ // if(orientation > 0){
+ // // then the vertex to move is v0
+ // if(o1 > 0)
+ // _vertex[0]=_vertex[1]+userDir;
+ // else
+ // _vertex[0]=_vertex[1]-userDir;
+ // }
+ // if(orientation < 0){
+ // // then we must move v1
+ // if(o1 < 0)
+ // _vertex[1]=_vertex[0]+userDir;
+ // else
+ // _vertex[1]=_vertex[0]-userDir;
+ // }
+ // }
+
+ int i=2; //2 because we have already processed the first vertex
+
+ for(vend=iStrokeVertices.end();
+ v!=vend;
+ v++){
+ v2=v; ++v2;
+ if (v2==vend) break;
+ sv= (*v); sv2 = (*v2); svPrev=(*vPrev);
+ Vec2r p(sv->getPoint()), p2(sv2->getPoint()), pPrev(svPrev->getPoint());
+
+ //direction and orthogonal vector to the next segment
+ Vec2r dir(p2-p);
+ float dirNorm=dir.norm();
+ dir.normalize();
+ Vec2r orthDir(-dir[1], dir[0]);
+ Vec2r stripDir = orthDir;
+ if(sv->attribute().isAttributeAvailableVec2f("orientation")){
+ Vec2r userDir = sv->attribute().getAttributeVec2f("orientation");
+ userDir.normalize();
+ real dp = userDir*orthDir;
+ if(dp<0)
+ userDir = userDir*(-1.f);
+ stripDir = userDir;
+ }
+
+ //direction and orthogonal vector to the previous segment
+ Vec2r dirPrev(p-pPrev);
+ float dirPrevNorm=dirPrev.norm();
+ dirPrev.normalize();
+ Vec2r orthDirPrev(-dirPrev[1], dirPrev[0]);
+ Vec2r stripDirPrev = orthDirPrev;
+ if(svPrev->attribute().isAttributeAvailableVec2f("orientation")){
+ Vec2r userDir = svPrev->attribute().getAttributeVec2f("orientation");
+ userDir.normalize();
+ real dp = userDir*orthDir;
+ if(dp<0)
+ userDir = userDir*(-1.f);
+ stripDirPrev = userDir;
+ }
+
+ const float *thickness = sv->attribute().getThickness();
+ _averageThickness+=thickness[0]+thickness[1];
+ Vec2r pInter;
+ int interResult;
+
+ interResult=GeomUtils::intersect2dLine2dLine(Vec2r(pPrev+thickness[1]*stripDirPrev), Vec2r(p+thickness[1]*stripDirPrev),
+ Vec2r(p+thickness[1]*stripDir), Vec2r(p2+thickness[1]*stripDir),
+ pInter);
+
+ if (interResult==GeomUtils::DO_INTERSECT)
+ _vertices.push_back(new StrokeVertexRep(pInter));
+ else
+ _vertices.push_back(new StrokeVertexRep(p+thickness[1]*stripDir));
+ ++i;
+
+ interResult=GeomUtils::intersect2dLine2dLine(Vec2r(pPrev-thickness[0]*stripDirPrev), Vec2r(p-thickness[0]*stripDirPrev),
+ Vec2r(p-thickness[0]*stripDir), Vec2r(p2-thickness[0]*stripDir),
+ pInter);
+ if (interResult==GeomUtils::DO_INTERSECT)
+ _vertices.push_back(new StrokeVertexRep(pInter));
+ else
+ _vertices.push_back(new StrokeVertexRep(p-thickness[0]*stripDir));
+ ++i;
+
+ // if the angle is obtuse, we simply average the directions to avoid the singularity
+ stripDir=stripDir+stripDirPrev;
+ if ((dirNorm<ZERO) || (dirPrevNorm<ZERO) || (stripDir.norm() < ZERO)) {
+ stripDir[0] = 0;
+ stripDir[1] = 0;
+ }else
+ stripDir.normalize();
+
+ Vec2r vec_tmp(_vertices[i-2]->point2d()-p);
+ if ((vec_tmp.norm() > thickness[1]*MAX_RATIO_LENGTH_SINGU) ||
+ (dirNorm<ZERO) || (dirPrevNorm<ZERO) ||
+ notValid(_vertices[i-2]->point2d())
+ || (fabs(stripDir * dir) < EPS_SINGULARITY_RENDERER))
+ _vertices[i-2]->setPoint2d(p+thickness[1]*stripDir);
+
+ vec_tmp = _vertices[i-1]->point2d()-p;
+ if ((vec_tmp.norm() > thickness[1]*MAX_RATIO_LENGTH_SINGU) ||
+ (dirNorm<ZERO) || (dirPrevNorm<ZERO) ||
+ notValid(_vertices[i-1]->point2d())
+ || (fabs(stripDir * dir)<EPS_SINGULARITY_RENDERER))
+ _vertices[i-1]->setPoint2d(p-thickness[0]*stripDir);
+
+ vPrev=v;
+ } // end of for
+
+ //special case of last vertex
+ sv=*v;
+ sv2=*vPrev;
+ dir=Vec2r (sv->getPoint()-sv2->getPoint());
+ orthDir=Vec2r(-dir[1], dir[0]);
+ if (orthDir.norm() > ZERO)
+ orthDir.normalize();
+ const float *thicknessLast = sv->attribute().getThickness();
+ _vertices.push_back(new StrokeVertexRep(sv->getPoint()+thicknessLast[1]*orthDir));
+ ++i;
+ _vertices.push_back(new StrokeVertexRep(sv->getPoint()-thicknessLast[0]*orthDir));
+ int n = i;
+ ++i;
+
+ // check whether the orientation
+ // was user defined
+ if(sv->attribute().isAttributeAvailableVec2f("orientation")){
+ Vec2r userDir = sv->attribute().getAttributeVec2f("orientation");
+ userDir.normalize();
+ Vec2r t(orthDir[1], -orthDir[0]);
+ real dp1 = userDir*orthDir;
+ real dp2 = userDir*t;
+ real h = (thicknessLast[1]+thicknessLast[0])/dp1;
+ real x = fabs(h*dp2/2.0);
+ if(dp1>0){
+ //i'm in the upper part of the unit circle
+ if(dp2>0){
+ //i'm in the upper-right part of the unit circle
+ // i must move vertex n-1
+ _vertices[n-1]->setPoint2d(_vertices[n]->point2d()-userDir*(h));
+ //_vertices[n-1]->setPoint2d(_vertices[n-1]->point2d()+t*x);
+ //_vertices[n]->setPoint2d(_vertices[n]->point2d()-t*x);
+ }else{
+ //i'm in the upper-left part of the unit circle
+ // i must move vertex n
+ _vertices[n]->setPoint2d(_vertices[n-1]->point2d()+userDir*(h));
+ //_vertices[n-1]->setPoint2d(_vertices[n-1]->point2d()-t*x);
+ //_vertices[n]->setPoint2d(_vertices[n]->point2d()+t*x);
+ }
+ }else{
+ //i'm in the lower part of the unit circle
+ if(dp2>0){
+ //i'm in the lower-right part of the unit circle
+ // i must move vertex n
+ _vertices[n]->setPoint2d(_vertices[n-1]->point2d()-userDir*(h));
+ //_vertices[n-1]->setPoint2d(_vertices[n-1]->point2d()-t*x);
+ //_vertices[n]->setPoint2d(_vertices[n]->point2d()+t*x);
+ }else{
+ //i'm in the lower-left part of the unit circle
+ // i must move vertex n-1
+ _vertices[n-1]->setPoint2d(_vertices[n]->point2d()+userDir*(h));
+ //_vertices[n-1]->setPoint2d(_vertices[n-1]->point2d()+t*x);
+ //_vertices[n]->setPoint2d(_vertices[n]->point2d()-t*x);
+ }
+ }
+ }
+
+
+ // check whether the orientation of the extremity
+ // was user defined
+ // userDir = _stroke->getEndingOrientation();
+ // if(userDir != Vec2r(0,0)){
+ // userDir.normalize();
+ // real o1 = (orthDir*userDir);
+ // real o2 = crossP(orthDir,userDir);
+ // real orientation = o1 * o2;
+ // if(orientation > 0){
+ // // then the vertex to move is vn
+ // if(o1 < 0)
+ // _vertex[n]=_vertex[n-1]+userDir;
+ // else
+ // _vertex[n]=_vertex[n-1]-userDir;
+ // }
+ // if(orientation < 0){
+ // // then we must move vn-1
+ // if(o1 > 0)
+ // _vertex[n-1]=_vertex[n]+userDir;
+ // else
+ // _vertex[n-1]=_vertex[n]-userDir;
+ // }
+ // }
+
+ _averageThickness/=float(iStrokeVertices.size()-2);
+ //I did not use the first and last vertex for the average
+ if (iStrokeVertices.size()<3)
+ _averageThickness=0.5*(thicknessLast[1]+thicknessLast[0]+thickness[0]+thickness[1]);
+
+ if (i!=2*iStrokeVertices.size())
+ cerr << "Warning: problem with stripe size\n";
+
+ cleanUpSingularities (iStrokeVertices);
+}
+
+// CLEAN UP
+/////////////////////////
+
+void
+Strip::cleanUpSingularities (const vector<StrokeVertex*>& iStrokeVertices)
+{
+ int k;
+ unsigned sizeStrip = _vertices.size();
+
+ for (k=0; k<sizeStrip; k++)
+ if (notValid(_vertices[k]->point2d()))
+ {
+ cerr << "Warning: strip vertex " << k << " non valid" << endl;
+ return;
+ }
+
+ //return;
+ if (iStrokeVertices.size()<2) return;
+ int i=0, j;
+ vector<StrokeVertex*>::const_iterator v ,vend, v2, vPrev;
+ StrokeVertex *sv, *sv2, *svPrev;
+
+ bool singu1=false, singu2=false;
+ int timeSinceSingu1=0, timeSinceSingu2=0;
+
+ //special case of first vertex
+ v=iStrokeVertices.begin();
+ for(vend=iStrokeVertices.end();
+ v!=vend;
+ v++)
+ {
+ v2=v; ++v2;
+ if (v2==vend) break;
+ sv= (*v); sv2 = (*v2);
+ Vec2r p(sv->getPoint()), p2(sv2->getPoint());
+
+ Vec2r dir(p2-p);
+ if (dir.norm() > ZERO)
+ dir.normalize();
+ Vec2r dir1, dir2;
+ dir1=_vertices[2*i+2]->point2d()-_vertices[2*i]->point2d();
+ dir2=_vertices[2*i+3]->point2d()-_vertices[2*i+1]->point2d();
+
+ if ((dir1 * dir) < -ZERO)
+ {
+ singu1=true;
+ timeSinceSingu1++;
+ }
+ else
+ {
+ if (singu1)
+ {
+ int toto=i-timeSinceSingu1;
+ if (toto<0)
+ cerr << "Stephane dit \"Toto\"" << endl;
+ //traverse all the vertices of the singularity and average them
+ Vec2r avP(0.0,0.0);
+ for (j=i-timeSinceSingu1; j<i+1; j++)
+ avP=Vec2r(avP+_vertices[2*j]->point2d());
+ avP=Vec2r(1.0/float(timeSinceSingu1+1)*avP);
+ for (j=i-timeSinceSingu1; j<i+1; j++)
+ _vertices[2*j]->setPoint2d(avP);
+ //_vertex[2*j]=_vertex[2*i];
+ singu1=false; timeSinceSingu1=0;
+ }
+ }
+ if ((dir2 * dir) < -ZERO)
+ {
+ singu2=true;
+ timeSinceSingu2++;
+ }
+ else
+ {
+ if (singu2)
+ {
+ int toto=i-timeSinceSingu2;
+ if (toto<0)
+ cerr << "Stephane dit \"Toto\"" << endl;
+ //traverse all the vertices of the singularity and average them
+ Vec2r avP(0.0,0.0);
+ for (j=i-timeSinceSingu2; j<i+1; j++)
+ avP=Vec2r(avP+_vertices[2*j+1]->point2d());
+ avP=Vec2r(1.0/float(timeSinceSingu2+1)*avP);
+ for (j=i-timeSinceSingu2; j<i+1; j++)
+ _vertices[2*j+1]->setPoint2d(avP);
+ //_vertex[2*j+1]=_vertex[2*i+1];
+ singu2=false; timeSinceSingu2=0;
+ }
+ }
+ i++;
+ }
+
+ if (singu1)
+ {
+ //traverse all the vertices of the singularity and average them
+ Vec2r avP(0.0,0.0);
+ for (int j=i-timeSinceSingu1; j<i; j++)
+ avP=Vec2r(avP+_vertices[2*j]->point2d());
+ avP=Vec2r(1.0/float(timeSinceSingu1)*avP);
+ for (j=i-timeSinceSingu1; j<i; j++)
+ _vertices[2*j]->setPoint2d(avP);
+ }
+ if (singu2)
+ {
+ //traverse all the vertices of the singularity and average them
+ Vec2r avP(0.0,0.0);
+ for (j=i-timeSinceSingu2; j<i; j++)
+ avP=Vec2r(avP+_vertices[2*j+1]->point2d());
+ avP=Vec2r(1.0/float(timeSinceSingu2)*avP);
+ for (j=i-timeSinceSingu2; j<i; j++)
+ _vertices[2*j+1]->setPoint2d(avP);
+ }
+
+
+ for (k=0; k<sizeStrip; k++)
+ if (notValid(_vertices[k]->point2d()))
+ {
+ cerr << "Warning: strip vertex " << k << " non valid after cleanup"<<endl;
+ return;
+ }
+}
+
+
+// Texture coordinates
+////////////////////////////////
+
+void
+Strip::computeTexCoord (const vector<StrokeVertex*>& iStrokeVertices)
+{
+ vector<StrokeVertex*>::const_iterator v ,vend;
+ StrokeVertex *sv;
+ int i=0;
+ for(v=iStrokeVertices.begin(), vend=iStrokeVertices.end();
+ v!=vend; v++)
+ {
+ sv= (*v);
+ _vertices[i]->setTexCoord(Vec2r((real)(sv->curvilinearAbscissa() / _averageThickness),0));
+ _vertices[i]->setColor(Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2]));
+ _vertices[i]->setAlpha(sv->attribute().getAlpha());
+ i++;
+ _vertices[i]->setTexCoord(Vec2r((real)(sv->curvilinearAbscissa() / _averageThickness),1));
+ _vertices[i]->setColor(Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2]));
+ _vertices[i]->setAlpha(sv->attribute().getAlpha());
+ i++;
+ // cerr<<"col=("<<sv->attribute().getColor()[0]<<", "
+ // <<sv->attribute().getColor()[1]<<", "<<sv->attribute().getColor()[2]<<")"<<endl;
+ }
+}
+
+void
+Strip::computeTexCoordWithTips (const vector<StrokeVertex*>& iStrokeVertices, bool tipBegin, bool tipEnd)
+{
+ unsigned int sizeStrip = _vertices.size()+8; //for the transition between the tip and the body
+ vector<StrokeVertex*>::const_iterator v ,vend;
+ StrokeVertex *sv;
+
+ v=iStrokeVertices.begin();
+ vend=iStrokeVertices.end();
+ float l=(*v)->strokeLength()/_averageThickness;
+ int tiles=int(l);
+ float fact=(float(tiles)+0.5)/l;
+ float uTip2=float(tiles)+0.25;
+ float u=0;
+ float uPrev;
+ int i=0;
+ float t;
+ StrokeVertexRep *tvRep1, *tvRep2;
+
+ // cerr<<"l="<<l<<" tiles="<<tiles<<" _averageThicnkess="
+ // <<_averageThickness<<" strokeLength="<<(*v)->strokeLength()<<endl;
+ //
+ vector<StrokeVertexRep*>::iterator currentSV = _vertices.begin();
+ StrokeVertexRep *svRep;
+ if(tipBegin){
+ for(;v!=vend; v++)
+ {
+ sv= (*v);
+ svRep = *currentSV;
+ u=sv->curvilinearAbscissa()/_averageThickness*fact;
+ if (u>0.25) break;
+
+
+ svRep->setTexCoord(Vec2r((real)u, 0.5));
+ svRep->setColor(Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2]));
+ svRep->setAlpha(sv->attribute().getAlpha());
+ i++;
+ ++currentSV;
+
+ svRep = *currentSV;
+ svRep->setTexCoord(Vec2r((real)u, 1));
+ svRep->setColor(Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2]));
+ svRep->setAlpha(sv->attribute().getAlpha());
+ i++;
+ ++currentSV;
+ uPrev=u;
+ }
+ //first transition vertex
+
+ if (fabs(u-uPrev)>ZERO)
+ t= (0.25-uPrev)/(u-uPrev);
+ else t=0;
+ //if (!tiles) t=0.5;
+ tvRep1 = new StrokeVertexRep(Vec2r((1-t)*_vertices[i-2]->point2d()+t*_vertices[i]->point2d()));
+ tvRep1->setTexCoord(Vec2r(0.25,0.5));
+ tvRep1->setColor(Vec3r((1-t)*_vertices[i-2]->color()+
+ t*Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2])));
+ tvRep1->setAlpha((1-t)*_vertices[i-2]->alpha()+t*sv->attribute().getAlpha());
+ i++;
+
+ tvRep2 = new StrokeVertexRep(Vec2r((1-t)*_vertices[i-2]->point2d()+t*_vertices[i]->point2d()));
+ tvRep2->setTexCoord(Vec2r(0.25,1));
+ tvRep2->setColor(Vec3r((1-t)*_vertices[i-2]->color()+
+ t*Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2])));
+ tvRep2->setAlpha((1-t)*_vertices[i-2]->alpha()+t*sv->attribute().getAlpha());
+ i++;
+
+ currentSV = _vertices.insert(currentSV, tvRep1);
+ ++currentSV;
+ currentSV = _vertices.insert(currentSV, tvRep2);
+ ++currentSV;
+
+ //copy the vertices with different texture coordinates
+ tvRep1 = new StrokeVertexRep(_vertices[i-2]->point2d());
+ tvRep1->setTexCoord(Vec2r(0.25,0));
+ tvRep1->setColor(_vertices[i-2]->color());
+ tvRep1->setAlpha(_vertices[i-2]->alpha());
+ i++;
+
+ tvRep2 = new StrokeVertexRep(_vertices[i-2]->point2d());
+ tvRep2->setTexCoord(Vec2r(0.25,0.5));
+ tvRep2->setColor(_vertices[i-2]->color());
+ tvRep2->setAlpha(_vertices[i-2]->alpha());
+ i++;
+
+ currentSV = _vertices.insert(currentSV, tvRep1);
+ ++currentSV;
+ currentSV = _vertices.insert(currentSV, tvRep2);
+ ++currentSV;
+ }
+ uPrev=0;
+
+ //body of the stroke
+ for(;v!=vend; v++)
+ {
+ sv= (*v);
+ svRep = *currentSV;
+ u=sv->curvilinearAbscissa()/_averageThickness*fact-0.25;
+ if (u>tiles) break;
+
+ svRep->setTexCoord(Vec2r((real)u, 0));
+ svRep->setColor(Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2]));
+ svRep->setAlpha(sv->attribute().getAlpha());
+ i++;
+ ++currentSV;
+
+ svRep = *currentSV;
+ svRep->setTexCoord(Vec2r((real)u, 0.5));
+ svRep->setColor(Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2]));
+ svRep->setAlpha(sv->attribute().getAlpha());
+ i++;
+ ++currentSV;
+
+ uPrev=u;
+ }
+ if(tipEnd){
+ //second transition vertex
+ if ((fabs(u-uPrev)>ZERO))
+ t= (float(tiles)-uPrev)/(u-uPrev);
+ else t=0;
+
+ tvRep1 = new StrokeVertexRep(Vec2r((1-t)*_vertices[i-2]->point2d()+t*_vertices[i]->point2d()));
+ tvRep1->setTexCoord(Vec2r((real)tiles,0));
+ tvRep1->setColor(Vec3r((1-t)*_vertices[i-2]->color()+
+ t*Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2])));
+ tvRep1->setAlpha((1-t)*_vertices[i-2]->alpha()+t*sv->attribute().getAlpha());
+ i++;
+
+ tvRep2 = new StrokeVertexRep(Vec2r((1-t)*_vertices[i-2]->point2d()+t*_vertices[i]->point2d()));
+ tvRep2->setTexCoord(Vec2r((real)tiles,0.5));
+ tvRep2->setColor(Vec3r((1-t)*_vertices[i-2]->color()+
+ t*Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2])));
+ tvRep2->setAlpha((1-t)*_vertices[i-2]->alpha()+t*sv->attribute().getAlpha());
+ i++;
+
+ currentSV = _vertices.insert(currentSV, tvRep1);
+ ++currentSV;
+ currentSV = _vertices.insert(currentSV, tvRep2);
+ ++currentSV;
+
+ //copy the vertices with different texture coordinates
+ tvRep1 = new StrokeVertexRep(_vertices[i-2]->point2d());
+ tvRep1->setTexCoord(Vec2r(0.75,0.5));
+ tvRep1->setColor(_vertices[i-2]->color());
+ tvRep1->setAlpha(_vertices[i-2]->alpha());
+ i++;
+
+ tvRep2 = new StrokeVertexRep(_vertices[i-2]->point2d());
+ tvRep2->setTexCoord(Vec2r(0.75,1));
+ tvRep2->setColor(_vertices[i-2]->color());
+ tvRep2->setAlpha(_vertices[i-2]->alpha());
+ i++;
+
+ currentSV = _vertices.insert(currentSV, tvRep1);
+ ++currentSV;
+ currentSV = _vertices.insert(currentSV, tvRep2);
+ ++currentSV;
+
+ //end tip
+ for(;v!=vend; v++)
+ {
+ sv= (*v);
+ svRep = *currentSV;
+ u=0.75+sv->curvilinearAbscissa()/_averageThickness*fact-float(tiles)-0.25;
+
+ svRep->setTexCoord(Vec2r((real)u, 0.5));
+ svRep->setColor(Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2]));
+ svRep->setAlpha(sv->attribute().getAlpha());
+ i++;
+ ++currentSV;
+
+ svRep = *currentSV;
+ svRep->setTexCoord(Vec2r((real)u, 1));
+ svRep->setColor(Vec3r(sv->attribute().getColor()[0],sv->attribute().getColor()[1],sv->attribute().getColor()[2]));
+ svRep->setAlpha(sv->attribute().getAlpha());
+ i++;
+ ++currentSV;
+ }
+ }
+ //cerr<<"u="<<u<<" i="<<i<<"/"<<_sizeStrip<<endl;;
+
+ // for (i=0; i<_sizeStrip; i++)
+ // _alpha[i]=1.0;
+
+ // for (i=0; i<_sizeStrip; i++)
+ // cerr<<"("<<_texCoord[i][0]<<", "<<_texCoord[i][1]<<") ";
+ // cerr<<endl;
+
+
+ // Vec2r vec_tmp;
+ // for (i=0; i<_sizeStrip/2; i++)
+ // vec_tmp = _vertex[2*i] - _vertex[2*i+1];
+ // if (vec_tmp.norm() > 4*_averageThickness)
+ // cerr << "Warning (from Fredo): There is a pb in the texture coordinates computation" << endl;
+}
+
+//
+// StrokeRep
+/////////////////////////////////////
+
+StrokeRep::StrokeRep()
+{
+ _stroke = 0;
+ _strokeType=Stroke::OPAQUE_MEDIUM;
+ TextureManager * ptm = TextureManager::getInstance();
+ if(ptm)
+ _textureId = ptm->getDefaultTextureId();
+ // _averageTextureAlpha=0.5; //default value
+ // if (_strokeType==OIL_STROKE)
+ // _averageTextureAlpha=0.75;
+ // if (_strokeType>=NO_BLEND_STROKE)
+ // _averageTextureAlpha=1.0
+}
+
+StrokeRep::StrokeRep(Stroke *iStroke)
+{
+ _stroke = iStroke;
+ _strokeType = iStroke->getMediumType();
+ _textureId = iStroke->getTextureId();
+ if(_textureId == 0){
+ TextureManager * ptm = TextureManager::getInstance();
+ if(ptm)
+ _textureId = ptm->getDefaultTextureId();
+ }
+
+ // _averageTextureAlpha=0.5; //default value
+ // if (_strokeType==OIL_STROKE)
+ // _averageTextureAlpha=0.75;
+ // if (_strokeType>=NO_BLEND_STROKE)
+ // _averageTextureAlpha=1.0;
+ create();
+}
+
+StrokeRep::StrokeRep(const StrokeRep& iBrother)
+{
+ int i=0;
+ _stroke = iBrother._stroke;
+ _strokeType=iBrother._strokeType;
+ _textureId = iBrother._textureId;
+ for(vector<Strip*>::const_iterator s=iBrother._strips.begin(), send=iBrother._strips.end();
+ s!=send;
+ ++s){
+ _strips.push_back(new Strip(**s));
+ }
+}
+
+
+StrokeRep::~StrokeRep()
+{
+ if(!_strips.empty()){
+ for(vector<Strip*>::iterator s=_strips.begin(), send=_strips.end();
+ s!=send;
+ ++s){
+ delete (*s);
+ }
+ _strips.clear();
+ }
+}
+
+void StrokeRep::create(){
+ vector<StrokeVertex*> strip;
+ StrokeInternal::StrokeVertexIterator v = _stroke->strokeVerticesBegin();
+ StrokeInternal::StrokeVertexIterator vend = _stroke->strokeVerticesEnd();
+
+ bool first=true;
+ bool end=false;
+ while(v!=vend){
+ while((v!=vend) && (!(*v).attribute().isVisible())){
+ ++v;
+ first = false;
+ }
+ while( (v!=vend) && ((*v).attribute().isVisible()) ) {
+ strip.push_back(&(*v));
+ ++v;
+ }
+ if(v!=vend){
+ // add the last vertex and create
+ strip.push_back(&(*v));
+ }else{
+ end=true;
+ }
+ if((!strip.empty()) && (strip.size()>1) ){
+ _strips.push_back(new Strip(strip, _stroke->hasTips(), first, end));
+ strip.clear();
+ }
+ first = false;
+ }
+}
+
+void StrokeRep::Render(const StrokeRenderer *iRenderer)
+{
+ iRenderer->RenderStrokeRep(this);
+}
+
+
+
diff --git a/source/blender/freestyle/intern/stroke/StrokeRep.h b/source/blender/freestyle/intern/stroke/StrokeRep.h
new file mode 100755
index 00000000000..129769e5489
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeRep.h
@@ -0,0 +1,138 @@
+//
+// Filename : StrokeRep.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define the representation of a stroke
+// (for display purpose)
+// Date of creation : 05/03/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STROKEREP_H
+# define STROKEREP_H
+
+# include "../geometry/Geom.h"
+using namespace Geometry;
+
+//symbolic constant to call the appropriate renderers and textures
+// # define NO_TEXTURE_WITH_BLEND_STROKE -2
+// # define NO_TEXTURE_STROKE -1
+// # define PSEUDO_CHARCOAL_STROKE 0
+// # define WASH_BRUSH_STROKE 1
+// # define OIL_STROKE 2
+// # define NO_BLEND_STROKE 3
+// # define CHARCOAL_MIN_STROKE 4
+// # define BRUSH_MIN_STROKE 5
+// # define OPAQUE_DRY_STROKE 6
+// # define OPAQUE_STROKE 7
+//
+// # define DEFAULT_STROKE 0
+//
+// # define NUMBER_STROKE_RENDERER 8
+
+#include "Stroke.h"
+
+class StrokeVertexRep{
+public:
+ StrokeVertexRep(){}
+ StrokeVertexRep(const Vec2r& iPoint2d){_point2d=iPoint2d;}
+ StrokeVertexRep(const StrokeVertexRep& iBrother);
+ virtual ~StrokeVertexRep(){}
+
+ inline Vec2r& point2d() {return _point2d;}
+ inline Vec2r& texCoord() {return _texCoord;}
+ inline Vec3r& color() {return _color;}
+ inline float alpha() {return _alpha;}
+
+ inline void setPoint2d(const Vec2r& p){_point2d = p;}
+ inline void setTexCoord(const Vec2r& p){_texCoord = p;}
+ inline void setColor(const Vec3r& p){_color = p;}
+ inline void setAlpha(float a){_alpha = a;}
+protected:
+ Vec2r _point2d;
+ Vec2r _texCoord;
+ Vec3r _color;
+ float _alpha;
+};
+
+class Strip{
+public:
+ typedef std::vector<StrokeVertexRep*> vertex_container;
+protected:
+ vertex_container _vertices;
+ float _averageThickness;
+
+
+public:
+ Strip(const std::vector<StrokeVertex*>& iStrokeVertices, bool hasTips=false, bool tipBegin=false, bool tipEnd=false) ;
+ Strip(const Strip& iBrother);
+ virtual ~Strip() ;
+
+protected:
+ void createStrip(const std::vector<StrokeVertex*>& iStrokeVertices);
+ void cleanUpSingularities(const std::vector<StrokeVertex*>& iStrokeVertices);
+ void computeTexCoord (const std::vector<StrokeVertex*>& iStrokeVertices);
+ void computeTexCoordWithTips (const std::vector<StrokeVertex*>& iStrokeVertices, bool tipBegin, bool tipEnd);
+public:
+ inline int sizeStrip() const {return _vertices.size();}
+ inline vertex_container& vertices() {return _vertices;}
+};
+
+class StrokeRep
+{
+protected:
+ Stroke *_stroke;
+ vector<Strip*> _strips;
+ Stroke::MediumType _strokeType;
+ unsigned int _textureId;
+
+ // float _averageTextureAlpha;
+
+
+public:
+ StrokeRep();
+ StrokeRep(const StrokeRep&);
+ StrokeRep(Stroke *iStroke);
+ virtual ~StrokeRep();
+
+ /*! Creates the strips */
+ virtual void create() ;
+
+ /*! Renders the stroke using a Renderer */
+ virtual void Render(const StrokeRenderer *iRenderer) ;
+
+ /*! accessors */
+ inline Stroke::MediumType getMediumType() const {return _strokeType;}
+ inline unsigned getTextureId() const {return _textureId;}
+ inline vector<Strip*>& getStrips() {return _strips;}
+ inline unsigned int getNumberOfStrips() const {return _strips.size();}
+ inline Stroke * getStroke() {return _stroke;}
+
+ /*! modifiers */
+ inline void setMediumType(Stroke::MediumType itype) {_strokeType=itype;}
+ inline void SetTextureId(unsigned textureId) {_textureId = textureId;}
+
+
+};
+
+#endif // STROKEREP_H
diff --git a/source/blender/freestyle/intern/stroke/StrokeShader.h b/source/blender/freestyle/intern/stroke/StrokeShader.h
new file mode 100755
index 00000000000..fa1289f6e0f
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeShader.h
@@ -0,0 +1,119 @@
+//
+// Filename : StrokeShader.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Class defining StrokeShader
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef SHADERS_H
+# define SHADERS_H
+
+# include <iostream>
+# include <vector>
+
+//
+// StrokeShader base class
+//
+//////////////////////////////////////////////////////
+
+class Stroke;
+/*! Base class for Stroke Shaders.
+ * Any Stroke Shader must inherit from
+ * this class and overload the shade() method.
+ * A StrokeShader is designed to modify any
+ * Stroke's attribute such as Thickness, Color,
+ * Geometry, Texture, Blending mode...
+ * The basic way to achieve this operation consists
+ * in iterating over the StrokeVertices of the Stroke
+ * and to modify each one's StrokeAttribute.
+ * Here is a python code example of such an iteration:
+ * \code
+ * it = ioStroke.strokeVerticesBegin()
+ * while it.isEnd() == 0:
+ * att = it.getObject().attribute()
+ * ## perform here any attribute modification
+ * it.increment()
+ * \endcode
+ * Here is a C++ code example of such an iteration:
+ * \code
+ * for(StrokeInternal::StrokeVertexIterator v=ioStroke.strokeVerticesBegin(), vend=ioStroke.strokeVerticesEnd();
+ * v!=vend;
+ * ++v){
+ * StrokeAttribute& att = v->attribute();
+ * // perform any attribute modification here...
+ * }
+ * \endcode
+ */
+class LIB_STROKE_EXPORT StrokeShader
+{
+public:
+ /*! Default constructor. */
+ StrokeShader() {}
+ /*! Destructor. */
+ virtual ~StrokeShader() {}
+ /*! Returns the string corresponding to the
+ * shader's name.
+ */
+ virtual string getName() const {
+ return "StrokeShader";
+ }
+ /*! The shading method. This method must
+ * be overloaded by inherited classes.
+ * The shading method is designed to modify any
+ * Stroke's attribute such as Thickness, Color,
+ * Geometry, Texture, Blending mode...
+ * The basic way to achieve this operation consists
+ * in iterating over the StrokeVertices of the Stroke
+ * and to modify each one's StrokeAttribute.
+ * Here is a python code example of such an iteration:
+ * \code
+ * it = ioStroke.strokeVerticesBegin()
+ * while it.isEnd() == 0:
+ * att = it.getObject().attribute()
+ * ## perform here any attribute modification
+ * it.increment()
+ * \endcode
+ * Here is a C++ code example of such an iteration:
+ * \code
+ * for(StrokeInternal::StrokeVertexIterator v=ioStroke.strokeVerticesBegin(), vend=ioStroke.strokeVerticesEnd();
+ * v!=vend;
+ * ++v){
+ * StrokeAttribute& att = v->attribute();
+ * // perform any attribute modification here...
+ * }
+ * \endcode
+ * \param ioStroke
+ * The stroke we wish to shade. this Stroke
+ * is modified by the Shader (which typically
+ * modifies the Stroke's attribute's values such
+ * as Color, Thickness, Geometry...)
+ */
+ virtual void shade(Stroke& ioStroke) const {
+ cerr << "Warning: method shade() not implemented" << endl;
+ }
+
+};
+
+# endif // SHADERS_H
diff --git a/source/blender/freestyle/intern/stroke/StrokeTesselator.cpp b/source/blender/freestyle/intern/stroke/StrokeTesselator.cpp
new file mode 100755
index 00000000000..6d0f5aa847c
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeTesselator.cpp
@@ -0,0 +1,88 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "../scene_graph/OrientedLineRep.h"
+#include "../scene_graph/NodeGroup.h"
+#include "../scene_graph/NodeShape.h"
+#include "StrokeTesselator.h"
+#include "StrokeAdvancedIterators.h"
+
+LineRep* StrokeTesselator::Tesselate(Stroke *iStroke)
+{
+ if(0 == iStroke)
+ return 0;
+
+ LineRep* line;
+ line = new OrientedLineRep();
+
+ Stroke::vertex_iterator v,vend;
+ if(2 == iStroke->vertices_size())
+ {
+ line->SetStyle(LineRep::LINES);
+ v = iStroke->vertices_begin();
+ StrokeVertex *svA= (*v);
+ v++;
+ StrokeVertex *svB = (*v);
+ Vec3r A((*svA)[0], (*svA)[1], 0);
+ Vec3r B((*svB)[0], (*svB)[1], 0);
+ line->AddVertex(A);
+ line->AddVertex(B);
+ }
+ else
+ {
+ if(_overloadMaterial)
+ line->SetMaterial(_Material);
+
+ line->SetStyle(LineRep::LINE_STRIP);
+
+ for(v=iStroke->vertices_begin(), vend=iStroke->vertices_end();
+ v!=vend;
+ v++)
+ {
+ StrokeVertex *sv= (*v);
+ Vec3r V((*sv)[0], (*sv)[1], 0);
+ line->AddVertex(V);
+ }
+ }
+ line->SetId(iStroke->getId());
+ line->ComputeBBox();
+
+ return line;
+}
+
+template<class StrokeVertexIterator>
+NodeGroup* StrokeTesselator::Tesselate(StrokeVertexIterator begin, StrokeVertexIterator end)
+{
+ NodeGroup *group = new NodeGroup;
+ NodeShape *tshape = new NodeShape;
+ group->AddChild(tshape);
+ //tshape->material().SetDiffuse(0.f, 0.f, 0.f, 1.f);
+ tshape->SetMaterial(_Material);
+
+ for(StrokeVertexIterator c=begin, cend=end;
+ c!=cend;
+ c++)
+ {
+ tshape->AddRep(Tesselate((*c)));
+ }
+
+ return group;
+}
diff --git a/source/blender/freestyle/intern/stroke/StrokeTesselator.h b/source/blender/freestyle/intern/stroke/StrokeTesselator.h
new file mode 100755
index 00000000000..767d82d3d98
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StrokeTesselator.h
@@ -0,0 +1,67 @@
+//
+// Filename : StrokeTesselator.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to build a Node Tree designed to be displayed
+// from a set of strokes structure.
+// Date of creation : 26/03/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STROKETESSELATOR_H
+# define STROKETESSELATOR_H
+
+# include "../scene_graph/LineRep.h"
+# include "Stroke.h"
+
+class StrokeTesselator
+{
+public:
+
+ inline StrokeTesselator() {_Material.SetDiffuse(0,0,0,1);_overloadMaterial=false;}
+ virtual ~StrokeTesselator() {}
+
+ /*! Builds a line rep contained from a Stroke
+ */
+ LineRep* Tesselate(Stroke* iStroke) ;
+
+ /*! Builds a set of lines rep contained under a
+ * a NodeShape, itself contained under a NodeGroup from a
+ * set of strokes
+ */
+ template<class StrokeIterator>
+ NodeGroup* Tesselate(StrokeIterator begin, StrokeIterator end) ;
+
+
+
+ inline void SetMaterial(const Material& iMaterial) {_Material=iMaterial;_overloadMaterial=true;}
+ inline const Material& material() const {return _Material;}
+
+private:
+
+ Material _Material;
+ bool _overloadMaterial;
+};
+
+#endif // STROKETESSELATOR_H
+
diff --git a/source/blender/freestyle/intern/stroke/StyleModule.h b/source/blender/freestyle/intern/stroke/StyleModule.h
new file mode 100755
index 00000000000..3d39e53515b
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/StyleModule.h
@@ -0,0 +1,144 @@
+//
+// Filename : StyleModule.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Class representing a style module
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STYLE_MODULE_H
+# define STYLE_MODULE_H
+
+# include <iostream>
+# include <string>
+# include "../system/StringUtils.h"
+# include "StrokeLayer.h"
+# include "../system/Interpreter.h"
+# include "Operators.h"
+# include "StrokeShader.h"
+
+using namespace std;
+
+class StyleModule
+{
+public:
+
+ StyleModule(const string& file_name,
+ Interpreter* inter) : _file_name(file_name) {
+ _always_refresh = false;
+ _causal = false;
+ _drawable = true;
+ _modified = true;
+ _displayed = true;
+ _inter = inter;
+ }
+
+ ~StyleModule() {}
+
+ StrokeLayer* execute() {
+ if (!_inter) {
+ cerr << "Error: no interpreter was found to execute the script" << endl;
+ return NULL;
+ }
+ Operators::reset();
+ if (_inter->interpretFile(_file_name))
+ return NULL;
+ Operators::StrokesContainer* strokes_set = Operators::getStrokesSet();
+ if (!_drawable || strokes_set->empty())
+ return NULL;
+ StrokeLayer* sl = new StrokeLayer;
+ for (Operators::StrokesContainer::iterator it = strokes_set->begin();
+ it != strokes_set->end();
+ ++it)
+ sl->AddStroke(*it);
+
+ return sl;
+ }
+
+ // accessors
+
+ const string getFileName() const {
+ return _file_name;
+ }
+
+ bool getAlwaysRefresh() const {
+ return _always_refresh;
+ }
+
+ bool getCausal() const {
+ return _causal;
+ }
+
+ bool getDrawable() const {
+ return _drawable;
+ }
+
+ bool getModified() const {
+ return _modified;
+ }
+
+ bool getDisplayed() const {
+ return _displayed;
+ }
+
+ // modifiers
+
+ void setFileName(const string& file_name) {
+ _file_name = file_name;
+ }
+
+ void setAlwaysRefresh(bool b = true) {
+ _always_refresh = b;
+ }
+
+ void setCausal(bool b = true) {
+ _causal = b;
+ }
+
+ void setDrawable(bool b = true) {
+ _drawable = b;
+ }
+
+ void setModified(bool b = true) {
+ if (_always_refresh)
+ return;
+ _modified = b;
+ }
+
+ void setDisplayed(bool b = true) {
+ _displayed = b;
+ }
+
+private:
+
+ string _file_name;
+ bool _always_refresh;
+ bool _causal;
+ bool _drawable;
+ bool _modified;
+ bool _displayed;
+ Interpreter* _inter;
+};
+
+#endif // STYLE_MODULE_H
diff --git a/source/blender/freestyle/intern/stroke/TextStrokeRenderer.cpp b/source/blender/freestyle/intern/stroke/TextStrokeRenderer.cpp
new file mode 100755
index 00000000000..ea5af287bbe
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/TextStrokeRenderer.cpp
@@ -0,0 +1,73 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+# include "TextStrokeRenderer.h"
+# include "Canvas.h"
+# include "StrokeIterators.h"
+
+TextStrokeRenderer::TextStrokeRenderer(const char* iFileName)
+:StrokeRenderer(){
+ if(!iFileName)
+ iFileName = "freestyle.txt";
+ // open the stream:
+ _ofstream.open(iFileName, ios::out);
+ if(!_ofstream.is_open()){
+ cerr << "couldn't open the output file " << iFileName << endl;
+ }
+ _ofstream << "%!FREESTYLE" << endl;
+ _ofstream << "%Creator: Freestyle (http://artis.imag.fr/Software/Freestyle)" << endl;
+ // Bounding box
+ _ofstream << 0 << " "<< 0 << " " << Canvas::getInstance()->width() << " " << Canvas::getInstance()->height() << endl;
+ _ofstream << "%u x y z tleft tright r g b ..." << endl;
+}
+
+TextStrokeRenderer::~TextStrokeRenderer(){
+ Close();
+}
+
+void TextStrokeRenderer::RenderStrokeRep(StrokeRep *iStrokeRep) const{
+ RenderStrokeRepBasic(iStrokeRep);
+}
+
+void TextStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const{
+ Stroke *stroke = iStrokeRep->getStroke();
+ if(!stroke){
+ cerr << "no stroke associated with Rep" << endl;
+ return;
+ }
+
+ StrokeInternal::StrokeVertexIterator v = stroke->strokeVerticesBegin();
+ StrokeAttribute att;
+ while(!v.isEnd()){
+ att = v->attribute();
+ _ofstream << v->u() << " " << v->getProjectedX() << " " << v->getProjectedY() << " " << v->getProjectedZ() << " " \
+ << att.getThicknessL() << " " << att.getThicknessR() << " " \
+ << att.getColorR() << " " << att.getColorG() << " " << att.getColorB() << " ";
+ ++v;
+ }
+ _ofstream << endl;
+}
+
+void TextStrokeRenderer::Close(){
+ if(_ofstream.is_open())
+ _ofstream.close();
+}
+
diff --git a/source/blender/freestyle/intern/stroke/TextStrokeRenderer.h b/source/blender/freestyle/intern/stroke/TextStrokeRenderer.h
new file mode 100755
index 00000000000..ef610d63bdd
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/TextStrokeRenderer.h
@@ -0,0 +1,68 @@
+//
+// Filename : TextStrokeRenderer.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to define the text rendering of a stroke
+// Format:
+// x y width height // bbox
+// //list of vertices :
+// t x y z t1 t2 r g b alpha ...
+// ...
+// Date of creation : 01/14/2005
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef TEXTSTROKERENDERER_H
+# define TEXTSTROKERENDERER_H
+
+# include "../system/FreestyleConfig.h"
+# include "StrokeRenderer.h"
+# include <fstream>
+
+/**********************************/
+/* */
+/* */
+/* TextStrokeRenderer */
+/* */
+/* */
+/**********************************/
+
+class LIB_STROKE_EXPORT TextStrokeRenderer : public StrokeRenderer
+{
+public:
+ TextStrokeRenderer(const char * iFileName = 0);
+ virtual ~TextStrokeRenderer();
+
+ /*! Renders a stroke rep */
+ virtual void RenderStrokeRep(StrokeRep *iStrokeRep) const;
+ virtual void RenderStrokeRepBasic(StrokeRep *iStrokeRep) const;
+
+ /*! Closes the output file */
+ void Close();
+
+protected:
+ mutable ofstream _ofstream;
+};
+
+#endif // TEXTSTROKERENDERER_H
+
diff --git a/source/blender/freestyle/intern/stroke/src.pri b/source/blender/freestyle/intern/stroke/src.pri
new file mode 100755
index 00000000000..09707f86dbc
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/src.pri
@@ -0,0 +1,54 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+STROKE_DIR = ../stroke
+
+SOURCES *= $${STROKE_DIR}/AdvancedFunctions0D.cpp \
+ $${STROKE_DIR}/AdvancedFunctions1D.cpp \
+ $${STROKE_DIR}/AdvancedStrokeShaders.cpp \
+ $${STROKE_DIR}/BasicStrokeShaders.cpp \
+ $${STROKE_DIR}/Canvas.cpp \
+ $${STROKE_DIR}/Chain.cpp \
+ $${STROKE_DIR}/ChainingIterators.cpp \
+ $${STROKE_DIR}/ContextFunctions.cpp \
+ $${STROKE_DIR}/Operators.cpp \
+ $${STROKE_DIR}/PSStrokeRenderer.cpp \
+ $${STROKE_DIR}/Stroke.cpp \
+ $${STROKE_DIR}/StrokeIO.cpp \
+ $${STROKE_DIR}/StrokeLayer.cpp \
+ $${STROKE_DIR}/StrokeRenderer.cpp \
+ $${STROKE_DIR}/StrokeRep.cpp \
+ $${STROKE_DIR}/StrokeTesselator.cpp \
+ $${STROKE_DIR}/TextStrokeRenderer.cpp \
+ $${STROKE_DIR}/Curve.cpp
+
+HEADERS *= $${STROKE_DIR}/AdvancedFunctions0D.h \
+ $${STROKE_DIR}/AdvancedFunctions1D.h \
+ $${STROKE_DIR}/AdvancedPredicates1D.h \
+ $${STROKE_DIR}/AdvancedStrokeShaders.h \
+ $${STROKE_DIR}/BasicStrokeShaders.h \
+ $${STROKE_DIR}/Canvas.h \
+ $${STROKE_DIR}/Chain.h \
+ $${STROKE_DIR}/ChainingIterators.h \
+ $${STROKE_DIR}/ContextFunctions.h \
+ $${STROKE_DIR}/Curve.h \
+ $${STROKE_DIR}/CurveIterators.h \
+ $${STROKE_DIR}/CurveAdvancedIterators.h \
+ $${STROKE_DIR}/Module.h \
+ $${STROKE_DIR}/Operators.h \
+ $${STROKE_DIR}/Predicates1D.h \
+ $${STROKE_DIR}/Predicates0D.h \
+ $${STROKE_DIR}/PSStrokeRenderer.h \
+ $${STROKE_DIR}/Stroke.h \
+ $${STROKE_DIR}/StrokeIO.h \
+ $${STROKE_DIR}/StrokeIterators.h \
+ $${STROKE_DIR}/StrokeAdvancedIterators.h \
+ $${STROKE_DIR}/StrokeShader.h \
+ $${STROKE_DIR}/StrokeLayer.h \
+ $${STROKE_DIR}/StrokeRenderer.h \
+ $${STROKE_DIR}/StrokeRep.h \
+ $${STROKE_DIR}/StrokeTesselator.h \
+ $${STROKE_DIR}/StyleModule.h \
+ $${STROKE_DIR}/TextStrokeRenderer.h
diff --git a/source/blender/freestyle/intern/stroke/stroke.pro b/source/blender/freestyle/intern/stroke/stroke.pro
new file mode 100755
index 00000000000..90c0cc96592
--- /dev/null
+++ b/source/blender/freestyle/intern/stroke/stroke.pro
@@ -0,0 +1,89 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+TEMPLATE = lib
+
+TARGET = $${LIB_STROKE}
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= dll
+
+#
+# DEFINES
+#
+#######################################
+
+win32:DEFINES *= MAKE_LIB_STROKE_DLL
+
+#
+# INCLUDE PATH
+#
+#######################################
+
+#INCLUDEPATH *= ../geometry ../image ../system ../view_map \
+# ../winged_edge ../scene_graph
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+!win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}/lib
+win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+
+#
+# LIBS
+#
+#######################################
+
+win32:LIBS *= $${DESTDIR}/$${LIB_GEOMETRY}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_IMAGE}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SCENE_GRAPH}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SYSTEM}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_WINGED_EDGE}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_VIEW_MAP}$${LIBVERSION}.lib
+
+!win32 {
+ lib_bundle {
+ LIBS += -F$${DESTDIR} -framework $${LIB_GEOMETRY} -framework $${LIB_IMAGE} -framework $${LIB_SCENE_GRAPH} -framework $${LIB_SYSTEM} -framework $${LIB_WINGED_EDGE} -framework $${LIB_VIEW_MAP}
+ } else {
+ LIBS *= -L$${DESTDIR} -l$${LIB_GEOMETRY} -l$${LIB_IMAGE} -l$${LIB_SCENE_GRAPH} \
+ -l$${LIB_SYSTEM} -l$${LIB_WINGED_EDGE} -l$${LIB_VIEW_MAP}
+ }
+}
+
+#
+# INSTALL
+#
+#######################################
+
+LIB_DIR = ../../lib
+# install library
+target.path = $$LIB_DIR
+# "make install" configuration options
+INSTALLS += target
+
+#
+# SOURCES & HEADERS
+#
+#######################################
+
+
+!static {
+ include(src.pri)
+}
diff --git a/source/blender/freestyle/intern/swig/Freestyle.i b/source/blender/freestyle/intern/swig/Freestyle.i
new file mode 100755
index 00000000000..37daddc4e11
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/Freestyle.i
@@ -0,0 +1,283 @@
+//
+// FileName : Freestyle.i
+// Author : Emmanuel Turquin
+// Purpose : SWIG file used to generate Python binding
+// Date Of Creation : 18/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+
+%module(directors="1") Freestyle
+%{
+ #include "../system/Cast.h"
+ #include "../stroke/Module.h"
+ #include "../system/Precision.h"
+ #include "../system/Id.h"
+ #include "../geometry/VecMat.h"
+ #include "../geometry/Geom.h"
+ #include "../geometry/Noise.h"
+ #include "../scene_graph/Material.h"
+ #include "../winged_edge/Nature.h"
+ #include "../view_map/Interface0D.h"
+ #include "../view_map/Interface1D.h"
+ #include "../view_map/Functions0D.h"
+ #include "../view_map/Functions1D.h"
+ #include "../view_map/Silhouette.h"
+ #include "../view_map/ViewMap.h"
+ #include "../view_map/ViewMapIterators.h"
+ #include "../stroke/AdvancedFunctions0D.h"
+ #include "../stroke/AdvancedFunctions1D.h"
+ #include "../stroke/ChainingIterators.h"
+ #include "../stroke/ContextFunctions.h"
+ #include "../stroke/Predicates0D.h"
+ #include "../stroke/Predicates1D.h"
+ #include "../stroke/AdvancedPredicates1D.h"
+ #include "../stroke/StrokeShader.h"
+// #include "../stroke/Curve.h"
+ #include "../stroke/CurveIterators.h"
+ #include "../stroke/Stroke.h"
+ #include "../stroke/StrokeIterators.h"
+ #include "../stroke/BasicStrokeShaders.h"
+ #include "../stroke/AdvancedStrokeShaders.h"
+ #include "../stroke/Operators.h"
+ #include "../stroke/Canvas.h"
+%}
+
+%include "stl.i"
+%template(vectorInt) std::vector<int>;
+
+#ifdef SWIG
+# define LIB_GEOMETRY_EXPORT
+# define LIB_VIEW_MAP_EXPORT
+# define LIB_STROKE_EXPORT
+# define LIB_GEOMETRY_EXPORT
+#endif // SWIG
+
+// Generic exception handler
+%exception {
+ try {
+ $action
+ }
+// catch (Swig::DirectorTypeMismatch&) {
+// cout << "Warning: return type mismatch" << endl;
+// }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+}
+
+// Precision
+%include "../system/Precision.h"
+
+// Id
+%include "../system/Id.h"
+
+// Vec
+%include "../geometry/VecMat.h"
+
+%template(Vec_2u) VecMat::Vec<unsigned,2>;
+%template(Vec_2i) VecMat::Vec<int,2>;
+%template(Vec_2d) VecMat::Vec<double,2>;
+%template(Vec_2f) VecMat::Vec<float,2>;
+
+%template(Vec2u) VecMat::Vec2<unsigned>;
+%template(Vec2i) VecMat::Vec2<int>;
+%template(Vec2f) VecMat::Vec2<float>;
+%template(Vec2d) VecMat::Vec2<double>;
+
+%template(Vec_3u) VecMat::Vec<unsigned,3>;
+%template(Vec_3i) VecMat::Vec<int,3>;
+%template(Vec_3d) VecMat::Vec<double,3>;
+%template(Vec_3f) VecMat::Vec<float,3>;
+
+%template(Vec3u) VecMat::Vec3<unsigned>;
+%template(Vec3i) VecMat::Vec3<int>;
+%template(Vec3f) VecMat::Vec3<float>;
+%template(Vec3d) VecMat::Vec3<double>;
+
+//%template(HVec3u) VecMat::HVec3<unsigned>;
+//%template(HVec3i) VecMat::HVec3<int>;
+//%template(HVec3f) VecMat::HVec3<float>;
+//%template(HVec3d) VecMat::HVec3<double>;
+//%template(HVec3r) VecMat::HVec3<real>;
+
+//%template(Matrix22u) VecMat::SquareMatrix<unsigned, 2>;
+//%template(Matrix22i) VecMat::SquareMatrix<int, 2>;
+//%template(Matrix22f) VecMat::SquareMatrix<float, 2>;
+//%template(Matrix22d) VecMat::SquareMatrix<double, 2>;
+
+//%template(Matrix22r) VecMat::SquareMatrix<real, 2>;
+//%template(Matrix33u) VecMat::SquareMatrix<unsigned, 3>;
+//%template(Matrix33i) VecMat::SquareMatrix<int, 3>;
+//%template(Matrix33f) VecMat::SquareMatrix<float, 3>;
+//%template(Matrix33d) VecMat::SquareMatrix<double, 3>;
+//%template(Matrix33r) VecMat::SquareMatrix<real, 3>;
+
+//%template(Matrix44u) VecMat::SquareMatrix<unsigned, 4>;
+//%template(Matrix44i) VecMat::SquareMatrix<int, 4>;
+//%template(Matrix44f) VecMat::SquareMatrix<float, 4>;
+//%template(Matrix44d) VecMat::SquareMatrix<double, 4>;
+//%template(Matrix44r) VecMat::SquareMatrix<real, 4>;
+
+%include "../geometry/Geom.h"
+
+// Noise
+%include "../geometry/Noise.h"
+
+// Material
+%include "../scene_graph/Material.h"
+
+// ViewMap Components
+%include "../winged_edge/Nature.h"
+
+%rename(getObject) Interface0DIterator::operator*;
+%rename(getObject) Interface0DIteratorNested::operator*;
+%include "../view_map/Interface0D.h"
+
+%include "../view_map/Interface1D.h"
+%template(integrateUnsigned) integrate<unsigned>;
+%template(integrateFloat) integrate<float>;
+%template(integrateDouble) integrate<double>;
+//%template(integrateReal) integrate<real>;
+
+%rename(getObject) FEdgeInternal::SVertexIterator::operator*;
+%rename(FEdgeSVertexIterator) FEdgeInternal::SVertexIterator;
+%include "../view_map/Silhouette.h"
+
+%template(ViewShapesContainer) std::vector<ViewShape*>;
+%template(ViewEdgesContainer) std::vector<ViewEdge*>;
+%template(FEdgesContainer) std::vector<FEdge*>;
+%template(ViewVerticesContainer) std::vector<ViewVertex*>;
+%template(SVerticesContainer) std::vector<SVertex*>;
+
+%ignore NonTVertex::edges_begin;
+%ignore NonTVertex::edges_last;
+%ignore NonTVertex::edges_iterator;
+%ignore TVertex::edges_begin;
+%ignore TVertex::edges_last;
+%ignore TVertex::edges_iterator;
+%ignore ViewEdge::ViewEdge_iterator;
+%ignore ViewEdge::fedge_iterator_begin;
+%ignore ViewEdge::fedge_iterator_last;
+%ignore ViewEdge::fedge_iterator_end;
+%ignore ViewEdge::vertices_begin;
+%ignore ViewEdge::vertices_last;
+%ignore ViewEdge::vertices_end;
+%rename(directedViewEdge) ViewVertex::directedViewEdge;
+//%template(directedViewEdge) std::pair<ViewEdge*,bool>;
+%include "../view_map/ViewMap.h"
+
+
+%feature("director") ViewEdgeInternal::ViewEdgeIterator;
+%rename(getObject) ViewVertexInternal::orientedViewEdgeIterator::operator*;
+%rename(ViewVertexOrientedViewEdgeIterator) ViewVertexInternal::orientedViewEdgeIterator;
+%rename(getObject) ViewEdgeInternal::SVertexIterator::operator*;
+%rename(ViewEdgeSVertexIterator) ViewEdgeInternal::SVertexIterator;
+%rename(getObject) ViewEdgeInternal::ViewEdgeIterator::operator*;
+%rename(ViewEdgeViewEdgeIterator) ViewEdgeInternal::ViewEdgeIterator;
+%include "../view_map/ViewMapIterators.h"
+
+%include "../view_map/Interface0D.h"
+
+// SWIG directives in "../view_map/Functions0D.h"
+%ignore Functions0D::getFEdges;
+%ignore Functions0D::getViewEdges;
+%ignore Functions0D::getShapeF0D;
+%ignore Functions0D::getOccludersF0D;
+%ignore Functions0D::getOccludeeF0D;
+%include "../view_map/Functions0D.h"
+
+// SWIG directives in "../view_map/Functions1D.h"
+%ignore Functions1D::getOccludeeF1D;
+%ignore Functions1D::getOccludersF1D;
+%ignore Functions1D::getShapeF1D;
+%include "../view_map/Functions1D.h"
+
+// Module parameters
+%include "../stroke/Module.h"
+
+%include "../stroke/AdvancedFunctions0D.h"
+%include "../stroke/AdvancedFunctions1D.h"
+
+%include "../stroke/ContextFunctions.h"
+
+%rename(getObject) AdjacencyIterator::operator*;
+%rename(getObject) ViewEdgeInternal::ViewEdgeIterator::operator*;
+%feature("director") ChainingIterator;
+%feature("director") ChainSilhouetteIterator;
+%feature("director") ChainPredicateIterator;
+%include "../stroke/ChainingIterators.h"
+
+%feature("director") UnaryPredicate0D;
+%include "../stroke/Predicates0D.h"
+
+%feature("director") UnaryPredicate1D;
+%feature("director") BinaryPredicate1D;
+%include "../stroke/Predicates1D.h"
+%include "../stroke/AdvancedPredicates1D.h"
+
+%rename(getObject) CurveInternal::CurvePointIterator::operator*;
+%rename(CurvePointIterator) CurveInternal::CurvePointIterator;
+%include "../stroke/CurveIterators.h"
+
+%ignore Curve::points_begin;
+%ignore Curve::points_end;
+%ignore Curve::vertices_begin;
+%ignore Curve::vertices_end;
+%include "../stroke/Curve.h"
+
+%ignore Stroke::vertices_begin;
+%ignore Stroke::vertices_end;
+%include "../stroke/StrokeIterators.h"
+%include "../stroke/Stroke.h"
+
+%rename(getObject) StrokeInternal::StrokeVertexIterator::operator*;
+%rename(StrokeVertexIterator) StrokeInternal::StrokeVertexIterator;
+%include "../stroke/StrokeIterators.h"
+
+%feature("director") StrokeShader;
+%template(ShadersContainer) std::vector<StrokeShader*>;
+%include "../stroke/StrokeShader.h"
+
+%include "../stroke/BasicStrokeShaders.h"
+%include "../stroke/AdvancedStrokeShaders.h"
+
+%ignore Operators::getStrokesSet;
+%ignore Operators::reset;
+%include "../stroke/Operators.h"
+
+// Canvas.h
+%include "../stroke/Canvas.h"
+
+// Cast functions
+%include "../system/Cast.h"
+%template(castToSVertex) Cast::cast<Interface0D, SVertex>;
+%template(castToViewVertex) Cast::cast<Interface0D, ViewVertex>;
+%template(castToTVertex) Cast::cast<Interface0D, TVertex>;
+%template(castToCurvePoint) Cast::cast<Interface0D, CurvePoint>;
+%template(castToStrokeVertex) Cast::cast<Interface0D, StrokeVertex>;
+%template(castToNonTVertex) Cast::cast<Interface0D, NonTVertex>;
+%template(castToFEdge) Cast::cast<Interface1D, FEdge>;
+%template(castToViewEdge) Cast::cast<Interface1D, ViewEdge>;
+%template(castToStroke) Cast::cast<Interface1D, Stroke>;
+%template(castToChain) Cast::cast<Interface1D, Chain>;
diff --git a/source/blender/freestyle/intern/swig/FreestyleWrapper.vc7.vcproj b/source/blender/freestyle/intern/swig/FreestyleWrapper.vc7.vcproj
new file mode 100755
index 00000000000..060c1987ea1
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/FreestyleWrapper.vc7.vcproj
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="_Freestyle"
+ ProjectGUID="{3E3D60D3-0904-4DC7-BFC2-113735CA00DD}"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="$(PYTHON_INCLUDE),..\stroke,..\system,..\geometry,..\winged_edge,..\view_map,..\image,..\scene_graph"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FREESTYLEWRAPPER_EXPORTS"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ RuntimeTypeInfo="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Release/FreestyleWrapper.vc6.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\build\win32\release\FreestyleWingedEdge2.2.lib ..\..\build\win32\release\FreestyleViewMap2.2.lib ..\..\build\win32\release\FreestyleSystem2.2.lib ..\..\build\win32\release\FreestyleStroke2.2.lib ..\..\build\win32\release\FreestyleRendering2.2.lib ..\..\build\win32\release\FreestyleGeometry2.2.lib ..\..\build\win32\release\FreestyleImage2.2.lib odbc32.lib odbccp32.lib C:\python24\libs\python24.lib"
+ OutputFile="..\..\build\win32\release\python\_Freestyle.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile=".\Release/_Freestyle.pdb"
+ ImportLibrary=".\Release/_Freestyle.lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/FreestyleWrapper.vc6.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy Freestyle.py ..\..\build\win32\release\python\"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="2057"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="$(PYTHON_INCLUDE),..\stroke,..\system,..\geometry,..\winged_edge,..\view_map,..\image,..\scene_graph"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FREESTYLEWRAPPER_EXPORTS;__WIN32__"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ RuntimeTypeInfo="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\Debug/FreestyleWrapper.vc6.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\build\win32\debug\FreestyleWingedEdge_d2.2.lib ..\..\build\win32\debug\FreestyleViewMap_d2.2.lib ..\..\build\win32\debug\FreestyleSystem_d2.2.lib ..\..\build\win32\debug\FreestyleStroke_d2.2.lib ..\..\build\win32\debug\FreestyleRendering_d2.2.lib ..\..\build\win32\debug\FreestyleGeometry_d2.2.lib ..\..\build\win32\debug\FreestyleImage_d2.2.lib odbc32.lib odbccp32.lib C:\Python24\libs\python24_d.lib"
+ OutputFile="..\..\build\win32\debug\python\_Freestyle.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/_Freestyle.pdb"
+ ImportLibrary=".\Debug/_Freestyle.lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/FreestyleWrapper.vc6.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy Freestyle.py ..\..\build\win32\debug\python\"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="2057"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath="ModuleWrapper.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;FREESTYLEWRAPPER_EXPORTS;$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;FREESTYLEWRAPPER_EXPORTS;__WIN32__;$(NoInherit)"
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ <File
+ RelativePath="ModuleWrapper.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ <File
+ RelativePath="Freestyle.i">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo In order to function correctly, please ensure the following environment variables are correctly set:
+echo PYTHON_INCLUDE: %PYTHON_INCLUDE%
+echo PYTHON_LIB: %PYTHON_LIB%
+echo on
+swig -c++ -python -I&quot;$(SWIG_INC)\python&quot; -I&quot;$(SWIG_INC)&quot; -o ModuleWrapper.cpp &quot;$(InputPath)&quot;
+"
+ Outputs="ModuleWrapper.cpp"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo In order to function correctly, please ensure the following environment variables are correctly set:
+echo PYTHON_INCLUDE: %PYTHON_INCLUDE%
+echo PYTHON_LIB: %PYTHON_LIB%
+echo on
+swig -c++ -python -I&quot;$(SWIG_INC)\python&quot; -I&quot;$(SWIG_INC)&quot; -o ModuleWrapper.cpp &quot;$(InputPath)&quot;
+"
+ Outputs="ModuleWrapper.cpp"/>
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/source/blender/freestyle/intern/swig/FreestyleWrapper.vc8.vcproj b/source/blender/freestyle/intern/swig/FreestyleWrapper.vc8.vcproj
new file mode 100755
index 00000000000..833a4f89aca
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/FreestyleWrapper.vc8.vcproj
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="_Freestyle"
+ ProjectGUID="{E6FFBB76-729F-4C64-8A85-A420C4555FAF}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/FreestyleWrapper.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="$(PYTHON_INCLUDE),..\stroke,..\system,..\geometry,..\winged_edge,..\view_map,..\image,..\scene_graph"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FREESTYLEWRAPPER_EXPORTS"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ RuntimeTypeInfo="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile=".\Release/FreestyleWrapper.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="2"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="2057"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\build\win32\release\FreestyleWingedEdge2.2.lib ..\..\build\win32\release\FreestyleViewMap2.2.lib ..\..\build\win32\release\FreestyleSystem2.2.lib ..\..\build\win32\release\FreestyleStroke2.2.lib ..\..\build\win32\release\FreestyleRendering2.2.lib ..\..\build\win32\release\FreestyleGeometry2.2.lib ..\..\build\win32\release\FreestyleImage2.2.lib odbc32.lib odbccp32.lib $(PYTHON_LIB)"
+ OutputFile="..\..\build\win32\release\python\_Freestyle.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile=".\Release/_Freestyle.pdb"
+ ImportLibrary=".\Release/_Freestyle.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Release/FreestyleWrapper.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy Freestyle.py ..\..\build\win32\release\python\&#x0D;&#x0A;copy ..\..\build\win32\release\python\_Freestyle.dll ..\..\build\win32\release\python\_Freestyle.pyd&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/FreestyleWrapper.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="$(PYTHON_INCLUDE),..\stroke,..\system,..\geometry,..\winged_edge,..\view_map,..\image,..\scene_graph"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FREESTYLEWRAPPER_EXPORTS;__WIN32__"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ RuntimeTypeInfo="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile=".\Debug/FreestyleWrapper.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="2"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="2057"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\build\win32\debug\FreestyleWingedEdge_d2.2.lib ..\..\build\win32\debug\FreestyleViewMap_d2.2.lib ..\..\build\win32\debug\FreestyleSystem_d2.2.lib ..\..\build\win32\debug\FreestyleStroke_d2.2.lib ..\..\build\win32\debug\FreestyleRendering_d2.2.lib ..\..\build\win32\debug\FreestyleGeometry_d2.2.lib ..\..\build\win32\debug\FreestyleImage_d2.2.lib odbc32.lib odbccp32.lib $(PYTHON_LIB)"
+ OutputFile="..\..\build\win32\debug\python\_Freestyle.dll"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/_Freestyle.pdb"
+ ImportLibrary=".\Debug/_Freestyle.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Debug/FreestyleWrapper.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy Freestyle.py ..\..\build\win32\debug\python\&#x0D;&#x0A;copy ..\..\build\win32\debug\python\_Freestyle.dll ..\..\build\win32\debug\python\_Freestyle.pyd&#x0D;&#x0A;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="ModuleWrapper.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="ModuleWrapper.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="Freestyle.i"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo In order to function correctly, please ensure the following environment variables are correctly set:&#x0D;&#x0A;echo PYTHON_INCLUDE: %PYTHON_INCLUDE%&#x0D;&#x0A;echo PYTHON_LIB: %PYTHON_LIB%&#x0D;&#x0A;echo on&#x0D;&#x0A;swig -c++ -python -I&quot;$(SWIG_INC)\python&quot; -I&quot;$(SWIG_INC)&quot; -o ModuleWrapper.cpp &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="ModuleWrapper.cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo In order to function correctly, please ensure the following environment variables are correctly set:&#x0D;&#x0A;echo PYTHON_INCLUDE: %PYTHON_INCLUDE%&#x0D;&#x0A;echo PYTHON_LIB: %PYTHON_LIB%&#x0D;&#x0A;echo on&#x0D;&#x0A;swig -c++ -python -I&quot;$(SWIG_INC)\python&quot; -I&quot;$(SWIG_INC)&quot; -o ModuleWrapper.cpp &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+ Outputs="ModuleWrapper.cpp"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/source/blender/freestyle/intern/swig/Makefile b/source/blender/freestyle/intern/swig/Makefile
new file mode 100755
index 00000000000..01829434be0
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/Makefile
@@ -0,0 +1,90 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+CXX = g++
+RM = rm -f
+INSTALL = install
+SWIG = swig
+
+PYTHON_VERSION_MAJ = 2
+PYTHON_VERSION_MIN = 4
+
+BUILD = debug
+PLATEFORM = linux-g++
+MODNAME = Freestyle
+
+LIBNAME = _${MODNAME}.so
+LIBDIR = ../../build/${PLATEFORM}/${BUILD}/lib/python
+IPATH = -I../geometry -I../image -I../scene_graph -I../stroke \
+ -I../system -I../view_map -I../winged_edge \
+ -I/usr/include/python${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}
+# options to compile with static python : -lpthread -lm -lutil -shared -Xlinker -x -export-dynamic
+#OPTI = -lpthread -lm -lutil -shared -Xlinker -x -export-dynamic #-O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+DBUG = #-ggdb #-pg
+WARN = -w #-W -Wall #-pedantic -ansi
+
+CFLAGS = ${OPTI} ${DBUG} ${WARN} ${IPATH}
+LDFLAGS = ${OPTI} ${DBUG} ${WARN} ${LPATH}
+
+SWIG_SRC = Freestyle.i
+PY_SRC = ${SWIG_SRC:.i=.py}
+CXX_SRC = ModuleWrapper.cpp
+CXX_INC = ${CXX_SRC:.cpp=.h}
+CXX_OBJ = ${CXX_SRC:.cpp=.o}
+
+ifndef DBUG
+ STRIP = strip --strip-all ${LIBDIR}/${LIBNAME}
+endif
+
+# # # # # # # # # # # # # # # # R u l e s # # # # # # # # # # # # # # # # #
+
+all : swig cxx
+
+.PHONY : clean re
+
+clean : swig_clean cxx_clean
+
+re : swig_re cxx_re
+
+# # # # # # # # # # # # # S W I G r u l e s # # # # # # # # # # # # # # #
+
+.SUFFIXES:
+.SUFFIXES: .i .py .cpp .h .o
+
+.IGNORE :
+
+swig : ${CXX_INC} ${CXX_SRC} ${PY_SRC}
+
+.i.py : ${SWIG_SRC}
+ ${SWIG} -c++ -python -o ${CXX_SRC} $<
+
+.PHONY : swig_clean swig_re
+
+swig_clean :
+ ${RM} *~ \#* .\#* : ${CXX_INC} ${CXX_SRC} ${PY_SRC}
+
+swig_re : swig_clean swig
+
+# # # # # # # # # P y t h o n & C + + r u l e s # # # # # # # # # # #
+
+cxx : ${CXX_OBJ} ${PY_SRC}
+ ${INSTALL} -d ${LIBDIR}
+ ${CC} -shared -o ${LIBDIR}/${LIBNAME} ${CXX_OBJ}
+ ${INSTALL} ${PY_SRC} ${LIBDIR}
+ @${STRIP}
+
+.cpp.o : ${CXX_INC} ${CXX_SRC}
+ ${CXX} ${CFLAGS} -c $< -o $@
+
+${CXX_SRC} : ${PY_SRC}
+
+${CXX_INC} : ${PY_SRC}
+
+.PHONY : cxx_clean cxx_re
+
+cxx_clean :
+ ${RM} *~ \#* .\#* *.core gmon.out ${CXX_OBJ}
+
+cxx_re : cxx_clean cxx_all
diff --git a/source/blender/freestyle/intern/swig/Makefile.cygwin b/source/blender/freestyle/intern/swig/Makefile.cygwin
new file mode 100755
index 00000000000..1f5b3ce2a79
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/Makefile.cygwin
@@ -0,0 +1,92 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+CXX = g++
+RM = rm -f
+INSTALL = install
+SWIG = swig
+
+PYTHON_VERSION_MAJ = 2
+PYTHON_VERSION_MIN = 5
+
+BUILD = debug
+PLATEFORM = cygwin-g++
+MODNAME = Freestyle
+
+LIBNAME = _${MODNAME}.dll
+LIBDIR = ../../build/${PLATEFORM}/${BUILD}/lib/python
+IPATH = -I../geometry -I../image -I../scene_graph -I../stroke \
+ -I../system -I../view_map -I../winged_edge \
+ -I/usr/include/python${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}
+LPATH = -L/usr/lib/python${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}/config -lpython${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN} \
+ -L../../build/${PLATEFORM}/${BUILD}/lib -lFreestyleSystem -lFreestyleImage -lFreestyleGeometry -lFreestyleSceneGraph -lFreestyleWingedEdge -lFreestyleViewMap -lFreestyleRendering -lFreestyleStroke
+# options to compile with static python : -lpthread -lm -lutil -shared -Xlinker -x -export-dynamic
+#OPTI = -lpthread -lm -lutil -shared -Xlinker -x -export-dynamic #-O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+DBUG = #-ggdb #-pg
+WARN = -w #-W -Wall #-pedantic -ansi
+
+CFLAGS = ${OPTI} ${DBUG} ${WARN} ${IPATH}
+LDFLAGS = ${OPTI} ${DBUG} ${WARN} ${LPATH}
+
+SWIG_SRC = Freestyle.i
+PY_SRC = ${SWIG_SRC:.i=.py}
+CXX_SRC = ModuleWrapper.cpp
+CXX_INC = ${CXX_SRC:.cpp=.h}
+CXX_OBJ = ${CXX_SRC:.cpp=.o}
+
+ifndef DBUG
+ STRIP = strip --strip-all ${LIBDIR}/${LIBNAME}
+endif
+
+# # # # # # # # # # # # # # # # R u l e s # # # # # # # # # # # # # # # # #
+
+all : swig cxx
+
+.PHONY : clean re
+
+clean : swig_clean cxx_clean
+
+re : swig_re cxx_re
+
+# # # # # # # # # # # # # S W I G r u l e s # # # # # # # # # # # # # # #
+
+.SUFFIXES:
+.SUFFIXES: .i .py .cpp .h .o
+
+.IGNORE :
+
+swig : ${CXX_INC} ${CXX_SRC} ${PY_SRC}
+
+.i.py : ${SWIG_SRC}
+ ${SWIG} -c++ -python -o ${CXX_SRC} $<
+
+.PHONY : swig_clean swig_re
+
+swig_clean :
+ ${RM} *~ \#* .\#* : ${CXX_INC} ${CXX_SRC} ${PY_SRC}
+
+swig_re : swig_clean swig
+
+# # # # # # # # # P y t h o n & C + + r u l e s # # # # # # # # # # #
+
+cxx : ${CXX_OBJ} ${PY_SRC}
+ ${INSTALL} -d ${LIBDIR}
+ ${CXX} -shared ${LDFLAGS} -o ${LIBDIR}/${LIBNAME} ${CXX_OBJ}
+ ${INSTALL} ${PY_SRC} ${LIBDIR}
+ @${STRIP}
+
+.cpp.o : ${CXX_INC} ${CXX_SRC}
+ ${CXX} ${CFLAGS} -c $< -o $@
+
+${CXX_SRC} : ${PY_SRC}
+
+${CXX_INC} : ${PY_SRC}
+
+.PHONY : cxx_clean cxx_re
+
+cxx_clean :
+ ${RM} *~ \#* .\#* *.core gmon.out ${CXX_OBJ}
+
+cxx_re : cxx_clean cxx_all
diff --git a/source/blender/freestyle/intern/swig/Makefile.linux b/source/blender/freestyle/intern/swig/Makefile.linux
new file mode 100755
index 00000000000..2a93971ccd5
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/Makefile.linux
@@ -0,0 +1,91 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+CXX = g++
+RM = rm -f
+INSTALL = install
+SWIG = swig
+
+PYTHON_VERSION_MAJ = 2
+PYTHON_VERSION_MIN = 5
+
+BUILD = debug
+PLATEFORM = linux-g++
+MODNAME = Freestyle
+
+LIBNAME = _${MODNAME}.so
+LIBDIR = ../../build/${PLATEFORM}/${BUILD}/lib/python
+IPATH = -I../geometry -I../image -I../scene_graph -I../stroke \
+ -I../system -I../view_map -I../winged_edge \
+ -I/usr/include/python${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}
+LPATH = -L/usr/lib/python${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}/config -lpython${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}
+# options to compile with static python : -lpthread -lm -lutil -shared -Xlinker -x -export-dynamic
+#OPTI = -lpthread -lm -lutil -shared -Xlinker -x -export-dynamic #-O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+DBUG = #-ggdb #-pg
+WARN = -w #-W -Wall #-pedantic -ansi
+
+CFLAGS = ${OPTI} ${DBUG} ${WARN} ${IPATH}
+LDFLAGS = ${OPTI} ${DBUG} ${WARN} ${LPATH}
+
+SWIG_SRC = Freestyle.i
+PY_SRC = ${SWIG_SRC:.i=.py}
+CXX_SRC = ModuleWrapper.cpp
+CXX_INC = ${CXX_SRC:.cpp=.h}
+CXX_OBJ = ${CXX_SRC:.cpp=.o}
+
+ifndef DBUG
+ STRIP = strip --strip-all ${LIBDIR}/${LIBNAME}
+endif
+
+# # # # # # # # # # # # # # # # R u l e s # # # # # # # # # # # # # # # # #
+
+all : swig cxx
+
+.PHONY : clean re
+
+clean : swig_clean cxx_clean
+
+re : swig_re cxx_re
+
+# # # # # # # # # # # # # S W I G r u l e s # # # # # # # # # # # # # # #
+
+.SUFFIXES:
+.SUFFIXES: .i .py .cpp .h .o
+
+.IGNORE :
+
+swig : ${CXX_INC} ${CXX_SRC} ${PY_SRC}
+
+.i.py : ${SWIG_SRC}
+ ${SWIG} -c++ -python -o ${CXX_SRC} $<
+
+.PHONY : swig_clean swig_re
+
+swig_clean :
+ ${RM} *~ \#* .\#* : ${CXX_INC} ${CXX_SRC} ${PY_SRC}
+
+swig_re : swig_clean swig
+
+# # # # # # # # # P y t h o n & C + + r u l e s # # # # # # # # # # #
+
+cxx : ${CXX_OBJ} ${PY_SRC}
+ ${INSTALL} -d ${LIBDIR}
+ ${CXX} -shared ${LDFLAGS} -o ${LIBDIR}/${LIBNAME} ${CXX_OBJ}
+ ${INSTALL} ${PY_SRC} ${LIBDIR}
+ @${STRIP}
+
+.cpp.o : ${CXX_INC} ${CXX_SRC}
+ ${CXX} ${CFLAGS} -c $< -o $@
+
+${CXX_SRC} : ${PY_SRC}
+
+${CXX_INC} : ${PY_SRC}
+
+.PHONY : cxx_clean cxx_re
+
+cxx_clean :
+ ${RM} *~ \#* .\#* *.core gmon.out ${CXX_OBJ}
+
+cxx_re : cxx_clean cxx_all
diff --git a/source/blender/freestyle/intern/swig/Makefile.mac b/source/blender/freestyle/intern/swig/Makefile.mac
new file mode 100644
index 00000000000..2c46d74549e
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/Makefile.mac
@@ -0,0 +1,91 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+CXX = g++
+RM = rm -f
+INSTALL = install
+SWIG = swig
+
+PYTHON_VERSION_MAJ = 2
+PYTHON_VERSION_MIN = 5
+
+BUILD = release
+PLATEFORM = macosx
+MODNAME = Freestyle
+
+LIBNAME = _${MODNAME}.so
+LIBDIR = ../../build/${PLATEFORM}/${BUILD}/lib/python
+IPATH = -I../geometry -I../image -I../scene_graph -I../stroke \
+ -I../system -I../view_map -I../winged_edge \
+ -I/usr/include/python${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}
+LPATH = -L/usr/lib/python${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}/config -lpython${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}
+# options to compile with static python : -lpthread -lm -lutil -shared -Xlinker -x -export-dynamic
+#OPTI = -lpthread -lm -lutil -shared -Xlinker -x -export-dynamic #-O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+DBUG = #-ggdb #-pg
+WARN = -w #-W -Wall #-pedantic -ansi
+
+CFLAGS = ${OPTI} ${DBUG} ${WARN} ${IPATH}
+LDFLAGS = ${OPTI} ${DBUG} ${WARN} ${LPATH}
+
+SWIG_SRC = Freestyle.i
+PY_SRC = ${SWIG_SRC:.i=.py}
+CXX_SRC = ModuleWrapper.cpp
+CXX_INC = ${CXX_SRC:.cpp=.h}
+CXX_OBJ = ${CXX_SRC:.cpp=.o}
+
+ifndef DBUG
+ STRIP = strip -x ${LIBDIR}/${LIBNAME}
+endif
+
+# # # # # # # # # # # # # # # # R u l e s # # # # # # # # # # # # # # # # #
+
+all : swig cxx
+
+.PHONY : clean re
+
+clean : swig_clean cxx_clean
+
+re : swig_re cxx_re
+
+# # # # # # # # # # # # # S W I G r u l e s # # # # # # # # # # # # # # #
+
+.SUFFIXES:
+.SUFFIXES: .i .py .cpp .h .o
+
+.IGNORE :
+
+swig : ${CXX_INC} ${CXX_SRC} ${PY_SRC}
+
+.i.py : ${SWIG_SRC}
+ ${SWIG} -c++ -python -o ${CXX_SRC} $<
+
+.PHONY : swig_clean swig_re
+
+swig_clean :
+ ${RM} *~ \#* .\#* : ${CXX_INC} ${CXX_SRC} ${PY_SRC}
+
+swig_re : swig_clean swig
+
+# # # # # # # # # P y t h o n & C + + r u l e s # # # # # # # # # # #
+
+cxx : ${CXX_OBJ} ${PY_SRC}
+ ${INSTALL} -d ${LIBDIR}
+ ${CXX} -bundle -flat_namespace -undefined suppress ${LDFLAGS} -o ${LIBDIR}/${LIBNAME} ${CXX_OBJ}
+ ${INSTALL} ${PY_SRC} ${LIBDIR}
+ @${STRIP}
+
+.cpp.o : ${CXX_INC} ${CXX_SRC}
+ ${CXX} ${CFLAGS} -c $< -o $@
+
+${CXX_SRC} : ${PY_SRC}
+
+${CXX_INC} : ${PY_SRC}
+
+.PHONY : cxx_clean cxx_re
+
+cxx_clean :
+ ${RM} *~ \#* .\#* *.core gmon.out ${CXX_OBJ}
+
+cxx_re : cxx_clean cxx_all
diff --git a/source/blender/freestyle/intern/swig/Makefile.noswig b/source/blender/freestyle/intern/swig/Makefile.noswig
new file mode 100755
index 00000000000..368c4fb173b
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/Makefile.noswig
@@ -0,0 +1,64 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+CXX = g++
+RM = rm -f
+INSTALL = install
+
+PYTHON_VERSION_MAJ = 2
+PYTHON_VERSION_MIN = 2
+
+BUILD = debug
+PLATEFORM = linux-g++
+MODNAME = Freestyle
+
+LIBNAME = _${MODNAME}.so
+LIBDIR = ../../build/${PLATEFORM}/${BUILD}/lib/python
+IPATH = -I../geometry -I../image -I../scene_graph -I../stroke \
+ -I../system -I../view_map -I../winged_edge \
+ -I/usr/include/python${PYTHON_VERSION_MAJ}.${PYTHON_VERSION_MIN}
+OPTI = #-O3 -funroll-loops -fomit-frame-pointer -ffast-math -march=i686
+DBUG = #-ggdb #-pg
+WARN = -w #-W -Wall #-pedantic -ansi
+
+CFLAGS = ${OPTI} ${DBUG} ${WARN} ${IPATH}
+LDFLAGS = ${OPTI} ${DBUG} ${WARN} ${LPATH}
+
+PY_SRC = Freestyle.py
+CXX_SRC = ModuleWrapper.cpp
+CXX_INC = ${CXX_SRC:.cpp=.h}
+CXX_OBJ = ${CXX_SRC:.cpp=.o}
+
+ifndef DBUG
+ STRIP = strip --strip-all ${LIBDIR}/${LIBNAME}
+endif
+
+# # # # # # # # # # # # # # # # R u l e s # # # # # # # # # # # # # # # # #
+
+all : cxx
+
+.PHONY : clean re
+
+clean : cxx_clean
+
+re : cxx_re
+
+# # # # # # # # # P y t h o n & C + + r u l e s # # # # # # # # # # #
+
+cxx : ${CXX_OBJ} ${PY_SRC}
+ ${INSTALL} -d ${LIBDIR}
+ ${CC} -shared -o ${LIBDIR}/${LIBNAME} ${CXX_OBJ}
+ ${INSTALL} ${PY_SRC} ${LIBDIR}
+ @${STRIP}
+
+.cpp.o : ${CXX_INC} ${CXX_SRC}
+ ${CXX} ${CFLAGS} -c $< -o $@
+
+.PHONY : cxx_clean cxx_re
+
+cxx_clean :
+ ${RM} *~ \#* .\#* *.core gmon.out ${CXX_OBJ}
+
+cxx_re : cxx_clean cxx_all
diff --git a/source/blender/freestyle/intern/swig/ModuleWrapper.cpp b/source/blender/freestyle/intern/swig/ModuleWrapper.cpp
new file mode 100755
index 00000000000..36bd39b2b15
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/ModuleWrapper.cpp
@@ -0,0 +1,111845 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.31
+ *
+ * This file is not intended to be easily readable and contains a number of
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG
+ * interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+#define SWIGPYTHON
+#define SWIG_DIRECTORS
+#define SWIG_PYTHON_DIRECTOR_NO_VTABLE
+
+#ifdef __cplusplus
+template<class T> class SwigValueWrapper {
+ T *tt;
+public:
+ SwigValueWrapper() : tt(0) { }
+ SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+ SwigValueWrapper(const T& t) : tt(new T(t)) { }
+ ~SwigValueWrapper() { delete tt; }
+ SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+ operator T&() const { return *tt; }
+ T *operator&() { return tt; }
+private:
+ SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+#endif
+
+/* -----------------------------------------------------------------------------
+ * This section contains generic SWIG labels for method/variable
+ * declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC)
+# if (__SUNPRO_CC <= 0x560)
+# define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+# define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+# else
+# define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+# define SWIGINLINE inline
+# else
+# define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+# define SWIGUNUSED __attribute__ ((__unused__))
+# else
+# define SWIGUNUSED
+# endif
+# elif defined(__ICC)
+# define SWIGUNUSED __attribute__ ((__unused__))
+# else
+# define SWIGUNUSED
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+# define SWIGUNUSEDPARM(p)
+# else
+# define SWIGUNUSEDPARM(p) p SWIGUNUSED
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+# ifndef GCC_HASCLASSVISIBILITY
+# define GCC_HASCLASSVISIBILITY
+# endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+# if defined(STATIC_LINKED)
+# define SWIGEXPORT
+# else
+# define SWIGEXPORT __declspec(dllexport)
+# endif
+# else
+# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+# define SWIGEXPORT __attribute__ ((visibility("default")))
+# else
+# define SWIGEXPORT
+# endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+# define SWIGSTDCALL __stdcall
+# else
+# define SWIGSTDCALL
+# endif
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+
+/* Python.h has to appear first */
+#include <Python.h>
+
+/* -----------------------------------------------------------------------------
+ * swigrun.swg
+ *
+ * This file contains generic CAPI SWIG runtime support for pointer
+ * type checking.
+ * ----------------------------------------------------------------------------- */
+
+/* This should only be incremented when either the layout of swig_type_info changes,
+ or for whatever reason, the runtime changes incompatibly */
+#define SWIG_RUNTIME_VERSION "3"
+
+/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
+#ifdef SWIG_TYPE_TABLE
+# define SWIG_QUOTE_STRING(x) #x
+# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
+# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
+#else
+# define SWIG_TYPE_TABLE_NAME
+#endif
+
+/*
+ You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
+ creating a static or dynamic library from the swig runtime code.
+ In 99.9% of the cases, swig just needs to declare them as 'static'.
+
+ But only do this if is strictly necessary, ie, if you have problems
+ with your compiler or so.
+*/
+
+#ifndef SWIGRUNTIME
+# define SWIGRUNTIME SWIGINTERN
+#endif
+
+#ifndef SWIGRUNTIMEINLINE
+# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
+#endif
+
+/* Generic buffer size */
+#ifndef SWIG_BUFFER_SIZE
+# define SWIG_BUFFER_SIZE 1024
+#endif
+
+/* Flags for pointer conversions */
+#define SWIG_POINTER_DISOWN 0x1
+
+/* Flags for new pointer objects */
+#define SWIG_POINTER_OWN 0x1
+
+
+/*
+ Flags/methods for returning states.
+
+ The swig conversion methods, as ConvertPtr, return and integer
+ that tells if the conversion was successful or not. And if not,
+ an error code can be returned (see swigerrors.swg for the codes).
+
+ Use the following macros/flags to set or process the returning
+ states.
+
+ In old swig versions, you usually write code as:
+
+ if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
+ // success code
+ } else {
+ //fail code
+ }
+
+ Now you can be more explicit as:
+
+ int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
+ if (SWIG_IsOK(res)) {
+ // success code
+ } else {
+ // fail code
+ }
+
+ that seems to be the same, but now you can also do
+
+ Type *ptr;
+ int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
+ if (SWIG_IsOK(res)) {
+ // success code
+ if (SWIG_IsNewObj(res) {
+ ...
+ delete *ptr;
+ } else {
+ ...
+ }
+ } else {
+ // fail code
+ }
+
+ I.e., now SWIG_ConvertPtr can return new objects and you can
+ identify the case and take care of the deallocation. Of course that
+ requires also to SWIG_ConvertPtr to return new result values, as
+
+ int SWIG_ConvertPtr(obj, ptr,...) {
+ if (<obj is ok>) {
+ if (<need new object>) {
+ *ptr = <ptr to new allocated object>;
+ return SWIG_NEWOBJ;
+ } else {
+ *ptr = <ptr to old object>;
+ return SWIG_OLDOBJ;
+ }
+ } else {
+ return SWIG_BADOBJ;
+ }
+ }
+
+ Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
+ more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
+ swig errors code.
+
+ Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
+ allows to return the 'cast rank', for example, if you have this
+
+ int food(double)
+ int fooi(int);
+
+ and you call
+
+ food(1) // cast rank '1' (1 -> 1.0)
+ fooi(1) // cast rank '0'
+
+ just use the SWIG_AddCast()/SWIG_CheckState()
+
+
+ */
+#define SWIG_OK (0)
+#define SWIG_ERROR (-1)
+#define SWIG_IsOK(r) (r >= 0)
+#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError)
+
+/* The CastRankLimit says how many bits are used for the cast rank */
+#define SWIG_CASTRANKLIMIT (1 << 8)
+/* The NewMask denotes the object was created (using new/malloc) */
+#define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1)
+/* The TmpMask is for in/out typemaps that use temporal objects */
+#define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1)
+/* Simple returning values */
+#define SWIG_BADOBJ (SWIG_ERROR)
+#define SWIG_OLDOBJ (SWIG_OK)
+#define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK)
+#define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK)
+/* Check, add and del mask methods */
+#define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
+#define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
+#define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
+#define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
+#define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
+#define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
+
+
+/* Cast-Rank Mode */
+#if defined(SWIG_CASTRANK_MODE)
+# ifndef SWIG_TypeRank
+# define SWIG_TypeRank unsigned long
+# endif
+# ifndef SWIG_MAXCASTRANK /* Default cast allowed */
+# define SWIG_MAXCASTRANK (2)
+# endif
+# define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1)
+# define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK)
+SWIGINTERNINLINE int SWIG_AddCast(int r) {
+ return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
+}
+SWIGINTERNINLINE int SWIG_CheckState(int r) {
+ return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
+}
+#else /* no cast-rank mode */
+# define SWIG_AddCast
+# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
+#endif
+
+
+
+
+#include <string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void *(*swig_converter_func)(void *);
+typedef struct swig_type_info *(*swig_dycast_func)(void **);
+
+/* Structure to store inforomation on one type */
+typedef struct swig_type_info {
+ const char *name; /* mangled name of this type */
+ const char *str; /* human readable name of this type */
+ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */
+ struct swig_cast_info *cast; /* linked list of types that can cast into this type */
+ void *clientdata; /* language specific type data */
+ int owndata; /* flag if the structure owns the clientdata */
+} swig_type_info;
+
+/* Structure to store a type and conversion function used for casting */
+typedef struct swig_cast_info {
+ swig_type_info *type; /* pointer to type that is equivalent to this type */
+ swig_converter_func converter; /* function to cast the void pointers */
+ struct swig_cast_info *next; /* pointer to next cast in linked list */
+ struct swig_cast_info *prev; /* pointer to the previous cast */
+} swig_cast_info;
+
+/* Structure used to store module information
+ * Each module generates one structure like this, and the runtime collects
+ * all of these structures and stores them in a circularly linked list.*/
+typedef struct swig_module_info {
+ swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */
+ size_t size; /* Number of types in this module */
+ struct swig_module_info *next; /* Pointer to next element in circularly linked list */
+ swig_type_info **type_initial; /* Array of initially generated type structures */
+ swig_cast_info **cast_initial; /* Array of initially generated casting structures */
+ void *clientdata; /* Language specific module data */
+} swig_module_info;
+
+/*
+ Compare two type names skipping the space characters, therefore
+ "char*" == "char *" and "Class<int>" == "Class<int >", etc.
+
+ Return 0 when the two name types are equivalent, as in
+ strncmp, but skipping ' '.
+*/
+SWIGRUNTIME int
+SWIG_TypeNameComp(const char *f1, const char *l1,
+ const char *f2, const char *l2) {
+ for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
+ while ((*f1 == ' ') && (f1 != l1)) ++f1;
+ while ((*f2 == ' ') && (f2 != l2)) ++f2;
+ if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
+ }
+ return (l1 - f1) - (l2 - f2);
+}
+
+/*
+ Check type equivalence in a name list like <name1>|<name2>|...
+ Return 0 if not equal, 1 if equal
+*/
+SWIGRUNTIME int
+SWIG_TypeEquiv(const char *nb, const char *tb) {
+ int equiv = 0;
+ const char* te = tb + strlen(tb);
+ const char* ne = nb;
+ while (!equiv && *ne) {
+ for (nb = ne; *ne; ++ne) {
+ if (*ne == '|') break;
+ }
+ equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+ if (*ne) ++ne;
+ }
+ return equiv;
+}
+
+/*
+ Check type equivalence in a name list like <name1>|<name2>|...
+ Return 0 if equal, -1 if nb < tb, 1 if nb > tb
+*/
+SWIGRUNTIME int
+SWIG_TypeCompare(const char *nb, const char *tb) {
+ int equiv = 0;
+ const char* te = tb + strlen(tb);
+ const char* ne = nb;
+ while (!equiv && *ne) {
+ for (nb = ne; *ne; ++ne) {
+ if (*ne == '|') break;
+ }
+ equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+ if (*ne) ++ne;
+ }
+ return equiv;
+}
+
+
+/* think of this as a c++ template<> or a scheme macro */
+#define SWIG_TypeCheck_Template(comparison, ty) \
+ if (ty) { \
+ swig_cast_info *iter = ty->cast; \
+ while (iter) { \
+ if (comparison) { \
+ if (iter == ty->cast) return iter; \
+ /* Move iter to the top of the linked list */ \
+ iter->prev->next = iter->next; \
+ if (iter->next) \
+ iter->next->prev = iter->prev; \
+ iter->next = ty->cast; \
+ iter->prev = 0; \
+ if (ty->cast) ty->cast->prev = iter; \
+ ty->cast = iter; \
+ return iter; \
+ } \
+ iter = iter->next; \
+ } \
+ } \
+ return 0
+
+/*
+ Check the typename
+*/
+SWIGRUNTIME swig_cast_info *
+SWIG_TypeCheck(const char *c, swig_type_info *ty) {
+ SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
+}
+
+/* Same as previous function, except strcmp is replaced with a pointer comparison */
+SWIGRUNTIME swig_cast_info *
+SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
+ SWIG_TypeCheck_Template(iter->type == from, into);
+}
+
+/*
+ Cast a pointer up an inheritance hierarchy
+*/
+SWIGRUNTIMEINLINE void *
+SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
+ return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
+}
+
+/*
+ Dynamic pointer casting. Down an inheritance hierarchy
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
+ swig_type_info *lastty = ty;
+ if (!ty || !ty->dcast) return ty;
+ while (ty && (ty->dcast)) {
+ ty = (*ty->dcast)(ptr);
+ if (ty) lastty = ty;
+ }
+ return lastty;
+}
+
+/*
+ Return the name associated with this type
+*/
+SWIGRUNTIMEINLINE const char *
+SWIG_TypeName(const swig_type_info *ty) {
+ return ty->name;
+}
+
+/*
+ Return the pretty name associated with this type,
+ that is an unmangled type name in a form presentable to the user.
+*/
+SWIGRUNTIME const char *
+SWIG_TypePrettyName(const swig_type_info *type) {
+ /* The "str" field contains the equivalent pretty names of the
+ type, separated by vertical-bar characters. We choose
+ to print the last name, as it is often (?) the most
+ specific. */
+ if (!type) return NULL;
+ if (type->str != NULL) {
+ const char *last_name = type->str;
+ const char *s;
+ for (s = type->str; *s; s++)
+ if (*s == '|') last_name = s+1;
+ return last_name;
+ }
+ else
+ return type->name;
+}
+
+/*
+ Set the clientdata field for a type
+*/
+SWIGRUNTIME void
+SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
+ swig_cast_info *cast = ti->cast;
+ /* if (ti->clientdata == clientdata) return; */
+ ti->clientdata = clientdata;
+
+ while (cast) {
+ if (!cast->converter) {
+ swig_type_info *tc = cast->type;
+ if (!tc->clientdata) {
+ SWIG_TypeClientData(tc, clientdata);
+ }
+ }
+ cast = cast->next;
+ }
+}
+SWIGRUNTIME void
+SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
+ SWIG_TypeClientData(ti, clientdata);
+ ti->owndata = 1;
+}
+
+/*
+ Search for a swig_type_info structure only by mangled name
+ Search is a O(log #types)
+
+ We start searching at module start, and finish searching when start == end.
+ Note: if start == end at the beginning of the function, we go all the way around
+ the circular list.
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_MangledTypeQueryModule(swig_module_info *start,
+ swig_module_info *end,
+ const char *name) {
+ swig_module_info *iter = start;
+ do {
+ if (iter->size) {
+ register size_t l = 0;
+ register size_t r = iter->size - 1;
+ do {
+ /* since l+r >= 0, we can (>> 1) instead (/ 2) */
+ register size_t i = (l + r) >> 1;
+ const char *iname = iter->types[i]->name;
+ if (iname) {
+ register int compare = strcmp(name, iname);
+ if (compare == 0) {
+ return iter->types[i];
+ } else if (compare < 0) {
+ if (i) {
+ r = i - 1;
+ } else {
+ break;
+ }
+ } else if (compare > 0) {
+ l = i + 1;
+ }
+ } else {
+ break; /* should never happen */
+ }
+ } while (l <= r);
+ }
+ iter = iter->next;
+ } while (iter != end);
+ return 0;
+}
+
+/*
+ Search for a swig_type_info structure for either a mangled name or a human readable name.
+ It first searches the mangled names of the types, which is a O(log #types)
+ If a type is not found it then searches the human readable names, which is O(#types).
+
+ We start searching at module start, and finish searching when start == end.
+ Note: if start == end at the beginning of the function, we go all the way around
+ the circular list.
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_TypeQueryModule(swig_module_info *start,
+ swig_module_info *end,
+ const char *name) {
+ /* STEP 1: Search the name field using binary search */
+ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
+ if (ret) {
+ return ret;
+ } else {
+ /* STEP 2: If the type hasn't been found, do a complete search
+ of the str field (the human readable name) */
+ swig_module_info *iter = start;
+ do {
+ register size_t i = 0;
+ for (; i < iter->size; ++i) {
+ if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
+ return iter->types[i];
+ }
+ iter = iter->next;
+ } while (iter != end);
+ }
+
+ /* neither found a match */
+ return 0;
+}
+
+/*
+ Pack binary data into a string
+*/
+SWIGRUNTIME char *
+SWIG_PackData(char *c, void *ptr, size_t sz) {
+ static const char hex[17] = "0123456789abcdef";
+ register const unsigned char *u = (unsigned char *) ptr;
+ register const unsigned char *eu = u + sz;
+ for (; u != eu; ++u) {
+ register unsigned char uu = *u;
+ *(c++) = hex[(uu & 0xf0) >> 4];
+ *(c++) = hex[uu & 0xf];
+ }
+ return c;
+}
+
+/*
+ Unpack binary data from a string
+*/
+SWIGRUNTIME const char *
+SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
+ register unsigned char *u = (unsigned char *) ptr;
+ register const unsigned char *eu = u + sz;
+ for (; u != eu; ++u) {
+ register char d = *(c++);
+ register unsigned char uu;
+ if ((d >= '0') && (d <= '9'))
+ uu = ((d - '0') << 4);
+ else if ((d >= 'a') && (d <= 'f'))
+ uu = ((d - ('a'-10)) << 4);
+ else
+ return (char *) 0;
+ d = *(c++);
+ if ((d >= '0') && (d <= '9'))
+ uu |= (d - '0');
+ else if ((d >= 'a') && (d <= 'f'))
+ uu |= (d - ('a'-10));
+ else
+ return (char *) 0;
+ *u = uu;
+ }
+ return c;
+}
+
+/*
+ Pack 'void *' into a string buffer.
+*/
+SWIGRUNTIME char *
+SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
+ char *r = buff;
+ if ((2*sizeof(void *) + 2) > bsz) return 0;
+ *(r++) = '_';
+ r = SWIG_PackData(r,&ptr,sizeof(void *));
+ if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
+ strcpy(r,name);
+ return buff;
+}
+
+SWIGRUNTIME const char *
+SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
+ if (*c != '_') {
+ if (strcmp(c,"NULL") == 0) {
+ *ptr = (void *) 0;
+ return name;
+ } else {
+ return 0;
+ }
+ }
+ return SWIG_UnpackData(++c,ptr,sizeof(void *));
+}
+
+SWIGRUNTIME char *
+SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
+ char *r = buff;
+ size_t lname = (name ? strlen(name) : 0);
+ if ((2*sz + 2 + lname) > bsz) return 0;
+ *(r++) = '_';
+ r = SWIG_PackData(r,ptr,sz);
+ if (lname) {
+ strncpy(r,name,lname+1);
+ } else {
+ *r = 0;
+ }
+ return buff;
+}
+
+SWIGRUNTIME const char *
+SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
+ if (*c != '_') {
+ if (strcmp(c,"NULL") == 0) {
+ memset(ptr,0,sz);
+ return name;
+ } else {
+ return 0;
+ }
+ }
+ return SWIG_UnpackData(++c,ptr,sz);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Errors in SWIG */
+#define SWIG_UnknownError -1
+#define SWIG_IOError -2
+#define SWIG_RuntimeError -3
+#define SWIG_IndexError -4
+#define SWIG_TypeError -5
+#define SWIG_DivisionByZero -6
+#define SWIG_OverflowError -7
+#define SWIG_SyntaxError -8
+#define SWIG_ValueError -9
+#define SWIG_SystemError -10
+#define SWIG_AttributeError -11
+#define SWIG_MemoryError -12
+#define SWIG_NullReferenceError -13
+
+
+
+
+/* Add PyOS_snprintf for old Pythons */
+#if PY_VERSION_HEX < 0x02020000
+# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM)
+# define PyOS_snprintf _snprintf
+# else
+# define PyOS_snprintf snprintf
+# endif
+#endif
+
+/* A crude PyString_FromFormat implementation for old Pythons */
+#if PY_VERSION_HEX < 0x02020000
+
+#ifndef SWIG_PYBUFFER_SIZE
+# define SWIG_PYBUFFER_SIZE 1024
+#endif
+
+static PyObject *
+PyString_FromFormat(const char *fmt, ...) {
+ va_list ap;
+ char buf[SWIG_PYBUFFER_SIZE * 2];
+ int res;
+ va_start(ap, fmt);
+ res = vsnprintf(buf, sizeof(buf), fmt, ap);
+ va_end(ap);
+ return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf);
+}
+#endif
+
+/* Add PyObject_Del for old Pythons */
+#if PY_VERSION_HEX < 0x01060000
+# define PyObject_Del(op) PyMem_DEL((op))
+#endif
+#ifndef PyObject_DEL
+# define PyObject_DEL PyObject_Del
+#endif
+
+/* A crude PyExc_StopIteration exception for old Pythons */
+#if PY_VERSION_HEX < 0x02020000
+# ifndef PyExc_StopIteration
+# define PyExc_StopIteration PyExc_RuntimeError
+# endif
+# ifndef PyObject_GenericGetAttr
+# define PyObject_GenericGetAttr 0
+# endif
+#endif
+/* Py_NotImplemented is defined in 2.1 and up. */
+#if PY_VERSION_HEX < 0x02010000
+# ifndef Py_NotImplemented
+# define Py_NotImplemented PyExc_RuntimeError
+# endif
+#endif
+
+
+/* A crude PyString_AsStringAndSize implementation for old Pythons */
+#if PY_VERSION_HEX < 0x02010000
+# ifndef PyString_AsStringAndSize
+# define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;}
+# endif
+#endif
+
+/* PySequence_Size for old Pythons */
+#if PY_VERSION_HEX < 0x02000000
+# ifndef PySequence_Size
+# define PySequence_Size PySequence_Length
+# endif
+#endif
+
+
+/* PyBool_FromLong for old Pythons */
+#if PY_VERSION_HEX < 0x02030000
+static
+PyObject *PyBool_FromLong(long ok)
+{
+ PyObject *result = ok ? Py_True : Py_False;
+ Py_INCREF(result);
+ return result;
+}
+#endif
+
+/* Py_ssize_t for old Pythons */
+/* This code is as recommended by: */
+/* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+# define PY_SSIZE_T_MAX INT_MAX
+# define PY_SSIZE_T_MIN INT_MIN
+#endif
+
+/* -----------------------------------------------------------------------------
+ * error manipulation
+ * ----------------------------------------------------------------------------- */
+
+SWIGRUNTIME PyObject*
+SWIG_Python_ErrorType(int code) {
+ PyObject* type = 0;
+ switch(code) {
+ case SWIG_MemoryError:
+ type = PyExc_MemoryError;
+ break;
+ case SWIG_IOError:
+ type = PyExc_IOError;
+ break;
+ case SWIG_RuntimeError:
+ type = PyExc_RuntimeError;
+ break;
+ case SWIG_IndexError:
+ type = PyExc_IndexError;
+ break;
+ case SWIG_TypeError:
+ type = PyExc_TypeError;
+ break;
+ case SWIG_DivisionByZero:
+ type = PyExc_ZeroDivisionError;
+ break;
+ case SWIG_OverflowError:
+ type = PyExc_OverflowError;
+ break;
+ case SWIG_SyntaxError:
+ type = PyExc_SyntaxError;
+ break;
+ case SWIG_ValueError:
+ type = PyExc_ValueError;
+ break;
+ case SWIG_SystemError:
+ type = PyExc_SystemError;
+ break;
+ case SWIG_AttributeError:
+ type = PyExc_AttributeError;
+ break;
+ default:
+ type = PyExc_RuntimeError;
+ }
+ return type;
+}
+
+
+SWIGRUNTIME void
+SWIG_Python_AddErrorMsg(const char* mesg)
+{
+ PyObject *type = 0;
+ PyObject *value = 0;
+ PyObject *traceback = 0;
+
+ if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback);
+ if (value) {
+ PyObject *old_str = PyObject_Str(value);
+ PyErr_Clear();
+ Py_XINCREF(type);
+ PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
+ Py_DECREF(old_str);
+ Py_DECREF(value);
+ } else {
+ PyErr_Format(PyExc_RuntimeError, mesg);
+ }
+}
+
+
+
+#if defined(SWIG_PYTHON_NO_THREADS)
+# if defined(SWIG_PYTHON_THREADS)
+# undef SWIG_PYTHON_THREADS
+# endif
+#endif
+#if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
+# if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
+# if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */
+# define SWIG_PYTHON_USE_GIL
+# endif
+# endif
+# if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
+# ifndef SWIG_PYTHON_INITIALIZE_THREADS
+# define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads()
+# endif
+# ifdef __cplusplus /* C++ code */
+ class SWIG_Python_Thread_Block {
+ bool status;
+ PyGILState_STATE state;
+ public:
+ void end() { if (status) { PyGILState_Release(state); status = false;} }
+ SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
+ ~SWIG_Python_Thread_Block() { end(); }
+ };
+ class SWIG_Python_Thread_Allow {
+ bool status;
+ PyThreadState *save;
+ public:
+ void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
+ SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
+ ~SWIG_Python_Thread_Allow() { end(); }
+ };
+# define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block
+# define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end()
+# define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow
+# define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end()
+# else /* C code */
+# define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
+# define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block)
+# define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread()
+# define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow)
+# endif
+# else /* Old thread way, not implemented, user must provide it */
+# if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
+# define SWIG_PYTHON_INITIALIZE_THREADS
+# endif
+# if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
+# define SWIG_PYTHON_THREAD_BEGIN_BLOCK
+# endif
+# if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
+# define SWIG_PYTHON_THREAD_END_BLOCK
+# endif
+# if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
+# define SWIG_PYTHON_THREAD_BEGIN_ALLOW
+# endif
+# if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
+# define SWIG_PYTHON_THREAD_END_ALLOW
+# endif
+# endif
+#else /* No thread support */
+# define SWIG_PYTHON_INITIALIZE_THREADS
+# define SWIG_PYTHON_THREAD_BEGIN_BLOCK
+# define SWIG_PYTHON_THREAD_END_BLOCK
+# define SWIG_PYTHON_THREAD_BEGIN_ALLOW
+# define SWIG_PYTHON_THREAD_END_ALLOW
+#endif
+
+/* -----------------------------------------------------------------------------
+ * Python API portion that goes into the runtime
+ * ----------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* cc-mode */
+#endif
+#endif
+
+/* -----------------------------------------------------------------------------
+ * Constant declarations
+ * ----------------------------------------------------------------------------- */
+
+/* Constant Types */
+#define SWIG_PY_POINTER 4
+#define SWIG_PY_BINARY 5
+
+/* Constant information structure */
+typedef struct swig_const_info {
+ int type;
+ char *name;
+ long lvalue;
+ double dvalue;
+ void *pvalue;
+ swig_type_info **ptype;
+} swig_const_info;
+
+#ifdef __cplusplus
+#if 0
+{ /* cc-mode */
+#endif
+}
+#endif
+
+
+/* -----------------------------------------------------------------------------
+ * See the LICENSE file for information on copyright, usage and redistribution
+ * of SWIG, and the README file for authors - http://www.swig.org/release.html.
+ *
+ * pyrun.swg
+ *
+ * This file contains the runtime support for Python modules
+ * and includes code for managing global variables and pointer
+ * type checking.
+ *
+ * ----------------------------------------------------------------------------- */
+
+/* Common SWIG API */
+
+/* for raw pointers */
+#define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
+#define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags)
+#define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
+#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(ptr, type, flags)
+#define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty)
+#define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src)
+#define swig_owntype int
+
+/* for raw packed data */
+#define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
+#define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
+
+/* for class or struct pointers */
+#define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags)
+#define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags)
+
+/* for C or C++ function pointers */
+#define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
+#define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(ptr, type, 0)
+
+/* for C++ member pointers, ie, member methods */
+#define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
+#define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
+
+
+/* Runtime API */
+
+#define SWIG_GetModule(clientdata) SWIG_Python_GetModule()
+#define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer)
+#define SWIG_NewClientData(obj) PySwigClientData_New(obj)
+
+#define SWIG_SetErrorObj SWIG_Python_SetErrorObj
+#define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg
+#define SWIG_ErrorType(code) SWIG_Python_ErrorType(code)
+#define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg)
+#define SWIG_fail goto fail
+
+
+/* Runtime API implementation */
+
+/* Error manipulation */
+
+SWIGINTERN void
+SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyErr_SetObject(errtype, obj);
+ Py_DECREF(obj);
+ SWIG_PYTHON_THREAD_END_BLOCK;
+}
+
+SWIGINTERN void
+SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ PyErr_SetString(errtype, (char *) msg);
+ SWIG_PYTHON_THREAD_END_BLOCK;
+}
+
+#define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)
+
+/* Set a constant value */
+
+SWIGINTERN void
+SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {
+ PyDict_SetItemString(d, (char*) name, obj);
+ Py_DECREF(obj);
+}
+
+/* Append a value to the result obj */
+
+SWIGINTERN PyObject*
+SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
+#if !defined(SWIG_PYTHON_OUTPUT_TUPLE)
+ if (!result) {
+ result = obj;
+ } else if (result == Py_None) {
+ Py_DECREF(result);
+ result = obj;
+ } else {
+ if (!PyList_Check(result)) {
+ PyObject *o2 = result;
+ result = PyList_New(1);
+ PyList_SetItem(result, 0, o2);
+ }
+ PyList_Append(result,obj);
+ Py_DECREF(obj);
+ }
+ return result;
+#else
+ PyObject* o2;
+ PyObject* o3;
+ if (!result) {
+ result = obj;
+ } else if (result == Py_None) {
+ Py_DECREF(result);
+ result = obj;
+ } else {
+ if (!PyTuple_Check(result)) {
+ o2 = result;
+ result = PyTuple_New(1);
+ PyTuple_SET_ITEM(result, 0, o2);
+ }
+ o3 = PyTuple_New(1);
+ PyTuple_SET_ITEM(o3, 0, obj);
+ o2 = result;
+ result = PySequence_Concat(o2, o3);
+ Py_DECREF(o2);
+ Py_DECREF(o3);
+ }
+ return result;
+#endif
+}
+
+/* Unpack the argument tuple */
+
+SWIGINTERN int
+SWIG_Python_UnpackTuple(PyObject *args, const char *name, int min, int max, PyObject **objs)
+{
+ if (!args) {
+ if (!min && !max) {
+ return 1;
+ } else {
+ PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none",
+ name, (min == max ? "" : "at least "), min);
+ return 0;
+ }
+ }
+ if (!PyTuple_Check(args)) {
+ PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
+ return 0;
+ } else {
+ register int l = PyTuple_GET_SIZE(args);
+ if (l < min) {
+ PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
+ name, (min == max ? "" : "at least "), min, l);
+ return 0;
+ } else if (l > max) {
+ PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
+ name, (min == max ? "" : "at most "), max, l);
+ return 0;
+ } else {
+ register int i;
+ for (i = 0; i < l; ++i) {
+ objs[i] = PyTuple_GET_ITEM(args, i);
+ }
+ for (; l < max; ++l) {
+ objs[l] = 0;
+ }
+ return i + 1;
+ }
+ }
+}
+
+/* A functor is a function object with one single object argument */
+#if PY_VERSION_HEX >= 0x02020000
+#define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL);
+#else
+#define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj);
+#endif
+
+/*
+ Helper for static pointer initialization for both C and C++ code, for example
+ static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
+*/
+#ifdef __cplusplus
+#define SWIG_STATIC_POINTER(var) var
+#else
+#define SWIG_STATIC_POINTER(var) var = 0; if (!var) var
+#endif
+
+/* -----------------------------------------------------------------------------
+ * Pointer declarations
+ * ----------------------------------------------------------------------------- */
+
+/* Flags for new pointer objects */
+#define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1)
+#define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
+
+#define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1)
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* cc-mode */
+#endif
+#endif
+
+/* How to access Py_None */
+#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+# ifndef SWIG_PYTHON_NO_BUILD_NONE
+# ifndef SWIG_PYTHON_BUILD_NONE
+# define SWIG_PYTHON_BUILD_NONE
+# endif
+# endif
+#endif
+
+#ifdef SWIG_PYTHON_BUILD_NONE
+# ifdef Py_None
+# undef Py_None
+# define Py_None SWIG_Py_None()
+# endif
+SWIGRUNTIMEINLINE PyObject *
+_SWIG_Py_None(void)
+{
+ PyObject *none = Py_BuildValue((char*)"");
+ Py_DECREF(none);
+ return none;
+}
+SWIGRUNTIME PyObject *
+SWIG_Py_None(void)
+{
+ static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None();
+ return none;
+}
+#endif
+
+/* The python void return value */
+
+SWIGRUNTIMEINLINE PyObject *
+SWIG_Py_Void(void)
+{
+ PyObject *none = Py_None;
+ Py_INCREF(none);
+ return none;
+}
+
+/* PySwigClientData */
+
+typedef struct {
+ PyObject *klass;
+ PyObject *newraw;
+ PyObject *newargs;
+ PyObject *destroy;
+ int delargs;
+ int implicitconv;
+} PySwigClientData;
+
+SWIGRUNTIMEINLINE int
+SWIG_Python_CheckImplicit(swig_type_info *ty)
+{
+ PySwigClientData *data = (PySwigClientData *)ty->clientdata;
+ return data ? data->implicitconv : 0;
+}
+
+SWIGRUNTIMEINLINE PyObject *
+SWIG_Python_ExceptionType(swig_type_info *desc) {
+ PySwigClientData *data = desc ? (PySwigClientData *) desc->clientdata : 0;
+ PyObject *klass = data ? data->klass : 0;
+ return (klass ? klass : PyExc_RuntimeError);
+}
+
+
+SWIGRUNTIME PySwigClientData *
+PySwigClientData_New(PyObject* obj)
+{
+ if (!obj) {
+ return 0;
+ } else {
+ PySwigClientData *data = (PySwigClientData *)malloc(sizeof(PySwigClientData));
+ /* the klass element */
+ data->klass = obj;
+ Py_INCREF(data->klass);
+ /* the newraw method and newargs arguments used to create a new raw instance */
+ if (PyClass_Check(obj)) {
+ data->newraw = 0;
+ data->newargs = obj;
+ Py_INCREF(obj);
+ } else {
+#if (PY_VERSION_HEX < 0x02020000)
+ data->newraw = 0;
+#else
+ data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__");
+#endif
+ if (data->newraw) {
+ Py_INCREF(data->newraw);
+ data->newargs = PyTuple_New(1);
+ PyTuple_SetItem(data->newargs, 0, obj);
+ } else {
+ data->newargs = obj;
+ }
+ Py_INCREF(data->newargs);
+ }
+ /* the destroy method, aka as the C++ delete method */
+ data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__");
+ if (PyErr_Occurred()) {
+ PyErr_Clear();
+ data->destroy = 0;
+ }
+ if (data->destroy) {
+ int flags;
+ Py_INCREF(data->destroy);
+ flags = PyCFunction_GET_FLAGS(data->destroy);
+#ifdef METH_O
+ data->delargs = !(flags & (METH_O));
+#else
+ data->delargs = 0;
+#endif
+ } else {
+ data->delargs = 0;
+ }
+ data->implicitconv = 0;
+ return data;
+ }
+}
+
+SWIGRUNTIME void
+PySwigClientData_Del(PySwigClientData* data)
+{
+ Py_XDECREF(data->newraw);
+ Py_XDECREF(data->newargs);
+ Py_XDECREF(data->destroy);
+}
+
+/* =============== PySwigObject =====================*/
+
+typedef struct {
+ PyObject_HEAD
+ void *ptr;
+ swig_type_info *ty;
+ int own;
+ PyObject *next;
+} PySwigObject;
+
+SWIGRUNTIME PyObject *
+PySwigObject_long(PySwigObject *v)
+{
+ return PyLong_FromVoidPtr(v->ptr);
+}
+
+SWIGRUNTIME PyObject *
+PySwigObject_format(const char* fmt, PySwigObject *v)
+{
+ PyObject *res = NULL;
+ PyObject *args = PyTuple_New(1);
+ if (args) {
+ if (PyTuple_SetItem(args, 0, PySwigObject_long(v)) == 0) {
+ PyObject *ofmt = PyString_FromString(fmt);
+ if (ofmt) {
+ res = PyString_Format(ofmt,args);
+ Py_DECREF(ofmt);
+ }
+ Py_DECREF(args);
+ }
+ }
+ return res;
+}
+
+SWIGRUNTIME PyObject *
+PySwigObject_oct(PySwigObject *v)
+{
+ return PySwigObject_format("%o",v);
+}
+
+SWIGRUNTIME PyObject *
+PySwigObject_hex(PySwigObject *v)
+{
+ return PySwigObject_format("%x",v);
+}
+
+SWIGRUNTIME PyObject *
+#ifdef METH_NOARGS
+PySwigObject_repr(PySwigObject *v)
+#else
+PySwigObject_repr(PySwigObject *v, PyObject *args)
+#endif
+{
+ const char *name = SWIG_TypePrettyName(v->ty);
+ PyObject *hex = PySwigObject_hex(v);
+ PyObject *repr = PyString_FromFormat("<Swig Object of type '%s' at 0x%s>", name, PyString_AsString(hex));
+ Py_DECREF(hex);
+ if (v->next) {
+#ifdef METH_NOARGS
+ PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next);
+#else
+ PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next, args);
+#endif
+ PyString_ConcatAndDel(&repr,nrep);
+ }
+ return repr;
+}
+
+SWIGRUNTIME int
+PySwigObject_print(PySwigObject *v, FILE *fp, int SWIGUNUSEDPARM(flags))
+{
+#ifdef METH_NOARGS
+ PyObject *repr = PySwigObject_repr(v);
+#else
+ PyObject *repr = PySwigObject_repr(v, NULL);
+#endif
+ if (repr) {
+ fputs(PyString_AsString(repr), fp);
+ Py_DECREF(repr);
+ return 0;
+ } else {
+ return 1;
+ }
+}
+
+SWIGRUNTIME PyObject *
+PySwigObject_str(PySwigObject *v)
+{
+ char result[SWIG_BUFFER_SIZE];
+ return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ?
+ PyString_FromString(result) : 0;
+}
+
+SWIGRUNTIME int
+PySwigObject_compare(PySwigObject *v, PySwigObject *w)
+{
+ void *i = v->ptr;
+ void *j = w->ptr;
+ return (i < j) ? -1 : ((i > j) ? 1 : 0);
+}
+
+SWIGRUNTIME PyTypeObject* _PySwigObject_type(void);
+
+SWIGRUNTIME PyTypeObject*
+PySwigObject_type(void) {
+ static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type();
+ return type;
+}
+
+SWIGRUNTIMEINLINE int
+PySwigObject_Check(PyObject *op) {
+ return ((op)->ob_type == PySwigObject_type())
+ || (strcmp((op)->ob_type->tp_name,"PySwigObject") == 0);
+}
+
+SWIGRUNTIME PyObject *
+PySwigObject_New(void *ptr, swig_type_info *ty, int own);
+
+SWIGRUNTIME void
+PySwigObject_dealloc(PyObject *v)
+{
+ PySwigObject *sobj = (PySwigObject *) v;
+ PyObject *next = sobj->next;
+ if (sobj->own) {
+ swig_type_info *ty = sobj->ty;
+ PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
+ PyObject *destroy = data ? data->destroy : 0;
+ if (destroy) {
+ /* destroy is always a VARARGS method */
+ PyObject *res;
+ if (data->delargs) {
+ /* we need to create a temporal object to carry the destroy operation */
+ PyObject *tmp = PySwigObject_New(sobj->ptr, ty, 0);
+ res = SWIG_Python_CallFunctor(destroy, tmp);
+ Py_DECREF(tmp);
+ } else {
+ PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
+ PyObject *mself = PyCFunction_GET_SELF(destroy);
+ res = ((*meth)(mself, v));
+ }
+ Py_XDECREF(res);
+ } else {
+ const char *name = SWIG_TypePrettyName(ty);
+#if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
+ printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name);
+#endif
+ }
+ }
+ Py_XDECREF(next);
+ PyObject_DEL(v);
+}
+
+SWIGRUNTIME PyObject*
+PySwigObject_append(PyObject* v, PyObject* next)
+{
+ PySwigObject *sobj = (PySwigObject *) v;
+#ifndef METH_O
+ PyObject *tmp = 0;
+ if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL;
+ next = tmp;
+#endif
+ if (!PySwigObject_Check(next)) {
+ return NULL;
+ }
+ sobj->next = next;
+ Py_INCREF(next);
+ return SWIG_Py_Void();
+}
+
+SWIGRUNTIME PyObject*
+#ifdef METH_NOARGS
+PySwigObject_next(PyObject* v)
+#else
+PySwigObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+#endif
+{
+ PySwigObject *sobj = (PySwigObject *) v;
+ if (sobj->next) {
+ Py_INCREF(sobj->next);
+ return sobj->next;
+ } else {
+ return SWIG_Py_Void();
+ }
+}
+
+SWIGINTERN PyObject*
+#ifdef METH_NOARGS
+PySwigObject_disown(PyObject *v)
+#else
+PySwigObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+#endif
+{
+ PySwigObject *sobj = (PySwigObject *)v;
+ sobj->own = 0;
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject*
+#ifdef METH_NOARGS
+PySwigObject_acquire(PyObject *v)
+#else
+PySwigObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+#endif
+{
+ PySwigObject *sobj = (PySwigObject *)v;
+ sobj->own = SWIG_POINTER_OWN;
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject*
+PySwigObject_own(PyObject *v, PyObject *args)
+{
+ PyObject *val = 0;
+#if (PY_VERSION_HEX < 0x02020000)
+ if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
+#else
+ if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val))
+#endif
+ {
+ return NULL;
+ }
+ else
+ {
+ PySwigObject *sobj = (PySwigObject *)v;
+ PyObject *obj = PyBool_FromLong(sobj->own);
+ if (val) {
+#ifdef METH_NOARGS
+ if (PyObject_IsTrue(val)) {
+ PySwigObject_acquire(v);
+ } else {
+ PySwigObject_disown(v);
+ }
+#else
+ if (PyObject_IsTrue(val)) {
+ PySwigObject_acquire(v,args);
+ } else {
+ PySwigObject_disown(v,args);
+ }
+#endif
+ }
+ return obj;
+ }
+}
+
+#ifdef METH_O
+static PyMethodDef
+swigobject_methods[] = {
+ {(char *)"disown", (PyCFunction)PySwigObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"},
+ {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"},
+ {(char *)"own", (PyCFunction)PySwigObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
+ {(char *)"append", (PyCFunction)PySwigObject_append, METH_O, (char *)"appends another 'this' object"},
+ {(char *)"next", (PyCFunction)PySwigObject_next, METH_NOARGS, (char *)"returns the next 'this' object"},
+ {(char *)"__repr__",(PyCFunction)PySwigObject_repr, METH_NOARGS, (char *)"returns object representation"},
+ {0, 0, 0, 0}
+};
+#else
+static PyMethodDef
+swigobject_methods[] = {
+ {(char *)"disown", (PyCFunction)PySwigObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"},
+ {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_VARARGS, (char *)"aquires ownership of the pointer"},
+ {(char *)"own", (PyCFunction)PySwigObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
+ {(char *)"append", (PyCFunction)PySwigObject_append, METH_VARARGS, (char *)"appends another 'this' object"},
+ {(char *)"next", (PyCFunction)PySwigObject_next, METH_VARARGS, (char *)"returns the next 'this' object"},
+ {(char *)"__repr__",(PyCFunction)PySwigObject_repr, METH_VARARGS, (char *)"returns object representation"},
+ {0, 0, 0, 0}
+};
+#endif
+
+#if PY_VERSION_HEX < 0x02020000
+SWIGINTERN PyObject *
+PySwigObject_getattr(PySwigObject *sobj,char *name)
+{
+ return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name);
+}
+#endif
+
+SWIGRUNTIME PyTypeObject*
+_PySwigObject_type(void) {
+ static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
+
+ static PyNumberMethods PySwigObject_as_number = {
+ (binaryfunc)0, /*nb_add*/
+ (binaryfunc)0, /*nb_subtract*/
+ (binaryfunc)0, /*nb_multiply*/
+ (binaryfunc)0, /*nb_divide*/
+ (binaryfunc)0, /*nb_remainder*/
+ (binaryfunc)0, /*nb_divmod*/
+ (ternaryfunc)0,/*nb_power*/
+ (unaryfunc)0, /*nb_negative*/
+ (unaryfunc)0, /*nb_positive*/
+ (unaryfunc)0, /*nb_absolute*/
+ (inquiry)0, /*nb_nonzero*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ (coercion)0, /*nb_coerce*/
+ (unaryfunc)PySwigObject_long, /*nb_int*/
+ (unaryfunc)PySwigObject_long, /*nb_long*/
+ (unaryfunc)0, /*nb_float*/
+ (unaryfunc)PySwigObject_oct, /*nb_oct*/
+ (unaryfunc)PySwigObject_hex, /*nb_hex*/
+#if PY_VERSION_HEX >= 0x02020000
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
+#elif PY_VERSION_HEX >= 0x02000000
+ 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
+#endif
+ };
+
+ static PyTypeObject pyswigobject_type;
+ static int type_init = 0;
+ if (!type_init) {
+ const PyTypeObject tmp
+ = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /* ob_size */
+ (char *)"PySwigObject", /* tp_name */
+ sizeof(PySwigObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ (destructor)PySwigObject_dealloc, /* tp_dealloc */
+ (printfunc)PySwigObject_print, /* tp_print */
+#if PY_VERSION_HEX < 0x02020000
+ (getattrfunc)PySwigObject_getattr, /* tp_getattr */
+#else
+ (getattrfunc)0, /* tp_getattr */
+#endif
+ (setattrfunc)0, /* tp_setattr */
+ (cmpfunc)PySwigObject_compare, /* tp_compare */
+ (reprfunc)PySwigObject_repr, /* tp_repr */
+ &PySwigObject_as_number, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ (hashfunc)0, /* tp_hash */
+ (ternaryfunc)0, /* tp_call */
+ (reprfunc)PySwigObject_str, /* tp_str */
+ PyObject_GenericGetAttr, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ swigobject_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+#if PY_VERSION_HEX >= 0x02020000
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ swigobject_methods, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ 0, /* tp_new */
+ 0, /* tp_free */
+ 0, /* tp_is_gc */
+ 0, /* tp_bases */
+ 0, /* tp_mro */
+ 0, /* tp_cache */
+ 0, /* tp_subclasses */
+ 0, /* tp_weaklist */
+#endif
+#if PY_VERSION_HEX >= 0x02030000
+ 0, /* tp_del */
+#endif
+#ifdef COUNT_ALLOCS
+ 0,0,0,0 /* tp_alloc -> tp_next */
+#endif
+ };
+ pyswigobject_type = tmp;
+ pyswigobject_type.ob_type = &PyType_Type;
+ type_init = 1;
+ }
+ return &pyswigobject_type;
+}
+
+SWIGRUNTIME PyObject *
+PySwigObject_New(void *ptr, swig_type_info *ty, int own)
+{
+ PySwigObject *sobj = PyObject_NEW(PySwigObject, PySwigObject_type());
+ if (sobj) {
+ sobj->ptr = ptr;
+ sobj->ty = ty;
+ sobj->own = own;
+ sobj->next = 0;
+ }
+ return (PyObject *)sobj;
+}
+
+/* -----------------------------------------------------------------------------
+ * Implements a simple Swig Packed type, and use it instead of string
+ * ----------------------------------------------------------------------------- */
+
+typedef struct {
+ PyObject_HEAD
+ void *pack;
+ swig_type_info *ty;
+ size_t size;
+} PySwigPacked;
+
+SWIGRUNTIME int
+PySwigPacked_print(PySwigPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
+{
+ char result[SWIG_BUFFER_SIZE];
+ fputs("<Swig Packed ", fp);
+ if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
+ fputs("at ", fp);
+ fputs(result, fp);
+ }
+ fputs(v->ty->name,fp);
+ fputs(">", fp);
+ return 0;
+}
+
+SWIGRUNTIME PyObject *
+PySwigPacked_repr(PySwigPacked *v)
+{
+ char result[SWIG_BUFFER_SIZE];
+ if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
+ return PyString_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
+ } else {
+ return PyString_FromFormat("<Swig Packed %s>", v->ty->name);
+ }
+}
+
+SWIGRUNTIME PyObject *
+PySwigPacked_str(PySwigPacked *v)
+{
+ char result[SWIG_BUFFER_SIZE];
+ if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
+ return PyString_FromFormat("%s%s", result, v->ty->name);
+ } else {
+ return PyString_FromString(v->ty->name);
+ }
+}
+
+SWIGRUNTIME int
+PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w)
+{
+ size_t i = v->size;
+ size_t j = w->size;
+ int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
+ return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
+}
+
+SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void);
+
+SWIGRUNTIME PyTypeObject*
+PySwigPacked_type(void) {
+ static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type();
+ return type;
+}
+
+SWIGRUNTIMEINLINE int
+PySwigPacked_Check(PyObject *op) {
+ return ((op)->ob_type == _PySwigPacked_type())
+ || (strcmp((op)->ob_type->tp_name,"PySwigPacked") == 0);
+}
+
+SWIGRUNTIME void
+PySwigPacked_dealloc(PyObject *v)
+{
+ if (PySwigPacked_Check(v)) {
+ PySwigPacked *sobj = (PySwigPacked *) v;
+ free(sobj->pack);
+ }
+ PyObject_DEL(v);
+}
+
+SWIGRUNTIME PyTypeObject*
+_PySwigPacked_type(void) {
+ static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
+ static PyTypeObject pyswigpacked_type;
+ static int type_init = 0;
+ if (!type_init) {
+ const PyTypeObject tmp
+ = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /* ob_size */
+ (char *)"PySwigPacked", /* tp_name */
+ sizeof(PySwigPacked), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ (destructor)PySwigPacked_dealloc, /* tp_dealloc */
+ (printfunc)PySwigPacked_print, /* tp_print */
+ (getattrfunc)0, /* tp_getattr */
+ (setattrfunc)0, /* tp_setattr */
+ (cmpfunc)PySwigPacked_compare, /* tp_compare */
+ (reprfunc)PySwigPacked_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ (hashfunc)0, /* tp_hash */
+ (ternaryfunc)0, /* tp_call */
+ (reprfunc)PySwigPacked_str, /* tp_str */
+ PyObject_GenericGetAttr, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ swigpacked_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+#if PY_VERSION_HEX >= 0x02020000
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ 0, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tp_getset */
+ 0, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ 0, /* tp_new */
+ 0, /* tp_free */
+ 0, /* tp_is_gc */
+ 0, /* tp_bases */
+ 0, /* tp_mro */
+ 0, /* tp_cache */
+ 0, /* tp_subclasses */
+ 0, /* tp_weaklist */
+#endif
+#if PY_VERSION_HEX >= 0x02030000
+ 0, /* tp_del */
+#endif
+#ifdef COUNT_ALLOCS
+ 0,0,0,0 /* tp_alloc -> tp_next */
+#endif
+ };
+ pyswigpacked_type = tmp;
+ pyswigpacked_type.ob_type = &PyType_Type;
+ type_init = 1;
+ }
+ return &pyswigpacked_type;
+}
+
+SWIGRUNTIME PyObject *
+PySwigPacked_New(void *ptr, size_t size, swig_type_info *ty)
+{
+ PySwigPacked *sobj = PyObject_NEW(PySwigPacked, PySwigPacked_type());
+ if (sobj) {
+ void *pack = malloc(size);
+ if (pack) {
+ memcpy(pack, ptr, size);
+ sobj->pack = pack;
+ sobj->ty = ty;
+ sobj->size = size;
+ } else {
+ PyObject_DEL((PyObject *) sobj);
+ sobj = 0;
+ }
+ }
+ return (PyObject *) sobj;
+}
+
+SWIGRUNTIME swig_type_info *
+PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
+{
+ if (PySwigPacked_Check(obj)) {
+ PySwigPacked *sobj = (PySwigPacked *)obj;
+ if (sobj->size != size) return 0;
+ memcpy(ptr, sobj->pack, size);
+ return sobj->ty;
+ } else {
+ return 0;
+ }
+}
+
+/* -----------------------------------------------------------------------------
+ * pointers/data manipulation
+ * ----------------------------------------------------------------------------- */
+
+SWIGRUNTIMEINLINE PyObject *
+_SWIG_This(void)
+{
+ return PyString_FromString("this");
+}
+
+SWIGRUNTIME PyObject *
+SWIG_This(void)
+{
+ static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This();
+ return swig_this;
+}
+
+/* #define SWIG_PYTHON_SLOW_GETSET_THIS */
+
+SWIGRUNTIME PySwigObject *
+SWIG_Python_GetSwigThis(PyObject *pyobj)
+{
+ if (PySwigObject_Check(pyobj)) {
+ return (PySwigObject *) pyobj;
+ } else {
+ PyObject *obj = 0;
+#if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
+ if (PyInstance_Check(pyobj)) {
+ obj = _PyInstance_Lookup(pyobj, SWIG_This());
+ } else {
+ PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
+ if (dictptr != NULL) {
+ PyObject *dict = *dictptr;
+ obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
+ } else {
+#ifdef PyWeakref_CheckProxy
+ if (PyWeakref_CheckProxy(pyobj)) {
+ PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
+ return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
+ }
+#endif
+ obj = PyObject_GetAttr(pyobj,SWIG_This());
+ if (obj) {
+ Py_DECREF(obj);
+ } else {
+ if (PyErr_Occurred()) PyErr_Clear();
+ return 0;
+ }
+ }
+ }
+#else
+ obj = PyObject_GetAttr(pyobj,SWIG_This());
+ if (obj) {
+ Py_DECREF(obj);
+ } else {
+ if (PyErr_Occurred()) PyErr_Clear();
+ return 0;
+ }
+#endif
+ if (obj && !PySwigObject_Check(obj)) {
+ /* a PyObject is called 'this', try to get the 'real this'
+ PySwigObject from it */
+ return SWIG_Python_GetSwigThis(obj);
+ }
+ return (PySwigObject *)obj;
+ }
+}
+
+/* Acquire a pointer value */
+
+SWIGRUNTIME int
+SWIG_Python_AcquirePtr(PyObject *obj, int own) {
+ if (own) {
+ PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
+ if (sobj) {
+ int oldown = sobj->own;
+ sobj->own = own;
+ return oldown;
+ }
+ }
+ return 0;
+}
+
+/* Convert a pointer value */
+
+SWIGRUNTIME int
+SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
+ if (!obj) return SWIG_ERROR;
+ if (obj == Py_None) {
+ if (ptr) *ptr = 0;
+ return SWIG_OK;
+ } else {
+ PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
+ while (sobj) {
+ void *vptr = sobj->ptr;
+ if (ty) {
+ swig_type_info *to = sobj->ty;
+ if (to == ty) {
+ /* no type cast needed */
+ if (ptr) *ptr = vptr;
+ break;
+ } else {
+ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
+ if (!tc) {
+ sobj = (PySwigObject *)sobj->next;
+ } else {
+ if (ptr) *ptr = SWIG_TypeCast(tc,vptr);
+ break;
+ }
+ }
+ } else {
+ if (ptr) *ptr = vptr;
+ break;
+ }
+ }
+ if (sobj) {
+ if (own) *own = sobj->own;
+ if (flags & SWIG_POINTER_DISOWN) {
+ sobj->own = 0;
+ }
+ return SWIG_OK;
+ } else {
+ int res = SWIG_ERROR;
+ if (flags & SWIG_POINTER_IMPLICIT_CONV) {
+ PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
+ if (data && !data->implicitconv) {
+ PyObject *klass = data->klass;
+ if (klass) {
+ PyObject *impconv;
+ data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
+ impconv = SWIG_Python_CallFunctor(klass, obj);
+ data->implicitconv = 0;
+ if (PyErr_Occurred()) {
+ PyErr_Clear();
+ impconv = 0;
+ }
+ if (impconv) {
+ PySwigObject *iobj = SWIG_Python_GetSwigThis(impconv);
+ if (iobj) {
+ void *vptr;
+ res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
+ if (SWIG_IsOK(res)) {
+ if (ptr) {
+ *ptr = vptr;
+ /* transfer the ownership to 'ptr' */
+ iobj->own = 0;
+ res = SWIG_AddCast(res);
+ res = SWIG_AddNewMask(res);
+ } else {
+ res = SWIG_AddCast(res);
+ }
+ }
+ }
+ Py_DECREF(impconv);
+ }
+ }
+ }
+ }
+ return res;
+ }
+ }
+}
+
+/* Convert a function ptr value */
+
+SWIGRUNTIME int
+SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
+ if (!PyCFunction_Check(obj)) {
+ return SWIG_ConvertPtr(obj, ptr, ty, 0);
+ } else {
+ void *vptr = 0;
+
+ /* here we get the method pointer for callbacks */
+ const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
+ const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
+ if (desc) {
+ desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
+ if (!desc) return SWIG_ERROR;
+ }
+ if (ty) {
+ swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
+ if (!tc) return SWIG_ERROR;
+ *ptr = SWIG_TypeCast(tc,vptr);
+ } else {
+ *ptr = vptr;
+ }
+ return SWIG_OK;
+ }
+}
+
+/* Convert a packed value value */
+
+SWIGRUNTIME int
+SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
+ swig_type_info *to = PySwigPacked_UnpackData(obj, ptr, sz);
+ if (!to) return SWIG_ERROR;
+ if (ty) {
+ if (to != ty) {
+ /* check type cast? */
+ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
+ if (!tc) return SWIG_ERROR;
+ }
+ }
+ return SWIG_OK;
+}
+
+/* -----------------------------------------------------------------------------
+ * Create a new pointer object
+ * ----------------------------------------------------------------------------- */
+
+/*
+ Create a new instance object, whitout calling __init__, and set the
+ 'this' attribute.
+*/
+
+SWIGRUNTIME PyObject*
+SWIG_Python_NewShadowInstance(PySwigClientData *data, PyObject *swig_this)
+{
+#if (PY_VERSION_HEX >= 0x02020000)
+ PyObject *inst = 0;
+ PyObject *newraw = data->newraw;
+ if (newraw) {
+ inst = PyObject_Call(newraw, data->newargs, NULL);
+ if (inst) {
+#if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
+ PyObject **dictptr = _PyObject_GetDictPtr(inst);
+ if (dictptr != NULL) {
+ PyObject *dict = *dictptr;
+ if (dict == NULL) {
+ dict = PyDict_New();
+ *dictptr = dict;
+ PyDict_SetItem(dict, SWIG_This(), swig_this);
+ }
+ }
+#else
+ PyObject *key = SWIG_This();
+ PyObject_SetAttr(inst, key, swig_this);
+#endif
+ }
+ } else {
+ PyObject *dict = PyDict_New();
+ PyDict_SetItem(dict, SWIG_This(), swig_this);
+ inst = PyInstance_NewRaw(data->newargs, dict);
+ Py_DECREF(dict);
+ }
+ return inst;
+#else
+#if (PY_VERSION_HEX >= 0x02010000)
+ PyObject *inst;
+ PyObject *dict = PyDict_New();
+ PyDict_SetItem(dict, SWIG_This(), swig_this);
+ inst = PyInstance_NewRaw(data->newargs, dict);
+ Py_DECREF(dict);
+ return (PyObject *) inst;
+#else
+ PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type);
+ if (inst == NULL) {
+ return NULL;
+ }
+ inst->in_class = (PyClassObject *)data->newargs;
+ Py_INCREF(inst->in_class);
+ inst->in_dict = PyDict_New();
+ if (inst->in_dict == NULL) {
+ Py_DECREF(inst);
+ return NULL;
+ }
+#ifdef Py_TPFLAGS_HAVE_WEAKREFS
+ inst->in_weakreflist = NULL;
+#endif
+#ifdef Py_TPFLAGS_GC
+ PyObject_GC_Init(inst);
+#endif
+ PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this);
+ return (PyObject *) inst;
+#endif
+#endif
+}
+
+SWIGRUNTIME void
+SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
+{
+ PyObject *dict;
+#if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
+ PyObject **dictptr = _PyObject_GetDictPtr(inst);
+ if (dictptr != NULL) {
+ dict = *dictptr;
+ if (dict == NULL) {
+ dict = PyDict_New();
+ *dictptr = dict;
+ }
+ PyDict_SetItem(dict, SWIG_This(), swig_this);
+ return;
+ }
+#endif
+ dict = PyObject_GetAttrString(inst, (char*)"__dict__");
+ PyDict_SetItem(dict, SWIG_This(), swig_this);
+ Py_DECREF(dict);
+}
+
+
+SWIGINTERN PyObject *
+SWIG_Python_InitShadowInstance(PyObject *args) {
+ PyObject *obj[2];
+ if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) {
+ return NULL;
+ } else {
+ PySwigObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
+ if (sthis) {
+ PySwigObject_append((PyObject*) sthis, obj[1]);
+ } else {
+ SWIG_Python_SetSwigThis(obj[0], obj[1]);
+ }
+ return SWIG_Py_Void();
+ }
+}
+
+/* Create a new pointer object */
+
+SWIGRUNTIME PyObject *
+SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
+ if (!ptr) {
+ return SWIG_Py_Void();
+ } else {
+ int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
+ PyObject *robj = PySwigObject_New(ptr, type, own);
+ PySwigClientData *clientdata = type ? (PySwigClientData *)(type->clientdata) : 0;
+ if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
+ PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
+ if (inst) {
+ Py_DECREF(robj);
+ robj = inst;
+ }
+ }
+ return robj;
+ }
+}
+
+/* Create a new packed object */
+
+SWIGRUNTIMEINLINE PyObject *
+SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
+ return ptr ? PySwigPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
+}
+
+/* -----------------------------------------------------------------------------*
+ * Get type list
+ * -----------------------------------------------------------------------------*/
+
+#ifdef SWIG_LINK_RUNTIME
+void *SWIG_ReturnGlobalTypeList(void *);
+#endif
+
+SWIGRUNTIME swig_module_info *
+SWIG_Python_GetModule(void) {
+ static void *type_pointer = (void *)0;
+ /* first check if module already created */
+ if (!type_pointer) {
+#ifdef SWIG_LINK_RUNTIME
+ type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
+#else
+ type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
+ (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
+ if (PyErr_Occurred()) {
+ PyErr_Clear();
+ type_pointer = (void *)0;
+ }
+#endif
+ }
+ return (swig_module_info *) type_pointer;
+}
+
+#if PY_MAJOR_VERSION < 2
+/* PyModule_AddObject function was introduced in Python 2.0. The following function
+ is copied out of Python/modsupport.c in python version 2.3.4 */
+SWIGINTERN int
+PyModule_AddObject(PyObject *m, char *name, PyObject *o)
+{
+ PyObject *dict;
+ if (!PyModule_Check(m)) {
+ PyErr_SetString(PyExc_TypeError,
+ "PyModule_AddObject() needs module as first arg");
+ return SWIG_ERROR;
+ }
+ if (!o) {
+ PyErr_SetString(PyExc_TypeError,
+ "PyModule_AddObject() needs non-NULL value");
+ return SWIG_ERROR;
+ }
+
+ dict = PyModule_GetDict(m);
+ if (dict == NULL) {
+ /* Internal error -- modules must have a dict! */
+ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
+ PyModule_GetName(m));
+ return SWIG_ERROR;
+ }
+ if (PyDict_SetItemString(dict, name, o))
+ return SWIG_ERROR;
+ Py_DECREF(o);
+ return SWIG_OK;
+}
+#endif
+
+SWIGRUNTIME void
+SWIG_Python_DestroyModule(void *vptr)
+{
+ swig_module_info *swig_module = (swig_module_info *) vptr;
+ swig_type_info **types = swig_module->types;
+ size_t i;
+ for (i =0; i < swig_module->size; ++i) {
+ swig_type_info *ty = types[i];
+ if (ty->owndata) {
+ PySwigClientData *data = (PySwigClientData *) ty->clientdata;
+ if (data) PySwigClientData_Del(data);
+ }
+ }
+ Py_DECREF(SWIG_This());
+}
+
+SWIGRUNTIME void
+SWIG_Python_SetModule(swig_module_info *swig_module) {
+ static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */
+
+ PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
+ swig_empty_runtime_method_table);
+ PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
+ if (pointer && module) {
+ PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
+ } else {
+ Py_XDECREF(pointer);
+ }
+}
+
+/* The python cached type query */
+SWIGRUNTIME PyObject *
+SWIG_Python_TypeCache(void) {
+ static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
+ return cache;
+}
+
+SWIGRUNTIME swig_type_info *
+SWIG_Python_TypeQuery(const char *type)
+{
+ PyObject *cache = SWIG_Python_TypeCache();
+ PyObject *key = PyString_FromString(type);
+ PyObject *obj = PyDict_GetItem(cache, key);
+ swig_type_info *descriptor;
+ if (obj) {
+ descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
+ } else {
+ swig_module_info *swig_module = SWIG_Python_GetModule();
+ descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
+ if (descriptor) {
+ obj = PyCObject_FromVoidPtr(descriptor, NULL);
+ PyDict_SetItem(cache, key, obj);
+ Py_DECREF(obj);
+ }
+ }
+ Py_DECREF(key);
+ return descriptor;
+}
+
+/*
+ For backward compatibility only
+*/
+#define SWIG_POINTER_EXCEPTION 0
+#define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg)
+#define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags)
+
+SWIGRUNTIME int
+SWIG_Python_AddErrMesg(const char* mesg, int infront)
+{
+ if (PyErr_Occurred()) {
+ PyObject *type = 0;
+ PyObject *value = 0;
+ PyObject *traceback = 0;
+ PyErr_Fetch(&type, &value, &traceback);
+ if (value) {
+ PyObject *old_str = PyObject_Str(value);
+ Py_XINCREF(type);
+ PyErr_Clear();
+ if (infront) {
+ PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str));
+ } else {
+ PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
+ }
+ Py_DECREF(old_str);
+ }
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+SWIGRUNTIME int
+SWIG_Python_ArgFail(int argnum)
+{
+ if (PyErr_Occurred()) {
+ /* add information about failing argument */
+ char mesg[256];
+ PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
+ return SWIG_Python_AddErrMesg(mesg, 1);
+ } else {
+ return 0;
+ }
+}
+
+SWIGRUNTIMEINLINE const char *
+PySwigObject_GetDesc(PyObject *self)
+{
+ PySwigObject *v = (PySwigObject *)self;
+ swig_type_info *ty = v ? v->ty : 0;
+ return ty ? ty->str : (char*)"";
+}
+
+SWIGRUNTIME void
+SWIG_Python_TypeError(const char *type, PyObject *obj)
+{
+ if (type) {
+#if defined(SWIG_COBJECT_TYPES)
+ if (obj && PySwigObject_Check(obj)) {
+ const char *otype = (const char *) PySwigObject_GetDesc(obj);
+ if (otype) {
+ PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received",
+ type, otype);
+ return;
+ }
+ } else
+#endif
+ {
+ const char *otype = (obj ? obj->ob_type->tp_name : 0);
+ if (otype) {
+ PyObject *str = PyObject_Str(obj);
+ const char *cstr = str ? PyString_AsString(str) : 0;
+ if (cstr) {
+ PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
+ type, otype, cstr);
+ } else {
+ PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
+ type, otype);
+ }
+ Py_XDECREF(str);
+ return;
+ }
+ }
+ PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
+ } else {
+ PyErr_Format(PyExc_TypeError, "unexpected type is received");
+ }
+}
+
+
+/* Convert a pointer value, signal an exception on a type mismatch */
+SWIGRUNTIME void *
+SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
+ void *result;
+ if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
+ PyErr_Clear();
+ if (flags & SWIG_POINTER_EXCEPTION) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
+ SWIG_Python_ArgFail(argnum);
+ }
+ }
+ return result;
+}
+
+
+#ifdef __cplusplus
+#if 0
+{ /* cc-mode */
+#endif
+}
+#endif
+
+
+
+#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
+
+#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else
+
+
+
+ #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0)
+
+/* -----------------------------------------------------------------------------
+ * See the LICENSE file for information on copyright, usage and redistribution
+ * of SWIG, and the README file for authors - http://www.swig.org/release.html.
+ *
+ * director.swg
+ *
+ * This file contains support for director classes that proxy
+ * method calls from C++ to Python extensions.
+ * ----------------------------------------------------------------------------- */
+
+#ifndef SWIG_DIRECTOR_PYTHON_HEADER_
+#define SWIG_DIRECTOR_PYTHON_HEADER_
+
+#ifdef __cplusplus
+
+#include <string>
+#include <iostream>
+#include <exception>
+#include <vector>
+#include <map>
+
+
+/*
+ Use -DSWIG_PYTHON_DIRECTOR_NO_VTABLE if you don't want to generate a 'virtual
+ table', and avoid multiple GetAttr calls to retrieve the python
+ methods.
+*/
+
+#ifndef SWIG_PYTHON_DIRECTOR_NO_VTABLE
+#ifndef SWIG_PYTHON_DIRECTOR_VTABLE
+#define SWIG_PYTHON_DIRECTOR_VTABLE
+#endif
+#endif
+
+
+
+/*
+ Use -DSWIG_DIRECTOR_NO_UEH if you prefer to avoid the use of the
+ Undefined Exception Handler provided by swift
+*/
+#ifndef SWIG_DIRECTOR_NO_UEH
+#ifndef SWIG_DIRECTOR_UEH
+#define SWIG_DIRECTOR_UEH
+#endif
+#endif
+
+
+/*
+ Use -DSWIG_DIRECTOR_STATIC if you prefer to avoid the use of the
+ 'Swig' namespace. This could be usefull for multi-modules projects.
+*/
+#ifdef SWIG_DIRECTOR_STATIC
+/* Force anonymous (static) namespace */
+#define Swig
+#endif
+
+
+/*
+ Use -DSWIG_DIRECTOR_NORTTI if you prefer to avoid the use of the
+ native C++ RTTI and dynamic_cast<>. But be aware that directors
+ could stop working when using this option.
+*/
+#ifdef SWIG_DIRECTOR_NORTTI
+/*
+ When we don't use the native C++ RTTI, we implement a minimal one
+ only for Directors.
+*/
+# ifndef SWIG_DIRECTOR_RTDIR
+# define SWIG_DIRECTOR_RTDIR
+#include <map>
+
+namespace Swig {
+ class Director;
+ SWIGINTERN std::map<void*,Director*>& get_rtdir_map() {
+ static std::map<void*,Director*> rtdir_map;
+ return rtdir_map;
+ }
+
+ SWIGINTERNINLINE void set_rtdir(void *vptr, Director *rtdir) {
+ get_rtdir_map()[vptr] = rtdir;
+ }
+
+ SWIGINTERNINLINE Director *get_rtdir(void *vptr) {
+ std::map<void*,Director*>::const_iterator pos = get_rtdir_map().find(vptr);
+ Director *rtdir = (pos != get_rtdir_map().end()) ? pos->second : 0;
+ return rtdir;
+ }
+}
+# endif /* SWIG_DIRECTOR_RTDIR */
+
+# define SWIG_DIRECTOR_CAST(Arg) Swig::get_rtdir(static_cast<void*>(Arg))
+# define SWIG_DIRECTOR_RGTR(Arg1, Arg2) Swig::set_rtdir(static_cast<void*>(Arg1), Arg2)
+
+#else
+
+# define SWIG_DIRECTOR_CAST(Arg) dynamic_cast<Swig::Director*>(Arg)
+# define SWIG_DIRECTOR_RGTR(Arg1, Arg2)
+
+#endif /* SWIG_DIRECTOR_NORTTI */
+
+extern "C" {
+ struct swig_type_info;
+}
+
+namespace Swig {
+
+ /* memory handler */
+ struct GCItem
+ {
+ virtual ~GCItem() = 0;
+
+ virtual int get_own() const
+ {
+ return 0;
+ }
+ };
+
+ GCItem::~GCItem()
+ {
+ }
+
+ struct GCItem_var
+ {
+ GCItem_var(GCItem *item = 0) : _item(item)
+ {
+ }
+
+ GCItem_var& operator=(GCItem *item)
+ {
+ GCItem *tmp = _item;
+ _item = item;
+ delete tmp;
+ return *this;
+ }
+
+ ~GCItem_var()
+ {
+ delete _item;
+ }
+
+ GCItem * operator->() const
+ {
+ return _item;
+ }
+
+ private:
+ GCItem *_item;
+ };
+
+ struct GCItem_Object : GCItem
+ {
+ GCItem_Object(int own) : _own(own)
+ {
+ }
+
+ virtual ~GCItem_Object()
+ {
+ }
+
+ int get_own() const
+ {
+ return _own;
+ }
+
+ private:
+ int _own;
+ };
+
+ template <typename Type>
+ struct GCItem_T : GCItem
+ {
+ GCItem_T(Type *ptr) : _ptr(ptr)
+ {
+ }
+
+ virtual ~GCItem_T()
+ {
+ delete _ptr;
+ }
+
+ private:
+ Type *_ptr;
+ };
+
+ template <typename Type>
+ struct GCArray_T : GCItem
+ {
+ GCArray_T(Type *ptr) : _ptr(ptr)
+ {
+ }
+
+ virtual ~GCArray_T()
+ {
+ delete[] _ptr;
+ }
+
+ private:
+ Type *_ptr;
+ };
+
+ /* base class for director exceptions */
+ class DirectorException {
+ protected:
+ std::string swig_msg;
+ public:
+ DirectorException(PyObject *error, const char* hdr ="", const char* msg ="")
+ : swig_msg(hdr)
+ {
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ if (strlen(msg)) {
+ swig_msg += " ";
+ swig_msg += msg;
+ }
+ if (!PyErr_Occurred()) {
+ PyErr_SetString(error, getMessage());
+ } else {
+ SWIG_Python_AddErrorMsg(getMessage());
+ }
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ }
+
+ const char *getMessage() const
+ {
+ return swig_msg.c_str();
+ }
+
+ static void raise(PyObject *error, const char *msg)
+ {
+ throw DirectorException(error, msg);
+ }
+
+ static void raise(const char *msg)
+ {
+ raise(PyExc_RuntimeError, msg);
+ }
+ };
+
+ /* unknown exception handler */
+ class UnknownExceptionHandler
+ {
+#ifdef SWIG_DIRECTOR_UEH
+ static void handler() {
+ try {
+ throw;
+ } catch (DirectorException& e) {
+ std::cerr << "Swig Director exception caught:" << std::endl
+ << e.getMessage() << std::endl;
+ } catch (std::exception& e) {
+ std::cerr << "std::exception caught: "<< e.what() << std::endl;
+ } catch (...) {
+ std::cerr << "Unknown exception caught." << std::endl;
+ }
+
+ std::cerr << std::endl
+ << "Python interpreter traceback:" << std::endl;
+ PyErr_Print();
+ std::cerr << std::endl;
+
+ std::cerr << "This exception was caught by the SWIG unexpected exception handler." << std::endl
+ << "Try using %feature(\"director:except\") to avoid reaching this point." << std::endl
+ << std::endl
+ << "Exception is being re-thrown, program will like abort/terminate." << std::endl;
+ throw;
+ }
+
+ public:
+
+ std::unexpected_handler old;
+ UnknownExceptionHandler(std::unexpected_handler nh = handler)
+ {
+ old = std::set_unexpected(nh);
+ }
+
+ ~UnknownExceptionHandler()
+ {
+ std::set_unexpected(old);
+ }
+#endif
+ };
+
+ /* type mismatch in the return value from a python method call */
+ class DirectorTypeMismatchException : public Swig::DirectorException {
+ public:
+ DirectorTypeMismatchException(PyObject *error, const char* msg="")
+ : Swig::DirectorException(error, "Swig director type mismatch", msg)
+ {
+ }
+
+ DirectorTypeMismatchException(const char* msg="")
+ : Swig::DirectorException(PyExc_TypeError, "Swig director type mismatch", msg)
+ {
+ }
+
+ static void raise(PyObject *error, const char *msg)
+ {
+ throw DirectorTypeMismatchException(error, msg);
+ }
+
+ static void raise(const char *msg)
+ {
+ throw DirectorTypeMismatchException(msg);
+ }
+ };
+
+ /* any python exception that occurs during a director method call */
+ class DirectorMethodException : public Swig::DirectorException {
+ public:
+ DirectorMethodException(const char* msg = "")
+ : DirectorException(PyExc_RuntimeError, "Swig director method error", msg)
+ {
+ }
+
+ static void raise(const char *msg)
+ {
+ throw DirectorMethodException(msg);
+ }
+ };
+
+ /* attempt to call a pure virtual method via a director method */
+ class DirectorPureVirtualException : public Swig::DirectorException
+ {
+ public:
+ DirectorPureVirtualException(const char* msg = "")
+ : DirectorException(PyExc_RuntimeError, "Swig director pure virtual method called", msg)
+ {
+ }
+
+ static void raise(const char *msg)
+ {
+ throw DirectorPureVirtualException(msg);
+ }
+ };
+
+
+#if defined(SWIG_PYTHON_THREADS)
+/* __THREAD__ is the old macro to activate some thread support */
+# if !defined(__THREAD__)
+# define __THREAD__ 1
+# endif
+#endif
+
+/* simple thread abstraction for pthreads on win32 */
+#ifdef __THREAD__
+# define __PTHREAD__
+# if defined(_WIN32) || defined(__WIN32__)
+# define pthread_mutex_lock EnterCriticalSection
+# define pthread_mutex_unlock LeaveCriticalSection
+# define pthread_mutex_t CRITICAL_SECTION
+# define SWIG_MUTEX_INIT(var) var
+# else
+# include <pthread.h>
+# define SWIG_MUTEX_INIT(var) var = PTHREAD_MUTEX_INITIALIZER
+# endif
+#endif
+
+#ifdef __PTHREAD__
+ struct Guard
+ {
+ pthread_mutex_t *_mutex;
+
+ Guard(pthread_mutex_t &mutex) : _mutex(&mutex)
+ {
+ pthread_mutex_lock(_mutex);
+ }
+
+ ~Guard()
+ {
+ pthread_mutex_unlock(_mutex);
+ }
+ };
+# define SWIG_GUARD(mutex) Guard _guard(mutex)
+#else
+# define SWIG_GUARD(mutex)
+#endif
+
+ /* director base class */
+ class Director {
+ private:
+ /* pointer to the wrapped python object */
+ PyObject* swig_self;
+ /* flag indicating whether the object is owned by python or c++ */
+ mutable bool swig_disown_flag;
+
+ /* decrement the reference count of the wrapped python object */
+ void swig_decref() const {
+ if (swig_disown_flag) {
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ Py_DECREF(swig_self);
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ }
+ }
+
+ public:
+ /* wrap a python object, optionally taking ownership */
+ Director(PyObject* self) : swig_self(self), swig_disown_flag(false) {
+ swig_incref();
+ }
+
+
+ /* discard our reference at destruction */
+ virtual ~Director() {
+ swig_decref();
+ }
+
+
+ /* return a pointer to the wrapped python object */
+ PyObject *swig_get_self() const {
+ return swig_self;
+ }
+
+ /* acquire ownership of the wrapped python object (the sense of "disown"
+ * is from python) */
+ void swig_disown() const {
+ if (!swig_disown_flag) {
+ swig_disown_flag=true;
+ swig_incref();
+ }
+ }
+
+ /* increase the reference count of the wrapped python object */
+ void swig_incref() const {
+ if (swig_disown_flag) {
+ Py_INCREF(swig_self);
+ }
+ }
+
+ /* methods to implement pseudo protected director members */
+ virtual bool swig_get_inner(const char* /* name */) const {
+ return true;
+ }
+
+ virtual void swig_set_inner(const char* /* name */, bool /* val */) const {
+ }
+
+ /* ownership management */
+ private:
+ typedef std::map<void*, GCItem_var> ownership_map;
+ mutable ownership_map owner;
+#ifdef __PTHREAD__
+ static pthread_mutex_t swig_mutex_own;
+#endif
+
+ public:
+ template <typename Type>
+ void swig_acquire_ownership_array(Type *vptr) const
+ {
+ if (vptr) {
+ SWIG_GUARD(swig_mutex_own);
+ owner[vptr] = new GCArray_T<Type>(vptr);
+ }
+ }
+
+ template <typename Type>
+ void swig_acquire_ownership(Type *vptr) const
+ {
+ if (vptr) {
+ SWIG_GUARD(swig_mutex_own);
+ owner[vptr] = new GCItem_T<Type>(vptr);
+ }
+ }
+
+ void swig_acquire_ownership_obj(void *vptr, int own) const
+ {
+ if (vptr && own) {
+ SWIG_GUARD(swig_mutex_own);
+ owner[vptr] = new GCItem_Object(own);
+ }
+ }
+
+ int swig_release_ownership(void *vptr) const
+ {
+ int own = 0;
+ if (vptr) {
+ SWIG_GUARD(swig_mutex_own);
+ ownership_map::iterator iter = owner.find(vptr);
+ if (iter != owner.end()) {
+ own = iter->second->get_own();
+ owner.erase(iter);
+ }
+ }
+ return own;
+ }
+ };
+
+#ifdef __PTHREAD__
+ pthread_mutex_t SWIG_MUTEX_INIT(Director::swig_mutex_own);
+#endif
+}
+
+#endif /* __cplusplus */
+
+
+#endif
+
+/* -------- TYPES TABLE (BEGIN) -------- */
+
+#define SWIGTYPE_p_AdjacencyIterator swig_types[0]
+#define SWIGTYPE_p_BBoxTVecMat__Vec3Tdouble_t_t swig_types[1]
+#define SWIGTYPE_p_BinaryPredicate0D swig_types[2]
+#define SWIGTYPE_p_BinaryPredicate1D swig_types[3]
+#define SWIGTYPE_p_CalligraphicShader swig_types[4]
+#define SWIGTYPE_p_Canvas swig_types[5]
+#define SWIGTYPE_p_Chain swig_types[6]
+#define SWIGTYPE_p_ChainPredicateIterator swig_types[7]
+#define SWIGTYPE_p_ChainSilhouetteIterator swig_types[8]
+#define SWIGTYPE_p_ChainingIterator swig_types[9]
+#define SWIGTYPE_p_CurvatureInfo swig_types[10]
+#define SWIGTYPE_p_Curve swig_types[11]
+#define SWIGTYPE_p_CurveInternal__CurvePointIterator swig_types[12]
+#define SWIGTYPE_p_CurvePoint swig_types[13]
+#define SWIGTYPE_p_Curve__vertex_container__iterator swig_types[14]
+#define SWIGTYPE_p_FEdge swig_types[15]
+#define SWIGTYPE_p_FEdgeInternal__SVertexIterator swig_types[16]
+#define SWIGTYPE_p_FEdgeSharp swig_types[17]
+#define SWIGTYPE_p_FEdgeSmooth swig_types[18]
+#define SWIGTYPE_p_Functions0D__Curvature2DAngleF0D swig_types[19]
+#define SWIGTYPE_p_Functions0D__CurveNatureF0D swig_types[20]
+#define SWIGTYPE_p_Functions0D__DensityF0D swig_types[21]
+#define SWIGTYPE_p_Functions0D__GetCurvilinearAbscissaF0D swig_types[22]
+#define SWIGTYPE_p_Functions0D__GetOccludeeF0D swig_types[23]
+#define SWIGTYPE_p_Functions0D__GetOccludersF0D swig_types[24]
+#define SWIGTYPE_p_Functions0D__GetParameterF0D swig_types[25]
+#define SWIGTYPE_p_Functions0D__GetProjectedXF0D swig_types[26]
+#define SWIGTYPE_p_Functions0D__GetProjectedYF0D swig_types[27]
+#define SWIGTYPE_p_Functions0D__GetProjectedZF0D swig_types[28]
+#define SWIGTYPE_p_Functions0D__GetShapeF0D swig_types[29]
+#define SWIGTYPE_p_Functions0D__GetViewMapGradientNormF0D swig_types[30]
+#define SWIGTYPE_p_Functions0D__GetXF0D swig_types[31]
+#define SWIGTYPE_p_Functions0D__GetYF0D swig_types[32]
+#define SWIGTYPE_p_Functions0D__GetZF0D swig_types[33]
+#define SWIGTYPE_p_Functions0D__LocalAverageDepthF0D swig_types[34]
+#define SWIGTYPE_p_Functions0D__MaterialF0D swig_types[35]
+#define SWIGTYPE_p_Functions0D__Normal2DF0D swig_types[36]
+#define SWIGTYPE_p_Functions0D__QuantitativeInvisibilityF0D swig_types[37]
+#define SWIGTYPE_p_Functions0D__ReadCompleteViewMapPixelF0D swig_types[38]
+#define SWIGTYPE_p_Functions0D__ReadMapPixelF0D swig_types[39]
+#define SWIGTYPE_p_Functions0D__ReadSteerableViewMapPixelF0D swig_types[40]
+#define SWIGTYPE_p_Functions0D__ShapeIdF0D swig_types[41]
+#define SWIGTYPE_p_Functions0D__VertexOrientation2DF0D swig_types[42]
+#define SWIGTYPE_p_Functions0D__VertexOrientation3DF0D swig_types[43]
+#define SWIGTYPE_p_Functions0D__ZDiscontinuityF0D swig_types[44]
+#define SWIGTYPE_p_Functions1D__ChainingTimeStampF1D swig_types[45]
+#define SWIGTYPE_p_Functions1D__Curvature2DAngleF1D swig_types[46]
+#define SWIGTYPE_p_Functions1D__CurveNatureF1D swig_types[47]
+#define SWIGTYPE_p_Functions1D__DensityF1D swig_types[48]
+#define SWIGTYPE_p_Functions1D__GetCompleteViewMapDensityF1D swig_types[49]
+#define SWIGTYPE_p_Functions1D__GetDirectionalViewMapDensityF1D swig_types[50]
+#define SWIGTYPE_p_Functions1D__GetOccludeeF1D swig_types[51]
+#define SWIGTYPE_p_Functions1D__GetOccludersF1D swig_types[52]
+#define SWIGTYPE_p_Functions1D__GetProjectedXF1D swig_types[53]
+#define SWIGTYPE_p_Functions1D__GetProjectedYF1D swig_types[54]
+#define SWIGTYPE_p_Functions1D__GetProjectedZF1D swig_types[55]
+#define SWIGTYPE_p_Functions1D__GetShapeF1D swig_types[56]
+#define SWIGTYPE_p_Functions1D__GetSteerableViewMapDensityF1D swig_types[57]
+#define SWIGTYPE_p_Functions1D__GetViewMapGradientNormF1D swig_types[58]
+#define SWIGTYPE_p_Functions1D__GetXF1D swig_types[59]
+#define SWIGTYPE_p_Functions1D__GetYF1D swig_types[60]
+#define SWIGTYPE_p_Functions1D__GetZF1D swig_types[61]
+#define SWIGTYPE_p_Functions1D__IncrementChainingTimeStampF1D swig_types[62]
+#define SWIGTYPE_p_Functions1D__LocalAverageDepthF1D swig_types[63]
+#define SWIGTYPE_p_Functions1D__Normal2DF1D swig_types[64]
+#define SWIGTYPE_p_Functions1D__Orientation2DF1D swig_types[65]
+#define SWIGTYPE_p_Functions1D__Orientation3DF1D swig_types[66]
+#define SWIGTYPE_p_Functions1D__QuantitativeInvisibilityF1D swig_types[67]
+#define SWIGTYPE_p_Functions1D__TimeStampF1D swig_types[68]
+#define SWIGTYPE_p_Functions1D__ZDiscontinuityF1D swig_types[69]
+#define SWIGTYPE_p_GrayImage swig_types[70]
+#define SWIGTYPE_p_I1DContainer swig_types[71]
+#define SWIGTYPE_p_Id swig_types[72]
+#define SWIGTYPE_p_IntegrationType swig_types[73]
+#define SWIGTYPE_p_Interface0D swig_types[74]
+#define SWIGTYPE_p_Interface0DIterator swig_types[75]
+#define SWIGTYPE_p_Interface0DIteratorNested swig_types[76]
+#define SWIGTYPE_p_Interface1D swig_types[77]
+#define SWIGTYPE_p_Material swig_types[78]
+#define SWIGTYPE_p_MediumType swig_types[79]
+#define SWIGTYPE_p_Module swig_types[80]
+#define SWIGTYPE_p_Noise swig_types[81]
+#define SWIGTYPE_p_NonTVertex swig_types[82]
+#define SWIGTYPE_p_OmissionShader swig_types[83]
+#define SWIGTYPE_p_Omitter swig_types[84]
+#define SWIGTYPE_p_Operators swig_types[85]
+#define SWIGTYPE_p_Point swig_types[86]
+#define SWIGTYPE_p_Polygon3r swig_types[87]
+#define SWIGTYPE_p_Predicates0D__FalseUP0D swig_types[88]
+#define SWIGTYPE_p_Predicates0D__TrueUP0D swig_types[89]
+#define SWIGTYPE_p_Predicates1D__ContourUP1D swig_types[90]
+#define SWIGTYPE_p_Predicates1D__DensityLowerThanUP1D swig_types[91]
+#define SWIGTYPE_p_Predicates1D__EqualToChainingTimeStampUP1D swig_types[92]
+#define SWIGTYPE_p_Predicates1D__EqualToTimeStampUP1D swig_types[93]
+#define SWIGTYPE_p_Predicates1D__ExternalContourUP1D swig_types[94]
+#define SWIGTYPE_p_Predicates1D__FalseBP1D swig_types[95]
+#define SWIGTYPE_p_Predicates1D__FalseUP1D swig_types[96]
+#define SWIGTYPE_p_Predicates1D__Length2DBP1D swig_types[97]
+#define SWIGTYPE_p_Predicates1D__QuantitativeInvisibilityUP1D swig_types[98]
+#define SWIGTYPE_p_Predicates1D__SameShapeIdBP1D swig_types[99]
+#define SWIGTYPE_p_Predicates1D__ShapeUP1D swig_types[100]
+#define SWIGTYPE_p_Predicates1D__TrueBP1D swig_types[101]
+#define SWIGTYPE_p_Predicates1D__TrueUP1D swig_types[102]
+#define SWIGTYPE_p_Predicates1D__ViewMapGradientNormBP1D swig_types[103]
+#define SWIGTYPE_p_RGBImage swig_types[104]
+#define SWIGTYPE_p_ReturnedValueType swig_types[105]
+#define SWIGTYPE_p_SShape swig_types[106]
+#define SWIGTYPE_p_SVertex swig_types[107]
+#define SWIGTYPE_p_SVertex__fedges_container__iterator swig_types[108]
+#define SWIGTYPE_p_Smoother swig_types[109]
+#define SWIGTYPE_p_SmoothingShader swig_types[110]
+#define SWIGTYPE_p_SpatialNoiseShader swig_types[111]
+#define SWIGTYPE_p_SteerableViewMap swig_types[112]
+#define SWIGTYPE_p_Stroke swig_types[113]
+#define SWIGTYPE_p_StrokeAttribute swig_types[114]
+#define SWIGTYPE_p_StrokeInternal__StrokeVertexIterator swig_types[115]
+#define SWIGTYPE_p_StrokeLayer swig_types[116]
+#define SWIGTYPE_p_StrokeRenderer swig_types[117]
+#define SWIGTYPE_p_StrokeShader swig_types[118]
+#define SWIGTYPE_p_StrokeShaders__BSplineShader swig_types[119]
+#define SWIGTYPE_p_StrokeShaders__BackboneStretcherShader swig_types[120]
+#define SWIGTYPE_p_StrokeShaders__BezierCurveShader swig_types[121]
+#define SWIGTYPE_p_StrokeShaders__CalligraphicColorShader swig_types[122]
+#define SWIGTYPE_p_StrokeShaders__ColorNoiseShader swig_types[123]
+#define SWIGTYPE_p_StrokeShaders__ColorVariationPatternShader swig_types[124]
+#define SWIGTYPE_p_StrokeShaders__ConstantColorShader swig_types[125]
+#define SWIGTYPE_p_StrokeShaders__ConstantExternThicknessShader swig_types[126]
+#define SWIGTYPE_p_StrokeShaders__ConstantThicknessShader swig_types[127]
+#define SWIGTYPE_p_StrokeShaders__ConstrainedIncreasingThicknessShader swig_types[128]
+#define SWIGTYPE_p_StrokeShaders__ExternalContourStretcherShader swig_types[129]
+#define SWIGTYPE_p_StrokeShaders__GuidingLinesShader swig_types[130]
+#define SWIGTYPE_p_StrokeShaders__IncreasingColorShader swig_types[131]
+#define SWIGTYPE_p_StrokeShaders__IncreasingThicknessShader swig_types[132]
+#define SWIGTYPE_p_StrokeShaders__InflateShader swig_types[133]
+#define SWIGTYPE_p_StrokeShaders__LengthDependingThicknessShader swig_types[134]
+#define SWIGTYPE_p_StrokeShaders__MaterialColorShader swig_types[135]
+#define SWIGTYPE_p_StrokeShaders__PolygonalizationShader swig_types[136]
+#define SWIGTYPE_p_StrokeShaders__SamplingShader swig_types[137]
+#define SWIGTYPE_p_StrokeShaders__StrokeTextureShader swig_types[138]
+#define SWIGTYPE_p_StrokeShaders__TextureAssignerShader swig_types[139]
+#define SWIGTYPE_p_StrokeShaders__ThicknessNoiseShader swig_types[140]
+#define SWIGTYPE_p_StrokeShaders__ThicknessVariationPatternShader swig_types[141]
+#define SWIGTYPE_p_StrokeShaders__TipRemoverShader swig_types[142]
+#define SWIGTYPE_p_StrokeShaders__fstreamShader swig_types[143]
+#define SWIGTYPE_p_StrokeShaders__streamShader swig_types[144]
+#define SWIGTYPE_p_StrokeVertex swig_types[145]
+#define SWIGTYPE_p_Stroke__vertex_container__iterator swig_types[146]
+#define SWIGTYPE_p_Stroke__viewedge_container__const_iterator swig_types[147]
+#define SWIGTYPE_p_Stroke__viewedge_container__iterator swig_types[148]
+#define SWIGTYPE_p_StrokesContainer swig_types[149]
+#define SWIGTYPE_p_StyleModule swig_types[150]
+#define SWIGTYPE_p_TVertex swig_types[151]
+#define SWIGTYPE_p_UnaryFunction0DTId_t swig_types[152]
+#define SWIGTYPE_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t swig_types[153]
+#define SWIGTYPE_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t swig_types[154]
+#define SWIGTYPE_p_UnaryFunction0DTViewShape_p_t swig_types[155]
+#define SWIGTYPE_p_UnaryFunction0DTdouble_t swig_types[156]
+#define SWIGTYPE_p_UnaryFunction0DTfloat_t swig_types[157]
+#define SWIGTYPE_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t swig_types[158]
+#define SWIGTYPE_p_UnaryFunction0DTunsigned_int_t swig_types[159]
+#define SWIGTYPE_p_UnaryFunction0DTvoid_t swig_types[160]
+#define SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t swig_types[161]
+#define SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t swig_types[162]
+#define SWIGTYPE_p_UnaryFunction1DTdouble_t swig_types[163]
+#define SWIGTYPE_p_UnaryFunction1DTfloat_t swig_types[164]
+#define SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t swig_types[165]
+#define SWIGTYPE_p_UnaryFunction1DTunsigned_int_t swig_types[166]
+#define SWIGTYPE_p_UnaryFunction1DTvoid_t swig_types[167]
+#define SWIGTYPE_p_UnaryPredicate0D swig_types[168]
+#define SWIGTYPE_p_UnaryPredicate1D swig_types[169]
+#define SWIGTYPE_p_VecMat__HVec3Tdouble_t swig_types[170]
+#define SWIGTYPE_p_VecMat__HVec3Tfloat_t swig_types[171]
+#define SWIGTYPE_p_VecMat__HVec3Tint_t swig_types[172]
+#define SWIGTYPE_p_VecMat__HVec3Tunsigned_int_t swig_types[173]
+#define SWIGTYPE_p_VecMat__SquareMatrixTdouble_2_t swig_types[174]
+#define SWIGTYPE_p_VecMat__SquareMatrixTdouble_3_t swig_types[175]
+#define SWIGTYPE_p_VecMat__SquareMatrixTdouble_4_t swig_types[176]
+#define SWIGTYPE_p_VecMat__SquareMatrixTfloat_2_t swig_types[177]
+#define SWIGTYPE_p_VecMat__SquareMatrixTfloat_3_t swig_types[178]
+#define SWIGTYPE_p_VecMat__SquareMatrixTfloat_4_t swig_types[179]
+#define SWIGTYPE_p_VecMat__SquareMatrixTint_2_t swig_types[180]
+#define SWIGTYPE_p_VecMat__SquareMatrixTint_3_t swig_types[181]
+#define SWIGTYPE_p_VecMat__SquareMatrixTint_4_t swig_types[182]
+#define SWIGTYPE_p_VecMat__SquareMatrixTunsigned_int_2_t swig_types[183]
+#define SWIGTYPE_p_VecMat__SquareMatrixTunsigned_int_3_t swig_types[184]
+#define SWIGTYPE_p_VecMat__SquareMatrixTunsigned_int_4_t swig_types[185]
+#define SWIGTYPE_p_VecMat__Vec2Tdouble_t swig_types[186]
+#define SWIGTYPE_p_VecMat__Vec2Tfloat_t swig_types[187]
+#define SWIGTYPE_p_VecMat__Vec2Tint_t swig_types[188]
+#define SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t swig_types[189]
+#define SWIGTYPE_p_VecMat__Vec3Tdouble_t swig_types[190]
+#define SWIGTYPE_p_VecMat__Vec3Tfloat_t swig_types[191]
+#define SWIGTYPE_p_VecMat__Vec3Tint_t swig_types[192]
+#define SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t swig_types[193]
+#define SWIGTYPE_p_VecMat__VecTdouble_2_t swig_types[194]
+#define SWIGTYPE_p_VecMat__VecTdouble_3_t swig_types[195]
+#define SWIGTYPE_p_VecMat__VecTfloat_2_t swig_types[196]
+#define SWIGTYPE_p_VecMat__VecTfloat_3_t swig_types[197]
+#define SWIGTYPE_p_VecMat__VecTint_2_t swig_types[198]
+#define SWIGTYPE_p_VecMat__VecTint_3_t swig_types[199]
+#define SWIGTYPE_p_VecMat__VecTunsigned_int_2_t swig_types[200]
+#define SWIGTYPE_p_VecMat__VecTunsigned_int_3_t swig_types[201]
+#define SWIGTYPE_p_Vertex swig_types[202]
+#define SWIGTYPE_p_ViewEdge swig_types[203]
+#define SWIGTYPE_p_ViewEdgeInternal__SVertexIterator swig_types[204]
+#define SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator swig_types[205]
+#define SWIGTYPE_p_ViewMap swig_types[206]
+#define SWIGTYPE_p_ViewShape swig_types[207]
+#define SWIGTYPE_p_ViewVertex swig_types[208]
+#define SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t swig_types[209]
+#define SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t swig_types[210]
+#define SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator swig_types[211]
+#define SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator swig_types[212]
+#define SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator swig_types[213]
+#define SWIGTYPE_p_allocator_type swig_types[214]
+#define SWIGTYPE_p_char swig_types[215]
+#define SWIGTYPE_p_const_edge_iterator swig_types[216]
+#define SWIGTYPE_p_const_fedge_iterator swig_types[217]
+#define SWIGTYPE_p_const_point_iterator swig_types[218]
+#define SWIGTYPE_p_const_reference swig_types[219]
+#define SWIGTYPE_p_const_vertex_iterator swig_types[220]
+#define SWIGTYPE_p_difference_type swig_types[221]
+#define SWIGTYPE_p_directedViewEdge swig_types[222]
+#define SWIGTYPE_p_double swig_types[223]
+#define SWIGTYPE_p_edge_iterator swig_types[224]
+#define SWIGTYPE_p_edge_pointers_container swig_types[225]
+#define SWIGTYPE_p_edges_container swig_types[226]
+#define SWIGTYPE_p_fedge_iterator swig_types[227]
+#define SWIGTYPE_p_fedges_container swig_types[228]
+#define SWIGTYPE_p_float swig_types[229]
+#define SWIGTYPE_p_id_type swig_types[230]
+#define SWIGTYPE_p_int swig_types[231]
+#define SWIGTYPE_p_ltstr swig_types[232]
+#define SWIGTYPE_p_mapsMap swig_types[233]
+#define SWIGTYPE_p_occluder_container__const_iterator swig_types[234]
+#define SWIGTYPE_p_p_PyObject swig_types[235]
+#define SWIGTYPE_p_point_iterator swig_types[236]
+#define SWIGTYPE_p_point_type swig_types[237]
+#define SWIGTYPE_p_reference swig_types[238]
+#define SWIGTYPE_p_setTVecMat__Vec3Tdouble_t_t swig_types[239]
+#define SWIGTYPE_p_size_type swig_types[240]
+#define SWIGTYPE_p_std__invalid_argument swig_types[241]
+#define SWIGTYPE_p_std__pairTViewEdge_p_bool_t swig_types[242]
+#define SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t swig_types[243]
+#define SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__allocator_type swig_types[244]
+#define SWIGTYPE_p_std__vectorTMaterial_std__allocatorTMaterial_t_t swig_types[245]
+#define SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t swig_types[246]
+#define SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__allocator_type swig_types[247]
+#define SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t swig_types[248]
+#define SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__allocator_type swig_types[249]
+#define SWIGTYPE_p_std__vectorTTVertex_p_std__allocatorTTVertex_p_t_t swig_types[250]
+#define SWIGTYPE_p_std__vectorTVecMat__Vec2Tdouble_t_std__allocatorTVecMat__Vec2Tdouble_t_t_t swig_types[251]
+#define SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t swig_types[252]
+#define SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__allocator_type swig_types[253]
+#define SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t swig_types[254]
+#define SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__allocator_type swig_types[255]
+#define SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t swig_types[256]
+#define SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__allocator_type swig_types[257]
+#define SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t swig_types[258]
+#define SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t__allocator_type swig_types[259]
+#define SWIGTYPE_p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t swig_types[260]
+#define SWIGTYPE_p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t swig_types[261]
+#define SWIGTYPE_p_svertices_container swig_types[262]
+#define SWIGTYPE_p_swig__PySwigIterator swig_types[263]
+#define SWIGTYPE_p_unsigned_int swig_types[264]
+#define SWIGTYPE_p_unsigned_short swig_types[265]
+#define SWIGTYPE_p_value_type swig_types[266]
+#define SWIGTYPE_p_vertex_container swig_types[267]
+#define SWIGTYPE_p_vertex_iterator swig_types[268]
+#define SWIGTYPE_p_vertex_type swig_types[269]
+#define SWIGTYPE_p_viewedge_container swig_types[270]
+#define SWIGTYPE_p_viewedges_container swig_types[271]
+#define SWIGTYPE_p_viewshapes_container swig_types[272]
+#define SWIGTYPE_p_viewvertices_container swig_types[273]
+#define SWIGTYPE_p_void swig_types[274]
+#define SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type swig_types[275]
+#define SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type swig_types[276]
+#define SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type swig_types[277]
+#define SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type swig_types[278]
+#define SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type swig_types[279]
+#define SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type swig_types[280]
+static swig_type_info *swig_types[282];
+static swig_module_info swig_module = {swig_types, 281, 0, 0, 0, 0};
+#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
+#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
+
+/* -------- TYPES TABLE (END) -------- */
+
+#if (PY_VERSION_HEX <= 0x02000000)
+# if !defined(SWIG_PYTHON_CLASSIC)
+# error "This python version requires swig to be run with the '-classic' option"
+# endif
+#endif
+
+/*-----------------------------------------------
+ @(target):= _Freestyle.so
+ ------------------------------------------------*/
+#define SWIG_init init_Freestyle
+
+#define SWIG_name "_Freestyle"
+
+#define SWIGVERSION 0x010331
+#define SWIG_VERSION SWIGVERSION
+
+
+#define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a))
+#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a))
+
+
+#include <stdexcept>
+
+
+namespace swig {
+ class PyObject_ptr {
+ protected:
+ PyObject *_obj;
+
+ public:
+ PyObject_ptr() :_obj(0)
+ {
+ }
+
+ PyObject_ptr(const PyObject_ptr& item) : _obj(item._obj)
+ {
+ Py_XINCREF(_obj);
+ }
+
+ PyObject_ptr(PyObject *obj, bool initial_ref = true) :_obj(obj)
+ {
+ if (initial_ref) Py_XINCREF(_obj);
+ }
+
+ PyObject_ptr & operator=(const PyObject_ptr& item)
+ {
+ Py_XINCREF(item._obj);
+ Py_XDECREF(_obj);
+ _obj = item._obj;
+ return *this;
+ }
+
+ ~PyObject_ptr()
+ {
+ Py_XDECREF(_obj);
+ }
+
+ operator PyObject *() const
+ {
+ return _obj;
+ }
+
+ PyObject *operator->() const
+ {
+ return _obj;
+ }
+ };
+}
+
+
+namespace swig {
+ struct PyObject_var : PyObject_ptr {
+ PyObject_var(PyObject* obj = 0) : PyObject_ptr(obj, false) { }
+
+ PyObject_var & operator = (PyObject* obj)
+ {
+ Py_XDECREF(_obj);
+ _obj = obj;
+ return *this;
+ }
+ };
+}
+
+
+ #include "../system/Cast.h"
+ #include "../stroke/Module.h"
+ #include "../system/Precision.h"
+ #include "../system/Id.h"
+ #include "../geometry/VecMat.h"
+ #include "../geometry/Geom.h"
+ #include "../geometry/Noise.h"
+ #include "../scene_graph/Material.h"
+ #include "../winged_edge/Nature.h"
+ #include "../view_map/Interface0D.h"
+ #include "../view_map/Interface1D.h"
+ #include "../view_map/Functions0D.h"
+ #include "../view_map/Functions1D.h"
+ #include "../view_map/Silhouette.h"
+ #include "../view_map/ViewMap.h"
+ #include "../view_map/ViewMapIterators.h"
+ #include "../stroke/AdvancedFunctions0D.h"
+ #include "../stroke/AdvancedFunctions1D.h"
+ #include "../stroke/ChainingIterators.h"
+ #include "../stroke/ContextFunctions.h"
+ #include "../stroke/Predicates0D.h"
+ #include "../stroke/Predicates1D.h"
+ #include "../stroke/AdvancedPredicates1D.h"
+ #include "../stroke/StrokeShader.h"
+// #include "../stroke/Curve.h"
+ #include "../stroke/CurveIterators.h"
+ #include "../stroke/Stroke.h"
+ #include "../stroke/StrokeIterators.h"
+ #include "../stroke/BasicStrokeShaders.h"
+ #include "../stroke/AdvancedStrokeShaders.h"
+ #include "../stroke/Operators.h"
+ #include "../stroke/Canvas.h"
+
+
+#include <stdexcept>
+
+
+
+#if defined(__SUNPRO_CC) && defined(_RWSTD_VER)
+# define SWIG_STD_NOASSIGN_STL
+# define SWIG_STD_NOINSERT_TEMPLATE_STL
+# define SWIG_STD_NOITERATOR_TRAITS_STL
+#endif
+
+#if defined(__GNUC__)
+# if __GNUC__ == 2 && __GNUC_MINOR <= 96
+# define SWIG_STD_NOMODERN_STL
+# endif
+#endif
+
+
+
+
+#include <string>
+#include <stdexcept>
+
+
+#include <string>
+
+
+#include <iostream>
+
+
+namespace swig {
+ struct stop_iteration {
+ };
+
+ struct PySwigIterator {
+ private:
+ PyObject_ptr _seq;
+
+ protected:
+ PySwigIterator(PyObject *seq) : _seq(seq)
+ {
+ }
+
+ public:
+ virtual ~PySwigIterator() {}
+
+ // Access iterator method, required by Python
+ virtual PyObject *value() const = 0;
+
+ // Forward iterator method, required by Python
+ virtual PySwigIterator *incr(size_t n = 1) = 0;
+
+ // Backward iterator method, very common in C++, but not required in Python
+ virtual PySwigIterator *decr(size_t n = 1)
+ {
+ throw stop_iteration();
+ }
+
+ // Random access iterator methods, but not required in Python
+ virtual ptrdiff_t distance(const PySwigIterator &x) const
+ {
+ throw std::invalid_argument("operation not supported");
+ }
+
+ virtual bool equal (const PySwigIterator &x) const
+ {
+ throw std::invalid_argument("operation not supported");
+ }
+
+ // C++ common/needed methods
+ virtual PySwigIterator *copy() const = 0;
+
+ PyObject *next()
+ {
+ PyObject *obj = value();
+ incr();
+ return obj;
+ }
+
+ PyObject *previous()
+ {
+ decr();
+ return value();
+ }
+
+ PySwigIterator *advance(ptrdiff_t n)
+ {
+ return (n > 0) ? incr(n) : decr(-n);
+ }
+
+ bool operator == (const PySwigIterator& x) const
+ {
+ return equal(x);
+ }
+
+ bool operator != (const PySwigIterator& x) const
+ {
+ return ! operator==(x);
+ }
+
+ PySwigIterator& operator += (ptrdiff_t n)
+ {
+ return *advance(n);
+ }
+
+ PySwigIterator& operator -= (ptrdiff_t n)
+ {
+ return *advance(-n);
+ }
+
+ PySwigIterator* operator + (ptrdiff_t n) const
+ {
+ return copy()->advance(n);
+ }
+
+ PySwigIterator* operator - (ptrdiff_t n) const
+ {
+ return copy()->advance(-n);
+ }
+
+ ptrdiff_t operator - (const PySwigIterator& x) const
+ {
+ return x.distance(*this);
+ }
+
+ static swig_type_info* descriptor() {
+ static int init = 0;
+ static swig_type_info* desc = 0;
+ if (!init) {
+ desc = SWIG_TypeQuery("swig::PySwigIterator *");
+ init = 1;
+ }
+ return desc;
+ }
+ };
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_double (PyObject *obj, double *val)
+{
+ int res = SWIG_TypeError;
+ if (PyFloat_Check(obj)) {
+ if (val) *val = PyFloat_AsDouble(obj);
+ return SWIG_OK;
+ } else if (PyInt_Check(obj)) {
+ if (val) *val = PyInt_AsLong(obj);
+ return SWIG_OK;
+ } else if (PyLong_Check(obj)) {
+ double v = PyLong_AsDouble(obj);
+ if (!PyErr_Occurred()) {
+ if (val) *val = v;
+ return SWIG_OK;
+ } else {
+ PyErr_Clear();
+ }
+ }
+#ifdef SWIG_PYTHON_CAST_MODE
+ {
+ int dispatch = 0;
+ double d = PyFloat_AsDouble(obj);
+ if (!PyErr_Occurred()) {
+ if (val) *val = d;
+ return SWIG_AddCast(SWIG_OK);
+ } else {
+ PyErr_Clear();
+ }
+ if (!dispatch) {
+ long v = PyLong_AsLong(obj);
+ if (!PyErr_Occurred()) {
+ if (val) *val = v;
+ return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
+ } else {
+ PyErr_Clear();
+ }
+ }
+ }
+#endif
+ return res;
+}
+
+
+#include <float.h>
+
+
+#include <math.h>
+
+
+SWIGINTERNINLINE int
+SWIG_CanCastAsInteger(double *d, double min, double max) {
+ double x = *d;
+ if ((min <= x && x <= max)) {
+ double fx = floor(x);
+ double cx = ceil(x);
+ double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */
+ if ((errno == EDOM) || (errno == ERANGE)) {
+ errno = 0;
+ } else {
+ double summ, reps, diff;
+ if (rd < x) {
+ diff = x - rd;
+ } else if (rd > x) {
+ diff = rd - x;
+ } else {
+ return 1;
+ }
+ summ = rd + x;
+ reps = diff/summ;
+ if (reps < 8*DBL_EPSILON) {
+ *d = rd;
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
+{
+ if (PyInt_Check(obj)) {
+ long v = PyInt_AsLong(obj);
+ if (v >= 0) {
+ if (val) *val = v;
+ return SWIG_OK;
+ } else {
+ return SWIG_OverflowError;
+ }
+ } else if (PyLong_Check(obj)) {
+ unsigned long v = PyLong_AsUnsignedLong(obj);
+ if (!PyErr_Occurred()) {
+ if (val) *val = v;
+ return SWIG_OK;
+ } else {
+ PyErr_Clear();
+ }
+ }
+#ifdef SWIG_PYTHON_CAST_MODE
+ {
+ int dispatch = 0;
+ unsigned long v = PyLong_AsUnsignedLong(obj);
+ if (!PyErr_Occurred()) {
+ if (val) *val = v;
+ return SWIG_AddCast(SWIG_OK);
+ } else {
+ PyErr_Clear();
+ }
+ if (!dispatch) {
+ double d;
+ int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
+ if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
+ if (val) *val = (unsigned long)(d);
+ return res;
+ }
+ }
+ }
+#endif
+ return SWIG_TypeError;
+}
+
+
+SWIGINTERNINLINE int
+SWIG_AsVal_size_t (PyObject * obj, size_t *val)
+{
+ unsigned long v;
+ int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0);
+ if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
+ return res;
+}
+
+
+ #define SWIG_From_long PyInt_FromLong
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_ptrdiff_t (ptrdiff_t value)
+{
+ return SWIG_From_long (static_cast< long >(value));
+}
+
+
+SWIGINTERNINLINE PyObject*
+ SWIG_From_bool (bool value)
+{
+ return PyBool_FromLong(value ? 1 : 0);
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_long (PyObject *obj, long* val)
+{
+ if (PyInt_Check(obj)) {
+ if (val) *val = PyInt_AsLong(obj);
+ return SWIG_OK;
+ } else if (PyLong_Check(obj)) {
+ long v = PyLong_AsLong(obj);
+ if (!PyErr_Occurred()) {
+ if (val) *val = v;
+ return SWIG_OK;
+ } else {
+ PyErr_Clear();
+ }
+ }
+#ifdef SWIG_PYTHON_CAST_MODE
+ {
+ int dispatch = 0;
+ long v = PyInt_AsLong(obj);
+ if (!PyErr_Occurred()) {
+ if (val) *val = v;
+ return SWIG_AddCast(SWIG_OK);
+ } else {
+ PyErr_Clear();
+ }
+ if (!dispatch) {
+ double d;
+ int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
+ if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
+ if (val) *val = (long)(d);
+ return res;
+ }
+ }
+ }
+#endif
+ return SWIG_TypeError;
+}
+
+
+SWIGINTERNINLINE int
+SWIG_AsVal_ptrdiff_t (PyObject * obj, ptrdiff_t *val)
+{
+ long v;
+ int res = SWIG_AsVal_long (obj, val ? &v : 0);
+ if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v);
+ return res;
+}
+
+
+#include <stdexcept>
+
+
+#include <algorithm>
+
+
+#include <vector>
+
+
+#include <utility>
+
+
+#include <map>
+#include <algorithm>
+#include <stdexcept>
+
+
+namespace swig {
+ template <class Type>
+ struct noconst_traits {
+ typedef Type noconst_type;
+ };
+
+ template <class Type>
+ struct noconst_traits<const Type> {
+ typedef Type noconst_type;
+ };
+
+ /*
+ type categories
+ */
+ struct pointer_category { };
+ struct value_category { };
+
+ /*
+ General traits that provides type_name and type_info
+ */
+ template <class Type> struct traits { };
+
+ template <class Type>
+ inline const char* type_name() {
+ return traits<typename noconst_traits<Type >::noconst_type >::type_name();
+ }
+
+ template <class Type>
+ struct traits_info {
+ static swig_type_info *type_query(std::string name) {
+ name += " *";
+ return SWIG_TypeQuery(name.c_str());
+ }
+ static swig_type_info *type_info() {
+ static swig_type_info *info = type_query(type_name<Type>());
+ return info;
+ }
+ };
+
+ template <class Type>
+ inline swig_type_info *type_info() {
+ return traits_info<Type>::type_info();
+ }
+
+ /*
+ Partial specialization for pointers
+ */
+ template <class Type> struct traits <Type *> {
+ typedef pointer_category category;
+ static std::string make_ptr_name(const char* name) {
+ std::string ptrname = name;
+ ptrname += " *";
+ return ptrname;
+ }
+ static const char* type_name() {
+ static std::string name = make_ptr_name(swig::type_name<Type>());
+ return name.c_str();
+ }
+ };
+
+ template <class Type, class Category>
+ struct traits_as { };
+
+ template <class Type, class Category>
+ struct traits_check { };
+
+}
+
+
+namespace swig {
+ /*
+ Traits that provides the from method
+ */
+ template <class Type> struct traits_from_ptr {
+ static PyObject *from(Type *val, int owner = 0) {
+ return SWIG_NewPointerObj(val, type_info<Type>(), owner);
+ }
+ };
+
+ template <class Type> struct traits_from {
+ static PyObject *from(const Type& val) {
+ return traits_from_ptr<Type>::from(new Type(val), 1);
+ }
+ };
+
+ template <class Type> struct traits_from<Type *> {
+ static PyObject *from(Type* val) {
+ return traits_from_ptr<Type>::from(val, 0);
+ }
+ };
+
+ template <class Type> struct traits_from<const Type *> {
+ static PyObject *from(const Type* val) {
+ return traits_from_ptr<Type>::from(const_cast<Type*>(val), 0);
+ }
+ };
+
+
+ template <class Type>
+ inline PyObject *from(const Type& val) {
+ return traits_from<Type>::from(val);
+ }
+
+ template <class Type>
+ inline PyObject *from_ptr(Type* val, int owner) {
+ return traits_from_ptr<Type>::from(val, owner);
+ }
+
+ /*
+ Traits that provides the asval/as/check method
+ */
+ template <class Type>
+ struct traits_asptr {
+ static int asptr(PyObject *obj, Type **val) {
+ Type *p;
+ int res = (SWIG_ConvertPtr(obj, (void**)&p, type_info<Type>(), 0) == SWIG_OK) ? SWIG_OLDOBJ : 0;
+ if (SWIG_IsOK(res)) {
+ if (val) *val = p;
+ }
+ return res;
+ }
+ };
+
+ template <class Type>
+ inline int asptr(PyObject *obj, Type **vptr) {
+ return traits_asptr<Type>::asptr(obj, vptr);
+ }
+
+ template <class Type>
+ struct traits_asval {
+ static int asval(PyObject *obj, Type *val) {
+ if (val) {
+ Type *p = 0;
+ int res = traits_asptr<Type>::asptr(obj, &p);
+ if (!SWIG_IsOK(res)) return res;
+ if (p) {
+ typedef typename noconst_traits<Type>::noconst_type noconst_type;
+ *(const_cast<noconst_type*>(val)) = *p;
+ if (SWIG_IsNewObj(res)){
+ delete p;
+ res = SWIG_DelNewMask(res);
+ }
+ return res;
+ } else {
+ return SWIG_ERROR;
+ }
+ } else {
+ return traits_asptr<Type>::asptr(obj, (Type **)(0));
+ }
+ }
+ };
+
+ template <class Type> struct traits_asval<Type*> {
+ static int asval(PyObject *obj, Type **val) {
+ if (val) {
+ typedef typename noconst_traits<Type>::noconst_type noconst_type;
+ noconst_type *p = 0;
+ int res = traits_asptr<noconst_type>::asptr(obj, &p);
+ if (SWIG_IsOK(res)) {
+ *(const_cast<noconst_type**>(val)) = p;
+ }
+ return res;
+ } else {
+ return traits_asptr<Type>::asptr(obj, (Type **)(0));
+ }
+ }
+ };
+
+ template <class Type>
+ inline int asval(PyObject *obj, Type *val) {
+ return traits_asval<Type>::asval(obj, val);
+ }
+
+ template <class Type>
+ struct traits_as<Type, value_category> {
+ static Type as(PyObject *obj, bool throw_error) {
+ Type v;
+ int res = asval(obj, &v);
+ if (!obj || !SWIG_IsOK(res)) {
+ if (!PyErr_Occurred()) {
+ SWIG_Error(SWIG_TypeError, swig::type_name<Type>());
+ }
+ if (throw_error) throw std::invalid_argument("bad type");
+ }
+ return v;
+ }
+ };
+
+ template <class Type>
+ struct traits_as<Type, pointer_category> {
+ static Type as(PyObject *obj, bool throw_error) {
+ Type *v = 0;
+ int res = (obj ? traits_asptr<Type>::asptr(obj, &v) : SWIG_ERROR);
+ if (SWIG_IsOK(res) && v) {
+ if (SWIG_IsNewObj(res)) {
+ Type r(*v);
+ delete v;
+ return r;
+ } else {
+ return *v;
+ }
+ } else {
+ // Uninitialized return value, no Type() constructor required.
+ static Type *v_def = (Type*) malloc(sizeof(Type));
+ if (!PyErr_Occurred()) {
+ SWIG_Error(SWIG_TypeError, swig::type_name<Type>());
+ }
+ if (throw_error) throw std::invalid_argument("bad type");
+ memset(v_def,0,sizeof(Type));
+ return *v_def;
+ }
+ }
+ };
+
+ template <class Type>
+ struct traits_as<Type*, pointer_category> {
+ static Type* as(PyObject *obj, bool throw_error) {
+ Type *v = 0;
+ int res = (obj ? traits_asptr<Type>::asptr(obj, &v) : SWIG_ERROR);
+ if (SWIG_IsOK(res)) {
+ return v;
+ } else {
+ if (!PyErr_Occurred()) {
+ SWIG_Error(SWIG_TypeError, swig::type_name<Type>());
+ }
+ if (throw_error) throw std::invalid_argument("bad type");
+ return 0;
+ }
+ }
+ };
+
+ template <class Type>
+ inline Type as(PyObject *obj, bool te = false) {
+ return traits_as<Type, typename traits<Type>::category>::as(obj, te);
+ }
+
+ template <class Type>
+ struct traits_check<Type, value_category> {
+ static bool check(PyObject *obj) {
+ int res = obj ? asval(obj, (Type *)(0)) : SWIG_ERROR;
+ return SWIG_IsOK(res) ? true : false;
+ }
+ };
+
+ template <class Type>
+ struct traits_check<Type, pointer_category> {
+ static bool check(PyObject *obj) {
+ int res = obj ? asptr(obj, (Type **)(0)) : SWIG_ERROR;
+ return SWIG_IsOK(res) ? true : false;
+ }
+ };
+
+ template <class Type>
+ inline bool check(PyObject *obj) {
+ return traits_check<Type, typename traits<Type>::category>::check(obj);
+ }
+}
+
+
+#include <functional>
+
+namespace std {
+ template <>
+ struct less <PyObject *>: public binary_function<PyObject *, PyObject *, bool>
+ {
+ bool
+ operator()(PyObject * v, PyObject *w) const
+ {
+ bool res;
+ SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+ res = PyObject_Compare(v, w) < 0;
+ SWIG_PYTHON_THREAD_END_BLOCK;
+ return res;
+ }
+ };
+
+ template <>
+ struct less <swig::PyObject_ptr>: public binary_function<swig::PyObject_ptr, swig::PyObject_ptr, bool>
+ {
+ bool
+ operator()(const swig::PyObject_ptr& v, const swig::PyObject_ptr& w) const
+ {
+ return std::less<PyObject *>()(v, w);
+ }
+ };
+
+ template <>
+ struct less <swig::PyObject_var>: public binary_function<swig::PyObject_var, swig::PyObject_var, bool>
+ {
+ bool
+ operator()(const swig::PyObject_var& v, const swig::PyObject_var& w) const
+ {
+ return std::less<PyObject *>()(v, w);
+ }
+ };
+
+}
+
+namespace swig {
+ template <> struct traits<PyObject *> {
+ typedef value_category category;
+ static const char* type_name() { return "PyObject *"; }
+ };
+
+ template <> struct traits_asval<PyObject * > {
+ typedef PyObject * value_type;
+ static int asval(PyObject *obj, value_type *val) {
+ if (val) *val = obj;
+ return SWIG_OK;
+ }
+ };
+
+ template <>
+ struct traits_check<PyObject *, value_category> {
+ static bool check(PyObject *) {
+ return true;
+ }
+ };
+
+ template <> struct traits_from<PyObject *> {
+ typedef PyObject * value_type;
+ static PyObject *from(const value_type& val) {
+ Py_XINCREF(val);
+ return val;
+ }
+ };
+
+}
+
+namespace swig {
+ inline size_t
+ check_index(ptrdiff_t i, size_t size, bool insert = false) {
+ if ( i < 0 ) {
+ if ((size_t) (-i) <= size)
+ return (size_t) (i + size);
+ } else if ( (size_t) i < size ) {
+ return (size_t) i;
+ } else if (insert && ((size_t) i == size)) {
+ return size;
+ }
+
+ throw std::out_of_range("index out of range");
+ }
+
+ inline size_t
+ slice_index(ptrdiff_t i, size_t size) {
+ if ( i < 0 ) {
+ if ((size_t) (-i) <= size) {
+ return (size_t) (i + size);
+ } else {
+ throw std::out_of_range("index out of range");
+ }
+ } else {
+ return ( (size_t) i < size ) ? ((size_t) i) : size;
+ }
+ }
+
+ template <class Sequence, class Difference>
+ inline typename Sequence::iterator
+ getpos(Sequence* self, Difference i) {
+ typename Sequence::iterator pos = self->begin();
+ std::advance(pos, check_index(i,self->size()));
+ return pos;
+ }
+
+ template <class Sequence, class Difference>
+ inline typename Sequence::const_iterator
+ cgetpos(const Sequence* self, Difference i) {
+ typename Sequence::const_iterator pos = self->begin();
+ std::advance(pos, check_index(i,self->size()));
+ return pos;
+ }
+
+ template <class Sequence, class Difference>
+ inline Sequence*
+ getslice(const Sequence* self, Difference i, Difference j) {
+ typename Sequence::size_type size = self->size();
+ typename Sequence::size_type ii = swig::check_index(i, size);
+ typename Sequence::size_type jj = swig::slice_index(j, size);
+
+ if (jj > ii) {
+ typename Sequence::const_iterator vb = self->begin();
+ typename Sequence::const_iterator ve = self->begin();
+ std::advance(vb,ii);
+ std::advance(ve,jj);
+ return new Sequence(vb, ve);
+ } else {
+ return new Sequence();
+ }
+ }
+
+ template <class Sequence, class Difference, class InputSeq>
+ inline void
+ setslice(Sequence* self, Difference i, Difference j, const InputSeq& v) {
+ typename Sequence::size_type size = self->size();
+ typename Sequence::size_type ii = swig::check_index(i, size, true);
+ typename Sequence::size_type jj = swig::slice_index(j, size);
+ if (jj < ii) jj = ii;
+ size_t ssize = jj - ii;
+ if (ssize <= v.size()) {
+ typename Sequence::iterator sb = self->begin();
+ typename InputSeq::const_iterator vmid = v.begin();
+ std::advance(sb,ii);
+ std::advance(vmid, jj - ii);
+ self->insert(std::copy(v.begin(), vmid, sb), vmid, v.end());
+ } else {
+ typename Sequence::iterator sb = self->begin();
+ typename Sequence::iterator se = self->begin();
+ std::advance(sb,ii);
+ std::advance(se,jj);
+ self->erase(sb,se);
+ self->insert(sb, v.begin(), v.end());
+ }
+ }
+
+ template <class Sequence, class Difference>
+ inline void
+ delslice(Sequence* self, Difference i, Difference j) {
+ typename Sequence::size_type size = self->size();
+ typename Sequence::size_type ii = swig::check_index(i, size, true);
+ typename Sequence::size_type jj = swig::slice_index(j, size);
+ if (jj > ii) {
+ typename Sequence::iterator sb = self->begin();
+ typename Sequence::iterator se = self->begin();
+ std::advance(sb,ii);
+ std::advance(se,jj);
+ self->erase(sb,se);
+ }
+ }
+}
+
+
+#if !defined(SWIG_STD_NOITERATOR_TRAITS_STL)
+#include <iterator>
+#else
+namespace std {
+ template <class Iterator>
+ struct iterator_traits {
+ typedef ptrdiff_t difference_type;
+ typedef typename Iterator::value_type value_type;
+ };
+
+#if defined(__SUNPRO_CC) && defined(_RWSTD_VER)
+ template <class Iterator, class Category,class T, class Reference, class Pointer, class Distance>
+ struct iterator_traits<__reverse_bi_iterator<Iterator,Category,T,Reference,Pointer,Distance> > {
+ typedef Distance difference_type;
+ typedef T value_type;
+ };
+#endif
+
+ template <class T>
+ struct iterator_traits<T*> {
+ typedef T value_type;
+ typedef ptrdiff_t difference_type;
+ };
+
+ template<typename _InputIterator>
+ inline typename iterator_traits<_InputIterator>::difference_type
+ distance(_InputIterator __first, _InputIterator __last)
+ {
+ typename iterator_traits<_InputIterator>::difference_type __n = 0;
+ while (__first != __last) {
+ ++__first; ++__n;
+ }
+ return __n;
+ }
+
+}
+#endif
+
+
+namespace swig {
+ template<typename OutIterator>
+ class PySwigIterator_T : public PySwigIterator
+ {
+ public:
+ typedef OutIterator out_iterator;
+ typedef typename std::iterator_traits<out_iterator>::value_type value_type;
+ typedef PySwigIterator_T<out_iterator> self_type;
+
+ PySwigIterator_T(out_iterator curr, PyObject *seq)
+ : PySwigIterator(seq), current(curr)
+ {
+ }
+
+ const out_iterator& get_current() const
+ {
+ return current;
+ }
+
+
+ bool equal (const PySwigIterator &iter) const
+ {
+ const self_type *iters = dynamic_cast<const self_type *>(&iter);
+ if (iters) {
+ return (current == iters->get_current());
+ } else {
+ throw std::invalid_argument("bad iterator type");
+ }
+ }
+
+ ptrdiff_t distance(const PySwigIterator &iter) const
+ {
+ const self_type *iters = dynamic_cast<const self_type *>(&iter);
+ if (iters) {
+ return std::distance(current, iters->get_current());
+ } else {
+ throw std::invalid_argument("bad iterator type");
+ }
+ }
+
+ protected:
+ out_iterator current;
+ };
+
+ template <class ValueType>
+ struct from_oper
+ {
+ typedef const ValueType& argument_type;
+ typedef PyObject *result_type;
+ result_type operator()(argument_type v) const
+ {
+ return swig::from(v);
+ }
+ };
+
+ template<typename OutIterator,
+ typename ValueType = typename std::iterator_traits<OutIterator>::value_type,
+ typename FromOper = from_oper<ValueType> >
+ class PySwigIteratorOpen_T : public PySwigIterator_T<OutIterator>
+ {
+ public:
+ FromOper from;
+ typedef OutIterator out_iterator;
+ typedef ValueType value_type;
+ typedef PySwigIterator_T<out_iterator> base;
+ typedef PySwigIteratorOpen_T<OutIterator, ValueType, FromOper> self_type;
+
+ PySwigIteratorOpen_T(out_iterator curr, PyObject *seq)
+ : PySwigIterator_T<OutIterator>(curr, seq)
+ {
+ }
+
+ PyObject *value() const {
+ return from(static_cast<const value_type&>(*(base::current)));
+ }
+
+ PySwigIterator *copy() const
+ {
+ return new self_type(*this);
+ }
+
+ PySwigIterator *incr(size_t n = 1)
+ {
+ while (n--) {
+ ++base::current;
+ }
+ return this;
+ }
+
+ PySwigIterator *decr(size_t n = 1)
+ {
+ while (n--) {
+ --base::current;
+ }
+ return this;
+ }
+ };
+
+ template<typename OutIterator,
+ typename ValueType = typename std::iterator_traits<OutIterator>::value_type,
+ typename FromOper = from_oper<ValueType> >
+ class PySwigIteratorClosed_T : public PySwigIterator_T<OutIterator>
+ {
+ public:
+ FromOper from;
+ typedef OutIterator out_iterator;
+ typedef ValueType value_type;
+ typedef PySwigIterator_T<out_iterator> base;
+ typedef PySwigIteratorClosed_T<OutIterator, ValueType, FromOper> self_type;
+
+ PySwigIteratorClosed_T(out_iterator curr, out_iterator first, out_iterator last, PyObject *seq)
+ : PySwigIterator_T<OutIterator>(curr, seq), begin(first), end(last)
+ {
+ }
+
+ PyObject *value() const {
+ if (base::current == end) {
+ throw stop_iteration();
+ } else {
+ return from(static_cast<const value_type&>(*(base::current)));
+ }
+ }
+
+ PySwigIterator *copy() const
+ {
+ return new self_type(*this);
+ }
+
+ PySwigIterator *incr(size_t n = 1)
+ {
+ while (n--) {
+ if (base::current == end) {
+ throw stop_iteration();
+ } else {
+ ++base::current;
+ }
+ }
+ return this;
+ }
+
+ PySwigIterator *decr(size_t n = 1)
+ {
+ while (n--) {
+ if (base::current == begin) {
+ throw stop_iteration();
+ } else {
+ --base::current;
+ }
+ }
+ return this;
+ }
+
+ private:
+ out_iterator begin;
+ out_iterator end;
+ };
+
+ template<typename OutIter>
+ inline PySwigIterator*
+ make_output_iterator(const OutIter& current, const OutIter& begin,const OutIter& end, PyObject *seq = 0)
+ {
+ return new PySwigIteratorClosed_T<OutIter>(current, begin, end, seq);
+ }
+
+ template<typename OutIter>
+ inline PySwigIterator*
+ make_output_iterator(const OutIter& current, PyObject *seq = 0)
+ {
+ return new PySwigIteratorOpen_T<OutIter>(current, seq);
+ }
+}
+
+
+namespace swig
+{
+ template <class T>
+ struct PySequence_Ref
+ {
+ PySequence_Ref(PyObject* seq, int index)
+ : _seq(seq), _index(index)
+ {
+ }
+
+ operator T () const
+ {
+ swig::PyObject_var item = PySequence_GetItem(_seq, _index);
+ try {
+ return swig::as<T>(item, true);
+ } catch (std::exception& e) {
+ char msg[1024];
+ sprintf(msg, "in sequence element %d ", _index);
+ if (!PyErr_Occurred()) {
+ SWIG_Error(SWIG_TypeError, swig::type_name<T>());
+ }
+ SWIG_Python_AddErrorMsg(msg);
+ SWIG_Python_AddErrorMsg(e.what());
+ throw;
+ }
+ }
+
+ PySequence_Ref& operator=(const T& v)
+ {
+ PySequence_SetItem(_seq, _index, swig::from<T>(v));
+ return *this;
+ }
+
+ private:
+ PyObject* _seq;
+ int _index;
+ };
+
+ template <class T>
+ struct PySequence_ArrowProxy
+ {
+ PySequence_ArrowProxy(const T& x): m_value(x) {}
+ const T* operator->() const { return &m_value; }
+ operator const T*() const { return &m_value; }
+ T m_value;
+ };
+
+ template <class T, class Reference >
+ struct PySequence_InputIterator
+ {
+ typedef PySequence_InputIterator<T, Reference > self;
+
+ typedef std::random_access_iterator_tag iterator_category;
+ typedef Reference reference;
+ typedef T value_type;
+ typedef T* pointer;
+ typedef int difference_type;
+
+ PySequence_InputIterator()
+ {
+ }
+
+ PySequence_InputIterator(PyObject* seq, int index)
+ : _seq(seq), _index(index)
+ {
+ }
+
+ reference operator*() const
+ {
+ return reference(_seq, _index);
+ }
+
+ PySequence_ArrowProxy<T>
+ operator->() const {
+ return PySequence_ArrowProxy<T>(operator*());
+ }
+
+ bool operator==(const self& ri) const
+ {
+ return (_index == ri._index) && (_seq == ri._seq);
+ }
+
+ bool operator!=(const self& ri) const
+ {
+ return !(operator==(ri));
+ }
+
+ self& operator ++ ()
+ {
+ ++_index;
+ return *this;
+ }
+
+ self& operator -- ()
+ {
+ --_index;
+ return *this;
+ }
+
+ self& operator += (difference_type n)
+ {
+ _index += n;
+ return *this;
+ }
+
+ self operator +(difference_type n) const
+ {
+ return self(_seq, _index + n);
+ }
+
+ self& operator -= (difference_type n)
+ {
+ _index -= n;
+ return *this;
+ }
+
+ self operator -(difference_type n) const
+ {
+ return self(_seq, _index - n);
+ }
+
+ difference_type operator - (const self& ri) const
+ {
+ return _index - ri._index;
+ }
+
+ bool operator < (const self& ri) const
+ {
+ return _index < ri._index;
+ }
+
+ reference
+ operator[](difference_type n) const
+ {
+ return reference(_seq, _index + n);
+ }
+
+ private:
+ PyObject* _seq;
+ difference_type _index;
+ };
+
+ template <class T>
+ struct PySequence_Cont
+ {
+ typedef PySequence_Ref<T> reference;
+ typedef const PySequence_Ref<T> const_reference;
+ typedef T value_type;
+ typedef T* pointer;
+ typedef int difference_type;
+ typedef int size_type;
+ typedef const pointer const_pointer;
+ typedef PySequence_InputIterator<T, reference> iterator;
+ typedef PySequence_InputIterator<T, const_reference> const_iterator;
+
+ PySequence_Cont(PyObject* seq) : _seq(0)
+ {
+ if (!PySequence_Check(seq)) {
+ throw std::invalid_argument("a sequence is expected");
+ }
+ _seq = seq;
+ Py_INCREF(_seq);
+ }
+
+ ~PySequence_Cont()
+ {
+ if (_seq) Py_DECREF(_seq);
+ }
+
+ size_type size() const
+ {
+ return PySequence_Size(_seq);
+ }
+
+ bool empty() const
+ {
+ return size() == 0;
+ }
+
+ iterator begin()
+ {
+ return iterator(_seq, 0);
+ }
+
+ const_iterator begin() const
+ {
+ return const_iterator(_seq, 0);
+ }
+
+ iterator end()
+ {
+ return iterator(_seq, size());
+ }
+
+ const_iterator end() const
+ {
+ return const_iterator(_seq, size());
+ }
+
+ reference operator[](difference_type n)
+ {
+ return reference(_seq, n);
+ }
+
+ const_reference operator[](difference_type n) const
+ {
+ return const_reference(_seq, n);
+ }
+
+ bool check(bool set_err = true) const
+ {
+ int s = size();
+ for (int i = 0; i < s; ++i) {
+ swig::PyObject_var item = PySequence_GetItem(_seq, i);
+ if (!swig::check<value_type>(item)) {
+ if (set_err) {
+ char msg[1024];
+ sprintf(msg, "in sequence element %d", i);
+ SWIG_Error(SWIG_RuntimeError, msg);
+ }
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private:
+ PyObject* _seq;
+ };
+
+}
+
+
+#include <limits.h>
+#ifndef LLONG_MIN
+# define LLONG_MIN LONG_LONG_MIN
+#endif
+#ifndef LLONG_MAX
+# define LLONG_MAX LONG_LONG_MAX
+#endif
+#ifndef ULLONG_MAX
+# define ULLONG_MAX ULONG_LONG_MAX
+#endif
+
+
+SWIGINTERN int
+SWIG_AsVal_int (PyObject * obj, int *val)
+{
+ long v;
+ int res = SWIG_AsVal_long (obj, &v);
+ if (SWIG_IsOK(res)) {
+ if ((v < INT_MIN || v > INT_MAX)) {
+ return SWIG_OverflowError;
+ } else {
+ if (val) *val = static_cast< int >(v);
+ }
+ }
+ return res;
+}
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_int (int value)
+{
+ return SWIG_From_long (value);
+}
+
+
+namespace swig {
+ template <> struct traits<int > {
+ typedef value_category category;
+ static const char* type_name() { return"int"; }
+ };
+ template <> struct traits_asval<int > {
+ typedef int value_type;
+ static int asval(PyObject *obj, value_type *val) {
+ return SWIG_AsVal_int (obj, val);
+ }
+ };
+ template <> struct traits_from<int > {
+ typedef int value_type;
+ static PyObject *from(const value_type& val) {
+ return SWIG_From_int (val);
+ }
+ };
+}
+
+
+namespace swig {
+ template <class PySeq, class Seq>
+ inline void
+ assign(const PySeq& pyseq, Seq* seq) {
+#ifdef SWIG_STD_NOASSIGN_STL
+ typedef typename PySeq::value_type value_type;
+ typename PySeq::const_iterator it = pyseq.begin();
+ for (;it != pyseq.end(); ++it) {
+ seq->insert(seq->end(),(value_type)(*it));
+ }
+#else
+ seq->assign(pyseq.begin(), pyseq.end());
+#endif
+ }
+
+ template <class Seq, class T = typename Seq::value_type >
+ struct traits_asptr_stdseq {
+ typedef Seq sequence;
+ typedef T value_type;
+
+ static int asptr(PyObject *obj, sequence **seq) {
+ if (PySequence_Check(obj)) {
+ try {
+ PySequence_Cont<value_type> pyseq(obj);
+ if (seq) {
+ sequence *pseq = new sequence();
+ assign(pyseq, pseq);
+ *seq = pseq;
+ return SWIG_NEWOBJ;
+ } else {
+ return pyseq.check() ? SWIG_OK : SWIG_ERROR;
+ }
+ } catch (std::exception& e) {
+ if (seq) {
+ if (!PyErr_Occurred()) {
+ PyErr_SetString(PyExc_TypeError, e.what());
+ }
+ }
+ return SWIG_ERROR;
+ }
+ } else {
+ sequence *p;
+ if (SWIG_ConvertPtr(obj,(void**)&p,
+ swig::type_info<sequence>(),0) == SWIG_OK) {
+ if (seq) *seq = p;
+ return SWIG_OLDOBJ;
+ }
+ }
+ return SWIG_ERROR;
+ }
+ };
+
+ template <class Seq, class T = typename Seq::value_type >
+ struct traits_from_stdseq {
+ typedef Seq sequence;
+ typedef T value_type;
+ typedef typename Seq::size_type size_type;
+ typedef typename sequence::const_iterator const_iterator;
+
+ static PyObject *from(const sequence& seq) {
+
+
+
+
+
+
+ size_type size = seq.size();
+ if (size <= (size_type)INT_MAX) {
+ PyObject *obj = PyTuple_New((int)size);
+ int i = 0;
+ for (const_iterator it = seq.begin();
+ it != seq.end(); ++it, ++i) {
+ PyTuple_SetItem(obj,i,swig::from<value_type>(*it));
+ }
+ return obj;
+ } else {
+ PyErr_SetString(PyExc_OverflowError,"sequence size not valid in python");
+ return NULL;
+ }
+ }
+ };
+}
+
+
+ namespace swig {
+ template <class T>
+ struct traits_asptr<std::vector<T> > {
+ static int asptr(PyObject *obj, std::vector<T> **vec) {
+ return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec);
+ }
+ };
+
+ template <class T>
+ struct traits_from<std::vector<T> > {
+ static PyObject *from(const std::vector<T>& vec) {
+ return traits_from_stdseq<std::vector<T> >::from(vec);
+ }
+ };
+ }
+
+
+ namespace swig {
+ template <> struct traits<std::vector<int, std::allocator<int > > > {
+ typedef pointer_category category;
+ static const char* type_name() {
+ return "std::vector<" "int" "," "std::allocator<int >" " >";
+ }
+ };
+ }
+
+SWIGINTERN swig::PySwigIterator *std_vector_Sl_int_Sg__iterator(std::vector<int > *self,PyObject **PYTHON_SELF){
+ return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
+ }
+SWIGINTERN bool std_vector_Sl_int_Sg____nonzero__(std::vector<int > const *self){
+ return !(self->empty());
+ }
+SWIGINTERN std::vector<int >::size_type std_vector_Sl_int_Sg____len__(std::vector<int > const *self){
+ return self->size();
+ }
+
+SWIGINTERNINLINE PyObject*
+SWIG_From_unsigned_SS_long (unsigned long value)
+{
+ return (value > LONG_MAX) ?
+ PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value));
+}
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_size_t (size_t value)
+{
+ return SWIG_From_unsigned_SS_long (static_cast< unsigned long >(value));
+}
+
+SWIGINTERN std::vector<int >::value_type std_vector_Sl_int_Sg__pop(std::vector<int > *self){
+ if (self->size() == 0)
+ throw std::out_of_range("pop from empty container");
+ std::vector<int,std::allocator<int > >::value_type x = self->back();
+ self->pop_back();
+ return x;
+ }
+SWIGINTERN std::vector<int,std::allocator<int > > *std_vector_Sl_int_Sg____getslice__(std::vector<int > *self,std::vector<int >::difference_type i,std::vector<int >::difference_type j){
+ return swig::getslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_int_Sg____setslice__(std::vector<int > *self,std::vector<int >::difference_type i,std::vector<int >::difference_type j,std::vector<int,std::allocator<int > > const &v){
+ swig::setslice(self, i, j, v);
+ }
+SWIGINTERN void std_vector_Sl_int_Sg____delslice__(std::vector<int > *self,std::vector<int >::difference_type i,std::vector<int >::difference_type j){
+ swig::delslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_int_Sg____delitem__(std::vector<int > *self,std::vector<int >::difference_type i){
+ self->erase(swig::getpos(self,i));
+ }
+SWIGINTERN std::vector<int >::value_type const &std_vector_Sl_int_Sg____getitem__(std::vector<int > const *self,std::vector<int >::difference_type i){
+ return *(swig::cgetpos(self, i));
+ }
+SWIGINTERN void std_vector_Sl_int_Sg____setitem__(std::vector<int > *self,std::vector<int >::difference_type i,std::vector<int >::value_type const &x){
+ *(swig::getpos(self,i)) = x;
+ }
+SWIGINTERN void std_vector_Sl_int_Sg__append(std::vector<int > *self,std::vector<int >::value_type const &x){
+ self->push_back(x);
+ }
+
+SWIGINTERN int
+SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
+{
+ unsigned long v;
+ int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
+ if (SWIG_IsOK(res)) {
+ if ((v > UINT_MAX)) {
+ return SWIG_OverflowError;
+ } else {
+ if (val) *val = static_cast< unsigned int >(v);
+ }
+ }
+ return res;
+}
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_unsigned_SS_int (unsigned int value)
+{
+ return SWIG_From_unsigned_SS_long (value);
+}
+
+
+ #define SWIG_From_double PyFloat_FromDouble
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_float (float value)
+{
+ return SWIG_From_double (value);
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_float (PyObject * obj, float *val)
+{
+ double v;
+ int res = SWIG_AsVal_double (obj, &v);
+ if (SWIG_IsOK(res)) {
+ if ((v < -FLT_MAX || v > FLT_MAX)) {
+ return SWIG_OverflowError;
+ } else {
+ if (val) *val = static_cast< float >(v);
+ }
+ }
+ return res;
+}
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_unsigned_SS_short (unsigned short value)
+{
+ return SWIG_From_unsigned_SS_long (value);
+}
+
+
+SWIGINTERN swig_type_info*
+SWIG_pchar_descriptor(void)
+{
+ static int init = 0;
+ static swig_type_info* info = 0;
+ if (!init) {
+ info = SWIG_TypeQuery("_p_char");
+ init = 1;
+ }
+ return info;
+}
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_FromCharPtrAndSize(const char* carray, size_t size)
+{
+ if (carray) {
+ if (size > INT_MAX) {
+ swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
+ return pchar_descriptor ?
+ SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
+ } else {
+ return PyString_FromStringAndSize(carray, static_cast< int >(size));
+ }
+ } else {
+ return SWIG_Py_Void();
+ }
+}
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_std_string (const std::string& s)
+{
+ if (s.size()) {
+ return SWIG_FromCharPtrAndSize(s.data(), s.size());
+ } else {
+ return SWIG_FromCharPtrAndSize(s.c_str(), 0);
+ }
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_unsigned_SS_short (PyObject * obj, unsigned short *val)
+{
+ unsigned long v;
+ int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
+ if (SWIG_IsOK(res)) {
+ if ((v > USHRT_MAX)) {
+ return SWIG_OverflowError;
+ } else {
+ if (val) *val = static_cast< unsigned short >(v);
+ }
+ }
+ return res;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_bool (PyObject *obj, bool *val)
+{
+ if (obj == Py_True) {
+ if (val) *val = true;
+ return SWIG_OK;
+ } else if (obj == Py_False) {
+ if (val) *val = false;
+ return SWIG_OK;
+ } else {
+ long v = 0;
+ int res = SWIG_AddCast(SWIG_AsVal_long (obj, val ? &v : 0));
+ if (SWIG_IsOK(res) && val) *val = v ? true : false;
+ return res;
+ }
+}
+
+
+ namespace swig {
+ template <> struct traits<ViewShape > {
+ typedef pointer_category category;
+ static const char* type_name() { return"ViewShape"; }
+ };
+ }
+
+
+ namespace swig {
+ template <> struct traits<std::vector<ViewShape*, std::allocator<ViewShape * > > > {
+ typedef value_category category;
+ static const char* type_name() {
+ return "std::vector<" "ViewShape" " *," "std::allocator<ViewShape * >" " >";
+ }
+ };
+ }
+
+SWIGINTERN swig::PySwigIterator *std_vector_Sl_ViewShape_Sm__Sg__iterator(std::vector<ViewShape * > *self,PyObject **PYTHON_SELF){
+ return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
+ }
+SWIGINTERN bool std_vector_Sl_ViewShape_Sm__Sg____nonzero__(std::vector<ViewShape * > const *self){
+ return !(self->empty());
+ }
+SWIGINTERN std::vector<ViewShape * >::size_type std_vector_Sl_ViewShape_Sm__Sg____len__(std::vector<ViewShape * > const *self){
+ return self->size();
+ }
+SWIGINTERN std::vector<ViewShape * >::value_type std_vector_Sl_ViewShape_Sm__Sg__pop(std::vector<ViewShape * > *self){
+ if (self->size() == 0)
+ throw std::out_of_range("pop from empty container");
+ std::vector<ViewShape*,std::allocator<ViewShape * > >::value_type x = self->back();
+ self->pop_back();
+ return x;
+ }
+SWIGINTERN std::vector<ViewShape *,std::allocator<ViewShape * > > *std_vector_Sl_ViewShape_Sm__Sg____getslice__(std::vector<ViewShape * > *self,std::vector<ViewShape * >::difference_type i,std::vector<ViewShape * >::difference_type j){
+ return swig::getslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_ViewShape_Sm__Sg____setslice__(std::vector<ViewShape * > *self,std::vector<ViewShape * >::difference_type i,std::vector<ViewShape * >::difference_type j,std::vector<ViewShape *,std::allocator<ViewShape * > > const &v){
+ swig::setslice(self, i, j, v);
+ }
+SWIGINTERN void std_vector_Sl_ViewShape_Sm__Sg____delslice__(std::vector<ViewShape * > *self,std::vector<ViewShape * >::difference_type i,std::vector<ViewShape * >::difference_type j){
+ swig::delslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_ViewShape_Sm__Sg____delitem__(std::vector<ViewShape * > *self,std::vector<ViewShape * >::difference_type i){
+ self->erase(swig::getpos(self,i));
+ }
+SWIGINTERN std::vector<ViewShape * >::value_type std_vector_Sl_ViewShape_Sm__Sg____getitem__(std::vector<ViewShape * > *self,std::vector<ViewShape * >::difference_type i){
+ return *(swig::cgetpos(self, i));
+ }
+SWIGINTERN void std_vector_Sl_ViewShape_Sm__Sg____setitem__(std::vector<ViewShape * > *self,std::vector<ViewShape * >::difference_type i,std::vector<ViewShape * >::value_type x){
+ *(swig::getpos(self,i)) = x;
+ }
+SWIGINTERN void std_vector_Sl_ViewShape_Sm__Sg__append(std::vector<ViewShape * > *self,std::vector<ViewShape * >::value_type x){
+ self->push_back(x);
+ }
+
+ namespace swig {
+ template <> struct traits<ViewEdge > {
+ typedef pointer_category category;
+ static const char* type_name() { return"ViewEdge"; }
+ };
+ }
+
+
+ namespace swig {
+ template <> struct traits<std::vector<ViewEdge*, std::allocator<ViewEdge * > > > {
+ typedef value_category category;
+ static const char* type_name() {
+ return "std::vector<" "ViewEdge" " *," "std::allocator<ViewEdge * >" " >";
+ }
+ };
+ }
+
+SWIGINTERN swig::PySwigIterator *std_vector_Sl_ViewEdge_Sm__Sg__iterator(std::vector<ViewEdge * > *self,PyObject **PYTHON_SELF){
+ return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
+ }
+SWIGINTERN bool std_vector_Sl_ViewEdge_Sm__Sg____nonzero__(std::vector<ViewEdge * > const *self){
+ return !(self->empty());
+ }
+SWIGINTERN std::vector<ViewEdge * >::size_type std_vector_Sl_ViewEdge_Sm__Sg____len__(std::vector<ViewEdge * > const *self){
+ return self->size();
+ }
+SWIGINTERN std::vector<ViewEdge * >::value_type std_vector_Sl_ViewEdge_Sm__Sg__pop(std::vector<ViewEdge * > *self){
+ if (self->size() == 0)
+ throw std::out_of_range("pop from empty container");
+ std::vector<ViewEdge*,std::allocator<ViewEdge * > >::value_type x = self->back();
+ self->pop_back();
+ return x;
+ }
+SWIGINTERN std::vector<ViewEdge *,std::allocator<ViewEdge * > > *std_vector_Sl_ViewEdge_Sm__Sg____getslice__(std::vector<ViewEdge * > *self,std::vector<ViewEdge * >::difference_type i,std::vector<ViewEdge * >::difference_type j){
+ return swig::getslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_ViewEdge_Sm__Sg____setslice__(std::vector<ViewEdge * > *self,std::vector<ViewEdge * >::difference_type i,std::vector<ViewEdge * >::difference_type j,std::vector<ViewEdge *,std::allocator<ViewEdge * > > const &v){
+ swig::setslice(self, i, j, v);
+ }
+SWIGINTERN void std_vector_Sl_ViewEdge_Sm__Sg____delslice__(std::vector<ViewEdge * > *self,std::vector<ViewEdge * >::difference_type i,std::vector<ViewEdge * >::difference_type j){
+ swig::delslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_ViewEdge_Sm__Sg____delitem__(std::vector<ViewEdge * > *self,std::vector<ViewEdge * >::difference_type i){
+ self->erase(swig::getpos(self,i));
+ }
+SWIGINTERN std::vector<ViewEdge * >::value_type std_vector_Sl_ViewEdge_Sm__Sg____getitem__(std::vector<ViewEdge * > *self,std::vector<ViewEdge * >::difference_type i){
+ return *(swig::cgetpos(self, i));
+ }
+SWIGINTERN void std_vector_Sl_ViewEdge_Sm__Sg____setitem__(std::vector<ViewEdge * > *self,std::vector<ViewEdge * >::difference_type i,std::vector<ViewEdge * >::value_type x){
+ *(swig::getpos(self,i)) = x;
+ }
+SWIGINTERN void std_vector_Sl_ViewEdge_Sm__Sg__append(std::vector<ViewEdge * > *self,std::vector<ViewEdge * >::value_type x){
+ self->push_back(x);
+ }
+
+ namespace swig {
+ template <> struct traits<FEdge > {
+ typedef pointer_category category;
+ static const char* type_name() { return"FEdge"; }
+ };
+ }
+
+
+ namespace swig {
+ template <> struct traits<std::vector<FEdge*, std::allocator<FEdge * > > > {
+ typedef value_category category;
+ static const char* type_name() {
+ return "std::vector<" "FEdge" " *," "std::allocator<FEdge * >" " >";
+ }
+ };
+ }
+
+SWIGINTERN swig::PySwigIterator *std_vector_Sl_FEdge_Sm__Sg__iterator(std::vector<FEdge * > *self,PyObject **PYTHON_SELF){
+ return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
+ }
+SWIGINTERN bool std_vector_Sl_FEdge_Sm__Sg____nonzero__(std::vector<FEdge * > const *self){
+ return !(self->empty());
+ }
+SWIGINTERN std::vector<FEdge * >::size_type std_vector_Sl_FEdge_Sm__Sg____len__(std::vector<FEdge * > const *self){
+ return self->size();
+ }
+SWIGINTERN std::vector<FEdge * >::value_type std_vector_Sl_FEdge_Sm__Sg__pop(std::vector<FEdge * > *self){
+ if (self->size() == 0)
+ throw std::out_of_range("pop from empty container");
+ std::vector<FEdge*,std::allocator<FEdge * > >::value_type x = self->back();
+ self->pop_back();
+ return x;
+ }
+SWIGINTERN std::vector<FEdge *,std::allocator<FEdge * > > *std_vector_Sl_FEdge_Sm__Sg____getslice__(std::vector<FEdge * > *self,std::vector<FEdge * >::difference_type i,std::vector<FEdge * >::difference_type j){
+ return swig::getslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_FEdge_Sm__Sg____setslice__(std::vector<FEdge * > *self,std::vector<FEdge * >::difference_type i,std::vector<FEdge * >::difference_type j,std::vector<FEdge *,std::allocator<FEdge * > > const &v){
+ swig::setslice(self, i, j, v);
+ }
+SWIGINTERN void std_vector_Sl_FEdge_Sm__Sg____delslice__(std::vector<FEdge * > *self,std::vector<FEdge * >::difference_type i,std::vector<FEdge * >::difference_type j){
+ swig::delslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_FEdge_Sm__Sg____delitem__(std::vector<FEdge * > *self,std::vector<FEdge * >::difference_type i){
+ self->erase(swig::getpos(self,i));
+ }
+SWIGINTERN std::vector<FEdge * >::value_type std_vector_Sl_FEdge_Sm__Sg____getitem__(std::vector<FEdge * > *self,std::vector<FEdge * >::difference_type i){
+ return *(swig::cgetpos(self, i));
+ }
+SWIGINTERN void std_vector_Sl_FEdge_Sm__Sg____setitem__(std::vector<FEdge * > *self,std::vector<FEdge * >::difference_type i,std::vector<FEdge * >::value_type x){
+ *(swig::getpos(self,i)) = x;
+ }
+SWIGINTERN void std_vector_Sl_FEdge_Sm__Sg__append(std::vector<FEdge * > *self,std::vector<FEdge * >::value_type x){
+ self->push_back(x);
+ }
+
+ namespace swig {
+ template <> struct traits<ViewVertex > {
+ typedef pointer_category category;
+ static const char* type_name() { return"ViewVertex"; }
+ };
+ }
+
+
+ namespace swig {
+ template <> struct traits<std::vector<ViewVertex*, std::allocator<ViewVertex * > > > {
+ typedef value_category category;
+ static const char* type_name() {
+ return "std::vector<" "ViewVertex" " *," "std::allocator<ViewVertex * >" " >";
+ }
+ };
+ }
+
+SWIGINTERN swig::PySwigIterator *std_vector_Sl_ViewVertex_Sm__Sg__iterator(std::vector<ViewVertex * > *self,PyObject **PYTHON_SELF){
+ return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
+ }
+SWIGINTERN bool std_vector_Sl_ViewVertex_Sm__Sg____nonzero__(std::vector<ViewVertex * > const *self){
+ return !(self->empty());
+ }
+SWIGINTERN std::vector<ViewVertex * >::size_type std_vector_Sl_ViewVertex_Sm__Sg____len__(std::vector<ViewVertex * > const *self){
+ return self->size();
+ }
+SWIGINTERN std::vector<ViewVertex * >::value_type std_vector_Sl_ViewVertex_Sm__Sg__pop(std::vector<ViewVertex * > *self){
+ if (self->size() == 0)
+ throw std::out_of_range("pop from empty container");
+ std::vector<ViewVertex*,std::allocator<ViewVertex * > >::value_type x = self->back();
+ self->pop_back();
+ return x;
+ }
+SWIGINTERN std::vector<ViewVertex *,std::allocator<ViewVertex * > > *std_vector_Sl_ViewVertex_Sm__Sg____getslice__(std::vector<ViewVertex * > *self,std::vector<ViewVertex * >::difference_type i,std::vector<ViewVertex * >::difference_type j){
+ return swig::getslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_ViewVertex_Sm__Sg____setslice__(std::vector<ViewVertex * > *self,std::vector<ViewVertex * >::difference_type i,std::vector<ViewVertex * >::difference_type j,std::vector<ViewVertex *,std::allocator<ViewVertex * > > const &v){
+ swig::setslice(self, i, j, v);
+ }
+SWIGINTERN void std_vector_Sl_ViewVertex_Sm__Sg____delslice__(std::vector<ViewVertex * > *self,std::vector<ViewVertex * >::difference_type i,std::vector<ViewVertex * >::difference_type j){
+ swig::delslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_ViewVertex_Sm__Sg____delitem__(std::vector<ViewVertex * > *self,std::vector<ViewVertex * >::difference_type i){
+ self->erase(swig::getpos(self,i));
+ }
+SWIGINTERN std::vector<ViewVertex * >::value_type std_vector_Sl_ViewVertex_Sm__Sg____getitem__(std::vector<ViewVertex * > *self,std::vector<ViewVertex * >::difference_type i){
+ return *(swig::cgetpos(self, i));
+ }
+SWIGINTERN void std_vector_Sl_ViewVertex_Sm__Sg____setitem__(std::vector<ViewVertex * > *self,std::vector<ViewVertex * >::difference_type i,std::vector<ViewVertex * >::value_type x){
+ *(swig::getpos(self,i)) = x;
+ }
+SWIGINTERN void std_vector_Sl_ViewVertex_Sm__Sg__append(std::vector<ViewVertex * > *self,std::vector<ViewVertex * >::value_type x){
+ self->push_back(x);
+ }
+
+ namespace swig {
+ template <> struct traits<SVertex > {
+ typedef pointer_category category;
+ static const char* type_name() { return"SVertex"; }
+ };
+ }
+
+
+ namespace swig {
+ template <> struct traits<std::vector<SVertex*, std::allocator<SVertex * > > > {
+ typedef value_category category;
+ static const char* type_name() {
+ return "std::vector<" "SVertex" " *," "std::allocator<SVertex * >" " >";
+ }
+ };
+ }
+
+SWIGINTERN swig::PySwigIterator *std_vector_Sl_SVertex_Sm__Sg__iterator(std::vector<SVertex * > *self,PyObject **PYTHON_SELF){
+ return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
+ }
+SWIGINTERN bool std_vector_Sl_SVertex_Sm__Sg____nonzero__(std::vector<SVertex * > const *self){
+ return !(self->empty());
+ }
+SWIGINTERN std::vector<SVertex * >::size_type std_vector_Sl_SVertex_Sm__Sg____len__(std::vector<SVertex * > const *self){
+ return self->size();
+ }
+SWIGINTERN std::vector<SVertex * >::value_type std_vector_Sl_SVertex_Sm__Sg__pop(std::vector<SVertex * > *self){
+ if (self->size() == 0)
+ throw std::out_of_range("pop from empty container");
+ std::vector<SVertex*,std::allocator<SVertex * > >::value_type x = self->back();
+ self->pop_back();
+ return x;
+ }
+SWIGINTERN std::vector<SVertex *,std::allocator<SVertex * > > *std_vector_Sl_SVertex_Sm__Sg____getslice__(std::vector<SVertex * > *self,std::vector<SVertex * >::difference_type i,std::vector<SVertex * >::difference_type j){
+ return swig::getslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_SVertex_Sm__Sg____setslice__(std::vector<SVertex * > *self,std::vector<SVertex * >::difference_type i,std::vector<SVertex * >::difference_type j,std::vector<SVertex *,std::allocator<SVertex * > > const &v){
+ swig::setslice(self, i, j, v);
+ }
+SWIGINTERN void std_vector_Sl_SVertex_Sm__Sg____delslice__(std::vector<SVertex * > *self,std::vector<SVertex * >::difference_type i,std::vector<SVertex * >::difference_type j){
+ swig::delslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_SVertex_Sm__Sg____delitem__(std::vector<SVertex * > *self,std::vector<SVertex * >::difference_type i){
+ self->erase(swig::getpos(self,i));
+ }
+SWIGINTERN std::vector<SVertex * >::value_type std_vector_Sl_SVertex_Sm__Sg____getitem__(std::vector<SVertex * > *self,std::vector<SVertex * >::difference_type i){
+ return *(swig::cgetpos(self, i));
+ }
+SWIGINTERN void std_vector_Sl_SVertex_Sm__Sg____setitem__(std::vector<SVertex * > *self,std::vector<SVertex * >::difference_type i,std::vector<SVertex * >::value_type x){
+ *(swig::getpos(self,i)) = x;
+ }
+SWIGINTERN void std_vector_Sl_SVertex_Sm__Sg__append(std::vector<SVertex * > *self,std::vector<SVertex * >::value_type x){
+ self->push_back(x);
+ }
+
+SWIGINTERN int
+SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
+{
+ if (PyString_Check(obj)) {
+ char *cstr; Py_ssize_t len;
+ PyString_AsStringAndSize(obj, &cstr, &len);
+ if (cptr) {
+ if (alloc) {
+ /*
+ In python the user should not be able to modify the inner
+ string representation. To warranty that, if you define
+ SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
+ buffer is always returned.
+
+ The default behavior is just to return the pointer value,
+ so, be careful.
+ */
+#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
+ if (*alloc != SWIG_OLDOBJ)
+#else
+ if (*alloc == SWIG_NEWOBJ)
+#endif
+ {
+ *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
+ *alloc = SWIG_NEWOBJ;
+ }
+ else {
+ *cptr = cstr;
+ *alloc = SWIG_OLDOBJ;
+ }
+ } else {
+ *cptr = PyString_AsString(obj);
+ }
+ }
+ if (psize) *psize = len + 1;
+ return SWIG_OK;
+ } else {
+ swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
+ if (pchar_descriptor) {
+ void* vptr = 0;
+ if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
+ if (cptr) *cptr = (char *) vptr;
+ if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
+ if (alloc) *alloc = SWIG_OLDOBJ;
+ return SWIG_OK;
+ }
+ }
+ }
+ return SWIG_TypeError;
+}
+
+
+SWIGINTERN int
+SWIG_AsPtr_std_string (PyObject * obj, std::string **val)
+{
+ char* buf = 0 ; size_t size = 0; int alloc = SWIG_OLDOBJ;
+ if (SWIG_IsOK((SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc)))) {
+ if (buf) {
+ if (val) *val = new std::string(buf, size - 1);
+ if (alloc == SWIG_NEWOBJ) delete[] buf;
+ return SWIG_NEWOBJ;
+ } else {
+ if (val) *val = 0;
+ return SWIG_OLDOBJ;
+ }
+ } else {
+ static int init = 0;
+ static swig_type_info* descriptor = 0;
+ if (!init) {
+ descriptor = SWIG_TypeQuery("std::string" " *");
+ init = 1;
+ }
+ if (descriptor) {
+ std::string *vptr;
+ int res = SWIG_ConvertPtr(obj, (void**)&vptr, descriptor, 0);
+ if (SWIG_IsOK(res) && val) *val = vptr;
+ return res;
+ }
+ }
+ return SWIG_ERROR;
+}
+
+
+
+
+
+ namespace swig {
+ template <> struct traits<StrokeShader > {
+ typedef pointer_category category;
+ static const char* type_name() { return"StrokeShader"; }
+ };
+ }
+
+
+ namespace swig {
+ template <> struct traits<std::vector<StrokeShader*, std::allocator<StrokeShader * > > > {
+ typedef value_category category;
+ static const char* type_name() {
+ return "std::vector<" "StrokeShader" " *," "std::allocator<StrokeShader * >" " >";
+ }
+ };
+ }
+
+SWIGINTERN swig::PySwigIterator *std_vector_Sl_StrokeShader_Sm__Sg__iterator(std::vector<StrokeShader * > *self,PyObject **PYTHON_SELF){
+ return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
+ }
+SWIGINTERN bool std_vector_Sl_StrokeShader_Sm__Sg____nonzero__(std::vector<StrokeShader * > const *self){
+ return !(self->empty());
+ }
+SWIGINTERN std::vector<StrokeShader * >::size_type std_vector_Sl_StrokeShader_Sm__Sg____len__(std::vector<StrokeShader * > const *self){
+ return self->size();
+ }
+SWIGINTERN std::vector<StrokeShader * >::value_type std_vector_Sl_StrokeShader_Sm__Sg__pop(std::vector<StrokeShader * > *self){
+ if (self->size() == 0)
+ throw std::out_of_range("pop from empty container");
+ std::vector<StrokeShader*,std::allocator<StrokeShader * > >::value_type x = self->back();
+ self->pop_back();
+ return x;
+ }
+SWIGINTERN std::vector<StrokeShader *,std::allocator<StrokeShader * > > *std_vector_Sl_StrokeShader_Sm__Sg____getslice__(std::vector<StrokeShader * > *self,std::vector<StrokeShader * >::difference_type i,std::vector<StrokeShader * >::difference_type j){
+ return swig::getslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_StrokeShader_Sm__Sg____setslice__(std::vector<StrokeShader * > *self,std::vector<StrokeShader * >::difference_type i,std::vector<StrokeShader * >::difference_type j,std::vector<StrokeShader *,std::allocator<StrokeShader * > > const &v){
+ swig::setslice(self, i, j, v);
+ }
+SWIGINTERN void std_vector_Sl_StrokeShader_Sm__Sg____delslice__(std::vector<StrokeShader * > *self,std::vector<StrokeShader * >::difference_type i,std::vector<StrokeShader * >::difference_type j){
+ swig::delslice(self, i, j);
+ }
+SWIGINTERN void std_vector_Sl_StrokeShader_Sm__Sg____delitem__(std::vector<StrokeShader * > *self,std::vector<StrokeShader * >::difference_type i){
+ self->erase(swig::getpos(self,i));
+ }
+SWIGINTERN std::vector<StrokeShader * >::value_type std_vector_Sl_StrokeShader_Sm__Sg____getitem__(std::vector<StrokeShader * > *self,std::vector<StrokeShader * >::difference_type i){
+ return *(swig::cgetpos(self, i));
+ }
+SWIGINTERN void std_vector_Sl_StrokeShader_Sm__Sg____setitem__(std::vector<StrokeShader * > *self,std::vector<StrokeShader * >::difference_type i,std::vector<StrokeShader * >::value_type x){
+ *(swig::getpos(self,i)) = x;
+ }
+SWIGINTERN void std_vector_Sl_StrokeShader_Sm__Sg__append(std::vector<StrokeShader * > *self,std::vector<StrokeShader * >::value_type x){
+ self->push_back(x);
+ }
+
+
+/* ---------------------------------------------------
+ * C++ director class methods
+ * --------------------------------------------------- */
+
+#include "ModuleWrapper.h"
+
+SwigDirector_ViewEdgeViewEdgeIterator::SwigDirector_ViewEdgeViewEdgeIterator(PyObject *self, ViewEdge *begin, bool orientation): ViewEdgeInternal::ViewEdgeIterator(begin, orientation), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ViewEdgeInternal::ViewEdgeIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ViewEdgeViewEdgeIterator::SwigDirector_ViewEdgeViewEdgeIterator(PyObject *self, ViewEdgeInternal::ViewEdgeIterator const &it): ViewEdgeInternal::ViewEdgeIterator(it), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ViewEdgeInternal::ViewEdgeIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ViewEdgeViewEdgeIterator::~SwigDirector_ViewEdgeViewEdgeIterator() {
+}
+
+std::string SwigDirector_ViewEdgeViewEdgeIterator::getExactTypeName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getExactTypeName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getExactTypeName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.getExactTypeName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+ViewEdge *SwigDirector_ViewEdgeViewEdgeIterator::operator *() {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "getObject";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getObject", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.getObject'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+ViewEdge *SwigDirector_ViewEdgeViewEdgeIterator::operator ->() {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 2;
+ const char * const swig_method_name = "__deref__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "__deref__", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.__deref__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator &SwigDirector_ViewEdgeViewEdgeIterator::operator ++() {
+ return ViewEdgeInternal::ViewEdgeIterator::operator ++();
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator SwigDirector_ViewEdgeViewEdgeIterator::operator ++(int arg0) {
+ return ViewEdgeInternal::ViewEdgeIterator::operator ++(arg0);
+}
+
+
+void SwigDirector_ViewEdgeViewEdgeIterator::increment() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 3;
+ const char * const swig_method_name = "increment";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "increment", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.increment'");
+ }
+ }
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator &SwigDirector_ViewEdgeViewEdgeIterator::operator --() {
+ return ViewEdgeInternal::ViewEdgeIterator::operator --();
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator SwigDirector_ViewEdgeViewEdgeIterator::operator --(int arg0) {
+ return ViewEdgeInternal::ViewEdgeIterator::operator --(arg0);
+}
+
+
+void SwigDirector_ViewEdgeViewEdgeIterator::decrement() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 4;
+ const char * const swig_method_name = "decrement";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "decrement", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.decrement'");
+ }
+ }
+}
+
+
+bool SwigDirector_ViewEdgeViewEdgeIterator::isBegin() const {
+ bool c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 5;
+ const char * const swig_method_name = "isBegin";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "isBegin", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.isBegin'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ViewEdgeViewEdgeIterator::isEnd() const {
+ bool c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 6;
+ const char * const swig_method_name = "isEnd";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "isEnd", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.isEnd'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ViewEdgeViewEdgeIterator::operator ==(ViewEdgeInternal::ViewEdgeIterator &it) const {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 7;
+ const char * const swig_method_name = "__eq__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__eq__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.__eq__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ViewEdgeViewEdgeIterator::operator !=(ViewEdgeInternal::ViewEdgeIterator &it) const {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ViewEdgeViewEdgeIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 8;
+ const char * const swig_method_name = "__ne__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__ne__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ViewEdgeViewEdgeIterator.__ne__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+SwigDirector_UnaryFunction0DVoid::SwigDirector_UnaryFunction0DVoid(PyObject *self): UnaryFunction0D<void >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction0D<void > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction0DVoid::~SwigDirector_UnaryFunction0DVoid() {
+}
+
+std::string SwigDirector_UnaryFunction0DVoid::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DVoid.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DVoid.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+void SwigDirector_UnaryFunction0DVoid::operator ()(Interface0DIterator &iter) {
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&iter), SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DVoid.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DVoid.__call__'");
+ }
+ }
+}
+
+
+SwigDirector_UnaryFunction0DUnsigned::SwigDirector_UnaryFunction0DUnsigned(PyObject *self): UnaryFunction0D<unsigned int >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction0D<unsigned int > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction0DUnsigned::~SwigDirector_UnaryFunction0DUnsigned() {
+}
+
+std::string SwigDirector_UnaryFunction0DUnsigned::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DUnsigned.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DUnsigned.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+unsigned int SwigDirector_UnaryFunction0DUnsigned::operator ()(Interface0DIterator &iter) {
+ unsigned int c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&iter), SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DUnsigned.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DUnsigned.__call__'");
+ }
+ }
+ unsigned int swig_val;
+ int swig_res = SWIG_AsVal_unsigned_SS_int(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""unsigned int""'");
+ }
+ c_result = static_cast< unsigned int >(swig_val);
+ return (unsigned int) c_result;
+}
+
+
+SwigDirector_UnaryFunction0DFloat::SwigDirector_UnaryFunction0DFloat(PyObject *self): UnaryFunction0D<float >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction0D<float > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction0DFloat::~SwigDirector_UnaryFunction0DFloat() {
+}
+
+std::string SwigDirector_UnaryFunction0DFloat::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DFloat.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DFloat.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+float SwigDirector_UnaryFunction0DFloat::operator ()(Interface0DIterator &iter) {
+ float c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&iter), SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DFloat.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DFloat.__call__'");
+ }
+ }
+ float swig_val;
+ int swig_res = SWIG_AsVal_float(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""float""'");
+ }
+ c_result = static_cast< float >(swig_val);
+ return (float) c_result;
+}
+
+
+SwigDirector_UnaryFunction0DDouble::SwigDirector_UnaryFunction0DDouble(PyObject *self): UnaryFunction0D<double >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction0D<double > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction0DDouble::~SwigDirector_UnaryFunction0DDouble() {
+}
+
+std::string SwigDirector_UnaryFunction0DDouble::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DDouble.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DDouble.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+double SwigDirector_UnaryFunction0DDouble::operator ()(Interface0DIterator &iter) {
+ double c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&iter), SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DDouble.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DDouble.__call__'");
+ }
+ }
+ double swig_val;
+ int swig_res = SWIG_AsVal_double(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""double""'");
+ }
+ c_result = static_cast< double >(swig_val);
+ return (double) c_result;
+}
+
+
+SwigDirector_UnaryFunction0DVec2f::SwigDirector_UnaryFunction0DVec2f(PyObject *self): UnaryFunction0D<Geometry::Vec2f >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction0D<Geometry::Vec2f > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction0DVec2f::~SwigDirector_UnaryFunction0DVec2f() {
+}
+
+std::string SwigDirector_UnaryFunction0DVec2f::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DVec2f.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DVec2f.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+VecMat::Vec2<float > SwigDirector_UnaryFunction0DVec2f::operator ()(Interface0DIterator &iter) {
+ void *swig_argp ;
+ int swig_res = 0 ;
+
+ VecMat::Vec2<float > c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&iter), SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DVec2f.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DVec2f.__call__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtr(result,&swig_argp,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""VecMat::Vec2<float >""'");
+ }
+ c_result = *(reinterpret_cast< VecMat::Vec2<float > * >(swig_argp));
+ if (SWIG_IsNewObj(swig_res)) delete reinterpret_cast< VecMat::Vec2<float > * >(swig_argp);
+ return (VecMat::Vec2<float >) c_result;
+}
+
+
+SwigDirector_UnaryFunction0DVec3f::SwigDirector_UnaryFunction0DVec3f(PyObject *self): UnaryFunction0D<Geometry::Vec3f >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction0D<Geometry::Vec3f > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction0DVec3f::~SwigDirector_UnaryFunction0DVec3f() {
+}
+
+std::string SwigDirector_UnaryFunction0DVec3f::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DVec3f.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DVec3f.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+VecMat::Vec3<float > SwigDirector_UnaryFunction0DVec3f::operator ()(Interface0DIterator &iter) {
+ void *swig_argp ;
+ int swig_res = 0 ;
+
+ VecMat::Vec3<float > c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&iter), SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DVec3f.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DVec3f.__call__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtr(result,&swig_argp,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""VecMat::Vec3<float >""'");
+ }
+ c_result = *(reinterpret_cast< VecMat::Vec3<float > * >(swig_argp));
+ if (SWIG_IsNewObj(swig_res)) delete reinterpret_cast< VecMat::Vec3<float > * >(swig_argp);
+ return (VecMat::Vec3<float >) c_result;
+}
+
+
+SwigDirector_UnaryFunction0DId::SwigDirector_UnaryFunction0DId(PyObject *self): UnaryFunction0D<Id >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction0D<Id > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction0DId::~SwigDirector_UnaryFunction0DId() {
+}
+
+std::string SwigDirector_UnaryFunction0DId::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DId.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DId.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+Id SwigDirector_UnaryFunction0DId::operator ()(Interface0DIterator &iter) {
+ void *swig_argp ;
+ int swig_res = 0 ;
+
+ Id c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&iter), SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction0DId.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction0DId.__call__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtr(result,&swig_argp,SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""Id""'");
+ }
+ c_result = *(reinterpret_cast< Id * >(swig_argp));
+ if (SWIG_IsNewObj(swig_res)) delete reinterpret_cast< Id * >(swig_argp);
+ return (Id) c_result;
+}
+
+
+SwigDirector_UnaryFunction1DVoid::SwigDirector_UnaryFunction1DVoid(PyObject *self): UnaryFunction1D<void >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<void > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DVoid::SwigDirector_UnaryFunction1DVoid(PyObject *self, IntegrationType iType): UnaryFunction1D<void >(iType), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<void > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DVoid::~SwigDirector_UnaryFunction1DVoid() {
+}
+
+std::string SwigDirector_UnaryFunction1DVoid::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DVoid.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DVoid.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+void SwigDirector_UnaryFunction1DVoid::operator ()(Interface1D &inter) {
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter), SWIGTYPE_p_Interface1D, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DVoid.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DVoid.__call__'");
+ }
+ }
+}
+
+
+SwigDirector_UnaryFunction1DUnsigned::SwigDirector_UnaryFunction1DUnsigned(PyObject *self): UnaryFunction1D<unsigned int >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<unsigned int > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DUnsigned::SwigDirector_UnaryFunction1DUnsigned(PyObject *self, IntegrationType iType): UnaryFunction1D<unsigned int >(iType), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<unsigned int > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DUnsigned::~SwigDirector_UnaryFunction1DUnsigned() {
+}
+
+std::string SwigDirector_UnaryFunction1DUnsigned::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DUnsigned.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DUnsigned.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+unsigned int SwigDirector_UnaryFunction1DUnsigned::operator ()(Interface1D &inter) {
+ unsigned int c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter), SWIGTYPE_p_Interface1D, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DUnsigned.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DUnsigned.__call__'");
+ }
+ }
+ unsigned int swig_val;
+ int swig_res = SWIG_AsVal_unsigned_SS_int(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""unsigned int""'");
+ }
+ c_result = static_cast< unsigned int >(swig_val);
+ return (unsigned int) c_result;
+}
+
+
+SwigDirector_UnaryFunction1DFloat::SwigDirector_UnaryFunction1DFloat(PyObject *self): UnaryFunction1D<float >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<float > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DFloat::SwigDirector_UnaryFunction1DFloat(PyObject *self, IntegrationType iType): UnaryFunction1D<float >(iType), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<float > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DFloat::~SwigDirector_UnaryFunction1DFloat() {
+}
+
+std::string SwigDirector_UnaryFunction1DFloat::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DFloat.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DFloat.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+float SwigDirector_UnaryFunction1DFloat::operator ()(Interface1D &inter) {
+ float c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter), SWIGTYPE_p_Interface1D, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DFloat.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DFloat.__call__'");
+ }
+ }
+ float swig_val;
+ int swig_res = SWIG_AsVal_float(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""float""'");
+ }
+ c_result = static_cast< float >(swig_val);
+ return (float) c_result;
+}
+
+
+SwigDirector_UnaryFunction1DDouble::SwigDirector_UnaryFunction1DDouble(PyObject *self): UnaryFunction1D<double >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<double > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DDouble::SwigDirector_UnaryFunction1DDouble(PyObject *self, IntegrationType iType): UnaryFunction1D<double >(iType), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<double > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DDouble::~SwigDirector_UnaryFunction1DDouble() {
+}
+
+std::string SwigDirector_UnaryFunction1DDouble::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DDouble.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DDouble.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+double SwigDirector_UnaryFunction1DDouble::operator ()(Interface1D &inter) {
+ double c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter), SWIGTYPE_p_Interface1D, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DDouble.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DDouble.__call__'");
+ }
+ }
+ double swig_val;
+ int swig_res = SWIG_AsVal_double(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""double""'");
+ }
+ c_result = static_cast< double >(swig_val);
+ return (double) c_result;
+}
+
+
+SwigDirector_UnaryFunction1DVec2f::SwigDirector_UnaryFunction1DVec2f(PyObject *self): UnaryFunction1D<Geometry::Vec2f >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<Geometry::Vec2f > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DVec2f::SwigDirector_UnaryFunction1DVec2f(PyObject *self, IntegrationType iType): UnaryFunction1D<Geometry::Vec2f >(iType), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<Geometry::Vec2f > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DVec2f::~SwigDirector_UnaryFunction1DVec2f() {
+}
+
+std::string SwigDirector_UnaryFunction1DVec2f::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DVec2f.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DVec2f.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+VecMat::Vec2<float > SwigDirector_UnaryFunction1DVec2f::operator ()(Interface1D &inter) {
+ void *swig_argp ;
+ int swig_res = 0 ;
+
+ VecMat::Vec2<float > c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter), SWIGTYPE_p_Interface1D, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DVec2f.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DVec2f.__call__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtr(result,&swig_argp,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""VecMat::Vec2<float >""'");
+ }
+ c_result = *(reinterpret_cast< VecMat::Vec2<float > * >(swig_argp));
+ if (SWIG_IsNewObj(swig_res)) delete reinterpret_cast< VecMat::Vec2<float > * >(swig_argp);
+ return (VecMat::Vec2<float >) c_result;
+}
+
+
+SwigDirector_UnaryFunction1DVec3f::SwigDirector_UnaryFunction1DVec3f(PyObject *self): UnaryFunction1D<Geometry::Vec3f >(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<Geometry::Vec3f > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DVec3f::SwigDirector_UnaryFunction1DVec3f(PyObject *self, IntegrationType iType): UnaryFunction1D<Geometry::Vec3f >(iType), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryFunction1D<Geometry::Vec3f > *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryFunction1DVec3f::~SwigDirector_UnaryFunction1DVec3f() {
+}
+
+std::string SwigDirector_UnaryFunction1DVec3f::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DVec3f.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DVec3f.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+VecMat::Vec3<float > SwigDirector_UnaryFunction1DVec3f::operator ()(Interface1D &inter) {
+ void *swig_argp ;
+ int swig_res = 0 ;
+
+ VecMat::Vec3<float > c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter), SWIGTYPE_p_Interface1D, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryFunction1DVec3f.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryFunction1DVec3f.__call__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtr(result,&swig_argp,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""VecMat::Vec3<float >""'");
+ }
+ c_result = *(reinterpret_cast< VecMat::Vec3<float > * >(swig_argp));
+ if (SWIG_IsNewObj(swig_res)) delete reinterpret_cast< VecMat::Vec3<float > * >(swig_argp);
+ return (VecMat::Vec3<float >) c_result;
+}
+
+
+SwigDirector_ChainingIterator::SwigDirector_ChainingIterator(PyObject *self, bool iRestrictToSelection, bool iRestrictToUnvisited, ViewEdge *begin, bool orientation): ChainingIterator(iRestrictToSelection, iRestrictToUnvisited, begin, orientation), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ChainingIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ChainingIterator::SwigDirector_ChainingIterator(PyObject *self, ChainingIterator const &brother): ChainingIterator(brother), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ChainingIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ChainingIterator::~SwigDirector_ChainingIterator() {
+}
+
+std::string SwigDirector_ChainingIterator::getExactTypeName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getExactTypeName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getExactTypeName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.getExactTypeName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+ViewEdge *SwigDirector_ChainingIterator::operator *() {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "getObject";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getObject", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.getObject'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+ViewEdge *SwigDirector_ChainingIterator::operator ->() {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 2;
+ const char * const swig_method_name = "__deref__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "__deref__", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.__deref__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator &SwigDirector_ChainingIterator::operator ++() {
+ return ViewEdgeInternal::ViewEdgeIterator::operator ++();
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator SwigDirector_ChainingIterator::operator ++(int arg0) {
+ return ViewEdgeInternal::ViewEdgeIterator::operator ++(arg0);
+}
+
+
+void SwigDirector_ChainingIterator::increment() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 3;
+ const char * const swig_method_name = "increment";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "increment", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.increment'");
+ }
+ }
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator &SwigDirector_ChainingIterator::operator --() {
+ return ViewEdgeInternal::ViewEdgeIterator::operator --();
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator SwigDirector_ChainingIterator::operator --(int arg0) {
+ return ViewEdgeInternal::ViewEdgeIterator::operator --(arg0);
+}
+
+
+void SwigDirector_ChainingIterator::decrement() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 4;
+ const char * const swig_method_name = "decrement";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "decrement", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.decrement'");
+ }
+ }
+}
+
+
+bool SwigDirector_ChainingIterator::isBegin() const {
+ bool c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 5;
+ const char * const swig_method_name = "isBegin";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "isBegin", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.isBegin'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainingIterator::isEnd() const {
+ bool c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 6;
+ const char * const swig_method_name = "isEnd";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "isEnd", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.isEnd'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainingIterator::operator ==(ViewEdgeInternal::ViewEdgeIterator &it) const {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 7;
+ const char * const swig_method_name = "__eq__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__eq__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.__eq__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainingIterator::operator !=(ViewEdgeInternal::ViewEdgeIterator &it) const {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 8;
+ const char * const swig_method_name = "__ne__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__ne__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.__ne__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+void SwigDirector_ChainingIterator::init() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 9;
+ const char * const swig_method_name = "init";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "init", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.init'");
+ }
+ }
+}
+
+
+ViewEdge *SwigDirector_ChainingIterator::traverse(AdjacencyIterator const &it) {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_AdjacencyIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainingIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 10;
+ const char * const swig_method_name = "traverse";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"traverse", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainingIterator.traverse'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+SwigDirector_ChainSilhouetteIterator::SwigDirector_ChainSilhouetteIterator(PyObject *self, bool iRestrictToSelection, ViewEdge *begin, bool orientation): ChainSilhouetteIterator(iRestrictToSelection, begin, orientation), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ChainSilhouetteIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ChainSilhouetteIterator::SwigDirector_ChainSilhouetteIterator(PyObject *self, ChainSilhouetteIterator const &brother): ChainSilhouetteIterator(brother), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ChainSilhouetteIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ChainSilhouetteIterator::~SwigDirector_ChainSilhouetteIterator() {
+}
+
+std::string SwigDirector_ChainSilhouetteIterator::getExactTypeName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getExactTypeName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getExactTypeName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.getExactTypeName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+ViewEdge *SwigDirector_ChainSilhouetteIterator::operator *() {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "getObject";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getObject", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.getObject'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+ViewEdge *SwigDirector_ChainSilhouetteIterator::operator ->() {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 2;
+ const char * const swig_method_name = "__deref__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "__deref__", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.__deref__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator &SwigDirector_ChainSilhouetteIterator::operator ++() {
+ return ViewEdgeInternal::ViewEdgeIterator::operator ++();
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator SwigDirector_ChainSilhouetteIterator::operator ++(int arg0) {
+ return ViewEdgeInternal::ViewEdgeIterator::operator ++(arg0);
+}
+
+
+void SwigDirector_ChainSilhouetteIterator::increment() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 3;
+ const char * const swig_method_name = "increment";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "increment", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.increment'");
+ }
+ }
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator &SwigDirector_ChainSilhouetteIterator::operator --() {
+ return ViewEdgeInternal::ViewEdgeIterator::operator --();
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator SwigDirector_ChainSilhouetteIterator::operator --(int arg0) {
+ return ViewEdgeInternal::ViewEdgeIterator::operator --(arg0);
+}
+
+
+void SwigDirector_ChainSilhouetteIterator::decrement() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 4;
+ const char * const swig_method_name = "decrement";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "decrement", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.decrement'");
+ }
+ }
+}
+
+
+bool SwigDirector_ChainSilhouetteIterator::isBegin() const {
+ bool c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 5;
+ const char * const swig_method_name = "isBegin";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "isBegin", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.isBegin'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainSilhouetteIterator::isEnd() const {
+ bool c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 6;
+ const char * const swig_method_name = "isEnd";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "isEnd", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.isEnd'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainSilhouetteIterator::operator ==(ViewEdgeInternal::ViewEdgeIterator &it) const {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 7;
+ const char * const swig_method_name = "__eq__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__eq__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.__eq__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainSilhouetteIterator::operator !=(ViewEdgeInternal::ViewEdgeIterator &it) const {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 8;
+ const char * const swig_method_name = "__ne__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__ne__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.__ne__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+void SwigDirector_ChainSilhouetteIterator::init() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 9;
+ const char * const swig_method_name = "init";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "init", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.init'");
+ }
+ }
+}
+
+
+ViewEdge *SwigDirector_ChainSilhouetteIterator::traverse(AdjacencyIterator const &it) {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_AdjacencyIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainSilhouetteIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 10;
+ const char * const swig_method_name = "traverse";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"traverse", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainSilhouetteIterator.traverse'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+SwigDirector_ChainPredicateIterator::SwigDirector_ChainPredicateIterator(PyObject *self, bool iRestrictToSelection, bool iRestrictToUnvisited, ViewEdge *begin, bool orientation): ChainPredicateIterator(iRestrictToSelection, iRestrictToUnvisited, begin, orientation), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ChainPredicateIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ChainPredicateIterator::SwigDirector_ChainPredicateIterator(PyObject *self, UnaryPredicate1D &upred, BinaryPredicate1D &bpred, bool iRestrictToSelection, bool iRestrictToUnvisited, ViewEdge *begin, bool orientation): ChainPredicateIterator(upred, bpred, iRestrictToSelection, iRestrictToUnvisited, begin, orientation), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ChainPredicateIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ChainPredicateIterator::SwigDirector_ChainPredicateIterator(PyObject *self, ChainPredicateIterator const &brother): ChainPredicateIterator(brother), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((ChainPredicateIterator *)this, this);
+}
+
+
+
+
+SwigDirector_ChainPredicateIterator::~SwigDirector_ChainPredicateIterator() {
+}
+
+std::string SwigDirector_ChainPredicateIterator::getExactTypeName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getExactTypeName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getExactTypeName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.getExactTypeName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+ViewEdge *SwigDirector_ChainPredicateIterator::operator *() {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "getObject";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getObject", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.getObject'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+ViewEdge *SwigDirector_ChainPredicateIterator::operator ->() {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 2;
+ const char * const swig_method_name = "__deref__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "__deref__", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.__deref__'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator &SwigDirector_ChainPredicateIterator::operator ++() {
+ return ViewEdgeInternal::ViewEdgeIterator::operator ++();
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator SwigDirector_ChainPredicateIterator::operator ++(int arg0) {
+ return ViewEdgeInternal::ViewEdgeIterator::operator ++(arg0);
+}
+
+
+void SwigDirector_ChainPredicateIterator::increment() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 3;
+ const char * const swig_method_name = "increment";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "increment", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.increment'");
+ }
+ }
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator &SwigDirector_ChainPredicateIterator::operator --() {
+ return ViewEdgeInternal::ViewEdgeIterator::operator --();
+}
+
+
+ViewEdgeInternal::ViewEdgeIterator SwigDirector_ChainPredicateIterator::operator --(int arg0) {
+ return ViewEdgeInternal::ViewEdgeIterator::operator --(arg0);
+}
+
+
+void SwigDirector_ChainPredicateIterator::decrement() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 4;
+ const char * const swig_method_name = "decrement";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "decrement", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.decrement'");
+ }
+ }
+}
+
+
+bool SwigDirector_ChainPredicateIterator::isBegin() const {
+ bool c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 5;
+ const char * const swig_method_name = "isBegin";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "isBegin", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.isBegin'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainPredicateIterator::isEnd() const {
+ bool c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 6;
+ const char * const swig_method_name = "isEnd";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "isEnd", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.isEnd'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainPredicateIterator::operator ==(ViewEdgeInternal::ViewEdgeIterator &it) const {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 7;
+ const char * const swig_method_name = "__eq__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__eq__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.__eq__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+bool SwigDirector_ChainPredicateIterator::operator !=(ViewEdgeInternal::ViewEdgeIterator &it) const {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 8;
+ const char * const swig_method_name = "__ne__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__ne__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.__ne__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+void SwigDirector_ChainPredicateIterator::init() {
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 9;
+ const char * const swig_method_name = "init";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "init", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.init'");
+ }
+ }
+}
+
+
+ViewEdge *SwigDirector_ChainPredicateIterator::traverse(AdjacencyIterator const &it) {
+ void *swig_argp ;
+ int swig_res ;
+ swig_owntype own ;
+
+ ViewEdge *c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_AdjacencyIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call ChainPredicateIterator.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 10;
+ const char * const swig_method_name = "traverse";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"traverse", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'ChainPredicateIterator.traverse'");
+ }
+ }
+ swig_res = SWIG_ConvertPtrAndOwn(result, &swig_argp, SWIGTYPE_p_ViewEdge, 0 | SWIG_POINTER_DISOWN, &own);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""ViewEdge *""'");
+ }
+ c_result = reinterpret_cast< ViewEdge * >(swig_argp);
+ swig_acquire_ownership_obj(SWIG_as_voidptr(c_result), own);
+ return (ViewEdge *) c_result;
+}
+
+
+SwigDirector_UnaryPredicate0D::SwigDirector_UnaryPredicate0D(PyObject *self): UnaryPredicate0D(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryPredicate0D *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryPredicate0D::~SwigDirector_UnaryPredicate0D() {
+}
+
+std::string SwigDirector_UnaryPredicate0D::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryPredicate0D.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryPredicate0D.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+bool SwigDirector_UnaryPredicate0D::operator ()(Interface0DIterator &it) {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&it), SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryPredicate0D.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryPredicate0D.__call__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+SwigDirector_UnaryPredicate1D::SwigDirector_UnaryPredicate1D(PyObject *self): UnaryPredicate1D(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((UnaryPredicate1D *)this, this);
+}
+
+
+
+
+SwigDirector_UnaryPredicate1D::~SwigDirector_UnaryPredicate1D() {
+}
+
+std::string SwigDirector_UnaryPredicate1D::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryPredicate1D.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryPredicate1D.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+bool SwigDirector_UnaryPredicate1D::operator ()(Interface1D &inter) {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter), SWIGTYPE_p_Interface1D, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call UnaryPredicate1D.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'UnaryPredicate1D.__call__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+SwigDirector_BinaryPredicate1D::SwigDirector_BinaryPredicate1D(PyObject *self): BinaryPredicate1D(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((BinaryPredicate1D *)this, this);
+}
+
+
+
+
+SwigDirector_BinaryPredicate1D::~SwigDirector_BinaryPredicate1D() {
+}
+
+std::string SwigDirector_BinaryPredicate1D::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call BinaryPredicate1D.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'BinaryPredicate1D.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+bool SwigDirector_BinaryPredicate1D::operator ()(Interface1D &inter1, Interface1D &inter2) {
+ bool c_result;
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter1), SWIGTYPE_p_Interface1D, 0 );
+ swig::PyObject_var obj1;
+ obj1 = SWIG_NewPointerObj(SWIG_as_voidptr(&inter2), SWIGTYPE_p_Interface1D, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call BinaryPredicate1D.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "__call__";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(OO)" ,(PyObject *)obj0,(PyObject *)obj1);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"__call__", (char *)"(OO)" ,(PyObject *)obj0,(PyObject *)obj1);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'BinaryPredicate1D.__call__'");
+ }
+ }
+ bool swig_val;
+ int swig_res = SWIG_AsVal_bool(result, &swig_val);
+ if (!SWIG_IsOK(swig_res)) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError(swig_res)), "in output value of type '""bool""'");
+ }
+ c_result = static_cast< bool >(swig_val);
+ return (bool) c_result;
+}
+
+
+SwigDirector_StrokeShader::SwigDirector_StrokeShader(PyObject *self): StrokeShader(), Swig::Director(self) {
+ SWIG_DIRECTOR_RGTR((StrokeShader *)this, this);
+}
+
+
+
+
+SwigDirector_StrokeShader::~SwigDirector_StrokeShader() {
+}
+
+std::string SwigDirector_StrokeShader::getName() const {
+ std::string c_result;
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call StrokeShader.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 0;
+ const char * const swig_method_name = "getName";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, NULL, NULL);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *) "getName", NULL);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'StrokeShader.getName'");
+ }
+ }
+ std::string *swig_optr = 0;
+ int swig_ores = SWIG_AsPtr_std_string(result, &swig_optr);
+ if (!SWIG_IsOK(swig_ores) || !swig_optr) {
+ Swig::DirectorTypeMismatchException::raise(SWIG_ErrorType(SWIG_ArgError((swig_optr ? swig_ores : SWIG_TypeError))), "in output value of type '""std::string""'");
+ }
+ c_result = *swig_optr;
+ if (SWIG_IsNewObj(swig_ores)) delete swig_optr;
+ return (std::string) c_result;
+}
+
+
+void SwigDirector_StrokeShader::shade(Stroke &ioStroke) const {
+ swig::PyObject_var obj0;
+ obj0 = SWIG_NewPointerObj(SWIG_as_voidptr(&ioStroke), SWIGTYPE_p_Stroke, 0 );
+ if (!swig_get_self()) {
+ Swig::DirectorException::raise("'self' uninitialized, maybe you forgot to call StrokeShader.__init__.");
+ }
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+ const size_t swig_method_index = 1;
+ const char * const swig_method_name = "shade";
+ PyObject* method = swig_get_method(swig_method_index, swig_method_name);
+ swig::PyObject_var result = PyObject_CallFunction(method, (char *)"(O)" ,(PyObject *)obj0);
+#else
+ swig::PyObject_var result = PyObject_CallMethod(swig_get_self(), (char *)"shade", (char *)"(O)" ,(PyObject *)obj0);
+#endif
+ if (result == NULL) {
+ PyObject *error = PyErr_Occurred();
+ if (error != NULL) {
+ Swig::DirectorMethodException::raise("Error detected when calling 'StrokeShader.shade'");
+ }
+ }
+}
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+SWIGINTERN PyObject *_wrap_delete_PySwigIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_PySwigIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PySwigIterator" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ delete arg1;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ PyObject *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_value",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_value" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ try {
+ result = (PyObject *)((swig::PySwigIterator const *)arg1)->value();
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = result;
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_incr__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ size_t arg2 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_incr",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_incr" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator_incr" "', argument " "2"" of type '" "size_t""'");
+ }
+ arg2 = static_cast< size_t >(val2);
+ try {
+ result = (swig::PySwigIterator *)(arg1)->incr(arg2);
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_incr__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_incr",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_incr" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ try {
+ result = (swig::PySwigIterator *)(arg1)->incr();
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_incr(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_PySwigIterator_incr__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_PySwigIterator_incr__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'PySwigIterator_incr'.\n Possible C/C++ prototypes are:\n incr(size_t)\n incr()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_decr__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ size_t arg2 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_decr",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_decr" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator_decr" "', argument " "2"" of type '" "size_t""'");
+ }
+ arg2 = static_cast< size_t >(val2);
+ try {
+ result = (swig::PySwigIterator *)(arg1)->decr(arg2);
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_decr__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_decr",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_decr" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ try {
+ result = (swig::PySwigIterator *)(arg1)->decr();
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_decr(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_PySwigIterator_decr__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_PySwigIterator_decr__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'PySwigIterator_decr'.\n Possible C/C++ prototypes are:\n decr(size_t)\n decr()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_distance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ swig::PySwigIterator *arg2 = 0 ;
+ ptrdiff_t result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_distance",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_distance" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator_distance" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator_distance" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
+ try {
+ result = ((swig::PySwigIterator const *)arg1)->distance((swig::PySwigIterator const &)*arg2);
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_Python_Raise(SWIG_NewPointerObj((new std::invalid_argument(static_cast< const std::invalid_argument& >(_e))),SWIGTYPE_p_std__invalid_argument,SWIG_POINTER_OWN), "std::invalid_argument", SWIGTYPE_p_std__invalid_argument); SWIG_fail;
+ }
+
+ resultobj = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_equal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ swig::PySwigIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_equal",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_equal" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator_equal" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator_equal" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
+ try {
+ result = (bool)((swig::PySwigIterator const *)arg1)->equal((swig::PySwigIterator const &)*arg2);
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_Python_Raise(SWIG_NewPointerObj((new std::invalid_argument(static_cast< const std::invalid_argument& >(_e))),SWIGTYPE_p_std__invalid_argument,SWIG_POINTER_OWN), "std::invalid_argument", SWIGTYPE_p_std__invalid_argument); SWIG_fail;
+ }
+
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_copy",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_copy" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ result = (swig::PySwigIterator *)((swig::PySwigIterator const *)arg1)->copy();
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ PyObject *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_next",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_next" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ try {
+ result = (PyObject *)(arg1)->next();
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = result;
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_previous(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ PyObject *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_previous",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_previous" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ try {
+ result = (PyObject *)(arg1)->previous();
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = result;
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator_advance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ ptrdiff_t arg2 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_advance",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_advance" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator_advance" "', argument " "2"" of type '" "ptrdiff_t""'");
+ }
+ arg2 = static_cast< ptrdiff_t >(val2);
+ try {
+ result = (swig::PySwigIterator *)(arg1)->advance(arg2);
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ swig::PySwigIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___eq__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator___eq__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator___eq__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
+ result = (bool)((swig::PySwigIterator const *)arg1)->operator ==((swig::PySwigIterator const &)*arg2);
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ swig::PySwigIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___ne__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator___ne__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator___ne__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
+ result = (bool)((swig::PySwigIterator const *)arg1)->operator !=((swig::PySwigIterator const &)*arg2);
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator___iadd__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ ptrdiff_t arg2 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___iadd__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___iadd__" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator___iadd__" "', argument " "2"" of type '" "ptrdiff_t""'");
+ }
+ arg2 = static_cast< ptrdiff_t >(val2);
+ try {
+ {
+ swig::PySwigIterator &_result_ref = (arg1)->operator +=(arg2);
+ result = (swig::PySwigIterator *) &_result_ref;
+ }
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator___isub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ ptrdiff_t arg2 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___isub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___isub__" "', argument " "1"" of type '" "swig::PySwigIterator *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator___isub__" "', argument " "2"" of type '" "ptrdiff_t""'");
+ }
+ arg2 = static_cast< ptrdiff_t >(val2);
+ try {
+ {
+ swig::PySwigIterator &_result_ref = (arg1)->operator -=(arg2);
+ result = (swig::PySwigIterator *) &_result_ref;
+ }
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ ptrdiff_t arg2 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___add__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator___add__" "', argument " "2"" of type '" "ptrdiff_t""'");
+ }
+ arg2 = static_cast< ptrdiff_t >(val2);
+ try {
+ result = (swig::PySwigIterator *)((swig::PySwigIterator const *)arg1)->operator +(arg2);
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator___sub____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ ptrdiff_t arg2 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___sub__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator___sub__" "', argument " "2"" of type '" "ptrdiff_t""'");
+ }
+ arg2 = static_cast< ptrdiff_t >(val2);
+ try {
+ result = (swig::PySwigIterator *)((swig::PySwigIterator const *)arg1)->operator -(arg2);
+ }
+ catch(swig::stop_iteration &_e) {
+ {
+ (void)_e;
+ SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+ SWIG_fail;
+ }
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator___sub____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+ swig::PySwigIterator *arg2 = 0 ;
+ ptrdiff_t result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___sub__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'");
+ }
+ arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator___sub__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator___sub__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'");
+ }
+ arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
+ result = ((swig::PySwigIterator const *)arg1)->operator -((swig::PySwigIterator const &)*arg2);
+ resultobj = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PySwigIterator___sub__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_swig__PySwigIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_PySwigIterator___sub____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_PySwigIterator___sub____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *PySwigIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_swig__PySwigIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_vectorInt_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ PyObject **arg2 = (PyObject **) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ arg2 = &obj0;
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_iterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_iterator" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = (swig::PySwigIterator *)std_vector_Sl_int_Sg__iterator(arg1,arg2);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt___nonzero__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt___nonzero__" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = (bool)std_vector_Sl_int_Sg____nonzero__((std::vector<int > const *)arg1);
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt___len__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt___len__" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = std_vector_Sl_int_Sg____len__((std::vector<int > const *)arg1);
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_pop",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_pop" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ try {
+ result = (std::vector<int >::value_type)std_vector_Sl_int_Sg__pop(arg1);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::difference_type arg2 ;
+ std::vector<int >::difference_type arg3 ;
+ std::vector<int,std::allocator<int > > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:vectorInt___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt___getslice__" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt___getslice__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vectorInt___getslice__" "', argument " "3"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<int >::difference_type >(val3);
+ try {
+ result = (std::vector<int,std::allocator<int > > *)std_vector_Sl_int_Sg____getslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::difference_type arg2 ;
+ std::vector<int >::difference_type arg3 ;
+ std::vector<int,std::allocator<int > > *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ int res4 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:vectorInt___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt___setslice__" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt___setslice__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vectorInt___setslice__" "', argument " "3"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<int >::difference_type >(val3);
+ {
+ std::vector<int,std::allocator<int > > *ptr = (std::vector<int,std::allocator<int > > *)0;
+ res4 = swig::asptr(obj3, &ptr);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "vectorInt___setslice__" "', argument " "4"" of type '" "std::vector<int,std::allocator<int > > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vectorInt___setslice__" "', argument " "4"" of type '" "std::vector<int,std::allocator<int > > const &""'");
+ }
+ arg4 = ptr;
+ }
+ try {
+ std_vector_Sl_int_Sg____setslice__(arg1,arg2,arg3,(std::vector<int,std::allocator<int > > const &)*arg4);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+ }
+
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::difference_type arg2 ;
+ std::vector<int >::difference_type arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:vectorInt___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt___delslice__" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt___delslice__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vectorInt___delslice__" "', argument " "3"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<int >::difference_type >(val3);
+ try {
+ std_vector_Sl_int_Sg____delslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::difference_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:vectorInt___delitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt___delitem__" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt___delitem__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::difference_type >(val2);
+ try {
+ std_vector_Sl_int_Sg____delitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::difference_type arg2 ;
+ std::vector<int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:vectorInt___getitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt___getitem__" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt___getitem__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::difference_type >(val2);
+ try {
+ {
+ std::vector<int >::value_type const &_result_ref = std_vector_Sl_int_Sg____getitem__((std::vector<int > const *)arg1,arg2);
+ result = (std::vector<int >::value_type *) &_result_ref;
+ }
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ resultobj = SWIG_From_int(static_cast< int >(*result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::difference_type arg2 ;
+ std::vector<int >::value_type *arg3 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ std::vector<int >::value_type temp3 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:vectorInt___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt___setitem__" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt___setitem__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vectorInt___setitem__" "', argument " "3"" of type '" "std::vector<int >::value_type""'");
+ }
+ temp3 = static_cast< std::vector<int >::value_type >(val3);
+ arg3 = &temp3;
+ try {
+ std_vector_Sl_int_Sg____setitem__(arg1,arg2,(int const &)*arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::value_type *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ std::vector<int >::value_type temp2 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:vectorInt_append",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_append" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt_append" "', argument " "2"" of type '" "std::vector<int >::value_type""'");
+ }
+ temp2 = static_cast< std::vector<int >::value_type >(val2);
+ arg2 = &temp2;
+ std_vector_Sl_int_Sg__append(arg1,(int const &)*arg2);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_vectorInt__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_vectorInt")) SWIG_fail;
+ result = (std::vector<int > *)new std::vector<int >();
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_vectorInt__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = 0 ;
+ std::vector<int > *result = 0 ;
+ int res1 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_vectorInt",&obj0)) SWIG_fail;
+ {
+ std::vector<int,std::allocator<int > > *ptr = (std::vector<int,std::allocator<int > > *)0;
+ res1 = swig::asptr(obj0, &ptr);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_vectorInt" "', argument " "1"" of type '" "std::vector<int > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_vectorInt" "', argument " "1"" of type '" "std::vector<int > const &""'");
+ }
+ arg1 = ptr;
+ }
+ result = (std::vector<int > *)new std::vector<int >((std::vector<int > const &)*arg1);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_NEW | 0 );
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_empty" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = (bool)((std::vector<int > const *)arg1)->empty();
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_size" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = ((std::vector<int > const *)arg1)->size();
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_clear",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_clear" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ (arg1)->clear();
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:vectorInt_swap",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_swap" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "vectorInt_swap" "', argument " "2"" of type '" "std::vector<int > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "vectorInt_swap" "', argument " "2"" of type '" "std::vector<int > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<int > * >(argp2);
+ (arg1)->swap(*arg2);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ SwigValueWrapper<std::allocator<int > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_get_allocator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_get_allocator" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = ((std::vector<int > const *)arg1)->get_allocator();
+ resultobj = SWIG_NewPointerObj((new std::vector<int >::allocator_type(static_cast< const std::vector<int >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t__allocator_type, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_begin" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = (arg1)->begin();
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_begin" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = ((std::vector<int > const *)arg1)->begin();
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_vectorInt_begin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_vectorInt_begin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'vectorInt_begin'.\n Possible C/C++ prototypes are:\n begin()\n begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_end" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = (arg1)->end();
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_end" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = ((std::vector<int > const *)arg1)->end();
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_vectorInt_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_vectorInt_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'vectorInt_end'.\n Possible C/C++ prototypes are:\n end()\n end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_rbegin" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = (arg1)->rbegin();
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_rbegin" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = ((std::vector<int > const *)arg1)->rbegin();
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_rbegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_vectorInt_rbegin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_vectorInt_rbegin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'vectorInt_rbegin'.\n Possible C/C++ prototypes are:\n rbegin()\n rbegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_rend" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = (arg1)->rend();
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_rend" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = ((std::vector<int > const *)arg1)->rend();
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_rend(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_vectorInt_rend__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_vectorInt_rend__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'vectorInt_rend'.\n Possible C/C++ prototypes are:\n rend()\n rend()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_vectorInt__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int >::size_type arg1 ;
+ std::vector<int > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_vectorInt",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_vectorInt" "', argument " "1"" of type '" "std::vector<int >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<int >::size_type >(val1);
+ result = (std::vector<int > *)new std::vector<int >(arg1);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_pop_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_pop_back" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ (arg1)->pop_back();
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:vectorInt_resize",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_resize" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt_resize" "', argument " "2"" of type '" "std::vector<int >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::size_type >(val2);
+ (arg1)->resize(arg2);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::iterator arg2 ;
+ std::vector<int >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:vectorInt_erase",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_erase" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_erase" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_erase" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+ }
+ }
+ result = (arg1)->erase(arg2);
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::iterator arg2 ;
+ std::vector<int >::iterator arg3 ;
+ std::vector<int >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ swig::PySwigIterator *iter3 = 0 ;
+ int res3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:vectorInt_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_erase" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_erase" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_erase" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res3) || !iter3) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_erase" "', argument " "3"" of type '" "std::vector<int >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter3);
+ if (iter_t) {
+ arg3 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_erase" "', argument " "3"" of type '" "std::vector<int >::iterator""'");
+ }
+ }
+ result = (arg1)->erase(arg2,arg3);
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_erase(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_vectorInt_erase__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_vectorInt_erase__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'vectorInt_erase'.\n Possible C/C++ prototypes are:\n erase(std::vector<int >::iterator)\n erase(std::vector<int >::iterator,std::vector<int >::iterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_vectorInt__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int >::size_type arg1 ;
+ std::vector<int >::value_type *arg2 = 0 ;
+ std::vector<int > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ std::vector<int >::value_type temp2 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_vectorInt",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_vectorInt" "', argument " "1"" of type '" "std::vector<int >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<int >::size_type >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_vectorInt" "', argument " "2"" of type '" "std::vector<int >::value_type""'");
+ }
+ temp2 = static_cast< std::vector<int >::value_type >(val2);
+ arg2 = &temp2;
+ result = (std::vector<int > *)new std::vector<int >(arg1,(std::vector<int >::value_type const &)*arg2);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_vectorInt(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_vectorInt__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_vectorInt__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_vectorInt__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_vectorInt__SWIG_3(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_vectorInt'.\n Possible C/C++ prototypes are:\n std::vector<(int)>()\n std::vector<(int)>(std::vector<int > const &)\n std::vector<(int)>(std::vector<int >::size_type)\n std::vector<(int)>(std::vector<int >::size_type,std::vector<int >::value_type const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::value_type *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ std::vector<int >::value_type temp2 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:vectorInt_push_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_push_back" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt_push_back" "', argument " "2"" of type '" "std::vector<int >::value_type""'");
+ }
+ temp2 = static_cast< std::vector<int >::value_type >(val2);
+ arg2 = &temp2;
+ (arg1)->push_back((std::vector<int >::value_type const &)*arg2);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_front",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_front" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ {
+ std::vector<int >::value_type const &_result_ref = ((std::vector<int > const *)arg1)->front();
+ result = (std::vector<int >::value_type *) &_result_ref;
+ }
+ resultobj = SWIG_From_int(static_cast< int >(*result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_back" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ {
+ std::vector<int >::value_type const &_result_ref = ((std::vector<int > const *)arg1)->back();
+ result = (std::vector<int >::value_type *) &_result_ref;
+ }
+ resultobj = SWIG_From_int(static_cast< int >(*result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::size_type arg2 ;
+ std::vector<int >::value_type *arg3 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ std::vector<int >::value_type temp3 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:vectorInt_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_assign" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt_assign" "', argument " "2"" of type '" "std::vector<int >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::size_type >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vectorInt_assign" "', argument " "3"" of type '" "std::vector<int >::value_type""'");
+ }
+ temp3 = static_cast< std::vector<int >::value_type >(val3);
+ arg3 = &temp3;
+ (arg1)->assign(arg2,(std::vector<int >::value_type const &)*arg3);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::size_type arg2 ;
+ std::vector<int >::value_type *arg3 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ std::vector<int >::value_type temp3 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:vectorInt_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_resize" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt_resize" "', argument " "2"" of type '" "std::vector<int >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::size_type >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vectorInt_resize" "', argument " "3"" of type '" "std::vector<int >::value_type""'");
+ }
+ temp3 = static_cast< std::vector<int >::value_type >(val3);
+ arg3 = &temp3;
+ (arg1)->resize(arg2,(std::vector<int >::value_type const &)*arg3);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_resize(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_vectorInt_resize__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_vectorInt_resize__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'vectorInt_resize'.\n Possible C/C++ prototypes are:\n resize(std::vector<int >::size_type)\n resize(std::vector<int >::size_type,std::vector<int >::value_type const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::iterator arg2 ;
+ std::vector<int >::value_type *arg3 = 0 ;
+ std::vector<int >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ std::vector<int >::value_type temp3 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:vectorInt_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_insert" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_insert" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_insert" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+ }
+ }
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vectorInt_insert" "', argument " "3"" of type '" "std::vector<int >::value_type""'");
+ }
+ temp3 = static_cast< std::vector<int >::value_type >(val3);
+ arg3 = &temp3;
+ result = (arg1)->insert(arg2,(std::vector<int >::value_type const &)*arg3);
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::iterator arg2 ;
+ std::vector<int >::size_type arg3 ;
+ std::vector<int >::value_type *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ size_t val3 ;
+ int ecode3 = 0 ;
+ std::vector<int >::value_type temp4 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:vectorInt_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_insert" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_insert" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "vectorInt_insert" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+ }
+ }
+ ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "vectorInt_insert" "', argument " "3"" of type '" "std::vector<int >::size_type""'");
+ }
+ arg3 = static_cast< std::vector<int >::size_type >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "vectorInt_insert" "', argument " "4"" of type '" "std::vector<int >::value_type""'");
+ }
+ temp4 = static_cast< std::vector<int >::value_type >(val4);
+ arg4 = &temp4;
+ (arg1)->insert(arg2,arg3,(std::vector<int >::value_type const &)*arg4);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_insert(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_vectorInt_insert__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_vectorInt_insert__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'vectorInt_insert'.\n Possible C/C++ prototypes are:\n insert(std::vector<int >::iterator,std::vector<int >::value_type const &)\n insert(std::vector<int >::iterator,std::vector<int >::size_type,std::vector<int >::value_type const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:vectorInt_reserve",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_reserve" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "vectorInt_reserve" "', argument " "2"" of type '" "std::vector<int >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<int >::size_type >(val2);
+ (arg1)->reserve(arg2);
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_vectorInt_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ std::vector<int >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:vectorInt_capacity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "vectorInt_capacity" "', argument " "1"" of type '" "std::vector<int > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ result = ((std::vector<int > const *)arg1)->capacity();
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_vectorInt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_vectorInt",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_vectorInt" "', argument " "1"" of type '" "std::vector<int > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *vectorInt_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Id__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Id")) SWIG_fail;
+ {
+ try {
+ result = (Id *)new Id();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Id, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Id__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id::id_type arg1 ;
+ Id *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Id",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Id" "', argument " "1"" of type '" "Id::id_type""'");
+ }
+ arg1 = static_cast< Id::id_type >(val1);
+ {
+ try {
+ result = (Id *)new Id(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Id, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Id__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id::id_type arg1 ;
+ Id::id_type arg2 ;
+ Id *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Id",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Id" "', argument " "1"" of type '" "Id::id_type""'");
+ }
+ arg1 = static_cast< Id::id_type >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Id" "', argument " "2"" of type '" "Id::id_type""'");
+ }
+ arg2 = static_cast< Id::id_type >(val2);
+ {
+ try {
+ result = (Id *)new Id(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Id, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Id__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = 0 ;
+ Id *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Id" "', argument " "1"" of type '" "Id const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Id" "', argument " "1"" of type '" "Id const &""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ {
+ try {
+ result = (Id *)new Id((Id const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Id, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Id(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Id__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Id, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Id__SWIG_3(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Id__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Id__SWIG_2(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Id'.\n Possible C/C++ prototypes are:\n Id()\n Id(Id::id_type)\n Id(Id::id_type,Id::id_type)\n Id(Id const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Id_getFirst(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = (Id *) 0 ;
+ Id::id_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Id_getFirst",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Id_getFirst" "', argument " "1"" of type '" "Id const *""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ {
+ try {
+ result = (Id::id_type)((Id const *)arg1)->getFirst();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Id_getSecond(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = (Id *) 0 ;
+ Id::id_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Id_getSecond",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Id_getSecond" "', argument " "1"" of type '" "Id const *""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ {
+ try {
+ result = (Id::id_type)((Id const *)arg1)->getSecond();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Id_setFirst(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = (Id *) 0 ;
+ Id::id_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Id_setFirst",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Id_setFirst" "', argument " "1"" of type '" "Id *""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Id_setFirst" "', argument " "2"" of type '" "Id::id_type""'");
+ }
+ arg2 = static_cast< Id::id_type >(val2);
+ {
+ try {
+ (arg1)->setFirst(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Id_setSecond(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = (Id *) 0 ;
+ Id::id_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Id_setSecond",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Id_setSecond" "', argument " "1"" of type '" "Id *""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Id_setSecond" "', argument " "2"" of type '" "Id::id_type""'");
+ }
+ arg2 = static_cast< Id::id_type >(val2);
+ {
+ try {
+ (arg1)->setSecond(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Id___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = (Id *) 0 ;
+ Id *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Id___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Id___eq__" "', argument " "1"" of type '" "Id const *""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Id___eq__" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Id___eq__" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ result = (bool)((Id const *)arg1)->operator ==((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Id___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = (Id *) 0 ;
+ Id *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Id___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Id___ne__" "', argument " "1"" of type '" "Id const *""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Id___ne__" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Id___ne__" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ result = (bool)((Id const *)arg1)->operator !=((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Id___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = (Id *) 0 ;
+ Id *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Id___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Id___lt__" "', argument " "1"" of type '" "Id const *""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Id___lt__" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Id___lt__" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ result = (bool)((Id const *)arg1)->operator <((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = (Id *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Id, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Id" "', argument " "1"" of type '" "Id *""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Id_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Id, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec_2u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec_2u")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec<unsigned int,2 > *)new VecMat::Vec<unsigned int,2 >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec_2u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec_2u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec_2u" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u_dim(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Vec_2u_dim")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)VecMat::Vec<unsigned int,2 >::SWIGTEMPLATEDISAMBIGUATOR dim();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u_norm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2u_norm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u_norm" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<unsigned int,2 >::value_type)((VecMat::Vec<unsigned int,2 > const *)arg1)->norm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u_squareNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2u_squareNorm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u_squareNorm" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<unsigned int,2 >::value_type)((VecMat::Vec<unsigned int,2 > const *)arg1)->squareNorm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u_normalize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2u_normalize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u_normalize" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<unsigned int,2 > &_result_ref = (arg1)->normalize();
+ result = (VecMat::Vec<unsigned int,2 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u_normalizeSafe(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2u_normalizeSafe",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u_normalizeSafe" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<unsigned int,2 > &_result_ref = (arg1)->normalizeSafe();
+ result = (VecMat::Vec<unsigned int,2 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *arg2 = 0 ;
+ VecMat::Vec<unsigned int,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___add__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2u___add__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2u___add__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<unsigned int,2 > const *)arg1)->operator +((VecMat::Vec<unsigned int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<unsigned int,2 >(static_cast< const VecMat::Vec<unsigned int,2 >& >(result))), SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *arg2 = 0 ;
+ VecMat::Vec<unsigned int,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___sub__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2u___sub__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2u___sub__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<unsigned int,2 > const *)arg1)->operator -((VecMat::Vec<unsigned int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<unsigned int,2 >(static_cast< const VecMat::Vec<unsigned int,2 >& >(result))), SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 >::value_type arg2 ;
+ VecMat::Vec<unsigned int,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___mul__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_2u___mul__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<unsigned int,2 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<unsigned int,2 > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<unsigned int,2 >(static_cast< const VecMat::Vec<unsigned int,2 >& >(result))), SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 >::value_type arg2 ;
+ VecMat::Vec<unsigned int,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___div__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_2u___div__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<unsigned int,2 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<unsigned int,2 > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<unsigned int,2 >(static_cast< const VecMat::Vec<unsigned int,2 >& >(result))), SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *arg2 = 0 ;
+ VecMat::Vec<unsigned int,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___mul__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2u___mul__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2u___mul__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec<unsigned int,2 >::value_type)((VecMat::Vec<unsigned int,2 > const *)arg1)->operator *((VecMat::Vec<unsigned int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec_2u___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec_2u___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___eq__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2u___eq__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2u___eq__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<unsigned int,2 > const *)arg1)->operator ==((VecMat::Vec<unsigned int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___ne__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2u___ne__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2u___ne__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<unsigned int,2 > const *)arg1)->operator !=((VecMat::Vec<unsigned int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___lt__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2u___lt__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2u___lt__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<unsigned int,2 > const *)arg1)->operator <((VecMat::Vec<unsigned int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2u___gt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,2 > *arg1 = (VecMat::Vec<unsigned int,2 > *) 0 ;
+ VecMat::Vec<unsigned int,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2u___gt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2u___gt__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2u___gt__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2u___gt__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<unsigned int,2 > const *)arg1)->operator >((VecMat::Vec<unsigned int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec_2u_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__VecTunsigned_int_2_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec_2i(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec_2i")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec<int,2 > *)new VecMat::Vec<int,2 >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTint_2_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec_2i(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec_2i",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec_2i" "', argument " "1"" of type '" "VecMat::Vec<int,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i_dim(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Vec_2i_dim")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)VecMat::Vec<int,2 >::SWIGTEMPLATEDISAMBIGUATOR dim();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i_norm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2i_norm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i_norm" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<int,2 >::value_type)((VecMat::Vec<int,2 > const *)arg1)->norm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i_squareNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2i_squareNorm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i_squareNorm" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<int,2 >::value_type)((VecMat::Vec<int,2 > const *)arg1)->squareNorm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i_normalize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2i_normalize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i_normalize" "', argument " "1"" of type '" "VecMat::Vec<int,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<int,2 > &_result_ref = (arg1)->normalize();
+ result = (VecMat::Vec<int,2 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i_normalizeSafe(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2i_normalizeSafe",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i_normalizeSafe" "', argument " "1"" of type '" "VecMat::Vec<int,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<int,2 > &_result_ref = (arg1)->normalizeSafe();
+ result = (VecMat::Vec<int,2 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *arg2 = 0 ;
+ VecMat::Vec<int,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___add__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2i___add__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2i___add__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<int,2 > const *)arg1)->operator +((VecMat::Vec<int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<int,2 >(static_cast< const VecMat::Vec<int,2 >& >(result))), SWIGTYPE_p_VecMat__VecTint_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *arg2 = 0 ;
+ VecMat::Vec<int,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___sub__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2i___sub__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2i___sub__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<int,2 > const *)arg1)->operator -((VecMat::Vec<int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<int,2 >(static_cast< const VecMat::Vec<int,2 >& >(result))), SWIGTYPE_p_VecMat__VecTint_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 >::value_type arg2 ;
+ VecMat::Vec<int,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___mul__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_2i___mul__" "', argument " "2"" of type '" "VecMat::Vec<int,2 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<int,2 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<int,2 > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<int,2 >(static_cast< const VecMat::Vec<int,2 >& >(result))), SWIGTYPE_p_VecMat__VecTint_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 >::value_type arg2 ;
+ VecMat::Vec<int,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___div__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_2i___div__" "', argument " "2"" of type '" "VecMat::Vec<int,2 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<int,2 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<int,2 > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<int,2 >(static_cast< const VecMat::Vec<int,2 >& >(result))), SWIGTYPE_p_VecMat__VecTint_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *arg2 = 0 ;
+ VecMat::Vec<int,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___mul__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2i___mul__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2i___mul__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec<int,2 >::value_type)((VecMat::Vec<int,2 > const *)arg1)->operator *((VecMat::Vec<int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTint_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__VecTint_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec_2i___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTint_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec_2i___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___eq__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2i___eq__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2i___eq__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<int,2 > const *)arg1)->operator ==((VecMat::Vec<int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___ne__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2i___ne__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2i___ne__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<int,2 > const *)arg1)->operator !=((VecMat::Vec<int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___lt__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2i___lt__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2i___lt__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<int,2 > const *)arg1)->operator <((VecMat::Vec<int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2i___gt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,2 > *arg1 = (VecMat::Vec<int,2 > *) 0 ;
+ VecMat::Vec<int,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2i___gt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2i___gt__" "', argument " "1"" of type '" "VecMat::Vec<int,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2i___gt__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2i___gt__" "', argument " "2"" of type '" "VecMat::Vec<int,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<int,2 > const *)arg1)->operator >((VecMat::Vec<int,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec_2i_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__VecTint_2_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec_2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec_2d")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec<double,2 > *)new VecMat::Vec<double,2 >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTdouble_2_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec_2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec_2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec_2d" "', argument " "1"" of type '" "VecMat::Vec<double,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d_dim(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Vec_2d_dim")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)VecMat::Vec<double,2 >::SWIGTEMPLATEDISAMBIGUATOR dim();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d_norm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2d_norm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d_norm" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<double,2 >::value_type)((VecMat::Vec<double,2 > const *)arg1)->norm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d_squareNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2d_squareNorm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d_squareNorm" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<double,2 >::value_type)((VecMat::Vec<double,2 > const *)arg1)->squareNorm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d_normalize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2d_normalize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d_normalize" "', argument " "1"" of type '" "VecMat::Vec<double,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<double,2 > &_result_ref = (arg1)->normalize();
+ result = (VecMat::Vec<double,2 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d_normalizeSafe(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2d_normalizeSafe",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d_normalizeSafe" "', argument " "1"" of type '" "VecMat::Vec<double,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<double,2 > &_result_ref = (arg1)->normalizeSafe();
+ result = (VecMat::Vec<double,2 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *arg2 = 0 ;
+ VecMat::Vec<double,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___add__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2d___add__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2d___add__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<double,2 > const *)arg1)->operator +((VecMat::Vec<double,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<double,2 >(static_cast< const VecMat::Vec<double,2 >& >(result))), SWIGTYPE_p_VecMat__VecTdouble_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *arg2 = 0 ;
+ VecMat::Vec<double,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___sub__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2d___sub__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2d___sub__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<double,2 > const *)arg1)->operator -((VecMat::Vec<double,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<double,2 >(static_cast< const VecMat::Vec<double,2 >& >(result))), SWIGTYPE_p_VecMat__VecTdouble_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 >::value_type arg2 ;
+ VecMat::Vec<double,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___mul__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_2d___mul__" "', argument " "2"" of type '" "VecMat::Vec<double,2 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<double,2 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<double,2 > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<double,2 >(static_cast< const VecMat::Vec<double,2 >& >(result))), SWIGTYPE_p_VecMat__VecTdouble_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 >::value_type arg2 ;
+ VecMat::Vec<double,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___div__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_2d___div__" "', argument " "2"" of type '" "VecMat::Vec<double,2 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<double,2 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<double,2 > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<double,2 >(static_cast< const VecMat::Vec<double,2 >& >(result))), SWIGTYPE_p_VecMat__VecTdouble_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *arg2 = 0 ;
+ VecMat::Vec<double,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___mul__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2d___mul__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2d___mul__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec<double,2 >::value_type)((VecMat::Vec<double,2 > const *)arg1)->operator *((VecMat::Vec<double,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec_2d___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec_2d___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___eq__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2d___eq__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2d___eq__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<double,2 > const *)arg1)->operator ==((VecMat::Vec<double,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___ne__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2d___ne__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2d___ne__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<double,2 > const *)arg1)->operator !=((VecMat::Vec<double,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___lt__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2d___lt__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2d___lt__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<double,2 > const *)arg1)->operator <((VecMat::Vec<double,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2d___gt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,2 > *arg1 = (VecMat::Vec<double,2 > *) 0 ;
+ VecMat::Vec<double,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2d___gt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2d___gt__" "', argument " "1"" of type '" "VecMat::Vec<double,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2d___gt__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2d___gt__" "', argument " "2"" of type '" "VecMat::Vec<double,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<double,2 > const *)arg1)->operator >((VecMat::Vec<double,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec_2d_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__VecTdouble_2_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec_2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec_2f")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec<float,2 > *)new VecMat::Vec<float,2 >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTfloat_2_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec_2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec_2f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec_2f" "', argument " "1"" of type '" "VecMat::Vec<float,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f_dim(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Vec_2f_dim")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)VecMat::Vec<float,2 >::SWIGTEMPLATEDISAMBIGUATOR dim();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f_norm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2f_norm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f_norm" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<float,2 >::value_type)((VecMat::Vec<float,2 > const *)arg1)->norm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f_squareNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2f_squareNorm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f_squareNorm" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<float,2 >::value_type)((VecMat::Vec<float,2 > const *)arg1)->squareNorm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f_normalize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2f_normalize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f_normalize" "', argument " "1"" of type '" "VecMat::Vec<float,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<float,2 > &_result_ref = (arg1)->normalize();
+ result = (VecMat::Vec<float,2 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f_normalizeSafe(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_2f_normalizeSafe",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f_normalizeSafe" "', argument " "1"" of type '" "VecMat::Vec<float,2 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<float,2 > &_result_ref = (arg1)->normalizeSafe();
+ result = (VecMat::Vec<float,2 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *arg2 = 0 ;
+ VecMat::Vec<float,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___add__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2f___add__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2f___add__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<float,2 > const *)arg1)->operator +((VecMat::Vec<float,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<float,2 >(static_cast< const VecMat::Vec<float,2 >& >(result))), SWIGTYPE_p_VecMat__VecTfloat_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *arg2 = 0 ;
+ VecMat::Vec<float,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___sub__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2f___sub__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2f___sub__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<float,2 > const *)arg1)->operator -((VecMat::Vec<float,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<float,2 >(static_cast< const VecMat::Vec<float,2 >& >(result))), SWIGTYPE_p_VecMat__VecTfloat_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 >::value_type arg2 ;
+ VecMat::Vec<float,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___mul__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_2f___mul__" "', argument " "2"" of type '" "VecMat::Vec<float,2 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<float,2 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<float,2 > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<float,2 >(static_cast< const VecMat::Vec<float,2 >& >(result))), SWIGTYPE_p_VecMat__VecTfloat_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 >::value_type arg2 ;
+ VecMat::Vec<float,2 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___div__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_2f___div__" "', argument " "2"" of type '" "VecMat::Vec<float,2 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<float,2 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<float,2 > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<float,2 >(static_cast< const VecMat::Vec<float,2 >& >(result))), SWIGTYPE_p_VecMat__VecTfloat_2_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *arg2 = 0 ;
+ VecMat::Vec<float,2 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___mul__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2f___mul__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2f___mul__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec<float,2 >::value_type)((VecMat::Vec<float,2 > const *)arg1)->operator *((VecMat::Vec<float,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec_2f___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec_2f___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___eq__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2f___eq__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2f___eq__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<float,2 > const *)arg1)->operator ==((VecMat::Vec<float,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___ne__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2f___ne__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2f___ne__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<float,2 > const *)arg1)->operator !=((VecMat::Vec<float,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___lt__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2f___lt__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2f___lt__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<float,2 > const *)arg1)->operator <((VecMat::Vec<float,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_2f___gt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,2 > *arg1 = (VecMat::Vec<float,2 > *) 0 ;
+ VecMat::Vec<float,2 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_2f___gt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_2f___gt__" "', argument " "1"" of type '" "VecMat::Vec<float,2 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_2_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_2f___gt__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_2f___gt__" "', argument " "2"" of type '" "VecMat::Vec<float,2 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,2 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<float,2 > const *)arg1)->operator >((VecMat::Vec<float,2 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec_2f_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__VecTfloat_2_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec2u__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec2u")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec2<unsigned int > *)new VecMat::Vec2<unsigned int >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2u__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int >::value_type arg1 ;
+ VecMat::Vec2<unsigned int >::value_type arg2 ;
+ VecMat::Vec2<unsigned int > *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Vec2u",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec2u" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec2<unsigned int >::value_type >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec2u" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<unsigned int >::value_type >(val2);
+ {
+ try {
+ result = (VecMat::Vec2<unsigned int > *)new VecMat::Vec2<unsigned int >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2u__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int >::value_type arg1 ;
+ VecMat::Vec2<unsigned int > *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Vec2u",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec2u" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec2<unsigned int >::value_type >(val1);
+ {
+ try {
+ result = (VecMat::Vec2<unsigned int > *)new VecMat::Vec2<unsigned int >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2u(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Vec2u__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec2u__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec2u__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vec2u'.\n Possible C/C++ prototypes are:\n VecMat::Vec2<(unsigned int)>()\n VecMat::Vec2<(unsigned int)>(VecMat::Vec2<unsigned int >::value_type const,VecMat::Vec2<unsigned int >::value_type const)\n VecMat::Vec2<(unsigned int)>(VecMat::Vec2<unsigned int >::value_type const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u_x__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2u_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u_x" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec2<unsigned int >::value_type)((VecMat::Vec2<unsigned int > const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u_x__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2u_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u_x" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec2<unsigned int >::value_type &_result_ref = (arg1)->x();
+ result = (VecMat::Vec2<unsigned int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u_x(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2u_x__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2u_x__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec2u_x'.\n Possible C/C++ prototypes are:\n x()\n x()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u_y__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2u_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u_y" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec2<unsigned int >::value_type)((VecMat::Vec2<unsigned int > const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u_y__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2u_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u_y" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec2<unsigned int >::value_type &_result_ref = (arg1)->y();
+ result = (VecMat::Vec2<unsigned int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u_y(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2u_y__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2u_y__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec2u_y'.\n Possible C/C++ prototypes are:\n y()\n y()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u_setX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2u_setX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u_setX" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2u_setX" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<unsigned int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u_setY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2u_setY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u_setY" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2u_setY" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<unsigned int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int > *arg2 = 0 ;
+ VecMat::Vec2<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2u___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u___add__" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2u___add__" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2u___add__" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec2<unsigned int > const *)arg1)->operator +((VecMat::Vec2<unsigned int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<unsigned int >(static_cast< const VecMat::Vec2<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int > *arg2 = 0 ;
+ VecMat::Vec2<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2u___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u___sub__" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2u___sub__" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2u___sub__" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec2<unsigned int > const *)arg1)->operator -((VecMat::Vec2<unsigned int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<unsigned int >(static_cast< const VecMat::Vec2<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int >::value_type arg2 ;
+ VecMat::Vec2<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2u___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u___mul__" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2u___mul__" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<unsigned int >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec2<unsigned int > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<unsigned int >(static_cast< const VecMat::Vec2<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int >::value_type arg2 ;
+ VecMat::Vec2<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2u___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u___div__" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2u___div__" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<unsigned int >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec2<unsigned int > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<unsigned int >(static_cast< const VecMat::Vec2<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ VecMat::Vec2<unsigned int > *arg2 = 0 ;
+ VecMat::Vec2<unsigned int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2u___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2u___mul__" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2u___mul__" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2u___mul__" "', argument " "2"" of type '" "VecMat::Vec2<unsigned int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec2<unsigned int >::value_type)((VecMat::Vec2<unsigned int > const *)arg1)->operator *((VecMat::Vec2<unsigned int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2u___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2u___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec2u___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec2u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<unsigned int > *arg1 = (VecMat::Vec2<unsigned int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec2u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec2u" "', argument " "1"" of type '" "VecMat::Vec2<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<unsigned int > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec2u_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__Vec2Tunsigned_int_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec2i__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec2i")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec2<int > *)new VecMat::Vec2<int >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2i__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int >::value_type arg1 ;
+ VecMat::Vec2<int >::value_type arg2 ;
+ VecMat::Vec2<int > *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Vec2i",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec2i" "', argument " "1"" of type '" "VecMat::Vec2<int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec2<int >::value_type >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec2i" "', argument " "2"" of type '" "VecMat::Vec2<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<int >::value_type >(val2);
+ {
+ try {
+ result = (VecMat::Vec2<int > *)new VecMat::Vec2<int >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2i__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int >::value_type arg1 ;
+ VecMat::Vec2<int > *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Vec2i",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec2i" "', argument " "1"" of type '" "VecMat::Vec2<int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec2<int >::value_type >(val1);
+ {
+ try {
+ result = (VecMat::Vec2<int > *)new VecMat::Vec2<int >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2i(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Vec2i__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec2i__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec2i__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vec2i'.\n Possible C/C++ prototypes are:\n VecMat::Vec2<(int)>()\n VecMat::Vec2<(int)>(VecMat::Vec2<int >::value_type const,VecMat::Vec2<int >::value_type const)\n VecMat::Vec2<(int)>(VecMat::Vec2<int >::value_type const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i_x__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2i_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i_x" "', argument " "1"" of type '" "VecMat::Vec2<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec2<int >::value_type)((VecMat::Vec2<int > const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i_x__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2i_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i_x" "', argument " "1"" of type '" "VecMat::Vec2<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec2<int >::value_type &_result_ref = (arg1)->x();
+ result = (VecMat::Vec2<int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i_x(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2i_x__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2i_x__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec2i_x'.\n Possible C/C++ prototypes are:\n x()\n x()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i_y__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2i_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i_y" "', argument " "1"" of type '" "VecMat::Vec2<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec2<int >::value_type)((VecMat::Vec2<int > const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i_y__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2i_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i_y" "', argument " "1"" of type '" "VecMat::Vec2<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec2<int >::value_type &_result_ref = (arg1)->y();
+ result = (VecMat::Vec2<int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i_y(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2i_y__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2i_y__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec2i_y'.\n Possible C/C++ prototypes are:\n y()\n y()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i_setX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2i_setX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i_setX" "', argument " "1"" of type '" "VecMat::Vec2<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2i_setX" "', argument " "2"" of type '" "VecMat::Vec2<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i_setY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2i_setY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i_setY" "', argument " "1"" of type '" "VecMat::Vec2<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2i_setY" "', argument " "2"" of type '" "VecMat::Vec2<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int > *arg2 = 0 ;
+ VecMat::Vec2<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2i___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i___add__" "', argument " "1"" of type '" "VecMat::Vec2<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2i___add__" "', argument " "2"" of type '" "VecMat::Vec2<int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2i___add__" "', argument " "2"" of type '" "VecMat::Vec2<int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec2<int > const *)arg1)->operator +((VecMat::Vec2<int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<int >(static_cast< const VecMat::Vec2<int >& >(result))), SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int > *arg2 = 0 ;
+ VecMat::Vec2<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2i___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i___sub__" "', argument " "1"" of type '" "VecMat::Vec2<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2i___sub__" "', argument " "2"" of type '" "VecMat::Vec2<int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2i___sub__" "', argument " "2"" of type '" "VecMat::Vec2<int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec2<int > const *)arg1)->operator -((VecMat::Vec2<int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<int >(static_cast< const VecMat::Vec2<int >& >(result))), SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int >::value_type arg2 ;
+ VecMat::Vec2<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2i___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i___mul__" "', argument " "1"" of type '" "VecMat::Vec2<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2i___mul__" "', argument " "2"" of type '" "VecMat::Vec2<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<int >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec2<int > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<int >(static_cast< const VecMat::Vec2<int >& >(result))), SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int >::value_type arg2 ;
+ VecMat::Vec2<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2i___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i___div__" "', argument " "1"" of type '" "VecMat::Vec2<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2i___div__" "', argument " "2"" of type '" "VecMat::Vec2<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<int >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec2<int > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<int >(static_cast< const VecMat::Vec2<int >& >(result))), SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ VecMat::Vec2<int > *arg2 = 0 ;
+ VecMat::Vec2<int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2i___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2i___mul__" "', argument " "1"" of type '" "VecMat::Vec2<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tint_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2i___mul__" "', argument " "2"" of type '" "VecMat::Vec2<int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2i___mul__" "', argument " "2"" of type '" "VecMat::Vec2<int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<int > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec2<int >::value_type)((VecMat::Vec2<int > const *)arg1)->operator *((VecMat::Vec2<int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2i___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2i___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec2i___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec2i(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<int > *arg1 = (VecMat::Vec2<int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec2i",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec2i" "', argument " "1"" of type '" "VecMat::Vec2<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<int > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec2i_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__Vec2Tint_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec2f__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec2f")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec2<float > *)new VecMat::Vec2<float >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2f__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float >::value_type arg1 ;
+ VecMat::Vec2<float >::value_type arg2 ;
+ VecMat::Vec2<float > *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Vec2f",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec2f" "', argument " "1"" of type '" "VecMat::Vec2<float >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec2<float >::value_type >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec2f" "', argument " "2"" of type '" "VecMat::Vec2<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<float >::value_type >(val2);
+ {
+ try {
+ result = (VecMat::Vec2<float > *)new VecMat::Vec2<float >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2f__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float >::value_type arg1 ;
+ VecMat::Vec2<float > *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Vec2f",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec2f" "', argument " "1"" of type '" "VecMat::Vec2<float >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec2<float >::value_type >(val1);
+ {
+ try {
+ result = (VecMat::Vec2<float > *)new VecMat::Vec2<float >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2f(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Vec2f__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec2f__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec2f__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vec2f'.\n Possible C/C++ prototypes are:\n VecMat::Vec2<(float)>()\n VecMat::Vec2<(float)>(VecMat::Vec2<float >::value_type const,VecMat::Vec2<float >::value_type const)\n VecMat::Vec2<(float)>(VecMat::Vec2<float >::value_type const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f_x__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2f_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f_x" "', argument " "1"" of type '" "VecMat::Vec2<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec2<float >::value_type)((VecMat::Vec2<float > const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f_x__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2f_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f_x" "', argument " "1"" of type '" "VecMat::Vec2<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec2<float >::value_type &_result_ref = (arg1)->x();
+ result = (VecMat::Vec2<float >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f_x(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2f_x__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2f_x__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec2f_x'.\n Possible C/C++ prototypes are:\n x()\n x()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f_y__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2f_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f_y" "', argument " "1"" of type '" "VecMat::Vec2<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec2<float >::value_type)((VecMat::Vec2<float > const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f_y__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2f_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f_y" "', argument " "1"" of type '" "VecMat::Vec2<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec2<float >::value_type &_result_ref = (arg1)->y();
+ result = (VecMat::Vec2<float >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f_y(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2f_y__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2f_y__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec2f_y'.\n Possible C/C++ prototypes are:\n y()\n y()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f_setX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2f_setX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f_setX" "', argument " "1"" of type '" "VecMat::Vec2<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2f_setX" "', argument " "2"" of type '" "VecMat::Vec2<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<float >::value_type >(val2);
+ {
+ try {
+ (arg1)->setX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f_setY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2f_setY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f_setY" "', argument " "1"" of type '" "VecMat::Vec2<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2f_setY" "', argument " "2"" of type '" "VecMat::Vec2<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<float >::value_type >(val2);
+ {
+ try {
+ (arg1)->setY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float > *arg2 = 0 ;
+ VecMat::Vec2<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2f___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f___add__" "', argument " "1"" of type '" "VecMat::Vec2<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2f___add__" "', argument " "2"" of type '" "VecMat::Vec2<float > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2f___add__" "', argument " "2"" of type '" "VecMat::Vec2<float > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<float > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec2<float > const *)arg1)->operator +((VecMat::Vec2<float > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<float >(static_cast< const VecMat::Vec2<float >& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float > *arg2 = 0 ;
+ VecMat::Vec2<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2f___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f___sub__" "', argument " "1"" of type '" "VecMat::Vec2<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2f___sub__" "', argument " "2"" of type '" "VecMat::Vec2<float > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2f___sub__" "', argument " "2"" of type '" "VecMat::Vec2<float > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<float > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec2<float > const *)arg1)->operator -((VecMat::Vec2<float > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<float >(static_cast< const VecMat::Vec2<float >& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float >::value_type arg2 ;
+ VecMat::Vec2<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2f___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f___mul__" "', argument " "1"" of type '" "VecMat::Vec2<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2f___mul__" "', argument " "2"" of type '" "VecMat::Vec2<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<float >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec2<float > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<float >(static_cast< const VecMat::Vec2<float >& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float >::value_type arg2 ;
+ VecMat::Vec2<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2f___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f___div__" "', argument " "1"" of type '" "VecMat::Vec2<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2f___div__" "', argument " "2"" of type '" "VecMat::Vec2<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<float >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec2<float > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<float >(static_cast< const VecMat::Vec2<float >& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ VecMat::Vec2<float > *arg2 = 0 ;
+ VecMat::Vec2<float >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2f___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2f___mul__" "', argument " "1"" of type '" "VecMat::Vec2<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2f___mul__" "', argument " "2"" of type '" "VecMat::Vec2<float > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2f___mul__" "', argument " "2"" of type '" "VecMat::Vec2<float > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<float > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec2<float >::value_type)((VecMat::Vec2<float > const *)arg1)->operator *((VecMat::Vec2<float > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2f___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2f___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec2f___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<float > *arg1 = (VecMat::Vec2<float > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec2f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec2f" "', argument " "1"" of type '" "VecMat::Vec2<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<float > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec2f_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec2d__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec2d")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec2<double > *)new VecMat::Vec2<double >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2d__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double >::value_type arg1 ;
+ VecMat::Vec2<double >::value_type arg2 ;
+ VecMat::Vec2<double > *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Vec2d",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec2d" "', argument " "1"" of type '" "VecMat::Vec2<double >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec2<double >::value_type >(val1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec2d" "', argument " "2"" of type '" "VecMat::Vec2<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<double >::value_type >(val2);
+ {
+ try {
+ result = (VecMat::Vec2<double > *)new VecMat::Vec2<double >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2d__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double >::value_type arg1 ;
+ VecMat::Vec2<double > *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Vec2d",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec2d" "', argument " "1"" of type '" "VecMat::Vec2<double >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec2<double >::value_type >(val1);
+ {
+ try {
+ result = (VecMat::Vec2<double > *)new VecMat::Vec2<double >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec2d(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Vec2d__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec2d__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec2d__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vec2d'.\n Possible C/C++ prototypes are:\n VecMat::Vec2<(double)>()\n VecMat::Vec2<(double)>(VecMat::Vec2<double >::value_type const,VecMat::Vec2<double >::value_type const)\n VecMat::Vec2<(double)>(VecMat::Vec2<double >::value_type const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d_x__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2d_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d_x" "', argument " "1"" of type '" "VecMat::Vec2<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec2<double >::value_type)((VecMat::Vec2<double > const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d_x__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2d_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d_x" "', argument " "1"" of type '" "VecMat::Vec2<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec2<double >::value_type &_result_ref = (arg1)->x();
+ result = (VecMat::Vec2<double >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d_x(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2d_x__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2d_x__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec2d_x'.\n Possible C/C++ prototypes are:\n x()\n x()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d_y__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2d_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d_y" "', argument " "1"" of type '" "VecMat::Vec2<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec2<double >::value_type)((VecMat::Vec2<double > const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d_y__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec2d_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d_y" "', argument " "1"" of type '" "VecMat::Vec2<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec2<double >::value_type &_result_ref = (arg1)->y();
+ result = (VecMat::Vec2<double >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d_y(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2d_y__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2d_y__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec2d_y'.\n Possible C/C++ prototypes are:\n y()\n y()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d_setX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2d_setX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d_setX" "', argument " "1"" of type '" "VecMat::Vec2<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2d_setX" "', argument " "2"" of type '" "VecMat::Vec2<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<double >::value_type >(val2);
+ {
+ try {
+ (arg1)->setX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d_setY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2d_setY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d_setY" "', argument " "1"" of type '" "VecMat::Vec2<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2d_setY" "', argument " "2"" of type '" "VecMat::Vec2<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<double >::value_type >(val2);
+ {
+ try {
+ (arg1)->setY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double > *arg2 = 0 ;
+ VecMat::Vec2<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2d___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d___add__" "', argument " "1"" of type '" "VecMat::Vec2<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2d___add__" "', argument " "2"" of type '" "VecMat::Vec2<double > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2d___add__" "', argument " "2"" of type '" "VecMat::Vec2<double > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<double > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec2<double > const *)arg1)->operator +((VecMat::Vec2<double > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<double >(static_cast< const VecMat::Vec2<double >& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double > *arg2 = 0 ;
+ VecMat::Vec2<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2d___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d___sub__" "', argument " "1"" of type '" "VecMat::Vec2<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2d___sub__" "', argument " "2"" of type '" "VecMat::Vec2<double > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2d___sub__" "', argument " "2"" of type '" "VecMat::Vec2<double > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<double > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec2<double > const *)arg1)->operator -((VecMat::Vec2<double > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<double >(static_cast< const VecMat::Vec2<double >& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double >::value_type arg2 ;
+ VecMat::Vec2<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2d___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d___mul__" "', argument " "1"" of type '" "VecMat::Vec2<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2d___mul__" "', argument " "2"" of type '" "VecMat::Vec2<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<double >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec2<double > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<double >(static_cast< const VecMat::Vec2<double >& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double >::value_type arg2 ;
+ VecMat::Vec2<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2d___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d___div__" "', argument " "1"" of type '" "VecMat::Vec2<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec2d___div__" "', argument " "2"" of type '" "VecMat::Vec2<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec2<double >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec2<double > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<double >(static_cast< const VecMat::Vec2<double >& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ VecMat::Vec2<double > *arg2 = 0 ;
+ VecMat::Vec2<double >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec2d___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec2d___mul__" "', argument " "1"" of type '" "VecMat::Vec2<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec2d___mul__" "', argument " "2"" of type '" "VecMat::Vec2<double > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec2d___mul__" "', argument " "2"" of type '" "VecMat::Vec2<double > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec2<double > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec2<double >::value_type)((VecMat::Vec2<double > const *)arg1)->operator *((VecMat::Vec2<double > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec2d___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec2d___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec2d___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec2<double > *arg1 = (VecMat::Vec2<double > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec2d" "', argument " "1"" of type '" "VecMat::Vec2<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec2<double > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec2d_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec_3u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec_3u")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec<unsigned int,3 > *)new VecMat::Vec<unsigned int,3 >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec_3u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec_3u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec_3u" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u_dim(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Vec_3u_dim")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)VecMat::Vec<unsigned int,3 >::SWIGTEMPLATEDISAMBIGUATOR dim();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u_norm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3u_norm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u_norm" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<unsigned int,3 >::value_type)((VecMat::Vec<unsigned int,3 > const *)arg1)->norm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u_squareNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3u_squareNorm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u_squareNorm" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<unsigned int,3 >::value_type)((VecMat::Vec<unsigned int,3 > const *)arg1)->squareNorm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u_normalize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3u_normalize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u_normalize" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<unsigned int,3 > &_result_ref = (arg1)->normalize();
+ result = (VecMat::Vec<unsigned int,3 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u_normalizeSafe(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3u_normalizeSafe",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u_normalizeSafe" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<unsigned int,3 > &_result_ref = (arg1)->normalizeSafe();
+ result = (VecMat::Vec<unsigned int,3 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *arg2 = 0 ;
+ VecMat::Vec<unsigned int,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___add__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3u___add__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3u___add__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<unsigned int,3 > const *)arg1)->operator +((VecMat::Vec<unsigned int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<unsigned int,3 >(static_cast< const VecMat::Vec<unsigned int,3 >& >(result))), SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *arg2 = 0 ;
+ VecMat::Vec<unsigned int,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___sub__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3u___sub__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3u___sub__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<unsigned int,3 > const *)arg1)->operator -((VecMat::Vec<unsigned int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<unsigned int,3 >(static_cast< const VecMat::Vec<unsigned int,3 >& >(result))), SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 >::value_type arg2 ;
+ VecMat::Vec<unsigned int,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___mul__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_3u___mul__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<unsigned int,3 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<unsigned int,3 > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<unsigned int,3 >(static_cast< const VecMat::Vec<unsigned int,3 >& >(result))), SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 >::value_type arg2 ;
+ VecMat::Vec<unsigned int,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___div__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_3u___div__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<unsigned int,3 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<unsigned int,3 > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<unsigned int,3 >(static_cast< const VecMat::Vec<unsigned int,3 >& >(result))), SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *arg2 = 0 ;
+ VecMat::Vec<unsigned int,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___mul__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3u___mul__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3u___mul__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec<unsigned int,3 >::value_type)((VecMat::Vec<unsigned int,3 > const *)arg1)->operator *((VecMat::Vec<unsigned int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec_3u___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec_3u___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___eq__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3u___eq__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3u___eq__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<unsigned int,3 > const *)arg1)->operator ==((VecMat::Vec<unsigned int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___ne__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3u___ne__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3u___ne__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<unsigned int,3 > const *)arg1)->operator !=((VecMat::Vec<unsigned int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___lt__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3u___lt__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3u___lt__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<unsigned int,3 > const *)arg1)->operator <((VecMat::Vec<unsigned int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3u___gt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<unsigned int,3 > *arg1 = (VecMat::Vec<unsigned int,3 > *) 0 ;
+ VecMat::Vec<unsigned int,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3u___gt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3u___gt__" "', argument " "1"" of type '" "VecMat::Vec<unsigned int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3u___gt__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3u___gt__" "', argument " "2"" of type '" "VecMat::Vec<unsigned int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<unsigned int,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<unsigned int,3 > const *)arg1)->operator >((VecMat::Vec<unsigned int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec_3u_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__VecTunsigned_int_3_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec_3i(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec_3i")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec<int,3 > *)new VecMat::Vec<int,3 >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTint_3_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec_3i(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec_3i",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec_3i" "', argument " "1"" of type '" "VecMat::Vec<int,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i_dim(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Vec_3i_dim")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)VecMat::Vec<int,3 >::SWIGTEMPLATEDISAMBIGUATOR dim();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i_norm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3i_norm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i_norm" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<int,3 >::value_type)((VecMat::Vec<int,3 > const *)arg1)->norm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i_squareNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3i_squareNorm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i_squareNorm" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<int,3 >::value_type)((VecMat::Vec<int,3 > const *)arg1)->squareNorm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i_normalize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3i_normalize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i_normalize" "', argument " "1"" of type '" "VecMat::Vec<int,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<int,3 > &_result_ref = (arg1)->normalize();
+ result = (VecMat::Vec<int,3 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i_normalizeSafe(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3i_normalizeSafe",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i_normalizeSafe" "', argument " "1"" of type '" "VecMat::Vec<int,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<int,3 > &_result_ref = (arg1)->normalizeSafe();
+ result = (VecMat::Vec<int,3 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *arg2 = 0 ;
+ VecMat::Vec<int,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___add__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3i___add__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3i___add__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<int,3 > const *)arg1)->operator +((VecMat::Vec<int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<int,3 >(static_cast< const VecMat::Vec<int,3 >& >(result))), SWIGTYPE_p_VecMat__VecTint_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *arg2 = 0 ;
+ VecMat::Vec<int,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___sub__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3i___sub__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3i___sub__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<int,3 > const *)arg1)->operator -((VecMat::Vec<int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<int,3 >(static_cast< const VecMat::Vec<int,3 >& >(result))), SWIGTYPE_p_VecMat__VecTint_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 >::value_type arg2 ;
+ VecMat::Vec<int,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___mul__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_3i___mul__" "', argument " "2"" of type '" "VecMat::Vec<int,3 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<int,3 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<int,3 > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<int,3 >(static_cast< const VecMat::Vec<int,3 >& >(result))), SWIGTYPE_p_VecMat__VecTint_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 >::value_type arg2 ;
+ VecMat::Vec<int,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___div__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_3i___div__" "', argument " "2"" of type '" "VecMat::Vec<int,3 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<int,3 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<int,3 > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<int,3 >(static_cast< const VecMat::Vec<int,3 >& >(result))), SWIGTYPE_p_VecMat__VecTint_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *arg2 = 0 ;
+ VecMat::Vec<int,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___mul__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3i___mul__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3i___mul__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec<int,3 >::value_type)((VecMat::Vec<int,3 > const *)arg1)->operator *((VecMat::Vec<int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTint_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__VecTint_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec_3i___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTint_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec_3i___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___eq__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3i___eq__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3i___eq__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<int,3 > const *)arg1)->operator ==((VecMat::Vec<int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___ne__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3i___ne__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3i___ne__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<int,3 > const *)arg1)->operator !=((VecMat::Vec<int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___lt__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3i___lt__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3i___lt__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<int,3 > const *)arg1)->operator <((VecMat::Vec<int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3i___gt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<int,3 > *arg1 = (VecMat::Vec<int,3 > *) 0 ;
+ VecMat::Vec<int,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3i___gt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3i___gt__" "', argument " "1"" of type '" "VecMat::Vec<int,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTint_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3i___gt__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3i___gt__" "', argument " "2"" of type '" "VecMat::Vec<int,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<int,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<int,3 > const *)arg1)->operator >((VecMat::Vec<int,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec_3i_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__VecTint_3_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec_3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec_3d")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec<double,3 > *)new VecMat::Vec<double,3 >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTdouble_3_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec_3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec_3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec_3d" "', argument " "1"" of type '" "VecMat::Vec<double,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d_dim(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Vec_3d_dim")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)VecMat::Vec<double,3 >::SWIGTEMPLATEDISAMBIGUATOR dim();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d_norm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3d_norm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d_norm" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<double,3 >::value_type)((VecMat::Vec<double,3 > const *)arg1)->norm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d_squareNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3d_squareNorm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d_squareNorm" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<double,3 >::value_type)((VecMat::Vec<double,3 > const *)arg1)->squareNorm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d_normalize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3d_normalize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d_normalize" "', argument " "1"" of type '" "VecMat::Vec<double,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<double,3 > &_result_ref = (arg1)->normalize();
+ result = (VecMat::Vec<double,3 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d_normalizeSafe(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3d_normalizeSafe",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d_normalizeSafe" "', argument " "1"" of type '" "VecMat::Vec<double,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<double,3 > &_result_ref = (arg1)->normalizeSafe();
+ result = (VecMat::Vec<double,3 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *arg2 = 0 ;
+ VecMat::Vec<double,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___add__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3d___add__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3d___add__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<double,3 > const *)arg1)->operator +((VecMat::Vec<double,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<double,3 >(static_cast< const VecMat::Vec<double,3 >& >(result))), SWIGTYPE_p_VecMat__VecTdouble_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *arg2 = 0 ;
+ VecMat::Vec<double,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___sub__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3d___sub__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3d___sub__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<double,3 > const *)arg1)->operator -((VecMat::Vec<double,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<double,3 >(static_cast< const VecMat::Vec<double,3 >& >(result))), SWIGTYPE_p_VecMat__VecTdouble_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 >::value_type arg2 ;
+ VecMat::Vec<double,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___mul__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_3d___mul__" "', argument " "2"" of type '" "VecMat::Vec<double,3 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<double,3 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<double,3 > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<double,3 >(static_cast< const VecMat::Vec<double,3 >& >(result))), SWIGTYPE_p_VecMat__VecTdouble_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 >::value_type arg2 ;
+ VecMat::Vec<double,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___div__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_3d___div__" "', argument " "2"" of type '" "VecMat::Vec<double,3 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<double,3 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<double,3 > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<double,3 >(static_cast< const VecMat::Vec<double,3 >& >(result))), SWIGTYPE_p_VecMat__VecTdouble_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *arg2 = 0 ;
+ VecMat::Vec<double,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___mul__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3d___mul__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3d___mul__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec<double,3 >::value_type)((VecMat::Vec<double,3 > const *)arg1)->operator *((VecMat::Vec<double,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec_3d___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec_3d___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___eq__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3d___eq__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3d___eq__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<double,3 > const *)arg1)->operator ==((VecMat::Vec<double,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___ne__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3d___ne__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3d___ne__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<double,3 > const *)arg1)->operator !=((VecMat::Vec<double,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___lt__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3d___lt__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3d___lt__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<double,3 > const *)arg1)->operator <((VecMat::Vec<double,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3d___gt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<double,3 > *arg1 = (VecMat::Vec<double,3 > *) 0 ;
+ VecMat::Vec<double,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3d___gt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3d___gt__" "', argument " "1"" of type '" "VecMat::Vec<double,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTdouble_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3d___gt__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3d___gt__" "', argument " "2"" of type '" "VecMat::Vec<double,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<double,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<double,3 > const *)arg1)->operator >((VecMat::Vec<double,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec_3d_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__VecTdouble_3_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec_3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec_3f")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec<float,3 > *)new VecMat::Vec<float,3 >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTfloat_3_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec_3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec_3f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec_3f" "', argument " "1"" of type '" "VecMat::Vec<float,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f_dim(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Vec_3f_dim")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)VecMat::Vec<float,3 >::SWIGTEMPLATEDISAMBIGUATOR dim();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f_norm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3f_norm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f_norm" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<float,3 >::value_type)((VecMat::Vec<float,3 > const *)arg1)->norm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f_squareNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3f_squareNorm",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f_squareNorm" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec<float,3 >::value_type)((VecMat::Vec<float,3 > const *)arg1)->squareNorm();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f_normalize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3f_normalize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f_normalize" "', argument " "1"" of type '" "VecMat::Vec<float,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<float,3 > &_result_ref = (arg1)->normalize();
+ result = (VecMat::Vec<float,3 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f_normalizeSafe(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec_3f_normalizeSafe",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f_normalizeSafe" "', argument " "1"" of type '" "VecMat::Vec<float,3 > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec<float,3 > &_result_ref = (arg1)->normalizeSafe();
+ result = (VecMat::Vec<float,3 > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *arg2 = 0 ;
+ VecMat::Vec<float,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___add__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3f___add__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3f___add__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<float,3 > const *)arg1)->operator +((VecMat::Vec<float,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<float,3 >(static_cast< const VecMat::Vec<float,3 >& >(result))), SWIGTYPE_p_VecMat__VecTfloat_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *arg2 = 0 ;
+ VecMat::Vec<float,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___sub__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3f___sub__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3f___sub__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec<float,3 > const *)arg1)->operator -((VecMat::Vec<float,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<float,3 >(static_cast< const VecMat::Vec<float,3 >& >(result))), SWIGTYPE_p_VecMat__VecTfloat_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 >::value_type arg2 ;
+ VecMat::Vec<float,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___mul__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_3f___mul__" "', argument " "2"" of type '" "VecMat::Vec<float,3 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<float,3 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<float,3 > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<float,3 >(static_cast< const VecMat::Vec<float,3 >& >(result))), SWIGTYPE_p_VecMat__VecTfloat_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 >::value_type arg2 ;
+ VecMat::Vec<float,3 > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___div__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec_3f___div__" "', argument " "2"" of type '" "VecMat::Vec<float,3 >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec<float,3 >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec<float,3 > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec<float,3 >(static_cast< const VecMat::Vec<float,3 >& >(result))), SWIGTYPE_p_VecMat__VecTfloat_3_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *arg2 = 0 ;
+ VecMat::Vec<float,3 >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___mul__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3f___mul__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3f___mul__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec<float,3 >::value_type)((VecMat::Vec<float,3 > const *)arg1)->operator *((VecMat::Vec<float,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec_3f___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec_3f___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___eq__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3f___eq__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3f___eq__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<float,3 > const *)arg1)->operator ==((VecMat::Vec<float,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___ne__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3f___ne__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3f___ne__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<float,3 > const *)arg1)->operator !=((VecMat::Vec<float,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___lt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___lt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___lt__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3f___lt__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3f___lt__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<float,3 > const *)arg1)->operator <((VecMat::Vec<float,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec_3f___gt__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec<float,3 > *arg1 = (VecMat::Vec<float,3 > *) 0 ;
+ VecMat::Vec<float,3 > *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec_3f___gt__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec_3f___gt__" "', argument " "1"" of type '" "VecMat::Vec<float,3 > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__VecTfloat_3_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec_3f___gt__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec_3f___gt__" "', argument " "2"" of type '" "VecMat::Vec<float,3 > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec<float,3 > * >(argp2);
+ {
+ try {
+ result = (bool)((VecMat::Vec<float,3 > const *)arg1)->operator >((VecMat::Vec<float,3 > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec_3f_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__VecTfloat_3_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec3u__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec3u")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec3<unsigned int > *)new VecMat::Vec3<unsigned int >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3u__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int >::value_type arg1 ;
+ VecMat::Vec3<unsigned int >::value_type arg2 ;
+ VecMat::Vec3<unsigned int >::value_type arg3 ;
+ VecMat::Vec3<unsigned int > *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ unsigned int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_Vec3u",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3u" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec3u" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val2);
+ ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_Vec3u" "', argument " "3"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg3 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val3);
+ {
+ try {
+ result = (VecMat::Vec3<unsigned int > *)new VecMat::Vec3<unsigned int >(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3u__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int >::value_type arg1 ;
+ VecMat::Vec3<unsigned int >::value_type arg2 ;
+ VecMat::Vec3<unsigned int > *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Vec3u",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3u" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec3u" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val2);
+ {
+ try {
+ result = (VecMat::Vec3<unsigned int > *)new VecMat::Vec3<unsigned int >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3u__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int >::value_type arg1 ;
+ VecMat::Vec3<unsigned int > *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Vec3u",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3u" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val1);
+ {
+ try {
+ result = (VecMat::Vec3<unsigned int > *)new VecMat::Vec3<unsigned int >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3u(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Vec3u__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3u__SWIG_3(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3u__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3u__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vec3u'.\n Possible C/C++ prototypes are:\n VecMat::Vec3<(unsigned int)>()\n VecMat::Vec3<(unsigned int)>(VecMat::Vec3<unsigned int >::value_type const,VecMat::Vec3<unsigned int >::value_type const,VecMat::Vec3<unsigned int >::value_type const)\n VecMat::Vec3<(unsigned int)>(VecMat::Vec3<unsigned int >::value_type const,VecMat::Vec3<unsigned int >::value_type const)\n VecMat::Vec3<(unsigned int)>(VecMat::Vec3<unsigned int >::value_type const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_x__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3u_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_x" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<unsigned int >::value_type)((VecMat::Vec3<unsigned int > const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_x__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3u_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_x" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<unsigned int >::value_type &_result_ref = (arg1)->x();
+ result = (VecMat::Vec3<unsigned int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_x(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3u_x__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3u_x__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3u_x'.\n Possible C/C++ prototypes are:\n x()\n x()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_y__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3u_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_y" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<unsigned int >::value_type)((VecMat::Vec3<unsigned int > const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_y__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3u_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_y" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<unsigned int >::value_type &_result_ref = (arg1)->y();
+ result = (VecMat::Vec3<unsigned int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_y(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3u_y__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3u_y__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3u_y'.\n Possible C/C++ prototypes are:\n y()\n y()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_z__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3u_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_z" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<unsigned int >::value_type)((VecMat::Vec3<unsigned int > const *)arg1)->z();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_z__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3u_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_z" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<unsigned int >::value_type &_result_ref = (arg1)->z();
+ result = (VecMat::Vec3<unsigned int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_z(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3u_z__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3u_z__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3u_z'.\n Possible C/C++ prototypes are:\n z()\n z()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_setX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u_setX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_setX" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3u_setX" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_setY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u_setY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_setY" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3u_setY" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u_setZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u_setZ",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u_setZ" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3u_setZ" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setZ(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int > *arg2 = 0 ;
+ VecMat::Vec3<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u___add__" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3u___add__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3u___add__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<unsigned int > const *)arg1)->operator +((VecMat::Vec3<unsigned int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<unsigned int >(static_cast< const VecMat::Vec3<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int > *arg2 = 0 ;
+ VecMat::Vec3<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u___sub__" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3u___sub__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3u___sub__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<unsigned int > const *)arg1)->operator -((VecMat::Vec3<unsigned int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<unsigned int >(static_cast< const VecMat::Vec3<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type arg2 ;
+ VecMat::Vec3<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u___mul__" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3u___mul__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec3<unsigned int > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<unsigned int >(static_cast< const VecMat::Vec3<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int >::value_type arg2 ;
+ VecMat::Vec3<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u___div__" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3u___div__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<unsigned int >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec3<unsigned int > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<unsigned int >(static_cast< const VecMat::Vec3<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int > *arg2 = 0 ;
+ VecMat::Vec3<unsigned int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u___mul__" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3u___mul__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3u___mul__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec3<unsigned int >::value_type)((VecMat::Vec3<unsigned int > const *)arg1)->operator *((VecMat::Vec3<unsigned int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3u___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec3u___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3u___xor__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ VecMat::Vec3<unsigned int > *arg2 = 0 ;
+ VecMat::Vec3<unsigned int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3u___xor__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3u___xor__" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3u___xor__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3u___xor__" "', argument " "2"" of type '" "VecMat::Vec3<unsigned int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<unsigned int > const *)arg1)->operator ^((VecMat::Vec3<unsigned int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<unsigned int >(static_cast< const VecMat::Vec3<unsigned int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec3u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<unsigned int > *arg1 = (VecMat::Vec3<unsigned int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec3u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec3u" "', argument " "1"" of type '" "VecMat::Vec3<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<unsigned int > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec3u_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__Vec3Tunsigned_int_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec3i__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec3i")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec3<int > *)new VecMat::Vec3<int >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3i__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int >::value_type arg1 ;
+ VecMat::Vec3<int >::value_type arg2 ;
+ VecMat::Vec3<int >::value_type arg3 ;
+ VecMat::Vec3<int > *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_Vec3i",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3i" "', argument " "1"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<int >::value_type >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec3i" "', argument " "2"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<int >::value_type >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_Vec3i" "', argument " "3"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg3 = static_cast< VecMat::Vec3<int >::value_type >(val3);
+ {
+ try {
+ result = (VecMat::Vec3<int > *)new VecMat::Vec3<int >(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3i__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int >::value_type arg1 ;
+ VecMat::Vec3<int >::value_type arg2 ;
+ VecMat::Vec3<int > *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Vec3i",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3i" "', argument " "1"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<int >::value_type >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec3i" "', argument " "2"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<int >::value_type >(val2);
+ {
+ try {
+ result = (VecMat::Vec3<int > *)new VecMat::Vec3<int >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3i__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int >::value_type arg1 ;
+ VecMat::Vec3<int > *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Vec3i",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3i" "', argument " "1"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<int >::value_type >(val1);
+ {
+ try {
+ result = (VecMat::Vec3<int > *)new VecMat::Vec3<int >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3i(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Vec3i__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3i__SWIG_3(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3i__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3i__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vec3i'.\n Possible C/C++ prototypes are:\n VecMat::Vec3<(int)>()\n VecMat::Vec3<(int)>(VecMat::Vec3<int >::value_type const,VecMat::Vec3<int >::value_type const,VecMat::Vec3<int >::value_type const)\n VecMat::Vec3<(int)>(VecMat::Vec3<int >::value_type const,VecMat::Vec3<int >::value_type const)\n VecMat::Vec3<(int)>(VecMat::Vec3<int >::value_type const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_x__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3i_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_x" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<int >::value_type)((VecMat::Vec3<int > const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_x__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3i_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_x" "', argument " "1"" of type '" "VecMat::Vec3<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<int >::value_type &_result_ref = (arg1)->x();
+ result = (VecMat::Vec3<int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_x(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3i_x__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3i_x__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3i_x'.\n Possible C/C++ prototypes are:\n x()\n x()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_y__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3i_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_y" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<int >::value_type)((VecMat::Vec3<int > const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_y__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3i_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_y" "', argument " "1"" of type '" "VecMat::Vec3<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<int >::value_type &_result_ref = (arg1)->y();
+ result = (VecMat::Vec3<int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_y(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3i_y__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3i_y__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3i_y'.\n Possible C/C++ prototypes are:\n y()\n y()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_z__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3i_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_z" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<int >::value_type)((VecMat::Vec3<int > const *)arg1)->z();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_z__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3i_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_z" "', argument " "1"" of type '" "VecMat::Vec3<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<int >::value_type &_result_ref = (arg1)->z();
+ result = (VecMat::Vec3<int >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_z(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3i_z__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3i_z__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3i_z'.\n Possible C/C++ prototypes are:\n z()\n z()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_setX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i_setX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_setX" "', argument " "1"" of type '" "VecMat::Vec3<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3i_setX" "', argument " "2"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_setY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i_setY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_setY" "', argument " "1"" of type '" "VecMat::Vec3<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3i_setY" "', argument " "2"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i_setZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i_setZ",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i_setZ" "', argument " "1"" of type '" "VecMat::Vec3<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3i_setZ" "', argument " "2"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<int >::value_type >(val2);
+ {
+ try {
+ (arg1)->setZ(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int > *arg2 = 0 ;
+ VecMat::Vec3<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i___add__" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3i___add__" "', argument " "2"" of type '" "VecMat::Vec3<int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3i___add__" "', argument " "2"" of type '" "VecMat::Vec3<int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<int > const *)arg1)->operator +((VecMat::Vec3<int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<int >(static_cast< const VecMat::Vec3<int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int > *arg2 = 0 ;
+ VecMat::Vec3<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i___sub__" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3i___sub__" "', argument " "2"" of type '" "VecMat::Vec3<int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3i___sub__" "', argument " "2"" of type '" "VecMat::Vec3<int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<int > const *)arg1)->operator -((VecMat::Vec3<int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<int >(static_cast< const VecMat::Vec3<int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type arg2 ;
+ VecMat::Vec3<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i___mul__" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3i___mul__" "', argument " "2"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<int >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec3<int > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<int >(static_cast< const VecMat::Vec3<int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int >::value_type arg2 ;
+ VecMat::Vec3<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i___div__" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3i___div__" "', argument " "2"" of type '" "VecMat::Vec3<int >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<int >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec3<int > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<int >(static_cast< const VecMat::Vec3<int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int > *arg2 = 0 ;
+ VecMat::Vec3<int >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i___mul__" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3i___mul__" "', argument " "2"" of type '" "VecMat::Vec3<int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3i___mul__" "', argument " "2"" of type '" "VecMat::Vec3<int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<int > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec3<int >::value_type)((VecMat::Vec3<int > const *)arg1)->operator *((VecMat::Vec3<int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3i___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tint_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec3i___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3i___xor__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ VecMat::Vec3<int > *arg2 = 0 ;
+ VecMat::Vec3<int > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3i___xor__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3i___xor__" "', argument " "1"" of type '" "VecMat::Vec3<int > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tint_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3i___xor__" "', argument " "2"" of type '" "VecMat::Vec3<int > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3i___xor__" "', argument " "2"" of type '" "VecMat::Vec3<int > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<int > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<int > const *)arg1)->operator ^((VecMat::Vec3<int > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<int >(static_cast< const VecMat::Vec3<int >& >(result))), SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec3i(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<int > *arg1 = (VecMat::Vec3<int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec3i",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec3i" "', argument " "1"" of type '" "VecMat::Vec3<int > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<int > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec3i_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__Vec3Tint_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec3f__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec3f")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec3<float > *)new VecMat::Vec3<float >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3f__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float >::value_type arg1 ;
+ VecMat::Vec3<float >::value_type arg2 ;
+ VecMat::Vec3<float >::value_type arg3 ;
+ VecMat::Vec3<float > *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_Vec3f",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3f" "', argument " "1"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<float >::value_type >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec3f" "', argument " "2"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<float >::value_type >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_Vec3f" "', argument " "3"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg3 = static_cast< VecMat::Vec3<float >::value_type >(val3);
+ {
+ try {
+ result = (VecMat::Vec3<float > *)new VecMat::Vec3<float >(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3f__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float >::value_type arg1 ;
+ VecMat::Vec3<float >::value_type arg2 ;
+ VecMat::Vec3<float > *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Vec3f",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3f" "', argument " "1"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<float >::value_type >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec3f" "', argument " "2"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<float >::value_type >(val2);
+ {
+ try {
+ result = (VecMat::Vec3<float > *)new VecMat::Vec3<float >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3f__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float >::value_type arg1 ;
+ VecMat::Vec3<float > *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Vec3f",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3f" "', argument " "1"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<float >::value_type >(val1);
+ {
+ try {
+ result = (VecMat::Vec3<float > *)new VecMat::Vec3<float >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3f(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Vec3f__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3f__SWIG_3(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3f__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3f__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vec3f'.\n Possible C/C++ prototypes are:\n VecMat::Vec3<(float)>()\n VecMat::Vec3<(float)>(VecMat::Vec3<float >::value_type const,VecMat::Vec3<float >::value_type const,VecMat::Vec3<float >::value_type const)\n VecMat::Vec3<(float)>(VecMat::Vec3<float >::value_type const,VecMat::Vec3<float >::value_type const)\n VecMat::Vec3<(float)>(VecMat::Vec3<float >::value_type const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_x__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3f_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_x" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<float >::value_type)((VecMat::Vec3<float > const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_x__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3f_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_x" "', argument " "1"" of type '" "VecMat::Vec3<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<float >::value_type &_result_ref = (arg1)->x();
+ result = (VecMat::Vec3<float >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_x(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3f_x__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3f_x__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3f_x'.\n Possible C/C++ prototypes are:\n x()\n x()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_y__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3f_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_y" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<float >::value_type)((VecMat::Vec3<float > const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_y__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3f_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_y" "', argument " "1"" of type '" "VecMat::Vec3<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<float >::value_type &_result_ref = (arg1)->y();
+ result = (VecMat::Vec3<float >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_y(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3f_y__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3f_y__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3f_y'.\n Possible C/C++ prototypes are:\n y()\n y()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_z__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3f_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_z" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<float >::value_type)((VecMat::Vec3<float > const *)arg1)->z();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_z__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3f_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_z" "', argument " "1"" of type '" "VecMat::Vec3<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<float >::value_type &_result_ref = (arg1)->z();
+ result = (VecMat::Vec3<float >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_z(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3f_z__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3f_z__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3f_z'.\n Possible C/C++ prototypes are:\n z()\n z()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_setX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f_setX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_setX" "', argument " "1"" of type '" "VecMat::Vec3<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3f_setX" "', argument " "2"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<float >::value_type >(val2);
+ {
+ try {
+ (arg1)->setX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_setY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f_setY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_setY" "', argument " "1"" of type '" "VecMat::Vec3<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3f_setY" "', argument " "2"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<float >::value_type >(val2);
+ {
+ try {
+ (arg1)->setY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f_setZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f_setZ",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f_setZ" "', argument " "1"" of type '" "VecMat::Vec3<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3f_setZ" "', argument " "2"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<float >::value_type >(val2);
+ {
+ try {
+ (arg1)->setZ(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float > *arg2 = 0 ;
+ VecMat::Vec3<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f___add__" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3f___add__" "', argument " "2"" of type '" "VecMat::Vec3<float > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3f___add__" "', argument " "2"" of type '" "VecMat::Vec3<float > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<float > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<float > const *)arg1)->operator +((VecMat::Vec3<float > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<float >(static_cast< const VecMat::Vec3<float >& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float > *arg2 = 0 ;
+ VecMat::Vec3<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f___sub__" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3f___sub__" "', argument " "2"" of type '" "VecMat::Vec3<float > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3f___sub__" "', argument " "2"" of type '" "VecMat::Vec3<float > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<float > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<float > const *)arg1)->operator -((VecMat::Vec3<float > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<float >(static_cast< const VecMat::Vec3<float >& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type arg2 ;
+ VecMat::Vec3<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f___mul__" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3f___mul__" "', argument " "2"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<float >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec3<float > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<float >(static_cast< const VecMat::Vec3<float >& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float >::value_type arg2 ;
+ VecMat::Vec3<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f___div__" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3f___div__" "', argument " "2"" of type '" "VecMat::Vec3<float >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<float >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec3<float > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<float >(static_cast< const VecMat::Vec3<float >& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float > *arg2 = 0 ;
+ VecMat::Vec3<float >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f___mul__" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3f___mul__" "', argument " "2"" of type '" "VecMat::Vec3<float > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3f___mul__" "', argument " "2"" of type '" "VecMat::Vec3<float > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<float > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec3<float >::value_type)((VecMat::Vec3<float > const *)arg1)->operator *((VecMat::Vec3<float > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3f___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec3f___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3f___xor__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ VecMat::Vec3<float > *arg2 = 0 ;
+ VecMat::Vec3<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3f___xor__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3f___xor__" "', argument " "1"" of type '" "VecMat::Vec3<float > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3f___xor__" "', argument " "2"" of type '" "VecMat::Vec3<float > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3f___xor__" "', argument " "2"" of type '" "VecMat::Vec3<float > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<float > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<float > const *)arg1)->operator ^((VecMat::Vec3<float > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<float >(static_cast< const VecMat::Vec3<float >& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<float > *arg1 = (VecMat::Vec3<float > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec3f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec3f" "', argument " "1"" of type '" "VecMat::Vec3<float > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<float > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec3f_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Vec3d__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Vec3d")) SWIG_fail;
+ {
+ try {
+ result = (VecMat::Vec3<double > *)new VecMat::Vec3<double >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3d__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double >::value_type arg1 ;
+ VecMat::Vec3<double >::value_type arg2 ;
+ VecMat::Vec3<double >::value_type arg3 ;
+ VecMat::Vec3<double > *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_Vec3d",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3d" "', argument " "1"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<double >::value_type >(val1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec3d" "', argument " "2"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<double >::value_type >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_Vec3d" "', argument " "3"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg3 = static_cast< VecMat::Vec3<double >::value_type >(val3);
+ {
+ try {
+ result = (VecMat::Vec3<double > *)new VecMat::Vec3<double >(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3d__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double >::value_type arg1 ;
+ VecMat::Vec3<double >::value_type arg2 ;
+ VecMat::Vec3<double > *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_Vec3d",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3d" "', argument " "1"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<double >::value_type >(val1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Vec3d" "', argument " "2"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<double >::value_type >(val2);
+ {
+ try {
+ result = (VecMat::Vec3<double > *)new VecMat::Vec3<double >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3d__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double >::value_type arg1 ;
+ VecMat::Vec3<double > *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Vec3d",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Vec3d" "', argument " "1"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg1 = static_cast< VecMat::Vec3<double >::value_type >(val1);
+ {
+ try {
+ result = (VecMat::Vec3<double > *)new VecMat::Vec3<double >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Vec3d(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Vec3d__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3d__SWIG_3(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3d__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Vec3d__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vec3d'.\n Possible C/C++ prototypes are:\n VecMat::Vec3<(double)>()\n VecMat::Vec3<(double)>(VecMat::Vec3<double >::value_type const,VecMat::Vec3<double >::value_type const,VecMat::Vec3<double >::value_type const)\n VecMat::Vec3<(double)>(VecMat::Vec3<double >::value_type const,VecMat::Vec3<double >::value_type const)\n VecMat::Vec3<(double)>(VecMat::Vec3<double >::value_type const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_x__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3d_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_x" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<double >::value_type)((VecMat::Vec3<double > const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_x__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3d_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_x" "', argument " "1"" of type '" "VecMat::Vec3<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<double >::value_type &_result_ref = (arg1)->x();
+ result = (VecMat::Vec3<double >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_x(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3d_x__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3d_x__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3d_x'.\n Possible C/C++ prototypes are:\n x()\n x()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_y__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3d_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_y" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<double >::value_type)((VecMat::Vec3<double > const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_y__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3d_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_y" "', argument " "1"" of type '" "VecMat::Vec3<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<double >::value_type &_result_ref = (arg1)->y();
+ result = (VecMat::Vec3<double >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_y(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3d_y__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3d_y__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3d_y'.\n Possible C/C++ prototypes are:\n y()\n y()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_z__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3d_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_z" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ {
+ try {
+ result = (VecMat::Vec3<double >::value_type)((VecMat::Vec3<double > const *)arg1)->z();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_z__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Vec3d_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_z" "', argument " "1"" of type '" "VecMat::Vec3<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ {
+ try {
+ {
+ VecMat::Vec3<double >::value_type &_result_ref = (arg1)->z();
+ result = (VecMat::Vec3<double >::value_type *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_z(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3d_z__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3d_z__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Vec3d_z'.\n Possible C/C++ prototypes are:\n z()\n z()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_setX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d_setX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_setX" "', argument " "1"" of type '" "VecMat::Vec3<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3d_setX" "', argument " "2"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<double >::value_type >(val2);
+ {
+ try {
+ (arg1)->setX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_setY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d_setY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_setY" "', argument " "1"" of type '" "VecMat::Vec3<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3d_setY" "', argument " "2"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<double >::value_type >(val2);
+ {
+ try {
+ (arg1)->setY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d_setZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d_setZ",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d_setZ" "', argument " "1"" of type '" "VecMat::Vec3<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3d_setZ" "', argument " "2"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<double >::value_type >(val2);
+ {
+ try {
+ (arg1)->setZ(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double > *arg2 = 0 ;
+ VecMat::Vec3<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d___add__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d___add__" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3d___add__" "', argument " "2"" of type '" "VecMat::Vec3<double > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3d___add__" "', argument " "2"" of type '" "VecMat::Vec3<double > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<double > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<double > const *)arg1)->operator +((VecMat::Vec3<double > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<double >(static_cast< const VecMat::Vec3<double >& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d___sub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double > *arg2 = 0 ;
+ VecMat::Vec3<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d___sub__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d___sub__" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3d___sub__" "', argument " "2"" of type '" "VecMat::Vec3<double > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3d___sub__" "', argument " "2"" of type '" "VecMat::Vec3<double > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<double > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<double > const *)arg1)->operator -((VecMat::Vec3<double > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<double >(static_cast< const VecMat::Vec3<double >& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d___mul____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type arg2 ;
+ VecMat::Vec3<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d___mul__" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3d___mul__" "', argument " "2"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<double >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec3<double > const *)arg1)->operator *(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<double >(static_cast< const VecMat::Vec3<double >& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d___div__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double >::value_type arg2 ;
+ VecMat::Vec3<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d___div__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d___div__" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Vec3d___div__" "', argument " "2"" of type '" "VecMat::Vec3<double >::value_type""'");
+ }
+ arg2 = static_cast< VecMat::Vec3<double >::value_type >(val2);
+ {
+ try {
+ result = ((VecMat::Vec3<double > const *)arg1)->operator /(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<double >(static_cast< const VecMat::Vec3<double >& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d___mul____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double > *arg2 = 0 ;
+ VecMat::Vec3<double >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d___mul__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d___mul__" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3d___mul__" "', argument " "2"" of type '" "VecMat::Vec3<double > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3d___mul__" "', argument " "2"" of type '" "VecMat::Vec3<double > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<double > * >(argp2);
+ {
+ try {
+ result = (VecMat::Vec3<double >::value_type)((VecMat::Vec3<double > const *)arg1)->operator *((VecMat::Vec3<double > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d___mul__(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Vec3d___mul____SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Vec3d___mul____SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+}
+
+
+SWIGINTERN PyObject *_wrap_Vec3d___xor__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ VecMat::Vec3<double > *arg2 = 0 ;
+ VecMat::Vec3<double > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Vec3d___xor__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Vec3d___xor__" "', argument " "1"" of type '" "VecMat::Vec3<double > const *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Vec3d___xor__" "', argument " "2"" of type '" "VecMat::Vec3<double > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Vec3d___xor__" "', argument " "2"" of type '" "VecMat::Vec3<double > const &""'");
+ }
+ arg2 = reinterpret_cast< VecMat::Vec3<double > * >(argp2);
+ {
+ try {
+ result = ((VecMat::Vec3<double > const *)arg1)->operator ^((VecMat::Vec3<double > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<double >(static_cast< const VecMat::Vec3<double >& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Vec3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ VecMat::Vec3<double > *arg1 = (VecMat::Vec3<double > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Vec3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Vec3d" "', argument " "1"" of type '" "VecMat::Vec3<double > *""'");
+ }
+ arg1 = reinterpret_cast< VecMat::Vec3<double > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Vec3d_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Noise(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Noise")) SWIG_fail;
+ {
+ try {
+ result = (Noise *)new Noise();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Noise, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Noise(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Noise",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Noise" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence1__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ unsigned int arg5 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ unsigned int val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Noise_turbulence1",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_turbulence1" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Noise_turbulence1" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Noise_turbulence1" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Noise_turbulence1" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_unsigned_SS_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Noise_turbulence1" "', argument " "5"" of type '" "unsigned int""'");
+ }
+ arg5 = static_cast< unsigned int >(val5);
+ {
+ try {
+ result = (float)(arg1)->turbulence1(arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence1__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:Noise_turbulence1",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_turbulence1" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Noise_turbulence1" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Noise_turbulence1" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Noise_turbulence1" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ {
+ try {
+ result = (float)(arg1)->turbulence1(arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence1(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Noise, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Noise_turbulence1__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Noise, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Noise_turbulence1__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Noise_turbulence1'.\n Possible C/C++ prototypes are:\n turbulence1(float,float,float,unsigned int)\n turbulence1(float,float,float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence2__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ Geometry::Vec2f *arg2 = 0 ;
+ float arg3 ;
+ float arg4 ;
+ unsigned int arg5 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ unsigned int val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Noise_turbulence2",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_turbulence2" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Noise_turbulence2" "', argument " "2"" of type '" "Geometry::Vec2f &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Noise_turbulence2" "', argument " "2"" of type '" "Geometry::Vec2f &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2f * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Noise_turbulence2" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Noise_turbulence2" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_unsigned_SS_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Noise_turbulence2" "', argument " "5"" of type '" "unsigned int""'");
+ }
+ arg5 = static_cast< unsigned int >(val5);
+ {
+ try {
+ result = (float)(arg1)->turbulence2(*arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence2__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ Geometry::Vec2f *arg2 = 0 ;
+ float arg3 ;
+ float arg4 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:Noise_turbulence2",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_turbulence2" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Noise_turbulence2" "', argument " "2"" of type '" "Geometry::Vec2f &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Noise_turbulence2" "', argument " "2"" of type '" "Geometry::Vec2f &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2f * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Noise_turbulence2" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Noise_turbulence2" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ {
+ try {
+ result = (float)(arg1)->turbulence2(*arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence2(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Noise, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Noise_turbulence2__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Noise, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Noise_turbulence2__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Noise_turbulence2'.\n Possible C/C++ prototypes are:\n turbulence2(Geometry::Vec2f &,float,float,unsigned int)\n turbulence2(Geometry::Vec2f &,float,float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence3__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ Geometry::Vec3f *arg2 = 0 ;
+ float arg3 ;
+ float arg4 ;
+ unsigned int arg5 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ unsigned int val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Noise_turbulence3",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_turbulence3" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Noise_turbulence3" "', argument " "2"" of type '" "Geometry::Vec3f &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Noise_turbulence3" "', argument " "2"" of type '" "Geometry::Vec3f &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3f * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Noise_turbulence3" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Noise_turbulence3" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_unsigned_SS_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Noise_turbulence3" "', argument " "5"" of type '" "unsigned int""'");
+ }
+ arg5 = static_cast< unsigned int >(val5);
+ {
+ try {
+ result = (float)(arg1)->turbulence3(*arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence3__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ Geometry::Vec3f *arg2 = 0 ;
+ float arg3 ;
+ float arg4 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:Noise_turbulence3",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_turbulence3" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Noise_turbulence3" "', argument " "2"" of type '" "Geometry::Vec3f &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Noise_turbulence3" "', argument " "2"" of type '" "Geometry::Vec3f &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3f * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Noise_turbulence3" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Noise_turbulence3" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ {
+ try {
+ result = (float)(arg1)->turbulence3(*arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_turbulence3(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Noise, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Noise_turbulence3__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Noise, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Noise_turbulence3__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Noise_turbulence3'.\n Possible C/C++ prototypes are:\n turbulence3(Geometry::Vec3f &,float,float,unsigned int)\n turbulence3(Geometry::Vec3f &,float,float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_smoothNoise1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ float arg2 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Noise_smoothNoise1",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_smoothNoise1" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Noise_smoothNoise1" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (float)(arg1)->smoothNoise1(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_smoothNoise2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ Geometry::Vec2f *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Noise_smoothNoise2",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_smoothNoise2" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Noise_smoothNoise2" "', argument " "2"" of type '" "Geometry::Vec2f &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Noise_smoothNoise2" "', argument " "2"" of type '" "Geometry::Vec2f &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2f * >(argp2);
+ {
+ try {
+ result = (float)(arg1)->smoothNoise2(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Noise_smoothNoise3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Noise *arg1 = (Noise *) 0 ;
+ Geometry::Vec3f *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Noise_smoothNoise3",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Noise, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Noise_smoothNoise3" "', argument " "1"" of type '" "Noise *""'");
+ }
+ arg1 = reinterpret_cast< Noise * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Noise_smoothNoise3" "', argument " "2"" of type '" "Geometry::Vec3f &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Noise_smoothNoise3" "', argument " "2"" of type '" "Geometry::Vec3f &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3f * >(argp2);
+ {
+ try {
+ result = (float)(arg1)->smoothNoise3(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Noise_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Noise, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Material__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Material")) SWIG_fail;
+ {
+ try {
+ result = (Material *)new Material();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Material, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Material__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float *arg1 = (float *) 0 ;
+ float *arg2 = (float *) 0 ;
+ float *arg3 = (float *) 0 ;
+ float *arg4 = (float *) 0 ;
+ float arg5 ;
+ Material *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_Material",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_float, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Material" "', argument " "1"" of type '" "float const *""'");
+ }
+ arg1 = reinterpret_cast< float * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_float, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Material" "', argument " "2"" of type '" "float const *""'");
+ }
+ arg2 = reinterpret_cast< float * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_float, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_Material" "', argument " "3"" of type '" "float const *""'");
+ }
+ arg3 = reinterpret_cast< float * >(argp3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_float, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_Material" "', argument " "4"" of type '" "float const *""'");
+ }
+ arg4 = reinterpret_cast< float * >(argp4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_Material" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ {
+ try {
+ result = (Material *)new Material((float const *)arg1,(float const *)arg2,(float const *)arg3,(float const *)arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Material, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Material__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = 0 ;
+ Material *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Material",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Material, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Material" "', argument " "1"" of type '" "Material const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Material" "', argument " "1"" of type '" "Material const &""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (Material *)new Material((Material const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Material, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Material(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Material__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Material, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Material__SWIG_2(self, args);
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_float, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_float, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_float, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_float, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Material__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Material'.\n Possible C/C++ prototypes are:\n Material()\n Material(float const *,float const *,float const *,float const *,float const)\n Material(Material const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Material(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Material",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Material" "', argument " "1"" of type '" "Material *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_diffuse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_diffuse",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_diffuse" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float *)((Material const *)arg1)->diffuse();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_diffuseR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_diffuseR",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_diffuseR" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->diffuseR();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_diffuseG(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_diffuseG",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_diffuseG" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->diffuseG();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_diffuseB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_diffuseB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_diffuseB" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->diffuseB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_diffuseA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_diffuseA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_diffuseA" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->diffuseA();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_specular(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_specular",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_specular" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float *)((Material const *)arg1)->specular();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_specularR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_specularR",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_specularR" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->specularR();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_specularG(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_specularG",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_specularG" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->specularG();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_specularB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_specularB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_specularB" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->specularB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_specularA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_specularA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_specularA" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->specularA();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_ambient(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_ambient",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_ambient" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float *)((Material const *)arg1)->ambient();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_ambientR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_ambientR",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_ambientR" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->ambientR();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_ambientG(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_ambientG",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_ambientG" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->ambientG();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_ambientB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_ambientB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_ambientB" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->ambientB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_ambientA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_ambientA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_ambientA" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->ambientA();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_emission(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_emission",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_emission" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float *)((Material const *)arg1)->emission();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_emissionR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_emissionR",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_emissionR" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->emissionR();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_emissionG(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_emissionG",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_emissionG" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->emissionG();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_emissionB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_emissionB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_emissionB" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->emissionB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_emissionA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_emissionA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_emissionA" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->emissionA();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_shininess(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Material_shininess",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_shininess" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ {
+ try {
+ result = (float)((Material const *)arg1)->shininess();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_SetDiffuse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ float arg5 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Material_SetDiffuse",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_SetDiffuse" "', argument " "1"" of type '" "Material *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Material_SetDiffuse" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Material_SetDiffuse" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Material_SetDiffuse" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Material_SetDiffuse" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ {
+ try {
+ (arg1)->SetDiffuse(arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_SetSpecular(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ float arg5 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Material_SetSpecular",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_SetSpecular" "', argument " "1"" of type '" "Material *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Material_SetSpecular" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Material_SetSpecular" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Material_SetSpecular" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Material_SetSpecular" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ {
+ try {
+ (arg1)->SetSpecular(arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_SetAmbient(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ float arg5 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Material_SetAmbient",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_SetAmbient" "', argument " "1"" of type '" "Material *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Material_SetAmbient" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Material_SetAmbient" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Material_SetAmbient" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Material_SetAmbient" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ {
+ try {
+ (arg1)->SetAmbient(arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_SetEmission(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ float arg5 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Material_SetEmission",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_SetEmission" "', argument " "1"" of type '" "Material *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Material_SetEmission" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Material_SetEmission" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Material_SetEmission" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Material_SetEmission" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ {
+ try {
+ (arg1)->SetEmission(arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material_SetShininess(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Material_SetShininess",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material_SetShininess" "', argument " "1"" of type '" "Material *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Material_SetShininess" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (arg1)->SetShininess(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ Material *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Material___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material___ne__" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Material, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Material___ne__" "', argument " "2"" of type '" "Material const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Material___ne__" "', argument " "2"" of type '" "Material const &""'");
+ }
+ arg2 = reinterpret_cast< Material * >(argp2);
+ {
+ try {
+ result = (bool)((Material const *)arg1)->operator !=((Material const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Material___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Material *arg1 = (Material *) 0 ;
+ Material *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Material___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Material, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Material___eq__" "', argument " "1"" of type '" "Material const *""'");
+ }
+ arg1 = reinterpret_cast< Material * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Material, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Material___eq__" "', argument " "2"" of type '" "Material const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Material___eq__" "', argument " "2"" of type '" "Material const &""'");
+ }
+ arg2 = reinterpret_cast< Material * >(argp2);
+ {
+ try {
+ result = (bool)((Material const *)arg1)->operator ==((Material const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Material_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Material, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN int POINT_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable POINT is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *POINT_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::POINT));
+ return pyobj;
+}
+
+
+SWIGINTERN int S_VERTEX_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable S_VERTEX is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *S_VERTEX_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::S_VERTEX));
+ return pyobj;
+}
+
+
+SWIGINTERN int VIEW_VERTEX_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable VIEW_VERTEX is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *VIEW_VERTEX_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::VIEW_VERTEX));
+ return pyobj;
+}
+
+
+SWIGINTERN int NON_T_VERTEX_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable NON_T_VERTEX is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *NON_T_VERTEX_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::NON_T_VERTEX));
+ return pyobj;
+}
+
+
+SWIGINTERN int T_VERTEX_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable T_VERTEX is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *T_VERTEX_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::T_VERTEX));
+ return pyobj;
+}
+
+
+SWIGINTERN int CUSP_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable CUSP is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *CUSP_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::CUSP));
+ return pyobj;
+}
+
+
+SWIGINTERN int NO_FEATURE_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable NO_FEATURE is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *NO_FEATURE_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::NO_FEATURE));
+ return pyobj;
+}
+
+
+SWIGINTERN int SILHOUETTE_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable SILHOUETTE is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *SILHOUETTE_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::SILHOUETTE));
+ return pyobj;
+}
+
+
+SWIGINTERN int BORDER_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable BORDER is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *BORDER_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::BORDER));
+ return pyobj;
+}
+
+
+SWIGINTERN int CREASE_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable CREASE is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *CREASE_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::CREASE));
+ return pyobj;
+}
+
+
+SWIGINTERN int RIDGE_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable RIDGE is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *RIDGE_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::RIDGE));
+ return pyobj;
+}
+
+
+SWIGINTERN int VALLEY_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable VALLEY is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *VALLEY_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::VALLEY));
+ return pyobj;
+}
+
+
+SWIGINTERN int SUGGESTIVE_CONTOUR_set(PyObject *) {
+ SWIG_Error(SWIG_AttributeError,"Variable SUGGESTIVE_CONTOUR is read-only.");
+ return 1;
+}
+
+
+SWIGINTERN PyObject *SUGGESTIVE_CONTOUR_get(void) {
+ PyObject *pyobj = 0;
+
+ pyobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(Nature::SUGGESTIVE_CONTOUR));
+ return pyobj;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getExactTypeName" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = ((Interface0D const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getX" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (real)((Interface0D const *)arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getY" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (real)((Interface0D const *)arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getZ" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (real)((Interface0D const *)arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getPoint3D" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = ((Interface0D const *)arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getProjectedX" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (real)((Interface0D const *)arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getProjectedY" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (real)((Interface0D const *)arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getProjectedZ" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (real)((Interface0D const *)arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getPoint2D" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = ((Interface0D const *)arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface0D_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getFEdge" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interface0D_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Interface0D_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getId" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = ((Interface0D const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_getNature" "', argument " "1"" of type '" "Interface0D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)((Interface0D const *)arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_castToSVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_castToViewVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_castToNonTVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0D_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0D_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0D_castToTVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (TVertex *)(arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Interface0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Interface0D")) SWIG_fail;
+ {
+ try {
+ result = (Interface0D *)new Interface0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Interface0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Interface0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Interface0D" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Interface0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Interface0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_delete_Interface0DIteratorNested(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Interface0DIteratorNested",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Interface0DIteratorNested" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getExactTypeName" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = ((Interface0DIteratorNested const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Interface0D *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getObject" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ {
+ Interface0D &_result_ref = (arg1)->operator *();
+ result = (Interface0D *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0D, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Interface0D *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested___deref__" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (Interface0D *)(arg1)->operator ->();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0D, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_increment" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ (arg1)->increment();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_decrement(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_decrement",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_decrement" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ (arg1)->decrement();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_isBegin" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (bool)((Interface0DIteratorNested const *)arg1)->isBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_isEnd" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (bool)((Interface0DIteratorNested const *)arg1)->isEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Interface0DIteratorNested *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface0DIteratorNested___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested___eq__" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIteratorNested, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interface0DIteratorNested___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Interface0DIteratorNested___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIteratorNested * >(argp2);
+ {
+ try {
+ result = (bool)((Interface0DIteratorNested const *)arg1)->operator ==((Interface0DIteratorNested const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Interface0DIteratorNested *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface0DIteratorNested___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested___ne__" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIteratorNested, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interface0DIteratorNested___ne__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Interface0DIteratorNested___ne__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIteratorNested * >(argp2);
+ {
+ try {
+ result = (bool)((Interface0DIteratorNested const *)arg1)->operator !=((Interface0DIteratorNested const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_t",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_t" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (float)((Interface0DIteratorNested const *)arg1)->t();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_u" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (float)((Interface0DIteratorNested const *)arg1)->u();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Interface0DIteratorNested *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_copy",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_copy" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (Interface0DIteratorNested *)((Interface0DIteratorNested const *)arg1)->copy();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getX" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getY" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getZ" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getPoint3D" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getProjectedX" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getProjectedY" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getProjectedZ" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getPoint2D" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface0DIteratorNested_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getFEdge" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interface0DIteratorNested_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Interface0DIteratorNested_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(*arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getId" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (*arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_getNature" "', argument " "1"" of type '" "Interface0DIteratorNested const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)(*arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_castToSVertex" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_castToViewVertex" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_castToNonTVertex" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(*arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIteratorNested_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIteratorNested_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIteratorNested_castToTVertex" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (TVertex *)(*arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Interface0DIteratorNested_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Interface0DIteratorNested, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Interface0DIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIteratorNested *arg1 = (Interface0DIteratorNested *) 0 ;
+ Interface0DIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Interface0DIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIteratorNested, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Interface0DIterator" "', argument " "1"" of type '" "Interface0DIteratorNested *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIteratorNested * >(argp1);
+ {
+ try {
+ result = (Interface0DIterator *)new Interface0DIterator(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Interface0DIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Interface0DIterator")) SWIG_fail;
+ {
+ try {
+ result = (Interface0DIterator *)new Interface0DIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Interface0DIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = 0 ;
+ Interface0DIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Interface0DIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Interface0DIterator" "', argument " "1"" of type '" "Interface0DIterator const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Interface0DIterator" "', argument " "1"" of type '" "Interface0DIterator const &""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (Interface0DIterator *)new Interface0DIterator((Interface0DIterator const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Interface0DIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Interface0DIterator__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Interface0DIteratorNested, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Interface0DIterator__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Interface0DIterator__SWIG_2(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Interface0DIterator'.\n Possible C/C++ prototypes are:\n Interface0DIterator(Interface0DIteratorNested *)\n Interface0DIterator()\n Interface0DIterator(Interface0DIterator const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Interface0DIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Interface0DIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Interface0DIterator" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getExactTypeName" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = ((Interface0DIterator const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Interface0D *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getObject" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ {
+ Interface0D &_result_ref = (arg1)->operator *();
+ result = (Interface0D *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0D, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Interface0D *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator___deref__" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (Interface0D *)(arg1)->operator ->();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Interface0D, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_increment" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ (arg1)->increment();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_decrement(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_decrement",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_decrement" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ (arg1)->decrement();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_isBegin" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (bool)((Interface0DIterator const *)arg1)->isBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_isEnd" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (bool)((Interface0DIterator const *)arg1)->isEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface0DIterator___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator___eq__" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interface0DIterator___eq__" "', argument " "2"" of type '" "Interface0DIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Interface0DIterator___eq__" "', argument " "2"" of type '" "Interface0DIterator const &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (bool)((Interface0DIterator const *)arg1)->operator ==((Interface0DIterator const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface0DIterator___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator___ne__" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interface0DIterator___ne__" "', argument " "2"" of type '" "Interface0DIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Interface0DIterator___ne__" "', argument " "2"" of type '" "Interface0DIterator const &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (bool)((Interface0DIterator const *)arg1)->operator !=((Interface0DIterator const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_t",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_t" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (float)((Interface0DIterator const *)arg1)->t();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_u" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (float)((Interface0DIterator const *)arg1)->u();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getX" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getY" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getZ" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getPoint3D" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getProjectedX" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getProjectedY" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getProjectedZ" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getPoint2D" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface0DIterator_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getFEdge" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Interface0DIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Interface0DIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(*arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getId" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_getNature" "', argument " "1"" of type '" "Interface0DIterator const *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)(*arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_castToSVertex" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_castToViewVertex" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_castToNonTVertex" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(*arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface0DIterator_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0DIterator *arg1 = (Interface0DIterator *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface0DIterator_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0DIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface0DIterator_castToTVertex" "', argument " "1"" of type '" "Interface0DIterator *""'");
+ }
+ arg1 = reinterpret_cast< Interface0DIterator * >(argp1);
+ {
+ try {
+ result = (TVertex *)(*arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Interface0DIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Interface0DIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Interface1D_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_getExactTypeName" "', argument " "1"" of type '" "Interface1D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = ((Interface1D const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_verticesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_verticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_verticesBegin" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_verticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_verticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_verticesEnd" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_pointsBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface1D_pointsBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_pointsBegin" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Interface1D_pointsBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_pointsBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_pointsBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_pointsBegin" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_pointsBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Interface1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Interface1D_pointsBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Interface1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Interface1D_pointsBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Interface1D_pointsBegin'.\n Possible C/C++ prototypes are:\n pointsBegin(float)\n pointsBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_pointsEnd__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface1D_pointsEnd",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_pointsEnd" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Interface1D_pointsEnd" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsEnd(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_pointsEnd__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_pointsEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_pointsEnd" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_pointsEnd(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Interface1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Interface1D_pointsEnd__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Interface1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Interface1D_pointsEnd__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Interface1D_pointsEnd'.\n Possible C/C++ prototypes are:\n pointsEnd(float)\n pointsEnd()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_getLength2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_getLength2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_getLength2D" "', argument " "1"" of type '" "Interface1D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (real)((Interface1D const *)arg1)->getLength2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_getId" "', argument " "1"" of type '" "Interface1D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = ((Interface1D const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ Nature::EdgeNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_getNature" "', argument " "1"" of type '" "Interface1D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (Nature::EdgeNature)((Interface1D const *)arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_getTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Interface1D_getTimeStamp",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_getTimeStamp" "', argument " "1"" of type '" "Interface1D const *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (unsigned int)((Interface1D const *)arg1)->getTimeStamp();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Interface1D_setTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Interface1D_setTimeStamp",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Interface1D_setTimeStamp" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Interface1D_setTimeStamp" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (arg1)->setTimeStamp(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Interface1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Interface1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Interface1D" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Interface1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Interface1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_integrateUnsigned__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<unsigned int > *arg1 = 0 ;
+ Interface0DIterator arg2 ;
+ Interface0DIterator arg3 ;
+ IntegrationType arg4 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:integrateUnsigned",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "integrateUnsigned" "', argument " "1"" of type '" "UnaryFunction0D<unsigned int > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateUnsigned" "', argument " "1"" of type '" "UnaryFunction0D<unsigned int > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<unsigned int > * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "integrateUnsigned" "', argument " "2"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateUnsigned" "', argument " "2"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "integrateUnsigned" "', argument " "3"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateUnsigned" "', argument " "3"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "integrateUnsigned" "', argument " "4"" of type '" "IntegrationType""'");
+ }
+ arg4 = static_cast< IntegrationType >(val4);
+ {
+ try {
+ result = (unsigned int)integrate<unsigned int >(*arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_integrateUnsigned__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<unsigned int > *arg1 = 0 ;
+ Interface0DIterator arg2 ;
+ Interface0DIterator arg3 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:integrateUnsigned",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "integrateUnsigned" "', argument " "1"" of type '" "UnaryFunction0D<unsigned int > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateUnsigned" "', argument " "1"" of type '" "UnaryFunction0D<unsigned int > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<unsigned int > * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "integrateUnsigned" "', argument " "2"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateUnsigned" "', argument " "2"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "integrateUnsigned" "', argument " "3"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateUnsigned" "', argument " "3"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ {
+ try {
+ result = (unsigned int)integrate<unsigned int >(*arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_integrateUnsigned(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_integrateUnsigned__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_integrateUnsigned__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'integrateUnsigned'.\n Possible C/C++ prototypes are:\n integrate<(unsigned int)>(UnaryFunction0D<unsigned int > &,Interface0DIterator,Interface0DIterator,IntegrationType)\n integrate<(unsigned int)>(UnaryFunction0D<unsigned int > &,Interface0DIterator,Interface0DIterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_integrateFloat__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<float > *arg1 = 0 ;
+ Interface0DIterator arg2 ;
+ Interface0DIterator arg3 ;
+ IntegrationType arg4 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:integrateFloat",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTfloat_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "integrateFloat" "', argument " "1"" of type '" "UnaryFunction0D<float > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateFloat" "', argument " "1"" of type '" "UnaryFunction0D<float > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<float > * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "integrateFloat" "', argument " "2"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateFloat" "', argument " "2"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "integrateFloat" "', argument " "3"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateFloat" "', argument " "3"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "integrateFloat" "', argument " "4"" of type '" "IntegrationType""'");
+ }
+ arg4 = static_cast< IntegrationType >(val4);
+ {
+ try {
+ result = (float)integrate<float >(*arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_integrateFloat__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<float > *arg1 = 0 ;
+ Interface0DIterator arg2 ;
+ Interface0DIterator arg3 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:integrateFloat",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTfloat_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "integrateFloat" "', argument " "1"" of type '" "UnaryFunction0D<float > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateFloat" "', argument " "1"" of type '" "UnaryFunction0D<float > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<float > * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "integrateFloat" "', argument " "2"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateFloat" "', argument " "2"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "integrateFloat" "', argument " "3"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateFloat" "', argument " "3"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ {
+ try {
+ result = (float)integrate<float >(*arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_integrateFloat(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_integrateFloat__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_integrateFloat__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'integrateFloat'.\n Possible C/C++ prototypes are:\n integrate<(float)>(UnaryFunction0D<float > &,Interface0DIterator,Interface0DIterator,IntegrationType)\n integrate<(float)>(UnaryFunction0D<float > &,Interface0DIterator,Interface0DIterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_integrateDouble__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = 0 ;
+ Interface0DIterator arg2 ;
+ Interface0DIterator arg3 ;
+ IntegrationType arg4 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:integrateDouble",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "integrateDouble" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateDouble" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "integrateDouble" "', argument " "2"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateDouble" "', argument " "2"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "integrateDouble" "', argument " "3"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateDouble" "', argument " "3"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "integrateDouble" "', argument " "4"" of type '" "IntegrationType""'");
+ }
+ arg4 = static_cast< IntegrationType >(val4);
+ {
+ try {
+ result = (double)integrate<double >(*arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_integrateDouble__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = 0 ;
+ Interface0DIterator arg2 ;
+ Interface0DIterator arg3 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:integrateDouble",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "integrateDouble" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateDouble" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "integrateDouble" "', argument " "2"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateDouble" "', argument " "2"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface0DIterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "integrateDouble" "', argument " "3"" of type '" "Interface0DIterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "integrateDouble" "', argument " "3"" of type '" "Interface0DIterator""'");
+ } else {
+ Interface0DIterator * temp = reinterpret_cast< Interface0DIterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ {
+ try {
+ result = (double)integrate<double >(*arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_integrateDouble(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_integrateDouble__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_Interface0DIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_integrateDouble__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'integrateDouble'.\n Possible C/C++ prototypes are:\n integrate<(double)>(UnaryFunction0D<double > &,Interface0DIterator,Interface0DIterator,IntegrationType)\n integrate<(double)>(UnaryFunction0D<double > &,Interface0DIterator,Interface0DIterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getExactTypeName" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = ((SVertex const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getX" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)((SVertex const *)arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getY" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)((SVertex const *)arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getZ" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)((SVertex const *)arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getPoint3D" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = ((SVertex const *)arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getProjectedX" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)((SVertex const *)arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getProjectedY" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)((SVertex const *)arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getProjectedZ" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)((SVertex const *)arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getPoint2D" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = ((SVertex const *)arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getFEdge" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVertex_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getId" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = ((SVertex const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getNature" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)((SVertex const *)arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_castToSVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_castToViewVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_castToNonTVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_castToTVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (TVertex *)(arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_userdata_set" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_userdata_get" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ result = (void *) ((arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVertex__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_SVertex")) SWIG_fail;
+ {
+ try {
+ result = (SVertex *)new SVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVertex__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Geometry::Vec3r *arg1 = 0 ;
+ Id *arg2 = 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_SVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SVertex" "', argument " "1"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_SVertex" "', argument " "1"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg1 = reinterpret_cast< Geometry::Vec3r * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_SVertex" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_SVertex" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ result = (SVertex *)new SVertex((Geometry::Vec3r const &)*arg1,(Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVertex__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_SVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_SVertex, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SVertex" "', argument " "1"" of type '" "SVertex &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_SVertex" "', argument " "1"" of type '" "SVertex &""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (SVertex *)new SVertex(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVertex(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_SVertex__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_SVertex__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Id, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_SVertex__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_SVertex'.\n Possible C/C++ prototypes are:\n SVertex()\n SVertex(Geometry::Vec3r const &,Id const &)\n SVertex(SVertex &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_SVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_SVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_dupplicate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_dupplicate",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_dupplicate" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->dupplicate();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex___eq__" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_SVertex, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex___eq__" "', argument " "2"" of type '" "SVertex const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVertex___eq__" "', argument " "2"" of type '" "SVertex const &""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ==((SVertex const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_point3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_point3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_point3D" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = ((SVertex const *)arg1)->point3D();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_point2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_point2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_point2D" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = ((SVertex const *)arg1)->point2D();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_normals(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SwigValueWrapper<set<VecMat::Vec3<double > > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_normals",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_normals" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->normals();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new set<Geometry::Vec3r >(static_cast< const set<Geometry::Vec3r >& >(result))), SWIGTYPE_p_setTVecMat__Vec3Tdouble_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_normalsSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_normalsSize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_normalsSize" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (unsigned int)((SVertex const *)arg1)->normalsSize();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_fedges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ std::vector<FEdge * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_fedges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_fedges" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ {
+ std::vector<FEdge * > const &_result_ref = (arg1)->fedges();
+ result = (std::vector<FEdge * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_fedges_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex::fedges_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_fedges_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_fedges_begin" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->fedges_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new SVertex::fedges_container::iterator(static_cast< const SVertex::fedges_container::iterator& >(result))), SWIGTYPE_p_SVertex__fedges_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_fedges_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex::fedges_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_fedges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_fedges_end" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->fedges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new SVertex::fedges_container::iterator(static_cast< const SVertex::fedges_container::iterator& >(result))), SWIGTYPE_p_SVertex__fedges_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_shape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_shape" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (SShape *)(arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_z(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_z" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)((SVertex const *)arg1)->z();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_viewvertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_viewvertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_viewvertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->viewvertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_SetPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_SetPoint3D",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_SetPoint3D" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_SetPoint3D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVertex_SetPoint3D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (arg1)->SetPoint3D((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_SetPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_SetPoint2D",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_SetPoint2D" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_SetPoint2D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVertex_SetPoint2D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (arg1)->SetPoint2D((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_AddNormal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_AddNormal",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_AddNormal" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_AddNormal" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVertex_AddNormal" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (arg1)->AddNormal((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_setCurvatureInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ CurvatureInfo *arg2 = (CurvatureInfo *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_setCurvatureInfo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_setCurvatureInfo" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CurvatureInfo, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_setCurvatureInfo" "', argument " "2"" of type '" "CurvatureInfo *""'");
+ }
+ arg2 = reinterpret_cast< CurvatureInfo * >(argp2);
+ {
+ try {
+ (arg1)->setCurvatureInfo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_getCurvatureInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ CurvatureInfo *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_getCurvatureInfo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_getCurvatureInfo" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (CurvatureInfo *)((SVertex const *)arg1)->getCurvatureInfo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvatureInfo, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_setCurvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_setCurvatureFredo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_setCurvatureFredo" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVertex_setCurvatureFredo" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ {
+ try {
+ (arg1)->setCurvatureFredo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_setDirectionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec2r arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_setDirectionFredo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_setDirectionFredo" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_setDirectionFredo" "', argument " "2"" of type '" "Geometry::Vec2r""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVertex_setDirectionFredo" "', argument " "2"" of type '" "Geometry::Vec2r""'");
+ } else {
+ Geometry::Vec2r * temp = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ try {
+ (arg1)->setDirectionFredo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_curvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_curvatureFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_curvatureFredo" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)(arg1)->curvatureFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_directionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec2r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_directionFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_directionFredo" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->directionFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2r(static_cast< const Geometry::Vec2r& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_SetId" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVertex_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_SetFEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ std::vector<FEdge * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_SetFEdges",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_SetFEdges" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_SetFEdges" "', argument " "2"" of type '" "std::vector<FEdge * > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVertex_SetFEdges" "', argument " "2"" of type '" "std::vector<FEdge * > const &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<FEdge * > * >(argp2);
+ {
+ try {
+ (arg1)->SetFEdges((std::vector<FEdge * > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_SetShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SShape *arg2 = (SShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_SetShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_SetShape" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_SetShape" "', argument " "2"" of type '" "SShape *""'");
+ }
+ arg2 = reinterpret_cast< SShape * >(argp2);
+ {
+ try {
+ (arg1)->SetShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_SetViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_SetViewVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_SetViewVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_SetViewVertex" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetViewVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_AddFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVertex_AddFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_AddFEdge" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_AddFEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddFEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_Replace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ FEdge *arg3 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SVertex_Replace",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_Replace" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVertex_Replace" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SVertex_Replace" "', argument " "3"" of type '" "FEdge *""'");
+ }
+ arg3 = reinterpret_cast< FEdge * >(argp3);
+ {
+ try {
+ (arg1)->Replace(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_fedge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_fedge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_fedge" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->fedge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_point2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_point2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_point2d" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = ((SVertex const *)arg1)->point2d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_point3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_point3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_point3d" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = ((SVertex const *)arg1)->point3d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_normal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_normal",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_normal" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = ((SVertex const *)arg1)->normal();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_shape_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_shape_id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_shape_id" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = ((SVertex const *)arg1)->shape_id();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_shape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_shape" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (SShape *)((SVertex const *)arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_shape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVertex_shape__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVertex_shape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SVertex_shape'.\n Possible C/C++ prototypes are:\n shape()\n shape()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_shape_importance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_shape_importance",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_shape_importance" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (float)((SVertex const *)arg1)->shape_importance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_qi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_qi",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_qi" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (int)((SVertex const *)arg1)->qi();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_occluders_begin" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = ((SVertex const *)arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_occluders_end" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = ((SVertex const *)arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_occluders_empty" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (bool)((SVertex const *)arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_occluders_size" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (int)((SVertex const *)arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_occludee" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = ((SVertex const *)arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_occluded_shape" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (SShape *)((SVertex const *)arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_occludee_empty" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (bool)((SVertex const *)arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVertex_z_discontinuity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVertex_z_discontinuity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVertex_z_discontinuity" "', argument " "1"" of type '" "SVertex const *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (real)((SVertex const *)arg1)->z_discontinuity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *SVertex_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_SVertex, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_FEdge_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_getExactTypeName" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = ((FEdge const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_getLength2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_getLength2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_getLength2D" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (real)((FEdge const *)arg1)->getLength2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_getId" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = ((FEdge const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_userdata_set" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_userdata_get" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ result = (void *) ((arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdge__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_FEdge")) SWIG_fail;
+ {
+ try {
+ result = (FEdge *)new FEdge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdge__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_FEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdge" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_FEdge" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ result = (FEdge *)new FEdge(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdge__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_FEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_FEdge, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdge" "', argument " "1"" of type '" "FEdge &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FEdge" "', argument " "1"" of type '" "FEdge &""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (FEdge *)new FEdge(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdge(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_FEdge__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdge__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdge__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_FEdge'.\n Possible C/C++ prototypes are:\n FEdge()\n FEdge(SVertex *,SVertex *)\n FEdge(FEdge &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_FEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_FEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FEdge" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_dupplicate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_dupplicate",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_dupplicate" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->dupplicate();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_vertexA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_vertexA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_vertexA" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->vertexA();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_vertexB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_vertexB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_vertexB" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->vertexB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Nature::EdgeNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_getNature" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (Nature::EdgeNature)((FEdge const *)arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_nextEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_nextEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_nextEdge" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->nextEdge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_previousEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_previousEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_previousEdge" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->previousEdge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_shape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_shape" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (SShape *)(arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_invisibility(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_invisibility",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_invisibility" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (int)((FEdge const *)arg1)->invisibility();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_viewedge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_viewedge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_viewedge" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (ViewEdge *)((FEdge const *)arg1)->viewedge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_center3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_center3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_center3d" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->center3d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_center2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_center2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_center2d" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->center2d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_aFace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_aFace",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_aFace" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = ((FEdge const *)arg1)->aFace();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_getOccludeeIntersection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_getOccludeeIntersection",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_getOccludeeIntersection" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (arg1)->getOccludeeIntersection();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_getOccludeeEmpty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_getOccludeeEmpty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_getOccludeeEmpty" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (bool)(arg1)->getOccludeeEmpty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_isSmooth(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_isSmooth",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_isSmooth" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (bool)((FEdge const *)arg1)->isSmooth();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetVertexA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetVertexA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetVertexA" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_SetVertexA" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetVertexA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetVertexB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetVertexB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetVertexB" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_SetVertexB" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetVertexB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetId" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdge_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetNextEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetNextEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetNextEdge" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_SetNextEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetNextEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetPreviousEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetPreviousEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetPreviousEdge" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_SetPreviousEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetPreviousEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Nature::EdgeNature arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned short val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetNature",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetNature" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_short(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdge_SetNature" "', argument " "2"" of type '" "Nature::EdgeNature""'");
+ }
+ arg2 = static_cast< Nature::EdgeNature >(val2);
+ {
+ try {
+ (arg1)->SetNature(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetViewEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetViewEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetViewEdge" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_SetViewEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetViewEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetaFace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Polygon3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetaFace",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetaFace" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Polygon3r, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_SetaFace" "', argument " "2"" of type '" "Polygon3r &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdge_SetaFace" "', argument " "2"" of type '" "Polygon3r &""'");
+ }
+ arg2 = reinterpret_cast< Polygon3r * >(argp2);
+ {
+ try {
+ (arg1)->SetaFace(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetOccludeeIntersection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetOccludeeIntersection",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetOccludeeIntersection" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_SetOccludeeIntersection" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdge_SetOccludeeIntersection" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (arg1)->SetOccludeeIntersection((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetOccludeeEmpty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ bool arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetOccludeeEmpty",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetOccludeeEmpty" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdge_SetOccludeeEmpty" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ (arg1)->SetOccludeeEmpty(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_SetSmooth(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ bool arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_SetSmooth",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_SetSmooth" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdge_SetSmooth" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ (arg1)->SetSmooth(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_CommonVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_CommonVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_CommonVertex" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdge_CommonVertex" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ result = (SVertex *)FEdge::CommonVertex(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_min2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_min2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_min2d" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (SVertex *)((FEdge const *)arg1)->min2d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_max2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_max2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_max2d" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (SVertex *)((FEdge const *)arg1)->max2d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_shape_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_shape_id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_shape_id" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = ((FEdge const *)arg1)->shape_id();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_shape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_shape" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (SShape *)((FEdge const *)arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_shape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdge_shape__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdge_shape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdge_shape'.\n Possible C/C++ prototypes are:\n shape()\n shape()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_shape_importance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_shape_importance",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_shape_importance" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (float)((FEdge const *)arg1)->shape_importance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_qi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_qi",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_qi" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (int)((FEdge const *)arg1)->qi();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_occluders_begin" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = ((FEdge const *)arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_occluders_end" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = ((FEdge const *)arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_occluders_empty" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (bool)((FEdge const *)arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_occluders_size" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (int)((FEdge const *)arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_occludee" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = ((FEdge const *)arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_occluded_shape" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (SShape *)((FEdge const *)arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_occludee_empty" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (bool)((FEdge const *)arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_z_discontinuity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_z_discontinuity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_z_discontinuity" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (real)((FEdge const *)arg1)->z_discontinuity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_viewedge_nature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_viewedge_nature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_viewedge_nature" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (int)((FEdge const *)arg1)->viewedge_nature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_orientation2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_orientation2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_orientation2d" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = ((FEdge const *)arg1)->orientation2d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_orientation3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_orientation3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_orientation3d" "', argument " "1"" of type '" "FEdge const *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = ((FEdge const *)arg1)->orientation3d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_verticesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_verticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_verticesBegin" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_verticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_verticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_verticesEnd" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_pointsBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_pointsBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_pointsBegin" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdge_pointsBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_pointsBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_pointsBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_pointsBegin" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_pointsBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdge_pointsBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_FEdge_pointsBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdge_pointsBegin'.\n Possible C/C++ prototypes are:\n pointsBegin(float)\n pointsBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_pointsEnd__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdge_pointsEnd",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_pointsEnd" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdge_pointsEnd" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsEnd(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_pointsEnd__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *arg1 = (FEdge *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdge_pointsEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdge_pointsEnd" "', argument " "1"" of type '" "FEdge *""'");
+ }
+ arg1 = reinterpret_cast< FEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdge_pointsEnd(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdge_pointsEnd__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_FEdge_pointsEnd__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdge_pointsEnd'.\n Possible C/C++ prototypes are:\n pointsEnd(float)\n pointsEnd()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *FEdge_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_FEdge, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSVertexIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_FEdgeSVertexIterator")) SWIG_fail;
+ {
+ try {
+ result = (FEdgeInternal::SVertexIterator *)new FEdgeInternal::SVertexIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeInternal__SVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSVertexIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = 0 ;
+ FEdgeInternal::SVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_FEdgeSVertexIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdgeSVertexIterator" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FEdgeSVertexIterator" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const &""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (FEdgeInternal::SVertexIterator *)new FEdgeInternal::SVertexIterator((FEdgeInternal::SVertexIterator const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeInternal__SVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSVertexIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ FEdgeInternal::SVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_FEdgeSVertexIterator",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdgeSVertexIterator" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_FEdgeSVertexIterator" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ result = (FEdgeInternal::SVertexIterator *)new FEdgeInternal::SVertexIterator(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeInternal__SVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSVertexIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_FEdgeSVertexIterator__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdgeSVertexIterator__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdgeSVertexIterator__SWIG_2(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_FEdgeSVertexIterator'.\n Possible C/C++ prototypes are:\n FEdgeInternal::SVertexIterator()\n FEdgeInternal::SVertexIterator(FEdgeInternal::SVertexIterator const &)\n FEdgeInternal::SVertexIterator(SVertex *,FEdge *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getExactTypeName" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = ((FEdgeInternal::SVertexIterator const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getObject" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ SVertex &_result_ref = (arg1)->operator *();
+ result = (SVertex *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator___deref__" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->operator ->();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_increment" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ (arg1)->increment();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_decrement(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_decrement",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_decrement" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ (arg1)->decrement();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_isBegin" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)((FEdgeInternal::SVertexIterator const *)arg1)->isBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_isEnd" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)((FEdgeInternal::SVertexIterator const *)arg1)->isEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Interface0DIteratorNested *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator___eq__" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIteratorNested, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSVertexIterator___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIteratorNested * >(argp2);
+ {
+ try {
+ result = (bool)((FEdgeInternal::SVertexIterator const *)arg1)->operator ==((Interface0DIteratorNested const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_t",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_t" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)((FEdgeInternal::SVertexIterator const *)arg1)->t();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_u" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)((FEdgeInternal::SVertexIterator const *)arg1)->u();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ FEdgeInternal::SVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_copy",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_copy" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (FEdgeInternal::SVertexIterator *)((FEdgeInternal::SVertexIterator const *)arg1)->copy();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_FEdgeSVertexIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_FEdgeSVertexIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FEdgeSVertexIterator" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getX" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getY" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getZ" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getPoint3D" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getProjectedX" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getProjectedY" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getProjectedZ" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getPoint2D" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getFEdge" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSVertexIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(*arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getId" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getNature" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)(*arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_castToSVertex" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_castToViewVertex" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_castToNonTVertex" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(*arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_castToTVertex" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (TVertex *)(*arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_userdata_set" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (*arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_userdata_get" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ result = (void *) ((*arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_dupplicate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_dupplicate",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_dupplicate" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->dupplicate();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_point3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_point3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_point3D" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point3D();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_point2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_point2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_point2D" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point2D();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_normals(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SwigValueWrapper<set<VecMat::Vec3<double > > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_normals",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_normals" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->normals();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new set<Geometry::Vec3r >(static_cast< const set<Geometry::Vec3r >& >(result))), SWIGTYPE_p_setTVecMat__Vec3Tdouble_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_normalsSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_normalsSize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_normalsSize" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (unsigned int)(*arg1)->normalsSize();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_fedges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ std::vector<FEdge * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_fedges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_fedges" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ std::vector<FEdge * > const &_result_ref = (*arg1)->fedges();
+ result = (std::vector<FEdge * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_fedges_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SVertex::fedges_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_fedges_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_fedges_begin" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->fedges_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new SVertex::fedges_container::iterator(static_cast< const SVertex::fedges_container::iterator& >(result))), SWIGTYPE_p_SVertex__fedges_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_fedges_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SVertex::fedges_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_fedges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_fedges_end" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->fedges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new SVertex::fedges_container::iterator(static_cast< const SVertex::fedges_container::iterator& >(result))), SWIGTYPE_p_SVertex__fedges_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_shape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_shape" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_shape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_shape" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_shape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgeSVertexIterator_shape__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgeSVertexIterator_shape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdgeSVertexIterator_shape'.\n Possible C/C++ prototypes are:\n shape()\n shape()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_z(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_z" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->z();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_viewvertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_viewvertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_viewvertex" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->viewvertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_SetPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_SetPoint3D",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_SetPoint3D" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_SetPoint3D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSVertexIterator_SetPoint3D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (*arg1)->SetPoint3D((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_SetPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_SetPoint2D",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_SetPoint2D" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_SetPoint2D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSVertexIterator_SetPoint2D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (*arg1)->SetPoint2D((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_AddNormal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_AddNormal",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_AddNormal" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_AddNormal" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSVertexIterator_AddNormal" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (*arg1)->AddNormal((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_setCurvatureInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ CurvatureInfo *arg2 = (CurvatureInfo *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_setCurvatureInfo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_setCurvatureInfo" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CurvatureInfo, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_setCurvatureInfo" "', argument " "2"" of type '" "CurvatureInfo *""'");
+ }
+ arg2 = reinterpret_cast< CurvatureInfo * >(argp2);
+ {
+ try {
+ (*arg1)->setCurvatureInfo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_getCurvatureInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ CurvatureInfo *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_getCurvatureInfo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_getCurvatureInfo" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (CurvatureInfo *)(*arg1)->getCurvatureInfo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvatureInfo, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_setCurvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_setCurvatureFredo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_setCurvatureFredo" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgeSVertexIterator_setCurvatureFredo" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ {
+ try {
+ (*arg1)->setCurvatureFredo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_setDirectionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec2r arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_setDirectionFredo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_setDirectionFredo" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_setDirectionFredo" "', argument " "2"" of type '" "Geometry::Vec2r""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSVertexIterator_setDirectionFredo" "', argument " "2"" of type '" "Geometry::Vec2r""'");
+ } else {
+ Geometry::Vec2r * temp = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ try {
+ (*arg1)->setDirectionFredo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_curvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_curvatureFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_curvatureFredo" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->curvatureFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_directionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec2r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_directionFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_directionFredo" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->directionFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2r(static_cast< const Geometry::Vec2r& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_SetId" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSVertexIterator_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (*arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_SetFEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ std::vector<FEdge * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_SetFEdges",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_SetFEdges" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_SetFEdges" "', argument " "2"" of type '" "std::vector<FEdge * > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSVertexIterator_SetFEdges" "', argument " "2"" of type '" "std::vector<FEdge * > const &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<FEdge * > * >(argp2);
+ {
+ try {
+ (*arg1)->SetFEdges((std::vector<FEdge * > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_SetShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SShape *arg2 = (SShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_SetShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_SetShape" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_SetShape" "', argument " "2"" of type '" "SShape *""'");
+ }
+ arg2 = reinterpret_cast< SShape * >(argp2);
+ {
+ try {
+ (*arg1)->SetShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_SetViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_SetViewVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_SetViewVertex" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_SetViewVertex" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetViewVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_AddFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSVertexIterator_AddFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_AddFEdge" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_AddFEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (*arg1)->AddFEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_Replace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ FEdge *arg3 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FEdgeSVertexIterator_Replace",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_Replace" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSVertexIterator_Replace" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FEdgeSVertexIterator_Replace" "', argument " "3"" of type '" "FEdge *""'");
+ }
+ arg3 = reinterpret_cast< FEdge * >(argp3);
+ {
+ try {
+ (*arg1)->Replace(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_fedge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_fedge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_fedge" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (FEdge *)(*arg1)->fedge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_point2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_point2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_point2d" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point2d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_point3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_point3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_point3d" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point3d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_normal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_normal",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_normal" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->normal();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_shape_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_shape_id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_shape_id" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->shape_id();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_shape_importance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_shape_importance",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_shape_importance" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)(*arg1)->shape_importance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_qi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_qi",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_qi" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->qi();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_occluders_begin" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_occluders_end" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_occluders_empty" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_occluders_size" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_occludee" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = (*arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_occluded_shape" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_occludee_empty" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSVertexIterator_z_discontinuity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeInternal::SVertexIterator *arg1 = (FEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSVertexIterator_z_discontinuity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSVertexIterator_z_discontinuity" "', argument " "1"" of type '" "FEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->z_discontinuity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *FEdgeSVertexIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_FEdgeInternal__SVertexIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSharp__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_FEdgeSharp")) SWIG_fail;
+ {
+ try {
+ result = (FEdgeSharp *)new FEdgeSharp();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeSharp, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSharp__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ FEdgeSharp *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_FEdgeSharp",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdgeSharp" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_FEdgeSharp" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ result = (FEdgeSharp *)new FEdgeSharp(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeSharp, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSharp__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = 0 ;
+ FEdgeSharp *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_FEdgeSharp",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_FEdgeSharp, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdgeSharp" "', argument " "1"" of type '" "FEdgeSharp &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FEdgeSharp" "', argument " "1"" of type '" "FEdgeSharp &""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ result = (FEdgeSharp *)new FEdgeSharp(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeSharp, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSharp(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_FEdgeSharp__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdgeSharp, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdgeSharp__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdgeSharp__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_FEdgeSharp'.\n Possible C/C++ prototypes are:\n FEdgeSharp()\n FEdgeSharp(SVertex *,SVertex *)\n FEdgeSharp(FEdgeSharp &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_FEdgeSharp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_FEdgeSharp",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FEdgeSharp" "', argument " "1"" of type '" "FEdgeSharp *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_dupplicate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSharp_dupplicate",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_dupplicate" "', argument " "1"" of type '" "FEdgeSharp *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->dupplicate();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_normalA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSharp_normalA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_normalA" "', argument " "1"" of type '" "FEdgeSharp *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (arg1)->normalA();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_normalB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSharp_normalB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_normalB" "', argument " "1"" of type '" "FEdgeSharp *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (arg1)->normalB();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_aMaterialIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSharp_aMaterialIndex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_aMaterialIndex" "', argument " "1"" of type '" "FEdgeSharp const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ result = (unsigned int)((FEdgeSharp const *)arg1)->aMaterialIndex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_aMaterial(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ Material *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSharp_aMaterial",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_aMaterial" "', argument " "1"" of type '" "FEdgeSharp const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ {
+ Material const &_result_ref = ((FEdgeSharp const *)arg1)->aMaterial();
+ result = (Material *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Material, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_bMaterialIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSharp_bMaterialIndex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_bMaterialIndex" "', argument " "1"" of type '" "FEdgeSharp const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ result = (unsigned int)((FEdgeSharp const *)arg1)->bMaterialIndex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_bMaterial(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ Material *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSharp_bMaterial",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_bMaterial" "', argument " "1"" of type '" "FEdgeSharp const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ {
+ try {
+ {
+ Material const &_result_ref = ((FEdgeSharp const *)arg1)->bMaterial();
+ result = (Material *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Material, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_SetNormalA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSharp_SetNormalA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_SetNormalA" "', argument " "1"" of type '" "FEdgeSharp *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSharp_SetNormalA" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSharp_SetNormalA" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (arg1)->SetNormalA((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_SetNormalB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSharp_SetNormalB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_SetNormalB" "', argument " "1"" of type '" "FEdgeSharp *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSharp_SetNormalB" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSharp_SetNormalB" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (arg1)->SetNormalB((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_SetaMaterialIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSharp_SetaMaterialIndex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_SetaMaterialIndex" "', argument " "1"" of type '" "FEdgeSharp *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgeSharp_SetaMaterialIndex" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (arg1)->SetaMaterialIndex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSharp_SetbMaterialIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSharp *arg1 = (FEdgeSharp *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSharp_SetbMaterialIndex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSharp, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSharp_SetbMaterialIndex" "', argument " "1"" of type '" "FEdgeSharp *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSharp * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgeSharp_SetbMaterialIndex" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (arg1)->SetbMaterialIndex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *FEdgeSharp_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_FEdgeSharp, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSmooth__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_FEdgeSmooth")) SWIG_fail;
+ {
+ try {
+ result = (FEdgeSmooth *)new FEdgeSmooth();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeSmooth, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSmooth__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ FEdgeSmooth *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_FEdgeSmooth",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdgeSmooth" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_FEdgeSmooth" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ result = (FEdgeSmooth *)new FEdgeSmooth(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeSmooth, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSmooth__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = 0 ;
+ FEdgeSmooth *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_FEdgeSmooth",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_FEdgeSmooth, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdgeSmooth" "', argument " "1"" of type '" "FEdgeSmooth &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FEdgeSmooth" "', argument " "1"" of type '" "FEdgeSmooth &""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ {
+ try {
+ result = (FEdgeSmooth *)new FEdgeSmooth(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdgeSmooth, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgeSmooth(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_FEdgeSmooth__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_FEdgeSmooth, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdgeSmooth__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdgeSmooth__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_FEdgeSmooth'.\n Possible C/C++ prototypes are:\n FEdgeSmooth()\n FEdgeSmooth(SVertex *,SVertex *)\n FEdgeSmooth(FEdgeSmooth &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_FEdgeSmooth(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_FEdgeSmooth",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FEdgeSmooth" "', argument " "1"" of type '" "FEdgeSmooth *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSmooth_dupplicate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSmooth_dupplicate",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSmooth_dupplicate" "', argument " "1"" of type '" "FEdgeSmooth *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->dupplicate();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSmooth_face(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSmooth_face",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSmooth_face" "', argument " "1"" of type '" "FEdgeSmooth const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ {
+ try {
+ result = (void *)((FEdgeSmooth const *)arg1)->face();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSmooth_normal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSmooth_normal",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSmooth_normal" "', argument " "1"" of type '" "FEdgeSmooth *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (arg1)->normal();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSmooth_materialIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSmooth_materialIndex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSmooth_materialIndex" "', argument " "1"" of type '" "FEdgeSmooth const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ {
+ try {
+ result = (unsigned int)((FEdgeSmooth const *)arg1)->materialIndex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSmooth_material(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ Material *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgeSmooth_material",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSmooth_material" "', argument " "1"" of type '" "FEdgeSmooth const *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ {
+ try {
+ {
+ Material const &_result_ref = ((FEdgeSmooth const *)arg1)->material();
+ result = (Material *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Material, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSmooth_SetFace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSmooth_SetFace",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSmooth_SetFace" "', argument " "1"" of type '" "FEdgeSmooth *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSmooth_SetFace" "', argument " "2"" of type '" "void *""'");
+ }
+ {
+ try {
+ (arg1)->SetFace(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSmooth_SetNormal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSmooth_SetNormal",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSmooth_SetNormal" "', argument " "1"" of type '" "FEdgeSmooth *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgeSmooth_SetNormal" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgeSmooth_SetNormal" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (arg1)->SetNormal((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgeSmooth_SetMaterialIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdgeSmooth *arg1 = (FEdgeSmooth *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgeSmooth_SetMaterialIndex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_FEdgeSmooth, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgeSmooth_SetMaterialIndex" "', argument " "1"" of type '" "FEdgeSmooth *""'");
+ }
+ arg1 = reinterpret_cast< FEdgeSmooth * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgeSmooth_SetMaterialIndex" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (arg1)->SetMaterialIndex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *FEdgeSmooth_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_FEdgeSmooth, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_SShape_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_userdata_set" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_userdata_get" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ result = (void *) ((arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SShape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_SShape")) SWIG_fail;
+ {
+ try {
+ result = (SShape *)new SShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SShape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_SShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_SShape, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SShape" "', argument " "1"" of type '" "SShape &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_SShape" "', argument " "1"" of type '" "SShape &""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ result = (SShape *)new SShape(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SShape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_SShape__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SShape, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_SShape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_SShape'.\n Possible C/C++ prototypes are:\n SShape()\n SShape(SShape &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_dupplicate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_dupplicate",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_dupplicate" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ result = (SShape *)(arg1)->dupplicate();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_SShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_SShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SShape" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_AddEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_AddEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_AddEdge" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_AddEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_AddNewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_AddNewVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_AddNewVertex" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_AddNewVertex" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->AddNewVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_AddChain(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_AddChain",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_AddChain" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_AddChain" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddChain(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_CreateSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ Geometry::Vec3r *arg3 = 0 ;
+ Id *arg4 = 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:SShape_CreateSVertex",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_CreateSVertex" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_CreateSVertex" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SShape_CreateSVertex" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SShape_CreateSVertex" "', argument " "3"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SShape_CreateSVertex" "', argument " "3"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec3r * >(argp3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SShape_CreateSVertex" "', argument " "4"" of type '" "Id const &""'");
+ }
+ if (!argp4) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SShape_CreateSVertex" "', argument " "4"" of type '" "Id const &""'");
+ }
+ arg4 = reinterpret_cast< Id * >(argp4);
+ {
+ try {
+ result = (SVertex *)(arg1)->CreateSVertex((Geometry::Vec3r const &)*arg2,(Geometry::Vec3r const &)*arg3,(Id const &)*arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_SplitEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ std::vector<Geometry::Vec2r > *arg3 = 0 ;
+ std::vector<FEdge * > *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:SShape_SplitEdge",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_SplitEdge" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_SplitEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__vectorTVecMat__Vec2Tdouble_t_std__allocatorTVecMat__Vec2Tdouble_t_t_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SShape_SplitEdge" "', argument " "3"" of type '" "std::vector<Geometry::Vec2r > const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SShape_SplitEdge" "', argument " "3"" of type '" "std::vector<Geometry::Vec2r > const &""'");
+ }
+ arg3 = reinterpret_cast< std::vector<Geometry::Vec2r > * >(argp3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SShape_SplitEdge" "', argument " "4"" of type '" "std::vector<FEdge * > &""'");
+ }
+ if (!argp4) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SShape_SplitEdge" "', argument " "4"" of type '" "std::vector<FEdge * > &""'");
+ }
+ arg4 = reinterpret_cast< std::vector<FEdge * > * >(argp4);
+ {
+ try {
+ (arg1)->SplitEdge(arg2,(std::vector<Geometry::Vec2r > const &)*arg3,*arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_SplitEdgeIn2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ SVertex *arg3 = (SVertex *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SShape_SplitEdgeIn2",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_SplitEdgeIn2" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_SplitEdgeIn2" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SShape_SplitEdgeIn2" "', argument " "3"" of type '" "SVertex *""'");
+ }
+ arg3 = reinterpret_cast< SVertex * >(argp3);
+ {
+ try {
+ result = (FEdge *)(arg1)->SplitEdgeIn2(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_SetBBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ BBox<Geometry::Vec3r > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_SetBBox",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_SetBBox" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_BBoxTVecMat__Vec3Tdouble_t_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_SetBBox" "', argument " "2"" of type '" "BBox<Geometry::Vec3r > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SShape_SetBBox" "', argument " "2"" of type '" "BBox<Geometry::Vec3r > const &""'");
+ }
+ arg2 = reinterpret_cast< BBox<Geometry::Vec3r > * >(argp2);
+ {
+ try {
+ (arg1)->SetBBox((BBox<Geometry::Vec3r > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_ComputeBBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_ComputeBBox",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_ComputeBBox" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ (arg1)->ComputeBBox();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_RemoveEdgeFromChain(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_RemoveEdgeFromChain",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_RemoveEdgeFromChain" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_RemoveEdgeFromChain" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->RemoveEdgeFromChain(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_RemoveEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_RemoveEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_RemoveEdge" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_RemoveEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->RemoveEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_GetVertexList(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ std::vector<SVertex * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_GetVertexList",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_GetVertexList" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ {
+ std::vector<SVertex * > &_result_ref = (arg1)->GetVertexList();
+ result = (std::vector<SVertex * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_GetEdgeList(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ std::vector<FEdge * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_GetEdgeList",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_GetEdgeList" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ {
+ std::vector<FEdge * > &_result_ref = (arg1)->GetEdgeList();
+ result = (std::vector<FEdge * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_GetChains(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ std::vector<FEdge * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_GetChains",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_GetChains" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ {
+ std::vector<FEdge * > &_result_ref = (arg1)->GetChains();
+ result = (std::vector<FEdge * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_bbox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ BBox<Geometry::Vec3r > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_bbox",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_bbox" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ {
+ BBox<Geometry::Vec3r > const &_result_ref = (arg1)->bbox();
+ result = (BBox<Geometry::Vec3r > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_BBoxTVecMat__Vec3Tdouble_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_material(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ unsigned int arg2 ;
+ Material *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_material",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_material" "', argument " "1"" of type '" "SShape const *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SShape_material" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ {
+ Material const &_result_ref = ((SShape const *)arg1)->material(arg2);
+ result = (Material *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Material, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_materials(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ std::vector<Material > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_materials",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_materials" "', argument " "1"" of type '" "SShape const *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ {
+ std::vector<Material > const &_result_ref = ((SShape const *)arg1)->materials();
+ result = (std::vector<Material > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTMaterial_std__allocatorTMaterial_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_viewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_viewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_viewShape" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(arg1)->viewShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_importance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_importance",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_importance" "', argument " "1"" of type '" "SShape const *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ result = (float)((SShape const *)arg1)->importance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SShape_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_getId" "', argument " "1"" of type '" "SShape const *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ result = ((SShape const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ Id arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_SetId" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_SetId" "', argument " "2"" of type '" "Id""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SShape_SetId" "', argument " "2"" of type '" "Id""'");
+ } else {
+ Id * temp = reinterpret_cast< Id * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ try {
+ (arg1)->SetId(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_SetMaterials(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ std::vector<Material > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_SetMaterials",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_SetMaterials" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTMaterial_std__allocatorTMaterial_t_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_SetMaterials" "', argument " "2"" of type '" "std::vector<Material > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SShape_SetMaterials" "', argument " "2"" of type '" "std::vector<Material > const &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<Material > * >(argp2);
+ {
+ try {
+ (arg1)->SetMaterials((std::vector<Material > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_SetViewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_SetViewShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_SetViewShape" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SShape_SetViewShape" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (arg1)->SetViewShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SShape_SetImportance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SShape_SetImportance",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SShape_SetImportance" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SShape_SetImportance" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (arg1)->SetImportance(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *SShape_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_SShape, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ PyObject **arg2 = (PyObject **) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ arg2 = &obj0;
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_iterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_iterator" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (swig::PySwigIterator *)std_vector_Sl_ViewShape_Sm__Sg__iterator(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer___nonzero__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer___nonzero__" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (bool)std_vector_Sl_ViewShape_Sm__Sg____nonzero__((std::vector<ViewShape * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer___len__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer___len__" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = std_vector_Sl_ViewShape_Sm__Sg____len__((std::vector<ViewShape * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_pop",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_pop" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ try {
+ result = (std::vector<ViewShape * >::value_type)std_vector_Sl_ViewShape_Sm__Sg__pop(arg1);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::difference_type arg2 ;
+ std::vector<ViewShape * >::difference_type arg3 ;
+ std::vector<ViewShape *,std::allocator<ViewShape * > > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewShapesContainer___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer___getslice__" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer___getslice__" "', argument " "2"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewShapesContainer___getslice__" "', argument " "3"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewShape * >::difference_type >(val3);
+ {
+ try {
+ try {
+ result = (std::vector<ViewShape *,std::allocator<ViewShape * > > *)std_vector_Sl_ViewShape_Sm__Sg____getslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::difference_type arg2 ;
+ std::vector<ViewShape * >::difference_type arg3 ;
+ std::vector<ViewShape *,std::allocator<ViewShape * > > *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ int res4 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ViewShapesContainer___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer___setslice__" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer___setslice__" "', argument " "2"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewShapesContainer___setslice__" "', argument " "3"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewShape * >::difference_type >(val3);
+ {
+ std::vector<ViewShape*,std::allocator<ViewShape * > > *ptr = (std::vector<ViewShape*,std::allocator<ViewShape * > > *)0;
+ res4 = swig::asptr(obj3, &ptr);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ViewShapesContainer___setslice__" "', argument " "4"" of type '" "std::vector<ViewShape *,std::allocator<ViewShape * > > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewShapesContainer___setslice__" "', argument " "4"" of type '" "std::vector<ViewShape *,std::allocator<ViewShape * > > const &""'");
+ }
+ arg4 = ptr;
+ }
+ {
+ try {
+ try {
+ std_vector_Sl_ViewShape_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<ViewShape *,std::allocator<ViewShape * > > const &)*arg4);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::difference_type arg2 ;
+ std::vector<ViewShape * >::difference_type arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewShapesContainer___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer___delslice__" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer___delslice__" "', argument " "2"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewShapesContainer___delslice__" "', argument " "3"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewShape * >::difference_type >(val3);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewShape_Sm__Sg____delslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::difference_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShapesContainer___delitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer___delitem__" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer___delitem__" "', argument " "2"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::difference_type >(val2);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewShape_Sm__Sg____delitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::difference_type arg2 ;
+ std::vector<ViewShape * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShapesContainer___getitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer___getitem__" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer___getitem__" "', argument " "2"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::difference_type >(val2);
+ {
+ try {
+ try {
+ result = (std::vector<ViewShape * >::value_type)std_vector_Sl_ViewShape_Sm__Sg____getitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::difference_type arg2 ;
+ std::vector<ViewShape * >::value_type arg3 = (std::vector<ViewShape * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewShapesContainer___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer___setitem__" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer___setitem__" "', argument " "2"" of type '" "std::vector<ViewShape * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::difference_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewShapesContainer___setitem__" "', argument " "3"" of type '" "std::vector<ViewShape * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewShape * >::value_type >(argp3);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewShape_Sm__Sg____setitem__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::value_type arg2 = (std::vector<ViewShape * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShapesContainer_append",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_append" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShapesContainer_append" "', argument " "2"" of type '" "std::vector<ViewShape * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewShape * >::value_type >(argp2);
+ {
+ try {
+ std_vector_Sl_ViewShape_Sm__Sg__append(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShapesContainer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ViewShapesContainer")) SWIG_fail;
+ {
+ try {
+ result = (std::vector<ViewShape * > *)new std::vector<ViewShape * >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShapesContainer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = 0 ;
+ std::vector<ViewShape * > *result = 0 ;
+ int res1 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewShapesContainer",&obj0)) SWIG_fail;
+ {
+ std::vector<ViewShape*,std::allocator<ViewShape * > > *ptr = (std::vector<ViewShape*,std::allocator<ViewShape * > > *)0;
+ res1 = swig::asptr(obj0, &ptr);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewShapesContainer" "', argument " "1"" of type '" "std::vector<ViewShape * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewShapesContainer" "', argument " "1"" of type '" "std::vector<ViewShape * > const &""'");
+ }
+ arg1 = ptr;
+ }
+ {
+ try {
+ result = (std::vector<ViewShape * > *)new std::vector<ViewShape * >((std::vector<ViewShape * > const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, SWIG_POINTER_NEW | 0 );
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_empty" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (bool)((std::vector<ViewShape * > const *)arg1)->empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_size" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewShape * > const *)arg1)->size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_clear",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_clear" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ (arg1)->clear();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShapesContainer_swap",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_swap" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShapesContainer_swap" "', argument " "2"" of type '" "std::vector<ViewShape * > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewShapesContainer_swap" "', argument " "2"" of type '" "std::vector<ViewShape * > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewShape * > * >(argp2);
+ {
+ try {
+ (arg1)->swap(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ SwigValueWrapper<std::allocator<ViewShape * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_get_allocator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_get_allocator" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewShape * > const *)arg1)->get_allocator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new std::vector<ViewShape * >::allocator_type(static_cast< const std::vector<ViewShape * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__allocator_type, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_begin" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_begin" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewShape * > const *)arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_begin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_begin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewShapesContainer_begin'.\n Possible C/C++ prototypes are:\n begin()\n begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_end" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_end" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewShape * > const *)arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewShapesContainer_end'.\n Possible C/C++ prototypes are:\n end()\n end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_rbegin" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_rbegin" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewShape * > const *)arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_rbegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_rbegin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_rbegin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewShapesContainer_rbegin'.\n Possible C/C++ prototypes are:\n rbegin()\n rbegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_rend" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_rend" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewShape * > const *)arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_rend(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_rend__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_rend__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewShapesContainer_rend'.\n Possible C/C++ prototypes are:\n rend()\n rend()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShapesContainer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * >::size_type arg1 ;
+ std::vector<ViewShape * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewShapesContainer",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewShapesContainer" "', argument " "1"" of type '" "std::vector<ViewShape * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<ViewShape * >::size_type >(val1);
+ {
+ try {
+ result = (std::vector<ViewShape * > *)new std::vector<ViewShape * >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_pop_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_pop_back" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ (arg1)->pop_back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShapesContainer_resize",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_resize" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer_resize" "', argument " "2"" of type '" "std::vector<ViewShape * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::size_type >(val2);
+ {
+ try {
+ (arg1)->resize(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::iterator arg2 ;
+ std::vector<ViewShape * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShapesContainer_erase",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_erase" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewShape * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewShape * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::iterator arg2 ;
+ std::vector<ViewShape * >::iterator arg3 ;
+ std::vector<ViewShape * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ swig::PySwigIterator *iter3 = 0 ;
+ int res3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewShapesContainer_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_erase" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewShape * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewShape * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res3) || !iter3) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_erase" "', argument " "3"" of type '" "std::vector<ViewShape * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter3);
+ if (iter_t) {
+ arg3 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_erase" "', argument " "3"" of type '" "std::vector<ViewShape * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_erase(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_ViewShapesContainer_erase__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter) != 0));
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_ViewShapesContainer_erase__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewShapesContainer_erase'.\n Possible C/C++ prototypes are:\n erase(std::vector<ViewShape * >::iterator)\n erase(std::vector<ViewShape * >::iterator,std::vector<ViewShape * >::iterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShapesContainer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * >::size_type arg1 ;
+ std::vector<ViewShape * >::value_type arg2 = (std::vector<ViewShape * >::value_type) 0 ;
+ std::vector<ViewShape * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ViewShapesContainer",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewShapesContainer" "', argument " "1"" of type '" "std::vector<ViewShape * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<ViewShape * >::size_type >(val1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewShapesContainer" "', argument " "2"" of type '" "std::vector<ViewShape * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewShape * >::value_type >(argp2);
+ {
+ try {
+ result = (std::vector<ViewShape * > *)new std::vector<ViewShape * >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShapesContainer(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ViewShapesContainer__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewShapesContainer__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewShapesContainer__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewShapesContainer__SWIG_3(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewShapesContainer'.\n Possible C/C++ prototypes are:\n std::vector<(p.ViewShape)>()\n std::vector<(p.ViewShape)>(std::vector<ViewShape * > const &)\n std::vector<(p.ViewShape)>(std::vector<ViewShape * >::size_type)\n std::vector<(p.ViewShape)>(std::vector<ViewShape * >::size_type,std::vector<ViewShape * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::value_type arg2 = (std::vector<ViewShape * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShapesContainer_push_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_push_back" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShapesContainer_push_back" "', argument " "2"" of type '" "std::vector<ViewShape * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewShape * >::value_type >(argp2);
+ {
+ try {
+ (arg1)->push_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_front",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_front" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (std::vector<ViewShape * >::value_type)((std::vector<ViewShape * > const *)arg1)->front();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_back" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = (std::vector<ViewShape * >::value_type)((std::vector<ViewShape * > const *)arg1)->back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::size_type arg2 ;
+ std::vector<ViewShape * >::value_type arg3 = (std::vector<ViewShape * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewShapesContainer_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_assign" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer_assign" "', argument " "2"" of type '" "std::vector<ViewShape * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewShapesContainer_assign" "', argument " "3"" of type '" "std::vector<ViewShape * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewShape * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->assign(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::size_type arg2 ;
+ std::vector<ViewShape * >::value_type arg3 = (std::vector<ViewShape * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewShapesContainer_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_resize" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer_resize" "', argument " "2"" of type '" "std::vector<ViewShape * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewShapesContainer_resize" "', argument " "3"" of type '" "std::vector<ViewShape * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewShape * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->resize(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_resize(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_ViewShapesContainer_resize__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_resize__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewShapesContainer_resize'.\n Possible C/C++ prototypes are:\n resize(std::vector<ViewShape * >::size_type)\n resize(std::vector<ViewShape * >::size_type,std::vector<ViewShape * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::iterator arg2 ;
+ std::vector<ViewShape * >::value_type arg3 = (std::vector<ViewShape * >::value_type) 0 ;
+ std::vector<ViewShape * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewShapesContainer_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_insert" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewShape * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewShape * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewShapesContainer_insert" "', argument " "3"" of type '" "std::vector<ViewShape * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewShape * >::value_type >(argp3);
+ {
+ try {
+ result = (arg1)->insert(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewShape * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::iterator arg2 ;
+ std::vector<ViewShape * >::size_type arg3 ;
+ std::vector<ViewShape * >::value_type arg4 = (std::vector<ViewShape * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ size_t val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ViewShapesContainer_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_insert" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewShape * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewShapesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewShape * >::iterator""'");
+ }
+ }
+ ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewShapesContainer_insert" "', argument " "3"" of type '" "std::vector<ViewShape * >::size_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewShape * >::size_type >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ViewShapesContainer_insert" "', argument " "4"" of type '" "std::vector<ViewShape * >::value_type""'");
+ }
+ arg4 = reinterpret_cast< std::vector<ViewShape * >::value_type >(argp4);
+ {
+ try {
+ (arg1)->insert(arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_insert(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter) != 0));
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_insert__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewShape*,std::allocator<ViewShape * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewShape * >::iterator > *>(iter) != 0));
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShapesContainer_insert__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewShapesContainer_insert'.\n Possible C/C++ prototypes are:\n insert(std::vector<ViewShape * >::iterator,std::vector<ViewShape * >::value_type)\n insert(std::vector<ViewShape * >::iterator,std::vector<ViewShape * >::size_type,std::vector<ViewShape * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShapesContainer_reserve",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_reserve" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewShapesContainer_reserve" "', argument " "2"" of type '" "std::vector<ViewShape * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewShape * >::size_type >(val2);
+ {
+ try {
+ (arg1)->reserve(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShapesContainer_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ std::vector<ViewShape * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShapesContainer_capacity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShapesContainer_capacity" "', argument " "1"" of type '" "std::vector<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewShape * > const *)arg1)->capacity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewShapesContainer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewShape * > *arg1 = (std::vector<ViewShape * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewShapesContainer",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewShapesContainer" "', argument " "1"" of type '" "std::vector<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewShape * > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewShapesContainer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ PyObject **arg2 = (PyObject **) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ arg2 = &obj0;
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_iterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_iterator" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (swig::PySwigIterator *)std_vector_Sl_ViewEdge_Sm__Sg__iterator(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer___nonzero__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer___nonzero__" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (bool)std_vector_Sl_ViewEdge_Sm__Sg____nonzero__((std::vector<ViewEdge * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer___len__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer___len__" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = std_vector_Sl_ViewEdge_Sm__Sg____len__((std::vector<ViewEdge * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_pop",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_pop" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ try {
+ result = (std::vector<ViewEdge * >::value_type)std_vector_Sl_ViewEdge_Sm__Sg__pop(arg1);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::difference_type arg2 ;
+ std::vector<ViewEdge * >::difference_type arg3 ;
+ std::vector<ViewEdge *,std::allocator<ViewEdge * > > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgesContainer___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer___getslice__" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer___getslice__" "', argument " "2"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewEdgesContainer___getslice__" "', argument " "3"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewEdge * >::difference_type >(val3);
+ {
+ try {
+ try {
+ result = (std::vector<ViewEdge *,std::allocator<ViewEdge * > > *)std_vector_Sl_ViewEdge_Sm__Sg____getslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::difference_type arg2 ;
+ std::vector<ViewEdge * >::difference_type arg3 ;
+ std::vector<ViewEdge *,std::allocator<ViewEdge * > > *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ int res4 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ViewEdgesContainer___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer___setslice__" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer___setslice__" "', argument " "2"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewEdgesContainer___setslice__" "', argument " "3"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewEdge * >::difference_type >(val3);
+ {
+ std::vector<ViewEdge*,std::allocator<ViewEdge * > > *ptr = (std::vector<ViewEdge*,std::allocator<ViewEdge * > > *)0;
+ res4 = swig::asptr(obj3, &ptr);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ViewEdgesContainer___setslice__" "', argument " "4"" of type '" "std::vector<ViewEdge *,std::allocator<ViewEdge * > > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgesContainer___setslice__" "', argument " "4"" of type '" "std::vector<ViewEdge *,std::allocator<ViewEdge * > > const &""'");
+ }
+ arg4 = ptr;
+ }
+ {
+ try {
+ try {
+ std_vector_Sl_ViewEdge_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<ViewEdge *,std::allocator<ViewEdge * > > const &)*arg4);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::difference_type arg2 ;
+ std::vector<ViewEdge * >::difference_type arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgesContainer___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer___delslice__" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer___delslice__" "', argument " "2"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewEdgesContainer___delslice__" "', argument " "3"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewEdge * >::difference_type >(val3);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewEdge_Sm__Sg____delslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::difference_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgesContainer___delitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer___delitem__" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer___delitem__" "', argument " "2"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::difference_type >(val2);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewEdge_Sm__Sg____delitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::difference_type arg2 ;
+ std::vector<ViewEdge * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgesContainer___getitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer___getitem__" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer___getitem__" "', argument " "2"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::difference_type >(val2);
+ {
+ try {
+ try {
+ result = (std::vector<ViewEdge * >::value_type)std_vector_Sl_ViewEdge_Sm__Sg____getitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::difference_type arg2 ;
+ std::vector<ViewEdge * >::value_type arg3 = (std::vector<ViewEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgesContainer___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer___setitem__" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer___setitem__" "', argument " "2"" of type '" "std::vector<ViewEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::difference_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdgesContainer___setitem__" "', argument " "3"" of type '" "std::vector<ViewEdge * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewEdge * >::value_type >(argp3);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewEdge_Sm__Sg____setitem__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::value_type arg2 = (std::vector<ViewEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgesContainer_append",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_append" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgesContainer_append" "', argument " "2"" of type '" "std::vector<ViewEdge * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewEdge * >::value_type >(argp2);
+ {
+ try {
+ std_vector_Sl_ViewEdge_Sm__Sg__append(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgesContainer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ViewEdgesContainer")) SWIG_fail;
+ {
+ try {
+ result = (std::vector<ViewEdge * > *)new std::vector<ViewEdge * >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgesContainer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = 0 ;
+ std::vector<ViewEdge * > *result = 0 ;
+ int res1 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewEdgesContainer",&obj0)) SWIG_fail;
+ {
+ std::vector<ViewEdge*,std::allocator<ViewEdge * > > *ptr = (std::vector<ViewEdge*,std::allocator<ViewEdge * > > *)0;
+ res1 = swig::asptr(obj0, &ptr);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewEdgesContainer" "', argument " "1"" of type '" "std::vector<ViewEdge * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewEdgesContainer" "', argument " "1"" of type '" "std::vector<ViewEdge * > const &""'");
+ }
+ arg1 = ptr;
+ }
+ {
+ try {
+ result = (std::vector<ViewEdge * > *)new std::vector<ViewEdge * >((std::vector<ViewEdge * > const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, SWIG_POINTER_NEW | 0 );
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_empty" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (bool)((std::vector<ViewEdge * > const *)arg1)->empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_size" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewEdge * > const *)arg1)->size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_clear",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_clear" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ (arg1)->clear();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgesContainer_swap",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_swap" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgesContainer_swap" "', argument " "2"" of type '" "std::vector<ViewEdge * > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgesContainer_swap" "', argument " "2"" of type '" "std::vector<ViewEdge * > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewEdge * > * >(argp2);
+ {
+ try {
+ (arg1)->swap(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ SwigValueWrapper<std::allocator<ViewEdge * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_get_allocator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_get_allocator" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewEdge * > const *)arg1)->get_allocator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new std::vector<ViewEdge * >::allocator_type(static_cast< const std::vector<ViewEdge * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__allocator_type, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_begin" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_begin" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewEdge * > const *)arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_begin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_begin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgesContainer_begin'.\n Possible C/C++ prototypes are:\n begin()\n begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_end" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_end" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewEdge * > const *)arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgesContainer_end'.\n Possible C/C++ prototypes are:\n end()\n end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_rbegin" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_rbegin" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewEdge * > const *)arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_rbegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_rbegin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_rbegin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgesContainer_rbegin'.\n Possible C/C++ prototypes are:\n rbegin()\n rbegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_rend" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_rend" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewEdge * > const *)arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_rend(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_rend__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_rend__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgesContainer_rend'.\n Possible C/C++ prototypes are:\n rend()\n rend()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgesContainer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * >::size_type arg1 ;
+ std::vector<ViewEdge * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewEdgesContainer",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewEdgesContainer" "', argument " "1"" of type '" "std::vector<ViewEdge * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<ViewEdge * >::size_type >(val1);
+ {
+ try {
+ result = (std::vector<ViewEdge * > *)new std::vector<ViewEdge * >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_pop_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_pop_back" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ (arg1)->pop_back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgesContainer_resize",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_resize" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer_resize" "', argument " "2"" of type '" "std::vector<ViewEdge * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::size_type >(val2);
+ {
+ try {
+ (arg1)->resize(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::iterator arg2 ;
+ std::vector<ViewEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgesContainer_erase",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_erase" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::iterator arg2 ;
+ std::vector<ViewEdge * >::iterator arg3 ;
+ std::vector<ViewEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ swig::PySwigIterator *iter3 = 0 ;
+ int res3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgesContainer_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_erase" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res3) || !iter3) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_erase" "', argument " "3"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter3);
+ if (iter_t) {
+ arg3 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_erase" "', argument " "3"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_erase(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_ViewEdgesContainer_erase__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_ViewEdgesContainer_erase__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgesContainer_erase'.\n Possible C/C++ prototypes are:\n erase(std::vector<ViewEdge * >::iterator)\n erase(std::vector<ViewEdge * >::iterator,std::vector<ViewEdge * >::iterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgesContainer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * >::size_type arg1 ;
+ std::vector<ViewEdge * >::value_type arg2 = (std::vector<ViewEdge * >::value_type) 0 ;
+ std::vector<ViewEdge * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ViewEdgesContainer",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewEdgesContainer" "', argument " "1"" of type '" "std::vector<ViewEdge * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<ViewEdge * >::size_type >(val1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewEdgesContainer" "', argument " "2"" of type '" "std::vector<ViewEdge * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewEdge * >::value_type >(argp2);
+ {
+ try {
+ result = (std::vector<ViewEdge * > *)new std::vector<ViewEdge * >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgesContainer(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ViewEdgesContainer__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewEdgesContainer__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewEdgesContainer__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewEdgesContainer__SWIG_3(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewEdgesContainer'.\n Possible C/C++ prototypes are:\n std::vector<(p.ViewEdge)>()\n std::vector<(p.ViewEdge)>(std::vector<ViewEdge * > const &)\n std::vector<(p.ViewEdge)>(std::vector<ViewEdge * >::size_type)\n std::vector<(p.ViewEdge)>(std::vector<ViewEdge * >::size_type,std::vector<ViewEdge * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::value_type arg2 = (std::vector<ViewEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgesContainer_push_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_push_back" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgesContainer_push_back" "', argument " "2"" of type '" "std::vector<ViewEdge * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewEdge * >::value_type >(argp2);
+ {
+ try {
+ (arg1)->push_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_front",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_front" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (std::vector<ViewEdge * >::value_type)((std::vector<ViewEdge * > const *)arg1)->front();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_back" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = (std::vector<ViewEdge * >::value_type)((std::vector<ViewEdge * > const *)arg1)->back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::size_type arg2 ;
+ std::vector<ViewEdge * >::value_type arg3 = (std::vector<ViewEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgesContainer_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_assign" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer_assign" "', argument " "2"" of type '" "std::vector<ViewEdge * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdgesContainer_assign" "', argument " "3"" of type '" "std::vector<ViewEdge * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewEdge * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->assign(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::size_type arg2 ;
+ std::vector<ViewEdge * >::value_type arg3 = (std::vector<ViewEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgesContainer_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_resize" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer_resize" "', argument " "2"" of type '" "std::vector<ViewEdge * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdgesContainer_resize" "', argument " "3"" of type '" "std::vector<ViewEdge * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewEdge * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->resize(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_resize(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_ViewEdgesContainer_resize__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_resize__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgesContainer_resize'.\n Possible C/C++ prototypes are:\n resize(std::vector<ViewEdge * >::size_type)\n resize(std::vector<ViewEdge * >::size_type,std::vector<ViewEdge * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::iterator arg2 ;
+ std::vector<ViewEdge * >::value_type arg3 = (std::vector<ViewEdge * >::value_type) 0 ;
+ std::vector<ViewEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgesContainer_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_insert" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdgesContainer_insert" "', argument " "3"" of type '" "std::vector<ViewEdge * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewEdge * >::value_type >(argp3);
+ {
+ try {
+ result = (arg1)->insert(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::iterator arg2 ;
+ std::vector<ViewEdge * >::size_type arg3 ;
+ std::vector<ViewEdge * >::value_type arg4 = (std::vector<ViewEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ size_t val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ViewEdgesContainer_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_insert" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewEdgesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewEdge * >::iterator""'");
+ }
+ }
+ ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewEdgesContainer_insert" "', argument " "3"" of type '" "std::vector<ViewEdge * >::size_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewEdge * >::size_type >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ViewEdgesContainer_insert" "', argument " "4"" of type '" "std::vector<ViewEdge * >::value_type""'");
+ }
+ arg4 = reinterpret_cast< std::vector<ViewEdge * >::value_type >(argp4);
+ {
+ try {
+ (arg1)->insert(arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_insert(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_insert__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewEdge*,std::allocator<ViewEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgesContainer_insert__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgesContainer_insert'.\n Possible C/C++ prototypes are:\n insert(std::vector<ViewEdge * >::iterator,std::vector<ViewEdge * >::value_type)\n insert(std::vector<ViewEdge * >::iterator,std::vector<ViewEdge * >::size_type,std::vector<ViewEdge * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgesContainer_reserve",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_reserve" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgesContainer_reserve" "', argument " "2"" of type '" "std::vector<ViewEdge * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewEdge * >::size_type >(val2);
+ {
+ try {
+ (arg1)->reserve(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgesContainer_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ std::vector<ViewEdge * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgesContainer_capacity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgesContainer_capacity" "', argument " "1"" of type '" "std::vector<ViewEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewEdge * > const *)arg1)->capacity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewEdgesContainer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewEdge * > *arg1 = (std::vector<ViewEdge * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewEdgesContainer",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewEdgesContainer" "', argument " "1"" of type '" "std::vector<ViewEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewEdge * > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewEdgesContainer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ PyObject **arg2 = (PyObject **) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ arg2 = &obj0;
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_iterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_iterator" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (swig::PySwigIterator *)std_vector_Sl_FEdge_Sm__Sg__iterator(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer___nonzero__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer___nonzero__" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (bool)std_vector_Sl_FEdge_Sm__Sg____nonzero__((std::vector<FEdge * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer___len__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer___len__" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = std_vector_Sl_FEdge_Sm__Sg____len__((std::vector<FEdge * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_pop",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_pop" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ try {
+ result = (std::vector<FEdge * >::value_type)std_vector_Sl_FEdge_Sm__Sg__pop(arg1);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::difference_type arg2 ;
+ std::vector<FEdge * >::difference_type arg3 ;
+ std::vector<FEdge *,std::allocator<FEdge * > > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FEdgesContainer___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer___getslice__" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer___getslice__" "', argument " "2"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FEdgesContainer___getslice__" "', argument " "3"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<FEdge * >::difference_type >(val3);
+ {
+ try {
+ try {
+ result = (std::vector<FEdge *,std::allocator<FEdge * > > *)std_vector_Sl_FEdge_Sm__Sg____getslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::difference_type arg2 ;
+ std::vector<FEdge * >::difference_type arg3 ;
+ std::vector<FEdge *,std::allocator<FEdge * > > *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ int res4 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:FEdgesContainer___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer___setslice__" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer___setslice__" "', argument " "2"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FEdgesContainer___setslice__" "', argument " "3"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<FEdge * >::difference_type >(val3);
+ {
+ std::vector<FEdge*,std::allocator<FEdge * > > *ptr = (std::vector<FEdge*,std::allocator<FEdge * > > *)0;
+ res4 = swig::asptr(obj3, &ptr);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FEdgesContainer___setslice__" "', argument " "4"" of type '" "std::vector<FEdge *,std::allocator<FEdge * > > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgesContainer___setslice__" "', argument " "4"" of type '" "std::vector<FEdge *,std::allocator<FEdge * > > const &""'");
+ }
+ arg4 = ptr;
+ }
+ {
+ try {
+ try {
+ std_vector_Sl_FEdge_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<FEdge *,std::allocator<FEdge * > > const &)*arg4);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::difference_type arg2 ;
+ std::vector<FEdge * >::difference_type arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FEdgesContainer___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer___delslice__" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer___delslice__" "', argument " "2"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FEdgesContainer___delslice__" "', argument " "3"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<FEdge * >::difference_type >(val3);
+ {
+ try {
+ try {
+ std_vector_Sl_FEdge_Sm__Sg____delslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::difference_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgesContainer___delitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer___delitem__" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer___delitem__" "', argument " "2"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::difference_type >(val2);
+ {
+ try {
+ try {
+ std_vector_Sl_FEdge_Sm__Sg____delitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::difference_type arg2 ;
+ std::vector<FEdge * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgesContainer___getitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer___getitem__" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer___getitem__" "', argument " "2"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::difference_type >(val2);
+ {
+ try {
+ try {
+ result = (std::vector<FEdge * >::value_type)std_vector_Sl_FEdge_Sm__Sg____getitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::difference_type arg2 ;
+ std::vector<FEdge * >::value_type arg3 = (std::vector<FEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FEdgesContainer___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer___setitem__" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer___setitem__" "', argument " "2"" of type '" "std::vector<FEdge * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::difference_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FEdgesContainer___setitem__" "', argument " "3"" of type '" "std::vector<FEdge * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<FEdge * >::value_type >(argp3);
+ {
+ try {
+ try {
+ std_vector_Sl_FEdge_Sm__Sg____setitem__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::value_type arg2 = (std::vector<FEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgesContainer_append",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_append" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgesContainer_append" "', argument " "2"" of type '" "std::vector<FEdge * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<FEdge * >::value_type >(argp2);
+ {
+ try {
+ std_vector_Sl_FEdge_Sm__Sg__append(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgesContainer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_FEdgesContainer")) SWIG_fail;
+ {
+ try {
+ result = (std::vector<FEdge * > *)new std::vector<FEdge * >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgesContainer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = 0 ;
+ std::vector<FEdge * > *result = 0 ;
+ int res1 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_FEdgesContainer",&obj0)) SWIG_fail;
+ {
+ std::vector<FEdge*,std::allocator<FEdge * > > *ptr = (std::vector<FEdge*,std::allocator<FEdge * > > *)0;
+ res1 = swig::asptr(obj0, &ptr);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_FEdgesContainer" "', argument " "1"" of type '" "std::vector<FEdge * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_FEdgesContainer" "', argument " "1"" of type '" "std::vector<FEdge * > const &""'");
+ }
+ arg1 = ptr;
+ }
+ {
+ try {
+ result = (std::vector<FEdge * > *)new std::vector<FEdge * >((std::vector<FEdge * > const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, SWIG_POINTER_NEW | 0 );
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_empty" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (bool)((std::vector<FEdge * > const *)arg1)->empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_size" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<FEdge * > const *)arg1)->size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_clear",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_clear" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ (arg1)->clear();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgesContainer_swap",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_swap" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgesContainer_swap" "', argument " "2"" of type '" "std::vector<FEdge * > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FEdgesContainer_swap" "', argument " "2"" of type '" "std::vector<FEdge * > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<FEdge * > * >(argp2);
+ {
+ try {
+ (arg1)->swap(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ SwigValueWrapper<std::allocator<FEdge * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_get_allocator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_get_allocator" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<FEdge * > const *)arg1)->get_allocator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new std::vector<FEdge * >::allocator_type(static_cast< const std::vector<FEdge * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__allocator_type, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_begin" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_begin" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<FEdge * > const *)arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_begin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_begin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdgesContainer_begin'.\n Possible C/C++ prototypes are:\n begin()\n begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_end" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_end" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<FEdge * > const *)arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdgesContainer_end'.\n Possible C/C++ prototypes are:\n end()\n end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_rbegin" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_rbegin" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<FEdge * > const *)arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_rbegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_rbegin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_rbegin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdgesContainer_rbegin'.\n Possible C/C++ prototypes are:\n rbegin()\n rbegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_rend" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_rend" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<FEdge * > const *)arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_rend(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_rend__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_rend__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdgesContainer_rend'.\n Possible C/C++ prototypes are:\n rend()\n rend()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgesContainer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * >::size_type arg1 ;
+ std::vector<FEdge * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_FEdgesContainer",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_FEdgesContainer" "', argument " "1"" of type '" "std::vector<FEdge * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<FEdge * >::size_type >(val1);
+ {
+ try {
+ result = (std::vector<FEdge * > *)new std::vector<FEdge * >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_pop_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_pop_back" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ (arg1)->pop_back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgesContainer_resize",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_resize" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer_resize" "', argument " "2"" of type '" "std::vector<FEdge * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::size_type >(val2);
+ {
+ try {
+ (arg1)->resize(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::iterator arg2 ;
+ std::vector<FEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgesContainer_erase",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_erase" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_erase" "', argument " "2"" of type '" "std::vector<FEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_erase" "', argument " "2"" of type '" "std::vector<FEdge * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::iterator arg2 ;
+ std::vector<FEdge * >::iterator arg3 ;
+ std::vector<FEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ swig::PySwigIterator *iter3 = 0 ;
+ int res3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FEdgesContainer_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_erase" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_erase" "', argument " "2"" of type '" "std::vector<FEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_erase" "', argument " "2"" of type '" "std::vector<FEdge * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res3) || !iter3) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_erase" "', argument " "3"" of type '" "std::vector<FEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter3);
+ if (iter_t) {
+ arg3 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_erase" "', argument " "3"" of type '" "std::vector<FEdge * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_erase(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_FEdgesContainer_erase__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_FEdgesContainer_erase__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdgesContainer_erase'.\n Possible C/C++ prototypes are:\n erase(std::vector<FEdge * >::iterator)\n erase(std::vector<FEdge * >::iterator,std::vector<FEdge * >::iterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgesContainer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * >::size_type arg1 ;
+ std::vector<FEdge * >::value_type arg2 = (std::vector<FEdge * >::value_type) 0 ;
+ std::vector<FEdge * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_FEdgesContainer",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_FEdgesContainer" "', argument " "1"" of type '" "std::vector<FEdge * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<FEdge * >::size_type >(val1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_FEdgesContainer" "', argument " "2"" of type '" "std::vector<FEdge * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<FEdge * >::value_type >(argp2);
+ {
+ try {
+ result = (std::vector<FEdge * > *)new std::vector<FEdge * >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FEdgesContainer(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_FEdgesContainer__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_FEdgesContainer__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdgesContainer__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_FEdgesContainer__SWIG_3(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_FEdgesContainer'.\n Possible C/C++ prototypes are:\n std::vector<(p.FEdge)>()\n std::vector<(p.FEdge)>(std::vector<FEdge * > const &)\n std::vector<(p.FEdge)>(std::vector<FEdge * >::size_type)\n std::vector<(p.FEdge)>(std::vector<FEdge * >::size_type,std::vector<FEdge * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::value_type arg2 = (std::vector<FEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgesContainer_push_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_push_back" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FEdgesContainer_push_back" "', argument " "2"" of type '" "std::vector<FEdge * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<FEdge * >::value_type >(argp2);
+ {
+ try {
+ (arg1)->push_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_front",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_front" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (std::vector<FEdge * >::value_type)((std::vector<FEdge * > const *)arg1)->front();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_back" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = (std::vector<FEdge * >::value_type)((std::vector<FEdge * > const *)arg1)->back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::size_type arg2 ;
+ std::vector<FEdge * >::value_type arg3 = (std::vector<FEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FEdgesContainer_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_assign" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer_assign" "', argument " "2"" of type '" "std::vector<FEdge * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FEdgesContainer_assign" "', argument " "3"" of type '" "std::vector<FEdge * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<FEdge * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->assign(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::size_type arg2 ;
+ std::vector<FEdge * >::value_type arg3 = (std::vector<FEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FEdgesContainer_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_resize" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer_resize" "', argument " "2"" of type '" "std::vector<FEdge * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FEdgesContainer_resize" "', argument " "3"" of type '" "std::vector<FEdge * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<FEdge * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->resize(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_resize(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_FEdgesContainer_resize__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_resize__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdgesContainer_resize'.\n Possible C/C++ prototypes are:\n resize(std::vector<FEdge * >::size_type)\n resize(std::vector<FEdge * >::size_type,std::vector<FEdge * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::iterator arg2 ;
+ std::vector<FEdge * >::value_type arg3 = (std::vector<FEdge * >::value_type) 0 ;
+ std::vector<FEdge * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FEdgesContainer_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_insert" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_insert" "', argument " "2"" of type '" "std::vector<FEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_insert" "', argument " "2"" of type '" "std::vector<FEdge * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FEdgesContainer_insert" "', argument " "3"" of type '" "std::vector<FEdge * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<FEdge * >::value_type >(argp3);
+ {
+ try {
+ result = (arg1)->insert(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<FEdge * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::iterator arg2 ;
+ std::vector<FEdge * >::size_type arg3 ;
+ std::vector<FEdge * >::value_type arg4 = (std::vector<FEdge * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ size_t val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:FEdgesContainer_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_insert" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_insert" "', argument " "2"" of type '" "std::vector<FEdge * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "FEdgesContainer_insert" "', argument " "2"" of type '" "std::vector<FEdge * >::iterator""'");
+ }
+ }
+ ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "FEdgesContainer_insert" "', argument " "3"" of type '" "std::vector<FEdge * >::size_type""'");
+ }
+ arg3 = static_cast< std::vector<FEdge * >::size_type >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "FEdgesContainer_insert" "', argument " "4"" of type '" "std::vector<FEdge * >::value_type""'");
+ }
+ arg4 = reinterpret_cast< std::vector<FEdge * >::value_type >(argp4);
+ {
+ try {
+ (arg1)->insert(arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_insert(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_insert__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<FEdge*,std::allocator<FEdge * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<FEdge * >::iterator > *>(iter) != 0));
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_FEdgesContainer_insert__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'FEdgesContainer_insert'.\n Possible C/C++ prototypes are:\n insert(std::vector<FEdge * >::iterator,std::vector<FEdge * >::value_type)\n insert(std::vector<FEdge * >::iterator,std::vector<FEdge * >::size_type,std::vector<FEdge * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FEdgesContainer_reserve",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_reserve" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "FEdgesContainer_reserve" "', argument " "2"" of type '" "std::vector<FEdge * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<FEdge * >::size_type >(val2);
+ {
+ try {
+ (arg1)->reserve(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FEdgesContainer_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ std::vector<FEdge * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FEdgesContainer_capacity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FEdgesContainer_capacity" "', argument " "1"" of type '" "std::vector<FEdge * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<FEdge * > const *)arg1)->capacity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_FEdgesContainer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<FEdge * > *arg1 = (std::vector<FEdge * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_FEdgesContainer",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FEdgesContainer" "', argument " "1"" of type '" "std::vector<FEdge * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<FEdge * > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *FEdgesContainer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ PyObject **arg2 = (PyObject **) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ arg2 = &obj0;
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_iterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_iterator" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (swig::PySwigIterator *)std_vector_Sl_ViewVertex_Sm__Sg__iterator(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer___nonzero__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer___nonzero__" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (bool)std_vector_Sl_ViewVertex_Sm__Sg____nonzero__((std::vector<ViewVertex * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer___len__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer___len__" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = std_vector_Sl_ViewVertex_Sm__Sg____len__((std::vector<ViewVertex * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_pop",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_pop" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ try {
+ result = (std::vector<ViewVertex * >::value_type)std_vector_Sl_ViewVertex_Sm__Sg__pop(arg1);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::difference_type arg2 ;
+ std::vector<ViewVertex * >::difference_type arg3 ;
+ std::vector<ViewVertex *,std::allocator<ViewVertex * > > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewVerticesContainer___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer___getslice__" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer___getslice__" "', argument " "2"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewVerticesContainer___getslice__" "', argument " "3"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewVertex * >::difference_type >(val3);
+ {
+ try {
+ try {
+ result = (std::vector<ViewVertex *,std::allocator<ViewVertex * > > *)std_vector_Sl_ViewVertex_Sm__Sg____getslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::difference_type arg2 ;
+ std::vector<ViewVertex * >::difference_type arg3 ;
+ std::vector<ViewVertex *,std::allocator<ViewVertex * > > *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ int res4 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ViewVerticesContainer___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer___setslice__" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer___setslice__" "', argument " "2"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewVerticesContainer___setslice__" "', argument " "3"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewVertex * >::difference_type >(val3);
+ {
+ std::vector<ViewVertex*,std::allocator<ViewVertex * > > *ptr = (std::vector<ViewVertex*,std::allocator<ViewVertex * > > *)0;
+ res4 = swig::asptr(obj3, &ptr);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ViewVerticesContainer___setslice__" "', argument " "4"" of type '" "std::vector<ViewVertex *,std::allocator<ViewVertex * > > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewVerticesContainer___setslice__" "', argument " "4"" of type '" "std::vector<ViewVertex *,std::allocator<ViewVertex * > > const &""'");
+ }
+ arg4 = ptr;
+ }
+ {
+ try {
+ try {
+ std_vector_Sl_ViewVertex_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<ViewVertex *,std::allocator<ViewVertex * > > const &)*arg4);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::difference_type arg2 ;
+ std::vector<ViewVertex * >::difference_type arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewVerticesContainer___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer___delslice__" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer___delslice__" "', argument " "2"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewVerticesContainer___delslice__" "', argument " "3"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewVertex * >::difference_type >(val3);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewVertex_Sm__Sg____delslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::difference_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVerticesContainer___delitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer___delitem__" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer___delitem__" "', argument " "2"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::difference_type >(val2);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewVertex_Sm__Sg____delitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::difference_type arg2 ;
+ std::vector<ViewVertex * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVerticesContainer___getitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer___getitem__" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer___getitem__" "', argument " "2"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::difference_type >(val2);
+ {
+ try {
+ try {
+ result = (std::vector<ViewVertex * >::value_type)std_vector_Sl_ViewVertex_Sm__Sg____getitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::difference_type arg2 ;
+ std::vector<ViewVertex * >::value_type arg3 = (std::vector<ViewVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewVerticesContainer___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer___setitem__" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer___setitem__" "', argument " "2"" of type '" "std::vector<ViewVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::difference_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewVerticesContainer___setitem__" "', argument " "3"" of type '" "std::vector<ViewVertex * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewVertex * >::value_type >(argp3);
+ {
+ try {
+ try {
+ std_vector_Sl_ViewVertex_Sm__Sg____setitem__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::value_type arg2 = (std::vector<ViewVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVerticesContainer_append",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_append" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVerticesContainer_append" "', argument " "2"" of type '" "std::vector<ViewVertex * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewVertex * >::value_type >(argp2);
+ {
+ try {
+ std_vector_Sl_ViewVertex_Sm__Sg__append(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVerticesContainer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ViewVerticesContainer")) SWIG_fail;
+ {
+ try {
+ result = (std::vector<ViewVertex * > *)new std::vector<ViewVertex * >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVerticesContainer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = 0 ;
+ std::vector<ViewVertex * > *result = 0 ;
+ int res1 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewVerticesContainer",&obj0)) SWIG_fail;
+ {
+ std::vector<ViewVertex*,std::allocator<ViewVertex * > > *ptr = (std::vector<ViewVertex*,std::allocator<ViewVertex * > > *)0;
+ res1 = swig::asptr(obj0, &ptr);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewVerticesContainer" "', argument " "1"" of type '" "std::vector<ViewVertex * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewVerticesContainer" "', argument " "1"" of type '" "std::vector<ViewVertex * > const &""'");
+ }
+ arg1 = ptr;
+ }
+ {
+ try {
+ result = (std::vector<ViewVertex * > *)new std::vector<ViewVertex * >((std::vector<ViewVertex * > const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, SWIG_POINTER_NEW | 0 );
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_empty" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (bool)((std::vector<ViewVertex * > const *)arg1)->empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_size" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewVertex * > const *)arg1)->size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_clear",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_clear" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ (arg1)->clear();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVerticesContainer_swap",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_swap" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVerticesContainer_swap" "', argument " "2"" of type '" "std::vector<ViewVertex * > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewVerticesContainer_swap" "', argument " "2"" of type '" "std::vector<ViewVertex * > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewVertex * > * >(argp2);
+ {
+ try {
+ (arg1)->swap(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ SwigValueWrapper<std::allocator<ViewVertex * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_get_allocator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_get_allocator" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewVertex * > const *)arg1)->get_allocator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new std::vector<ViewVertex * >::allocator_type(static_cast< const std::vector<ViewVertex * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__allocator_type, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_begin" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_begin" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewVertex * > const *)arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_begin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_begin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVerticesContainer_begin'.\n Possible C/C++ prototypes are:\n begin()\n begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_end" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_end" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewVertex * > const *)arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVerticesContainer_end'.\n Possible C/C++ prototypes are:\n end()\n end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_rbegin" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_rbegin" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewVertex * > const *)arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_rbegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_rbegin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_rbegin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVerticesContainer_rbegin'.\n Possible C/C++ prototypes are:\n rbegin()\n rbegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_rend" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_rend" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewVertex * > const *)arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_rend(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_rend__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_rend__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVerticesContainer_rend'.\n Possible C/C++ prototypes are:\n rend()\n rend()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVerticesContainer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * >::size_type arg1 ;
+ std::vector<ViewVertex * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewVerticesContainer",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewVerticesContainer" "', argument " "1"" of type '" "std::vector<ViewVertex * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<ViewVertex * >::size_type >(val1);
+ {
+ try {
+ result = (std::vector<ViewVertex * > *)new std::vector<ViewVertex * >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_pop_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_pop_back" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ (arg1)->pop_back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVerticesContainer_resize",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_resize" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer_resize" "', argument " "2"" of type '" "std::vector<ViewVertex * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::size_type >(val2);
+ {
+ try {
+ (arg1)->resize(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::iterator arg2 ;
+ std::vector<ViewVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVerticesContainer_erase",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_erase" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::iterator arg2 ;
+ std::vector<ViewVertex * >::iterator arg3 ;
+ std::vector<ViewVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ swig::PySwigIterator *iter3 = 0 ;
+ int res3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewVerticesContainer_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_erase" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_erase" "', argument " "2"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res3) || !iter3) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_erase" "', argument " "3"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter3);
+ if (iter_t) {
+ arg3 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_erase" "', argument " "3"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_erase(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_ViewVerticesContainer_erase__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_ViewVerticesContainer_erase__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVerticesContainer_erase'.\n Possible C/C++ prototypes are:\n erase(std::vector<ViewVertex * >::iterator)\n erase(std::vector<ViewVertex * >::iterator,std::vector<ViewVertex * >::iterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVerticesContainer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * >::size_type arg1 ;
+ std::vector<ViewVertex * >::value_type arg2 = (std::vector<ViewVertex * >::value_type) 0 ;
+ std::vector<ViewVertex * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ViewVerticesContainer",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewVerticesContainer" "', argument " "1"" of type '" "std::vector<ViewVertex * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<ViewVertex * >::size_type >(val1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewVerticesContainer" "', argument " "2"" of type '" "std::vector<ViewVertex * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewVertex * >::value_type >(argp2);
+ {
+ try {
+ result = (std::vector<ViewVertex * > *)new std::vector<ViewVertex * >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVerticesContainer(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ViewVerticesContainer__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewVerticesContainer__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewVerticesContainer__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewVerticesContainer__SWIG_3(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewVerticesContainer'.\n Possible C/C++ prototypes are:\n std::vector<(p.ViewVertex)>()\n std::vector<(p.ViewVertex)>(std::vector<ViewVertex * > const &)\n std::vector<(p.ViewVertex)>(std::vector<ViewVertex * >::size_type)\n std::vector<(p.ViewVertex)>(std::vector<ViewVertex * >::size_type,std::vector<ViewVertex * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::value_type arg2 = (std::vector<ViewVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVerticesContainer_push_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_push_back" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVerticesContainer_push_back" "', argument " "2"" of type '" "std::vector<ViewVertex * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewVertex * >::value_type >(argp2);
+ {
+ try {
+ (arg1)->push_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_front",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_front" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (std::vector<ViewVertex * >::value_type)((std::vector<ViewVertex * > const *)arg1)->front();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_back" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = (std::vector<ViewVertex * >::value_type)((std::vector<ViewVertex * > const *)arg1)->back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::size_type arg2 ;
+ std::vector<ViewVertex * >::value_type arg3 = (std::vector<ViewVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewVerticesContainer_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_assign" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer_assign" "', argument " "2"" of type '" "std::vector<ViewVertex * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewVerticesContainer_assign" "', argument " "3"" of type '" "std::vector<ViewVertex * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewVertex * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->assign(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::size_type arg2 ;
+ std::vector<ViewVertex * >::value_type arg3 = (std::vector<ViewVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewVerticesContainer_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_resize" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer_resize" "', argument " "2"" of type '" "std::vector<ViewVertex * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewVerticesContainer_resize" "', argument " "3"" of type '" "std::vector<ViewVertex * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewVertex * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->resize(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_resize(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_ViewVerticesContainer_resize__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_resize__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVerticesContainer_resize'.\n Possible C/C++ prototypes are:\n resize(std::vector<ViewVertex * >::size_type)\n resize(std::vector<ViewVertex * >::size_type,std::vector<ViewVertex * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::iterator arg2 ;
+ std::vector<ViewVertex * >::value_type arg3 = (std::vector<ViewVertex * >::value_type) 0 ;
+ std::vector<ViewVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewVerticesContainer_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_insert" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewVerticesContainer_insert" "', argument " "3"" of type '" "std::vector<ViewVertex * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewVertex * >::value_type >(argp3);
+ {
+ try {
+ result = (arg1)->insert(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<ViewVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::iterator arg2 ;
+ std::vector<ViewVertex * >::size_type arg3 ;
+ std::vector<ViewVertex * >::value_type arg4 = (std::vector<ViewVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ size_t val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ViewVerticesContainer_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_insert" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ViewVerticesContainer_insert" "', argument " "2"" of type '" "std::vector<ViewVertex * >::iterator""'");
+ }
+ }
+ ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewVerticesContainer_insert" "', argument " "3"" of type '" "std::vector<ViewVertex * >::size_type""'");
+ }
+ arg3 = static_cast< std::vector<ViewVertex * >::size_type >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ViewVerticesContainer_insert" "', argument " "4"" of type '" "std::vector<ViewVertex * >::value_type""'");
+ }
+ arg4 = reinterpret_cast< std::vector<ViewVertex * >::value_type >(argp4);
+ {
+ try {
+ (arg1)->insert(arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_insert(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_insert__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<ViewVertex*,std::allocator<ViewVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<ViewVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVerticesContainer_insert__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVerticesContainer_insert'.\n Possible C/C++ prototypes are:\n insert(std::vector<ViewVertex * >::iterator,std::vector<ViewVertex * >::value_type)\n insert(std::vector<ViewVertex * >::iterator,std::vector<ViewVertex * >::size_type,std::vector<ViewVertex * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVerticesContainer_reserve",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_reserve" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVerticesContainer_reserve" "', argument " "2"" of type '" "std::vector<ViewVertex * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<ViewVertex * >::size_type >(val2);
+ {
+ try {
+ (arg1)->reserve(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVerticesContainer_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ std::vector<ViewVertex * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVerticesContainer_capacity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVerticesContainer_capacity" "', argument " "1"" of type '" "std::vector<ViewVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<ViewVertex * > const *)arg1)->capacity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewVerticesContainer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<ViewVertex * > *arg1 = (std::vector<ViewVertex * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewVerticesContainer",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewVerticesContainer" "', argument " "1"" of type '" "std::vector<ViewVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<ViewVertex * > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewVerticesContainer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ PyObject **arg2 = (PyObject **) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ arg2 = &obj0;
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_iterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_iterator" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (swig::PySwigIterator *)std_vector_Sl_SVertex_Sm__Sg__iterator(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer___nonzero__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer___nonzero__" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (bool)std_vector_Sl_SVertex_Sm__Sg____nonzero__((std::vector<SVertex * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer___len__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer___len__" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = std_vector_Sl_SVertex_Sm__Sg____len__((std::vector<SVertex * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_pop",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_pop" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ try {
+ result = (std::vector<SVertex * >::value_type)std_vector_Sl_SVertex_Sm__Sg__pop(arg1);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::difference_type arg2 ;
+ std::vector<SVertex * >::difference_type arg3 ;
+ std::vector<SVertex *,std::allocator<SVertex * > > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SVerticesContainer___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer___getslice__" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer___getslice__" "', argument " "2"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "SVerticesContainer___getslice__" "', argument " "3"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<SVertex * >::difference_type >(val3);
+ {
+ try {
+ try {
+ result = (std::vector<SVertex *,std::allocator<SVertex * > > *)std_vector_Sl_SVertex_Sm__Sg____getslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::difference_type arg2 ;
+ std::vector<SVertex * >::difference_type arg3 ;
+ std::vector<SVertex *,std::allocator<SVertex * > > *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ int res4 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:SVerticesContainer___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer___setslice__" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer___setslice__" "', argument " "2"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "SVerticesContainer___setslice__" "', argument " "3"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<SVertex * >::difference_type >(val3);
+ {
+ std::vector<SVertex*,std::allocator<SVertex * > > *ptr = (std::vector<SVertex*,std::allocator<SVertex * > > *)0;
+ res4 = swig::asptr(obj3, &ptr);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SVerticesContainer___setslice__" "', argument " "4"" of type '" "std::vector<SVertex *,std::allocator<SVertex * > > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVerticesContainer___setslice__" "', argument " "4"" of type '" "std::vector<SVertex *,std::allocator<SVertex * > > const &""'");
+ }
+ arg4 = ptr;
+ }
+ {
+ try {
+ try {
+ std_vector_Sl_SVertex_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<SVertex *,std::allocator<SVertex * > > const &)*arg4);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::difference_type arg2 ;
+ std::vector<SVertex * >::difference_type arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SVerticesContainer___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer___delslice__" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer___delslice__" "', argument " "2"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "SVerticesContainer___delslice__" "', argument " "3"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<SVertex * >::difference_type >(val3);
+ {
+ try {
+ try {
+ std_vector_Sl_SVertex_Sm__Sg____delslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::difference_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVerticesContainer___delitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer___delitem__" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer___delitem__" "', argument " "2"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::difference_type >(val2);
+ {
+ try {
+ try {
+ std_vector_Sl_SVertex_Sm__Sg____delitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::difference_type arg2 ;
+ std::vector<SVertex * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVerticesContainer___getitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer___getitem__" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer___getitem__" "', argument " "2"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::difference_type >(val2);
+ {
+ try {
+ try {
+ result = (std::vector<SVertex * >::value_type)std_vector_Sl_SVertex_Sm__Sg____getitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::difference_type arg2 ;
+ std::vector<SVertex * >::value_type arg3 = (std::vector<SVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SVerticesContainer___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer___setitem__" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer___setitem__" "', argument " "2"" of type '" "std::vector<SVertex * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::difference_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SVerticesContainer___setitem__" "', argument " "3"" of type '" "std::vector<SVertex * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<SVertex * >::value_type >(argp3);
+ {
+ try {
+ try {
+ std_vector_Sl_SVertex_Sm__Sg____setitem__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::value_type arg2 = (std::vector<SVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVerticesContainer_append",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_append" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVerticesContainer_append" "', argument " "2"" of type '" "std::vector<SVertex * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<SVertex * >::value_type >(argp2);
+ {
+ try {
+ std_vector_Sl_SVertex_Sm__Sg__append(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVerticesContainer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_SVerticesContainer")) SWIG_fail;
+ {
+ try {
+ result = (std::vector<SVertex * > *)new std::vector<SVertex * >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVerticesContainer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = 0 ;
+ std::vector<SVertex * > *result = 0 ;
+ int res1 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_SVerticesContainer",&obj0)) SWIG_fail;
+ {
+ std::vector<SVertex*,std::allocator<SVertex * > > *ptr = (std::vector<SVertex*,std::allocator<SVertex * > > *)0;
+ res1 = swig::asptr(obj0, &ptr);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_SVerticesContainer" "', argument " "1"" of type '" "std::vector<SVertex * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_SVerticesContainer" "', argument " "1"" of type '" "std::vector<SVertex * > const &""'");
+ }
+ arg1 = ptr;
+ }
+ {
+ try {
+ result = (std::vector<SVertex * > *)new std::vector<SVertex * >((std::vector<SVertex * > const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, SWIG_POINTER_NEW | 0 );
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_empty" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (bool)((std::vector<SVertex * > const *)arg1)->empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_size" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<SVertex * > const *)arg1)->size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_clear",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_clear" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ (arg1)->clear();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVerticesContainer_swap",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_swap" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVerticesContainer_swap" "', argument " "2"" of type '" "std::vector<SVertex * > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SVerticesContainer_swap" "', argument " "2"" of type '" "std::vector<SVertex * > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<SVertex * > * >(argp2);
+ {
+ try {
+ (arg1)->swap(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ SwigValueWrapper<std::allocator<SVertex * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_get_allocator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_get_allocator" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<SVertex * > const *)arg1)->get_allocator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new std::vector<SVertex * >::allocator_type(static_cast< const std::vector<SVertex * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__allocator_type, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_begin" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_begin" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<SVertex * > const *)arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_begin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_begin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SVerticesContainer_begin'.\n Possible C/C++ prototypes are:\n begin()\n begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_end" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_end" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<SVertex * > const *)arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SVerticesContainer_end'.\n Possible C/C++ prototypes are:\n end()\n end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_rbegin" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_rbegin" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<SVertex * > const *)arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_rbegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_rbegin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_rbegin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SVerticesContainer_rbegin'.\n Possible C/C++ prototypes are:\n rbegin()\n rbegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_rend" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_rend" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<SVertex * > const *)arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_rend(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_rend__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_rend__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SVerticesContainer_rend'.\n Possible C/C++ prototypes are:\n rend()\n rend()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVerticesContainer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * >::size_type arg1 ;
+ std::vector<SVertex * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_SVerticesContainer",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_SVerticesContainer" "', argument " "1"" of type '" "std::vector<SVertex * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<SVertex * >::size_type >(val1);
+ {
+ try {
+ result = (std::vector<SVertex * > *)new std::vector<SVertex * >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_pop_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_pop_back" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ (arg1)->pop_back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVerticesContainer_resize",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_resize" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer_resize" "', argument " "2"" of type '" "std::vector<SVertex * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::size_type >(val2);
+ {
+ try {
+ (arg1)->resize(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::iterator arg2 ;
+ std::vector<SVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVerticesContainer_erase",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_erase" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_erase" "', argument " "2"" of type '" "std::vector<SVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_erase" "', argument " "2"" of type '" "std::vector<SVertex * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::iterator arg2 ;
+ std::vector<SVertex * >::iterator arg3 ;
+ std::vector<SVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ swig::PySwigIterator *iter3 = 0 ;
+ int res3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SVerticesContainer_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_erase" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_erase" "', argument " "2"" of type '" "std::vector<SVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_erase" "', argument " "2"" of type '" "std::vector<SVertex * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res3) || !iter3) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_erase" "', argument " "3"" of type '" "std::vector<SVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter3);
+ if (iter_t) {
+ arg3 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_erase" "', argument " "3"" of type '" "std::vector<SVertex * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_erase(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_SVerticesContainer_erase__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_SVerticesContainer_erase__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SVerticesContainer_erase'.\n Possible C/C++ prototypes are:\n erase(std::vector<SVertex * >::iterator)\n erase(std::vector<SVertex * >::iterator,std::vector<SVertex * >::iterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVerticesContainer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * >::size_type arg1 ;
+ std::vector<SVertex * >::value_type arg2 = (std::vector<SVertex * >::value_type) 0 ;
+ std::vector<SVertex * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_SVerticesContainer",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_SVerticesContainer" "', argument " "1"" of type '" "std::vector<SVertex * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<SVertex * >::size_type >(val1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_SVerticesContainer" "', argument " "2"" of type '" "std::vector<SVertex * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<SVertex * >::value_type >(argp2);
+ {
+ try {
+ result = (std::vector<SVertex * > *)new std::vector<SVertex * >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SVerticesContainer(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_SVerticesContainer__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_SVerticesContainer__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_SVerticesContainer__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_SVerticesContainer__SWIG_3(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_SVerticesContainer'.\n Possible C/C++ prototypes are:\n std::vector<(p.SVertex)>()\n std::vector<(p.SVertex)>(std::vector<SVertex * > const &)\n std::vector<(p.SVertex)>(std::vector<SVertex * >::size_type)\n std::vector<(p.SVertex)>(std::vector<SVertex * >::size_type,std::vector<SVertex * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::value_type arg2 = (std::vector<SVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVerticesContainer_push_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_push_back" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SVerticesContainer_push_back" "', argument " "2"" of type '" "std::vector<SVertex * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<SVertex * >::value_type >(argp2);
+ {
+ try {
+ (arg1)->push_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_front",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_front" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (std::vector<SVertex * >::value_type)((std::vector<SVertex * > const *)arg1)->front();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_back" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = (std::vector<SVertex * >::value_type)((std::vector<SVertex * > const *)arg1)->back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::size_type arg2 ;
+ std::vector<SVertex * >::value_type arg3 = (std::vector<SVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SVerticesContainer_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_assign" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer_assign" "', argument " "2"" of type '" "std::vector<SVertex * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SVerticesContainer_assign" "', argument " "3"" of type '" "std::vector<SVertex * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<SVertex * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->assign(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::size_type arg2 ;
+ std::vector<SVertex * >::value_type arg3 = (std::vector<SVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SVerticesContainer_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_resize" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer_resize" "', argument " "2"" of type '" "std::vector<SVertex * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SVerticesContainer_resize" "', argument " "3"" of type '" "std::vector<SVertex * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<SVertex * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->resize(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_resize(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_SVerticesContainer_resize__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_resize__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SVerticesContainer_resize'.\n Possible C/C++ prototypes are:\n resize(std::vector<SVertex * >::size_type)\n resize(std::vector<SVertex * >::size_type,std::vector<SVertex * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::iterator arg2 ;
+ std::vector<SVertex * >::value_type arg3 = (std::vector<SVertex * >::value_type) 0 ;
+ std::vector<SVertex * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SVerticesContainer_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_insert" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_insert" "', argument " "2"" of type '" "std::vector<SVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_insert" "', argument " "2"" of type '" "std::vector<SVertex * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SVerticesContainer_insert" "', argument " "3"" of type '" "std::vector<SVertex * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<SVertex * >::value_type >(argp3);
+ {
+ try {
+ result = (arg1)->insert(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<SVertex * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::iterator arg2 ;
+ std::vector<SVertex * >::size_type arg3 ;
+ std::vector<SVertex * >::value_type arg4 = (std::vector<SVertex * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ size_t val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:SVerticesContainer_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_insert" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_insert" "', argument " "2"" of type '" "std::vector<SVertex * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "SVerticesContainer_insert" "', argument " "2"" of type '" "std::vector<SVertex * >::iterator""'");
+ }
+ }
+ ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "SVerticesContainer_insert" "', argument " "3"" of type '" "std::vector<SVertex * >::size_type""'");
+ }
+ arg3 = static_cast< std::vector<SVertex * >::size_type >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "SVerticesContainer_insert" "', argument " "4"" of type '" "std::vector<SVertex * >::value_type""'");
+ }
+ arg4 = reinterpret_cast< std::vector<SVertex * >::value_type >(argp4);
+ {
+ try {
+ (arg1)->insert(arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_insert(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_insert__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<SVertex*,std::allocator<SVertex * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<SVertex * >::iterator > *>(iter) != 0));
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_SVerticesContainer_insert__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'SVerticesContainer_insert'.\n Possible C/C++ prototypes are:\n insert(std::vector<SVertex * >::iterator,std::vector<SVertex * >::value_type)\n insert(std::vector<SVertex * >::iterator,std::vector<SVertex * >::size_type,std::vector<SVertex * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SVerticesContainer_reserve",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_reserve" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SVerticesContainer_reserve" "', argument " "2"" of type '" "std::vector<SVertex * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<SVertex * >::size_type >(val2);
+ {
+ try {
+ (arg1)->reserve(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SVerticesContainer_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ std::vector<SVertex * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SVerticesContainer_capacity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SVerticesContainer_capacity" "', argument " "1"" of type '" "std::vector<SVertex * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<SVertex * > const *)arg1)->capacity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_SVerticesContainer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<SVertex * > *arg1 = (std::vector<SVertex * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_SVerticesContainer",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SVerticesContainer" "', argument " "1"" of type '" "std::vector<SVertex * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<SVertex * > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *SVerticesContainer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ViewMap_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewMap_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_userdata_set" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_userdata_get" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ result = (void *) ((arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewMap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ViewMap")) SWIG_fail;
+ {
+ try {
+ result = (ViewMap *)new ViewMap();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewMap, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewMap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewMap",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewMap" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_GetClosestViewEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ real arg2 ;
+ real arg3 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewMap_GetClosestViewEdge",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_GetClosestViewEdge" "', argument " "1"" of type '" "ViewMap const *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewMap_GetClosestViewEdge" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewMap_GetClosestViewEdge" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ {
+ try {
+ result = (ViewEdge *)((ViewMap const *)arg1)->GetClosestViewEdge(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_GetClosestFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ real arg2 ;
+ real arg3 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewMap_GetClosestFEdge",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_GetClosestFEdge" "', argument " "1"" of type '" "ViewMap const *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewMap_GetClosestFEdge" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ViewMap_GetClosestFEdge" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ {
+ try {
+ result = (FEdge *)((ViewMap const *)arg1)->GetClosestFEdge(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_getInstance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":ViewMap_getInstance")) SWIG_fail;
+ {
+ try {
+ result = (ViewMap *)ViewMap::getInstance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewMap, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_ViewShapes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewMap::viewshapes_container *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_ViewShapes",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_ViewShapes" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ {
+ ViewMap::viewshapes_container &_result_ref = (arg1)->ViewShapes();
+ result = (ViewMap::viewshapes_container *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_ViewEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewMap::viewedges_container *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_ViewEdges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_ViewEdges" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ {
+ ViewMap::viewedges_container &_result_ref = (arg1)->ViewEdges();
+ result = (ViewMap::viewedges_container *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_ViewVertices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewMap::viewvertices_container *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_ViewVertices",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_ViewVertices" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ {
+ ViewMap::viewvertices_container &_result_ref = (arg1)->ViewVertices();
+ result = (ViewMap::viewvertices_container *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_FEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewMap::fedges_container *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_FEdges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_FEdges" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ {
+ ViewMap::fedges_container &_result_ref = (arg1)->FEdges();
+ result = (ViewMap::fedges_container *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_SVertices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewMap::svertices_container *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_SVertices",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_SVertices" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ {
+ ViewMap::svertices_container &_result_ref = (arg1)->SVertices();
+ result = (ViewMap::svertices_container *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_viewedges_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewMap::viewedges_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_viewedges_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_viewedges_begin" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ result = (arg1)->viewedges_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const ViewMap::viewedges_container::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_viewedges_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewMap::viewedges_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_viewedges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_viewedges_end" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ result = (arg1)->viewedges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const ViewMap::viewedges_container::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_viewedges_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_viewedges_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_viewedges_size" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ result = (int)(arg1)->viewedges_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_viewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ unsigned int arg2 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewMap_viewShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_viewShape" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewMap_viewShape" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ result = (ViewShape *)(arg1)->viewShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_getScene3dBBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ SwigValueWrapper<BBox<VecMat::Vec3<double > > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMap_getScene3dBBox",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_getScene3dBBox" "', argument " "1"" of type '" "ViewMap const *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ {
+ try {
+ result = ((ViewMap const *)arg1)->getScene3dBBox();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new BBox<Geometry::Vec3r >(static_cast< const BBox<Geometry::Vec3r >& >(result))), SWIGTYPE_p_BBoxTVecMat__Vec3Tdouble_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_AddViewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewMap_AddViewShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_AddViewShape" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_AddViewShape" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (arg1)->AddViewShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_AddViewEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewMap_AddViewEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_AddViewEdge" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_AddViewEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddViewEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_AddViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewMap_AddViewVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_AddViewVertex" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_AddViewVertex" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (arg1)->AddViewVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_AddFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewMap_AddFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_AddFEdge" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_AddFEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddFEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_AddSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewMap_AddSVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_AddSVertex" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_AddSVertex" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->AddSVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_setScene3dBBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ BBox<Geometry::Vec3r > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewMap_setScene3dBBox",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_setScene3dBBox" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_BBoxTVecMat__Vec3Tdouble_t_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_setScene3dBBox" "', argument " "2"" of type '" "BBox<Geometry::Vec3r > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMap_setScene3dBBox" "', argument " "2"" of type '" "BBox<Geometry::Vec3r > const &""'");
+ }
+ arg2 = reinterpret_cast< BBox<Geometry::Vec3r > * >(argp2);
+ {
+ try {
+ (arg1)->setScene3dBBox((BBox<Geometry::Vec3r > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_CreateTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ Geometry::Vec3r *arg3 = 0 ;
+ FEdge *arg4 = (FEdge *) 0 ;
+ Geometry::Vec3r *arg5 = 0 ;
+ Geometry::Vec3r *arg6 = 0 ;
+ FEdge *arg7 = (FEdge *) 0 ;
+ Id *arg8 = 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ void *argp5 = 0 ;
+ int res5 = 0 ;
+ void *argp6 = 0 ;
+ int res6 = 0 ;
+ void *argp7 = 0 ;
+ int res7 = 0 ;
+ void *argp8 = 0 ;
+ int res8 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:ViewMap_CreateTVertex",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_CreateTVertex" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_CreateTVertex" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMap_CreateTVertex" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewMap_CreateTVertex" "', argument " "3"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMap_CreateTVertex" "', argument " "3"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec3r * >(argp3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ViewMap_CreateTVertex" "', argument " "4"" of type '" "FEdge *""'");
+ }
+ arg4 = reinterpret_cast< FEdge * >(argp4);
+ res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res5)) {
+ SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "ViewMap_CreateTVertex" "', argument " "5"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp5) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMap_CreateTVertex" "', argument " "5"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg5 = reinterpret_cast< Geometry::Vec3r * >(argp5);
+ res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "ViewMap_CreateTVertex" "', argument " "6"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp6) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMap_CreateTVertex" "', argument " "6"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg6 = reinterpret_cast< Geometry::Vec3r * >(argp6);
+ res7 = SWIG_ConvertPtr(obj6, &argp7,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "ViewMap_CreateTVertex" "', argument " "7"" of type '" "FEdge *""'");
+ }
+ arg7 = reinterpret_cast< FEdge * >(argp7);
+ res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res8)) {
+ SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "ViewMap_CreateTVertex" "', argument " "8"" of type '" "Id const &""'");
+ }
+ if (!argp8) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMap_CreateTVertex" "', argument " "8"" of type '" "Id const &""'");
+ }
+ arg8 = reinterpret_cast< Id * >(argp8);
+ {
+ try {
+ result = (TVertex *)(arg1)->CreateTVertex((Geometry::Vec3r const &)*arg2,(Geometry::Vec3r const &)*arg3,arg4,(Geometry::Vec3r const &)*arg5,(Geometry::Vec3r const &)*arg6,arg7,(Id const &)*arg8);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMap_InsertViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewMap *arg1 = (ViewMap *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ std::vector<ViewEdge * > *arg3 = 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewMap_InsertViewVertex",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMap_InsertViewVertex" "', argument " "1"" of type '" "ViewMap *""'");
+ }
+ arg1 = reinterpret_cast< ViewMap * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMap_InsertViewVertex" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewMap_InsertViewVertex" "', argument " "3"" of type '" "std::vector<ViewEdge * > &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMap_InsertViewVertex" "', argument " "3"" of type '" "std::vector<ViewEdge * > &""'");
+ }
+ arg3 = reinterpret_cast< std::vector<ViewEdge * > * >(argp3);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->InsertViewVertex(arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewMap_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ViewMap, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ViewVertex_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_getExactTypeName" "', argument " "1"" of type '" "ViewVertex const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = ((ViewVertex const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVertex_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_userdata_set" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVertex_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_userdata_get" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ result = (void *) ((arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewVertex" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_getNature" "', argument " "1"" of type '" "ViewVertex const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)((ViewVertex const *)arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_setNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ Nature::VertexNature arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned short val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVertex_setNature",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_setNature" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_short(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewVertex_setNature" "', argument " "2"" of type '" "Nature::VertexNature""'");
+ }
+ arg2 = static_cast< Nature::VertexNature >(val2);
+ {
+ try {
+ (arg1)->setNature(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_Replace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ ViewEdge *arg3 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewVertex_Replace",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_Replace" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVertex_Replace" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewVertex_Replace" "', argument " "3"" of type '" "ViewEdge *""'");
+ }
+ arg3 = reinterpret_cast< ViewEdge * >(argp3);
+ {
+ try {
+ (arg1)->Replace(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_nonconst_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_edges_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edges_begin" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edges_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::edge_iterator(static_cast< const ViewVertex::edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_const_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_edges_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edges_begin" "', argument " "1"" of type '" "ViewVertex const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = ((ViewVertex const *)arg1)->edges_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::const_edge_iterator(static_cast< const ViewVertex::const_edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVertex_edges_begin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVertex_edges_begin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVertex_edges_begin'.\n Possible C/C++ prototypes are:\n edges_begin()\n edges_begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_nonconst_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_edges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edges_end" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::edge_iterator(static_cast< const ViewVertex::edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_const_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_edges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edges_end" "', argument " "1"" of type '" "ViewVertex const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = ((ViewVertex const *)arg1)->edges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::const_edge_iterator(static_cast< const ViewVertex::const_edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVertex_edges_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVertex_edges_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVertex_edges_end'.\n Possible C/C++ prototypes are:\n edges_end()\n edges_end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_iterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_nonconst_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVertex_edges_iterator",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edges_iterator" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVertex_edges_iterator" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ result = (arg1)->edges_iterator(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::edge_iterator(static_cast< const ViewVertex::edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_iterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_const_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVertex_edges_iterator",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edges_iterator" "', argument " "1"" of type '" "ViewVertex const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVertex_edges_iterator" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ result = ((ViewVertex const *)arg1)->edges_iterator(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::const_edge_iterator(static_cast< const ViewVertex::const_edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edges_iterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVertex_edges_iterator__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewVertex_edges_iterator__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewVertex_edges_iterator'.\n Possible C/C++ prototypes are:\n edges_iterator(ViewEdge *)\n edges_iterator(ViewEdge *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edgesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_edgesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edgesBegin" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edgesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edgesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertex_edgesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edgesEnd" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edgesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertex_edgesIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVertex_edgesIterator",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertex_edgesIterator" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVertex_edgesIterator" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ result = (arg1)->edgesIterator(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewVertex_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ViewVertex, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_TVertex_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getExactTypeName" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = ((TVertex const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getX" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (real)((TVertex const *)arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getY" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (real)((TVertex const *)arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getZ" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (real)((TVertex const *)arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getPoint3D" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = ((TVertex const *)arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getProjectedX" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (real)((TVertex const *)arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getProjectedY" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (real)((TVertex const *)arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getProjectedZ" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (real)((TVertex const *)arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getPoint2D" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = ((TVertex const *)arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_getId" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = ((TVertex const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_castToViewVertex" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_castToTVertex" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (TVertex *)(arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_TVertex__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_TVertex")) SWIG_fail;
+ {
+ try {
+ result = (TVertex *)new TVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_TVertex__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_TVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_TVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_TVertex" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ result = (TVertex *)new TVertex(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_TVertex(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_TVertex__SWIG_0(self, args);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_TVertex__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_TVertex'.\n Possible C/C++ prototypes are:\n TVertex()\n TVertex(SVertex *,SVertex *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_frontSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_frontSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_frontSVertex" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->frontSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_backSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_backSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_backSVertex" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->backSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_frontEdgeA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewVertex::directedViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_frontEdgeA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_frontEdgeA" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ {
+ ViewVertex::directedViewEdge &_result_ref = (arg1)->frontEdgeA();
+ result = (ViewVertex::directedViewEdge *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairTViewEdge_p_bool_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_frontEdgeB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewVertex::directedViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_frontEdgeB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_frontEdgeB" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ {
+ ViewVertex::directedViewEdge &_result_ref = (arg1)->frontEdgeB();
+ result = (ViewVertex::directedViewEdge *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairTViewEdge_p_bool_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_backEdgeA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewVertex::directedViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_backEdgeA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_backEdgeA" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ {
+ ViewVertex::directedViewEdge &_result_ref = (arg1)->backEdgeA();
+ result = (ViewVertex::directedViewEdge *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairTViewEdge_p_bool_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_backEdgeB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewVertex::directedViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_backEdgeB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_backEdgeB" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ {
+ ViewVertex::directedViewEdge &_result_ref = (arg1)->backEdgeB();
+ result = (ViewVertex::directedViewEdge *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairTViewEdge_p_bool_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetFrontVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_SetFrontVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetFrontVertex" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetFrontVertex" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetFrontVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetBackSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_SetBackSVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetBackSVertex" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetBackSVertex" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetBackSVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetFrontEdgeA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ bool arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:TVertex_SetFrontEdgeA",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetFrontEdgeA" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetFrontEdgeA" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "TVertex_SetFrontEdgeA" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ (arg1)->SetFrontEdgeA(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetFrontEdgeA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_SetFrontEdgeA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetFrontEdgeA" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetFrontEdgeA" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetFrontEdgeA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetFrontEdgeA(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_TVertex_SetFrontEdgeA__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_TVertex_SetFrontEdgeA__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'TVertex_SetFrontEdgeA'.\n Possible C/C++ prototypes are:\n SetFrontEdgeA(ViewEdge *,bool)\n SetFrontEdgeA(ViewEdge *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetFrontEdgeB__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ bool arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:TVertex_SetFrontEdgeB",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetFrontEdgeB" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetFrontEdgeB" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "TVertex_SetFrontEdgeB" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ (arg1)->SetFrontEdgeB(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetFrontEdgeB__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_SetFrontEdgeB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetFrontEdgeB" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetFrontEdgeB" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetFrontEdgeB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetFrontEdgeB(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_TVertex_SetFrontEdgeB__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_TVertex_SetFrontEdgeB__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'TVertex_SetFrontEdgeB'.\n Possible C/C++ prototypes are:\n SetFrontEdgeB(ViewEdge *,bool)\n SetFrontEdgeB(ViewEdge *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetBackEdgeA__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ bool arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:TVertex_SetBackEdgeA",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetBackEdgeA" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetBackEdgeA" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "TVertex_SetBackEdgeA" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ (arg1)->SetBackEdgeA(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetBackEdgeA__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_SetBackEdgeA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetBackEdgeA" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetBackEdgeA" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetBackEdgeA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetBackEdgeA(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_TVertex_SetBackEdgeA__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_TVertex_SetBackEdgeA__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'TVertex_SetBackEdgeA'.\n Possible C/C++ prototypes are:\n SetBackEdgeA(ViewEdge *,bool)\n SetBackEdgeA(ViewEdge *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetBackEdgeB__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ bool arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:TVertex_SetBackEdgeB",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetBackEdgeB" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetBackEdgeB" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "TVertex_SetBackEdgeB" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ (arg1)->SetBackEdgeB(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetBackEdgeB__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_SetBackEdgeB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetBackEdgeB" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetBackEdgeB" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetBackEdgeB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetBackEdgeB(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_TVertex_SetBackEdgeB__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_TVertex_SetBackEdgeB__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'TVertex_SetBackEdgeB'.\n Possible C/C++ prototypes are:\n SetBackEdgeB(ViewEdge *,bool)\n SetBackEdgeB(ViewEdge *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_SetId" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "TVertex_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_GetSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_GetSVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_GetSVertex" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_GetSVertex" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ result = (SVertex *)(arg1)->GetSVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_Replace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ ViewEdge *arg3 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:TVertex_Replace",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_Replace" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_Replace" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "TVertex_Replace" "', argument " "3"" of type '" "ViewEdge *""'");
+ }
+ arg3 = reinterpret_cast< ViewEdge * >(argp3);
+ {
+ try {
+ (arg1)->Replace(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_mate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_mate",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_mate" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_mate" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ result = (ViewEdge *)(arg1)->mate(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_edges_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_nonconst_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_edges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_edges_end" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::edge_iterator(static_cast< const ViewVertex::edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_edges_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_const_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_edges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_edges_end" "', argument " "1"" of type '" "TVertex const *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = ((TVertex const *)arg1)->edges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::const_edge_iterator(static_cast< const ViewVertex::const_edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_edges_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_TVertex_edges_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_TVertex_edges_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'TVertex_edges_end'.\n Possible C/C++ prototypes are:\n edges_end()\n edges_end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_edgesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_edgesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_edgesBegin" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edgesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_edgesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TVertex_edgesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_edgesEnd" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edgesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TVertex_edgesIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TVertex_edgesIterator",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TVertex_edgesIterator" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TVertex_edgesIterator" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ result = (arg1)->edgesIterator(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_TVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ TVertex *arg1 = (TVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_TVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_TVertex, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TVertex" "', argument " "1"" of type '" "TVertex *""'");
+ }
+ arg1 = reinterpret_cast< TVertex * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *TVertex_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_TVertex, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getExactTypeName" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = ((NonTVertex const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getX" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (real)((NonTVertex const *)arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getY" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (real)((NonTVertex const *)arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getZ" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (real)((NonTVertex const *)arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getPoint3D" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = ((NonTVertex const *)arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getProjectedX" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (real)((NonTVertex const *)arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getProjectedY" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (real)((NonTVertex const *)arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getProjectedZ" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (real)((NonTVertex const *)arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getPoint2D" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = ((NonTVertex const *)arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_getId" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = ((NonTVertex const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_castToSVertex" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_castToViewVertex" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_castToNonTVertex" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_NonTVertex__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_NonTVertex")) SWIG_fail;
+ {
+ try {
+ result = (NonTVertex *)new NonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_NonTVertex__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_NonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_NonTVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)new NonTVertex(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_NonTVertex(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_NonTVertex__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_NonTVertex__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_NonTVertex'.\n Possible C/C++ prototypes are:\n NonTVertex()\n NonTVertex(SVertex *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_NonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_NonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_NonTVertex" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_svertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_svertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_svertex" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->svertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_viewedges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ NonTVertex::edges_container *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_viewedges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_viewedges" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ {
+ NonTVertex::edges_container &_result_ref = (arg1)->viewedges();
+ result = (NonTVertex::edges_container *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_SetSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:NonTVertex_SetSVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_SetSVertex" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NonTVertex_SetSVertex" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetSVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_SetViewEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ std::vector<ViewVertex::directedViewEdge > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:NonTVertex_SetViewEdges",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_SetViewEdges" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NonTVertex_SetViewEdges" "', argument " "2"" of type '" "std::vector<ViewVertex::directedViewEdge > const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "NonTVertex_SetViewEdges" "', argument " "2"" of type '" "std::vector<ViewVertex::directedViewEdge > const &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<ViewVertex::directedViewEdge > * >(argp2);
+ {
+ try {
+ (arg1)->SetViewEdges((std::vector<ViewVertex::directedViewEdge > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_AddIncomingViewEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:NonTVertex_AddIncomingViewEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_AddIncomingViewEdge" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NonTVertex_AddIncomingViewEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddIncomingViewEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_AddOutgoingViewEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:NonTVertex_AddOutgoingViewEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_AddOutgoingViewEdge" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NonTVertex_AddOutgoingViewEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddOutgoingViewEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_AddViewEdge__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ bool arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:NonTVertex_AddViewEdge",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_AddViewEdge" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NonTVertex_AddViewEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "NonTVertex_AddViewEdge" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ (arg1)->AddViewEdge(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_AddViewEdge__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:NonTVertex_AddViewEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_AddViewEdge" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NonTVertex_AddViewEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddViewEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_AddViewEdge(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_NonTVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_NonTVertex_AddViewEdge__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_NonTVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_NonTVertex_AddViewEdge__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'NonTVertex_AddViewEdge'.\n Possible C/C++ prototypes are:\n AddViewEdge(ViewEdge *,bool)\n AddViewEdge(ViewEdge *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_Replace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ ViewEdge *arg3 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:NonTVertex_Replace",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_Replace" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NonTVertex_Replace" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "NonTVertex_Replace" "', argument " "3"" of type '" "ViewEdge *""'");
+ }
+ arg3 = reinterpret_cast< ViewEdge * >(argp3);
+ {
+ try {
+ (arg1)->Replace(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_edges_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_nonconst_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_edges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_edges_end" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::edge_iterator(static_cast< const ViewVertex::edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_edges_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ SwigValueWrapper<ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_const_traits > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_edges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_edges_end" "', argument " "1"" of type '" "NonTVertex const *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = ((NonTVertex const *)arg1)->edges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertex::const_edge_iterator(static_cast< const ViewVertex::const_edge_iterator& >(result))), SWIGTYPE_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_edges_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_NonTVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_NonTVertex_edges_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_NonTVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_NonTVertex_edges_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'NonTVertex_edges_end'.\n Possible C/C++ prototypes are:\n edges_end()\n edges_end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_edgesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_edgesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_edgesBegin" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edgesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_edgesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:NonTVertex_edgesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_edgesEnd" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->edgesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_NonTVertex_edgesIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ NonTVertex *arg1 = (NonTVertex *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:NonTVertex_edgesIterator",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_NonTVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NonTVertex_edgesIterator" "', argument " "1"" of type '" "NonTVertex *""'");
+ }
+ arg1 = reinterpret_cast< NonTVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NonTVertex_edgesIterator" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ result = (arg1)->edgesIterator(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new ViewVertexInternal::orientedViewEdgeIterator(static_cast< const ViewVertexInternal::orientedViewEdgeIterator& >(result))), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *NonTVertex_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_NonTVertex, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ViewEdge_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_getExactTypeName" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = ((ViewEdge const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_getId" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = ((ViewEdge const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Nature::EdgeNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_getNature" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (Nature::EdgeNature)((ViewEdge const *)arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_userdata_set" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_userdata_get" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ result = (void *) ((arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdge__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ViewEdge")) SWIG_fail;
+ {
+ try {
+ result = (ViewEdge *)new ViewEdge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdge__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ViewEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewEdge" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewEdge" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ result = (ViewEdge *)new ViewEdge(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdge__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ FEdge *arg3 = (FEdge *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ViewEdge",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewEdge" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewEdge" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ViewEdge" "', argument " "3"" of type '" "FEdge *""'");
+ }
+ arg3 = reinterpret_cast< FEdge * >(argp3);
+ {
+ try {
+ result = (ViewEdge *)new ViewEdge(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdge__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ FEdge *arg3 = (FEdge *) 0 ;
+ FEdge *arg4 = (FEdge *) 0 ;
+ ViewShape *arg5 = (ViewShape *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ void *argp5 = 0 ;
+ int res5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_ViewEdge",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewEdge" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewEdge" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ViewEdge" "', argument " "3"" of type '" "FEdge *""'");
+ }
+ arg3 = reinterpret_cast< FEdge * >(argp3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ViewEdge" "', argument " "4"" of type '" "FEdge *""'");
+ }
+ arg4 = reinterpret_cast< FEdge * >(argp4);
+ res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res5)) {
+ SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_ViewEdge" "', argument " "5"" of type '" "ViewShape *""'");
+ }
+ arg5 = reinterpret_cast< ViewShape * >(argp5);
+ {
+ try {
+ result = (ViewEdge *)new ViewEdge(arg1,arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdge(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ViewEdge__SWIG_0(self, args);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewEdge__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewEdge__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[4], &vptr, SWIGTYPE_p_ViewShape, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewEdge__SWIG_3(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewEdge'.\n Possible C/C++ prototypes are:\n ViewEdge()\n ViewEdge(ViewVertex *,ViewVertex *)\n ViewEdge(ViewVertex *,ViewVertex *,FEdge *)\n ViewEdge(ViewVertex *,ViewVertex *,FEdge *,FEdge *,ViewShape *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewEdge" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_A(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_A",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_A" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->A();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_B(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_B",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_B" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->B();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_fedgeA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_fedgeA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_fedgeA" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->fedgeA();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_fedgeB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_fedgeB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_fedgeB" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->fedgeB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_viewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_viewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_viewShape" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(arg1)->viewShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_aShape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_aShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_aShape" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(arg1)->aShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_isClosed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_isClosed",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_isClosed" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (bool)(arg1)->isClosed();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_getChainingTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_getChainingTimeStamp",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_getChainingTimeStamp" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (unsigned int)(arg1)->getChainingTimeStamp();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_aShape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_aShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_aShape" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (ViewShape *)((ViewEdge const *)arg1)->aShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_aShape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdge_aShape__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdge_aShape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdge_aShape'.\n Possible C/C++ prototypes are:\n aShape()\n aShape()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_bShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_bShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_bShape" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (ViewShape *)((ViewEdge const *)arg1)->bShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_occluders(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ std::vector<ViewShape * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_occluders",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_occluders" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ {
+ std::vector<ViewShape * > &_result_ref = (arg1)->occluders();
+ result = (std::vector<ViewShape * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_splittingId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Id *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_splittingId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_splittingId" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (Id *)(arg1)->splittingId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Id, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetA" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_SetA" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetB" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_SetB" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Nature::EdgeNature arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned short val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetNature",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetNature" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_short(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdge_SetNature" "', argument " "2"" of type '" "Nature::EdgeNature""'");
+ }
+ arg2 = static_cast< Nature::EdgeNature >(val2);
+ {
+ try {
+ (arg1)->SetNature(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetFEdgeA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetFEdgeA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetFEdgeA" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_SetFEdgeA" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetFEdgeA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetFEdgeB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetFEdgeB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetFEdgeB" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_SetFEdgeB" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetFEdgeB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetShape" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_SetShape" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (arg1)->SetShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetId" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdge_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_UpdateFEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_UpdateFEdges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_UpdateFEdges" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ (arg1)->UpdateFEdges();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetaShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetaShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetaShape" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_SetaShape" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (arg1)->SetaShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_SetQI(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_SetQI",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_SetQI" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdge_SetQI" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ {
+ try {
+ (arg1)->SetQI(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_setChainingTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_setChainingTimeStamp",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_setChainingTimeStamp" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdge_setChainingTimeStamp" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (arg1)->setChainingTimeStamp(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_AddOccluder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_AddOccluder",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_AddOccluder" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_AddOccluder" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (arg1)->AddOccluder(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_setSplittingId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Id *arg2 = (Id *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_setSplittingId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_setSplittingId" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_setSplittingId" "', argument " "2"" of type '" "Id *""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (arg1)->setSplittingId(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_intersect_2d_area(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Geometry::Vec2r *arg2 = 0 ;
+ Geometry::Vec2r *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdge_intersect_2d_area",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_intersect_2d_area" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_intersect_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdge_intersect_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdge_intersect_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdge_intersect_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec2r * >(argp3);
+ {
+ try {
+ result = (bool)((ViewEdge const *)arg1)->intersect_2d_area((Geometry::Vec2r const &)*arg2,(Geometry::Vec2r const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_include_in_2d_area(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Geometry::Vec2r *arg2 = 0 ;
+ Geometry::Vec2r *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdge_include_in_2d_area",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_include_in_2d_area" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdge_include_in_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdge_include_in_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdge_include_in_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdge_include_in_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec2r * >(argp3);
+ {
+ try {
+ result = (bool)((ViewEdge const *)arg1)->include_in_2d_area((Geometry::Vec2r const &)*arg2,(Geometry::Vec2r const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_getLength2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_getLength2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_getLength2D" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (real)((ViewEdge const *)arg1)->getLength2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_qi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_qi",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_qi" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (int)((ViewEdge const *)arg1)->qi();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_occluders_begin" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = ((ViewEdge const *)arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_occluders_end" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = ((ViewEdge const *)arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_occluders_size" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (int)((ViewEdge const *)arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_occluders_empty" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (bool)((ViewEdge const *)arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_occludee" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = ((ViewEdge const *)arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_occluded_shape" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (SShape *)((ViewEdge const *)arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_occludee_empty" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (bool)((ViewEdge const *)arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_shape_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_shape_id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_shape_id" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = ((ViewEdge const *)arg1)->shape_id();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_shape" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (SShape *)((ViewEdge const *)arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_shape_importance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_shape_importance",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_shape_importance" "', argument " "1"" of type '" "ViewEdge const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (float)((ViewEdge const *)arg1)->shape_importance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_verticesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_verticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_verticesBegin" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_verticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_verticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_verticesEnd" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_pointsBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_pointsBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_pointsBegin" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdge_pointsBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_pointsBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_pointsBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_pointsBegin" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_pointsBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdge_pointsBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_ViewEdge_pointsBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdge_pointsBegin'.\n Possible C/C++ prototypes are:\n pointsBegin(float)\n pointsBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_pointsEnd__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdge_pointsEnd",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_pointsEnd" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdge_pointsEnd" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsEnd(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_pointsEnd__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdge *arg1 = (ViewEdge *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdge_pointsEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdge_pointsEnd" "', argument " "1"" of type '" "ViewEdge *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdge * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdge_pointsEnd(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdge_pointsEnd__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_ViewEdge_pointsEnd__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdge_pointsEnd'.\n Possible C/C++ prototypes are:\n pointsEnd(float)\n pointsEnd()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewEdge_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ViewEdge, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ViewShape_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShape_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_userdata_set" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShape_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_userdata_get" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ result = (void *) ((arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ViewShape")) SWIG_fail;
+ {
+ try {
+ result = (ViewShape *)new ViewShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SShape *arg1 = (SShape *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewShape" "', argument " "1"" of type '" "SShape *""'");
+ }
+ arg1 = reinterpret_cast< SShape * >(argp1);
+ {
+ try {
+ result = (ViewShape *)new ViewShape(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShape__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ViewShape, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewShape" "', argument " "1"" of type '" "ViewShape &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewShape" "', argument " "1"" of type '" "ViewShape &""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ try {
+ result = (ViewShape *)new ViewShape(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewShape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ViewShape__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SShape, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewShape__SWIG_1(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewShape, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewShape__SWIG_2(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewShape'.\n Possible C/C++ prototypes are:\n ViewShape()\n ViewShape(SShape *)\n ViewShape(ViewShape &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_dupplicate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShape_dupplicate",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_dupplicate" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(arg1)->dupplicate();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewShape" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_SplitEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ std::vector<TVertex * > *arg3 = 0 ;
+ std::vector<FEdge * > *arg4 = 0 ;
+ std::vector<ViewEdge * > *arg5 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ void *argp5 = 0 ;
+ int res5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:ViewShape_SplitEdge",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_SplitEdge" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_SplitEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__vectorTTVertex_p_std__allocatorTTVertex_p_t_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewShape_SplitEdge" "', argument " "3"" of type '" "std::vector<TVertex * > const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewShape_SplitEdge" "', argument " "3"" of type '" "std::vector<TVertex * > const &""'");
+ }
+ arg3 = reinterpret_cast< std::vector<TVertex * > * >(argp3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4, SWIGTYPE_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ViewShape_SplitEdge" "', argument " "4"" of type '" "std::vector<FEdge * > &""'");
+ }
+ if (!argp4) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewShape_SplitEdge" "', argument " "4"" of type '" "std::vector<FEdge * > &""'");
+ }
+ arg4 = reinterpret_cast< std::vector<FEdge * > * >(argp4);
+ res5 = SWIG_ConvertPtr(obj4, &argp5, SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 );
+ if (!SWIG_IsOK(res5)) {
+ SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "ViewShape_SplitEdge" "', argument " "5"" of type '" "std::vector<ViewEdge * > &""'");
+ }
+ if (!argp5) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewShape_SplitEdge" "', argument " "5"" of type '" "std::vector<ViewEdge * > &""'");
+ }
+ arg5 = reinterpret_cast< std::vector<ViewEdge * > * >(argp5);
+ {
+ try {
+ (arg1)->SplitEdge(arg2,(std::vector<TVertex * > const &)*arg3,*arg4,*arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_sshape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShape_sshape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_sshape" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ try {
+ result = (SShape *)(arg1)->sshape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_sshape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShape_sshape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_sshape" "', argument " "1"" of type '" "ViewShape const *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ try {
+ result = (SShape *)((ViewShape const *)arg1)->sshape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_sshape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewShape, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShape_sshape__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewShape, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewShape_sshape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewShape_sshape'.\n Possible C/C++ prototypes are:\n sshape()\n sshape()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_vertices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ std::vector<ViewVertex * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShape_vertices",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_vertices" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ try {
+ {
+ std::vector<ViewVertex * > &_result_ref = (arg1)->vertices();
+ result = (std::vector<ViewVertex * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_edges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ std::vector<ViewEdge * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShape_edges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_edges" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ try {
+ {
+ std::vector<ViewEdge * > &_result_ref = (arg1)->edges();
+ result = (std::vector<ViewEdge * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewShape_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_getId" "', argument " "1"" of type '" "ViewShape const *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ try {
+ result = ((ViewShape const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_SetSShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ SShape *arg2 = (SShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShape_SetSShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_SetSShape" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_SetSShape" "', argument " "2"" of type '" "SShape *""'");
+ }
+ arg2 = reinterpret_cast< SShape * >(argp2);
+ {
+ try {
+ (arg1)->SetSShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_SetVertices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ std::vector<ViewVertex * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShape_SetVertices",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_SetVertices" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ std::vector<ViewVertex*,std::allocator<ViewVertex * > > *ptr = (std::vector<ViewVertex*,std::allocator<ViewVertex * > > *)0;
+ res2 = swig::asptr(obj1, &ptr);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_SetVertices" "', argument " "2"" of type '" "std::vector<ViewVertex * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewShape_SetVertices" "', argument " "2"" of type '" "std::vector<ViewVertex * > const &""'");
+ }
+ arg2 = ptr;
+ }
+ {
+ try {
+ (arg1)->SetVertices((std::vector<ViewVertex * > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res2)) delete arg2;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res2)) delete arg2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_SetEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ std::vector<ViewEdge * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShape_SetEdges",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_SetEdges" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ {
+ std::vector<ViewEdge*,std::allocator<ViewEdge * > > *ptr = (std::vector<ViewEdge*,std::allocator<ViewEdge * > > *)0;
+ res2 = swig::asptr(obj1, &ptr);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_SetEdges" "', argument " "2"" of type '" "std::vector<ViewEdge * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewShape_SetEdges" "', argument " "2"" of type '" "std::vector<ViewEdge * > const &""'");
+ }
+ arg2 = ptr;
+ }
+ {
+ try {
+ (arg1)->SetEdges((std::vector<ViewEdge * > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res2)) delete arg2;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res2)) delete arg2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_AddVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShape_AddVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_AddVertex" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_AddVertex" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (arg1)->AddVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_AddEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShape_AddEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_AddEdge" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_AddEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_RemoveEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShape_RemoveEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_RemoveEdge" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_RemoveEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->RemoveEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewShape_RemoveVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewShape *arg1 = (ViewShape *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewShape_RemoveVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewShape_RemoveVertex" "', argument " "1"" of type '" "ViewShape *""'");
+ }
+ arg1 = reinterpret_cast< ViewShape * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewShape_RemoveVertex" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (arg1)->RemoveVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewShape_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ViewShape, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ViewVertexOrientedViewEdgeIterator")) SWIG_fail;
+ {
+ try {
+ result = (ViewVertexInternal::orientedViewEdgeIterator *)new ViewVertexInternal::orientedViewEdgeIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Nature::VertexNature arg1 ;
+ ViewVertexInternal::orientedViewEdgeIterator *result = 0 ;
+ unsigned short val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewVertexOrientedViewEdgeIterator",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "1"" of type '" "Nature::VertexNature""'");
+ }
+ arg1 = static_cast< Nature::VertexNature >(val1);
+ {
+ try {
+ result = (ViewVertexInternal::orientedViewEdgeIterator *)new ViewVertexInternal::orientedViewEdgeIterator(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewVertexOrientedViewEdgeIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const &""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertexInternal::orientedViewEdgeIterator *)new ViewVertexInternal::orientedViewEdgeIterator((ViewVertexInternal::orientedViewEdgeIterator const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewVertexOrientedViewEdgeIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = (ViewVertexInternal::orientedViewEdgeIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewVertexOrientedViewEdgeIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewVertexOrientedViewEdgeIterator" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator arg1 ;
+ ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator arg2 ;
+ ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator arg3 ;
+ ViewVertexInternal::orientedViewEdgeIterator *result = 0 ;
+ void *argp1 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ViewVertexOrientedViewEdgeIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ {
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator""'");
+ } else {
+ ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator * temp = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator * >(argp1);
+ arg1 = *temp;
+ if (SWIG_IsNewObj(res1)) delete temp;
+ }
+ }
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "2"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "2"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator""'");
+ } else {
+ ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator * temp = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "3"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "3"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator""'");
+ } else {
+ ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator * temp = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ {
+ try {
+ result = (ViewVertexInternal::orientedViewEdgeIterator *)new ViewVertexInternal::orientedViewEdgeIterator(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator arg1 ;
+ ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator arg2 ;
+ ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator arg3 ;
+ ViewVertexInternal::orientedViewEdgeIterator *result = 0 ;
+ void *argp1 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ViewVertexOrientedViewEdgeIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ {
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator""'");
+ } else {
+ ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator * temp = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator * >(argp1);
+ arg1 = *temp;
+ if (SWIG_IsNewObj(res1)) delete temp;
+ }
+ }
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "2"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "2"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator""'");
+ } else {
+ ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator * temp = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "3"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewVertexOrientedViewEdgeIterator" "', argument " "3"" of type '" "ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator""'");
+ } else {
+ ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator * temp = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ {
+ try {
+ result = (ViewVertexInternal::orientedViewEdgeIterator *)new ViewVertexInternal::orientedViewEdgeIterator(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewVertexOrientedViewEdgeIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_short(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_1(self, args);
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_3(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewVertexOrientedViewEdgeIterator__SWIG_4(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewVertexOrientedViewEdgeIterator'.\n Possible C/C++ prototypes are:\n ViewVertexInternal::orientedViewEdgeIterator()\n ViewVertexInternal::orientedViewEdgeIterator(Nature::VertexNature)\n ViewVertexInternal::orientedViewEdgeIterator(ViewVertexInternal::orientedViewEdgeIterator const &)\n ViewVertexInternal::orientedViewEdgeIterator(ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator,ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator,ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator)\n ViewVertexInternal::orientedViewEdgeIterator(ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator,ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator,ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertexOrientedViewEdgeIterator_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = (ViewVertexInternal::orientedViewEdgeIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertexOrientedViewEdgeIterator_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertexOrientedViewEdgeIterator_isBegin" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (bool)((ViewVertexInternal::orientedViewEdgeIterator const *)arg1)->isBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertexOrientedViewEdgeIterator_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = (ViewVertexInternal::orientedViewEdgeIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertexOrientedViewEdgeIterator_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertexOrientedViewEdgeIterator_isEnd" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (bool)((ViewVertexInternal::orientedViewEdgeIterator const *)arg1)->isEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertexOrientedViewEdgeIterator___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = (ViewVertexInternal::orientedViewEdgeIterator *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVertexOrientedViewEdgeIterator___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertexOrientedViewEdgeIterator___ne__" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVertexOrientedViewEdgeIterator___ne__" "', argument " "2"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewVertexOrientedViewEdgeIterator___ne__" "', argument " "2"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const &""'");
+ }
+ arg2 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp2);
+ {
+ try {
+ result = (bool)((ViewVertexInternal::orientedViewEdgeIterator const *)arg1)->operator !=((ViewVertexInternal::orientedViewEdgeIterator const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertexOrientedViewEdgeIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = (ViewVertexInternal::orientedViewEdgeIterator *) 0 ;
+ ViewVertexInternal::orientedViewEdgeIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewVertexOrientedViewEdgeIterator___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertexOrientedViewEdgeIterator___eq__" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewVertexOrientedViewEdgeIterator___eq__" "', argument " "2"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewVertexOrientedViewEdgeIterator___eq__" "', argument " "2"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const &""'");
+ }
+ arg2 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp2);
+ {
+ try {
+ result = (bool)((ViewVertexInternal::orientedViewEdgeIterator const *)arg1)->operator ==((ViewVertexInternal::orientedViewEdgeIterator const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertexOrientedViewEdgeIterator_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = (ViewVertexInternal::orientedViewEdgeIterator *) 0 ;
+ ViewVertex::directedViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertexOrientedViewEdgeIterator_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertexOrientedViewEdgeIterator_getObject" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ {
+ try {
+ {
+ ViewVertex::directedViewEdge &_result_ref = ((ViewVertexInternal::orientedViewEdgeIterator const *)arg1)->operator *();
+ result = (ViewVertex::directedViewEdge *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairTViewEdge_p_bool_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertexOrientedViewEdgeIterator___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = (ViewVertexInternal::orientedViewEdgeIterator *) 0 ;
+ ViewVertex::directedViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertexOrientedViewEdgeIterator___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertexOrientedViewEdgeIterator___deref__" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex::directedViewEdge *)((ViewVertexInternal::orientedViewEdgeIterator const *)arg1)->operator ->();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__pairTViewEdge_p_bool_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewVertexOrientedViewEdgeIterator_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertexInternal::orientedViewEdgeIterator *arg1 = (ViewVertexInternal::orientedViewEdgeIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewVertexOrientedViewEdgeIterator_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewVertexOrientedViewEdgeIterator_increment" "', argument " "1"" of type '" "ViewVertexInternal::orientedViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertexInternal::orientedViewEdgeIterator * >(argp1);
+ {
+ try {
+ (arg1)->increment();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewVertexOrientedViewEdgeIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ViewVertexInternal__orientedViewEdgeIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeSVertexIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ViewEdgeSVertexIterator")) SWIG_fail;
+ {
+ try {
+ result = (ViewEdgeInternal::SVertexIterator *)new ViewEdgeInternal::SVertexIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeSVertexIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = 0 ;
+ ViewEdgeInternal::SVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewEdgeSVertexIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewEdgeSVertexIterator" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewEdgeSVertexIterator" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const &""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (ViewEdgeInternal::SVertexIterator *)new ViewEdgeInternal::SVertexIterator((ViewEdgeInternal::SVertexIterator const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeSVertexIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ FEdge *arg3 = (FEdge *) 0 ;
+ FEdge *arg4 = (FEdge *) 0 ;
+ float arg5 ;
+ ViewEdgeInternal::SVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_ViewEdgeSVertexIterator",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ViewEdgeSVertexIterator" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewEdgeSVertexIterator" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ViewEdgeSVertexIterator" "', argument " "3"" of type '" "FEdge *""'");
+ }
+ arg3 = reinterpret_cast< FEdge * >(argp3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ViewEdgeSVertexIterator" "', argument " "4"" of type '" "FEdge *""'");
+ }
+ arg4 = reinterpret_cast< FEdge * >(argp4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_ViewEdgeSVertexIterator" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ {
+ try {
+ result = (ViewEdgeInternal::SVertexIterator *)new ViewEdgeInternal::SVertexIterator(arg1,arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeSVertexIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ViewEdgeSVertexIterator__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewEdgeSVertexIterator__SWIG_1(self, args);
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_FEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewEdgeSVertexIterator__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewEdgeSVertexIterator'.\n Possible C/C++ prototypes are:\n ViewEdgeInternal::SVertexIterator()\n ViewEdgeInternal::SVertexIterator(ViewEdgeInternal::SVertexIterator const &)\n ViewEdgeInternal::SVertexIterator(SVertex *,SVertex *,FEdge *,FEdge *,float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewEdgeSVertexIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewEdgeSVertexIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewEdgeSVertexIterator" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getExactTypeName" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = ((ViewEdgeInternal::SVertexIterator const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getObject" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ SVertex &_result_ref = (arg1)->operator *();
+ result = (SVertex *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator___deref__" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->operator ->();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_increment" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ (arg1)->increment();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_decrement(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_decrement",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_decrement" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ (arg1)->decrement();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_isBegin" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)((ViewEdgeInternal::SVertexIterator const *)arg1)->isBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_isEnd" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)((ViewEdgeInternal::SVertexIterator const *)arg1)->isEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_t",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_t" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)((ViewEdgeInternal::SVertexIterator const *)arg1)->t();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_u" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)((ViewEdgeInternal::SVertexIterator const *)arg1)->u();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Interface0DIteratorNested *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator___eq__" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIteratorNested, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeSVertexIterator___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIteratorNested * >(argp2);
+ {
+ try {
+ result = (bool)((ViewEdgeInternal::SVertexIterator const *)arg1)->operator ==((Interface0DIteratorNested const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ ViewEdgeInternal::SVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_copy",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_copy" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (ViewEdgeInternal::SVertexIterator *)((ViewEdgeInternal::SVertexIterator const *)arg1)->copy();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getX" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getY" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getZ" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getPoint3D" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getProjectedX" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getProjectedY" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getProjectedZ" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getPoint2D" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getFEdge" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeSVertexIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(*arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getId" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getNature" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)(*arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_castToSVertex" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_castToViewVertex" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_castToNonTVertex" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(*arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_castToTVertex" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (TVertex *)(*arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_userdata_set" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (*arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_userdata_get" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ result = (void *) ((*arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_dupplicate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_dupplicate",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_dupplicate" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->dupplicate();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_point3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_point3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_point3D" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point3D();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_point2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_point2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_point2D" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point2D();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_normals(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SwigValueWrapper<set<VecMat::Vec3<double > > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_normals",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_normals" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->normals();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new set<Geometry::Vec3r >(static_cast< const set<Geometry::Vec3r >& >(result))), SWIGTYPE_p_setTVecMat__Vec3Tdouble_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_normalsSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_normalsSize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_normalsSize" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (unsigned int)(*arg1)->normalsSize();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_fedges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ std::vector<FEdge * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_fedges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_fedges" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ std::vector<FEdge * > const &_result_ref = (*arg1)->fedges();
+ result = (std::vector<FEdge * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = swig::from(static_cast< std::vector<FEdge*,std::allocator<FEdge * > > >(*result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_fedges_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SVertex::fedges_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_fedges_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_fedges_begin" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->fedges_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new SVertex::fedges_container::iterator(static_cast< const SVertex::fedges_container::iterator& >(result))), SWIGTYPE_p_SVertex__fedges_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_fedges_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SVertex::fedges_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_fedges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_fedges_end" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->fedges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new SVertex::fedges_container::iterator(static_cast< const SVertex::fedges_container::iterator& >(result))), SWIGTYPE_p_SVertex__fedges_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_shape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_shape" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_shape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_shape" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_shape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgeSVertexIterator_shape__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgeSVertexIterator_shape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgeSVertexIterator_shape'.\n Possible C/C++ prototypes are:\n shape()\n shape()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_z(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_z",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_z" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->z();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_viewvertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_viewvertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_viewvertex" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->viewvertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_SetPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_SetPoint3D",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_SetPoint3D" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_SetPoint3D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeSVertexIterator_SetPoint3D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (*arg1)->SetPoint3D((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_SetPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_SetPoint2D",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_SetPoint2D" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_SetPoint2D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeSVertexIterator_SetPoint2D" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (*arg1)->SetPoint2D((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_AddNormal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_AddNormal",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_AddNormal" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_AddNormal" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeSVertexIterator_AddNormal" "', argument " "2"" of type '" "Geometry::Vec3r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3r * >(argp2);
+ {
+ try {
+ (*arg1)->AddNormal((Geometry::Vec3r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_setCurvatureInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ CurvatureInfo *arg2 = (CurvatureInfo *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_setCurvatureInfo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_setCurvatureInfo" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CurvatureInfo, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_setCurvatureInfo" "', argument " "2"" of type '" "CurvatureInfo *""'");
+ }
+ arg2 = reinterpret_cast< CurvatureInfo * >(argp2);
+ {
+ try {
+ (*arg1)->setCurvatureInfo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_getCurvatureInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ CurvatureInfo *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_getCurvatureInfo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_getCurvatureInfo" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (CurvatureInfo *)(*arg1)->getCurvatureInfo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvatureInfo, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_setCurvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_setCurvatureFredo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_setCurvatureFredo" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgeSVertexIterator_setCurvatureFredo" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ {
+ try {
+ (*arg1)->setCurvatureFredo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_setDirectionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec2r arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_setDirectionFredo",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_setDirectionFredo" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_setDirectionFredo" "', argument " "2"" of type '" "Geometry::Vec2r""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeSVertexIterator_setDirectionFredo" "', argument " "2"" of type '" "Geometry::Vec2r""'");
+ } else {
+ Geometry::Vec2r * temp = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ {
+ try {
+ (*arg1)->setDirectionFredo(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_curvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_curvatureFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_curvatureFredo" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->curvatureFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_directionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec2r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_directionFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_directionFredo" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->directionFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2r(static_cast< const Geometry::Vec2r& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_SetId" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeSVertexIterator_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (*arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_SetFEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ std::vector<FEdge * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_SetFEdges",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_SetFEdges" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ std::vector<FEdge*,std::allocator<FEdge * > > *ptr = (std::vector<FEdge*,std::allocator<FEdge * > > *)0;
+ res2 = swig::asptr(obj1, &ptr);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_SetFEdges" "', argument " "2"" of type '" "std::vector<FEdge * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeSVertexIterator_SetFEdges" "', argument " "2"" of type '" "std::vector<FEdge * > const &""'");
+ }
+ arg2 = ptr;
+ }
+ {
+ try {
+ (*arg1)->SetFEdges((std::vector<FEdge * > const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res2)) delete arg2;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res2)) delete arg2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_SetShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SShape *arg2 = (SShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_SetShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_SetShape" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_SetShape" "', argument " "2"" of type '" "SShape *""'");
+ }
+ arg2 = reinterpret_cast< SShape * >(argp2);
+ {
+ try {
+ (*arg1)->SetShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_SetViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_SetViewVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_SetViewVertex" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_SetViewVertex" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetViewVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_AddFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeSVertexIterator_AddFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_AddFEdge" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_AddFEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (*arg1)->AddFEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_Replace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ FEdge *arg3 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgeSVertexIterator_Replace",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_Replace" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeSVertexIterator_Replace" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdgeSVertexIterator_Replace" "', argument " "3"" of type '" "FEdge *""'");
+ }
+ arg3 = reinterpret_cast< FEdge * >(argp3);
+ {
+ try {
+ (*arg1)->Replace(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_fedge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_fedge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_fedge" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (FEdge *)(*arg1)->fedge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_point2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_point2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_point2d" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point2d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_point3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_point3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_point3d" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point3d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_normal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_normal",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_normal" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->normal();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_shape_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_shape_id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_shape_id" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->shape_id();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_shape_importance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_shape_importance",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_shape_importance" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)(*arg1)->shape_importance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_qi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_qi",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_qi" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->qi();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_occluders_begin" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_occluders_end" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_occluders_empty" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_occluders_size" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_occludee" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = (*arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_occluded_shape" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_occludee_empty" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeSVertexIterator_z_discontinuity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::SVertexIterator *arg1 = (ViewEdgeInternal::SVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeSVertexIterator_z_discontinuity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeSVertexIterator_z_discontinuity" "', argument " "1"" of type '" "ViewEdgeInternal::SVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::SVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->z_discontinuity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewEdgeSVertexIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ViewEdgeInternal__SVertexIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeViewEdgeIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ bool arg3 ;
+ ViewEdgeInternal::ViewEdgeIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ViewEdgeViewEdgeIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewEdgeViewEdgeIterator" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ViewEdgeViewEdgeIterator" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ViewEdgeInternal::ViewEdgeIterator *)new SwigDirector_ViewEdgeViewEdgeIterator(arg1,arg2,arg3);
+ } else {
+ result = (ViewEdgeInternal::ViewEdgeIterator *)new ViewEdgeInternal::ViewEdgeIterator(arg2,arg3);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeViewEdgeIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ ViewEdgeInternal::ViewEdgeIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ViewEdgeViewEdgeIterator",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewEdgeViewEdgeIterator" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ViewEdgeInternal::ViewEdgeIterator *)new SwigDirector_ViewEdgeViewEdgeIterator(arg1,arg2);
+ } else {
+ result = (ViewEdgeInternal::ViewEdgeIterator *)new ViewEdgeInternal::ViewEdgeIterator(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeViewEdgeIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ViewEdgeInternal::ViewEdgeIterator *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewEdgeViewEdgeIterator",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ViewEdgeInternal::ViewEdgeIterator *)new SwigDirector_ViewEdgeViewEdgeIterator(arg1);
+ } else {
+ result = (ViewEdgeInternal::ViewEdgeIterator *)new ViewEdgeInternal::ViewEdgeIterator();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeViewEdgeIterator__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ViewEdgeInternal::ViewEdgeIterator *arg2 = 0 ;
+ ViewEdgeInternal::ViewEdgeIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ViewEdgeViewEdgeIterator",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ViewEdgeViewEdgeIterator" "', argument " "2"" of type '" "ViewEdgeInternal::ViewEdgeIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ViewEdgeViewEdgeIterator" "', argument " "2"" of type '" "ViewEdgeInternal::ViewEdgeIterator const &""'");
+ }
+ arg2 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ViewEdgeInternal::ViewEdgeIterator *)new SwigDirector_ViewEdgeViewEdgeIterator(arg1,(ViewEdgeInternal::ViewEdgeIterator const &)*arg2);
+ } else {
+ result = (ViewEdgeInternal::ViewEdgeIterator *)new ViewEdgeInternal::ViewEdgeIterator((ViewEdgeInternal::ViewEdgeIterator const &)*arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewEdgeViewEdgeIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_ViewEdgeViewEdgeIterator__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewEdgeViewEdgeIterator__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ViewEdgeViewEdgeIterator__SWIG_3(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewEdgeViewEdgeIterator__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewEdgeViewEdgeIterator'.\n Possible C/C++ prototypes are:\n ViewEdgeInternal::ViewEdgeIterator(PyObject *,ViewEdge *,bool)\n ViewEdgeInternal::ViewEdgeIterator(PyObject *,ViewEdge *)\n ViewEdgeInternal::ViewEdgeIterator(PyObject *)\n ViewEdgeInternal::ViewEdgeIterator(PyObject *,ViewEdgeInternal::ViewEdgeIterator const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewEdgeViewEdgeIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewEdgeViewEdgeIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewEdgeViewEdgeIterator" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getExactTypeName" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->ViewEdgeInternal::ViewEdgeIterator::getExactTypeName();
+ } else {
+ result = ((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->getExactTypeName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getCurrentEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getCurrentEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getCurrentEdge" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewEdge *)(arg1)->getCurrentEdge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_setCurrentEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_setCurrentEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_setCurrentEdge" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_setCurrentEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->setCurrentEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getBegin" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewEdge *)(arg1)->getBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_setBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_setBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_setBegin" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_setBegin" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->setBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getOrientation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getOrientation",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getOrientation" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->getOrientation();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_setOrientation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ bool arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_setOrientation",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_setOrientation" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgeViewEdgeIterator_setOrientation" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ (arg1)->setOrientation(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_changeOrientation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_changeOrientation",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_changeOrientation" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ (arg1)->changeOrientation();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getObject" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (ViewEdge *)(arg1)->ViewEdgeInternal::ViewEdgeIterator::operator *();
+ } else {
+ result = (ViewEdge *)(arg1)->operator *();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (director) {
+ SWIG_AcquirePtr(resultobj, director->swig_release_ownership(SWIG_as_voidptr(result)));
+ }
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator___deref__" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (ViewEdge *)(arg1)->ViewEdgeInternal::ViewEdgeIterator::operator ->();
+ } else {
+ result = (ViewEdge *)(arg1)->operator ->();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (director) {
+ SWIG_AcquirePtr(resultobj, director->swig_release_ownership(SWIG_as_voidptr(result)));
+ }
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_increment" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ (arg1)->ViewEdgeInternal::ViewEdgeIterator::increment();
+ } else {
+ (arg1)->increment();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_decrement(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_decrement",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_decrement" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ (arg1)->ViewEdgeInternal::ViewEdgeIterator::decrement();
+ } else {
+ (arg1)->decrement();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_isBegin" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->ViewEdgeInternal::ViewEdgeIterator::isBegin();
+ } else {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->isBegin();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_isEnd" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->ViewEdgeInternal::ViewEdgeIterator::isEnd();
+ } else {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->isEnd();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewEdgeInternal::ViewEdgeIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator___eq__" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator___eq__" "', argument " "2"" of type '" "ViewEdgeInternal::ViewEdgeIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeViewEdgeIterator___eq__" "', argument " "2"" of type '" "ViewEdgeInternal::ViewEdgeIterator &""'");
+ }
+ arg2 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->ViewEdgeInternal::ViewEdgeIterator::operator ==(*arg2);
+ } else {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->operator ==(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewEdgeInternal::ViewEdgeIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator___ne__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator___ne__" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator___ne__" "', argument " "2"" of type '" "ViewEdgeInternal::ViewEdgeIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeViewEdgeIterator___ne__" "', argument " "2"" of type '" "ViewEdgeInternal::ViewEdgeIterator &""'");
+ }
+ arg2 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->ViewEdgeInternal::ViewEdgeIterator::operator !=(*arg2);
+ } else {
+ result = (bool)((ViewEdgeInternal::ViewEdgeIterator const *)arg1)->operator !=(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getId" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Nature::EdgeNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getNature" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (Nature::EdgeNature)(*arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_userdata_set" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (*arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_userdata_get" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ result = (void *) ((*arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_A(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_A",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_A" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->A();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_B(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_B",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_B" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->B();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_fedgeA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_fedgeA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_fedgeA" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (FEdge *)(*arg1)->fedgeA();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_fedgeB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_fedgeB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_fedgeB" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (FEdge *)(*arg1)->fedgeB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_viewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_viewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_viewShape" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(*arg1)->viewShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_aShape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_aShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_aShape" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(*arg1)->aShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_aShape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_aShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_aShape" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(*arg1)->aShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_aShape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgeViewEdgeIterator_aShape__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgeViewEdgeIterator_aShape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgeViewEdgeIterator_aShape'.\n Possible C/C++ prototypes are:\n aShape()\n aShape()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_isClosed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_isClosed",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_isClosed" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->isClosed();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getChainingTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getChainingTimeStamp",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getChainingTimeStamp" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (unsigned int)(*arg1)->getChainingTimeStamp();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_bShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_bShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_bShape" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(*arg1)->bShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_occluders(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ std::vector<ViewShape * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_occluders",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_occluders" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ {
+ std::vector<ViewShape * > &_result_ref = (*arg1)->occluders();
+ result = (std::vector<ViewShape * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_splittingId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Id *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_splittingId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_splittingId" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (Id *)(*arg1)->splittingId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Id, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetA" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_SetA" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetB" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_SetB" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Nature::EdgeNature arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned short val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetNature",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetNature" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_short(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgeViewEdgeIterator_SetNature" "', argument " "2"" of type '" "Nature::EdgeNature""'");
+ }
+ arg2 = static_cast< Nature::EdgeNature >(val2);
+ {
+ try {
+ (*arg1)->SetNature(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetFEdgeA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetFEdgeA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetFEdgeA" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_SetFEdgeA" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (*arg1)->SetFEdgeA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetFEdgeB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetFEdgeB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetFEdgeB" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_SetFEdgeB" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (*arg1)->SetFEdgeB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetShape" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_SetShape" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (*arg1)->SetShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetId" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeViewEdgeIterator_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (*arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_UpdateFEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_UpdateFEdges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_UpdateFEdges" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ (*arg1)->UpdateFEdges();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetaShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetaShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetaShape" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_SetaShape" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (*arg1)->SetaShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_SetQI(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_SetQI",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_SetQI" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgeViewEdgeIterator_SetQI" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ {
+ try {
+ (*arg1)->SetQI(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_setChainingTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_setChainingTimeStamp",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_setChainingTimeStamp" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgeViewEdgeIterator_setChainingTimeStamp" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (*arg1)->setChainingTimeStamp(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_AddOccluder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_AddOccluder",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_AddOccluder" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_AddOccluder" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (*arg1)->AddOccluder(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_setSplittingId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Id *arg2 = (Id *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_setSplittingId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_setSplittingId" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_setSplittingId" "', argument " "2"" of type '" "Id *""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (*arg1)->setSplittingId(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_intersect_2d_area(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Geometry::Vec2r *arg2 = 0 ;
+ Geometry::Vec2r *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgeViewEdgeIterator_intersect_2d_area",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_intersect_2d_area" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_intersect_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeViewEdgeIterator_intersect_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdgeViewEdgeIterator_intersect_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeViewEdgeIterator_intersect_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec2r * >(argp3);
+ {
+ try {
+ result = (bool)(*arg1)->intersect_2d_area((Geometry::Vec2r const &)*arg2,(Geometry::Vec2r const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_include_in_2d_area(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Geometry::Vec2r *arg2 = 0 ;
+ Geometry::Vec2r *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewEdgeViewEdgeIterator_include_in_2d_area",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_include_in_2d_area" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewEdgeViewEdgeIterator_include_in_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeViewEdgeIterator_include_in_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewEdgeViewEdgeIterator_include_in_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewEdgeViewEdgeIterator_include_in_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec2r * >(argp3);
+ {
+ try {
+ result = (bool)(*arg1)->include_in_2d_area((Geometry::Vec2r const &)*arg2,(Geometry::Vec2r const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getLength2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getLength2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getLength2D" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getLength2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_qi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_qi",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_qi" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->qi();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_occluders_begin" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_occluders_end" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_occluders_size" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_occluders_empty" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_occludee" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = (*arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_occluded_shape" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_occludee_empty" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_shape_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_shape_id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_shape_id" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->shape_id();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_shape" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_shape_importance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_shape_importance",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_shape_importance" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (float)(*arg1)->shape_importance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_verticesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_verticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_verticesBegin" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->verticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_verticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_verticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_verticesEnd" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->verticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_pointsBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_pointsBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_pointsBegin" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgeViewEdgeIterator_pointsBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (*arg1)->pointsBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_pointsBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_pointsBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_pointsBegin" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->pointsBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_pointsBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgeViewEdgeIterator_pointsBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_ViewEdgeViewEdgeIterator_pointsBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgeViewEdgeIterator_pointsBegin'.\n Possible C/C++ prototypes are:\n pointsBegin(float)\n pointsBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_pointsEnd__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_pointsEnd",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_pointsEnd" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgeViewEdgeIterator_pointsEnd" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (*arg1)->pointsEnd(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_pointsEnd__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_pointsEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_pointsEnd" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->pointsEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_pointsEnd(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ViewEdgeViewEdgeIterator_pointsEnd__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_ViewEdgeViewEdgeIterator_pointsEnd__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ViewEdgeViewEdgeIterator_pointsEnd'.\n Possible C/C++ prototypes are:\n pointsEnd(float)\n pointsEnd()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_getTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewEdgeViewEdgeIterator_getTimeStamp",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_getTimeStamp" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ try {
+ result = (unsigned int)(*arg1)->getTimeStamp();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewEdgeViewEdgeIterator_setTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ViewEdgeViewEdgeIterator_setTimeStamp",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewEdgeViewEdgeIterator_setTimeStamp" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ViewEdgeViewEdgeIterator_setTimeStamp" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (*arg1)->setTimeStamp(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_ViewEdgeViewEdgeIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = (ViewEdgeInternal::ViewEdgeIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_ViewEdgeViewEdgeIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_ViewEdgeViewEdgeIterator" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator *""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewEdgeViewEdgeIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DVoid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction0D<void > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction0DVoid",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction0D<void > *)new SwigDirector_UnaryFunction0DVoid(arg1);
+ } else {
+ result = (UnaryFunction0D<void > *)new UnaryFunction0D<void >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTvoid_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DVoid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<void > *arg1 = (UnaryFunction0D<void > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DVoid",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTvoid_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DVoid" "', argument " "1"" of type '" "UnaryFunction0D<void > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<void > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DVoid_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<void > *arg1 = (UnaryFunction0D<void > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DVoid_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTvoid_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DVoid_getName" "', argument " "1"" of type '" "UnaryFunction0D<void > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<void > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction0D<void > const *)arg1)->UnaryFunction0D<void >::getName();
+ } else {
+ result = ((UnaryFunction0D<void > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DVoid___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<void > *arg1 = (UnaryFunction0D<void > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DVoid___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTvoid_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DVoid___call__" "', argument " "1"" of type '" "UnaryFunction0D<void > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<void > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DVoid___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DVoid___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ (arg1)->UnaryFunction0D<void >::operator ()(*arg2);
+ } else {
+ (arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction0DVoid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<void > *arg1 = (UnaryFunction0D<void > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction0DVoid",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTvoid_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction0DVoid" "', argument " "1"" of type '" "UnaryFunction0D<void > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<void > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DVoid_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTvoid_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DUnsigned(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction0D<unsigned int > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction0DUnsigned",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction0D<unsigned int > *)new SwigDirector_UnaryFunction0DUnsigned(arg1);
+ } else {
+ result = (UnaryFunction0D<unsigned int > *)new UnaryFunction0D<unsigned int >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DUnsigned(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<unsigned int > *arg1 = (UnaryFunction0D<unsigned int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DUnsigned",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DUnsigned" "', argument " "1"" of type '" "UnaryFunction0D<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<unsigned int > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DUnsigned_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<unsigned int > *arg1 = (UnaryFunction0D<unsigned int > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DUnsigned_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DUnsigned_getName" "', argument " "1"" of type '" "UnaryFunction0D<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<unsigned int > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction0D<unsigned int > const *)arg1)->UnaryFunction0D<unsigned int >::getName();
+ } else {
+ result = ((UnaryFunction0D<unsigned int > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DUnsigned___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<unsigned int > *arg1 = (UnaryFunction0D<unsigned int > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DUnsigned___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DUnsigned___call__" "', argument " "1"" of type '" "UnaryFunction0D<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DUnsigned___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DUnsigned___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (unsigned int)(arg1)->UnaryFunction0D<unsigned int >::operator ()(*arg2);
+ } else {
+ result = (unsigned int)(arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction0DUnsigned(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<unsigned int > *arg1 = (UnaryFunction0D<unsigned int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction0DUnsigned",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction0DUnsigned" "', argument " "1"" of type '" "UnaryFunction0D<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<unsigned int > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DUnsigned_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTunsigned_int_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DFloat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction0D<float > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction0DFloat",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction0D<float > *)new SwigDirector_UnaryFunction0DFloat(arg1);
+ } else {
+ result = (UnaryFunction0D<float > *)new UnaryFunction0D<float >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DFloat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<float > *arg1 = (UnaryFunction0D<float > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DFloat",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTfloat_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DFloat" "', argument " "1"" of type '" "UnaryFunction0D<float > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<float > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DFloat_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<float > *arg1 = (UnaryFunction0D<float > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DFloat_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DFloat_getName" "', argument " "1"" of type '" "UnaryFunction0D<float > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<float > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction0D<float > const *)arg1)->UnaryFunction0D<float >::getName();
+ } else {
+ result = ((UnaryFunction0D<float > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DFloat___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<float > *arg1 = (UnaryFunction0D<float > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DFloat___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DFloat___call__" "', argument " "1"" of type '" "UnaryFunction0D<float > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DFloat___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DFloat___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (float)(arg1)->UnaryFunction0D<float >::operator ()(*arg2);
+ } else {
+ result = (float)(arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction0DFloat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<float > *arg1 = (UnaryFunction0D<float > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction0DFloat",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction0DFloat" "', argument " "1"" of type '" "UnaryFunction0D<float > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<float > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DFloat_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTfloat_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DDouble(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction0D<double > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction0DDouble",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction0D<double > *)new SwigDirector_UnaryFunction0DDouble(arg1);
+ } else {
+ result = (UnaryFunction0D<double > *)new UnaryFunction0D<double >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DDouble(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = (UnaryFunction0D<double > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DDouble",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTdouble_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DDouble" "', argument " "1"" of type '" "UnaryFunction0D<double > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DDouble_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = (UnaryFunction0D<double > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DDouble_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DDouble_getName" "', argument " "1"" of type '" "UnaryFunction0D<double > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction0D<double > const *)arg1)->UnaryFunction0D<double >::getName();
+ } else {
+ result = ((UnaryFunction0D<double > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DDouble___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = (UnaryFunction0D<double > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DDouble___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DDouble___call__" "', argument " "1"" of type '" "UnaryFunction0D<double > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DDouble___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DDouble___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (double)(arg1)->UnaryFunction0D<double >::operator ()(*arg2);
+ } else {
+ result = (double)(arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction0DDouble(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = (UnaryFunction0D<double > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction0DDouble",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction0DDouble" "', argument " "1"" of type '" "UnaryFunction0D<double > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DDouble_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTdouble_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DVec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction0D<Geometry::Vec2f > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction0DVec2f",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction0D<Geometry::Vec2f > *)new SwigDirector_UnaryFunction0DVec2f(arg1);
+ } else {
+ result = (UnaryFunction0D<Geometry::Vec2f > *)new UnaryFunction0D<Geometry::Vec2f >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DVec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Geometry::Vec2f > *arg1 = (UnaryFunction0D<Geometry::Vec2f > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DVec2f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DVec2f" "', argument " "1"" of type '" "UnaryFunction0D<Geometry::Vec2f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Geometry::Vec2f > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DVec2f_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Geometry::Vec2f > *arg1 = (UnaryFunction0D<Geometry::Vec2f > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DVec2f_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DVec2f_getName" "', argument " "1"" of type '" "UnaryFunction0D<Geometry::Vec2f > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Geometry::Vec2f > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction0D<Geometry::Vec2f > const *)arg1)->UnaryFunction0D<VecMat::Vec2<float > >::getName();
+ } else {
+ result = ((UnaryFunction0D<Geometry::Vec2f > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DVec2f___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Geometry::Vec2f > *arg1 = (UnaryFunction0D<Geometry::Vec2f > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ VecMat::Vec2<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DVec2f___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DVec2f___call__" "', argument " "1"" of type '" "UnaryFunction0D<Geometry::Vec2f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Geometry::Vec2f > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DVec2f___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DVec2f___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (arg1)->UnaryFunction0D<VecMat::Vec2<float > >::operator ()(*arg2);
+ } else {
+ result = (arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<float >(static_cast< const VecMat::Vec2<float >& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction0DVec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Geometry::Vec2f > *arg1 = (UnaryFunction0D<Geometry::Vec2f > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction0DVec2f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction0DVec2f" "', argument " "1"" of type '" "UnaryFunction0D<Geometry::Vec2f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Geometry::Vec2f > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DVec2f_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DVec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction0D<Geometry::Vec3f > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction0DVec3f",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction0D<Geometry::Vec3f > *)new SwigDirector_UnaryFunction0DVec3f(arg1);
+ } else {
+ result = (UnaryFunction0D<Geometry::Vec3f > *)new UnaryFunction0D<Geometry::Vec3f >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DVec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Geometry::Vec3f > *arg1 = (UnaryFunction0D<Geometry::Vec3f > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DVec3f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DVec3f" "', argument " "1"" of type '" "UnaryFunction0D<Geometry::Vec3f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Geometry::Vec3f > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DVec3f_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Geometry::Vec3f > *arg1 = (UnaryFunction0D<Geometry::Vec3f > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DVec3f_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DVec3f_getName" "', argument " "1"" of type '" "UnaryFunction0D<Geometry::Vec3f > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Geometry::Vec3f > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction0D<Geometry::Vec3f > const *)arg1)->UnaryFunction0D<VecMat::Vec3<float > >::getName();
+ } else {
+ result = ((UnaryFunction0D<Geometry::Vec3f > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DVec3f___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Geometry::Vec3f > *arg1 = (UnaryFunction0D<Geometry::Vec3f > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ VecMat::Vec3<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DVec3f___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DVec3f___call__" "', argument " "1"" of type '" "UnaryFunction0D<Geometry::Vec3f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Geometry::Vec3f > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DVec3f___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DVec3f___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (arg1)->UnaryFunction0D<VecMat::Vec3<float > >::operator ()(*arg2);
+ } else {
+ result = (arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<float >(static_cast< const VecMat::Vec3<float >& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction0DVec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Geometry::Vec3f > *arg1 = (UnaryFunction0D<Geometry::Vec3f > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction0DVec3f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction0DVec3f" "', argument " "1"" of type '" "UnaryFunction0D<Geometry::Vec3f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Geometry::Vec3f > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DVec3f_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction0D<Id > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction0DId",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction0D<Id > *)new SwigDirector_UnaryFunction0DId(arg1);
+ } else {
+ result = (UnaryFunction0D<Id > *)new UnaryFunction0D<Id >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTId_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Id > *arg1 = (UnaryFunction0D<Id > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTId_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DId" "', argument " "1"" of type '" "UnaryFunction0D<Id > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Id > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DId_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Id > *arg1 = (UnaryFunction0D<Id > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DId_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTId_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DId_getName" "', argument " "1"" of type '" "UnaryFunction0D<Id > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Id > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction0D<Id > const *)arg1)->UnaryFunction0D<Id >::getName();
+ } else {
+ result = ((UnaryFunction0D<Id > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DId___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Id > *arg1 = (UnaryFunction0D<Id > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DId___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTId_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DId___call__" "', argument " "1"" of type '" "UnaryFunction0D<Id > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Id > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DId___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DId___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (arg1)->UnaryFunction0D<Id >::operator ()(*arg2);
+ } else {
+ result = (arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction0DId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<Id > *arg1 = (UnaryFunction0D<Id > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction0DId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTId_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction0DId" "', argument " "1"" of type '" "UnaryFunction0D<Id > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<Id > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DId_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTId_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DViewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<ViewShape * > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_UnaryFunction0DViewShape")) SWIG_fail;
+ {
+ try {
+ result = (UnaryFunction0D<ViewShape * > *)new UnaryFunction0D<ViewShape * >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTViewShape_p_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DViewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<ViewShape * > *arg1 = (UnaryFunction0D<ViewShape * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DViewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTViewShape_p_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DViewShape" "', argument " "1"" of type '" "UnaryFunction0D<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<ViewShape * > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DViewShape_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<ViewShape * > *arg1 = (UnaryFunction0D<ViewShape * > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DViewShape_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTViewShape_p_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DViewShape_getName" "', argument " "1"" of type '" "UnaryFunction0D<ViewShape * > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<ViewShape * > * >(argp1);
+ {
+ try {
+ result = ((UnaryFunction0D<ViewShape * > const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DViewShape___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<ViewShape * > *arg1 = (UnaryFunction0D<ViewShape * > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DViewShape___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTViewShape_p_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DViewShape___call__" "', argument " "1"" of type '" "UnaryFunction0D<ViewShape * > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<ViewShape * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DViewShape___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DViewShape___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (ViewShape *)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DViewShape_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTViewShape_p_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction0DVectorViewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<std::vector<ViewShape * > > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_UnaryFunction0DVectorViewShape")) SWIG_fail;
+ {
+ try {
+ result = (UnaryFunction0D<std::vector<ViewShape * > > *)new UnaryFunction0D<std::vector<ViewShape * > >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction0DVectorViewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<std::vector<ViewShape * > > *arg1 = (UnaryFunction0D<std::vector<ViewShape * > > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction0DVectorViewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction0DVectorViewShape" "', argument " "1"" of type '" "UnaryFunction0D<std::vector<ViewShape * > > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<std::vector<ViewShape * > > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DVectorViewShape_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<std::vector<ViewShape * > > *arg1 = (UnaryFunction0D<std::vector<ViewShape * > > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction0DVectorViewShape_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DVectorViewShape_getName" "', argument " "1"" of type '" "UnaryFunction0D<std::vector<ViewShape * > > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<std::vector<ViewShape * > > * >(argp1);
+ {
+ try {
+ result = ((UnaryFunction0D<std::vector<ViewShape * > > const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction0DVectorViewShape___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<std::vector<ViewShape * > > *arg1 = (UnaryFunction0D<std::vector<ViewShape * > > *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ std::vector<ViewShape *,std::allocator<ViewShape * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction0DVectorViewShape___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction0DVectorViewShape___call__" "', argument " "1"" of type '" "UnaryFunction0D<std::vector<ViewShape * > > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<std::vector<ViewShape * > > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction0DVectorViewShape___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction0DVectorViewShape___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = swig::from(static_cast< std::vector<ViewShape*,std::allocator<ViewShape * > > >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction0DVectorViewShape_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetXF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetXF0D *arg1 = (Functions0D::GetXF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetXF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetXF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetXF0D_getName" "', argument " "1"" of type '" "Functions0D::GetXF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetXF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetXF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetXF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetXF0D *arg1 = (Functions0D::GetXF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetXF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetXF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetXF0D___call__" "', argument " "1"" of type '" "Functions0D::GetXF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetXF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetXF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetXF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetXF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetXF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetXF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetXF0D *)new Functions0D::GetXF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetXF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetXF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetXF0D *arg1 = (Functions0D::GetXF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetXF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetXF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetXF0D" "', argument " "1"" of type '" "Functions0D::GetXF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetXF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetXF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetXF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetYF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetYF0D *arg1 = (Functions0D::GetYF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetYF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetYF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetYF0D_getName" "', argument " "1"" of type '" "Functions0D::GetYF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetYF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetYF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetYF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetYF0D *arg1 = (Functions0D::GetYF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetYF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetYF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetYF0D___call__" "', argument " "1"" of type '" "Functions0D::GetYF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetYF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetYF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetYF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetYF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetYF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetYF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetYF0D *)new Functions0D::GetYF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetYF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetYF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetYF0D *arg1 = (Functions0D::GetYF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetYF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetYF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetYF0D" "', argument " "1"" of type '" "Functions0D::GetYF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetYF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetYF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetYF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetZF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetZF0D *arg1 = (Functions0D::GetZF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetZF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetZF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetZF0D_getName" "', argument " "1"" of type '" "Functions0D::GetZF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetZF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetZF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetZF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetZF0D *arg1 = (Functions0D::GetZF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetZF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetZF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetZF0D___call__" "', argument " "1"" of type '" "Functions0D::GetZF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetZF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetZF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetZF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetZF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetZF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetZF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetZF0D *)new Functions0D::GetZF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetZF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetZF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetZF0D *arg1 = (Functions0D::GetZF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetZF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetZF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetZF0D" "', argument " "1"" of type '" "Functions0D::GetZF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetZF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetZF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetZF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetProjectedXF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedXF0D *arg1 = (Functions0D::GetProjectedXF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetProjectedXF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedXF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedXF0D_getName" "', argument " "1"" of type '" "Functions0D::GetProjectedXF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedXF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetProjectedXF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedXF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedXF0D *arg1 = (Functions0D::GetProjectedXF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetProjectedXF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedXF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedXF0D___call__" "', argument " "1"" of type '" "Functions0D::GetProjectedXF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedXF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetProjectedXF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetProjectedXF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedXF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedXF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetProjectedXF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetProjectedXF0D *)new Functions0D::GetProjectedXF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetProjectedXF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetProjectedXF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedXF0D *arg1 = (Functions0D::GetProjectedXF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetProjectedXF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedXF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetProjectedXF0D" "', argument " "1"" of type '" "Functions0D::GetProjectedXF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedXF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetProjectedXF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetProjectedXF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetProjectedYF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedYF0D *arg1 = (Functions0D::GetProjectedYF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetProjectedYF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedYF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedYF0D_getName" "', argument " "1"" of type '" "Functions0D::GetProjectedYF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedYF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetProjectedYF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedYF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedYF0D *arg1 = (Functions0D::GetProjectedYF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetProjectedYF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedYF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedYF0D___call__" "', argument " "1"" of type '" "Functions0D::GetProjectedYF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedYF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetProjectedYF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetProjectedYF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedYF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedYF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetProjectedYF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetProjectedYF0D *)new Functions0D::GetProjectedYF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetProjectedYF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetProjectedYF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedYF0D *arg1 = (Functions0D::GetProjectedYF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetProjectedYF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedYF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetProjectedYF0D" "', argument " "1"" of type '" "Functions0D::GetProjectedYF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedYF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetProjectedYF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetProjectedYF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetProjectedZF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedZF0D *arg1 = (Functions0D::GetProjectedZF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetProjectedZF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedZF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedZF0D_getName" "', argument " "1"" of type '" "Functions0D::GetProjectedZF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedZF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetProjectedZF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedZF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedZF0D *arg1 = (Functions0D::GetProjectedZF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetProjectedZF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedZF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedZF0D___call__" "', argument " "1"" of type '" "Functions0D::GetProjectedZF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedZF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetProjectedZF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetProjectedZF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedZF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedZF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetProjectedZF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetProjectedZF0D *)new Functions0D::GetProjectedZF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetProjectedZF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetProjectedZF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetProjectedZF0D *arg1 = (Functions0D::GetProjectedZF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetProjectedZF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetProjectedZF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetProjectedZF0D" "', argument " "1"" of type '" "Functions0D::GetProjectedZF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetProjectedZF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetProjectedZF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetProjectedZF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetCurvilinearAbscissaF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetCurvilinearAbscissaF0D *arg1 = (Functions0D::GetCurvilinearAbscissaF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetCurvilinearAbscissaF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetCurvilinearAbscissaF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetCurvilinearAbscissaF0D_getName" "', argument " "1"" of type '" "Functions0D::GetCurvilinearAbscissaF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetCurvilinearAbscissaF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetCurvilinearAbscissaF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetCurvilinearAbscissaF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetCurvilinearAbscissaF0D *arg1 = (Functions0D::GetCurvilinearAbscissaF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetCurvilinearAbscissaF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetCurvilinearAbscissaF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetCurvilinearAbscissaF0D___call__" "', argument " "1"" of type '" "Functions0D::GetCurvilinearAbscissaF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetCurvilinearAbscissaF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetCurvilinearAbscissaF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetCurvilinearAbscissaF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (float)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetCurvilinearAbscissaF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetCurvilinearAbscissaF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetCurvilinearAbscissaF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetCurvilinearAbscissaF0D *)new Functions0D::GetCurvilinearAbscissaF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetCurvilinearAbscissaF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetCurvilinearAbscissaF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetCurvilinearAbscissaF0D *arg1 = (Functions0D::GetCurvilinearAbscissaF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetCurvilinearAbscissaF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetCurvilinearAbscissaF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetCurvilinearAbscissaF0D" "', argument " "1"" of type '" "Functions0D::GetCurvilinearAbscissaF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetCurvilinearAbscissaF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetCurvilinearAbscissaF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetCurvilinearAbscissaF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetParameterF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetParameterF0D *arg1 = (Functions0D::GetParameterF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetParameterF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetParameterF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetParameterF0D_getName" "', argument " "1"" of type '" "Functions0D::GetParameterF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetParameterF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetParameterF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetParameterF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetParameterF0D *arg1 = (Functions0D::GetParameterF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetParameterF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetParameterF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetParameterF0D___call__" "', argument " "1"" of type '" "Functions0D::GetParameterF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetParameterF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetParameterF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetParameterF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (float)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetParameterF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetParameterF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetParameterF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetParameterF0D *)new Functions0D::GetParameterF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetParameterF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetParameterF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetParameterF0D *arg1 = (Functions0D::GetParameterF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetParameterF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetParameterF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetParameterF0D" "', argument " "1"" of type '" "Functions0D::GetParameterF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetParameterF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetParameterF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetParameterF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_VertexOrientation2DF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::VertexOrientation2DF0D *arg1 = (Functions0D::VertexOrientation2DF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:VertexOrientation2DF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__VertexOrientation2DF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VertexOrientation2DF0D_getName" "', argument " "1"" of type '" "Functions0D::VertexOrientation2DF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::VertexOrientation2DF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::VertexOrientation2DF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VertexOrientation2DF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::VertexOrientation2DF0D *arg1 = (Functions0D::VertexOrientation2DF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:VertexOrientation2DF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__VertexOrientation2DF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VertexOrientation2DF0D___call__" "', argument " "1"" of type '" "Functions0D::VertexOrientation2DF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::VertexOrientation2DF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VertexOrientation2DF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VertexOrientation2DF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VertexOrientation2DF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::VertexOrientation2DF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_VertexOrientation2DF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::VertexOrientation2DF0D *)new Functions0D::VertexOrientation2DF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__VertexOrientation2DF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_VertexOrientation2DF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::VertexOrientation2DF0D *arg1 = (Functions0D::VertexOrientation2DF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_VertexOrientation2DF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__VertexOrientation2DF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VertexOrientation2DF0D" "', argument " "1"" of type '" "Functions0D::VertexOrientation2DF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::VertexOrientation2DF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *VertexOrientation2DF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__VertexOrientation2DF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_VertexOrientation3DF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::VertexOrientation3DF0D *arg1 = (Functions0D::VertexOrientation3DF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:VertexOrientation3DF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__VertexOrientation3DF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VertexOrientation3DF0D_getName" "', argument " "1"" of type '" "Functions0D::VertexOrientation3DF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::VertexOrientation3DF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::VertexOrientation3DF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VertexOrientation3DF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::VertexOrientation3DF0D *arg1 = (Functions0D::VertexOrientation3DF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:VertexOrientation3DF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__VertexOrientation3DF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VertexOrientation3DF0D___call__" "', argument " "1"" of type '" "Functions0D::VertexOrientation3DF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::VertexOrientation3DF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VertexOrientation3DF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VertexOrientation3DF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VertexOrientation3DF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::VertexOrientation3DF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_VertexOrientation3DF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::VertexOrientation3DF0D *)new Functions0D::VertexOrientation3DF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__VertexOrientation3DF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_VertexOrientation3DF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::VertexOrientation3DF0D *arg1 = (Functions0D::VertexOrientation3DF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_VertexOrientation3DF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__VertexOrientation3DF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VertexOrientation3DF0D" "', argument " "1"" of type '" "Functions0D::VertexOrientation3DF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::VertexOrientation3DF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *VertexOrientation3DF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__VertexOrientation3DF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Curvature2DAngleF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::Curvature2DAngleF0D *arg1 = (Functions0D::Curvature2DAngleF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curvature2DAngleF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__Curvature2DAngleF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curvature2DAngleF0D_getName" "', argument " "1"" of type '" "Functions0D::Curvature2DAngleF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::Curvature2DAngleF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::Curvature2DAngleF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curvature2DAngleF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::Curvature2DAngleF0D *arg1 = (Functions0D::Curvature2DAngleF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curvature2DAngleF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__Curvature2DAngleF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curvature2DAngleF0D___call__" "', argument " "1"" of type '" "Functions0D::Curvature2DAngleF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::Curvature2DAngleF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Curvature2DAngleF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Curvature2DAngleF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Curvature2DAngleF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::Curvature2DAngleF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Curvature2DAngleF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::Curvature2DAngleF0D *)new Functions0D::Curvature2DAngleF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__Curvature2DAngleF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Curvature2DAngleF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::Curvature2DAngleF0D *arg1 = (Functions0D::Curvature2DAngleF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Curvature2DAngleF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__Curvature2DAngleF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Curvature2DAngleF0D" "', argument " "1"" of type '" "Functions0D::Curvature2DAngleF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::Curvature2DAngleF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Curvature2DAngleF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__Curvature2DAngleF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ZDiscontinuityF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ZDiscontinuityF0D *arg1 = (Functions0D::ZDiscontinuityF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ZDiscontinuityF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ZDiscontinuityF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ZDiscontinuityF0D_getName" "', argument " "1"" of type '" "Functions0D::ZDiscontinuityF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ZDiscontinuityF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::ZDiscontinuityF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ZDiscontinuityF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ZDiscontinuityF0D *arg1 = (Functions0D::ZDiscontinuityF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ZDiscontinuityF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ZDiscontinuityF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ZDiscontinuityF0D___call__" "', argument " "1"" of type '" "Functions0D::ZDiscontinuityF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ZDiscontinuityF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ZDiscontinuityF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ZDiscontinuityF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ZDiscontinuityF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ZDiscontinuityF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ZDiscontinuityF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::ZDiscontinuityF0D *)new Functions0D::ZDiscontinuityF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__ZDiscontinuityF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ZDiscontinuityF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ZDiscontinuityF0D *arg1 = (Functions0D::ZDiscontinuityF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ZDiscontinuityF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ZDiscontinuityF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ZDiscontinuityF0D" "', argument " "1"" of type '" "Functions0D::ZDiscontinuityF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ZDiscontinuityF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ZDiscontinuityF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__ZDiscontinuityF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Normal2DF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::Normal2DF0D *arg1 = (Functions0D::Normal2DF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Normal2DF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__Normal2DF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Normal2DF0D_getName" "', argument " "1"" of type '" "Functions0D::Normal2DF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::Normal2DF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::Normal2DF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Normal2DF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::Normal2DF0D *arg1 = (Functions0D::Normal2DF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Normal2DF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__Normal2DF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Normal2DF0D___call__" "', argument " "1"" of type '" "Functions0D::Normal2DF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::Normal2DF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Normal2DF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Normal2DF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Normal2DF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::Normal2DF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Normal2DF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::Normal2DF0D *)new Functions0D::Normal2DF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__Normal2DF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Normal2DF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::Normal2DF0D *arg1 = (Functions0D::Normal2DF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Normal2DF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__Normal2DF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Normal2DF0D" "', argument " "1"" of type '" "Functions0D::Normal2DF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::Normal2DF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Normal2DF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__Normal2DF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_MaterialF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::MaterialF0D *arg1 = (Functions0D::MaterialF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:MaterialF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__MaterialF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MaterialF0D_getName" "', argument " "1"" of type '" "Functions0D::MaterialF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::MaterialF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::MaterialF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_MaterialF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::MaterialF0D *arg1 = (Functions0D::MaterialF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ Material result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:MaterialF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__MaterialF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MaterialF0D___call__" "', argument " "1"" of type '" "Functions0D::MaterialF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::MaterialF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MaterialF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MaterialF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Material(static_cast< const Material& >(result))), SWIGTYPE_p_Material, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_MaterialF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::MaterialF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_MaterialF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::MaterialF0D *)new Functions0D::MaterialF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__MaterialF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_MaterialF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::MaterialF0D *arg1 = (Functions0D::MaterialF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_MaterialF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__MaterialF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_MaterialF0D" "', argument " "1"" of type '" "Functions0D::MaterialF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::MaterialF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *MaterialF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__MaterialF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ShapeIdF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ShapeIdF0D *arg1 = (Functions0D::ShapeIdF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShapeIdF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ShapeIdF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShapeIdF0D_getName" "', argument " "1"" of type '" "Functions0D::ShapeIdF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ShapeIdF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::ShapeIdF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShapeIdF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ShapeIdF0D *arg1 = (Functions0D::ShapeIdF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShapeIdF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ShapeIdF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShapeIdF0D___call__" "', argument " "1"" of type '" "Functions0D::ShapeIdF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ShapeIdF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ShapeIdF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ShapeIdF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ShapeIdF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ShapeIdF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ShapeIdF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::ShapeIdF0D *)new Functions0D::ShapeIdF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__ShapeIdF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ShapeIdF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ShapeIdF0D *arg1 = (Functions0D::ShapeIdF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ShapeIdF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ShapeIdF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ShapeIdF0D" "', argument " "1"" of type '" "Functions0D::ShapeIdF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ShapeIdF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ShapeIdF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__ShapeIdF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_QuantitativeInvisibilityF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::QuantitativeInvisibilityF0D *arg1 = (Functions0D::QuantitativeInvisibilityF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:QuantitativeInvisibilityF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__QuantitativeInvisibilityF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "QuantitativeInvisibilityF0D_getName" "', argument " "1"" of type '" "Functions0D::QuantitativeInvisibilityF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::QuantitativeInvisibilityF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::QuantitativeInvisibilityF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_QuantitativeInvisibilityF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::QuantitativeInvisibilityF0D *arg1 = (Functions0D::QuantitativeInvisibilityF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:QuantitativeInvisibilityF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__QuantitativeInvisibilityF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "QuantitativeInvisibilityF0D___call__" "', argument " "1"" of type '" "Functions0D::QuantitativeInvisibilityF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::QuantitativeInvisibilityF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "QuantitativeInvisibilityF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "QuantitativeInvisibilityF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (unsigned int)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_QuantitativeInvisibilityF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::QuantitativeInvisibilityF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_QuantitativeInvisibilityF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::QuantitativeInvisibilityF0D *)new Functions0D::QuantitativeInvisibilityF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__QuantitativeInvisibilityF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_QuantitativeInvisibilityF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::QuantitativeInvisibilityF0D *arg1 = (Functions0D::QuantitativeInvisibilityF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_QuantitativeInvisibilityF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__QuantitativeInvisibilityF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_QuantitativeInvisibilityF0D" "', argument " "1"" of type '" "Functions0D::QuantitativeInvisibilityF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::QuantitativeInvisibilityF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *QuantitativeInvisibilityF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__QuantitativeInvisibilityF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_CurveNatureF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::CurveNatureF0D *arg1 = (Functions0D::CurveNatureF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurveNatureF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__CurveNatureF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurveNatureF0D_getName" "', argument " "1"" of type '" "Functions0D::CurveNatureF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::CurveNatureF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::CurveNatureF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurveNatureF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::CurveNatureF0D *arg1 = (Functions0D::CurveNatureF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ Nature::EdgeNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurveNatureF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__CurveNatureF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurveNatureF0D___call__" "', argument " "1"" of type '" "Functions0D::CurveNatureF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::CurveNatureF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurveNatureF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurveNatureF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (Nature::EdgeNature)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurveNatureF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::CurveNatureF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_CurveNatureF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::CurveNatureF0D *)new Functions0D::CurveNatureF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__CurveNatureF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_CurveNatureF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::CurveNatureF0D *arg1 = (Functions0D::CurveNatureF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_CurveNatureF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__CurveNatureF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CurveNatureF0D" "', argument " "1"" of type '" "Functions0D::CurveNatureF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::CurveNatureF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *CurveNatureF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__CurveNatureF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetShapeF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetShapeF0D *arg1 = (Functions0D::GetShapeF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetShapeF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetShapeF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetShapeF0D_getName" "', argument " "1"" of type '" "Functions0D::GetShapeF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetShapeF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetShapeF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetShapeF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetShapeF0D *arg1 = (Functions0D::GetShapeF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetShapeF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetShapeF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetShapeF0D___call__" "', argument " "1"" of type '" "Functions0D::GetShapeF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetShapeF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetShapeF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetShapeF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (ViewShape *)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetShapeF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetShapeF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetShapeF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetShapeF0D *)new Functions0D::GetShapeF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetShapeF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetShapeF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetShapeF0D *arg1 = (Functions0D::GetShapeF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetShapeF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetShapeF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetShapeF0D" "', argument " "1"" of type '" "Functions0D::GetShapeF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetShapeF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetShapeF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetShapeF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetOccludersF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetOccludersF0D *arg1 = (Functions0D::GetOccludersF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetOccludersF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetOccludersF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetOccludersF0D_getName" "', argument " "1"" of type '" "Functions0D::GetOccludersF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetOccludersF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetOccludersF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetOccludersF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetOccludersF0D *arg1 = (Functions0D::GetOccludersF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ std::vector<ViewShape *,std::allocator<ViewShape * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetOccludersF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetOccludersF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetOccludersF0D___call__" "', argument " "1"" of type '" "Functions0D::GetOccludersF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetOccludersF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetOccludersF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetOccludersF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = swig::from(static_cast< std::vector<ViewShape*,std::allocator<ViewShape * > > >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetOccludersF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetOccludersF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetOccludersF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetOccludersF0D *)new Functions0D::GetOccludersF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetOccludersF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetOccludersF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetOccludersF0D *arg1 = (Functions0D::GetOccludersF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetOccludersF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetOccludersF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetOccludersF0D" "', argument " "1"" of type '" "Functions0D::GetOccludersF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetOccludersF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetOccludersF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetOccludersF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetOccludeeF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetOccludeeF0D *arg1 = (Functions0D::GetOccludeeF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetOccludeeF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetOccludeeF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetOccludeeF0D_getName" "', argument " "1"" of type '" "Functions0D::GetOccludeeF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetOccludeeF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetOccludeeF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetOccludeeF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetOccludeeF0D *arg1 = (Functions0D::GetOccludeeF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetOccludeeF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetOccludeeF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetOccludeeF0D___call__" "', argument " "1"" of type '" "Functions0D::GetOccludeeF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetOccludeeF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetOccludeeF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetOccludeeF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (ViewShape *)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetOccludeeF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetOccludeeF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetOccludeeF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::GetOccludeeF0D *)new Functions0D::GetOccludeeF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetOccludeeF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetOccludeeF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetOccludeeF0D *arg1 = (Functions0D::GetOccludeeF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetOccludeeF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetOccludeeF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetOccludeeF0D" "', argument " "1"" of type '" "Functions0D::GetOccludeeF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetOccludeeF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetOccludeeF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetOccludeeF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "getFEdge" "', argument " "1"" of type '" "Interface0D &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "getFEdge" "', argument " "1"" of type '" "Interface0D &""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)Functions0D::getFEdge(*arg1,*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVoid__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction1D<void > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction1DVoid",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<void > *)new SwigDirector_UnaryFunction1DVoid(arg1);
+ } else {
+ result = (UnaryFunction1D<void > *)new UnaryFunction1D<void >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTvoid_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVoid__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ IntegrationType arg2 ;
+ UnaryFunction1D<void > *result = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_UnaryFunction1DVoid",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_UnaryFunction1DVoid" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<void > *)new SwigDirector_UnaryFunction1DVoid(arg1,arg2);
+ } else {
+ result = (UnaryFunction1D<void > *)new UnaryFunction1D<void >(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTvoid_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVoid(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_UnaryFunction1DVoid__SWIG_0(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_UnaryFunction1DVoid__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_UnaryFunction1DVoid'.\n Possible C/C++ prototypes are:\n UnaryFunction1D<(void)>(PyObject *)\n UnaryFunction1D<(void)>(PyObject *,IntegrationType)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction1DVoid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<void > *arg1 = (UnaryFunction1D<void > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction1DVoid",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTvoid_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction1DVoid" "', argument " "1"" of type '" "UnaryFunction1D<void > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<void > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVoid_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<void > *arg1 = (UnaryFunction1D<void > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DVoid_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTvoid_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVoid_getName" "', argument " "1"" of type '" "UnaryFunction1D<void > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<void > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction1D<void > const *)arg1)->UnaryFunction1D<void >::getName();
+ } else {
+ result = ((UnaryFunction1D<void > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVoid___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<void > *arg1 = (UnaryFunction1D<void > *) 0 ;
+ Interface1D *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DVoid___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTvoid_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVoid___call__" "', argument " "1"" of type '" "UnaryFunction1D<void > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<void > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction1DVoid___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction1DVoid___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ (arg1)->UnaryFunction1D<void >::operator ()(*arg2);
+ } else {
+ (arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVoid_setIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<void > *arg1 = (UnaryFunction1D<void > *) 0 ;
+ IntegrationType arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DVoid_setIntegrationType",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTvoid_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVoid_setIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<void > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<void > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "UnaryFunction1DVoid_setIntegrationType" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ (arg1)->setIntegrationType(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVoid_getIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<void > *arg1 = (UnaryFunction1D<void > *) 0 ;
+ IntegrationType result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DVoid_getIntegrationType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTvoid_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVoid_getIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<void > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<void > * >(argp1);
+ {
+ try {
+ result = (IntegrationType)((UnaryFunction1D<void > const *)arg1)->getIntegrationType();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction1DVoid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<void > *arg1 = (UnaryFunction1D<void > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction1DVoid",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTvoid_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction1DVoid" "', argument " "1"" of type '" "UnaryFunction1D<void > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<void > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction1DVoid_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction1DTvoid_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DUnsigned__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction1D<unsigned int > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction1DUnsigned",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<unsigned int > *)new SwigDirector_UnaryFunction1DUnsigned(arg1);
+ } else {
+ result = (UnaryFunction1D<unsigned int > *)new UnaryFunction1D<unsigned int >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DUnsigned__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ IntegrationType arg2 ;
+ UnaryFunction1D<unsigned int > *result = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_UnaryFunction1DUnsigned",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_UnaryFunction1DUnsigned" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<unsigned int > *)new SwigDirector_UnaryFunction1DUnsigned(arg1,arg2);
+ } else {
+ result = (UnaryFunction1D<unsigned int > *)new UnaryFunction1D<unsigned int >(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DUnsigned(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_UnaryFunction1DUnsigned__SWIG_0(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_UnaryFunction1DUnsigned__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_UnaryFunction1DUnsigned'.\n Possible C/C++ prototypes are:\n UnaryFunction1D<(unsigned int)>(PyObject *)\n UnaryFunction1D<(unsigned int)>(PyObject *,IntegrationType)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction1DUnsigned(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<unsigned int > *arg1 = (UnaryFunction1D<unsigned int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction1DUnsigned",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction1DUnsigned" "', argument " "1"" of type '" "UnaryFunction1D<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<unsigned int > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DUnsigned_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<unsigned int > *arg1 = (UnaryFunction1D<unsigned int > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DUnsigned_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DUnsigned_getName" "', argument " "1"" of type '" "UnaryFunction1D<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<unsigned int > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction1D<unsigned int > const *)arg1)->UnaryFunction1D<unsigned int >::getName();
+ } else {
+ result = ((UnaryFunction1D<unsigned int > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DUnsigned___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<unsigned int > *arg1 = (UnaryFunction1D<unsigned int > *) 0 ;
+ Interface1D *arg2 = 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DUnsigned___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DUnsigned___call__" "', argument " "1"" of type '" "UnaryFunction1D<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<unsigned int > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction1DUnsigned___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction1DUnsigned___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (unsigned int)(arg1)->UnaryFunction1D<unsigned int >::operator ()(*arg2);
+ } else {
+ result = (unsigned int)(arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DUnsigned_setIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<unsigned int > *arg1 = (UnaryFunction1D<unsigned int > *) 0 ;
+ IntegrationType arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DUnsigned_setIntegrationType",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DUnsigned_setIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<unsigned int > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "UnaryFunction1DUnsigned_setIntegrationType" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ (arg1)->setIntegrationType(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DUnsigned_getIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<unsigned int > *arg1 = (UnaryFunction1D<unsigned int > *) 0 ;
+ IntegrationType result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DUnsigned_getIntegrationType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DUnsigned_getIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<unsigned int > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<unsigned int > * >(argp1);
+ {
+ try {
+ result = (IntegrationType)((UnaryFunction1D<unsigned int > const *)arg1)->getIntegrationType();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction1DUnsigned(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<unsigned int > *arg1 = (UnaryFunction1D<unsigned int > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction1DUnsigned",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction1DUnsigned" "', argument " "1"" of type '" "UnaryFunction1D<unsigned int > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<unsigned int > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction1DUnsigned_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction1DTunsigned_int_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DFloat__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction1D<float > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction1DFloat",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<float > *)new SwigDirector_UnaryFunction1DFloat(arg1);
+ } else {
+ result = (UnaryFunction1D<float > *)new UnaryFunction1D<float >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DFloat__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ IntegrationType arg2 ;
+ UnaryFunction1D<float > *result = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_UnaryFunction1DFloat",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_UnaryFunction1DFloat" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<float > *)new SwigDirector_UnaryFunction1DFloat(arg1,arg2);
+ } else {
+ result = (UnaryFunction1D<float > *)new UnaryFunction1D<float >(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTfloat_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DFloat(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_UnaryFunction1DFloat__SWIG_0(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_UnaryFunction1DFloat__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_UnaryFunction1DFloat'.\n Possible C/C++ prototypes are:\n UnaryFunction1D<(float)>(PyObject *)\n UnaryFunction1D<(float)>(PyObject *,IntegrationType)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction1DFloat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<float > *arg1 = (UnaryFunction1D<float > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction1DFloat",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTfloat_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction1DFloat" "', argument " "1"" of type '" "UnaryFunction1D<float > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<float > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DFloat_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<float > *arg1 = (UnaryFunction1D<float > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DFloat_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DFloat_getName" "', argument " "1"" of type '" "UnaryFunction1D<float > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<float > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction1D<float > const *)arg1)->UnaryFunction1D<float >::getName();
+ } else {
+ result = ((UnaryFunction1D<float > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DFloat___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<float > *arg1 = (UnaryFunction1D<float > *) 0 ;
+ Interface1D *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DFloat___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DFloat___call__" "', argument " "1"" of type '" "UnaryFunction1D<float > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<float > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction1DFloat___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction1DFloat___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (float)(arg1)->UnaryFunction1D<float >::operator ()(*arg2);
+ } else {
+ result = (float)(arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DFloat_setIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<float > *arg1 = (UnaryFunction1D<float > *) 0 ;
+ IntegrationType arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DFloat_setIntegrationType",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DFloat_setIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<float > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<float > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "UnaryFunction1DFloat_setIntegrationType" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ (arg1)->setIntegrationType(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DFloat_getIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<float > *arg1 = (UnaryFunction1D<float > *) 0 ;
+ IntegrationType result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DFloat_getIntegrationType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DFloat_getIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<float > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<float > * >(argp1);
+ {
+ try {
+ result = (IntegrationType)((UnaryFunction1D<float > const *)arg1)->getIntegrationType();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction1DFloat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<float > *arg1 = (UnaryFunction1D<float > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction1DFloat",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTfloat_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction1DFloat" "', argument " "1"" of type '" "UnaryFunction1D<float > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<float > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction1DFloat_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction1DTfloat_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DDouble__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction1D<double > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction1DDouble",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<double > *)new SwigDirector_UnaryFunction1DDouble(arg1);
+ } else {
+ result = (UnaryFunction1D<double > *)new UnaryFunction1D<double >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DDouble__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ IntegrationType arg2 ;
+ UnaryFunction1D<double > *result = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_UnaryFunction1DDouble",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_UnaryFunction1DDouble" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<double > *)new SwigDirector_UnaryFunction1DDouble(arg1,arg2);
+ } else {
+ result = (UnaryFunction1D<double > *)new UnaryFunction1D<double >(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTdouble_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DDouble(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_UnaryFunction1DDouble__SWIG_0(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_UnaryFunction1DDouble__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_UnaryFunction1DDouble'.\n Possible C/C++ prototypes are:\n UnaryFunction1D<(double)>(PyObject *)\n UnaryFunction1D<(double)>(PyObject *,IntegrationType)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction1DDouble(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<double > *arg1 = (UnaryFunction1D<double > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction1DDouble",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTdouble_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction1DDouble" "', argument " "1"" of type '" "UnaryFunction1D<double > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<double > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DDouble_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<double > *arg1 = (UnaryFunction1D<double > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DDouble_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DDouble_getName" "', argument " "1"" of type '" "UnaryFunction1D<double > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<double > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction1D<double > const *)arg1)->UnaryFunction1D<double >::getName();
+ } else {
+ result = ((UnaryFunction1D<double > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DDouble___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<double > *arg1 = (UnaryFunction1D<double > *) 0 ;
+ Interface1D *arg2 = 0 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DDouble___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DDouble___call__" "', argument " "1"" of type '" "UnaryFunction1D<double > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction1DDouble___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction1DDouble___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (double)(arg1)->UnaryFunction1D<double >::operator ()(*arg2);
+ } else {
+ result = (double)(arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DDouble_setIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<double > *arg1 = (UnaryFunction1D<double > *) 0 ;
+ IntegrationType arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DDouble_setIntegrationType",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DDouble_setIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<double > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<double > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "UnaryFunction1DDouble_setIntegrationType" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ (arg1)->setIntegrationType(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DDouble_getIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<double > *arg1 = (UnaryFunction1D<double > *) 0 ;
+ IntegrationType result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DDouble_getIntegrationType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DDouble_getIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<double > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<double > * >(argp1);
+ {
+ try {
+ result = (IntegrationType)((UnaryFunction1D<double > const *)arg1)->getIntegrationType();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction1DDouble(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<double > *arg1 = (UnaryFunction1D<double > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction1DDouble",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTdouble_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction1DDouble" "', argument " "1"" of type '" "UnaryFunction1D<double > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<double > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction1DDouble_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction1DTdouble_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVec2f__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction1D<Geometry::Vec2f > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction1DVec2f",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<Geometry::Vec2f > *)new SwigDirector_UnaryFunction1DVec2f(arg1);
+ } else {
+ result = (UnaryFunction1D<Geometry::Vec2f > *)new UnaryFunction1D<Geometry::Vec2f >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVec2f__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ IntegrationType arg2 ;
+ UnaryFunction1D<Geometry::Vec2f > *result = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_UnaryFunction1DVec2f",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_UnaryFunction1DVec2f" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<Geometry::Vec2f > *)new SwigDirector_UnaryFunction1DVec2f(arg1,arg2);
+ } else {
+ result = (UnaryFunction1D<Geometry::Vec2f > *)new UnaryFunction1D<Geometry::Vec2f >(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVec2f(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_UnaryFunction1DVec2f__SWIG_0(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_UnaryFunction1DVec2f__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_UnaryFunction1DVec2f'.\n Possible C/C++ prototypes are:\n UnaryFunction1D<(Geometry::Vec2f)>(PyObject *)\n UnaryFunction1D<(Geometry::Vec2f)>(PyObject *,IntegrationType)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction1DVec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec2f > *arg1 = (UnaryFunction1D<Geometry::Vec2f > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction1DVec2f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction1DVec2f" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec2f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec2f > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVec2f_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec2f > *arg1 = (UnaryFunction1D<Geometry::Vec2f > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DVec2f_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVec2f_getName" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec2f > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec2f > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction1D<Geometry::Vec2f > const *)arg1)->UnaryFunction1D<VecMat::Vec2<float > >::getName();
+ } else {
+ result = ((UnaryFunction1D<Geometry::Vec2f > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVec2f___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec2f > *arg1 = (UnaryFunction1D<Geometry::Vec2f > *) 0 ;
+ Interface1D *arg2 = 0 ;
+ VecMat::Vec2<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DVec2f___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVec2f___call__" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec2f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec2f > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction1DVec2f___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction1DVec2f___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (arg1)->UnaryFunction1D<VecMat::Vec2<float > >::operator ()(*arg2);
+ } else {
+ result = (arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec2<float >(static_cast< const VecMat::Vec2<float >& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVec2f_setIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec2f > *arg1 = (UnaryFunction1D<Geometry::Vec2f > *) 0 ;
+ IntegrationType arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DVec2f_setIntegrationType",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVec2f_setIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec2f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec2f > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "UnaryFunction1DVec2f_setIntegrationType" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ (arg1)->setIntegrationType(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVec2f_getIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec2f > *arg1 = (UnaryFunction1D<Geometry::Vec2f > *) 0 ;
+ IntegrationType result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DVec2f_getIntegrationType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVec2f_getIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec2f > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec2f > * >(argp1);
+ {
+ try {
+ result = (IntegrationType)((UnaryFunction1D<Geometry::Vec2f > const *)arg1)->getIntegrationType();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction1DVec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec2f > *arg1 = (UnaryFunction1D<Geometry::Vec2f > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction1DVec2f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction1DVec2f" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec2f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec2f > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction1DVec2f_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVec3f__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryFunction1D<Geometry::Vec3f > *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction1DVec3f",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<Geometry::Vec3f > *)new SwigDirector_UnaryFunction1DVec3f(arg1);
+ } else {
+ result = (UnaryFunction1D<Geometry::Vec3f > *)new UnaryFunction1D<Geometry::Vec3f >();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVec3f__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ IntegrationType arg2 ;
+ UnaryFunction1D<Geometry::Vec3f > *result = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_UnaryFunction1DVec3f",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_UnaryFunction1DVec3f" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryFunction1D<Geometry::Vec3f > *)new SwigDirector_UnaryFunction1DVec3f(arg1,arg2);
+ } else {
+ result = (UnaryFunction1D<Geometry::Vec3f > *)new UnaryFunction1D<Geometry::Vec3f >(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVec3f(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_UnaryFunction1DVec3f__SWIG_0(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_UnaryFunction1DVec3f__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_UnaryFunction1DVec3f'.\n Possible C/C++ prototypes are:\n UnaryFunction1D<(Geometry::Vec3f)>(PyObject *)\n UnaryFunction1D<(Geometry::Vec3f)>(PyObject *,IntegrationType)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction1DVec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec3f > *arg1 = (UnaryFunction1D<Geometry::Vec3f > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction1DVec3f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction1DVec3f" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec3f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec3f > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVec3f_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec3f > *arg1 = (UnaryFunction1D<Geometry::Vec3f > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DVec3f_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVec3f_getName" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec3f > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec3f > * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryFunction1D<Geometry::Vec3f > const *)arg1)->UnaryFunction1D<VecMat::Vec3<float > >::getName();
+ } else {
+ result = ((UnaryFunction1D<Geometry::Vec3f > const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVec3f___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec3f > *arg1 = (UnaryFunction1D<Geometry::Vec3f > *) 0 ;
+ Interface1D *arg2 = 0 ;
+ VecMat::Vec3<float > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DVec3f___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVec3f___call__" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec3f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec3f > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction1DVec3f___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction1DVec3f___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (arg1)->UnaryFunction1D<VecMat::Vec3<float > >::operator ()(*arg2);
+ } else {
+ result = (arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj((new VecMat::Vec3<float >(static_cast< const VecMat::Vec3<float >& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVec3f_setIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec3f > *arg1 = (UnaryFunction1D<Geometry::Vec3f > *) 0 ;
+ IntegrationType arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DVec3f_setIntegrationType",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVec3f_setIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec3f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec3f > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "UnaryFunction1DVec3f_setIntegrationType" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ (arg1)->setIntegrationType(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVec3f_getIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec3f > *arg1 = (UnaryFunction1D<Geometry::Vec3f > *) 0 ;
+ IntegrationType result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DVec3f_getIntegrationType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVec3f_getIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec3f > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec3f > * >(argp1);
+ {
+ try {
+ result = (IntegrationType)((UnaryFunction1D<Geometry::Vec3f > const *)arg1)->getIntegrationType();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryFunction1DVec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<Geometry::Vec3f > *arg1 = (UnaryFunction1D<Geometry::Vec3f > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryFunction1DVec3f",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryFunction1DVec3f" "', argument " "1"" of type '" "UnaryFunction1D<Geometry::Vec3f > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<Geometry::Vec3f > * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction1DVec3f_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVectorViewShape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<std::vector<ViewShape * > > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_UnaryFunction1DVectorViewShape")) SWIG_fail;
+ {
+ try {
+ result = (UnaryFunction1D<std::vector<ViewShape * > > *)new UnaryFunction1D<std::vector<ViewShape * > >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVectorViewShape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ UnaryFunction1D<std::vector<ViewShape * > > *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryFunction1DVectorViewShape",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_UnaryFunction1DVectorViewShape" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (UnaryFunction1D<std::vector<ViewShape * > > *)new UnaryFunction1D<std::vector<ViewShape * > >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_UnaryFunction1DVectorViewShape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_UnaryFunction1DVectorViewShape__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_UnaryFunction1DVectorViewShape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_UnaryFunction1DVectorViewShape'.\n Possible C/C++ prototypes are:\n UnaryFunction1D<(std::vector<(p.ViewShape)>)>()\n UnaryFunction1D<(std::vector<(p.ViewShape)>)>(IntegrationType)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryFunction1DVectorViewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<std::vector<ViewShape * > > *arg1 = (UnaryFunction1D<std::vector<ViewShape * > > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryFunction1DVectorViewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryFunction1DVectorViewShape" "', argument " "1"" of type '" "UnaryFunction1D<std::vector<ViewShape * > > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<std::vector<ViewShape * > > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVectorViewShape_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<std::vector<ViewShape * > > *arg1 = (UnaryFunction1D<std::vector<ViewShape * > > *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DVectorViewShape_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVectorViewShape_getName" "', argument " "1"" of type '" "UnaryFunction1D<std::vector<ViewShape * > > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<std::vector<ViewShape * > > * >(argp1);
+ {
+ try {
+ result = ((UnaryFunction1D<std::vector<ViewShape * > > const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVectorViewShape___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<std::vector<ViewShape * > > *arg1 = (UnaryFunction1D<std::vector<ViewShape * > > *) 0 ;
+ Interface1D *arg2 = 0 ;
+ std::vector<ViewShape *,std::allocator<ViewShape * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DVectorViewShape___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVectorViewShape___call__" "', argument " "1"" of type '" "UnaryFunction1D<std::vector<ViewShape * > > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<std::vector<ViewShape * > > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryFunction1DVectorViewShape___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryFunction1DVectorViewShape___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = swig::from(static_cast< std::vector<ViewShape*,std::allocator<ViewShape * > > >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVectorViewShape_setIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<std::vector<ViewShape * > > *arg1 = (UnaryFunction1D<std::vector<ViewShape * > > *) 0 ;
+ IntegrationType arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryFunction1DVectorViewShape_setIntegrationType",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVectorViewShape_setIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<std::vector<ViewShape * > > *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<std::vector<ViewShape * > > * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "UnaryFunction1DVectorViewShape_setIntegrationType" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ (arg1)->setIntegrationType(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryFunction1DVectorViewShape_getIntegrationType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction1D<std::vector<ViewShape * > > *arg1 = (UnaryFunction1D<std::vector<ViewShape * > > *) 0 ;
+ IntegrationType result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryFunction1DVectorViewShape_getIntegrationType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryFunction1DVectorViewShape_getIntegrationType" "', argument " "1"" of type '" "UnaryFunction1D<std::vector<ViewShape * > > const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction1D<std::vector<ViewShape * > > * >(argp1);
+ {
+ try {
+ result = (IntegrationType)((UnaryFunction1D<std::vector<ViewShape * > > const *)arg1)->getIntegrationType();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryFunction1DVectorViewShape_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetXF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::GetXF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetXF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetXF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::GetXF1D *)new Functions1D::GetXF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetXF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetXF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetXF1D *arg1 = (Functions1D::GetXF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetXF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetXF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetXF1D_getName" "', argument " "1"" of type '" "Functions1D::GetXF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetXF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetXF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetXF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetXF1D *arg1 = (Functions1D::GetXF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetXF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetXF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetXF1D___call__" "', argument " "1"" of type '" "Functions1D::GetXF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetXF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetXF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetXF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetXF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetXF1D *arg1 = (Functions1D::GetXF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetXF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetXF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetXF1D" "', argument " "1"" of type '" "Functions1D::GetXF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetXF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetXF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetXF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetYF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::GetYF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetYF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetYF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::GetYF1D *)new Functions1D::GetYF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetYF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetYF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetYF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetYF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::GetYF1D *)new Functions1D::GetYF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetYF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetYF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_GetYF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetYF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetYF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetYF1D(IntegrationType)\n Functions1D::GetYF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetYF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetYF1D *arg1 = (Functions1D::GetYF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetYF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetYF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetYF1D_getName" "', argument " "1"" of type '" "Functions1D::GetYF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetYF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetYF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetYF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetYF1D *arg1 = (Functions1D::GetYF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetYF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetYF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetYF1D___call__" "', argument " "1"" of type '" "Functions1D::GetYF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetYF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetYF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetYF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetYF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetYF1D *arg1 = (Functions1D::GetYF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetYF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetYF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetYF1D" "', argument " "1"" of type '" "Functions1D::GetYF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetYF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetYF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetYF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetZF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::GetZF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetZF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetZF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::GetZF1D *)new Functions1D::GetZF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetZF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetZF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetZF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetZF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::GetZF1D *)new Functions1D::GetZF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetZF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetZF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_GetZF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetZF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetZF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetZF1D(IntegrationType)\n Functions1D::GetZF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetZF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetZF1D *arg1 = (Functions1D::GetZF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetZF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetZF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetZF1D_getName" "', argument " "1"" of type '" "Functions1D::GetZF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetZF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetZF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetZF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetZF1D *arg1 = (Functions1D::GetZF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetZF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetZF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetZF1D___call__" "', argument " "1"" of type '" "Functions1D::GetZF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetZF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetZF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetZF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetZF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetZF1D *arg1 = (Functions1D::GetZF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetZF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetZF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetZF1D" "', argument " "1"" of type '" "Functions1D::GetZF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetZF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetZF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetZF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedXF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::GetProjectedXF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetProjectedXF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetProjectedXF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::GetProjectedXF1D *)new Functions1D::GetProjectedXF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetProjectedXF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedXF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedXF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetProjectedXF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::GetProjectedXF1D *)new Functions1D::GetProjectedXF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetProjectedXF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedXF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_GetProjectedXF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetProjectedXF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetProjectedXF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetProjectedXF1D(IntegrationType)\n Functions1D::GetProjectedXF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedXF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedXF1D *arg1 = (Functions1D::GetProjectedXF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetProjectedXF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedXF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedXF1D_getName" "', argument " "1"" of type '" "Functions1D::GetProjectedXF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedXF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetProjectedXF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedXF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedXF1D *arg1 = (Functions1D::GetProjectedXF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetProjectedXF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedXF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedXF1D___call__" "', argument " "1"" of type '" "Functions1D::GetProjectedXF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedXF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetProjectedXF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetProjectedXF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetProjectedXF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedXF1D *arg1 = (Functions1D::GetProjectedXF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetProjectedXF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedXF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetProjectedXF1D" "', argument " "1"" of type '" "Functions1D::GetProjectedXF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedXF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetProjectedXF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetProjectedXF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedYF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::GetProjectedYF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetProjectedYF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetProjectedYF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::GetProjectedYF1D *)new Functions1D::GetProjectedYF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetProjectedYF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedYF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedYF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetProjectedYF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::GetProjectedYF1D *)new Functions1D::GetProjectedYF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetProjectedYF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedYF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_GetProjectedYF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetProjectedYF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetProjectedYF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetProjectedYF1D(IntegrationType)\n Functions1D::GetProjectedYF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedYF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedYF1D *arg1 = (Functions1D::GetProjectedYF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetProjectedYF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedYF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedYF1D_getName" "', argument " "1"" of type '" "Functions1D::GetProjectedYF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedYF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetProjectedYF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedYF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedYF1D *arg1 = (Functions1D::GetProjectedYF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetProjectedYF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedYF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedYF1D___call__" "', argument " "1"" of type '" "Functions1D::GetProjectedYF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedYF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetProjectedYF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetProjectedYF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetProjectedYF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedYF1D *arg1 = (Functions1D::GetProjectedYF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetProjectedYF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedYF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetProjectedYF1D" "', argument " "1"" of type '" "Functions1D::GetProjectedYF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedYF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetProjectedYF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetProjectedYF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedZF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::GetProjectedZF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetProjectedZF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetProjectedZF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::GetProjectedZF1D *)new Functions1D::GetProjectedZF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetProjectedZF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedZF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedZF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetProjectedZF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::GetProjectedZF1D *)new Functions1D::GetProjectedZF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetProjectedZF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetProjectedZF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_GetProjectedZF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetProjectedZF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetProjectedZF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetProjectedZF1D(IntegrationType)\n Functions1D::GetProjectedZF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedZF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedZF1D *arg1 = (Functions1D::GetProjectedZF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetProjectedZF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedZF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedZF1D_getName" "', argument " "1"" of type '" "Functions1D::GetProjectedZF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedZF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetProjectedZF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetProjectedZF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedZF1D *arg1 = (Functions1D::GetProjectedZF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetProjectedZF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedZF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetProjectedZF1D___call__" "', argument " "1"" of type '" "Functions1D::GetProjectedZF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedZF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetProjectedZF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetProjectedZF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetProjectedZF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetProjectedZF1D *arg1 = (Functions1D::GetProjectedZF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetProjectedZF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetProjectedZF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetProjectedZF1D" "', argument " "1"" of type '" "Functions1D::GetProjectedZF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetProjectedZF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetProjectedZF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetProjectedZF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Orientation2DF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::Orientation2DF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Orientation2DF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Orientation2DF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::Orientation2DF1D *)new Functions1D::Orientation2DF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__Orientation2DF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Orientation2DF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Orientation2DF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Orientation2DF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::Orientation2DF1D *)new Functions1D::Orientation2DF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__Orientation2DF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Orientation2DF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Orientation2DF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Orientation2DF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Orientation2DF1D'.\n Possible C/C++ prototypes are:\n Functions1D::Orientation2DF1D(IntegrationType)\n Functions1D::Orientation2DF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Orientation2DF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Orientation2DF1D *arg1 = (Functions1D::Orientation2DF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Orientation2DF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Orientation2DF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Orientation2DF1D_getName" "', argument " "1"" of type '" "Functions1D::Orientation2DF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Orientation2DF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::Orientation2DF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Orientation2DF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Orientation2DF1D *arg1 = (Functions1D::Orientation2DF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Orientation2DF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Orientation2DF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Orientation2DF1D___call__" "', argument " "1"" of type '" "Functions1D::Orientation2DF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Orientation2DF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Orientation2DF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Orientation2DF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Orientation2DF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Orientation2DF1D *arg1 = (Functions1D::Orientation2DF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Orientation2DF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Orientation2DF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Orientation2DF1D" "', argument " "1"" of type '" "Functions1D::Orientation2DF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Orientation2DF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Orientation2DF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__Orientation2DF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Orientation3DF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::Orientation3DF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Orientation3DF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Orientation3DF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::Orientation3DF1D *)new Functions1D::Orientation3DF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__Orientation3DF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Orientation3DF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Orientation3DF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Orientation3DF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::Orientation3DF1D *)new Functions1D::Orientation3DF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__Orientation3DF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Orientation3DF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Orientation3DF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Orientation3DF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Orientation3DF1D'.\n Possible C/C++ prototypes are:\n Functions1D::Orientation3DF1D(IntegrationType)\n Functions1D::Orientation3DF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Orientation3DF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Orientation3DF1D *arg1 = (Functions1D::Orientation3DF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Orientation3DF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Orientation3DF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Orientation3DF1D_getName" "', argument " "1"" of type '" "Functions1D::Orientation3DF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Orientation3DF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::Orientation3DF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Orientation3DF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Orientation3DF1D *arg1 = (Functions1D::Orientation3DF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Orientation3DF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Orientation3DF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Orientation3DF1D___call__" "', argument " "1"" of type '" "Functions1D::Orientation3DF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Orientation3DF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Orientation3DF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Orientation3DF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Orientation3DF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Orientation3DF1D *arg1 = (Functions1D::Orientation3DF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Orientation3DF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Orientation3DF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Orientation3DF1D" "', argument " "1"" of type '" "Functions1D::Orientation3DF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Orientation3DF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Orientation3DF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__Orientation3DF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ZDiscontinuityF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::ZDiscontinuityF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ZDiscontinuityF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ZDiscontinuityF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::ZDiscontinuityF1D *)new Functions1D::ZDiscontinuityF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__ZDiscontinuityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ZDiscontinuityF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::ZDiscontinuityF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ZDiscontinuityF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::ZDiscontinuityF1D *)new Functions1D::ZDiscontinuityF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__ZDiscontinuityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ZDiscontinuityF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ZDiscontinuityF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ZDiscontinuityF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ZDiscontinuityF1D'.\n Possible C/C++ prototypes are:\n Functions1D::ZDiscontinuityF1D(IntegrationType)\n Functions1D::ZDiscontinuityF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ZDiscontinuityF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::ZDiscontinuityF1D *arg1 = (Functions1D::ZDiscontinuityF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ZDiscontinuityF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__ZDiscontinuityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ZDiscontinuityF1D_getName" "', argument " "1"" of type '" "Functions1D::ZDiscontinuityF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::ZDiscontinuityF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::ZDiscontinuityF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ZDiscontinuityF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::ZDiscontinuityF1D *arg1 = (Functions1D::ZDiscontinuityF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ZDiscontinuityF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__ZDiscontinuityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ZDiscontinuityF1D___call__" "', argument " "1"" of type '" "Functions1D::ZDiscontinuityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::ZDiscontinuityF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ZDiscontinuityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ZDiscontinuityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ZDiscontinuityF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::ZDiscontinuityF1D *arg1 = (Functions1D::ZDiscontinuityF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ZDiscontinuityF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__ZDiscontinuityF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ZDiscontinuityF1D" "', argument " "1"" of type '" "Functions1D::ZDiscontinuityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::ZDiscontinuityF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ZDiscontinuityF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__ZDiscontinuityF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_QuantitativeInvisibilityF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::QuantitativeInvisibilityF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_QuantitativeInvisibilityF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_QuantitativeInvisibilityF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::QuantitativeInvisibilityF1D *)new Functions1D::QuantitativeInvisibilityF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__QuantitativeInvisibilityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_QuantitativeInvisibilityF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::QuantitativeInvisibilityF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_QuantitativeInvisibilityF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::QuantitativeInvisibilityF1D *)new Functions1D::QuantitativeInvisibilityF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__QuantitativeInvisibilityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_QuantitativeInvisibilityF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_QuantitativeInvisibilityF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_QuantitativeInvisibilityF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_QuantitativeInvisibilityF1D'.\n Possible C/C++ prototypes are:\n Functions1D::QuantitativeInvisibilityF1D(IntegrationType)\n Functions1D::QuantitativeInvisibilityF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_QuantitativeInvisibilityF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::QuantitativeInvisibilityF1D *arg1 = (Functions1D::QuantitativeInvisibilityF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:QuantitativeInvisibilityF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__QuantitativeInvisibilityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "QuantitativeInvisibilityF1D_getName" "', argument " "1"" of type '" "Functions1D::QuantitativeInvisibilityF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::QuantitativeInvisibilityF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::QuantitativeInvisibilityF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_QuantitativeInvisibilityF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::QuantitativeInvisibilityF1D *arg1 = (Functions1D::QuantitativeInvisibilityF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:QuantitativeInvisibilityF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__QuantitativeInvisibilityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "QuantitativeInvisibilityF1D___call__" "', argument " "1"" of type '" "Functions1D::QuantitativeInvisibilityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::QuantitativeInvisibilityF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "QuantitativeInvisibilityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "QuantitativeInvisibilityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (unsigned int)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_QuantitativeInvisibilityF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::QuantitativeInvisibilityF1D *arg1 = (Functions1D::QuantitativeInvisibilityF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_QuantitativeInvisibilityF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__QuantitativeInvisibilityF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_QuantitativeInvisibilityF1D" "', argument " "1"" of type '" "Functions1D::QuantitativeInvisibilityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::QuantitativeInvisibilityF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *QuantitativeInvisibilityF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__QuantitativeInvisibilityF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_CurveNatureF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::CurveNatureF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_CurveNatureF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_CurveNatureF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::CurveNatureF1D *)new Functions1D::CurveNatureF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__CurveNatureF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurveNatureF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::CurveNatureF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_CurveNatureF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::CurveNatureF1D *)new Functions1D::CurveNatureF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__CurveNatureF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurveNatureF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_CurveNatureF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_CurveNatureF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_CurveNatureF1D'.\n Possible C/C++ prototypes are:\n Functions1D::CurveNatureF1D(IntegrationType)\n Functions1D::CurveNatureF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurveNatureF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::CurveNatureF1D *arg1 = (Functions1D::CurveNatureF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurveNatureF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__CurveNatureF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurveNatureF1D_getName" "', argument " "1"" of type '" "Functions1D::CurveNatureF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::CurveNatureF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::CurveNatureF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurveNatureF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::CurveNatureF1D *arg1 = (Functions1D::CurveNatureF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Nature::EdgeNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurveNatureF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__CurveNatureF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurveNatureF1D___call__" "', argument " "1"" of type '" "Functions1D::CurveNatureF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::CurveNatureF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurveNatureF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurveNatureF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (Nature::EdgeNature)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_CurveNatureF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::CurveNatureF1D *arg1 = (Functions1D::CurveNatureF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_CurveNatureF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__CurveNatureF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CurveNatureF1D" "', argument " "1"" of type '" "Functions1D::CurveNatureF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::CurveNatureF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *CurveNatureF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__CurveNatureF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_TimeStampF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::TimeStampF1D *arg1 = (Functions1D::TimeStampF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TimeStampF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__TimeStampF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TimeStampF1D_getName" "', argument " "1"" of type '" "Functions1D::TimeStampF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::TimeStampF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::TimeStampF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TimeStampF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::TimeStampF1D *arg1 = (Functions1D::TimeStampF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TimeStampF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__TimeStampF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TimeStampF1D___call__" "', argument " "1"" of type '" "Functions1D::TimeStampF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::TimeStampF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TimeStampF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "TimeStampF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_TimeStampF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::TimeStampF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_TimeStampF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::TimeStampF1D *)new Functions1D::TimeStampF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__TimeStampF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_TimeStampF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::TimeStampF1D *arg1 = (Functions1D::TimeStampF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_TimeStampF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__TimeStampF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TimeStampF1D" "', argument " "1"" of type '" "Functions1D::TimeStampF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::TimeStampF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *TimeStampF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__TimeStampF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_IncrementChainingTimeStampF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::IncrementChainingTimeStampF1D *arg1 = (Functions1D::IncrementChainingTimeStampF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:IncrementChainingTimeStampF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__IncrementChainingTimeStampF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IncrementChainingTimeStampF1D_getName" "', argument " "1"" of type '" "Functions1D::IncrementChainingTimeStampF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::IncrementChainingTimeStampF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::IncrementChainingTimeStampF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_IncrementChainingTimeStampF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::IncrementChainingTimeStampF1D *arg1 = (Functions1D::IncrementChainingTimeStampF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:IncrementChainingTimeStampF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__IncrementChainingTimeStampF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IncrementChainingTimeStampF1D___call__" "', argument " "1"" of type '" "Functions1D::IncrementChainingTimeStampF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::IncrementChainingTimeStampF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IncrementChainingTimeStampF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IncrementChainingTimeStampF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_IncrementChainingTimeStampF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::IncrementChainingTimeStampF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_IncrementChainingTimeStampF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::IncrementChainingTimeStampF1D *)new Functions1D::IncrementChainingTimeStampF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__IncrementChainingTimeStampF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_IncrementChainingTimeStampF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::IncrementChainingTimeStampF1D *arg1 = (Functions1D::IncrementChainingTimeStampF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_IncrementChainingTimeStampF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__IncrementChainingTimeStampF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IncrementChainingTimeStampF1D" "', argument " "1"" of type '" "Functions1D::IncrementChainingTimeStampF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::IncrementChainingTimeStampF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *IncrementChainingTimeStampF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__IncrementChainingTimeStampF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ChainingTimeStampF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::ChainingTimeStampF1D *arg1 = (Functions1D::ChainingTimeStampF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainingTimeStampF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__ChainingTimeStampF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingTimeStampF1D_getName" "', argument " "1"" of type '" "Functions1D::ChainingTimeStampF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::ChainingTimeStampF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::ChainingTimeStampF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainingTimeStampF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::ChainingTimeStampF1D *arg1 = (Functions1D::ChainingTimeStampF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ChainingTimeStampF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__ChainingTimeStampF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingTimeStampF1D___call__" "', argument " "1"" of type '" "Functions1D::ChainingTimeStampF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::ChainingTimeStampF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ChainingTimeStampF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ChainingTimeStampF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainingTimeStampF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::ChainingTimeStampF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ChainingTimeStampF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::ChainingTimeStampF1D *)new Functions1D::ChainingTimeStampF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__ChainingTimeStampF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ChainingTimeStampF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::ChainingTimeStampF1D *arg1 = (Functions1D::ChainingTimeStampF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ChainingTimeStampF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__ChainingTimeStampF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ChainingTimeStampF1D" "', argument " "1"" of type '" "Functions1D::ChainingTimeStampF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::ChainingTimeStampF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ChainingTimeStampF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__ChainingTimeStampF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Curvature2DAngleF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::Curvature2DAngleF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Curvature2DAngleF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Curvature2DAngleF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::Curvature2DAngleF1D *)new Functions1D::Curvature2DAngleF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__Curvature2DAngleF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Curvature2DAngleF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Curvature2DAngleF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Curvature2DAngleF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::Curvature2DAngleF1D *)new Functions1D::Curvature2DAngleF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__Curvature2DAngleF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Curvature2DAngleF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Curvature2DAngleF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Curvature2DAngleF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Curvature2DAngleF1D'.\n Possible C/C++ prototypes are:\n Functions1D::Curvature2DAngleF1D(IntegrationType)\n Functions1D::Curvature2DAngleF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curvature2DAngleF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Curvature2DAngleF1D *arg1 = (Functions1D::Curvature2DAngleF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curvature2DAngleF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Curvature2DAngleF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curvature2DAngleF1D_getName" "', argument " "1"" of type '" "Functions1D::Curvature2DAngleF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Curvature2DAngleF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::Curvature2DAngleF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curvature2DAngleF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Curvature2DAngleF1D *arg1 = (Functions1D::Curvature2DAngleF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curvature2DAngleF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Curvature2DAngleF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curvature2DAngleF1D___call__" "', argument " "1"" of type '" "Functions1D::Curvature2DAngleF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Curvature2DAngleF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Curvature2DAngleF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Curvature2DAngleF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Curvature2DAngleF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Curvature2DAngleF1D *arg1 = (Functions1D::Curvature2DAngleF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Curvature2DAngleF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Curvature2DAngleF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Curvature2DAngleF1D" "', argument " "1"" of type '" "Functions1D::Curvature2DAngleF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Curvature2DAngleF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Curvature2DAngleF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__Curvature2DAngleF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Normal2DF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ IntegrationType arg1 ;
+ Functions1D::Normal2DF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Normal2DF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_Normal2DF1D" "', argument " "1"" of type '" "IntegrationType""'");
+ }
+ arg1 = static_cast< IntegrationType >(val1);
+ {
+ try {
+ result = (Functions1D::Normal2DF1D *)new Functions1D::Normal2DF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__Normal2DF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Normal2DF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Normal2DF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Normal2DF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::Normal2DF1D *)new Functions1D::Normal2DF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__Normal2DF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Normal2DF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Normal2DF1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_Normal2DF1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Normal2DF1D'.\n Possible C/C++ prototypes are:\n Functions1D::Normal2DF1D(IntegrationType)\n Functions1D::Normal2DF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Normal2DF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Normal2DF1D *arg1 = (Functions1D::Normal2DF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Normal2DF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Normal2DF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Normal2DF1D_getName" "', argument " "1"" of type '" "Functions1D::Normal2DF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Normal2DF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::Normal2DF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Normal2DF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Normal2DF1D *arg1 = (Functions1D::Normal2DF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Normal2DF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Normal2DF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Normal2DF1D___call__" "', argument " "1"" of type '" "Functions1D::Normal2DF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Normal2DF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Normal2DF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Normal2DF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Normal2DF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::Normal2DF1D *arg1 = (Functions1D::Normal2DF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Normal2DF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__Normal2DF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Normal2DF1D" "', argument " "1"" of type '" "Functions1D::Normal2DF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::Normal2DF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Normal2DF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__Normal2DF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetShapeF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetShapeF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetShapeF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::GetShapeF1D *)new Functions1D::GetShapeF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetShapeF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetShapeF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetShapeF1D *arg1 = (Functions1D::GetShapeF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetShapeF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetShapeF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetShapeF1D_getName" "', argument " "1"" of type '" "Functions1D::GetShapeF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetShapeF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetShapeF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetShapeF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetShapeF1D *arg1 = (Functions1D::GetShapeF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ std::vector<ViewShape *,std::allocator<ViewShape * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetShapeF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetShapeF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetShapeF1D___call__" "', argument " "1"" of type '" "Functions1D::GetShapeF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetShapeF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetShapeF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetShapeF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = swig::from(static_cast< std::vector<ViewShape*,std::allocator<ViewShape * > > >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetShapeF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetShapeF1D *arg1 = (Functions1D::GetShapeF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetShapeF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetShapeF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetShapeF1D" "', argument " "1"" of type '" "Functions1D::GetShapeF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetShapeF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetShapeF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetShapeF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetOccludersF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetOccludersF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetOccludersF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::GetOccludersF1D *)new Functions1D::GetOccludersF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetOccludersF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetOccludersF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetOccludersF1D *arg1 = (Functions1D::GetOccludersF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetOccludersF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetOccludersF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetOccludersF1D_getName" "', argument " "1"" of type '" "Functions1D::GetOccludersF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetOccludersF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetOccludersF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetOccludersF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetOccludersF1D *arg1 = (Functions1D::GetOccludersF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ std::vector<ViewShape *,std::allocator<ViewShape * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetOccludersF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetOccludersF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetOccludersF1D___call__" "', argument " "1"" of type '" "Functions1D::GetOccludersF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetOccludersF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetOccludersF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetOccludersF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = swig::from(static_cast< std::vector<ViewShape*,std::allocator<ViewShape * > > >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetOccludersF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetOccludersF1D *arg1 = (Functions1D::GetOccludersF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetOccludersF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetOccludersF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetOccludersF1D" "', argument " "1"" of type '" "Functions1D::GetOccludersF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetOccludersF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetOccludersF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetOccludersF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetOccludeeF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetOccludeeF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_GetOccludeeF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::GetOccludeeF1D *)new Functions1D::GetOccludeeF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetOccludeeF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetOccludeeF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetOccludeeF1D *arg1 = (Functions1D::GetOccludeeF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetOccludeeF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetOccludeeF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetOccludeeF1D_getName" "', argument " "1"" of type '" "Functions1D::GetOccludeeF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetOccludeeF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetOccludeeF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetOccludeeF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetOccludeeF1D *arg1 = (Functions1D::GetOccludeeF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ std::vector<ViewShape *,std::allocator<ViewShape * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetOccludeeF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetOccludeeF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetOccludeeF1D___call__" "', argument " "1"" of type '" "Functions1D::GetOccludeeF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetOccludeeF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetOccludeeF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetOccludeeF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = swig::from(static_cast< std::vector<ViewShape*,std::allocator<ViewShape * > > >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetOccludeeF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetOccludeeF1D *arg1 = (Functions1D::GetOccludeeF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetOccludeeF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetOccludeeF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetOccludeeF1D" "', argument " "1"" of type '" "Functions1D::GetOccludeeF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetOccludeeF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetOccludeeF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetOccludeeF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Module_setAlwaysRefresh__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ bool arg1 ;
+ bool val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Module_setAlwaysRefresh",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_bool(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Module_setAlwaysRefresh" "', argument " "1"" of type '" "bool""'");
+ }
+ arg1 = static_cast< bool >(val1);
+ {
+ try {
+ Module::setAlwaysRefresh(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_setAlwaysRefresh__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+
+ if (!PyArg_ParseTuple(args,(char *)":Module_setAlwaysRefresh")) SWIG_fail;
+ {
+ try {
+ Module::setAlwaysRefresh();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_setAlwaysRefresh(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_Module_setAlwaysRefresh__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_bool(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Module_setAlwaysRefresh__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Module_setAlwaysRefresh'.\n Possible C/C++ prototypes are:\n setAlwaysRefresh(bool)\n Module::setAlwaysRefresh()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_setCausal__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ bool arg1 ;
+ bool val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Module_setCausal",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_bool(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Module_setCausal" "', argument " "1"" of type '" "bool""'");
+ }
+ arg1 = static_cast< bool >(val1);
+ {
+ try {
+ Module::setCausal(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_setCausal__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+
+ if (!PyArg_ParseTuple(args,(char *)":Module_setCausal")) SWIG_fail;
+ {
+ try {
+ Module::setCausal();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_setCausal(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_Module_setCausal__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_bool(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Module_setCausal__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Module_setCausal'.\n Possible C/C++ prototypes are:\n setCausal(bool)\n Module::setCausal()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_setDrawable__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ bool arg1 ;
+ bool val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Module_setDrawable",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_bool(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Module_setDrawable" "', argument " "1"" of type '" "bool""'");
+ }
+ arg1 = static_cast< bool >(val1);
+ {
+ try {
+ Module::setDrawable(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_setDrawable__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+
+ if (!PyArg_ParseTuple(args,(char *)":Module_setDrawable")) SWIG_fail;
+ {
+ try {
+ Module::setDrawable();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_setDrawable(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_Module_setDrawable__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_bool(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Module_setDrawable__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Module_setDrawable'.\n Possible C/C++ prototypes are:\n setDrawable(bool)\n Module::setDrawable()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_getAlwaysRefresh(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ bool result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Module_getAlwaysRefresh")) SWIG_fail;
+ {
+ try {
+ result = (bool)Module::getAlwaysRefresh();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_getCausal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ bool result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Module_getCausal")) SWIG_fail;
+ {
+ try {
+ result = (bool)Module::getCausal();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Module_getDrawable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ bool result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Module_getDrawable")) SWIG_fail;
+ {
+ try {
+ result = (bool)Module::getDrawable();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Module(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Module *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Module")) SWIG_fail;
+ {
+ try {
+ result = (Module *)new Module();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Module, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Module(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Module *arg1 = (Module *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Module",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Module, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Module" "', argument " "1"" of type '" "Module *""'");
+ }
+ arg1 = reinterpret_cast< Module * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Module_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Module, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_DensityF0D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ double arg1 ;
+ Functions0D::DensityF0D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_DensityF0D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DensityF0D" "', argument " "1"" of type '" "double""'");
+ }
+ arg1 = static_cast< double >(val1);
+ {
+ try {
+ result = (Functions0D::DensityF0D *)new Functions0D::DensityF0D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__DensityF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_DensityF0D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::DensityF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_DensityF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::DensityF0D *)new Functions0D::DensityF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__DensityF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_DensityF0D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_DensityF0D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_DensityF0D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_DensityF0D'.\n Possible C/C++ prototypes are:\n Functions0D::DensityF0D(double)\n Functions0D::DensityF0D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_DensityF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::DensityF0D *arg1 = (Functions0D::DensityF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:DensityF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__DensityF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DensityF0D_getName" "', argument " "1"" of type '" "Functions0D::DensityF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::DensityF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::DensityF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_DensityF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::DensityF0D *arg1 = (Functions0D::DensityF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:DensityF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__DensityF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DensityF0D___call__" "', argument " "1"" of type '" "Functions0D::DensityF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::DensityF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DensityF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DensityF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (double)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_DensityF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::DensityF0D *arg1 = (Functions0D::DensityF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_DensityF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__DensityF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_DensityF0D" "', argument " "1"" of type '" "Functions0D::DensityF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::DensityF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *DensityF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__DensityF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_LocalAverageDepthF0D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ real arg1 ;
+ Functions0D::LocalAverageDepthF0D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_LocalAverageDepthF0D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_LocalAverageDepthF0D" "', argument " "1"" of type '" "real""'");
+ }
+ arg1 = static_cast< real >(val1);
+ {
+ try {
+ result = (Functions0D::LocalAverageDepthF0D *)new Functions0D::LocalAverageDepthF0D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__LocalAverageDepthF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_LocalAverageDepthF0D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::LocalAverageDepthF0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_LocalAverageDepthF0D")) SWIG_fail;
+ {
+ try {
+ result = (Functions0D::LocalAverageDepthF0D *)new Functions0D::LocalAverageDepthF0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__LocalAverageDepthF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_LocalAverageDepthF0D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_LocalAverageDepthF0D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_LocalAverageDepthF0D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_LocalAverageDepthF0D'.\n Possible C/C++ prototypes are:\n Functions0D::LocalAverageDepthF0D(real)\n Functions0D::LocalAverageDepthF0D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LocalAverageDepthF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::LocalAverageDepthF0D *arg1 = (Functions0D::LocalAverageDepthF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:LocalAverageDepthF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__LocalAverageDepthF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LocalAverageDepthF0D_getName" "', argument " "1"" of type '" "Functions0D::LocalAverageDepthF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::LocalAverageDepthF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::LocalAverageDepthF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LocalAverageDepthF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::LocalAverageDepthF0D *arg1 = (Functions0D::LocalAverageDepthF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:LocalAverageDepthF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__LocalAverageDepthF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LocalAverageDepthF0D___call__" "', argument " "1"" of type '" "Functions0D::LocalAverageDepthF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::LocalAverageDepthF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LocalAverageDepthF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LocalAverageDepthF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (double)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_LocalAverageDepthF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::LocalAverageDepthF0D *arg1 = (Functions0D::LocalAverageDepthF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_LocalAverageDepthF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__LocalAverageDepthF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_LocalAverageDepthF0D" "', argument " "1"" of type '" "Functions0D::LocalAverageDepthF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::LocalAverageDepthF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *LocalAverageDepthF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__LocalAverageDepthF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ReadMapPixelF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ int arg2 ;
+ Functions0D::ReadMapPixelF0D *result = 0 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ReadMapPixelF0D",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ReadMapPixelF0D" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ReadMapPixelF0D" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ {
+ try {
+ result = (Functions0D::ReadMapPixelF0D *)new Functions0D::ReadMapPixelF0D((char const *)arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__ReadMapPixelF0D, SWIG_POINTER_NEW | 0 );
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadMapPixelF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadMapPixelF0D *arg1 = (Functions0D::ReadMapPixelF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ReadMapPixelF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadMapPixelF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ReadMapPixelF0D_getName" "', argument " "1"" of type '" "Functions0D::ReadMapPixelF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadMapPixelF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::ReadMapPixelF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadMapPixelF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadMapPixelF0D *arg1 = (Functions0D::ReadMapPixelF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ReadMapPixelF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadMapPixelF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ReadMapPixelF0D___call__" "', argument " "1"" of type '" "Functions0D::ReadMapPixelF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadMapPixelF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ReadMapPixelF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ReadMapPixelF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (float)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ReadMapPixelF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadMapPixelF0D *arg1 = (Functions0D::ReadMapPixelF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ReadMapPixelF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadMapPixelF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ReadMapPixelF0D" "', argument " "1"" of type '" "Functions0D::ReadMapPixelF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadMapPixelF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ReadMapPixelF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__ReadMapPixelF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ReadSteerableViewMapPixelF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ int arg2 ;
+ Functions0D::ReadSteerableViewMapPixelF0D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ReadSteerableViewMapPixelF0D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ReadSteerableViewMapPixelF0D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ReadSteerableViewMapPixelF0D" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ {
+ try {
+ result = (Functions0D::ReadSteerableViewMapPixelF0D *)new Functions0D::ReadSteerableViewMapPixelF0D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__ReadSteerableViewMapPixelF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadSteerableViewMapPixelF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadSteerableViewMapPixelF0D *arg1 = (Functions0D::ReadSteerableViewMapPixelF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ReadSteerableViewMapPixelF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadSteerableViewMapPixelF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ReadSteerableViewMapPixelF0D_getName" "', argument " "1"" of type '" "Functions0D::ReadSteerableViewMapPixelF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadSteerableViewMapPixelF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::ReadSteerableViewMapPixelF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadSteerableViewMapPixelF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadSteerableViewMapPixelF0D *arg1 = (Functions0D::ReadSteerableViewMapPixelF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ReadSteerableViewMapPixelF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadSteerableViewMapPixelF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ReadSteerableViewMapPixelF0D___call__" "', argument " "1"" of type '" "Functions0D::ReadSteerableViewMapPixelF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadSteerableViewMapPixelF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ReadSteerableViewMapPixelF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ReadSteerableViewMapPixelF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (float)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ReadSteerableViewMapPixelF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadSteerableViewMapPixelF0D *arg1 = (Functions0D::ReadSteerableViewMapPixelF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ReadSteerableViewMapPixelF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadSteerableViewMapPixelF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ReadSteerableViewMapPixelF0D" "', argument " "1"" of type '" "Functions0D::ReadSteerableViewMapPixelF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadSteerableViewMapPixelF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ReadSteerableViewMapPixelF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__ReadSteerableViewMapPixelF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ReadCompleteViewMapPixelF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ Functions0D::ReadCompleteViewMapPixelF0D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ReadCompleteViewMapPixelF0D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ReadCompleteViewMapPixelF0D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ {
+ try {
+ result = (Functions0D::ReadCompleteViewMapPixelF0D *)new Functions0D::ReadCompleteViewMapPixelF0D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__ReadCompleteViewMapPixelF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadCompleteViewMapPixelF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadCompleteViewMapPixelF0D *arg1 = (Functions0D::ReadCompleteViewMapPixelF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ReadCompleteViewMapPixelF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadCompleteViewMapPixelF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ReadCompleteViewMapPixelF0D_getName" "', argument " "1"" of type '" "Functions0D::ReadCompleteViewMapPixelF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadCompleteViewMapPixelF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::ReadCompleteViewMapPixelF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadCompleteViewMapPixelF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadCompleteViewMapPixelF0D *arg1 = (Functions0D::ReadCompleteViewMapPixelF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ReadCompleteViewMapPixelF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadCompleteViewMapPixelF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ReadCompleteViewMapPixelF0D___call__" "', argument " "1"" of type '" "Functions0D::ReadCompleteViewMapPixelF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadCompleteViewMapPixelF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ReadCompleteViewMapPixelF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ReadCompleteViewMapPixelF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (float)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ReadCompleteViewMapPixelF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::ReadCompleteViewMapPixelF0D *arg1 = (Functions0D::ReadCompleteViewMapPixelF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ReadCompleteViewMapPixelF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__ReadCompleteViewMapPixelF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ReadCompleteViewMapPixelF0D" "', argument " "1"" of type '" "Functions0D::ReadCompleteViewMapPixelF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::ReadCompleteViewMapPixelF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ReadCompleteViewMapPixelF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__ReadCompleteViewMapPixelF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetViewMapGradientNormF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ Functions0D::GetViewMapGradientNormF0D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetViewMapGradientNormF0D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetViewMapGradientNormF0D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ {
+ try {
+ result = (Functions0D::GetViewMapGradientNormF0D *)new Functions0D::GetViewMapGradientNormF0D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions0D__GetViewMapGradientNormF0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetViewMapGradientNormF0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetViewMapGradientNormF0D *arg1 = (Functions0D::GetViewMapGradientNormF0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetViewMapGradientNormF0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetViewMapGradientNormF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetViewMapGradientNormF0D_getName" "', argument " "1"" of type '" "Functions0D::GetViewMapGradientNormF0D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetViewMapGradientNormF0D * >(argp1);
+ {
+ try {
+ result = ((Functions0D::GetViewMapGradientNormF0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetViewMapGradientNormF0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetViewMapGradientNormF0D *arg1 = (Functions0D::GetViewMapGradientNormF0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetViewMapGradientNormF0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetViewMapGradientNormF0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetViewMapGradientNormF0D___call__" "', argument " "1"" of type '" "Functions0D::GetViewMapGradientNormF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetViewMapGradientNormF0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetViewMapGradientNormF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetViewMapGradientNormF0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (float)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetViewMapGradientNormF0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions0D::GetViewMapGradientNormF0D *arg1 = (Functions0D::GetViewMapGradientNormF0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetViewMapGradientNormF0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions0D__GetViewMapGradientNormF0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetViewMapGradientNormF0D" "', argument " "1"" of type '" "Functions0D::GetViewMapGradientNormF0D *""'");
+ }
+ arg1 = reinterpret_cast< Functions0D::GetViewMapGradientNormF0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetViewMapGradientNormF0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions0D__GetViewMapGradientNormF0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_DensityF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ double arg1 ;
+ IntegrationType arg2 ;
+ float arg3 ;
+ Functions1D::DensityF1D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_DensityF1D",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DensityF1D" "', argument " "1"" of type '" "double""'");
+ }
+ arg1 = static_cast< double >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_DensityF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_DensityF1D" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (Functions1D::DensityF1D *)new Functions1D::DensityF1D(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__DensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_DensityF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ double arg1 ;
+ IntegrationType arg2 ;
+ Functions1D::DensityF1D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_DensityF1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DensityF1D" "', argument " "1"" of type '" "double""'");
+ }
+ arg1 = static_cast< double >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_DensityF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ result = (Functions1D::DensityF1D *)new Functions1D::DensityF1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__DensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_DensityF1D__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ double arg1 ;
+ Functions1D::DensityF1D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_DensityF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DensityF1D" "', argument " "1"" of type '" "double""'");
+ }
+ arg1 = static_cast< double >(val1);
+ {
+ try {
+ result = (Functions1D::DensityF1D *)new Functions1D::DensityF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__DensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_DensityF1D__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::DensityF1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_DensityF1D")) SWIG_fail;
+ {
+ try {
+ result = (Functions1D::DensityF1D *)new Functions1D::DensityF1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__DensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_DensityF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_DensityF1D__SWIG_3(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_DensityF1D__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_DensityF1D__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_DensityF1D__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_DensityF1D'.\n Possible C/C++ prototypes are:\n Functions1D::DensityF1D(double,IntegrationType,float)\n Functions1D::DensityF1D(double,IntegrationType)\n Functions1D::DensityF1D(double)\n Functions1D::DensityF1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_DensityF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::DensityF1D *arg1 = (Functions1D::DensityF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_DensityF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__DensityF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_DensityF1D" "', argument " "1"" of type '" "Functions1D::DensityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::DensityF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_DensityF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::DensityF1D *arg1 = (Functions1D::DensityF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:DensityF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__DensityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DensityF1D_getName" "', argument " "1"" of type '" "Functions1D::DensityF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::DensityF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::DensityF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_DensityF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::DensityF1D *arg1 = (Functions1D::DensityF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:DensityF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__DensityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DensityF1D___call__" "', argument " "1"" of type '" "Functions1D::DensityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::DensityF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DensityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DensityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (double)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *DensityF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__DensityF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_LocalAverageDepthF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ real arg1 ;
+ IntegrationType arg2 ;
+ Functions1D::LocalAverageDepthF1D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_LocalAverageDepthF1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_LocalAverageDepthF1D" "', argument " "1"" of type '" "real""'");
+ }
+ arg1 = static_cast< real >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_LocalAverageDepthF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ result = (Functions1D::LocalAverageDepthF1D *)new Functions1D::LocalAverageDepthF1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__LocalAverageDepthF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_LocalAverageDepthF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ real arg1 ;
+ Functions1D::LocalAverageDepthF1D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_LocalAverageDepthF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_LocalAverageDepthF1D" "', argument " "1"" of type '" "real""'");
+ }
+ arg1 = static_cast< real >(val1);
+ {
+ try {
+ result = (Functions1D::LocalAverageDepthF1D *)new Functions1D::LocalAverageDepthF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__LocalAverageDepthF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_LocalAverageDepthF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_LocalAverageDepthF1D__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_LocalAverageDepthF1D__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_LocalAverageDepthF1D'.\n Possible C/C++ prototypes are:\n Functions1D::LocalAverageDepthF1D(real,IntegrationType)\n Functions1D::LocalAverageDepthF1D(real)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LocalAverageDepthF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::LocalAverageDepthF1D *arg1 = (Functions1D::LocalAverageDepthF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:LocalAverageDepthF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__LocalAverageDepthF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LocalAverageDepthF1D_getName" "', argument " "1"" of type '" "Functions1D::LocalAverageDepthF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::LocalAverageDepthF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::LocalAverageDepthF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LocalAverageDepthF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::LocalAverageDepthF1D *arg1 = (Functions1D::LocalAverageDepthF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:LocalAverageDepthF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__LocalAverageDepthF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LocalAverageDepthF1D___call__" "', argument " "1"" of type '" "Functions1D::LocalAverageDepthF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::LocalAverageDepthF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LocalAverageDepthF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LocalAverageDepthF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (double)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_LocalAverageDepthF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::LocalAverageDepthF1D *arg1 = (Functions1D::LocalAverageDepthF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_LocalAverageDepthF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__LocalAverageDepthF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_LocalAverageDepthF1D" "', argument " "1"" of type '" "Functions1D::LocalAverageDepthF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::LocalAverageDepthF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *LocalAverageDepthF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__LocalAverageDepthF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetCompleteViewMapDensityF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ IntegrationType arg2 ;
+ float arg3 ;
+ Functions1D::GetCompleteViewMapDensityF1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_GetCompleteViewMapDensityF1D",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetCompleteViewMapDensityF1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetCompleteViewMapDensityF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_GetCompleteViewMapDensityF1D" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (Functions1D::GetCompleteViewMapDensityF1D *)new Functions1D::GetCompleteViewMapDensityF1D(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetCompleteViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetCompleteViewMapDensityF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ IntegrationType arg2 ;
+ Functions1D::GetCompleteViewMapDensityF1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_GetCompleteViewMapDensityF1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetCompleteViewMapDensityF1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetCompleteViewMapDensityF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ result = (Functions1D::GetCompleteViewMapDensityF1D *)new Functions1D::GetCompleteViewMapDensityF1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetCompleteViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetCompleteViewMapDensityF1D__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ Functions1D::GetCompleteViewMapDensityF1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetCompleteViewMapDensityF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetCompleteViewMapDensityF1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ {
+ try {
+ result = (Functions1D::GetCompleteViewMapDensityF1D *)new Functions1D::GetCompleteViewMapDensityF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetCompleteViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetCompleteViewMapDensityF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetCompleteViewMapDensityF1D__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetCompleteViewMapDensityF1D__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetCompleteViewMapDensityF1D__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetCompleteViewMapDensityF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetCompleteViewMapDensityF1D(unsigned int,IntegrationType,float)\n Functions1D::GetCompleteViewMapDensityF1D(unsigned int,IntegrationType)\n Functions1D::GetCompleteViewMapDensityF1D(unsigned int)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetCompleteViewMapDensityF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetCompleteViewMapDensityF1D *arg1 = (Functions1D::GetCompleteViewMapDensityF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetCompleteViewMapDensityF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetCompleteViewMapDensityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetCompleteViewMapDensityF1D_getName" "', argument " "1"" of type '" "Functions1D::GetCompleteViewMapDensityF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetCompleteViewMapDensityF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetCompleteViewMapDensityF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetCompleteViewMapDensityF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetCompleteViewMapDensityF1D *arg1 = (Functions1D::GetCompleteViewMapDensityF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetCompleteViewMapDensityF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetCompleteViewMapDensityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetCompleteViewMapDensityF1D___call__" "', argument " "1"" of type '" "Functions1D::GetCompleteViewMapDensityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetCompleteViewMapDensityF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetCompleteViewMapDensityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetCompleteViewMapDensityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (double)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetCompleteViewMapDensityF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetCompleteViewMapDensityF1D *arg1 = (Functions1D::GetCompleteViewMapDensityF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetCompleteViewMapDensityF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetCompleteViewMapDensityF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetCompleteViewMapDensityF1D" "', argument " "1"" of type '" "Functions1D::GetCompleteViewMapDensityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetCompleteViewMapDensityF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetCompleteViewMapDensityF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetCompleteViewMapDensityF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetDirectionalViewMapDensityF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ unsigned int arg2 ;
+ IntegrationType arg3 ;
+ float arg4 ;
+ Functions1D::GetDirectionalViewMapDensityF1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_GetDirectionalViewMapDensityF1D",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "3"" of type '" "IntegrationType""'");
+ }
+ arg3 = static_cast< IntegrationType >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ {
+ try {
+ result = (Functions1D::GetDirectionalViewMapDensityF1D *)new Functions1D::GetDirectionalViewMapDensityF1D(arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetDirectionalViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetDirectionalViewMapDensityF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ unsigned int arg2 ;
+ IntegrationType arg3 ;
+ Functions1D::GetDirectionalViewMapDensityF1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_GetDirectionalViewMapDensityF1D",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "3"" of type '" "IntegrationType""'");
+ }
+ arg3 = static_cast< IntegrationType >(val3);
+ {
+ try {
+ result = (Functions1D::GetDirectionalViewMapDensityF1D *)new Functions1D::GetDirectionalViewMapDensityF1D(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetDirectionalViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetDirectionalViewMapDensityF1D__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ unsigned int arg2 ;
+ Functions1D::GetDirectionalViewMapDensityF1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_GetDirectionalViewMapDensityF1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetDirectionalViewMapDensityF1D" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ result = (Functions1D::GetDirectionalViewMapDensityF1D *)new Functions1D::GetDirectionalViewMapDensityF1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetDirectionalViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetDirectionalViewMapDensityF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetDirectionalViewMapDensityF1D__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetDirectionalViewMapDensityF1D__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetDirectionalViewMapDensityF1D__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetDirectionalViewMapDensityF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetDirectionalViewMapDensityF1D(unsigned int,unsigned int,IntegrationType,float)\n Functions1D::GetDirectionalViewMapDensityF1D(unsigned int,unsigned int,IntegrationType)\n Functions1D::GetDirectionalViewMapDensityF1D(unsigned int,unsigned int)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetDirectionalViewMapDensityF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetDirectionalViewMapDensityF1D *arg1 = (Functions1D::GetDirectionalViewMapDensityF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetDirectionalViewMapDensityF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetDirectionalViewMapDensityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetDirectionalViewMapDensityF1D_getName" "', argument " "1"" of type '" "Functions1D::GetDirectionalViewMapDensityF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetDirectionalViewMapDensityF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetDirectionalViewMapDensityF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetDirectionalViewMapDensityF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetDirectionalViewMapDensityF1D *arg1 = (Functions1D::GetDirectionalViewMapDensityF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ double result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetDirectionalViewMapDensityF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetDirectionalViewMapDensityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetDirectionalViewMapDensityF1D___call__" "', argument " "1"" of type '" "Functions1D::GetDirectionalViewMapDensityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetDirectionalViewMapDensityF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetDirectionalViewMapDensityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetDirectionalViewMapDensityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (double)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetDirectionalViewMapDensityF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetDirectionalViewMapDensityF1D *arg1 = (Functions1D::GetDirectionalViewMapDensityF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetDirectionalViewMapDensityF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetDirectionalViewMapDensityF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetDirectionalViewMapDensityF1D" "', argument " "1"" of type '" "Functions1D::GetDirectionalViewMapDensityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetDirectionalViewMapDensityF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetDirectionalViewMapDensityF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetDirectionalViewMapDensityF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetSteerableViewMapDensityF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ IntegrationType arg2 ;
+ float arg3 ;
+ Functions1D::GetSteerableViewMapDensityF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_GetSteerableViewMapDensityF1D",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetSteerableViewMapDensityF1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetSteerableViewMapDensityF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_GetSteerableViewMapDensityF1D" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (Functions1D::GetSteerableViewMapDensityF1D *)new Functions1D::GetSteerableViewMapDensityF1D(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetSteerableViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetSteerableViewMapDensityF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ IntegrationType arg2 ;
+ Functions1D::GetSteerableViewMapDensityF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_GetSteerableViewMapDensityF1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetSteerableViewMapDensityF1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetSteerableViewMapDensityF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ result = (Functions1D::GetSteerableViewMapDensityF1D *)new Functions1D::GetSteerableViewMapDensityF1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetSteerableViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetSteerableViewMapDensityF1D__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ Functions1D::GetSteerableViewMapDensityF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetSteerableViewMapDensityF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetSteerableViewMapDensityF1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ {
+ try {
+ result = (Functions1D::GetSteerableViewMapDensityF1D *)new Functions1D::GetSteerableViewMapDensityF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetSteerableViewMapDensityF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetSteerableViewMapDensityF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetSteerableViewMapDensityF1D__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetSteerableViewMapDensityF1D__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetSteerableViewMapDensityF1D__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetSteerableViewMapDensityF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetSteerableViewMapDensityF1D(int,IntegrationType,float)\n Functions1D::GetSteerableViewMapDensityF1D(int,IntegrationType)\n Functions1D::GetSteerableViewMapDensityF1D(int)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetSteerableViewMapDensityF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetSteerableViewMapDensityF1D *arg1 = (Functions1D::GetSteerableViewMapDensityF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetSteerableViewMapDensityF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetSteerableViewMapDensityF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetSteerableViewMapDensityF1D" "', argument " "1"" of type '" "Functions1D::GetSteerableViewMapDensityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetSteerableViewMapDensityF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetSteerableViewMapDensityF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetSteerableViewMapDensityF1D *arg1 = (Functions1D::GetSteerableViewMapDensityF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetSteerableViewMapDensityF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetSteerableViewMapDensityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetSteerableViewMapDensityF1D_getName" "', argument " "1"" of type '" "Functions1D::GetSteerableViewMapDensityF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetSteerableViewMapDensityF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetSteerableViewMapDensityF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetSteerableViewMapDensityF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetSteerableViewMapDensityF1D *arg1 = (Functions1D::GetSteerableViewMapDensityF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetSteerableViewMapDensityF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetSteerableViewMapDensityF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetSteerableViewMapDensityF1D___call__" "', argument " "1"" of type '" "Functions1D::GetSteerableViewMapDensityF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetSteerableViewMapDensityF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetSteerableViewMapDensityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetSteerableViewMapDensityF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetSteerableViewMapDensityF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetSteerableViewMapDensityF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GetViewMapGradientNormF1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ IntegrationType arg2 ;
+ float arg3 ;
+ Functions1D::GetViewMapGradientNormF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_GetViewMapGradientNormF1D",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetViewMapGradientNormF1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetViewMapGradientNormF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_GetViewMapGradientNormF1D" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (Functions1D::GetViewMapGradientNormF1D *)new Functions1D::GetViewMapGradientNormF1D(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetViewMapGradientNormF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetViewMapGradientNormF1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ IntegrationType arg2 ;
+ Functions1D::GetViewMapGradientNormF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_GetViewMapGradientNormF1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetViewMapGradientNormF1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GetViewMapGradientNormF1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ result = (Functions1D::GetViewMapGradientNormF1D *)new Functions1D::GetViewMapGradientNormF1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetViewMapGradientNormF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetViewMapGradientNormF1D__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ Functions1D::GetViewMapGradientNormF1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GetViewMapGradientNormF1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GetViewMapGradientNormF1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ {
+ try {
+ result = (Functions1D::GetViewMapGradientNormF1D *)new Functions1D::GetViewMapGradientNormF1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Functions1D__GetViewMapGradientNormF1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_GetViewMapGradientNormF1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetViewMapGradientNormF1D__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetViewMapGradientNormF1D__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_GetViewMapGradientNormF1D__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GetViewMapGradientNormF1D'.\n Possible C/C++ prototypes are:\n Functions1D::GetViewMapGradientNormF1D(int,IntegrationType,float)\n Functions1D::GetViewMapGradientNormF1D(int,IntegrationType)\n Functions1D::GetViewMapGradientNormF1D(int)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetViewMapGradientNormF1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetViewMapGradientNormF1D *arg1 = (Functions1D::GetViewMapGradientNormF1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:GetViewMapGradientNormF1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetViewMapGradientNormF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetViewMapGradientNormF1D_getName" "', argument " "1"" of type '" "Functions1D::GetViewMapGradientNormF1D const *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetViewMapGradientNormF1D * >(argp1);
+ {
+ try {
+ result = ((Functions1D::GetViewMapGradientNormF1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetViewMapGradientNormF1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetViewMapGradientNormF1D *arg1 = (Functions1D::GetViewMapGradientNormF1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GetViewMapGradientNormF1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetViewMapGradientNormF1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GetViewMapGradientNormF1D___call__" "', argument " "1"" of type '" "Functions1D::GetViewMapGradientNormF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetViewMapGradientNormF1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GetViewMapGradientNormF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GetViewMapGradientNormF1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (real)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GetViewMapGradientNormF1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Functions1D::GetViewMapGradientNormF1D *arg1 = (Functions1D::GetViewMapGradientNormF1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GetViewMapGradientNormF1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Functions1D__GetViewMapGradientNormF1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GetViewMapGradientNormF1D" "', argument " "1"" of type '" "Functions1D::GetViewMapGradientNormF1D *""'");
+ }
+ arg1 = reinterpret_cast< Functions1D::GetViewMapGradientNormF1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GetViewMapGradientNormF1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Functions1D__GetViewMapGradientNormF1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_GetTimeStampCF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":GetTimeStampCF")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)ContextFunctions::GetTimeStampCF();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetCanvasWidthCF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":GetCanvasWidthCF")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)ContextFunctions::GetCanvasWidthCF();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetCanvasHeightCF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":GetCanvasHeightCF")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)ContextFunctions::GetCanvasHeightCF();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LoadMapCF__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ unsigned int arg3 ;
+ float arg4 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ unsigned int val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:LoadMapCF",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LoadMapCF" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LoadMapCF" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "LoadMapCF" "', argument " "3"" of type '" "unsigned int""'");
+ }
+ arg3 = static_cast< unsigned int >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "LoadMapCF" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ {
+ try {
+ ContextFunctions::LoadMapCF((char const *)arg1,(char const *)arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LoadMapCF__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ unsigned int arg3 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ unsigned int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:LoadMapCF",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LoadMapCF" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LoadMapCF" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "LoadMapCF" "', argument " "3"" of type '" "unsigned int""'");
+ }
+ arg3 = static_cast< unsigned int >(val3);
+ {
+ try {
+ ContextFunctions::LoadMapCF((char const *)arg1,(char const *)arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LoadMapCF__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ char *arg2 = (char *) 0 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:LoadMapCF",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LoadMapCF" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LoadMapCF" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ {
+ try {
+ ContextFunctions::LoadMapCF((char const *)arg1,(char const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LoadMapCF(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_LoadMapCF__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_LoadMapCF__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_LoadMapCF__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'LoadMapCF'.\n Possible C/C++ prototypes are:\n ContextFunctions::LoadMapCF(char const *,char const *,unsigned int,float)\n ContextFunctions::LoadMapCF(char const *,char const *,unsigned int)\n ContextFunctions::LoadMapCF(char const *,char const *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadMapPixelCF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ int arg2 ;
+ unsigned int arg3 ;
+ unsigned int arg4 ;
+ float result;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ unsigned int val3 ;
+ int ecode3 = 0 ;
+ unsigned int val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ReadMapPixelCF",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ReadMapPixelCF" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ReadMapPixelCF" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ReadMapPixelCF" "', argument " "3"" of type '" "unsigned int""'");
+ }
+ arg3 = static_cast< unsigned int >(val3);
+ ecode4 = SWIG_AsVal_unsigned_SS_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "ReadMapPixelCF" "', argument " "4"" of type '" "unsigned int""'");
+ }
+ arg4 = static_cast< unsigned int >(val4);
+ {
+ try {
+ result = (float)ContextFunctions::ReadMapPixelCF((char const *)arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadCompleteViewMapPixelCF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ unsigned int arg2 ;
+ unsigned int arg3 ;
+ float result;
+ int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ unsigned int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ReadCompleteViewMapPixelCF",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "ReadCompleteViewMapPixelCF" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ReadCompleteViewMapPixelCF" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ReadCompleteViewMapPixelCF" "', argument " "3"" of type '" "unsigned int""'");
+ }
+ arg3 = static_cast< unsigned int >(val3);
+ {
+ try {
+ result = (float)ContextFunctions::ReadCompleteViewMapPixelCF(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ReadDirectionalViewMapPixelCF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ int arg2 ;
+ unsigned int arg3 ;
+ unsigned int arg4 ;
+ float result;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ unsigned int val3 ;
+ int ecode3 = 0 ;
+ unsigned int val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ReadDirectionalViewMapPixelCF",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "ReadDirectionalViewMapPixelCF" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ReadDirectionalViewMapPixelCF" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ReadDirectionalViewMapPixelCF" "', argument " "3"" of type '" "unsigned int""'");
+ }
+ arg3 = static_cast< unsigned int >(val3);
+ ecode4 = SWIG_AsVal_unsigned_SS_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "ReadDirectionalViewMapPixelCF" "', argument " "4"" of type '" "unsigned int""'");
+ }
+ arg4 = static_cast< unsigned int >(val4);
+ {
+ try {
+ result = (float)ContextFunctions::ReadDirectionalViewMapPixelCF(arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GetSelectedFEdgeCF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ FEdge *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":GetSelectedFEdgeCF")) SWIG_fail;
+ {
+ try {
+ result = (FEdge *)ContextFunctions::GetSelectedFEdgeCF();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_AdjacencyIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_AdjacencyIterator")) SWIG_fail;
+ {
+ try {
+ result = (AdjacencyIterator *)new AdjacencyIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjacencyIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_AdjacencyIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ AdjacencyIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_AdjacencyIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AdjacencyIterator" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_AdjacencyIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_AdjacencyIterator" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ result = (AdjacencyIterator *)new AdjacencyIterator(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjacencyIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_AdjacencyIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ bool arg2 ;
+ AdjacencyIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_AdjacencyIterator",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AdjacencyIterator" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_AdjacencyIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ result = (AdjacencyIterator *)new AdjacencyIterator(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjacencyIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_AdjacencyIterator__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewVertex *arg1 = (ViewVertex *) 0 ;
+ AdjacencyIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_AdjacencyIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AdjacencyIterator" "', argument " "1"" of type '" "ViewVertex *""'");
+ }
+ arg1 = reinterpret_cast< ViewVertex * >(argp1);
+ {
+ try {
+ result = (AdjacencyIterator *)new AdjacencyIterator(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjacencyIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_AdjacencyIterator__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = 0 ;
+ AdjacencyIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_AdjacencyIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_AdjacencyIterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AdjacencyIterator" "', argument " "1"" of type '" "AdjacencyIterator const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AdjacencyIterator" "', argument " "1"" of type '" "AdjacencyIterator const &""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (AdjacencyIterator *)new AdjacencyIterator((AdjacencyIterator const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AdjacencyIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_AdjacencyIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_AdjacencyIterator__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_AdjacencyIterator__SWIG_3(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_AdjacencyIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_AdjacencyIterator__SWIG_4(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_AdjacencyIterator__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_AdjacencyIterator__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_AdjacencyIterator'.\n Possible C/C++ prototypes are:\n AdjacencyIterator()\n AdjacencyIterator(ViewVertex *,bool,bool)\n AdjacencyIterator(ViewVertex *,bool)\n AdjacencyIterator(ViewVertex *)\n AdjacencyIterator(AdjacencyIterator const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_AdjacencyIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_AdjacencyIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_AdjacencyIterator" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_isEnd" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (bool)(arg1)->isEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_isBegin" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (bool)(arg1)->isBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_isIncoming(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_isIncoming",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_isIncoming" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (bool)((AdjacencyIterator const *)arg1)->isIncoming();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_getObject" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (ViewEdge *)(arg1)->operator *();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator___deref__" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (ViewEdge *)(arg1)->operator ->();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_increment" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ (arg1)->increment();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_getExactTypeName" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_getId" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Nature::EdgeNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_getNature" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (Nature::EdgeNature)(*arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_userdata_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ void *arg2 = (void *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_userdata_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_userdata_set" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_userdata_set" "', argument " "2"" of type '" "void *""'");
+ }
+ if (arg1) (*arg1)->userdata = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_userdata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ void *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_userdata_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_userdata_get" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ result = (void *) ((*arg1)->userdata);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_A(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_A",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_A" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->A();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_B(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_B",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_B" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->B();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_fedgeA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_fedgeA",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_fedgeA" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (FEdge *)(*arg1)->fedgeA();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_fedgeB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_fedgeB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_fedgeB" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (FEdge *)(*arg1)->fedgeB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_viewShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_viewShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_viewShape" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(*arg1)->viewShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_aShape__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_aShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_aShape" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(*arg1)->aShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_aShape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_aShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_aShape" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(*arg1)->aShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_aShape(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjacencyIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_AdjacencyIterator_aShape__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjacencyIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_AdjacencyIterator_aShape__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'AdjacencyIterator_aShape'.\n Possible C/C++ prototypes are:\n aShape()\n aShape()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_isClosed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_isClosed",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_isClosed" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->isClosed();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_getChainingTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_getChainingTimeStamp",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_getChainingTimeStamp" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (unsigned int)(*arg1)->getChainingTimeStamp();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_bShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_bShape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_bShape" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (ViewShape *)(*arg1)->bShape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_occluders(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ std::vector<ViewShape * > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_occluders",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_occluders" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ {
+ std::vector<ViewShape * > &_result_ref = (*arg1)->occluders();
+ result = (std::vector<ViewShape * > *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_splittingId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Id *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_splittingId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_splittingId" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (Id *)(*arg1)->splittingId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Id, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetA" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_SetA" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewVertex *arg2 = (ViewVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetB" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_SetB" "', argument " "2"" of type '" "ViewVertex *""'");
+ }
+ arg2 = reinterpret_cast< ViewVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Nature::EdgeNature arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned short val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetNature",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetNature" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_short(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AdjacencyIterator_SetNature" "', argument " "2"" of type '" "Nature::EdgeNature""'");
+ }
+ arg2 = static_cast< Nature::EdgeNature >(val2);
+ {
+ try {
+ (*arg1)->SetNature(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetFEdgeA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetFEdgeA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetFEdgeA" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_SetFEdgeA" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (*arg1)->SetFEdgeA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetFEdgeB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetFEdgeB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetFEdgeB" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_SetFEdgeB" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (*arg1)->SetFEdgeB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetShape" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_SetShape" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (*arg1)->SetShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetId" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjacencyIterator_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (*arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_UpdateFEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_UpdateFEdges",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_UpdateFEdges" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ (*arg1)->UpdateFEdges();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetaShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetaShape",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetaShape" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_SetaShape" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (*arg1)->SetaShape(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_SetQI(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_SetQI",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_SetQI" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AdjacencyIterator_SetQI" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ {
+ try {
+ (*arg1)->SetQI(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_setChainingTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_setChainingTimeStamp",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_setChainingTimeStamp" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AdjacencyIterator_setChainingTimeStamp" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (*arg1)->setChainingTimeStamp(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_AddOccluder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ ViewShape *arg2 = (ViewShape *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_AddOccluder",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_AddOccluder" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewShape, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_AddOccluder" "', argument " "2"" of type '" "ViewShape *""'");
+ }
+ arg2 = reinterpret_cast< ViewShape * >(argp2);
+ {
+ try {
+ (*arg1)->AddOccluder(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_setSplittingId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Id *arg2 = (Id *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_setSplittingId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_setSplittingId" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Id, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_setSplittingId" "', argument " "2"" of type '" "Id *""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (*arg1)->setSplittingId(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_intersect_2d_area(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Geometry::Vec2r *arg2 = 0 ;
+ Geometry::Vec2r *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:AdjacencyIterator_intersect_2d_area",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_intersect_2d_area" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_intersect_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjacencyIterator_intersect_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "AdjacencyIterator_intersect_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjacencyIterator_intersect_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec2r * >(argp3);
+ {
+ try {
+ result = (bool)(*arg1)->intersect_2d_area((Geometry::Vec2r const &)*arg2,(Geometry::Vec2r const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_include_in_2d_area(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Geometry::Vec2r *arg2 = 0 ;
+ Geometry::Vec2r *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:AdjacencyIterator_include_in_2d_area",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_include_in_2d_area" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AdjacencyIterator_include_in_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjacencyIterator_include_in_2d_area" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "AdjacencyIterator_include_in_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AdjacencyIterator_include_in_2d_area" "', argument " "3"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec2r * >(argp3);
+ {
+ try {
+ result = (bool)(*arg1)->include_in_2d_area((Geometry::Vec2r const &)*arg2,(Geometry::Vec2r const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_getLength2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_getLength2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_getLength2D" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getLength2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_qi(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_qi",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_qi" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->qi();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_occluders_begin" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_occluders_end" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_occluders_size" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_occluders_empty" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_occludee" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = (*arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_occluded_shape" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_occludee_empty" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_shape_id(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_shape_id",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_shape_id" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->shape_id();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_shape" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_shape_importance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_shape_importance",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_shape_importance" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (float)(*arg1)->shape_importance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_verticesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_verticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_verticesBegin" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->verticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_verticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_verticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_verticesEnd" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->verticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_pointsBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_pointsBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_pointsBegin" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AdjacencyIterator_pointsBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (*arg1)->pointsBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_pointsBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_pointsBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_pointsBegin" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->pointsBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_pointsBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjacencyIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_AdjacencyIterator_pointsBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjacencyIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_AdjacencyIterator_pointsBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'AdjacencyIterator_pointsBegin'.\n Possible C/C++ prototypes are:\n pointsBegin(float)\n pointsBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_pointsEnd__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_pointsEnd",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_pointsEnd" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AdjacencyIterator_pointsEnd" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (*arg1)->pointsEnd(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_pointsEnd__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_pointsEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_pointsEnd" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->pointsEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_pointsEnd(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjacencyIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_AdjacencyIterator_pointsEnd__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AdjacencyIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_AdjacencyIterator_pointsEnd__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'AdjacencyIterator_pointsEnd'.\n Possible C/C++ prototypes are:\n pointsEnd(float)\n pointsEnd()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_getTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:AdjacencyIterator_getTimeStamp",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_getTimeStamp" "', argument " "1"" of type '" "AdjacencyIterator const *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ {
+ try {
+ result = (unsigned int)(*arg1)->getTimeStamp();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_AdjacencyIterator_setTimeStamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ AdjacencyIterator *arg1 = (AdjacencyIterator *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:AdjacencyIterator_setTimeStamp",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AdjacencyIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AdjacencyIterator_setTimeStamp" "', argument " "1"" of type '" "AdjacencyIterator *""'");
+ }
+ arg1 = reinterpret_cast< AdjacencyIterator * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AdjacencyIterator_setTimeStamp" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (*arg1)->setTimeStamp(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *AdjacencyIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_AdjacencyIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ChainingIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ ViewEdge *arg4 = (ViewEdge *) 0 ;
+ bool arg5 ;
+ ChainingIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ bool val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_ChainingIterator",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainingIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ChainingIterator" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ChainingIterator" "', argument " "4"" of type '" "ViewEdge *""'");
+ }
+ arg4 = reinterpret_cast< ViewEdge * >(argp4);
+ ecode5 = SWIG_AsVal_bool(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_ChainingIterator" "', argument " "5"" of type '" "bool""'");
+ }
+ arg5 = static_cast< bool >(val5);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainingIterator *)new SwigDirector_ChainingIterator(arg1,arg2,arg3,arg4,arg5);
+ } else {
+ result = (ChainingIterator *)new ChainingIterator(arg2,arg3,arg4,arg5);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainingIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainingIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ ViewEdge *arg4 = (ViewEdge *) 0 ;
+ ChainingIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_ChainingIterator",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainingIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ChainingIterator" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ChainingIterator" "', argument " "4"" of type '" "ViewEdge *""'");
+ }
+ arg4 = reinterpret_cast< ViewEdge * >(argp4);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainingIterator *)new SwigDirector_ChainingIterator(arg1,arg2,arg3,arg4);
+ } else {
+ result = (ChainingIterator *)new ChainingIterator(arg2,arg3,arg4);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainingIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainingIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ ChainingIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ChainingIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainingIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ChainingIterator" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainingIterator *)new SwigDirector_ChainingIterator(arg1,arg2,arg3);
+ } else {
+ result = (ChainingIterator *)new ChainingIterator(arg2,arg3);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainingIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainingIterator__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ ChainingIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ChainingIterator",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainingIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainingIterator *)new SwigDirector_ChainingIterator(arg1,arg2);
+ } else {
+ result = (ChainingIterator *)new ChainingIterator(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainingIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainingIterator__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ChainingIterator *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ChainingIterator",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainingIterator *)new SwigDirector_ChainingIterator(arg1);
+ } else {
+ result = (ChainingIterator *)new ChainingIterator();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainingIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainingIterator__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ChainingIterator *arg2 = 0 ;
+ ChainingIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ChainingIterator",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ChainingIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ChainingIterator" "', argument " "2"" of type '" "ChainingIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainingIterator" "', argument " "2"" of type '" "ChainingIterator const &""'");
+ }
+ arg2 = reinterpret_cast< ChainingIterator * >(argp2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainingIterator *)new SwigDirector_ChainingIterator(arg1,(ChainingIterator const &)*arg2);
+ } else {
+ result = (ChainingIterator *)new ChainingIterator((ChainingIterator const &)*arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainingIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainingIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_ChainingIterator__SWIG_4(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_ChainingIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ChainingIterator__SWIG_5(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainingIterator__SWIG_3(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainingIterator__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ChainingIterator__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainingIterator__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ChainingIterator'.\n Possible C/C++ prototypes are:\n ChainingIterator(PyObject *,bool,bool,ViewEdge *,bool)\n ChainingIterator(PyObject *,bool,bool,ViewEdge *)\n ChainingIterator(PyObject *,bool,bool)\n ChainingIterator(PyObject *,bool)\n ChainingIterator(PyObject *)\n ChainingIterator(PyObject *,ChainingIterator const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainingIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainingIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingIterator_getExactTypeName" "', argument " "1"" of type '" "ChainingIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((ChainingIterator const *)arg1)->ChainingIterator::getExactTypeName();
+ } else {
+ result = ((ChainingIterator const *)arg1)->getExactTypeName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainingIterator_init(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainingIterator_init",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingIterator_init" "', argument " "1"" of type '" "ChainingIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ (arg1)->ChainingIterator::init();
+ } else {
+ (arg1)->init();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainingIterator_traverse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ AdjacencyIterator *arg2 = 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ChainingIterator_traverse",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingIterator_traverse" "', argument " "1"" of type '" "ChainingIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_AdjacencyIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ChainingIterator_traverse" "', argument " "2"" of type '" "AdjacencyIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ChainingIterator_traverse" "', argument " "2"" of type '" "AdjacencyIterator const &""'");
+ }
+ arg2 = reinterpret_cast< AdjacencyIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (ViewEdge *)(arg1)->ChainingIterator::traverse((AdjacencyIterator const &)*arg2);
+ } else {
+ result = (ViewEdge *)(arg1)->traverse((AdjacencyIterator const &)*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (director) {
+ SWIG_AcquirePtr(resultobj, director->swig_release_ownership(SWIG_as_voidptr(result)));
+ }
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainingIterator_getVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainingIterator_getVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingIterator_getVertex" "', argument " "1"" of type '" "ChainingIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->getVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainingIterator_isIncrementing(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainingIterator_isIncrementing",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingIterator_isIncrementing" "', argument " "1"" of type '" "ChainingIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ {
+ try {
+ result = (bool)((ChainingIterator const *)arg1)->isIncrementing();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainingIterator_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainingIterator_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingIterator_increment" "', argument " "1"" of type '" "ChainingIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ (arg1)->ChainingIterator::increment();
+ } else {
+ (arg1)->increment();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainingIterator_decrement(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainingIterator_decrement",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainingIterator_decrement" "', argument " "1"" of type '" "ChainingIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ (arg1)->ChainingIterator::decrement();
+ } else {
+ (arg1)->decrement();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ChainingIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ChainingIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ChainingIterator" "', argument " "1"" of type '" "ChainingIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_ChainingIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = (ChainingIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_ChainingIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainingIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_ChainingIterator" "', argument " "1"" of type '" "ChainingIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ChainingIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ChainingIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ChainSilhouetteIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ ViewEdge *arg3 = (ViewEdge *) 0 ;
+ bool arg4 ;
+ ChainSilhouetteIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ bool val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_ChainSilhouetteIterator",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainSilhouetteIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ChainSilhouetteIterator" "', argument " "3"" of type '" "ViewEdge *""'");
+ }
+ arg3 = reinterpret_cast< ViewEdge * >(argp3);
+ ecode4 = SWIG_AsVal_bool(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_ChainSilhouetteIterator" "', argument " "4"" of type '" "bool""'");
+ }
+ arg4 = static_cast< bool >(val4);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainSilhouetteIterator *)new SwigDirector_ChainSilhouetteIterator(arg1,arg2,arg3,arg4);
+ } else {
+ result = (ChainSilhouetteIterator *)new ChainSilhouetteIterator(arg2,arg3,arg4);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainSilhouetteIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainSilhouetteIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ ViewEdge *arg3 = (ViewEdge *) 0 ;
+ ChainSilhouetteIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ChainSilhouetteIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainSilhouetteIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ChainSilhouetteIterator" "', argument " "3"" of type '" "ViewEdge *""'");
+ }
+ arg3 = reinterpret_cast< ViewEdge * >(argp3);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainSilhouetteIterator *)new SwigDirector_ChainSilhouetteIterator(arg1,arg2,arg3);
+ } else {
+ result = (ChainSilhouetteIterator *)new ChainSilhouetteIterator(arg2,arg3);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainSilhouetteIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainSilhouetteIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ ChainSilhouetteIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ChainSilhouetteIterator",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainSilhouetteIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainSilhouetteIterator *)new SwigDirector_ChainSilhouetteIterator(arg1,arg2);
+ } else {
+ result = (ChainSilhouetteIterator *)new ChainSilhouetteIterator(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainSilhouetteIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainSilhouetteIterator__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ChainSilhouetteIterator *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ChainSilhouetteIterator",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainSilhouetteIterator *)new SwigDirector_ChainSilhouetteIterator(arg1);
+ } else {
+ result = (ChainSilhouetteIterator *)new ChainSilhouetteIterator();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainSilhouetteIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainSilhouetteIterator__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ChainSilhouetteIterator *arg2 = 0 ;
+ ChainSilhouetteIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ChainSilhouetteIterator",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ChainSilhouetteIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ChainSilhouetteIterator" "', argument " "2"" of type '" "ChainSilhouetteIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainSilhouetteIterator" "', argument " "2"" of type '" "ChainSilhouetteIterator const &""'");
+ }
+ arg2 = reinterpret_cast< ChainSilhouetteIterator * >(argp2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainSilhouetteIterator *)new SwigDirector_ChainSilhouetteIterator(arg1,(ChainSilhouetteIterator const &)*arg2);
+ } else {
+ result = (ChainSilhouetteIterator *)new ChainSilhouetteIterator((ChainSilhouetteIterator const &)*arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainSilhouetteIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainSilhouetteIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_ChainSilhouetteIterator__SWIG_3(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_ChainSilhouetteIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ChainSilhouetteIterator__SWIG_4(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainSilhouetteIterator__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ChainSilhouetteIterator__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainSilhouetteIterator__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ChainSilhouetteIterator'.\n Possible C/C++ prototypes are:\n ChainSilhouetteIterator(PyObject *,bool,ViewEdge *,bool)\n ChainSilhouetteIterator(PyObject *,bool,ViewEdge *)\n ChainSilhouetteIterator(PyObject *,bool)\n ChainSilhouetteIterator(PyObject *)\n ChainSilhouetteIterator(PyObject *,ChainSilhouetteIterator const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainSilhouetteIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainSilhouetteIterator *arg1 = (ChainSilhouetteIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainSilhouetteIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainSilhouetteIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainSilhouetteIterator_getExactTypeName" "', argument " "1"" of type '" "ChainSilhouetteIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ChainSilhouetteIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((ChainSilhouetteIterator const *)arg1)->ChainSilhouetteIterator::getExactTypeName();
+ } else {
+ result = ((ChainSilhouetteIterator const *)arg1)->getExactTypeName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainSilhouetteIterator_traverse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainSilhouetteIterator *arg1 = (ChainSilhouetteIterator *) 0 ;
+ AdjacencyIterator *arg2 = 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ChainSilhouetteIterator_traverse",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainSilhouetteIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainSilhouetteIterator_traverse" "', argument " "1"" of type '" "ChainSilhouetteIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainSilhouetteIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_AdjacencyIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ChainSilhouetteIterator_traverse" "', argument " "2"" of type '" "AdjacencyIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ChainSilhouetteIterator_traverse" "', argument " "2"" of type '" "AdjacencyIterator const &""'");
+ }
+ arg2 = reinterpret_cast< AdjacencyIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (ViewEdge *)(arg1)->ChainSilhouetteIterator::traverse((AdjacencyIterator const &)*arg2);
+ } else {
+ result = (ViewEdge *)(arg1)->traverse((AdjacencyIterator const &)*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (director) {
+ SWIG_AcquirePtr(resultobj, director->swig_release_ownership(SWIG_as_voidptr(result)));
+ }
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ChainSilhouetteIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainSilhouetteIterator *arg1 = (ChainSilhouetteIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ChainSilhouetteIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainSilhouetteIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ChainSilhouetteIterator" "', argument " "1"" of type '" "ChainSilhouetteIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainSilhouetteIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_ChainSilhouetteIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainSilhouetteIterator *arg1 = (ChainSilhouetteIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_ChainSilhouetteIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainSilhouetteIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_ChainSilhouetteIterator" "', argument " "1"" of type '" "ChainSilhouetteIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainSilhouetteIterator * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ChainSilhouetteIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ChainSilhouetteIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ ViewEdge *arg4 = (ViewEdge *) 0 ;
+ bool arg5 ;
+ ChainPredicateIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ bool val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_ChainPredicateIterator",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ChainPredicateIterator" "', argument " "4"" of type '" "ViewEdge *""'");
+ }
+ arg4 = reinterpret_cast< ViewEdge * >(argp4);
+ ecode5 = SWIG_AsVal_bool(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_ChainPredicateIterator" "', argument " "5"" of type '" "bool""'");
+ }
+ arg5 = static_cast< bool >(val5);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,arg2,arg3,arg4,arg5);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(arg2,arg3,arg4,arg5);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ ViewEdge *arg4 = (ViewEdge *) 0 ;
+ ChainPredicateIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_ChainPredicateIterator",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ChainPredicateIterator" "', argument " "4"" of type '" "ViewEdge *""'");
+ }
+ arg4 = reinterpret_cast< ViewEdge * >(argp4);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,arg2,arg3,arg4);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(arg2,arg3,arg4);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ bool arg3 ;
+ ChainPredicateIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ChainPredicateIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,arg2,arg3);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(arg2,arg3);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ bool arg2 ;
+ ChainPredicateIterator *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ChainPredicateIterator",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,arg2);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ChainPredicateIterator *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ChainPredicateIterator",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ BinaryPredicate1D *arg3 = 0 ;
+ bool arg4 ;
+ bool arg5 ;
+ ViewEdge *arg6 = (ViewEdge *) 0 ;
+ bool arg7 ;
+ ChainPredicateIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ bool val4 ;
+ int ecode4 = 0 ;
+ bool val5 ;
+ int ecode5 = 0 ;
+ void *argp6 = 0 ;
+ int res6 = 0 ;
+ bool val7 ;
+ int ecode7 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:new_ChainPredicateIterator",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_BinaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ arg3 = reinterpret_cast< BinaryPredicate1D * >(argp3);
+ ecode4 = SWIG_AsVal_bool(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_ChainPredicateIterator" "', argument " "4"" of type '" "bool""'");
+ }
+ arg4 = static_cast< bool >(val4);
+ ecode5 = SWIG_AsVal_bool(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_ChainPredicateIterator" "', argument " "5"" of type '" "bool""'");
+ }
+ arg5 = static_cast< bool >(val5);
+ res6 = SWIG_ConvertPtr(obj5, &argp6,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "new_ChainPredicateIterator" "', argument " "6"" of type '" "ViewEdge *""'");
+ }
+ arg6 = reinterpret_cast< ViewEdge * >(argp6);
+ ecode7 = SWIG_AsVal_bool(obj6, &val7);
+ if (!SWIG_IsOK(ecode7)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "new_ChainPredicateIterator" "', argument " "7"" of type '" "bool""'");
+ }
+ arg7 = static_cast< bool >(val7);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,*arg2,*arg3,arg4,arg5,arg6,arg7);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(*arg2,*arg3,arg4,arg5,arg6,arg7);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ BinaryPredicate1D *arg3 = 0 ;
+ bool arg4 ;
+ bool arg5 ;
+ ViewEdge *arg6 = (ViewEdge *) 0 ;
+ ChainPredicateIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ bool val4 ;
+ int ecode4 = 0 ;
+ bool val5 ;
+ int ecode5 = 0 ;
+ void *argp6 = 0 ;
+ int res6 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOO:new_ChainPredicateIterator",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_BinaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ arg3 = reinterpret_cast< BinaryPredicate1D * >(argp3);
+ ecode4 = SWIG_AsVal_bool(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_ChainPredicateIterator" "', argument " "4"" of type '" "bool""'");
+ }
+ arg4 = static_cast< bool >(val4);
+ ecode5 = SWIG_AsVal_bool(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_ChainPredicateIterator" "', argument " "5"" of type '" "bool""'");
+ }
+ arg5 = static_cast< bool >(val5);
+ res6 = SWIG_ConvertPtr(obj5, &argp6,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "new_ChainPredicateIterator" "', argument " "6"" of type '" "ViewEdge *""'");
+ }
+ arg6 = reinterpret_cast< ViewEdge * >(argp6);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,*arg2,*arg3,arg4,arg5,arg6);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(*arg2,*arg3,arg4,arg5,arg6);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ BinaryPredicate1D *arg3 = 0 ;
+ bool arg4 ;
+ bool arg5 ;
+ ChainPredicateIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ bool val4 ;
+ int ecode4 = 0 ;
+ bool val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_ChainPredicateIterator",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_BinaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ arg3 = reinterpret_cast< BinaryPredicate1D * >(argp3);
+ ecode4 = SWIG_AsVal_bool(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_ChainPredicateIterator" "', argument " "4"" of type '" "bool""'");
+ }
+ arg4 = static_cast< bool >(val4);
+ ecode5 = SWIG_AsVal_bool(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_ChainPredicateIterator" "', argument " "5"" of type '" "bool""'");
+ }
+ arg5 = static_cast< bool >(val5);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,*arg2,*arg3,arg4,arg5);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(*arg2,*arg3,arg4,arg5);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ BinaryPredicate1D *arg3 = 0 ;
+ bool arg4 ;
+ ChainPredicateIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ bool val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_ChainPredicateIterator",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_BinaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ arg3 = reinterpret_cast< BinaryPredicate1D * >(argp3);
+ ecode4 = SWIG_AsVal_bool(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_ChainPredicateIterator" "', argument " "4"" of type '" "bool""'");
+ }
+ arg4 = static_cast< bool >(val4);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,*arg2,*arg3,arg4);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(*arg2,*arg3,arg4);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_9(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ BinaryPredicate1D *arg3 = 0 ;
+ ChainPredicateIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ChainPredicateIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_BinaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "3"" of type '" "BinaryPredicate1D &""'");
+ }
+ arg3 = reinterpret_cast< BinaryPredicate1D * >(argp3);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,*arg2,*arg3);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator(*arg2,*arg3);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator__SWIG_10(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ ChainPredicateIterator *arg2 = 0 ;
+ ChainPredicateIterator *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ChainPredicateIterator",&obj0,&obj1)) SWIG_fail;
+ arg1 = obj0;
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_ChainPredicateIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "ChainPredicateIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ChainPredicateIterator" "', argument " "2"" of type '" "ChainPredicateIterator const &""'");
+ }
+ arg2 = reinterpret_cast< ChainPredicateIterator * >(argp2);
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (ChainPredicateIterator *)new SwigDirector_ChainPredicateIterator(arg1,(ChainPredicateIterator const &)*arg2);
+ } else {
+ result = (ChainPredicateIterator *)new ChainPredicateIterator((ChainPredicateIterator const &)*arg2);
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ChainPredicateIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[8];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_4(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_ChainPredicateIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_10(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_3(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_BinaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_9(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_BinaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_8(self, args);
+ }
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_BinaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_7(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 6) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_BinaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_6(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (argc == 7) {
+ int _v;
+ _v = (argv[0] != 0);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_BinaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[5], &vptr, SWIGTYPE_p_ViewEdge, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[6], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ChainPredicateIterator__SWIG_5(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ChainPredicateIterator'.\n Possible C/C++ prototypes are:\n ChainPredicateIterator(PyObject *,bool,bool,ViewEdge *,bool)\n ChainPredicateIterator(PyObject *,bool,bool,ViewEdge *)\n ChainPredicateIterator(PyObject *,bool,bool)\n ChainPredicateIterator(PyObject *,bool)\n ChainPredicateIterator(PyObject *)\n ChainPredicateIterator(PyObject *,UnaryPredicate1D &,BinaryPredicate1D &,bool,bool,ViewEdge *,bool)\n ChainPredicateIterator(PyObject *,UnaryPredicate1D &,BinaryPredicate1D &,bool,bool,ViewEdge *)\n ChainPredicateIterator(PyObject *,UnaryPredicate1D &,BinaryPredicate1D &,bool,bool)\n ChainPredicateIterator(PyObject *,UnaryPredicate1D &,BinaryPredicate1D &,bool)\n ChainPredicateIterator(PyObject *,UnaryPredicate1D &,BinaryPredicate1D &)\n ChainPredicateIterator(PyObject *,ChainPredicateIterator const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ChainPredicateIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainPredicateIterator *arg1 = (ChainPredicateIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ChainPredicateIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainPredicateIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ChainPredicateIterator" "', argument " "1"" of type '" "ChainPredicateIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainPredicateIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainPredicateIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainPredicateIterator *arg1 = (ChainPredicateIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ChainPredicateIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainPredicateIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainPredicateIterator_getExactTypeName" "', argument " "1"" of type '" "ChainPredicateIterator const *""'");
+ }
+ arg1 = reinterpret_cast< ChainPredicateIterator * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((ChainPredicateIterator const *)arg1)->ChainPredicateIterator::getExactTypeName();
+ } else {
+ result = ((ChainPredicateIterator const *)arg1)->getExactTypeName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ChainPredicateIterator_traverse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainPredicateIterator *arg1 = (ChainPredicateIterator *) 0 ;
+ AdjacencyIterator *arg2 = 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ChainPredicateIterator_traverse",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainPredicateIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ChainPredicateIterator_traverse" "', argument " "1"" of type '" "ChainPredicateIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainPredicateIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_AdjacencyIterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ChainPredicateIterator_traverse" "', argument " "2"" of type '" "AdjacencyIterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ChainPredicateIterator_traverse" "', argument " "2"" of type '" "AdjacencyIterator const &""'");
+ }
+ arg2 = reinterpret_cast< AdjacencyIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (ViewEdge *)(arg1)->ChainPredicateIterator::traverse((AdjacencyIterator const &)*arg2);
+ } else {
+ result = (ViewEdge *)(arg1)->traverse((AdjacencyIterator const &)*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (director) {
+ SWIG_AcquirePtr(resultobj, director->swig_release_ownership(SWIG_as_voidptr(result)));
+ }
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_ChainPredicateIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainPredicateIterator *arg1 = (ChainPredicateIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_ChainPredicateIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ChainPredicateIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_ChainPredicateIterator" "', argument " "1"" of type '" "ChainPredicateIterator *""'");
+ }
+ arg1 = reinterpret_cast< ChainPredicateIterator * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ChainPredicateIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ChainPredicateIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryPredicate0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryPredicate0D *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryPredicate0D",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryPredicate0D *)new SwigDirector_UnaryPredicate0D(arg1);
+ } else {
+ result = (UnaryPredicate0D *)new UnaryPredicate0D();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryPredicate0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryPredicate0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate0D *arg1 = (UnaryPredicate0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryPredicate0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryPredicate0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryPredicate0D" "', argument " "1"" of type '" "UnaryPredicate0D *""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryPredicate0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate0D *arg1 = (UnaryPredicate0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryPredicate0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryPredicate0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryPredicate0D_getName" "', argument " "1"" of type '" "UnaryPredicate0D const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate0D * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryPredicate0D const *)arg1)->UnaryPredicate0D::getName();
+ } else {
+ result = ((UnaryPredicate0D const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryPredicate0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate0D *arg1 = (UnaryPredicate0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryPredicate0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryPredicate0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryPredicate0D___call__" "', argument " "1"" of type '" "UnaryPredicate0D *""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryPredicate0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryPredicate0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (bool)(arg1)->UnaryPredicate0D::operator ()(*arg2);
+ } else {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryPredicate0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate0D *arg1 = (UnaryPredicate0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryPredicate0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryPredicate0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryPredicate0D" "', argument " "1"" of type '" "UnaryPredicate0D *""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate0D * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryPredicate0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryPredicate0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_BinaryPredicate0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_BinaryPredicate0D")) SWIG_fail;
+ {
+ try {
+ result = (BinaryPredicate0D *)new BinaryPredicate0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_BinaryPredicate0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_BinaryPredicate0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate0D *arg1 = (BinaryPredicate0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_BinaryPredicate0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_BinaryPredicate0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_BinaryPredicate0D" "', argument " "1"" of type '" "BinaryPredicate0D *""'");
+ }
+ arg1 = reinterpret_cast< BinaryPredicate0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BinaryPredicate0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate0D *arg1 = (BinaryPredicate0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:BinaryPredicate0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_BinaryPredicate0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BinaryPredicate0D_getName" "', argument " "1"" of type '" "BinaryPredicate0D const *""'");
+ }
+ arg1 = reinterpret_cast< BinaryPredicate0D * >(argp1);
+ {
+ try {
+ result = ((BinaryPredicate0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BinaryPredicate0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate0D *arg1 = (BinaryPredicate0D *) 0 ;
+ Interface0D *arg2 = 0 ;
+ Interface0D *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:BinaryPredicate0D___call__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_BinaryPredicate0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BinaryPredicate0D___call__" "', argument " "1"" of type '" "BinaryPredicate0D *""'");
+ }
+ arg1 = reinterpret_cast< BinaryPredicate0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "BinaryPredicate0D___call__" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "BinaryPredicate0D___call__" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "BinaryPredicate0D___call__" "', argument " "3"" of type '" "Interface0D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "BinaryPredicate0D___call__" "', argument " "3"" of type '" "Interface0D &""'");
+ }
+ arg3 = reinterpret_cast< Interface0D * >(argp3);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *BinaryPredicate0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_BinaryPredicate0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_TrueUP0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates0D::TrueUP0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_TrueUP0D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates0D::TrueUP0D *)new Predicates0D::TrueUP0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates0D__TrueUP0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TrueUP0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates0D::TrueUP0D *arg1 = (Predicates0D::TrueUP0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TrueUP0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates0D__TrueUP0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TrueUP0D_getName" "', argument " "1"" of type '" "Predicates0D::TrueUP0D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates0D::TrueUP0D * >(argp1);
+ {
+ try {
+ result = ((Predicates0D::TrueUP0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TrueUP0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates0D::TrueUP0D *arg1 = (Predicates0D::TrueUP0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TrueUP0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates0D__TrueUP0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TrueUP0D___call__" "', argument " "1"" of type '" "Predicates0D::TrueUP0D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates0D::TrueUP0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TrueUP0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "TrueUP0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_TrueUP0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates0D::TrueUP0D *arg1 = (Predicates0D::TrueUP0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_TrueUP0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates0D__TrueUP0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TrueUP0D" "', argument " "1"" of type '" "Predicates0D::TrueUP0D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates0D::TrueUP0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *TrueUP0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates0D__TrueUP0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_FalseUP0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates0D::FalseUP0D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_FalseUP0D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates0D::FalseUP0D *)new Predicates0D::FalseUP0D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates0D__FalseUP0D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FalseUP0D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates0D::FalseUP0D *arg1 = (Predicates0D::FalseUP0D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FalseUP0D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates0D__FalseUP0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FalseUP0D_getName" "', argument " "1"" of type '" "Predicates0D::FalseUP0D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates0D::FalseUP0D * >(argp1);
+ {
+ try {
+ result = ((Predicates0D::FalseUP0D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FalseUP0D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates0D::FalseUP0D *arg1 = (Predicates0D::FalseUP0D *) 0 ;
+ Interface0DIterator *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FalseUP0D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates0D__FalseUP0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FalseUP0D___call__" "', argument " "1"" of type '" "Predicates0D::FalseUP0D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates0D::FalseUP0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIterator, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FalseUP0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FalseUP0D___call__" "', argument " "2"" of type '" "Interface0DIterator &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIterator * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_FalseUP0D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates0D::FalseUP0D *arg1 = (Predicates0D::FalseUP0D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_FalseUP0D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates0D__FalseUP0D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FalseUP0D" "', argument " "1"" of type '" "Predicates0D::FalseUP0D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates0D::FalseUP0D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *FalseUP0D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates0D__FalseUP0D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_UnaryPredicate1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ UnaryPredicate1D *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_UnaryPredicate1D",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (UnaryPredicate1D *)new SwigDirector_UnaryPredicate1D(arg1);
+ } else {
+ result = (UnaryPredicate1D *)new UnaryPredicate1D();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_UnaryPredicate1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_UnaryPredicate1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate1D *arg1 = (UnaryPredicate1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_UnaryPredicate1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryPredicate1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_UnaryPredicate1D" "', argument " "1"" of type '" "UnaryPredicate1D *""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryPredicate1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate1D *arg1 = (UnaryPredicate1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:UnaryPredicate1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryPredicate1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryPredicate1D_getName" "', argument " "1"" of type '" "UnaryPredicate1D const *""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate1D * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((UnaryPredicate1D const *)arg1)->UnaryPredicate1D::getName();
+ } else {
+ result = ((UnaryPredicate1D const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_UnaryPredicate1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate1D *arg1 = (UnaryPredicate1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:UnaryPredicate1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryPredicate1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "UnaryPredicate1D___call__" "', argument " "1"" of type '" "UnaryPredicate1D *""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "UnaryPredicate1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "UnaryPredicate1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (bool)(arg1)->UnaryPredicate1D::operator ()(*arg2);
+ } else {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_UnaryPredicate1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate1D *arg1 = (UnaryPredicate1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_UnaryPredicate1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_UnaryPredicate1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_UnaryPredicate1D" "', argument " "1"" of type '" "UnaryPredicate1D *""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate1D * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *UnaryPredicate1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_UnaryPredicate1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_BinaryPredicate1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ BinaryPredicate1D *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_BinaryPredicate1D",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (BinaryPredicate1D *)new SwigDirector_BinaryPredicate1D(arg1);
+ } else {
+ result = (BinaryPredicate1D *)new BinaryPredicate1D();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_BinaryPredicate1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_BinaryPredicate1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate1D *arg1 = (BinaryPredicate1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_BinaryPredicate1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_BinaryPredicate1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_BinaryPredicate1D" "', argument " "1"" of type '" "BinaryPredicate1D *""'");
+ }
+ arg1 = reinterpret_cast< BinaryPredicate1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BinaryPredicate1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate1D *arg1 = (BinaryPredicate1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:BinaryPredicate1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_BinaryPredicate1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BinaryPredicate1D_getName" "', argument " "1"" of type '" "BinaryPredicate1D const *""'");
+ }
+ arg1 = reinterpret_cast< BinaryPredicate1D * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((BinaryPredicate1D const *)arg1)->BinaryPredicate1D::getName();
+ } else {
+ result = ((BinaryPredicate1D const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BinaryPredicate1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate1D *arg1 = (BinaryPredicate1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Interface1D *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:BinaryPredicate1D___call__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_BinaryPredicate1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BinaryPredicate1D___call__" "', argument " "1"" of type '" "BinaryPredicate1D *""'");
+ }
+ arg1 = reinterpret_cast< BinaryPredicate1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "BinaryPredicate1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "BinaryPredicate1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "BinaryPredicate1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "BinaryPredicate1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ arg3 = reinterpret_cast< Interface1D * >(argp3);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = (bool)(arg1)->BinaryPredicate1D::operator ()(*arg2,*arg3);
+ } else {
+ result = (bool)(arg1)->operator ()(*arg2,*arg3);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_BinaryPredicate1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate1D *arg1 = (BinaryPredicate1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_BinaryPredicate1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_BinaryPredicate1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_BinaryPredicate1D" "', argument " "1"" of type '" "BinaryPredicate1D *""'");
+ }
+ arg1 = reinterpret_cast< BinaryPredicate1D * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *BinaryPredicate1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_BinaryPredicate1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_TrueUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::TrueUP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_TrueUP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::TrueUP1D *)new Predicates1D::TrueUP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__TrueUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TrueUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::TrueUP1D *arg1 = (Predicates1D::TrueUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TrueUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__TrueUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TrueUP1D_getName" "', argument " "1"" of type '" "Predicates1D::TrueUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::TrueUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::TrueUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TrueUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::TrueUP1D *arg1 = (Predicates1D::TrueUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TrueUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__TrueUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TrueUP1D___call__" "', argument " "1"" of type '" "Predicates1D::TrueUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::TrueUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TrueUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "TrueUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_TrueUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::TrueUP1D *arg1 = (Predicates1D::TrueUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_TrueUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__TrueUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TrueUP1D" "', argument " "1"" of type '" "Predicates1D::TrueUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::TrueUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *TrueUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__TrueUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_FalseUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::FalseUP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_FalseUP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::FalseUP1D *)new Predicates1D::FalseUP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__FalseUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FalseUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::FalseUP1D *arg1 = (Predicates1D::FalseUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FalseUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__FalseUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FalseUP1D_getName" "', argument " "1"" of type '" "Predicates1D::FalseUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::FalseUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::FalseUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FalseUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::FalseUP1D *arg1 = (Predicates1D::FalseUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:FalseUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__FalseUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FalseUP1D___call__" "', argument " "1"" of type '" "Predicates1D::FalseUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::FalseUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FalseUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FalseUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_FalseUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::FalseUP1D *arg1 = (Predicates1D::FalseUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_FalseUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__FalseUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FalseUP1D" "', argument " "1"" of type '" "Predicates1D::FalseUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::FalseUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *FalseUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__FalseUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_QuantitativeInvisibilityUP1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ Predicates1D::QuantitativeInvisibilityUP1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_QuantitativeInvisibilityUP1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_QuantitativeInvisibilityUP1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ {
+ try {
+ result = (Predicates1D::QuantitativeInvisibilityUP1D *)new Predicates1D::QuantitativeInvisibilityUP1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__QuantitativeInvisibilityUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_QuantitativeInvisibilityUP1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::QuantitativeInvisibilityUP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_QuantitativeInvisibilityUP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::QuantitativeInvisibilityUP1D *)new Predicates1D::QuantitativeInvisibilityUP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__QuantitativeInvisibilityUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_QuantitativeInvisibilityUP1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_QuantitativeInvisibilityUP1D__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_QuantitativeInvisibilityUP1D__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_QuantitativeInvisibilityUP1D'.\n Possible C/C++ prototypes are:\n Predicates1D::QuantitativeInvisibilityUP1D(unsigned int)\n Predicates1D::QuantitativeInvisibilityUP1D()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_QuantitativeInvisibilityUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::QuantitativeInvisibilityUP1D *arg1 = (Predicates1D::QuantitativeInvisibilityUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:QuantitativeInvisibilityUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__QuantitativeInvisibilityUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "QuantitativeInvisibilityUP1D_getName" "', argument " "1"" of type '" "Predicates1D::QuantitativeInvisibilityUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::QuantitativeInvisibilityUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::QuantitativeInvisibilityUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_QuantitativeInvisibilityUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::QuantitativeInvisibilityUP1D *arg1 = (Predicates1D::QuantitativeInvisibilityUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:QuantitativeInvisibilityUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__QuantitativeInvisibilityUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "QuantitativeInvisibilityUP1D___call__" "', argument " "1"" of type '" "Predicates1D::QuantitativeInvisibilityUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::QuantitativeInvisibilityUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "QuantitativeInvisibilityUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "QuantitativeInvisibilityUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_QuantitativeInvisibilityUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::QuantitativeInvisibilityUP1D *arg1 = (Predicates1D::QuantitativeInvisibilityUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_QuantitativeInvisibilityUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__QuantitativeInvisibilityUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_QuantitativeInvisibilityUP1D" "', argument " "1"" of type '" "Predicates1D::QuantitativeInvisibilityUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::QuantitativeInvisibilityUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *QuantitativeInvisibilityUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__QuantitativeInvisibilityUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ContourUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ContourUP1D *arg1 = (Predicates1D::ContourUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ContourUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ContourUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ContourUP1D_getName" "', argument " "1"" of type '" "Predicates1D::ContourUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ContourUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::ContourUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ContourUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ContourUP1D *arg1 = (Predicates1D::ContourUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ContourUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ContourUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ContourUP1D___call__" "', argument " "1"" of type '" "Predicates1D::ContourUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ContourUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ContourUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ContourUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ContourUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ContourUP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ContourUP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::ContourUP1D *)new Predicates1D::ContourUP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__ContourUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ContourUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ContourUP1D *arg1 = (Predicates1D::ContourUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ContourUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ContourUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ContourUP1D" "', argument " "1"" of type '" "Predicates1D::ContourUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ContourUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ContourUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__ContourUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ExternalContourUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ExternalContourUP1D *arg1 = (Predicates1D::ExternalContourUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ExternalContourUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ExternalContourUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ExternalContourUP1D_getName" "', argument " "1"" of type '" "Predicates1D::ExternalContourUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ExternalContourUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::ExternalContourUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ExternalContourUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ExternalContourUP1D *arg1 = (Predicates1D::ExternalContourUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ExternalContourUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ExternalContourUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ExternalContourUP1D___call__" "', argument " "1"" of type '" "Predicates1D::ExternalContourUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ExternalContourUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ExternalContourUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ExternalContourUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ExternalContourUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ExternalContourUP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ExternalContourUP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::ExternalContourUP1D *)new Predicates1D::ExternalContourUP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__ExternalContourUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ExternalContourUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ExternalContourUP1D *arg1 = (Predicates1D::ExternalContourUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ExternalContourUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ExternalContourUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ExternalContourUP1D" "', argument " "1"" of type '" "Predicates1D::ExternalContourUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ExternalContourUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ExternalContourUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__ExternalContourUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_EqualToTimeStampUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ Predicates1D::EqualToTimeStampUP1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_EqualToTimeStampUP1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_EqualToTimeStampUP1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ {
+ try {
+ result = (Predicates1D::EqualToTimeStampUP1D *)new Predicates1D::EqualToTimeStampUP1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__EqualToTimeStampUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_EqualToTimeStampUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::EqualToTimeStampUP1D *arg1 = (Predicates1D::EqualToTimeStampUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:EqualToTimeStampUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__EqualToTimeStampUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "EqualToTimeStampUP1D_getName" "', argument " "1"" of type '" "Predicates1D::EqualToTimeStampUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::EqualToTimeStampUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::EqualToTimeStampUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_EqualToTimeStampUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::EqualToTimeStampUP1D *arg1 = (Predicates1D::EqualToTimeStampUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:EqualToTimeStampUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__EqualToTimeStampUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "EqualToTimeStampUP1D___call__" "', argument " "1"" of type '" "Predicates1D::EqualToTimeStampUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::EqualToTimeStampUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "EqualToTimeStampUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "EqualToTimeStampUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_EqualToTimeStampUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::EqualToTimeStampUP1D *arg1 = (Predicates1D::EqualToTimeStampUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_EqualToTimeStampUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__EqualToTimeStampUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_EqualToTimeStampUP1D" "', argument " "1"" of type '" "Predicates1D::EqualToTimeStampUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::EqualToTimeStampUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *EqualToTimeStampUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__EqualToTimeStampUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_EqualToChainingTimeStampUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ Predicates1D::EqualToChainingTimeStampUP1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_EqualToChainingTimeStampUP1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_EqualToChainingTimeStampUP1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ {
+ try {
+ result = (Predicates1D::EqualToChainingTimeStampUP1D *)new Predicates1D::EqualToChainingTimeStampUP1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__EqualToChainingTimeStampUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_EqualToChainingTimeStampUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::EqualToChainingTimeStampUP1D *arg1 = (Predicates1D::EqualToChainingTimeStampUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:EqualToChainingTimeStampUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__EqualToChainingTimeStampUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "EqualToChainingTimeStampUP1D_getName" "', argument " "1"" of type '" "Predicates1D::EqualToChainingTimeStampUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::EqualToChainingTimeStampUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::EqualToChainingTimeStampUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_EqualToChainingTimeStampUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::EqualToChainingTimeStampUP1D *arg1 = (Predicates1D::EqualToChainingTimeStampUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:EqualToChainingTimeStampUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__EqualToChainingTimeStampUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "EqualToChainingTimeStampUP1D___call__" "', argument " "1"" of type '" "Predicates1D::EqualToChainingTimeStampUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::EqualToChainingTimeStampUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "EqualToChainingTimeStampUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "EqualToChainingTimeStampUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_EqualToChainingTimeStampUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::EqualToChainingTimeStampUP1D *arg1 = (Predicates1D::EqualToChainingTimeStampUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_EqualToChainingTimeStampUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__EqualToChainingTimeStampUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_EqualToChainingTimeStampUP1D" "', argument " "1"" of type '" "Predicates1D::EqualToChainingTimeStampUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::EqualToChainingTimeStampUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *EqualToChainingTimeStampUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__EqualToChainingTimeStampUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ShapeUP1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ unsigned int arg2 ;
+ Predicates1D::ShapeUP1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ShapeUP1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ShapeUP1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ShapeUP1D" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ result = (Predicates1D::ShapeUP1D *)new Predicates1D::ShapeUP1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__ShapeUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ShapeUP1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ Predicates1D::ShapeUP1D *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ShapeUP1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ShapeUP1D" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ {
+ try {
+ result = (Predicates1D::ShapeUP1D *)new Predicates1D::ShapeUP1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__ShapeUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ShapeUP1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ShapeUP1D__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ShapeUP1D__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ShapeUP1D'.\n Possible C/C++ prototypes are:\n Predicates1D::ShapeUP1D(unsigned int,unsigned int)\n Predicates1D::ShapeUP1D(unsigned int)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShapeUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ShapeUP1D *arg1 = (Predicates1D::ShapeUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShapeUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ShapeUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShapeUP1D_getName" "', argument " "1"" of type '" "Predicates1D::ShapeUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ShapeUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::ShapeUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShapeUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ShapeUP1D *arg1 = (Predicates1D::ShapeUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShapeUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ShapeUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShapeUP1D___call__" "', argument " "1"" of type '" "Predicates1D::ShapeUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ShapeUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ShapeUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ShapeUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ShapeUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ShapeUP1D *arg1 = (Predicates1D::ShapeUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ShapeUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ShapeUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ShapeUP1D" "', argument " "1"" of type '" "Predicates1D::ShapeUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ShapeUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ShapeUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__ShapeUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_TrueBP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::TrueBP1D *arg1 = (Predicates1D::TrueBP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:TrueBP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__TrueBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TrueBP1D_getName" "', argument " "1"" of type '" "Predicates1D::TrueBP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::TrueBP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::TrueBP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TrueBP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::TrueBP1D *arg1 = (Predicates1D::TrueBP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Interface1D *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:TrueBP1D___call__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__TrueBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TrueBP1D___call__" "', argument " "1"" of type '" "Predicates1D::TrueBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::TrueBP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TrueBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "TrueBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "TrueBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "TrueBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ arg3 = reinterpret_cast< Interface1D * >(argp3);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_TrueBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::TrueBP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_TrueBP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::TrueBP1D *)new Predicates1D::TrueBP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__TrueBP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_TrueBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::TrueBP1D *arg1 = (Predicates1D::TrueBP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_TrueBP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__TrueBP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TrueBP1D" "', argument " "1"" of type '" "Predicates1D::TrueBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::TrueBP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *TrueBP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__TrueBP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_FalseBP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::FalseBP1D *arg1 = (Predicates1D::FalseBP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:FalseBP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__FalseBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FalseBP1D_getName" "', argument " "1"" of type '" "Predicates1D::FalseBP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::FalseBP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::FalseBP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_FalseBP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::FalseBP1D *arg1 = (Predicates1D::FalseBP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Interface1D *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:FalseBP1D___call__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__FalseBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FalseBP1D___call__" "', argument " "1"" of type '" "Predicates1D::FalseBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::FalseBP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FalseBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FalseBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FalseBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FalseBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ arg3 = reinterpret_cast< Interface1D * >(argp3);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_FalseBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::FalseBP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_FalseBP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::FalseBP1D *)new Predicates1D::FalseBP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__FalseBP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_FalseBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::FalseBP1D *arg1 = (Predicates1D::FalseBP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_FalseBP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__FalseBP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_FalseBP1D" "', argument " "1"" of type '" "Predicates1D::FalseBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::FalseBP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *FalseBP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__FalseBP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Length2DBP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::Length2DBP1D *arg1 = (Predicates1D::Length2DBP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Length2DBP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__Length2DBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Length2DBP1D_getName" "', argument " "1"" of type '" "Predicates1D::Length2DBP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::Length2DBP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::Length2DBP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Length2DBP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::Length2DBP1D *arg1 = (Predicates1D::Length2DBP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Interface1D *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Length2DBP1D___call__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__Length2DBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Length2DBP1D___call__" "', argument " "1"" of type '" "Predicates1D::Length2DBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::Length2DBP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Length2DBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Length2DBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Length2DBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Length2DBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ arg3 = reinterpret_cast< Interface1D * >(argp3);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Length2DBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::Length2DBP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Length2DBP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::Length2DBP1D *)new Predicates1D::Length2DBP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__Length2DBP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Length2DBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::Length2DBP1D *arg1 = (Predicates1D::Length2DBP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Length2DBP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__Length2DBP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Length2DBP1D" "', argument " "1"" of type '" "Predicates1D::Length2DBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::Length2DBP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Length2DBP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__Length2DBP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_SameShapeIdBP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::SameShapeIdBP1D *arg1 = (Predicates1D::SameShapeIdBP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:SameShapeIdBP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__SameShapeIdBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SameShapeIdBP1D_getName" "', argument " "1"" of type '" "Predicates1D::SameShapeIdBP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::SameShapeIdBP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::SameShapeIdBP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SameShapeIdBP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::SameShapeIdBP1D *arg1 = (Predicates1D::SameShapeIdBP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Interface1D *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:SameShapeIdBP1D___call__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__SameShapeIdBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SameShapeIdBP1D___call__" "', argument " "1"" of type '" "Predicates1D::SameShapeIdBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::SameShapeIdBP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SameShapeIdBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SameShapeIdBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "SameShapeIdBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SameShapeIdBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ arg3 = reinterpret_cast< Interface1D * >(argp3);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_SameShapeIdBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::SameShapeIdBP1D *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_SameShapeIdBP1D")) SWIG_fail;
+ {
+ try {
+ result = (Predicates1D::SameShapeIdBP1D *)new Predicates1D::SameShapeIdBP1D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__SameShapeIdBP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_SameShapeIdBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::SameShapeIdBP1D *arg1 = (Predicates1D::SameShapeIdBP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_SameShapeIdBP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__SameShapeIdBP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SameShapeIdBP1D" "', argument " "1"" of type '" "Predicates1D::SameShapeIdBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::SameShapeIdBP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *SameShapeIdBP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__SameShapeIdBP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ViewMapGradientNormBP1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ IntegrationType arg2 ;
+ float arg3 ;
+ Predicates1D::ViewMapGradientNormBP1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ViewMapGradientNormBP1D",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewMapGradientNormBP1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ViewMapGradientNormBP1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ViewMapGradientNormBP1D" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (Predicates1D::ViewMapGradientNormBP1D *)new Predicates1D::ViewMapGradientNormBP1D(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__ViewMapGradientNormBP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewMapGradientNormBP1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ IntegrationType arg2 ;
+ Predicates1D::ViewMapGradientNormBP1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ViewMapGradientNormBP1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewMapGradientNormBP1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ViewMapGradientNormBP1D" "', argument " "2"" of type '" "IntegrationType""'");
+ }
+ arg2 = static_cast< IntegrationType >(val2);
+ {
+ try {
+ result = (Predicates1D::ViewMapGradientNormBP1D *)new Predicates1D::ViewMapGradientNormBP1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__ViewMapGradientNormBP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewMapGradientNormBP1D__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ Predicates1D::ViewMapGradientNormBP1D *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ViewMapGradientNormBP1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ViewMapGradientNormBP1D" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ {
+ try {
+ result = (Predicates1D::ViewMapGradientNormBP1D *)new Predicates1D::ViewMapGradientNormBP1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__ViewMapGradientNormBP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ViewMapGradientNormBP1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewMapGradientNormBP1D__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewMapGradientNormBP1D__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_int(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ViewMapGradientNormBP1D__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ViewMapGradientNormBP1D'.\n Possible C/C++ prototypes are:\n Predicates1D::ViewMapGradientNormBP1D(int,IntegrationType,float)\n Predicates1D::ViewMapGradientNormBP1D(int,IntegrationType)\n Predicates1D::ViewMapGradientNormBP1D(int)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMapGradientNormBP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ViewMapGradientNormBP1D *arg1 = (Predicates1D::ViewMapGradientNormBP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ViewMapGradientNormBP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ViewMapGradientNormBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMapGradientNormBP1D_getName" "', argument " "1"" of type '" "Predicates1D::ViewMapGradientNormBP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ViewMapGradientNormBP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::ViewMapGradientNormBP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ViewMapGradientNormBP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ViewMapGradientNormBP1D *arg1 = (Predicates1D::ViewMapGradientNormBP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ Interface1D *arg3 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ViewMapGradientNormBP1D___call__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ViewMapGradientNormBP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ViewMapGradientNormBP1D___call__" "', argument " "1"" of type '" "Predicates1D::ViewMapGradientNormBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ViewMapGradientNormBP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ViewMapGradientNormBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMapGradientNormBP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ViewMapGradientNormBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ViewMapGradientNormBP1D___call__" "', argument " "3"" of type '" "Interface1D &""'");
+ }
+ arg3 = reinterpret_cast< Interface1D * >(argp3);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ViewMapGradientNormBP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::ViewMapGradientNormBP1D *arg1 = (Predicates1D::ViewMapGradientNormBP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ViewMapGradientNormBP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__ViewMapGradientNormBP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ViewMapGradientNormBP1D" "', argument " "1"" of type '" "Predicates1D::ViewMapGradientNormBP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::ViewMapGradientNormBP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ViewMapGradientNormBP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__ViewMapGradientNormBP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_DensityLowerThanUP1D__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ double arg1 ;
+ double arg2 ;
+ Predicates1D::DensityLowerThanUP1D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_DensityLowerThanUP1D",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DensityLowerThanUP1D" "', argument " "1"" of type '" "double""'");
+ }
+ arg1 = static_cast< double >(val1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_DensityLowerThanUP1D" "', argument " "2"" of type '" "double""'");
+ }
+ arg2 = static_cast< double >(val2);
+ {
+ try {
+ result = (Predicates1D::DensityLowerThanUP1D *)new Predicates1D::DensityLowerThanUP1D(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__DensityLowerThanUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_DensityLowerThanUP1D__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ double arg1 ;
+ Predicates1D::DensityLowerThanUP1D *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_DensityLowerThanUP1D",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_DensityLowerThanUP1D" "', argument " "1"" of type '" "double""'");
+ }
+ arg1 = static_cast< double >(val1);
+ {
+ try {
+ result = (Predicates1D::DensityLowerThanUP1D *)new Predicates1D::DensityLowerThanUP1D(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Predicates1D__DensityLowerThanUP1D, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_DensityLowerThanUP1D(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_DensityLowerThanUP1D__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_double(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_DensityLowerThanUP1D__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_DensityLowerThanUP1D'.\n Possible C/C++ prototypes are:\n Predicates1D::DensityLowerThanUP1D(double,double)\n Predicates1D::DensityLowerThanUP1D(double)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_DensityLowerThanUP1D_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::DensityLowerThanUP1D *arg1 = (Predicates1D::DensityLowerThanUP1D *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:DensityLowerThanUP1D_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__DensityLowerThanUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DensityLowerThanUP1D_getName" "', argument " "1"" of type '" "Predicates1D::DensityLowerThanUP1D const *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::DensityLowerThanUP1D * >(argp1);
+ {
+ try {
+ result = ((Predicates1D::DensityLowerThanUP1D const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_DensityLowerThanUP1D___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::DensityLowerThanUP1D *arg1 = (Predicates1D::DensityLowerThanUP1D *) 0 ;
+ Interface1D *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:DensityLowerThanUP1D___call__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__DensityLowerThanUP1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DensityLowerThanUP1D___call__" "', argument " "1"" of type '" "Predicates1D::DensityLowerThanUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::DensityLowerThanUP1D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "DensityLowerThanUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "DensityLowerThanUP1D___call__" "', argument " "2"" of type '" "Interface1D &""'");
+ }
+ arg2 = reinterpret_cast< Interface1D * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ()(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_DensityLowerThanUP1D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Predicates1D::DensityLowerThanUP1D *arg1 = (Predicates1D::DensityLowerThanUP1D *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_DensityLowerThanUP1D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Predicates1D__DensityLowerThanUP1D, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_DensityLowerThanUP1D" "', argument " "1"" of type '" "Predicates1D::DensityLowerThanUP1D *""'");
+ }
+ arg1 = reinterpret_cast< Predicates1D::DensityLowerThanUP1D * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *DensityLowerThanUP1D_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Predicates1D__DensityLowerThanUP1D, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__CurvilinearLength_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__CurvilinearLength_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__CurvilinearLength_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CurvePointIterator__CurvilinearLength_set" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ if (arg1) (arg1)->_CurvilinearLength = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__CurvilinearLength_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__CurvilinearLength_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__CurvilinearLength_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = (float) ((arg1)->_CurvilinearLength);
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__step_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__step_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__step_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CurvePointIterator__step_set" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ if (arg1) (arg1)->_step = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__step_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__step_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__step_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = (float) ((arg1)->_step);
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator___A_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Curve::vertex_container::iterator arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator___A_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator___A_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Curve__vertex_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator___A_set" "', argument " "2"" of type '" "Curve::vertex_container::iterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurvePointIterator___A_set" "', argument " "2"" of type '" "Curve::vertex_container::iterator""'");
+ } else {
+ Curve::vertex_container::iterator * temp = reinterpret_cast< Curve::vertex_container::iterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ if (arg1) (arg1)->__A = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator___A_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Curve::vertex_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator___A_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator___A_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = ((arg1)->__A);
+ resultobj = SWIG_NewPointerObj((new Curve::vertex_container::iterator(static_cast< const Curve::vertex_container::iterator& >(result))), SWIGTYPE_p_Curve__vertex_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator___B_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Curve::vertex_container::iterator arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator___B_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator___B_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Curve__vertex_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator___B_set" "', argument " "2"" of type '" "Curve::vertex_container::iterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurvePointIterator___B_set" "', argument " "2"" of type '" "Curve::vertex_container::iterator""'");
+ } else {
+ Curve::vertex_container::iterator * temp = reinterpret_cast< Curve::vertex_container::iterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ if (arg1) (arg1)->__B = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator___B_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Curve::vertex_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator___B_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator___B_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = ((arg1)->__B);
+ resultobj = SWIG_NewPointerObj((new Curve::vertex_container::iterator(static_cast< const Curve::vertex_container::iterator& >(result))), SWIGTYPE_p_Curve__vertex_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__begin_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Curve::vertex_container::iterator arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__begin_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__begin_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Curve__vertex_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator__begin_set" "', argument " "2"" of type '" "Curve::vertex_container::iterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurvePointIterator__begin_set" "', argument " "2"" of type '" "Curve::vertex_container::iterator""'");
+ } else {
+ Curve::vertex_container::iterator * temp = reinterpret_cast< Curve::vertex_container::iterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ if (arg1) (arg1)->_begin = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__begin_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Curve::vertex_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__begin_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__begin_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = ((arg1)->_begin);
+ resultobj = SWIG_NewPointerObj((new Curve::vertex_container::iterator(static_cast< const Curve::vertex_container::iterator& >(result))), SWIGTYPE_p_Curve__vertex_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__end_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Curve::vertex_container::iterator arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__end_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__end_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Curve__vertex_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator__end_set" "', argument " "2"" of type '" "Curve::vertex_container::iterator""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurvePointIterator__end_set" "', argument " "2"" of type '" "Curve::vertex_container::iterator""'");
+ } else {
+ Curve::vertex_container::iterator * temp = reinterpret_cast< Curve::vertex_container::iterator * >(argp2);
+ arg2 = *temp;
+ if (SWIG_IsNewObj(res2)) delete temp;
+ }
+ }
+ if (arg1) (arg1)->_end = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__end_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Curve::vertex_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__end_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__end_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = ((arg1)->_end);
+ resultobj = SWIG_NewPointerObj((new Curve::vertex_container::iterator(static_cast< const Curve::vertex_container::iterator& >(result))), SWIGTYPE_p_Curve__vertex_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__n_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__n_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__n_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CurvePointIterator__n_set" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ if (arg1) (arg1)->_n = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__n_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__n_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__n_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = (int) ((arg1)->_n);
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__currentn_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__currentn_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__currentn_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CurvePointIterator__currentn_set" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ if (arg1) (arg1)->_currentn = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__currentn_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__currentn_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__currentn_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = (int) ((arg1)->_currentn);
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__t_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__t_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__t_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CurvePointIterator__t_set" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ if (arg1) (arg1)->_t = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__t_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__t_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__t_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = (float) ((arg1)->_t);
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__Point_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ CurvePoint *arg2 = (CurvePoint *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__Point_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__Point_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator__Point_set" "', argument " "2"" of type '" "CurvePoint *""'");
+ }
+ arg2 = reinterpret_cast< CurvePoint * >(argp2);
+ if (arg1) (arg1)->_Point = *arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__Point_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ CurvePoint *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__Point_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__Point_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = (CurvePoint *)& ((arg1)->_Point);
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvePoint, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__CurveLength_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator__CurveLength_set",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__CurveLength_set" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CurvePointIterator__CurveLength_set" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ if (arg1) (arg1)->_CurveLength = arg2;
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator__CurveLength_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator__CurveLength_get",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator__CurveLength_get" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ result = (float) ((arg1)->_CurveLength);
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePointIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ CurveInternal::CurvePointIterator *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_CurvePointIterator",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_CurvePointIterator" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (CurveInternal::CurvePointIterator *)new CurveInternal::CurvePointIterator(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePointIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_CurvePointIterator")) SWIG_fail;
+ {
+ try {
+ result = (CurveInternal::CurvePointIterator *)new CurveInternal::CurvePointIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePointIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = 0 ;
+ CurveInternal::CurvePointIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_CurvePointIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_CurvePointIterator" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_CurvePointIterator" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const &""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (CurveInternal::CurvePointIterator *)new CurveInternal::CurvePointIterator((CurveInternal::CurvePointIterator const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePointIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_CurvePointIterator__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_CurveInternal__CurvePointIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_CurvePointIterator__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_CurvePointIterator__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_CurvePointIterator'.\n Possible C/C++ prototypes are:\n CurveInternal::CurvePointIterator(float)\n CurveInternal::CurvePointIterator()\n CurveInternal::CurvePointIterator(CurveInternal::CurvePointIterator const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_CurvePointIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_CurvePointIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CurvePointIterator" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ CurveInternal::CurvePointIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_copy",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_copy" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (CurveInternal::CurvePointIterator *)((CurveInternal::CurvePointIterator const *)arg1)->copy();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_CastToInterface0DIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_CastToInterface0DIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_CastToInterface0DIterator" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = ((CurveInternal::CurvePointIterator const *)arg1)->CastToInterface0DIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getExactTypeName" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = ((CurveInternal::CurvePointIterator const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Interface0DIteratorNested *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator___eq__" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIteratorNested, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurvePointIterator___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIteratorNested * >(argp2);
+ {
+ try {
+ result = (bool)((CurveInternal::CurvePointIterator const *)arg1)->operator ==((Interface0DIteratorNested const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ CurvePoint *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getObject" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ {
+ CurvePoint &_result_ref = (arg1)->operator *();
+ result = (CurvePoint *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvePoint, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ CurvePoint *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator___deref__" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (CurvePoint *)(arg1)->operator ->();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvePoint, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_isBegin" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (bool)((CurveInternal::CurvePointIterator const *)arg1)->isBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_isEnd" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (bool)((CurveInternal::CurvePointIterator const *)arg1)->isEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getX" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getY" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getZ" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getPoint3D" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getProjectedX" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getProjectedY" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getProjectedZ" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getPoint2D" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getFEdge" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurvePointIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(*arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getId" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_getNature" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)(*arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_castToSVertex" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_castToViewVertex" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_castToNonTVertex" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(*arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_castToTVertex" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (TVertex *)(*arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_A(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_A",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_A" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->A();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_B(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_B",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_B" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->B();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_t2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_t2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_t2d" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (float)(*arg1)->t2d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_SetA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator_SetA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_SetA" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator_SetA" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_SetB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator_SetB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_SetB" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePointIterator_SetB" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_SetT2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePointIterator_SetT2d",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_SetT2d" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CurvePointIterator_SetT2d" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (*arg1)->SetT2d(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_fedge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_fedge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_fedge" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (FEdge *)(*arg1)->fedge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_point2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_point2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_point2d" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point2d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_point3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_point3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_point3d" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point3d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_normal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_normal",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_normal" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->normal();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_shape" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_occluders_begin" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_occluders_end" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_occluders_empty" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_occluders_size" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_occludee" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = (*arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_occluded_shape" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_occludee_empty" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_z_discontinuity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_z_discontinuity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_z_discontinuity" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->z_discontinuity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_curvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_curvatureFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_curvatureFredo" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->curvatureFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePointIterator_directionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurveInternal::CurvePointIterator *arg1 = (CurveInternal::CurvePointIterator *) 0 ;
+ Geometry::Vec2d result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePointIterator_directionFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurveInternal__CurvePointIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePointIterator_directionFredo" "', argument " "1"" of type '" "CurveInternal::CurvePointIterator const *""'");
+ }
+ arg1 = reinterpret_cast< CurveInternal::CurvePointIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->directionFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2d(static_cast< const Geometry::Vec2d& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *CurvePointIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getExactTypeName" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = ((CurvePoint const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getX" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (real)((CurvePoint const *)arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getY" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (real)((CurvePoint const *)arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getZ" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (real)((CurvePoint const *)arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getPoint3D" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = ((CurvePoint const *)arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getProjectedX" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (real)((CurvePoint const *)arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getProjectedY" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (real)((CurvePoint const *)arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getProjectedZ" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (real)((CurvePoint const *)arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getPoint2D" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = ((CurvePoint const *)arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePoint_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getFEdge" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePoint_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurvePoint_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getId" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = ((CurvePoint const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_getNature" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)((CurvePoint const *)arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_castToSVertex" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_castToViewVertex" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_castToNonTVertex" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_castToTVertex" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (TVertex *)(arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_CurvePoint")) SWIG_fail;
+ {
+ try {
+ result = (CurvePoint *)new CurvePoint();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvePoint, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ float arg3 ;
+ CurvePoint *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_CurvePoint",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_CurvePoint" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_CurvePoint" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_CurvePoint" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (CurvePoint *)new CurvePoint(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvePoint, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePoint__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ CurvePoint *arg2 = (CurvePoint *) 0 ;
+ float arg3 ;
+ CurvePoint *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_CurvePoint",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_CurvePoint" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_CurvePoint" "', argument " "2"" of type '" "CurvePoint *""'");
+ }
+ arg2 = reinterpret_cast< CurvePoint * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_CurvePoint" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (CurvePoint *)new CurvePoint(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvePoint, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePoint__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = 0 ;
+ CurvePoint *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_CurvePoint",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_CurvePoint, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_CurvePoint" "', argument " "1"" of type '" "CurvePoint const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_CurvePoint" "', argument " "1"" of type '" "CurvePoint const &""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (CurvePoint *)new CurvePoint((CurvePoint const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvePoint, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_CurvePoint(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_CurvePoint__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_CurvePoint, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_CurvePoint__SWIG_3(self, args);
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CurvePoint, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_CurvePoint, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_CurvePoint__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_CurvePoint__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_CurvePoint'.\n Possible C/C++ prototypes are:\n CurvePoint()\n CurvePoint(SVertex *,SVertex *,float)\n CurvePoint(CurvePoint *,CurvePoint *,float)\n CurvePoint(CurvePoint const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_CurvePoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_CurvePoint",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CurvePoint" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ CurvePoint *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePoint___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint___eq__" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_CurvePoint, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePoint___eq__" "', argument " "2"" of type '" "CurvePoint const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CurvePoint___eq__" "', argument " "2"" of type '" "CurvePoint const &""'");
+ }
+ arg2 = reinterpret_cast< CurvePoint * >(argp2);
+ {
+ try {
+ result = (bool)(arg1)->operator ==((CurvePoint const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_A(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_A",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_A" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->A();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_B(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_B",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_B" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (SVertex *)(arg1)->B();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_t2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_t2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_t2d" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (float)((CurvePoint const *)arg1)->t2d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_SetA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePoint_SetA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_SetA" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePoint_SetA" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_SetB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePoint_SetB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_SetB" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CurvePoint_SetB" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->SetB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_SetT2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CurvePoint_SetT2d",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_SetT2d" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "CurvePoint_SetT2d" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (arg1)->SetT2d(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_fedge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_fedge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_fedge" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->fedge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_point2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_point2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_point2d" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = ((CurvePoint const *)arg1)->point2d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_point3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_point3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_point3d" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = ((CurvePoint const *)arg1)->point3d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_normal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_normal",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_normal" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = ((CurvePoint const *)arg1)->normal();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_shape" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (SShape *)((CurvePoint const *)arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_occluders_begin" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = ((CurvePoint const *)arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_occluders_end" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = ((CurvePoint const *)arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_occluders_empty" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (bool)((CurvePoint const *)arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_occluders_size" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (int)((CurvePoint const *)arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_occludee" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = ((CurvePoint const *)arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_occluded_shape" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (SShape *)((CurvePoint const *)arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_occludee_empty" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (bool)((CurvePoint const *)arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_z_discontinuity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_z_discontinuity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_z_discontinuity" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (real)((CurvePoint const *)arg1)->z_discontinuity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_curvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_curvatureFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_curvatureFredo" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (real)((CurvePoint const *)arg1)->curvatureFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CurvePoint_directionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ Geometry::Vec2d result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:CurvePoint_directionFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CurvePoint_directionFredo" "', argument " "1"" of type '" "CurvePoint const *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = ((CurvePoint const *)arg1)->directionFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2d(static_cast< const Geometry::Vec2d& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *CurvePoint_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_CurvePoint, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Curve__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Curve")) SWIG_fail;
+ {
+ try {
+ result = (Curve *)new Curve();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Curve, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Curve__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Id *arg1 = 0 ;
+ Curve *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Curve",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Curve" "', argument " "1"" of type '" "Id const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Curve" "', argument " "1"" of type '" "Id const &""'");
+ }
+ arg1 = reinterpret_cast< Id * >(argp1);
+ {
+ try {
+ result = (Curve *)new Curve((Id const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Curve, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Curve__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = 0 ;
+ Curve *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Curve",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Curve, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Curve" "', argument " "1"" of type '" "Curve const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Curve" "', argument " "1"" of type '" "Curve const &""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (Curve *)new Curve((Curve const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Curve, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Curve(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Curve__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Id, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Curve__SWIG_1(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Curve__SWIG_2(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Curve'.\n Possible C/C++ prototypes are:\n Curve()\n Curve(Id const &)\n Curve(Curve const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Curve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Curve",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Curve" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_computeCurvatureAndOrientation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_computeCurvatureAndOrientation",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_computeCurvatureAndOrientation" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ (arg1)->computeCurvatureAndOrientation();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_push_vertex_back__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ Curve::Vertex *arg2 = (Curve::Vertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_push_vertex_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_push_vertex_back" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Curve_push_vertex_back" "', argument " "2"" of type '" "Curve::Vertex *""'");
+ }
+ arg2 = reinterpret_cast< Curve::Vertex * >(argp2);
+ {
+ try {
+ (arg1)->push_vertex_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_push_vertex_back__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_push_vertex_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_push_vertex_back" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Curve_push_vertex_back" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->push_vertex_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_push_vertex_back(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_CurvePoint, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Curve_push_vertex_back__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Curve_push_vertex_back__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Curve_push_vertex_back'.\n Possible C/C++ prototypes are:\n push_vertex_back(Curve::Vertex *)\n push_vertex_back(SVertex *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_push_vertex_front__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ Curve::Vertex *arg2 = (Curve::Vertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_push_vertex_front",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_push_vertex_front" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Curve_push_vertex_front" "', argument " "2"" of type '" "Curve::Vertex *""'");
+ }
+ arg2 = reinterpret_cast< Curve::Vertex * >(argp2);
+ {
+ try {
+ (arg1)->push_vertex_front(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_push_vertex_front__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_push_vertex_front",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_push_vertex_front" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Curve_push_vertex_front" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (arg1)->push_vertex_front(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_push_vertex_front(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_CurvePoint, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Curve_push_vertex_front__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Curve_push_vertex_front__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Curve_push_vertex_front'.\n Possible C/C++ prototypes are:\n push_vertex_front(Curve::Vertex *)\n push_vertex_front(SVertex *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_empty" "', argument " "1"" of type '" "Curve const *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (bool)((Curve const *)arg1)->empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_getLength2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_getLength2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_getLength2D" "', argument " "1"" of type '" "Curve const *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (real)((Curve const *)arg1)->getLength2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_getId" "', argument " "1"" of type '" "Curve const *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = ((Curve const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_nSegments(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_nSegments",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_nSegments" "', argument " "1"" of type '" "Curve const *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (unsigned int)((Curve const *)arg1)->nSegments();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_setId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_setId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_setId" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Curve_setId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Curve_setId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (arg1)->setId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_curvePointsBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ float arg2 ;
+ CurveInternal::CurvePointIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_curvePointsBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_curvePointsBegin" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Curve_curvePointsBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->curvePointsBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new CurveInternal::CurvePointIterator(static_cast< const CurveInternal::CurvePointIterator& >(result))), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_curvePointsBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ CurveInternal::CurvePointIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_curvePointsBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_curvePointsBegin" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (arg1)->curvePointsBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new CurveInternal::CurvePointIterator(static_cast< const CurveInternal::CurvePointIterator& >(result))), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_curvePointsBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Curve_curvePointsBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Curve_curvePointsBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Curve_curvePointsBegin'.\n Possible C/C++ prototypes are:\n curvePointsBegin(float)\n curvePointsBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_curvePointsEnd__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ float arg2 ;
+ CurveInternal::CurvePointIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_curvePointsEnd",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_curvePointsEnd" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Curve_curvePointsEnd" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->curvePointsEnd(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new CurveInternal::CurvePointIterator(static_cast< const CurveInternal::CurvePointIterator& >(result))), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_curvePointsEnd__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ CurveInternal::CurvePointIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_curvePointsEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_curvePointsEnd" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (arg1)->curvePointsEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new CurveInternal::CurvePointIterator(static_cast< const CurveInternal::CurvePointIterator& >(result))), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_curvePointsEnd(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Curve_curvePointsEnd__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Curve_curvePointsEnd__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Curve_curvePointsEnd'.\n Possible C/C++ prototypes are:\n curvePointsEnd(float)\n curvePointsEnd()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_curveVerticesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ CurveInternal::CurvePointIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_curveVerticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_curveVerticesBegin" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (arg1)->curveVerticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new CurveInternal::CurvePointIterator(static_cast< const CurveInternal::CurvePointIterator& >(result))), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_curveVerticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ CurveInternal::CurvePointIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_curveVerticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_curveVerticesEnd" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (arg1)->curveVerticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new CurveInternal::CurvePointIterator(static_cast< const CurveInternal::CurvePointIterator& >(result))), SWIGTYPE_p_CurveInternal__CurvePointIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_verticesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_verticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_verticesBegin" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_verticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_verticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_verticesEnd" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_pointsBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_pointsBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_pointsBegin" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Curve_pointsBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_pointsBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_pointsBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_pointsBegin" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_pointsBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Curve_pointsBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Curve_pointsBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Curve_pointsBegin'.\n Possible C/C++ prototypes are:\n pointsBegin(float)\n pointsBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_pointsEnd__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Curve_pointsEnd",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_pointsEnd" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Curve_pointsEnd" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsEnd(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_pointsEnd__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Curve *arg1 = (Curve *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Curve_pointsEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Curve, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Curve_pointsEnd" "', argument " "1"" of type '" "Curve *""'");
+ }
+ arg1 = reinterpret_cast< Curve * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Curve_pointsEnd(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Curve_pointsEnd__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Curve, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Curve_pointsEnd__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Curve_pointsEnd'.\n Possible C/C++ prototypes are:\n pointsEnd(float)\n pointsEnd()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Curve_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Curve, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertexIterator__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_StrokeVertexIterator")) SWIG_fail;
+ {
+ try {
+ result = (StrokeInternal::StrokeVertexIterator *)new StrokeInternal::StrokeVertexIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertexIterator__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = 0 ;
+ StrokeInternal::StrokeVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_StrokeVertexIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeVertexIterator" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeVertexIterator" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const &""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (StrokeInternal::StrokeVertexIterator *)new StrokeInternal::StrokeVertexIterator((StrokeInternal::StrokeVertexIterator const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertexIterator__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke::vertex_container::iterator *arg1 = 0 ;
+ Stroke::vertex_container::iterator *arg2 = 0 ;
+ Stroke::vertex_container::iterator *arg3 = 0 ;
+ StrokeInternal::StrokeVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_StrokeVertexIterator",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Stroke__vertex_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeVertexIterator" "', argument " "1"" of type '" "Stroke::vertex_container::iterator const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeVertexIterator" "', argument " "1"" of type '" "Stroke::vertex_container::iterator const &""'");
+ }
+ arg1 = reinterpret_cast< Stroke::vertex_container::iterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke__vertex_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_StrokeVertexIterator" "', argument " "2"" of type '" "Stroke::vertex_container::iterator const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeVertexIterator" "', argument " "2"" of type '" "Stroke::vertex_container::iterator const &""'");
+ }
+ arg2 = reinterpret_cast< Stroke::vertex_container::iterator * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_Stroke__vertex_container__iterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_StrokeVertexIterator" "', argument " "3"" of type '" "Stroke::vertex_container::iterator const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeVertexIterator" "', argument " "3"" of type '" "Stroke::vertex_container::iterator const &""'");
+ }
+ arg3 = reinterpret_cast< Stroke::vertex_container::iterator * >(argp3);
+ {
+ try {
+ result = (StrokeInternal::StrokeVertexIterator *)new StrokeInternal::StrokeVertexIterator((Stroke::vertex_container::iterator const &)*arg1,(Stroke::vertex_container::iterator const &)*arg2,(Stroke::vertex_container::iterator const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertexIterator(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_StrokeVertexIterator__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_StrokeVertexIterator__SWIG_1(self, args);
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Stroke__vertex_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Stroke__vertex_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_Stroke__vertex_container__iterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_StrokeVertexIterator__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_StrokeVertexIterator'.\n Possible C/C++ prototypes are:\n StrokeInternal::StrokeVertexIterator()\n StrokeInternal::StrokeVertexIterator(StrokeInternal::StrokeVertexIterator const &)\n StrokeInternal::StrokeVertexIterator(Stroke::vertex_container::iterator const &,Stroke::vertex_container::iterator const &,Stroke::vertex_container::iterator const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_StrokeVertexIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_StrokeVertexIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StrokeVertexIterator" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_castToInterface0DIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_castToInterface0DIterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_castToInterface0DIterator" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = ((StrokeInternal::StrokeVertexIterator const *)arg1)->castToInterface0DIterator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getExactTypeName" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = ((StrokeInternal::StrokeVertexIterator const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ StrokeVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getObject",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getObject" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ {
+ StrokeVertex &_result_ref = (arg1)->operator *();
+ result = (StrokeVertex *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ StrokeVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator___deref__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator___deref__" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (StrokeVertex *)(arg1)->operator ->();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_increment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_increment",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_increment" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ (arg1)->increment();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_decrement(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_decrement",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_decrement" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ (arg1)->decrement();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_isBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_isBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_isBegin" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)((StrokeInternal::StrokeVertexIterator const *)arg1)->isBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_isEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_isEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_isEnd" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)((StrokeInternal::StrokeVertexIterator const *)arg1)->isEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Interface0DIteratorNested *arg2 = 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator___eq__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator___eq__" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0DIteratorNested, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeVertexIterator___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeVertexIterator___eq__" "', argument " "2"" of type '" "Interface0DIteratorNested const &""'");
+ }
+ arg2 = reinterpret_cast< Interface0DIteratorNested * >(argp2);
+ {
+ try {
+ result = (bool)((StrokeInternal::StrokeVertexIterator const *)arg1)->operator ==((Interface0DIteratorNested const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_t",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_t" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)((StrokeInternal::StrokeVertexIterator const *)arg1)->t();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_u" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)((StrokeInternal::StrokeVertexIterator const *)arg1)->u();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ StrokeInternal::StrokeVertexIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_copy",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_copy" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (StrokeInternal::StrokeVertexIterator *)((StrokeInternal::StrokeVertexIterator const *)arg1)->copy();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getIt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Stroke::vertex_container::iterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getIt",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getIt" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Stroke::vertex_container::iterator const &_result_ref = (arg1)->getIt();
+ result = (Stroke::vertex_container::iterator *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Stroke__vertex_container__iterator, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_x(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_x" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_y(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_y" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getPoint",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getPoint" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_attribute__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ StrokeAttribute *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_attribute",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_attribute" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ {
+ StrokeAttribute const &_result_ref = (*arg1)->attribute();
+ result = (StrokeAttribute *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_attribute__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ StrokeAttribute *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_attribute",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_attribute" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ {
+ StrokeAttribute &_result_ref = (*arg1)->attribute();
+ result = (StrokeAttribute *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_attribute(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_StrokeVertexIterator_attribute__SWIG_1(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_StrokeVertexIterator_attribute__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'StrokeVertexIterator_attribute'.\n Possible C/C++ prototypes are:\n attribute()\n attribute()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_curvilinearAbscissa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_curvilinearAbscissa",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_curvilinearAbscissa" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)(*arg1)->curvilinearAbscissa();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_strokeLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_strokeLength",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_strokeLength" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)(*arg1)->strokeLength();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetX" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertexIterator_SetX" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ {
+ try {
+ (*arg1)->SetX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetY" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertexIterator_SetY" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ {
+ try {
+ (*arg1)->SetY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real arg2 ;
+ real arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:StrokeVertexIterator_SetPoint",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetPoint" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertexIterator_SetPoint" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "StrokeVertexIterator_SetPoint" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ {
+ try {
+ (*arg1)->SetPoint(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Geometry::Vec2f *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetPoint",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetPoint" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeVertexIterator_SetPoint" "', argument " "2"" of type '" "Geometry::Vec2f const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeVertexIterator_SetPoint" "', argument " "2"" of type '" "Geometry::Vec2f const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2f * >(argp2);
+ {
+ try {
+ (*arg1)->SetPoint((Geometry::Vec2f const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetPoint(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_StrokeVertexIterator_SetPoint__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_StrokeVertexIterator_SetPoint__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'StrokeVertexIterator_SetPoint'.\n Possible C/C++ prototypes are:\n SetPoint(real,real)\n SetPoint(Geometry::Vec2f const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetAttribute(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ StrokeAttribute *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetAttribute",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetAttribute" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_StrokeAttribute, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeVertexIterator_SetAttribute" "', argument " "2"" of type '" "StrokeAttribute const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeVertexIterator_SetAttribute" "', argument " "2"" of type '" "StrokeAttribute const &""'");
+ }
+ arg2 = reinterpret_cast< StrokeAttribute * >(argp2);
+ {
+ try {
+ (*arg1)->SetAttribute((StrokeAttribute const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetCurvilinearAbscissa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetCurvilinearAbscissa",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetCurvilinearAbscissa" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertexIterator_SetCurvilinearAbscissa" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (*arg1)->SetCurvilinearAbscissa(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetStrokeLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetStrokeLength",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetStrokeLength" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertexIterator_SetStrokeLength" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (*arg1)->SetStrokeLength(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getX" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getY" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getZ" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getPoint3D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getPoint3D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getPoint3D" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint3D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getProjectedX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getProjectedX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getProjectedX" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getProjectedY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getProjectedY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getProjectedY" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getProjectedZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getProjectedZ",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getProjectedZ" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->getProjectedZ();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getPoint2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getPoint2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getPoint2D" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getPoint2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Interface0D *arg2 = 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_getFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getFEdge" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Interface0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeVertexIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeVertexIterator_getFEdge" "', argument " "2"" of type '" "Interface0D &""'");
+ }
+ arg2 = reinterpret_cast< Interface0D * >(argp2);
+ {
+ try {
+ result = (FEdge *)(*arg1)->getFEdge(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getId" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_getNature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Nature::VertexNature result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_getNature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_getNature" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (Nature::VertexNature)(*arg1)->getNature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_castToSVertex" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->castToSVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_castToViewVertex" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)(*arg1)->castToViewVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_castToNonTVertex" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)(*arg1)->castToNonTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_castToTVertex" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (TVertex *)(*arg1)->castToTVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_A(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_A",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_A" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->A();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_B(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_B",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_B" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (SVertex *)(*arg1)->B();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_t2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_t2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_t2d" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (float)(*arg1)->t2d();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetA",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetA" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeVertexIterator_SetA" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetA(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ SVertex *arg2 = (SVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetB",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetB" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeVertexIterator_SetB" "', argument " "2"" of type '" "SVertex *""'");
+ }
+ arg2 = reinterpret_cast< SVertex * >(argp2);
+ {
+ try {
+ (*arg1)->SetB(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_SetT2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertexIterator_SetT2d",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_SetT2d" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertexIterator_SetT2d" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (*arg1)->SetT2d(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_fedge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_fedge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_fedge" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (FEdge *)(*arg1)->fedge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_point2d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_point2d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_point2d" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point2d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_point3d(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Geometry::Vec3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_point3d",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_point3d" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Geometry::Vec3r const &_result_ref = (*arg1)->point3d();
+ result = (Geometry::Vec3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VecMat__Vec3Tdouble_t, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_normal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Geometry::Vec3r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_normal",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_normal" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->normal();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3r(static_cast< const Geometry::Vec3r& >(result))), SWIGTYPE_p_VecMat__Vec3Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_shape" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_occluders_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_occluders_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_occluders_begin" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_occluders_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ occluder_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_occluders_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_occluders_end" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->occluders_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new occluder_container::const_iterator(static_cast< const occluder_container::const_iterator& >(result))), SWIGTYPE_p_occluder_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_occluders_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_occluders_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_occluders_empty" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occluders_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_occluders_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_occluders_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_occluders_size" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (int)(*arg1)->occluders_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_occludee(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Polygon3r *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_occludee",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_occludee" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ {
+ Polygon3r const &_result_ref = (*arg1)->occludee();
+ result = (Polygon3r *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Polygon3r, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_occluded_shape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ SShape *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_occluded_shape",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_occluded_shape" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (SShape *)(*arg1)->occluded_shape();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SShape, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_occludee_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_occludee_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_occludee_empty" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (bool)(*arg1)->occludee_empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_z_discontinuity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_z_discontinuity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_z_discontinuity" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->z_discontinuity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_curvatureFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_curvatureFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_curvatureFredo" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (real)(*arg1)->curvatureFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertexIterator_directionFredo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeInternal::StrokeVertexIterator *arg1 = (StrokeInternal::StrokeVertexIterator *) 0 ;
+ Geometry::Vec2d result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertexIterator_directionFredo",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertexIterator_directionFredo" "', argument " "1"" of type '" "StrokeInternal::StrokeVertexIterator const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp1);
+ {
+ try {
+ result = (*arg1)->directionFredo();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2d(static_cast< const Geometry::Vec2d& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *StrokeVertexIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_StrokeAttribute__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_StrokeAttribute")) SWIG_fail;
+ {
+ try {
+ result = (StrokeAttribute *)new StrokeAttribute();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeAttribute, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeAttribute__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = 0 ;
+ StrokeAttribute *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_StrokeAttribute",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_StrokeAttribute, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeAttribute" "', argument " "1"" of type '" "StrokeAttribute const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeAttribute" "', argument " "1"" of type '" "StrokeAttribute const &""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (StrokeAttribute *)new StrokeAttribute((StrokeAttribute const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeAttribute, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeAttribute__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ float arg5 ;
+ float arg6 ;
+ StrokeAttribute *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ float val6 ;
+ int ecode6 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOO:new_StrokeAttribute",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_StrokeAttribute" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_StrokeAttribute" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_StrokeAttribute" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_StrokeAttribute" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_StrokeAttribute" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ ecode6 = SWIG_AsVal_float(obj5, &val6);
+ if (!SWIG_IsOK(ecode6)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "new_StrokeAttribute" "', argument " "6"" of type '" "float""'");
+ }
+ arg6 = static_cast< float >(val6);
+ {
+ try {
+ result = (StrokeAttribute *)new StrokeAttribute(arg1,arg2,arg3,arg4,arg5,arg6);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeAttribute, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeAttribute__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = 0 ;
+ StrokeAttribute *arg2 = 0 ;
+ float arg3 ;
+ StrokeAttribute *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_StrokeAttribute",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_StrokeAttribute, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeAttribute" "', argument " "1"" of type '" "StrokeAttribute const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeAttribute" "', argument " "1"" of type '" "StrokeAttribute const &""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_StrokeAttribute, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_StrokeAttribute" "', argument " "2"" of type '" "StrokeAttribute const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeAttribute" "', argument " "2"" of type '" "StrokeAttribute const &""'");
+ }
+ arg2 = reinterpret_cast< StrokeAttribute * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_StrokeAttribute" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (StrokeAttribute *)new StrokeAttribute((StrokeAttribute const &)*arg1,(StrokeAttribute const &)*arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeAttribute, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeAttribute(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[7];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_StrokeAttribute__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_StrokeAttribute, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_StrokeAttribute__SWIG_1(self, args);
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_StrokeAttribute, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_StrokeAttribute, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_StrokeAttribute__SWIG_3(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 6) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[5], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_StrokeAttribute__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_StrokeAttribute'.\n Possible C/C++ prototypes are:\n StrokeAttribute()\n StrokeAttribute(StrokeAttribute const &)\n StrokeAttribute(float,float,float,float,float,float)\n StrokeAttribute(StrokeAttribute const &,StrokeAttribute const &,float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_StrokeAttribute(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_StrokeAttribute",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StrokeAttribute" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getColor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getColor",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getColor" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (float *)((StrokeAttribute const *)arg1)->getColor();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getColorR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getColorR",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getColorR" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (float)((StrokeAttribute const *)arg1)->getColorR();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getColorG(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getColorG",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getColorG" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (float)((StrokeAttribute const *)arg1)->getColorG();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getColorB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getColorB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getColorB" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (float)((StrokeAttribute const *)arg1)->getColorB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getColorRGB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getColorRGB",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getColorRGB" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = ((StrokeAttribute const *)arg1)->getColorRGB();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getAlpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getAlpha",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getAlpha" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (float)((StrokeAttribute const *)arg1)->getAlpha();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getThickness(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getThickness",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getThickness" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (float *)((StrokeAttribute const *)arg1)->getThickness();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_float, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getThicknessR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getThicknessR",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getThicknessR" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (float)((StrokeAttribute const *)arg1)->getThicknessR();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getThicknessL(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getThicknessL",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getThicknessL" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (float)((StrokeAttribute const *)arg1)->getThicknessL();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getThicknessRL(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_getThicknessRL",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getThicknessRL" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = ((StrokeAttribute const *)arg1)->getThicknessRL();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_isVisible(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeAttribute_isVisible",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_isVisible" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ {
+ try {
+ result = (bool)((StrokeAttribute const *)arg1)->isVisible();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getAttributeReal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_getAttributeReal",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getAttributeReal" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_getAttributeReal" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ {
+ try {
+ result = (float)((StrokeAttribute const *)arg1)->getAttributeReal((char const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getAttributeVec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_getAttributeVec2f",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getAttributeVec2f" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_getAttributeVec2f" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ {
+ try {
+ result = ((StrokeAttribute const *)arg1)->getAttributeVec2f((char const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_getAttributeVec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ Geometry::Vec3f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_getAttributeVec3f",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_getAttributeVec3f" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_getAttributeVec3f" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ {
+ try {
+ result = ((StrokeAttribute const *)arg1)->getAttributeVec3f((char const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec3f(static_cast< const Geometry::Vec3f& >(result))), SWIGTYPE_p_VecMat__Vec3Tfloat_t, SWIG_POINTER_OWN | 0 );
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_isAttributeAvailableReal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_isAttributeAvailableReal",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_isAttributeAvailableReal" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_isAttributeAvailableReal" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ {
+ try {
+ result = (bool)((StrokeAttribute const *)arg1)->isAttributeAvailableReal((char const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_isAttributeAvailableVec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_isAttributeAvailableVec2f",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_isAttributeAvailableVec2f" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_isAttributeAvailableVec2f" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ {
+ try {
+ result = (bool)((StrokeAttribute const *)arg1)->isAttributeAvailableVec2f((char const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_isAttributeAvailableVec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_isAttributeAvailableVec3f",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_isAttributeAvailableVec3f" "', argument " "1"" of type '" "StrokeAttribute const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_isAttributeAvailableVec3f" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ {
+ try {
+ result = (bool)((StrokeAttribute const *)arg1)->isAttributeAvailableVec3f((char const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setColor__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:StrokeAttribute_setColor",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_setColor" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeAttribute_setColor" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "StrokeAttribute_setColor" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "StrokeAttribute_setColor" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ {
+ try {
+ (arg1)->setColor(arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setColor__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ Geometry::Vec3f *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_setColor",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_setColor" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_setColor" "', argument " "2"" of type '" "Geometry::Vec3f const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeAttribute_setColor" "', argument " "2"" of type '" "Geometry::Vec3f const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec3f * >(argp2);
+ {
+ try {
+ (arg1)->setColor((Geometry::Vec3f const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setColor(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeAttribute, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_StrokeAttribute_setColor__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeAttribute, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_StrokeAttribute_setColor__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'StrokeAttribute_setColor'.\n Possible C/C++ prototypes are:\n setColor(float,float,float)\n setColor(Geometry::Vec3f const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setAlpha(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_setAlpha",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_setAlpha" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeAttribute_setAlpha" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (arg1)->setAlpha(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setThickness__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ float arg2 ;
+ float arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:StrokeAttribute_setThickness",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_setThickness" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeAttribute_setThickness" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "StrokeAttribute_setThickness" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ (arg1)->setThickness(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setThickness__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ Geometry::Vec2f *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_setThickness",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_setThickness" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_setThickness" "', argument " "2"" of type '" "Geometry::Vec2f const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeAttribute_setThickness" "', argument " "2"" of type '" "Geometry::Vec2f const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2f * >(argp2);
+ {
+ try {
+ (arg1)->setThickness((Geometry::Vec2f const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setThickness(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeAttribute, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_StrokeAttribute_setThickness__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeAttribute, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_StrokeAttribute_setThickness__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'StrokeAttribute_setThickness'.\n Possible C/C++ prototypes are:\n setThickness(float,float)\n setThickness(Geometry::Vec2f const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_SetVisible(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ bool arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeAttribute_SetVisible",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_SetVisible" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeAttribute_SetVisible" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ (arg1)->SetVisible(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setAttributeReal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ float arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:StrokeAttribute_setAttributeReal",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_setAttributeReal" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_setAttributeReal" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "StrokeAttribute_setAttributeReal" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ (arg1)->setAttributeReal((char const *)arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setAttributeVec2f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ Geometry::Vec2f *arg3 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:StrokeAttribute_setAttributeVec2f",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_setAttributeVec2f" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_setAttributeVec2f" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "StrokeAttribute_setAttributeVec2f" "', argument " "3"" of type '" "Geometry::Vec2f const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeAttribute_setAttributeVec2f" "', argument " "3"" of type '" "Geometry::Vec2f const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec2f * >(argp3);
+ {
+ try {
+ (arg1)->setAttributeVec2f((char const *)arg2,(Geometry::Vec2f const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeAttribute_setAttributeVec3f(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeAttribute *arg1 = (StrokeAttribute *) 0 ;
+ char *arg2 = (char *) 0 ;
+ Geometry::Vec3f *arg3 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:StrokeAttribute_setAttributeVec3f",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeAttribute_setAttributeVec3f" "', argument " "1"" of type '" "StrokeAttribute *""'");
+ }
+ arg1 = reinterpret_cast< StrokeAttribute * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeAttribute_setAttributeVec3f" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec3Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "StrokeAttribute_setAttributeVec3f" "', argument " "3"" of type '" "Geometry::Vec3f const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeAttribute_setAttributeVec3f" "', argument " "3"" of type '" "Geometry::Vec3f const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec3f * >(argp3);
+ {
+ try {
+ (arg1)->setAttributeVec3f((char const *)arg2,(Geometry::Vec3f const &)*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *StrokeAttribute_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeAttribute, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_getExactTypeName" "', argument " "1"" of type '" "StrokeVertex const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ result = ((StrokeVertex const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertex__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_StrokeVertex")) SWIG_fail;
+ {
+ try {
+ result = (StrokeVertex *)new StrokeVertex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertex__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = 0 ;
+ StrokeVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_StrokeVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_StrokeVertex, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeVertex" "', argument " "1"" of type '" "StrokeVertex const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeVertex" "', argument " "1"" of type '" "StrokeVertex const &""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ result = (StrokeVertex *)new StrokeVertex((StrokeVertex const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertex__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ StrokeVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_StrokeVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ {
+ try {
+ result = (StrokeVertex *)new StrokeVertex(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertex__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CurvePoint *arg1 = (CurvePoint *) 0 ;
+ StrokeVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_StrokeVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CurvePoint, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeVertex" "', argument " "1"" of type '" "CurvePoint *""'");
+ }
+ arg1 = reinterpret_cast< CurvePoint * >(argp1);
+ {
+ try {
+ result = (StrokeVertex *)new StrokeVertex(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertex__SWIG_4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ StrokeVertex *arg2 = (StrokeVertex *) 0 ;
+ float arg3 ;
+ StrokeVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_StrokeVertex",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeVertex" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_StrokeVertex" "', argument " "2"" of type '" "StrokeVertex *""'");
+ }
+ arg2 = reinterpret_cast< StrokeVertex * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_StrokeVertex" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (StrokeVertex *)new StrokeVertex(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertex__SWIG_5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SVertex *arg1 = (SVertex *) 0 ;
+ StrokeAttribute *arg2 = 0 ;
+ StrokeVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_StrokeVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrokeVertex" "', argument " "1"" of type '" "SVertex *""'");
+ }
+ arg1 = reinterpret_cast< SVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_StrokeAttribute, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_StrokeVertex" "', argument " "2"" of type '" "StrokeAttribute const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_StrokeVertex" "', argument " "2"" of type '" "StrokeAttribute const &""'");
+ }
+ arg2 = reinterpret_cast< StrokeAttribute * >(argp2);
+ {
+ try {
+ result = (StrokeVertex *)new StrokeVertex(arg1,(StrokeAttribute const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeVertex(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_StrokeVertex__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_StrokeVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_StrokeVertex__SWIG_1(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_StrokeVertex__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_CurvePoint, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_StrokeVertex__SWIG_3(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_StrokeAttribute, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_StrokeVertex__SWIG_5(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_StrokeVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_StrokeVertex__SWIG_4(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_StrokeVertex'.\n Possible C/C++ prototypes are:\n StrokeVertex()\n StrokeVertex(StrokeVertex const &)\n StrokeVertex(SVertex *)\n StrokeVertex(CurvePoint *)\n StrokeVertex(StrokeVertex *,StrokeVertex *,float)\n StrokeVertex(SVertex *,StrokeAttribute const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_StrokeVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_StrokeVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StrokeVertex" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_x(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_x",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_x" "', argument " "1"" of type '" "StrokeVertex const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ result = (real)((StrokeVertex const *)arg1)->x();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_y(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_y",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_y" "', argument " "1"" of type '" "StrokeVertex const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ result = (real)((StrokeVertex const *)arg1)->y();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_getPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ Geometry::Vec2f result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_getPoint",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_getPoint" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ result = (arg1)->getPoint();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2f(static_cast< const Geometry::Vec2f& >(result))), SWIGTYPE_p_VecMat__Vec2Tfloat_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_attribute__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ StrokeAttribute *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_attribute",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_attribute" "', argument " "1"" of type '" "StrokeVertex const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ {
+ StrokeAttribute const &_result_ref = ((StrokeVertex const *)arg1)->attribute();
+ result = (StrokeAttribute *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_attribute__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ StrokeAttribute *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_attribute",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_attribute" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ {
+ StrokeAttribute &_result_ref = (arg1)->attribute();
+ result = (StrokeAttribute *) &_result_ref;
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeAttribute, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_attribute(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_StrokeVertex_attribute__SWIG_1(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_StrokeVertex_attribute__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'StrokeVertex_attribute'.\n Possible C/C++ prototypes are:\n attribute()\n attribute()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_curvilinearAbscissa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_curvilinearAbscissa",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_curvilinearAbscissa" "', argument " "1"" of type '" "StrokeVertex const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ result = (float)((StrokeVertex const *)arg1)->curvilinearAbscissa();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_strokeLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_strokeLength",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_strokeLength" "', argument " "1"" of type '" "StrokeVertex const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ result = (float)((StrokeVertex const *)arg1)->strokeLength();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_u(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeVertex_u",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_u" "', argument " "1"" of type '" "StrokeVertex const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ {
+ try {
+ result = (float)((StrokeVertex const *)arg1)->u();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_SetX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ real arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertex_SetX",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_SetX" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertex_SetX" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ {
+ try {
+ (arg1)->SetX(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_SetY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ real arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertex_SetY",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_SetY" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertex_SetY" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ {
+ try {
+ (arg1)->SetY(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_SetPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ real arg2 ;
+ real arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:StrokeVertex_SetPoint",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_SetPoint" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertex_SetPoint" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "StrokeVertex_SetPoint" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ {
+ try {
+ (arg1)->SetPoint(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_SetPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ Geometry::Vec2f *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertex_SetPoint",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_SetPoint" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeVertex_SetPoint" "', argument " "2"" of type '" "Geometry::Vec2f const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeVertex_SetPoint" "', argument " "2"" of type '" "Geometry::Vec2f const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2f * >(argp2);
+ {
+ try {
+ (arg1)->SetPoint((Geometry::Vec2f const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_SetPoint(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_StrokeVertex_SetPoint__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_StrokeVertex, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_StrokeVertex_SetPoint__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'StrokeVertex_SetPoint'.\n Possible C/C++ prototypes are:\n SetPoint(real,real)\n SetPoint(Geometry::Vec2f const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_SetAttribute(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ StrokeAttribute *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertex_SetAttribute",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_SetAttribute" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_StrokeAttribute, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeVertex_SetAttribute" "', argument " "2"" of type '" "StrokeAttribute const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeVertex_SetAttribute" "', argument " "2"" of type '" "StrokeAttribute const &""'");
+ }
+ arg2 = reinterpret_cast< StrokeAttribute * >(argp2);
+ {
+ try {
+ (arg1)->SetAttribute((StrokeAttribute const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_SetCurvilinearAbscissa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertex_SetCurvilinearAbscissa",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_SetCurvilinearAbscissa" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertex_SetCurvilinearAbscissa" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (arg1)->SetCurvilinearAbscissa(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeVertex_SetStrokeLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeVertex *arg1 = (StrokeVertex *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeVertex_SetStrokeLength",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeVertex_SetStrokeLength" "', argument " "1"" of type '" "StrokeVertex *""'");
+ }
+ arg1 = reinterpret_cast< StrokeVertex * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "StrokeVertex_SetStrokeLength" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (arg1)->SetStrokeLength(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *StrokeVertex_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeVertex, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Stroke_getExactTypeName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getExactTypeName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getExactTypeName" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = ((Stroke const *)arg1)->getExactTypeName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Id result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getId" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = ((Stroke const *)arg1)->getId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Id(static_cast< const Id& >(result))), SWIGTYPE_p_Id, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Stroke__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_Stroke")) SWIG_fail;
+ {
+ try {
+ result = (Stroke *)new Stroke();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Stroke, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Stroke__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = 0 ;
+ Stroke *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Stroke",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Stroke, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Stroke" "', argument " "1"" of type '" "Stroke const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Stroke" "', argument " "1"" of type '" "Stroke const &""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (Stroke *)new Stroke((Stroke const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Stroke, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_Stroke(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_Stroke__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_Stroke__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Stroke'.\n Possible C/C++ prototypes are:\n Stroke()\n Stroke(Stroke const &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Stroke(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Stroke",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Stroke" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_ComputeSampling(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ int arg2 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_ComputeSampling",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_ComputeSampling" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_ComputeSampling" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ {
+ try {
+ result = (float)(arg1)->ComputeSampling(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_Resample__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_Resample",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_Resample" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_Resample" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ {
+ try {
+ (arg1)->Resample(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_Resample__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_Resample",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_Resample" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_Resample" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (arg1)->Resample(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_Resample(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Stroke_Resample__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Stroke_Resample__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Stroke_Resample'.\n Possible C/C++ prototypes are:\n Resample(int)\n Resample(float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_RemoveVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ StrokeVertex *arg2 = (StrokeVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_RemoveVertex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_RemoveVertex" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_RemoveVertex" "', argument " "2"" of type '" "StrokeVertex *""'");
+ }
+ arg2 = reinterpret_cast< StrokeVertex * >(argp2);
+ {
+ try {
+ (arg1)->RemoveVertex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_InsertVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ StrokeVertex *arg2 = (StrokeVertex *) 0 ;
+ StrokeInternal::StrokeVertexIterator arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Stroke_InsertVertex",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_InsertVertex" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_InsertVertex" "', argument " "2"" of type '" "StrokeVertex *""'");
+ }
+ arg2 = reinterpret_cast< StrokeVertex * >(argp2);
+ {
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Stroke_InsertVertex" "', argument " "3"" of type '" "StrokeInternal::StrokeVertexIterator""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Stroke_InsertVertex" "', argument " "3"" of type '" "StrokeInternal::StrokeVertexIterator""'");
+ } else {
+ StrokeInternal::StrokeVertexIterator * temp = reinterpret_cast< StrokeInternal::StrokeVertexIterator * >(argp3);
+ arg3 = *temp;
+ if (SWIG_IsNewObj(res3)) delete temp;
+ }
+ }
+ {
+ try {
+ (arg1)->InsertVertex(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_Render(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ StrokeRenderer *arg2 = (StrokeRenderer *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_Render",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_Render" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeRenderer, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_Render" "', argument " "2"" of type '" "StrokeRenderer const *""'");
+ }
+ arg2 = reinterpret_cast< StrokeRenderer * >(argp2);
+ {
+ try {
+ (arg1)->Render((StrokeRenderer const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_RenderBasic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ StrokeRenderer *arg2 = (StrokeRenderer *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_RenderBasic",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_RenderBasic" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeRenderer, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_RenderBasic" "', argument " "2"" of type '" "StrokeRenderer const *""'");
+ }
+ arg2 = reinterpret_cast< StrokeRenderer * >(argp2);
+ {
+ try {
+ (arg1)->RenderBasic((StrokeRenderer const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getLength2D(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getLength2D",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getLength2D" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (real)((Stroke const *)arg1)->getLength2D();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getMediumType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Stroke::MediumType result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getMediumType",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getMediumType" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (Stroke::MediumType)((Stroke const *)arg1)->getMediumType();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getTextureId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getTextureId",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getTextureId" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (unsigned int)(arg1)->getTextureId();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_hasTips(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_hasTips",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_hasTips" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (bool)((Stroke const *)arg1)->hasTips();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_vertices_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_vertices_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_vertices_size" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (int)((Stroke const *)arg1)->vertices_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_viewedges_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Stroke::viewedge_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_viewedges_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_viewedges_begin" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = ((Stroke const *)arg1)->viewedges_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Stroke::viewedge_container::const_iterator(static_cast< const Stroke::viewedge_container::const_iterator& >(result))), SWIGTYPE_p_Stroke__viewedge_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_viewedges_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Stroke::viewedge_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_viewedges_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_viewedges_begin" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (arg1)->viewedges_begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Stroke::viewedge_container::iterator(static_cast< const Stroke::viewedge_container::iterator& >(result))), SWIGTYPE_p_Stroke__viewedge_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_viewedges_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_viewedges_begin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_viewedges_begin__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Stroke_viewedges_begin'.\n Possible C/C++ prototypes are:\n viewedges_begin()\n viewedges_begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_viewedges_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Stroke::viewedge_container::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_viewedges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_viewedges_end" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = ((Stroke const *)arg1)->viewedges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Stroke::viewedge_container::const_iterator(static_cast< const Stroke::viewedge_container::const_iterator& >(result))), SWIGTYPE_p_Stroke__viewedge_container__const_iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_viewedges_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Stroke::viewedge_container::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_viewedges_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_viewedges_end" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (arg1)->viewedges_end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Stroke::viewedge_container::iterator(static_cast< const Stroke::viewedge_container::iterator& >(result))), SWIGTYPE_p_Stroke__viewedge_container__iterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_viewedges_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_viewedges_end__SWIG_1(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_viewedges_end__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Stroke_viewedges_end'.\n Possible C/C++ prototypes are:\n viewedges_end()\n viewedges_end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_viewedges_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_viewedges_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_viewedges_size" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (int)((Stroke const *)arg1)->viewedges_size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getBeginningOrientation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Geometry::Vec2r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getBeginningOrientation",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getBeginningOrientation" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = ((Stroke const *)arg1)->getBeginningOrientation();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2r(static_cast< const Geometry::Vec2r& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getBeginningOrientationX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getBeginningOrientationX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getBeginningOrientationX" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (real)((Stroke const *)arg1)->getBeginningOrientationX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getBeginningOrientationY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getBeginningOrientationY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getBeginningOrientationY" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (real)((Stroke const *)arg1)->getBeginningOrientationY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getEndingOrientation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Geometry::Vec2r result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getEndingOrientation",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getEndingOrientation" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = ((Stroke const *)arg1)->getEndingOrientation();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Geometry::Vec2r(static_cast< const Geometry::Vec2r& >(result))), SWIGTYPE_p_VecMat__Vec2Tdouble_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getEndingOrientationX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getEndingOrientationX",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getEndingOrientationX" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (real)((Stroke const *)arg1)->getEndingOrientationX();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_getEndingOrientationY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ real result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_getEndingOrientationY",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_getEndingOrientationY" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (real)((Stroke const *)arg1)->getEndingOrientationY();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_double(static_cast< double >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Id *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_SetId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetId" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Id, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Stroke_SetId" "', argument " "2"" of type '" "Id const &""'");
+ }
+ arg2 = reinterpret_cast< Id * >(argp2);
+ {
+ try {
+ (arg1)->SetId((Id const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_SetLength",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetLength" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_SetLength" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ (arg1)->SetLength(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetMediumType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Stroke::MediumType arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_SetMediumType",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetMediumType" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_SetMediumType" "', argument " "2"" of type '" "Stroke::MediumType""'");
+ }
+ arg2 = static_cast< Stroke::MediumType >(val2);
+ {
+ try {
+ (arg1)->SetMediumType(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetTextureId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_SetTextureId",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetTextureId" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_SetTextureId" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (arg1)->SetTextureId(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetTips(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ bool arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_SetTips",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetTips" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_SetTips" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ (arg1)->SetTips(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ StrokeVertex *arg2 = (StrokeVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_push_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_push_back" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_push_back" "', argument " "2"" of type '" "StrokeVertex *""'");
+ }
+ arg2 = reinterpret_cast< StrokeVertex * >(argp2);
+ {
+ try {
+ (arg1)->push_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_push_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ StrokeVertex *arg2 = (StrokeVertex *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_push_front",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_push_front" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_push_front" "', argument " "2"" of type '" "StrokeVertex *""'");
+ }
+ arg2 = reinterpret_cast< StrokeVertex * >(argp2);
+ {
+ try {
+ (arg1)->push_front(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_AddViewEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ ViewEdge *arg2 = (ViewEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_AddViewEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_AddViewEdge" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ViewEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_AddViewEdge" "', argument " "2"" of type '" "ViewEdge *""'");
+ }
+ arg2 = reinterpret_cast< ViewEdge * >(argp2);
+ {
+ try {
+ (arg1)->AddViewEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetBeginningOrientation__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Geometry::Vec2r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_SetBeginningOrientation",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetBeginningOrientation" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_SetBeginningOrientation" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Stroke_SetBeginningOrientation" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ {
+ try {
+ (arg1)->SetBeginningOrientation((Geometry::Vec2r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetBeginningOrientation__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ real arg2 ;
+ real arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Stroke_SetBeginningOrientation",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetBeginningOrientation" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_SetBeginningOrientation" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Stroke_SetBeginningOrientation" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ {
+ try {
+ (arg1)->SetBeginningOrientation(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetBeginningOrientation(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_SetBeginningOrientation__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Stroke_SetBeginningOrientation__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Stroke_SetBeginningOrientation'.\n Possible C/C++ prototypes are:\n SetBeginningOrientation(Geometry::Vec2r const &)\n SetBeginningOrientation(real,real)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetEndingOrientation__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Geometry::Vec2r *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_SetEndingOrientation",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetEndingOrientation" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Stroke_SetEndingOrientation" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Stroke_SetEndingOrientation" "', argument " "2"" of type '" "Geometry::Vec2r const &""'");
+ }
+ arg2 = reinterpret_cast< Geometry::Vec2r * >(argp2);
+ {
+ try {
+ (arg1)->SetEndingOrientation((Geometry::Vec2r const &)*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetEndingOrientation__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ real arg2 ;
+ real arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Stroke_SetEndingOrientation",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_SetEndingOrientation" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_SetEndingOrientation" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Stroke_SetEndingOrientation" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ {
+ try {
+ (arg1)->SetEndingOrientation(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_SetEndingOrientation(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_SetEndingOrientation__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_double(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Stroke_SetEndingOrientation__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Stroke_SetEndingOrientation'.\n Possible C/C++ prototypes are:\n SetEndingOrientation(Geometry::Vec2r const &)\n SetEndingOrientation(real,real)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_strokeVerticesBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ float arg2 ;
+ StrokeInternal::StrokeVertexIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_strokeVerticesBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_strokeVerticesBegin" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_strokeVerticesBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->strokeVerticesBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new StrokeInternal::StrokeVertexIterator(static_cast< const StrokeInternal::StrokeVertexIterator& >(result))), SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_strokeVerticesBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ StrokeInternal::StrokeVertexIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_strokeVerticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_strokeVerticesBegin" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (arg1)->strokeVerticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new StrokeInternal::StrokeVertexIterator(static_cast< const StrokeInternal::StrokeVertexIterator& >(result))), SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_strokeVerticesBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_strokeVerticesBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Stroke_strokeVerticesBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Stroke_strokeVerticesBegin'.\n Possible C/C++ prototypes are:\n strokeVerticesBegin(float)\n strokeVerticesBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_strokeVerticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ StrokeInternal::StrokeVertexIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_strokeVerticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_strokeVerticesEnd" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (arg1)->strokeVerticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new StrokeInternal::StrokeVertexIterator(static_cast< const StrokeInternal::StrokeVertexIterator& >(result))), SWIGTYPE_p_StrokeInternal__StrokeVertexIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_strokeVerticesSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ unsigned int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_strokeVerticesSize",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_strokeVerticesSize" "', argument " "1"" of type '" "Stroke const *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (unsigned int)((Stroke const *)arg1)->strokeVerticesSize();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_verticesBegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_verticesBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_verticesBegin" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_verticesEnd(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_verticesEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_verticesEnd" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (arg1)->verticesEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_pointsBegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_pointsBegin",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_pointsBegin" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_pointsBegin" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsBegin(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_pointsBegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_pointsBegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_pointsBegin" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsBegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_pointsBegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_pointsBegin__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Stroke_pointsBegin__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Stroke_pointsBegin'.\n Possible C/C++ prototypes are:\n pointsBegin(float)\n pointsBegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_pointsEnd__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ float arg2 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Stroke_pointsEnd",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_pointsEnd" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Stroke_pointsEnd" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (arg1)->pointsEnd(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_pointsEnd__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = (Stroke *) 0 ;
+ Interface0DIterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Stroke_pointsEnd",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Stroke_pointsEnd" "', argument " "1"" of type '" "Stroke *""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (arg1)->pointsEnd();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new Interface0DIterator(static_cast< const Interface0DIterator& >(result))), SWIGTYPE_p_Interface0DIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Stroke_pointsEnd(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Stroke_pointsEnd__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Stroke, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Stroke_pointsEnd__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Stroke_pointsEnd'.\n Possible C/C++ prototypes are:\n pointsEnd(float)\n pointsEnd()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Stroke_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Stroke, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ PyObject **arg2 = (PyObject **) 0 ;
+ swig::PySwigIterator *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ arg2 = &obj0;
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_iterator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_iterator" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (swig::PySwigIterator *)std_vector_Sl_StrokeShader_Sm__Sg__iterator(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer___nonzero__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer___nonzero__" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (bool)std_vector_Sl_StrokeShader_Sm__Sg____nonzero__((std::vector<StrokeShader * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer___len__",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer___len__" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = std_vector_Sl_StrokeShader_Sm__Sg____len__((std::vector<StrokeShader * > const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_pop",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_pop" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ try {
+ result = (std::vector<StrokeShader * >::value_type)std_vector_Sl_StrokeShader_Sm__Sg__pop(arg1);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::difference_type arg2 ;
+ std::vector<StrokeShader * >::difference_type arg3 ;
+ std::vector<StrokeShader *,std::allocator<StrokeShader * > > *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ShadersContainer___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer___getslice__" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer___getslice__" "', argument " "2"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ShadersContainer___getslice__" "', argument " "3"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<StrokeShader * >::difference_type >(val3);
+ {
+ try {
+ try {
+ result = (std::vector<StrokeShader *,std::allocator<StrokeShader * > > *)std_vector_Sl_StrokeShader_Sm__Sg____getslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::difference_type arg2 ;
+ std::vector<StrokeShader * >::difference_type arg3 ;
+ std::vector<StrokeShader *,std::allocator<StrokeShader * > > *arg4 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ int res4 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ShadersContainer___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer___setslice__" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer___setslice__" "', argument " "2"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ShadersContainer___setslice__" "', argument " "3"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<StrokeShader * >::difference_type >(val3);
+ {
+ std::vector<StrokeShader*,std::allocator<StrokeShader * > > *ptr = (std::vector<StrokeShader*,std::allocator<StrokeShader * > > *)0;
+ res4 = swig::asptr(obj3, &ptr);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ShadersContainer___setslice__" "', argument " "4"" of type '" "std::vector<StrokeShader *,std::allocator<StrokeShader * > > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ShadersContainer___setslice__" "', argument " "4"" of type '" "std::vector<StrokeShader *,std::allocator<StrokeShader * > > const &""'");
+ }
+ arg4 = ptr;
+ }
+ {
+ try {
+ try {
+ std_vector_Sl_StrokeShader_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<StrokeShader *,std::allocator<StrokeShader * > > const &)*arg4);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+ catch(std::invalid_argument &_e) {
+ SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res4)) delete arg4;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::difference_type arg2 ;
+ std::vector<StrokeShader * >::difference_type arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ ptrdiff_t val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ShadersContainer___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer___delslice__" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer___delslice__" "', argument " "2"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::difference_type >(val2);
+ ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ShadersContainer___delslice__" "', argument " "3"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg3 = static_cast< std::vector<StrokeShader * >::difference_type >(val3);
+ {
+ try {
+ try {
+ std_vector_Sl_StrokeShader_Sm__Sg____delslice__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::difference_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShadersContainer___delitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer___delitem__" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer___delitem__" "', argument " "2"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::difference_type >(val2);
+ {
+ try {
+ try {
+ std_vector_Sl_StrokeShader_Sm__Sg____delitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::difference_type arg2 ;
+ std::vector<StrokeShader * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShadersContainer___getitem__",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer___getitem__" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer___getitem__" "', argument " "2"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::difference_type >(val2);
+ {
+ try {
+ try {
+ result = (std::vector<StrokeShader * >::value_type)std_vector_Sl_StrokeShader_Sm__Sg____getitem__(arg1,arg2);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::difference_type arg2 ;
+ std::vector<StrokeShader * >::value_type arg3 = (std::vector<StrokeShader * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ ptrdiff_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ShadersContainer___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer___setitem__" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer___setitem__" "', argument " "2"" of type '" "std::vector<StrokeShader * >::difference_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::difference_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ShadersContainer___setitem__" "', argument " "3"" of type '" "std::vector<StrokeShader * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<StrokeShader * >::value_type >(argp3);
+ {
+ try {
+ try {
+ std_vector_Sl_StrokeShader_Sm__Sg____setitem__(arg1,arg2,arg3);
+ }
+ catch(std::out_of_range &_e) {
+ SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::value_type arg2 = (std::vector<StrokeShader * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShadersContainer_append",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_append" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ShadersContainer_append" "', argument " "2"" of type '" "std::vector<StrokeShader * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<StrokeShader * >::value_type >(argp2);
+ {
+ try {
+ std_vector_Sl_StrokeShader_Sm__Sg__append(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ShadersContainer__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ShadersContainer")) SWIG_fail;
+ {
+ try {
+ result = (std::vector<StrokeShader * > *)new std::vector<StrokeShader * >();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ShadersContainer__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = 0 ;
+ std::vector<StrokeShader * > *result = 0 ;
+ int res1 = SWIG_OLDOBJ ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ShadersContainer",&obj0)) SWIG_fail;
+ {
+ std::vector<StrokeShader*,std::allocator<StrokeShader * > > *ptr = (std::vector<StrokeShader*,std::allocator<StrokeShader * > > *)0;
+ res1 = swig::asptr(obj0, &ptr);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ShadersContainer" "', argument " "1"" of type '" "std::vector<StrokeShader * > const &""'");
+ }
+ if (!ptr) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ShadersContainer" "', argument " "1"" of type '" "std::vector<StrokeShader * > const &""'");
+ }
+ arg1 = ptr;
+ }
+ {
+ try {
+ result = (std::vector<StrokeShader * > *)new std::vector<StrokeShader * >((std::vector<StrokeShader * > const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, SWIG_POINTER_NEW | 0 );
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return resultobj;
+fail:
+ if (SWIG_IsNewObj(res1)) delete arg1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_empty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_empty" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (bool)((std::vector<StrokeShader * > const *)arg1)->empty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_size",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_size" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<StrokeShader * > const *)arg1)->size();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_clear",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_clear" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ (arg1)->clear();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShadersContainer_swap",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_swap" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ShadersContainer_swap" "', argument " "2"" of type '" "std::vector<StrokeShader * > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ShadersContainer_swap" "', argument " "2"" of type '" "std::vector<StrokeShader * > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<StrokeShader * > * >(argp2);
+ {
+ try {
+ (arg1)->swap(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ SwigValueWrapper<std::allocator<StrokeShader * > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_get_allocator",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_get_allocator" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<StrokeShader * > const *)arg1)->get_allocator();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new std::vector<StrokeShader * >::allocator_type(static_cast< const std::vector<StrokeShader * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__allocator_type, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_begin" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_begin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_begin" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<StrokeShader * > const *)arg1)->begin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_begin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_begin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_begin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ShadersContainer_begin'.\n Possible C/C++ prototypes are:\n begin()\n begin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_end" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::const_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_end",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_end" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<StrokeShader * > const *)arg1)->end();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::const_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_end(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_end__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_end__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ShadersContainer_end'.\n Possible C/C++ prototypes are:\n end()\n end()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_rbegin" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_rbegin",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_rbegin" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<StrokeShader * > const *)arg1)->rbegin();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_rbegin(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_rbegin__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_rbegin__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ShadersContainer_rbegin'.\n Possible C/C++ prototypes are:\n rbegin()\n rbegin()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_rend" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::const_reverse_iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_rend",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_rend" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<StrokeShader * > const *)arg1)->rend();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::const_reverse_iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_rend(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_rend__SWIG_0(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_rend__SWIG_1(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ShadersContainer_rend'.\n Possible C/C++ prototypes are:\n rend()\n rend()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ShadersContainer__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * >::size_type arg1 ;
+ std::vector<StrokeShader * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ShadersContainer",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ShadersContainer" "', argument " "1"" of type '" "std::vector<StrokeShader * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<StrokeShader * >::size_type >(val1);
+ {
+ try {
+ result = (std::vector<StrokeShader * > *)new std::vector<StrokeShader * >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_pop_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_pop_back" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ (arg1)->pop_back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShadersContainer_resize",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_resize" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer_resize" "', argument " "2"" of type '" "std::vector<StrokeShader * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::size_type >(val2);
+ {
+ try {
+ (arg1)->resize(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::iterator arg2 ;
+ std::vector<StrokeShader * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShadersContainer_erase",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_erase" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_erase" "', argument " "2"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_erase" "', argument " "2"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::iterator arg2 ;
+ std::vector<StrokeShader * >::iterator arg3 ;
+ std::vector<StrokeShader * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ swig::PySwigIterator *iter3 = 0 ;
+ int res3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ShadersContainer_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_erase" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_erase" "', argument " "2"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_erase" "', argument " "2"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res3) || !iter3) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_erase" "', argument " "3"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter3);
+ if (iter_t) {
+ arg3 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_erase" "', argument " "3"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ }
+ }
+ {
+ try {
+ result = (arg1)->erase(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_erase(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_ShadersContainer_erase__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter) != 0));
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter) != 0));
+ if (_v) {
+ return _wrap_ShadersContainer_erase__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ShadersContainer_erase'.\n Possible C/C++ prototypes are:\n erase(std::vector<StrokeShader * >::iterator)\n erase(std::vector<StrokeShader * >::iterator,std::vector<StrokeShader * >::iterator)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ShadersContainer__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * >::size_type arg1 ;
+ std::vector<StrokeShader * >::value_type arg2 = (std::vector<StrokeShader * >::value_type) 0 ;
+ std::vector<StrokeShader * > *result = 0 ;
+ size_t val1 ;
+ int ecode1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ShadersContainer",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ShadersContainer" "', argument " "1"" of type '" "std::vector<StrokeShader * >::size_type""'");
+ }
+ arg1 = static_cast< std::vector<StrokeShader * >::size_type >(val1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_ShadersContainer" "', argument " "2"" of type '" "std::vector<StrokeShader * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<StrokeShader * >::value_type >(argp2);
+ {
+ try {
+ result = (std::vector<StrokeShader * > *)new std::vector<StrokeShader * >(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ShadersContainer(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ShadersContainer__SWIG_0(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ShadersContainer__SWIG_2(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ShadersContainer__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_size_t(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ShadersContainer__SWIG_3(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ShadersContainer'.\n Possible C/C++ prototypes are:\n std::vector<(p.StrokeShader)>()\n std::vector<(p.StrokeShader)>(std::vector<StrokeShader * > const &)\n std::vector<(p.StrokeShader)>(std::vector<StrokeShader * >::size_type)\n std::vector<(p.StrokeShader)>(std::vector<StrokeShader * >::size_type,std::vector<StrokeShader * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::value_type arg2 = (std::vector<StrokeShader * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShadersContainer_push_back",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_push_back" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ShadersContainer_push_back" "', argument " "2"" of type '" "std::vector<StrokeShader * >::value_type""'");
+ }
+ arg2 = reinterpret_cast< std::vector<StrokeShader * >::value_type >(argp2);
+ {
+ try {
+ (arg1)->push_back(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_front",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_front" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (std::vector<StrokeShader * >::value_type)((std::vector<StrokeShader * > const *)arg1)->front();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::value_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_back",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_back" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = (std::vector<StrokeShader * >::value_type)((std::vector<StrokeShader * > const *)arg1)->back();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::size_type arg2 ;
+ std::vector<StrokeShader * >::value_type arg3 = (std::vector<StrokeShader * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ShadersContainer_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_assign" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer_assign" "', argument " "2"" of type '" "std::vector<StrokeShader * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ShadersContainer_assign" "', argument " "3"" of type '" "std::vector<StrokeShader * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<StrokeShader * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->assign(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::size_type arg2 ;
+ std::vector<StrokeShader * >::value_type arg3 = (std::vector<StrokeShader * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ShadersContainer_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_resize" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer_resize" "', argument " "2"" of type '" "std::vector<StrokeShader * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::size_type >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ShadersContainer_resize" "', argument " "3"" of type '" "std::vector<StrokeShader * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<StrokeShader * >::value_type >(argp3);
+ {
+ try {
+ (arg1)->resize(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_resize(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_ShadersContainer_resize__SWIG_0(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_resize__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ShadersContainer_resize'.\n Possible C/C++ prototypes are:\n resize(std::vector<StrokeShader * >::size_type)\n resize(std::vector<StrokeShader * >::size_type,std::vector<StrokeShader * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::iterator arg2 ;
+ std::vector<StrokeShader * >::value_type arg3 = (std::vector<StrokeShader * >::value_type) 0 ;
+ std::vector<StrokeShader * >::iterator result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ShadersContainer_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_insert" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_insert" "', argument " "2"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_insert" "', argument " "2"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ShadersContainer_insert" "', argument " "3"" of type '" "std::vector<StrokeShader * >::value_type""'");
+ }
+ arg3 = reinterpret_cast< std::vector<StrokeShader * >::value_type >(argp3);
+ {
+ try {
+ result = (arg1)->insert(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<StrokeShader * >::iterator & >(result)),
+ swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::iterator arg2 ;
+ std::vector<StrokeShader * >::size_type arg3 ;
+ std::vector<StrokeShader * >::value_type arg4 = (std::vector<StrokeShader * >::value_type) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ swig::PySwigIterator *iter2 = 0 ;
+ int res2 ;
+ size_t val3 ;
+ int ecode3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:ShadersContainer_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_insert" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+ if (!SWIG_IsOK(res2) || !iter2) {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_insert" "', argument " "2"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ } else {
+ swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter2);
+ if (iter_t) {
+ arg2 = iter_t->get_current();
+ } else {
+ SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "ShadersContainer_insert" "', argument " "2"" of type '" "std::vector<StrokeShader * >::iterator""'");
+ }
+ }
+ ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "ShadersContainer_insert" "', argument " "3"" of type '" "std::vector<StrokeShader * >::size_type""'");
+ }
+ arg3 = static_cast< std::vector<StrokeShader * >::size_type >(val3);
+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "ShadersContainer_insert" "', argument " "4"" of type '" "std::vector<StrokeShader * >::value_type""'");
+ }
+ arg4 = reinterpret_cast< std::vector<StrokeShader * >::value_type >(argp4);
+ {
+ try {
+ (arg1)->insert(arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_insert(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter) != 0));
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_insert__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = swig::asptr(argv[0], (std::vector<StrokeShader*,std::allocator<StrokeShader * > >**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ swig::PySwigIterator *iter = 0;
+ int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
+ _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<StrokeShader * >::iterator > *>(iter) != 0));
+ if (_v) {
+ {
+ int res = SWIG_AsVal_size_t(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_ShadersContainer_insert__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'ShadersContainer_insert'.\n Possible C/C++ prototypes are:\n insert(std::vector<StrokeShader * >::iterator,std::vector<StrokeShader * >::value_type)\n insert(std::vector<StrokeShader * >::iterator,std::vector<StrokeShader * >::size_type,std::vector<StrokeShader * >::value_type)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::size_type arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ size_t val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ShadersContainer_reserve",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_reserve" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ShadersContainer_reserve" "', argument " "2"" of type '" "std::vector<StrokeShader * >::size_type""'");
+ }
+ arg2 = static_cast< std::vector<StrokeShader * >::size_type >(val2);
+ {
+ try {
+ (arg1)->reserve(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ShadersContainer_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ std::vector<StrokeShader * >::size_type result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ShadersContainer_capacity",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ShadersContainer_capacity" "', argument " "1"" of type '" "std::vector<StrokeShader * > const *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ result = ((std::vector<StrokeShader * > const *)arg1)->capacity();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ShadersContainer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::vector<StrokeShader * > *arg1 = (std::vector<StrokeShader * > *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ShadersContainer",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ShadersContainer" "', argument " "1"" of type '" "std::vector<StrokeShader * > *""'");
+ }
+ arg1 = reinterpret_cast< std::vector<StrokeShader * > * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ShadersContainer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_StrokeShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ PyObject *arg1 = (PyObject *) 0 ;
+ StrokeShader *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_StrokeShader",&obj0)) SWIG_fail;
+ arg1 = obj0;
+ {
+ try {
+ if ( arg1 != Py_None ) {
+ /* subclassed */
+ result = (StrokeShader *)new SwigDirector_StrokeShader(arg1);
+ } else {
+ result = (StrokeShader *)new StrokeShader();
+ }
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_StrokeShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShader *arg1 = (StrokeShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_StrokeShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StrokeShader" "', argument " "1"" of type '" "StrokeShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeShader_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShader *arg1 = (StrokeShader *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:StrokeShader_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeShader_getName" "', argument " "1"" of type '" "StrokeShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShader * >(argp1);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ result = ((StrokeShader const *)arg1)->StrokeShader::getName();
+ } else {
+ result = ((StrokeShader const *)arg1)->getName();
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShader *arg1 = (StrokeShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ Swig::Director *director = 0;
+ bool upcall = false;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeShader_shade" "', argument " "1"" of type '" "StrokeShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ director = SWIG_DIRECTOR_CAST(arg1);
+ upcall = (director && (director->swig_get_self()==obj0));
+ try {
+ {
+ try {
+ if (upcall) {
+ ((StrokeShader const *)arg1)->StrokeShader::shade(*arg2);
+ } else {
+ ((StrokeShader const *)arg1)->shade(*arg2);
+ }
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ } catch (Swig::DirectorException&) {
+ SWIG_fail;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_disown_StrokeShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShader *arg1 = (StrokeShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:disown_StrokeShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "disown_StrokeShader" "', argument " "1"" of type '" "StrokeShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShader * >(argp1);
+ {
+ Swig::Director *director = dynamic_cast<Swig::Director *>(arg1);
+ if (director) director->swig_disown();
+ }
+
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *StrokeShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ConstantThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::ConstantThicknessShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ConstantThicknessShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ConstantThicknessShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::ConstantThicknessShader *)new StrokeShaders::ConstantThicknessShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ConstantThicknessShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ConstantThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantThicknessShader *arg1 = (StrokeShaders::ConstantThicknessShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ConstantThicknessShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantThicknessShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ConstantThicknessShader" "', argument " "1"" of type '" "StrokeShaders::ConstantThicknessShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantThicknessShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstantThicknessShader_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantThicknessShader *arg1 = (StrokeShaders::ConstantThicknessShader *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ConstantThicknessShader_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantThicknessShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantThicknessShader_getName" "', argument " "1"" of type '" "StrokeShaders::ConstantThicknessShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantThicknessShader * >(argp1);
+ {
+ try {
+ result = ((StrokeShaders::ConstantThicknessShader const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstantThicknessShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantThicknessShader *arg1 = (StrokeShaders::ConstantThicknessShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ConstantThicknessShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantThicknessShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantThicknessShader_shade" "', argument " "1"" of type '" "StrokeShaders::ConstantThicknessShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantThicknessShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConstantThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConstantThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ConstantThicknessShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ConstantThicknessShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ConstantThicknessShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ConstantExternThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::ConstantExternThicknessShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ConstantExternThicknessShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ConstantExternThicknessShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::ConstantExternThicknessShader *)new StrokeShaders::ConstantExternThicknessShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ConstantExternThicknessShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ConstantExternThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantExternThicknessShader *arg1 = (StrokeShaders::ConstantExternThicknessShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ConstantExternThicknessShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantExternThicknessShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ConstantExternThicknessShader" "', argument " "1"" of type '" "StrokeShaders::ConstantExternThicknessShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantExternThicknessShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstantExternThicknessShader_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantExternThicknessShader *arg1 = (StrokeShaders::ConstantExternThicknessShader *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ConstantExternThicknessShader_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantExternThicknessShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantExternThicknessShader_getName" "', argument " "1"" of type '" "StrokeShaders::ConstantExternThicknessShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantExternThicknessShader * >(argp1);
+ {
+ try {
+ result = ((StrokeShaders::ConstantExternThicknessShader const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstantExternThicknessShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantExternThicknessShader *arg1 = (StrokeShaders::ConstantExternThicknessShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ConstantExternThicknessShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantExternThicknessShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantExternThicknessShader_shade" "', argument " "1"" of type '" "StrokeShaders::ConstantExternThicknessShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantExternThicknessShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConstantExternThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConstantExternThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ConstantExternThicknessShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ConstantExternThicknessShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ConstantExternThicknessShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_IncreasingThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ StrokeShaders::IncreasingThicknessShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_IncreasingThicknessShader",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IncreasingThicknessShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_IncreasingThicknessShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (StrokeShaders::IncreasingThicknessShader *)new StrokeShaders::IncreasingThicknessShader(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__IncreasingThicknessShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_IncreasingThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::IncreasingThicknessShader *arg1 = (StrokeShaders::IncreasingThicknessShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_IncreasingThicknessShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__IncreasingThicknessShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IncreasingThicknessShader" "', argument " "1"" of type '" "StrokeShaders::IncreasingThicknessShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::IncreasingThicknessShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_IncreasingThicknessShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::IncreasingThicknessShader *arg1 = (StrokeShaders::IncreasingThicknessShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:IncreasingThicknessShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__IncreasingThicknessShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IncreasingThicknessShader_shade" "', argument " "1"" of type '" "StrokeShaders::IncreasingThicknessShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::IncreasingThicknessShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IncreasingThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IncreasingThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::IncreasingThicknessShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *IncreasingThicknessShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__IncreasingThicknessShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ConstrainedIncreasingThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ float arg3 ;
+ StrokeShaders::ConstrainedIncreasingThicknessShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ConstrainedIncreasingThicknessShader",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ConstrainedIncreasingThicknessShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ConstrainedIncreasingThicknessShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ConstrainedIncreasingThicknessShader" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (StrokeShaders::ConstrainedIncreasingThicknessShader *)new StrokeShaders::ConstrainedIncreasingThicknessShader(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ConstrainedIncreasingThicknessShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ConstrainedIncreasingThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstrainedIncreasingThicknessShader *arg1 = (StrokeShaders::ConstrainedIncreasingThicknessShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ConstrainedIncreasingThicknessShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstrainedIncreasingThicknessShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ConstrainedIncreasingThicknessShader" "', argument " "1"" of type '" "StrokeShaders::ConstrainedIncreasingThicknessShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstrainedIncreasingThicknessShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstrainedIncreasingThicknessShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstrainedIncreasingThicknessShader *arg1 = (StrokeShaders::ConstrainedIncreasingThicknessShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ConstrainedIncreasingThicknessShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstrainedIncreasingThicknessShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstrainedIncreasingThicknessShader_shade" "', argument " "1"" of type '" "StrokeShaders::ConstrainedIncreasingThicknessShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstrainedIncreasingThicknessShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConstrainedIncreasingThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConstrainedIncreasingThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ConstrainedIncreasingThicknessShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ConstrainedIncreasingThicknessShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ConstrainedIncreasingThicknessShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_LengthDependingThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ StrokeShaders::LengthDependingThicknessShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_LengthDependingThicknessShader",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_LengthDependingThicknessShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_LengthDependingThicknessShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (StrokeShaders::LengthDependingThicknessShader *)new StrokeShaders::LengthDependingThicknessShader(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__LengthDependingThicknessShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_LengthDependingThicknessShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::LengthDependingThicknessShader *arg1 = (StrokeShaders::LengthDependingThicknessShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_LengthDependingThicknessShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__LengthDependingThicknessShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_LengthDependingThicknessShader" "', argument " "1"" of type '" "StrokeShaders::LengthDependingThicknessShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::LengthDependingThicknessShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_LengthDependingThicknessShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::LengthDependingThicknessShader *arg1 = (StrokeShaders::LengthDependingThicknessShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:LengthDependingThicknessShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__LengthDependingThicknessShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LengthDependingThicknessShader_shade" "', argument " "1"" of type '" "StrokeShaders::LengthDependingThicknessShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::LengthDependingThicknessShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LengthDependingThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LengthDependingThicknessShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::LengthDependingThicknessShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *LengthDependingThicknessShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__LengthDependingThicknessShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ThicknessVariationPatternShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ float arg2 ;
+ float arg3 ;
+ bool arg4 ;
+ StrokeShaders::ThicknessVariationPatternShader *result = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ bool val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_ThicknessVariationPatternShader",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_ThicknessVariationPatternShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ThicknessVariationPatternShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ThicknessVariationPatternShader" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_bool(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_ThicknessVariationPatternShader" "', argument " "4"" of type '" "bool""'");
+ }
+ arg4 = static_cast< bool >(val4);
+ {
+ try {
+ result = (StrokeShaders::ThicknessVariationPatternShader *)new StrokeShaders::ThicknessVariationPatternShader(arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ThicknessVariationPatternShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ThicknessVariationPatternShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ float arg2 ;
+ float arg3 ;
+ StrokeShaders::ThicknessVariationPatternShader *result = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ThicknessVariationPatternShader",&obj0,&obj1,&obj2)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_ThicknessVariationPatternShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ThicknessVariationPatternShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ThicknessVariationPatternShader" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (StrokeShaders::ThicknessVariationPatternShader *)new StrokeShaders::ThicknessVariationPatternShader(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ThicknessVariationPatternShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ThicknessVariationPatternShader__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ float arg2 ;
+ StrokeShaders::ThicknessVariationPatternShader *result = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ThicknessVariationPatternShader",&obj0,&obj1)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_ThicknessVariationPatternShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ThicknessVariationPatternShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (StrokeShaders::ThicknessVariationPatternShader *)new StrokeShaders::ThicknessVariationPatternShader(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ThicknessVariationPatternShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ThicknessVariationPatternShader__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ StrokeShaders::ThicknessVariationPatternShader *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ThicknessVariationPatternShader",&obj0)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_ThicknessVariationPatternShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ {
+ try {
+ result = (StrokeShaders::ThicknessVariationPatternShader *)new StrokeShaders::ThicknessVariationPatternShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ThicknessVariationPatternShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ThicknessVariationPatternShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ThicknessVariationPatternShader__SWIG_3(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ThicknessVariationPatternShader__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ThicknessVariationPatternShader__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ThicknessVariationPatternShader__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ThicknessVariationPatternShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::ThicknessVariationPatternShader(std::string const,float,float,bool)\n StrokeShaders::ThicknessVariationPatternShader(std::string const,float,float)\n StrokeShaders::ThicknessVariationPatternShader(std::string const,float)\n StrokeShaders::ThicknessVariationPatternShader(std::string const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ThicknessVariationPatternShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ThicknessVariationPatternShader *arg1 = (StrokeShaders::ThicknessVariationPatternShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ThicknessVariationPatternShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ThicknessVariationPatternShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ThicknessVariationPatternShader" "', argument " "1"" of type '" "StrokeShaders::ThicknessVariationPatternShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ThicknessVariationPatternShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ThicknessVariationPatternShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ThicknessVariationPatternShader *arg1 = (StrokeShaders::ThicknessVariationPatternShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ThicknessVariationPatternShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ThicknessVariationPatternShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ThicknessVariationPatternShader_shade" "', argument " "1"" of type '" "StrokeShaders::ThicknessVariationPatternShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ThicknessVariationPatternShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ThicknessVariationPatternShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ThicknessVariationPatternShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ThicknessVariationPatternShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ThicknessVariationPatternShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ThicknessVariationPatternShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ThicknessNoiseShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ThicknessNoiseShader *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ThicknessNoiseShader")) SWIG_fail;
+ {
+ try {
+ result = (StrokeShaders::ThicknessNoiseShader *)new StrokeShaders::ThicknessNoiseShader();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ThicknessNoiseShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ThicknessNoiseShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ StrokeShaders::ThicknessNoiseShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ThicknessNoiseShader",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ThicknessNoiseShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ThicknessNoiseShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (StrokeShaders::ThicknessNoiseShader *)new StrokeShaders::ThicknessNoiseShader(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ThicknessNoiseShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ThicknessNoiseShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ThicknessNoiseShader__SWIG_0(self, args);
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ThicknessNoiseShader__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ThicknessNoiseShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::ThicknessNoiseShader()\n StrokeShaders::ThicknessNoiseShader(float,float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ThicknessNoiseShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ThicknessNoiseShader *arg1 = (StrokeShaders::ThicknessNoiseShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ThicknessNoiseShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ThicknessNoiseShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ThicknessNoiseShader_shade" "', argument " "1"" of type '" "StrokeShaders::ThicknessNoiseShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ThicknessNoiseShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ThicknessNoiseShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ThicknessNoiseShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ThicknessNoiseShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ThicknessNoiseShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ThicknessNoiseShader *arg1 = (StrokeShaders::ThicknessNoiseShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ThicknessNoiseShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ThicknessNoiseShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ThicknessNoiseShader" "', argument " "1"" of type '" "StrokeShaders::ThicknessNoiseShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ThicknessNoiseShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ThicknessNoiseShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ThicknessNoiseShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ConstantColorShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ StrokeShaders::ConstantColorShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_ConstantColorShader",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ConstantColorShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ConstantColorShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ConstantColorShader" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_ConstantColorShader" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ {
+ try {
+ result = (StrokeShaders::ConstantColorShader *)new StrokeShaders::ConstantColorShader(arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ConstantColorShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ConstantColorShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ float arg3 ;
+ StrokeShaders::ConstantColorShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_ConstantColorShader",&obj0,&obj1,&obj2)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ConstantColorShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ConstantColorShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_ConstantColorShader" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ result = (StrokeShaders::ConstantColorShader *)new StrokeShaders::ConstantColorShader(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ConstantColorShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ConstantColorShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ConstantColorShader__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ConstantColorShader__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ConstantColorShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::ConstantColorShader(float,float,float,float)\n StrokeShaders::ConstantColorShader(float,float,float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstantColorShader_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantColorShader *arg1 = (StrokeShaders::ConstantColorShader *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:ConstantColorShader_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantColorShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantColorShader_getName" "', argument " "1"" of type '" "StrokeShaders::ConstantColorShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantColorShader * >(argp1);
+ {
+ try {
+ result = ((StrokeShaders::ConstantColorShader const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstantColorShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantColorShader *arg1 = (StrokeShaders::ConstantColorShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ConstantColorShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantColorShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantColorShader_shade" "', argument " "1"" of type '" "StrokeShaders::ConstantColorShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantColorShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConstantColorShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConstantColorShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ConstantColorShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ConstantColorShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ConstantColorShader *arg1 = (StrokeShaders::ConstantColorShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ConstantColorShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ConstantColorShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ConstantColorShader" "', argument " "1"" of type '" "StrokeShaders::ConstantColorShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ConstantColorShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ConstantColorShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ConstantColorShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_IncreasingColorShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ float arg3 ;
+ float arg4 ;
+ float arg5 ;
+ float arg6 ;
+ float arg7 ;
+ float arg8 ;
+ StrokeShaders::IncreasingColorShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ float val6 ;
+ int ecode6 = 0 ;
+ float val7 ;
+ int ecode7 = 0 ;
+ float val8 ;
+ int ecode8 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:new_IncreasingColorShader",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IncreasingColorShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_IncreasingColorShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_IncreasingColorShader" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_IncreasingColorShader" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_IncreasingColorShader" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ ecode6 = SWIG_AsVal_float(obj5, &val6);
+ if (!SWIG_IsOK(ecode6)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "new_IncreasingColorShader" "', argument " "6"" of type '" "float""'");
+ }
+ arg6 = static_cast< float >(val6);
+ ecode7 = SWIG_AsVal_float(obj6, &val7);
+ if (!SWIG_IsOK(ecode7)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "new_IncreasingColorShader" "', argument " "7"" of type '" "float""'");
+ }
+ arg7 = static_cast< float >(val7);
+ ecode8 = SWIG_AsVal_float(obj7, &val8);
+ if (!SWIG_IsOK(ecode8)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "new_IncreasingColorShader" "', argument " "8"" of type '" "float""'");
+ }
+ arg8 = static_cast< float >(val8);
+ {
+ try {
+ result = (StrokeShaders::IncreasingColorShader *)new StrokeShaders::IncreasingColorShader(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__IncreasingColorShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_IncreasingColorShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::IncreasingColorShader *arg1 = (StrokeShaders::IncreasingColorShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:IncreasingColorShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__IncreasingColorShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IncreasingColorShader_shade" "', argument " "1"" of type '" "StrokeShaders::IncreasingColorShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::IncreasingColorShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IncreasingColorShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IncreasingColorShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::IncreasingColorShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_IncreasingColorShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::IncreasingColorShader *arg1 = (StrokeShaders::IncreasingColorShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_IncreasingColorShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__IncreasingColorShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IncreasingColorShader" "', argument " "1"" of type '" "StrokeShaders::IncreasingColorShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::IncreasingColorShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *IncreasingColorShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__IncreasingColorShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ColorVariationPatternShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ bool arg2 ;
+ StrokeShaders::ColorVariationPatternShader *result = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ColorVariationPatternShader",&obj0,&obj1)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_ColorVariationPatternShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ColorVariationPatternShader" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ result = (StrokeShaders::ColorVariationPatternShader *)new StrokeShaders::ColorVariationPatternShader(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ColorVariationPatternShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ColorVariationPatternShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ StrokeShaders::ColorVariationPatternShader *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ColorVariationPatternShader",&obj0)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_ColorVariationPatternShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ {
+ try {
+ result = (StrokeShaders::ColorVariationPatternShader *)new StrokeShaders::ColorVariationPatternShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ColorVariationPatternShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ColorVariationPatternShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_ColorVariationPatternShader__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ColorVariationPatternShader__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ColorVariationPatternShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::ColorVariationPatternShader(std::string const,bool)\n StrokeShaders::ColorVariationPatternShader(std::string const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ColorVariationPatternShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ColorVariationPatternShader *arg1 = (StrokeShaders::ColorVariationPatternShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ColorVariationPatternShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ColorVariationPatternShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ColorVariationPatternShader" "', argument " "1"" of type '" "StrokeShaders::ColorVariationPatternShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ColorVariationPatternShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ColorVariationPatternShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ColorVariationPatternShader *arg1 = (StrokeShaders::ColorVariationPatternShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ColorVariationPatternShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ColorVariationPatternShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ColorVariationPatternShader_shade" "', argument " "1"" of type '" "StrokeShaders::ColorVariationPatternShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ColorVariationPatternShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ColorVariationPatternShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ColorVariationPatternShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ColorVariationPatternShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ColorVariationPatternShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ColorVariationPatternShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_MaterialColorShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::MaterialColorShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_MaterialColorShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_MaterialColorShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::MaterialColorShader *)new StrokeShaders::MaterialColorShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__MaterialColorShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_MaterialColorShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::MaterialColorShader *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_MaterialColorShader")) SWIG_fail;
+ {
+ try {
+ result = (StrokeShaders::MaterialColorShader *)new StrokeShaders::MaterialColorShader();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__MaterialColorShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_MaterialColorShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_MaterialColorShader__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_MaterialColorShader__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_MaterialColorShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::MaterialColorShader(float)\n StrokeShaders::MaterialColorShader()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_MaterialColorShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::MaterialColorShader *arg1 = (StrokeShaders::MaterialColorShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:MaterialColorShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__MaterialColorShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MaterialColorShader_shade" "', argument " "1"" of type '" "StrokeShaders::MaterialColorShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::MaterialColorShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MaterialColorShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MaterialColorShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::MaterialColorShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_MaterialColorShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::MaterialColorShader *arg1 = (StrokeShaders::MaterialColorShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_MaterialColorShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__MaterialColorShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_MaterialColorShader" "', argument " "1"" of type '" "StrokeShaders::MaterialColorShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::MaterialColorShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *MaterialColorShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__MaterialColorShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_CalligraphicColorShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Geometry::Vec2d *arg1 = 0 ;
+ StrokeShaders::CalligraphicColorShader *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_CalligraphicColorShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_VecMat__Vec2Tdouble_t, 0 | 0);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_CalligraphicColorShader" "', argument " "1"" of type '" "Geometry::Vec2d const &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_CalligraphicColorShader" "', argument " "1"" of type '" "Geometry::Vec2d const &""'");
+ }
+ arg1 = reinterpret_cast< Geometry::Vec2d * >(argp1);
+ {
+ try {
+ result = (StrokeShaders::CalligraphicColorShader *)new StrokeShaders::CalligraphicColorShader((Geometry::Vec2d const &)*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__CalligraphicColorShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CalligraphicColorShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::CalligraphicColorShader *arg1 = (StrokeShaders::CalligraphicColorShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CalligraphicColorShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__CalligraphicColorShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CalligraphicColorShader_shade" "', argument " "1"" of type '" "StrokeShaders::CalligraphicColorShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::CalligraphicColorShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CalligraphicColorShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CalligraphicColorShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::CalligraphicColorShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_CalligraphicColorShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::CalligraphicColorShader *arg1 = (StrokeShaders::CalligraphicColorShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_CalligraphicColorShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__CalligraphicColorShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CalligraphicColorShader" "', argument " "1"" of type '" "StrokeShaders::CalligraphicColorShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::CalligraphicColorShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *CalligraphicColorShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__CalligraphicColorShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ColorNoiseShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ColorNoiseShader *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ColorNoiseShader")) SWIG_fail;
+ {
+ try {
+ result = (StrokeShaders::ColorNoiseShader *)new StrokeShaders::ColorNoiseShader();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ColorNoiseShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ColorNoiseShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ StrokeShaders::ColorNoiseShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_ColorNoiseShader",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ColorNoiseShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ColorNoiseShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (StrokeShaders::ColorNoiseShader *)new StrokeShaders::ColorNoiseShader(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ColorNoiseShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ColorNoiseShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ColorNoiseShader__SWIG_0(self, args);
+ }
+ if (argc == 2) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ColorNoiseShader__SWIG_1(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ColorNoiseShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::ColorNoiseShader()\n StrokeShaders::ColorNoiseShader(float,float)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ColorNoiseShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ColorNoiseShader *arg1 = (StrokeShaders::ColorNoiseShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ColorNoiseShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ColorNoiseShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ColorNoiseShader_shade" "', argument " "1"" of type '" "StrokeShaders::ColorNoiseShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ColorNoiseShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ColorNoiseShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ColorNoiseShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ColorNoiseShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ColorNoiseShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ColorNoiseShader *arg1 = (StrokeShaders::ColorNoiseShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ColorNoiseShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ColorNoiseShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ColorNoiseShader" "', argument " "1"" of type '" "StrokeShaders::ColorNoiseShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ColorNoiseShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ColorNoiseShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ColorNoiseShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_TextureAssignerShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ StrokeShaders::TextureAssignerShader *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_TextureAssignerShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_TextureAssignerShader" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ {
+ try {
+ result = (StrokeShaders::TextureAssignerShader *)new StrokeShaders::TextureAssignerShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__TextureAssignerShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TextureAssignerShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::TextureAssignerShader *arg1 = (StrokeShaders::TextureAssignerShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TextureAssignerShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__TextureAssignerShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TextureAssignerShader_shade" "', argument " "1"" of type '" "StrokeShaders::TextureAssignerShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::TextureAssignerShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TextureAssignerShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "TextureAssignerShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::TextureAssignerShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_TextureAssignerShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::TextureAssignerShader *arg1 = (StrokeShaders::TextureAssignerShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_TextureAssignerShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__TextureAssignerShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TextureAssignerShader" "', argument " "1"" of type '" "StrokeShaders::TextureAssignerShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::TextureAssignerShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *TextureAssignerShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__TextureAssignerShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_StrokeTextureShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ Stroke::MediumType arg2 ;
+ bool arg3 ;
+ StrokeShaders::StrokeTextureShader *result = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:new_StrokeTextureShader",&obj0,&obj1,&obj2)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_StrokeTextureShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_StrokeTextureShader" "', argument " "2"" of type '" "Stroke::MediumType""'");
+ }
+ arg2 = static_cast< Stroke::MediumType >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_StrokeTextureShader" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ result = (StrokeShaders::StrokeTextureShader *)new StrokeShaders::StrokeTextureShader(arg1,arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__StrokeTextureShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeTextureShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ Stroke::MediumType arg2 ;
+ StrokeShaders::StrokeTextureShader *result = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_StrokeTextureShader",&obj0,&obj1)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_StrokeTextureShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_StrokeTextureShader" "', argument " "2"" of type '" "Stroke::MediumType""'");
+ }
+ arg2 = static_cast< Stroke::MediumType >(val2);
+ {
+ try {
+ result = (StrokeShaders::StrokeTextureShader *)new StrokeShaders::StrokeTextureShader(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__StrokeTextureShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeTextureShader__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ std::string arg1 ;
+ StrokeShaders::StrokeTextureShader *result = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_StrokeTextureShader",&obj0)) SWIG_fail;
+ {
+ std::string *ptr = (std::string *)0;
+ int res = SWIG_AsPtr_std_string(obj0, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "new_StrokeTextureShader" "', argument " "1"" of type '" "std::string const""'");
+ }
+ arg1 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ {
+ try {
+ result = (StrokeShaders::StrokeTextureShader *)new StrokeShaders::StrokeTextureShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__StrokeTextureShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_StrokeTextureShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_new_StrokeTextureShader__SWIG_2(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_StrokeTextureShader__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0));
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_int(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_StrokeTextureShader__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_StrokeTextureShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::StrokeTextureShader(std::string const,Stroke::MediumType,bool)\n StrokeShaders::StrokeTextureShader(std::string const,Stroke::MediumType)\n StrokeShaders::StrokeTextureShader(std::string const)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_StrokeTextureShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::StrokeTextureShader *arg1 = (StrokeShaders::StrokeTextureShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:StrokeTextureShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__StrokeTextureShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "StrokeTextureShader_shade" "', argument " "1"" of type '" "StrokeShaders::StrokeTextureShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::StrokeTextureShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "StrokeTextureShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "StrokeTextureShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::StrokeTextureShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_StrokeTextureShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::StrokeTextureShader *arg1 = (StrokeShaders::StrokeTextureShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_StrokeTextureShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__StrokeTextureShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StrokeTextureShader" "', argument " "1"" of type '" "StrokeShaders::StrokeTextureShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::StrokeTextureShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *StrokeTextureShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__StrokeTextureShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_BackboneStretcherShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::BackboneStretcherShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_BackboneStretcherShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_BackboneStretcherShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::BackboneStretcherShader *)new StrokeShaders::BackboneStretcherShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__BackboneStretcherShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_BackboneStretcherShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BackboneStretcherShader *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_BackboneStretcherShader")) SWIG_fail;
+ {
+ try {
+ result = (StrokeShaders::BackboneStretcherShader *)new StrokeShaders::BackboneStretcherShader();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__BackboneStretcherShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_BackboneStretcherShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_BackboneStretcherShader__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_BackboneStretcherShader__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_BackboneStretcherShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::BackboneStretcherShader(float)\n StrokeShaders::BackboneStretcherShader()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BackboneStretcherShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BackboneStretcherShader *arg1 = (StrokeShaders::BackboneStretcherShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:BackboneStretcherShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__BackboneStretcherShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BackboneStretcherShader_shade" "', argument " "1"" of type '" "StrokeShaders::BackboneStretcherShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::BackboneStretcherShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "BackboneStretcherShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "BackboneStretcherShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::BackboneStretcherShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_BackboneStretcherShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BackboneStretcherShader *arg1 = (StrokeShaders::BackboneStretcherShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_BackboneStretcherShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__BackboneStretcherShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_BackboneStretcherShader" "', argument " "1"" of type '" "StrokeShaders::BackboneStretcherShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::BackboneStretcherShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *BackboneStretcherShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__BackboneStretcherShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_SamplingShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::SamplingShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_SamplingShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_SamplingShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::SamplingShader *)new StrokeShaders::SamplingShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__SamplingShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SamplingShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::SamplingShader *arg1 = (StrokeShaders::SamplingShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SamplingShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__SamplingShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SamplingShader_shade" "', argument " "1"" of type '" "StrokeShaders::SamplingShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::SamplingShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SamplingShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SamplingShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::SamplingShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_SamplingShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::SamplingShader *arg1 = (StrokeShaders::SamplingShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_SamplingShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__SamplingShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SamplingShader" "', argument " "1"" of type '" "StrokeShaders::SamplingShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::SamplingShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *SamplingShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__SamplingShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ExternalContourStretcherShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::ExternalContourStretcherShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_ExternalContourStretcherShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ExternalContourStretcherShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::ExternalContourStretcherShader *)new StrokeShaders::ExternalContourStretcherShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ExternalContourStretcherShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ExternalContourStretcherShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ExternalContourStretcherShader *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ExternalContourStretcherShader")) SWIG_fail;
+ {
+ try {
+ result = (StrokeShaders::ExternalContourStretcherShader *)new StrokeShaders::ExternalContourStretcherShader();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__ExternalContourStretcherShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ExternalContourStretcherShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_ExternalContourStretcherShader__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_ExternalContourStretcherShader__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_ExternalContourStretcherShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::ExternalContourStretcherShader(float)\n StrokeShaders::ExternalContourStretcherShader()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ExternalContourStretcherShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ExternalContourStretcherShader *arg1 = (StrokeShaders::ExternalContourStretcherShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:ExternalContourStretcherShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ExternalContourStretcherShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ExternalContourStretcherShader_shade" "', argument " "1"" of type '" "StrokeShaders::ExternalContourStretcherShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ExternalContourStretcherShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ExternalContourStretcherShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ExternalContourStretcherShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::ExternalContourStretcherShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ExternalContourStretcherShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::ExternalContourStretcherShader *arg1 = (StrokeShaders::ExternalContourStretcherShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ExternalContourStretcherShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__ExternalContourStretcherShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ExternalContourStretcherShader" "', argument " "1"" of type '" "StrokeShaders::ExternalContourStretcherShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::ExternalContourStretcherShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ExternalContourStretcherShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__ExternalContourStretcherShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_BSplineShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BSplineShader *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_BSplineShader")) SWIG_fail;
+ {
+ try {
+ result = (StrokeShaders::BSplineShader *)new StrokeShaders::BSplineShader();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__BSplineShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BSplineShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BSplineShader *arg1 = (StrokeShaders::BSplineShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:BSplineShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__BSplineShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BSplineShader_shade" "', argument " "1"" of type '" "StrokeShaders::BSplineShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::BSplineShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "BSplineShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "BSplineShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::BSplineShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_BSplineShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BSplineShader *arg1 = (StrokeShaders::BSplineShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_BSplineShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__BSplineShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_BSplineShader" "', argument " "1"" of type '" "StrokeShaders::BSplineShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::BSplineShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *BSplineShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__BSplineShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_BezierCurveShader__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::BezierCurveShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_BezierCurveShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_BezierCurveShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::BezierCurveShader *)new StrokeShaders::BezierCurveShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__BezierCurveShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_BezierCurveShader__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BezierCurveShader *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_BezierCurveShader")) SWIG_fail;
+ {
+ try {
+ result = (StrokeShaders::BezierCurveShader *)new StrokeShaders::BezierCurveShader();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__BezierCurveShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_BezierCurveShader(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 0) {
+ return _wrap_new_BezierCurveShader__SWIG_1(self, args);
+ }
+ if (argc == 1) {
+ int _v;
+ {
+ int res = SWIG_AsVal_float(argv[0], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_new_BezierCurveShader__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_BezierCurveShader'.\n Possible C/C++ prototypes are:\n StrokeShaders::BezierCurveShader(float)\n StrokeShaders::BezierCurveShader()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BezierCurveShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BezierCurveShader *arg1 = (StrokeShaders::BezierCurveShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:BezierCurveShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__BezierCurveShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BezierCurveShader_shade" "', argument " "1"" of type '" "StrokeShaders::BezierCurveShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::BezierCurveShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "BezierCurveShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "BezierCurveShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::BezierCurveShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_BezierCurveShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::BezierCurveShader *arg1 = (StrokeShaders::BezierCurveShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_BezierCurveShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__BezierCurveShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_BezierCurveShader" "', argument " "1"" of type '" "StrokeShaders::BezierCurveShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::BezierCurveShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *BezierCurveShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__BezierCurveShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_InflateShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ StrokeShaders::InflateShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:new_InflateShader",&obj0,&obj1)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_InflateShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_InflateShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ result = (StrokeShaders::InflateShader *)new StrokeShaders::InflateShader(arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__InflateShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_InflateShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::InflateShader *arg1 = (StrokeShaders::InflateShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:InflateShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__InflateShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "InflateShader_shade" "', argument " "1"" of type '" "StrokeShaders::InflateShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::InflateShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "InflateShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "InflateShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::InflateShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_InflateShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::InflateShader *arg1 = (StrokeShaders::InflateShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_InflateShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__InflateShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_InflateShader" "', argument " "1"" of type '" "StrokeShaders::InflateShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::InflateShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *InflateShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__InflateShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_PolygonalizationShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::PolygonalizationShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_PolygonalizationShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_PolygonalizationShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::PolygonalizationShader *)new StrokeShaders::PolygonalizationShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__PolygonalizationShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_PolygonalizationShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::PolygonalizationShader *arg1 = (StrokeShaders::PolygonalizationShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:PolygonalizationShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__PolygonalizationShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PolygonalizationShader_shade" "', argument " "1"" of type '" "StrokeShaders::PolygonalizationShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::PolygonalizationShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PolygonalizationShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PolygonalizationShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::PolygonalizationShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_PolygonalizationShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::PolygonalizationShader *arg1 = (StrokeShaders::PolygonalizationShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_PolygonalizationShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__PolygonalizationShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PolygonalizationShader" "', argument " "1"" of type '" "StrokeShaders::PolygonalizationShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::PolygonalizationShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *PolygonalizationShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__PolygonalizationShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_GuidingLinesShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ StrokeShaders::GuidingLinesShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_GuidingLinesShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GuidingLinesShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ {
+ try {
+ result = (StrokeShaders::GuidingLinesShader *)new StrokeShaders::GuidingLinesShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__GuidingLinesShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GuidingLinesShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::GuidingLinesShader *arg1 = (StrokeShaders::GuidingLinesShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:GuidingLinesShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__GuidingLinesShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GuidingLinesShader_shade" "', argument " "1"" of type '" "StrokeShaders::GuidingLinesShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::GuidingLinesShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GuidingLinesShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GuidingLinesShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::GuidingLinesShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_GuidingLinesShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::GuidingLinesShader *arg1 = (StrokeShaders::GuidingLinesShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_GuidingLinesShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__GuidingLinesShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GuidingLinesShader" "', argument " "1"" of type '" "StrokeShaders::GuidingLinesShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::GuidingLinesShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *GuidingLinesShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__GuidingLinesShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_TipRemoverShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ real arg1 ;
+ StrokeShaders::TipRemoverShader *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_TipRemoverShader",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_TipRemoverShader" "', argument " "1"" of type '" "real""'");
+ }
+ arg1 = static_cast< real >(val1);
+ {
+ try {
+ result = (StrokeShaders::TipRemoverShader *)new StrokeShaders::TipRemoverShader(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__TipRemoverShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_TipRemoverShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::TipRemoverShader *arg1 = (StrokeShaders::TipRemoverShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_TipRemoverShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__TipRemoverShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_TipRemoverShader" "', argument " "1"" of type '" "StrokeShaders::TipRemoverShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::TipRemoverShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_TipRemoverShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::TipRemoverShader *arg1 = (StrokeShaders::TipRemoverShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:TipRemoverShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__TipRemoverShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "TipRemoverShader_shade" "', argument " "1"" of type '" "StrokeShaders::TipRemoverShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::TipRemoverShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "TipRemoverShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "TipRemoverShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::TipRemoverShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *TipRemoverShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__TipRemoverShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_delete_streamShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::streamShader *arg1 = (StrokeShaders::streamShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_streamShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__streamShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_streamShader" "', argument " "1"" of type '" "StrokeShaders::streamShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::streamShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_streamShader_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::streamShader *arg1 = (StrokeShaders::streamShader *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:streamShader_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__streamShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "streamShader_getName" "', argument " "1"" of type '" "StrokeShaders::streamShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::streamShader * >(argp1);
+ {
+ try {
+ result = ((StrokeShaders::streamShader const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_streamShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::streamShader *arg1 = (StrokeShaders::streamShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:streamShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__streamShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "streamShader_shade" "', argument " "1"" of type '" "StrokeShaders::streamShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::streamShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "streamShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "streamShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::streamShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_streamShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::streamShader *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_streamShader")) SWIG_fail;
+ {
+ try {
+ result = (StrokeShaders::streamShader *)new StrokeShaders::streamShader();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__streamShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *streamShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__streamShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_fstreamShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ StrokeShaders::fstreamShader *result = 0 ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_fstreamShader",&obj0)) SWIG_fail;
+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_fstreamShader" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = reinterpret_cast< char * >(buf1);
+ {
+ try {
+ result = (StrokeShaders::fstreamShader *)new StrokeShaders::fstreamShader((char const *)arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeShaders__fstreamShader, SWIG_POINTER_NEW | 0 );
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return resultobj;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_fstreamShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::fstreamShader *arg1 = (StrokeShaders::fstreamShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_fstreamShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__fstreamShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_fstreamShader" "', argument " "1"" of type '" "StrokeShaders::fstreamShader *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::fstreamShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_fstreamShader_getName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::fstreamShader *arg1 = (StrokeShaders::fstreamShader *) 0 ;
+ std::string result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:fstreamShader_getName",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__fstreamShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "fstreamShader_getName" "', argument " "1"" of type '" "StrokeShaders::fstreamShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::fstreamShader * >(argp1);
+ {
+ try {
+ result = ((StrokeShaders::fstreamShader const *)arg1)->getName();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_std_string(static_cast< std::string >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_fstreamShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ StrokeShaders::fstreamShader *arg1 = (StrokeShaders::fstreamShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:fstreamShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrokeShaders__fstreamShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "fstreamShader_shade" "', argument " "1"" of type '" "StrokeShaders::fstreamShader const *""'");
+ }
+ arg1 = reinterpret_cast< StrokeShaders::fstreamShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "fstreamShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "fstreamShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((StrokeShaders::fstreamShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *fstreamShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_StrokeShaders__fstreamShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_CalligraphicShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ real arg1 ;
+ real arg2 ;
+ Geometry::Vec2f *arg3 = 0 ;
+ bool arg4 ;
+ CalligraphicShader *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ bool val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_CalligraphicShader",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_CalligraphicShader" "', argument " "1"" of type '" "real""'");
+ }
+ arg1 = static_cast< real >(val1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_CalligraphicShader" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_VecMat__Vec2Tfloat_t, 0 | 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_CalligraphicShader" "', argument " "3"" of type '" "Geometry::Vec2f const &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_CalligraphicShader" "', argument " "3"" of type '" "Geometry::Vec2f const &""'");
+ }
+ arg3 = reinterpret_cast< Geometry::Vec2f * >(argp3);
+ ecode4 = SWIG_AsVal_bool(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_CalligraphicShader" "', argument " "4"" of type '" "bool""'");
+ }
+ arg4 = static_cast< bool >(val4);
+ {
+ try {
+ result = (CalligraphicShader *)new CalligraphicShader(arg1,arg2,(Geometry::Vec2f const &)*arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CalligraphicShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_CalligraphicShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CalligraphicShader *arg1 = (CalligraphicShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_CalligraphicShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CalligraphicShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_CalligraphicShader" "', argument " "1"" of type '" "CalligraphicShader *""'");
+ }
+ arg1 = reinterpret_cast< CalligraphicShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_CalligraphicShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ CalligraphicShader *arg1 = (CalligraphicShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:CalligraphicShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_CalligraphicShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "CalligraphicShader_shade" "', argument " "1"" of type '" "CalligraphicShader const *""'");
+ }
+ arg1 = reinterpret_cast< CalligraphicShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "CalligraphicShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "CalligraphicShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((CalligraphicShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *CalligraphicShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_CalligraphicShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_SpatialNoiseShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ float arg1 ;
+ float arg2 ;
+ int arg3 ;
+ bool arg4 ;
+ bool arg5 ;
+ SpatialNoiseShader *result = 0 ;
+ float val1 ;
+ int ecode1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ bool val4 ;
+ int ecode4 = 0 ;
+ bool val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_SpatialNoiseShader",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ ecode1 = SWIG_AsVal_float(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_SpatialNoiseShader" "', argument " "1"" of type '" "float""'");
+ }
+ arg1 = static_cast< float >(val1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_SpatialNoiseShader" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_SpatialNoiseShader" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_bool(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_SpatialNoiseShader" "', argument " "4"" of type '" "bool""'");
+ }
+ arg4 = static_cast< bool >(val4);
+ ecode5 = SWIG_AsVal_bool(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_SpatialNoiseShader" "', argument " "5"" of type '" "bool""'");
+ }
+ arg5 = static_cast< bool >(val5);
+ {
+ try {
+ result = (SpatialNoiseShader *)new SpatialNoiseShader(arg1,arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SpatialNoiseShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_SpatialNoiseShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SpatialNoiseShader *arg1 = (SpatialNoiseShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_SpatialNoiseShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SpatialNoiseShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SpatialNoiseShader" "', argument " "1"" of type '" "SpatialNoiseShader *""'");
+ }
+ arg1 = reinterpret_cast< SpatialNoiseShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SpatialNoiseShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SpatialNoiseShader *arg1 = (SpatialNoiseShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SpatialNoiseShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SpatialNoiseShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SpatialNoiseShader_shade" "', argument " "1"" of type '" "SpatialNoiseShader const *""'");
+ }
+ arg1 = reinterpret_cast< SpatialNoiseShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SpatialNoiseShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SpatialNoiseShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((SpatialNoiseShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *SpatialNoiseShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_SpatialNoiseShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_SmoothingShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ real arg2 ;
+ real arg3 ;
+ real arg4 ;
+ real arg5 ;
+ real arg6 ;
+ real arg7 ;
+ real arg8 ;
+ SmoothingShader *result = 0 ;
+ int val1 ;
+ int ecode1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ double val4 ;
+ int ecode4 = 0 ;
+ double val5 ;
+ int ecode5 = 0 ;
+ double val6 ;
+ int ecode6 = 0 ;
+ double val7 ;
+ int ecode7 = 0 ;
+ double val8 ;
+ int ecode8 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:new_SmoothingShader",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ ecode1 = SWIG_AsVal_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_SmoothingShader" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = static_cast< int >(val1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_SmoothingShader" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_SmoothingShader" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ ecode4 = SWIG_AsVal_double(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_SmoothingShader" "', argument " "4"" of type '" "real""'");
+ }
+ arg4 = static_cast< real >(val4);
+ ecode5 = SWIG_AsVal_double(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_SmoothingShader" "', argument " "5"" of type '" "real""'");
+ }
+ arg5 = static_cast< real >(val5);
+ ecode6 = SWIG_AsVal_double(obj5, &val6);
+ if (!SWIG_IsOK(ecode6)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "new_SmoothingShader" "', argument " "6"" of type '" "real""'");
+ }
+ arg6 = static_cast< real >(val6);
+ ecode7 = SWIG_AsVal_double(obj6, &val7);
+ if (!SWIG_IsOK(ecode7)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "new_SmoothingShader" "', argument " "7"" of type '" "real""'");
+ }
+ arg7 = static_cast< real >(val7);
+ ecode8 = SWIG_AsVal_double(obj7, &val8);
+ if (!SWIG_IsOK(ecode8)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "new_SmoothingShader" "', argument " "8"" of type '" "real""'");
+ }
+ arg8 = static_cast< real >(val8);
+ {
+ try {
+ result = (SmoothingShader *)new SmoothingShader(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SmoothingShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_SmoothingShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SmoothingShader *arg1 = (SmoothingShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_SmoothingShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SmoothingShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SmoothingShader" "', argument " "1"" of type '" "SmoothingShader *""'");
+ }
+ arg1 = reinterpret_cast< SmoothingShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SmoothingShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ SmoothingShader *arg1 = (SmoothingShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:SmoothingShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SmoothingShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SmoothingShader_shade" "', argument " "1"" of type '" "SmoothingShader const *""'");
+ }
+ arg1 = reinterpret_cast< SmoothingShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SmoothingShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SmoothingShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((SmoothingShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *SmoothingShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_SmoothingShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Smoother(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = 0 ;
+ Smoother *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Smoother",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Smoother" "', argument " "1"" of type '" "Stroke &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Smoother" "', argument " "1"" of type '" "Stroke &""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (Smoother *)new Smoother(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Smoother, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Smoother(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Smoother *arg1 = (Smoother *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Smoother",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Smoother, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Smoother" "', argument " "1"" of type '" "Smoother *""'");
+ }
+ arg1 = reinterpret_cast< Smoother * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Smoother_smooth(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Smoother *arg1 = (Smoother *) 0 ;
+ int arg2 ;
+ real arg3 ;
+ real arg4 ;
+ real arg5 ;
+ real arg6 ;
+ real arg7 ;
+ real arg8 ;
+ real arg9 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ double val4 ;
+ int ecode4 = 0 ;
+ double val5 ;
+ int ecode5 = 0 ;
+ double val6 ;
+ int ecode6 = 0 ;
+ double val7 ;
+ int ecode7 = 0 ;
+ double val8 ;
+ int ecode8 = 0 ;
+ double val9 ;
+ int ecode9 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:Smoother_smooth",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Smoother, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Smoother_smooth" "', argument " "1"" of type '" "Smoother *""'");
+ }
+ arg1 = reinterpret_cast< Smoother * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Smoother_smooth" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Smoother_smooth" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ ecode4 = SWIG_AsVal_double(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Smoother_smooth" "', argument " "4"" of type '" "real""'");
+ }
+ arg4 = static_cast< real >(val4);
+ ecode5 = SWIG_AsVal_double(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Smoother_smooth" "', argument " "5"" of type '" "real""'");
+ }
+ arg5 = static_cast< real >(val5);
+ ecode6 = SWIG_AsVal_double(obj5, &val6);
+ if (!SWIG_IsOK(ecode6)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "Smoother_smooth" "', argument " "6"" of type '" "real""'");
+ }
+ arg6 = static_cast< real >(val6);
+ ecode7 = SWIG_AsVal_double(obj6, &val7);
+ if (!SWIG_IsOK(ecode7)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "Smoother_smooth" "', argument " "7"" of type '" "real""'");
+ }
+ arg7 = static_cast< real >(val7);
+ ecode8 = SWIG_AsVal_double(obj7, &val8);
+ if (!SWIG_IsOK(ecode8)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "Smoother_smooth" "', argument " "8"" of type '" "real""'");
+ }
+ arg8 = static_cast< real >(val8);
+ ecode9 = SWIG_AsVal_double(obj8, &val9);
+ if (!SWIG_IsOK(ecode9)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "Smoother_smooth" "', argument " "9"" of type '" "real""'");
+ }
+ arg9 = static_cast< real >(val9);
+ {
+ try {
+ (arg1)->smooth(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Smoother_computeCurvature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Smoother *arg1 = (Smoother *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Smoother_computeCurvature",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Smoother, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Smoother_computeCurvature" "', argument " "1"" of type '" "Smoother *""'");
+ }
+ arg1 = reinterpret_cast< Smoother * >(argp1);
+ {
+ try {
+ (arg1)->computeCurvature();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Smoother_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Smoother, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_Omitter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Stroke *arg1 = 0 ;
+ Omitter *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:new_Omitter",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Omitter" "', argument " "1"" of type '" "Stroke &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Omitter" "', argument " "1"" of type '" "Stroke &""'");
+ }
+ arg1 = reinterpret_cast< Stroke * >(argp1);
+ {
+ try {
+ result = (Omitter *)new Omitter(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Omitter, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Omitter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Omitter *arg1 = (Omitter *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Omitter",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Omitter, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Omitter" "', argument " "1"" of type '" "Omitter *""'");
+ }
+ arg1 = reinterpret_cast< Omitter * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Omitter_omit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Omitter *arg1 = (Omitter *) 0 ;
+ real arg2 ;
+ real arg3 ;
+ real arg4 ;
+ real arg5 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ double val4 ;
+ int ecode4 = 0 ;
+ double val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Omitter_omit",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Omitter, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Omitter_omit" "', argument " "1"" of type '" "Omitter *""'");
+ }
+ arg1 = reinterpret_cast< Omitter * >(argp1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Omitter_omit" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Omitter_omit" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ ecode4 = SWIG_AsVal_double(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Omitter_omit" "', argument " "4"" of type '" "real""'");
+ }
+ arg4 = static_cast< real >(val4);
+ ecode5 = SWIG_AsVal_double(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Omitter_omit" "', argument " "5"" of type '" "real""'");
+ }
+ arg5 = static_cast< real >(val5);
+ {
+ try {
+ (arg1)->omit(arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Omitter_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Omitter, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_OmissionShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ real arg1 ;
+ real arg2 ;
+ real arg3 ;
+ real arg4 ;
+ OmissionShader *result = 0 ;
+ double val1 ;
+ int ecode1 = 0 ;
+ double val2 ;
+ int ecode2 = 0 ;
+ double val3 ;
+ int ecode3 = 0 ;
+ double val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:new_OmissionShader",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ ecode1 = SWIG_AsVal_double(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_OmissionShader" "', argument " "1"" of type '" "real""'");
+ }
+ arg1 = static_cast< real >(val1);
+ ecode2 = SWIG_AsVal_double(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_OmissionShader" "', argument " "2"" of type '" "real""'");
+ }
+ arg2 = static_cast< real >(val2);
+ ecode3 = SWIG_AsVal_double(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_OmissionShader" "', argument " "3"" of type '" "real""'");
+ }
+ arg3 = static_cast< real >(val3);
+ ecode4 = SWIG_AsVal_double(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_OmissionShader" "', argument " "4"" of type '" "real""'");
+ }
+ arg4 = static_cast< real >(val4);
+ {
+ try {
+ result = (OmissionShader *)new OmissionShader(arg1,arg2,arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_OmissionShader, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_OmissionShader(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ OmissionShader *arg1 = (OmissionShader *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_OmissionShader",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_OmissionShader, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_OmissionShader" "', argument " "1"" of type '" "OmissionShader *""'");
+ }
+ arg1 = reinterpret_cast< OmissionShader * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_OmissionShader_shade(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ OmissionShader *arg1 = (OmissionShader *) 0 ;
+ Stroke *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:OmissionShader_shade",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_OmissionShader, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "OmissionShader_shade" "', argument " "1"" of type '" "OmissionShader const *""'");
+ }
+ arg1 = reinterpret_cast< OmissionShader * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Stroke, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "OmissionShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "OmissionShader_shade" "', argument " "2"" of type '" "Stroke &""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ ((OmissionShader const *)arg1)->shade(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *OmissionShader_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_OmissionShader, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Operators_select(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate1D *arg1 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Operators_select",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_select" "', argument " "1"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_select" "', argument " "1"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate1D * >(argp1);
+ {
+ try {
+ Operators::select(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_chain__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ UnaryFunction1D<void > *arg3 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Operators_chain",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_chain" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_chain" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator &""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_chain" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_chain" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_UnaryFunction1DTvoid_t, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Operators_chain" "', argument " "3"" of type '" "UnaryFunction1D<void > &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_chain" "', argument " "3"" of type '" "UnaryFunction1D<void > &""'");
+ }
+ arg3 = reinterpret_cast< UnaryFunction1D<void > * >(argp3);
+ {
+ try {
+ Operators::chain(*arg1,*arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_chain__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ViewEdgeInternal::ViewEdgeIterator *arg1 = 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Operators_chain",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_chain" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_chain" "', argument " "1"" of type '" "ViewEdgeInternal::ViewEdgeIterator &""'");
+ }
+ arg1 = reinterpret_cast< ViewEdgeInternal::ViewEdgeIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_chain" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_chain" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ {
+ try {
+ Operators::chain(*arg1,*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_chain(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Operators_chain__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ViewEdgeInternal__ViewEdgeIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_UnaryFunction1DTvoid_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Operators_chain__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Operators_chain'.\n Possible C/C++ prototypes are:\n chain(ViewEdgeInternal::ViewEdgeIterator &,UnaryPredicate1D &,UnaryFunction1D<void > &)\n Operators::chain(ViewEdgeInternal::ViewEdgeIterator &,UnaryPredicate1D &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_bidirectionalChain__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Operators_bidirectionalChain",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ChainingIterator, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_bidirectionalChain" "', argument " "1"" of type '" "ChainingIterator &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_bidirectionalChain" "', argument " "1"" of type '" "ChainingIterator &""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_bidirectionalChain" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_bidirectionalChain" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ {
+ try {
+ Operators::bidirectionalChain(*arg1,*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_bidirectionalChain__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ChainingIterator *arg1 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Operators_bidirectionalChain",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_ChainingIterator, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_bidirectionalChain" "', argument " "1"" of type '" "ChainingIterator &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_bidirectionalChain" "', argument " "1"" of type '" "ChainingIterator &""'");
+ }
+ arg1 = reinterpret_cast< ChainingIterator * >(argp1);
+ {
+ try {
+ Operators::bidirectionalChain(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_bidirectionalChain(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ChainingIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Operators_bidirectionalChain__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_ChainingIterator, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Operators_bidirectionalChain__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Operators_bidirectionalChain'.\n Possible C/C++ prototypes are:\n bidirectionalChain(ChainingIterator &,UnaryPredicate1D &)\n Operators::bidirectionalChain(ChainingIterator &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_sequentialSplit__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate0D *arg1 = 0 ;
+ UnaryPredicate0D *arg2 = 0 ;
+ float arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Operators_sequentialSplit",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryPredicate0D, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_sequentialSplit" "', argument " "1"" of type '" "UnaryPredicate0D &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_sequentialSplit" "', argument " "1"" of type '" "UnaryPredicate0D &""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_sequentialSplit" "', argument " "2"" of type '" "UnaryPredicate0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_sequentialSplit" "', argument " "2"" of type '" "UnaryPredicate0D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate0D * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Operators_sequentialSplit" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ Operators::sequentialSplit(*arg1,*arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_sequentialSplit__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate0D *arg1 = 0 ;
+ UnaryPredicate0D *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Operators_sequentialSplit",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryPredicate0D, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_sequentialSplit" "', argument " "1"" of type '" "UnaryPredicate0D &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_sequentialSplit" "', argument " "1"" of type '" "UnaryPredicate0D &""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate0D * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_sequentialSplit" "', argument " "2"" of type '" "UnaryPredicate0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_sequentialSplit" "', argument " "2"" of type '" "UnaryPredicate0D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate0D * >(argp2);
+ {
+ try {
+ Operators::sequentialSplit(*arg1,*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_sequentialSplit__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate0D *arg1 = 0 ;
+ float arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ float val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Operators_sequentialSplit",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryPredicate0D, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_sequentialSplit" "', argument " "1"" of type '" "UnaryPredicate0D &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_sequentialSplit" "', argument " "1"" of type '" "UnaryPredicate0D &""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate0D * >(argp1);
+ ecode2 = SWIG_AsVal_float(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Operators_sequentialSplit" "', argument " "2"" of type '" "float""'");
+ }
+ arg2 = static_cast< float >(val2);
+ {
+ try {
+ Operators::sequentialSplit(*arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_sequentialSplit__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate0D *arg1 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Operators_sequentialSplit",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryPredicate0D, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_sequentialSplit" "', argument " "1"" of type '" "UnaryPredicate0D &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_sequentialSplit" "', argument " "1"" of type '" "UnaryPredicate0D &""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate0D * >(argp1);
+ {
+ try {
+ Operators::sequentialSplit(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_sequentialSplit(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryPredicate0D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Operators_sequentialSplit__SWIG_3(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryPredicate0D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate0D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Operators_sequentialSplit__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryPredicate0D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Operators_sequentialSplit__SWIG_2(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryPredicate0D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate0D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Operators_sequentialSplit__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Operators_sequentialSplit'.\n Possible C/C++ prototypes are:\n sequentialSplit(UnaryPredicate0D &,UnaryPredicate0D &,float)\n sequentialSplit(UnaryPredicate0D &,UnaryPredicate0D &)\n sequentialSplit(UnaryPredicate0D &,float)\n Operators::sequentialSplit(UnaryPredicate0D &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_recursiveSplit__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ float arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ float val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Operators_recursiveSplit",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_recursiveSplit" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_recursiveSplit" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ ecode3 = SWIG_AsVal_float(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Operators_recursiveSplit" "', argument " "3"" of type '" "float""'");
+ }
+ arg3 = static_cast< float >(val3);
+ {
+ try {
+ Operators::recursiveSplit(*arg1,*arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_recursiveSplit__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = 0 ;
+ UnaryPredicate1D *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Operators_recursiveSplit",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_recursiveSplit" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_recursiveSplit" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "2"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate1D * >(argp2);
+ {
+ try {
+ Operators::recursiveSplit(*arg1,*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_recursiveSplit__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = 0 ;
+ UnaryPredicate0D *arg2 = 0 ;
+ UnaryPredicate1D *arg3 = 0 ;
+ float arg4 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ float val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:Operators_recursiveSplit",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_recursiveSplit" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_recursiveSplit" "', argument " "2"" of type '" "UnaryPredicate0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "2"" of type '" "UnaryPredicate0D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate0D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Operators_recursiveSplit" "', argument " "3"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "3"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg3 = reinterpret_cast< UnaryPredicate1D * >(argp3);
+ ecode4 = SWIG_AsVal_float(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Operators_recursiveSplit" "', argument " "4"" of type '" "float""'");
+ }
+ arg4 = static_cast< float >(val4);
+ {
+ try {
+ Operators::recursiveSplit(*arg1,*arg2,*arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_recursiveSplit__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryFunction0D<double > *arg1 = 0 ;
+ UnaryPredicate0D *arg2 = 0 ;
+ UnaryPredicate1D *arg3 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Operators_recursiveSplit",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_recursiveSplit" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "1"" of type '" "UnaryFunction0D<double > &""'");
+ }
+ arg1 = reinterpret_cast< UnaryFunction0D<double > * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_UnaryPredicate0D, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Operators_recursiveSplit" "', argument " "2"" of type '" "UnaryPredicate0D &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "2"" of type '" "UnaryPredicate0D &""'");
+ }
+ arg2 = reinterpret_cast< UnaryPredicate0D * >(argp2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Operators_recursiveSplit" "', argument " "3"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp3) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_recursiveSplit" "', argument " "3"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg3 = reinterpret_cast< UnaryPredicate1D * >(argp3);
+ {
+ try {
+ Operators::recursiveSplit(*arg1,*arg2,*arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_recursiveSplit(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[5];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Operators_recursiveSplit__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Operators_recursiveSplit__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate0D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Operators_recursiveSplit__SWIG_3(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_UnaryFunction0DTdouble_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_UnaryPredicate0D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_UnaryPredicate1D, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Operators_recursiveSplit__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Operators_recursiveSplit'.\n Possible C/C++ prototypes are:\n recursiveSplit(UnaryFunction0D<double > &,UnaryPredicate1D &,float)\n recursiveSplit(UnaryFunction0D<double > &,UnaryPredicate1D &)\n recursiveSplit(UnaryFunction0D<double > &,UnaryPredicate0D &,UnaryPredicate1D &,float)\n Operators::recursiveSplit(UnaryFunction0D<double > &,UnaryPredicate0D &,UnaryPredicate1D &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_sort(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ BinaryPredicate1D *arg1 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Operators_sort",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_BinaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_sort" "', argument " "1"" of type '" "BinaryPredicate1D &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_sort" "', argument " "1"" of type '" "BinaryPredicate1D &""'");
+ }
+ arg1 = reinterpret_cast< BinaryPredicate1D * >(argp1);
+ {
+ try {
+ Operators::sort(*arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_create(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ UnaryPredicate1D *arg1 = 0 ;
+ std::vector<StrokeShader * > arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Operators_create",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_UnaryPredicate1D, 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Operators_create" "', argument " "1"" of type '" "UnaryPredicate1D &""'");
+ }
+ if (!argp1) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Operators_create" "', argument " "1"" of type '" "UnaryPredicate1D &""'");
+ }
+ arg1 = reinterpret_cast< UnaryPredicate1D * >(argp1);
+ {
+ std::vector<StrokeShader*,std::allocator<StrokeShader * > > *ptr = (std::vector<StrokeShader*,std::allocator<StrokeShader * > > *)0;
+ int res = swig::asptr(obj1, &ptr);
+ if (!SWIG_IsOK(res) || !ptr) {
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Operators_create" "', argument " "2"" of type '" "std::vector<StrokeShader * >""'");
+ }
+ arg2 = *ptr;
+ if (SWIG_IsNewObj(res)) delete ptr;
+ }
+ {
+ try {
+ Operators::create(*arg1,arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_getViewEdgeFromIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ ViewEdge *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Operators_getViewEdgeFromIndex",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Operators_getViewEdgeFromIndex" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ {
+ try {
+ result = (ViewEdge *)Operators::getViewEdgeFromIndex(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_getChainFromIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ Chain *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Operators_getChainFromIndex",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Operators_getChainFromIndex" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ {
+ try {
+ result = (Chain *)Operators::getChainFromIndex(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Chain, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_getStrokeFromIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int arg1 ;
+ Stroke *result = 0 ;
+ unsigned int val1 ;
+ int ecode1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Operators_getStrokeFromIndex",&obj0)) SWIG_fail;
+ ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "Operators_getStrokeFromIndex" "', argument " "1"" of type '" "unsigned int""'");
+ }
+ arg1 = static_cast< unsigned int >(val1);
+ {
+ try {
+ result = (Stroke *)Operators::getStrokeFromIndex(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Stroke, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_getViewEdgesSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Operators_getViewEdgesSize")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)Operators::getViewEdgesSize();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_getChainsSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Operators_getChainsSize")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)Operators::getChainsSize();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Operators_getStrokesSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ unsigned int result;
+
+ if (!PyArg_ParseTuple(args,(char *)":Operators_getStrokesSize")) SWIG_fail;
+ {
+ try {
+ result = (unsigned int)Operators::getStrokesSize();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Operators(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Operators *arg1 = (Operators *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Operators",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Operators, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Operators" "', argument " "1"" of type '" "Operators *""'");
+ }
+ arg1 = reinterpret_cast< Operators * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Operators_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Operators, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_ltstr___call__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ltstr *arg1 = (ltstr *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:ltstr___call__",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ltstr, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ltstr___call__" "', argument " "1"" of type '" "ltstr const *""'");
+ }
+ arg1 = reinterpret_cast< ltstr * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ltstr___call__" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ltstr___call__" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ {
+ try {
+ result = (bool)((ltstr const *)arg1)->operator ()((char const *)arg2,(char const *)arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ltstr(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ltstr *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_ltstr")) SWIG_fail;
+ {
+ try {
+ result = (ltstr *)new ltstr();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ltstr, SWIG_POINTER_NEW | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ltstr(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ ltstr *arg1 = (ltstr *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_ltstr",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ltstr, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ltstr" "', argument " "1"" of type '" "ltstr *""'");
+ }
+ arg1 = reinterpret_cast< ltstr * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *ltstr_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_ltstr, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_Canvas_getInstance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":Canvas_getInstance")) SWIG_fail;
+ {
+ try {
+ result = (Canvas *)Canvas::getInstance();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Canvas, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_Canvas(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_Canvas",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Canvas" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ delete arg1;
+
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_preDraw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_preDraw",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_preDraw" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->preDraw();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_Draw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_Draw",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_Draw" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->Draw();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_postDraw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_postDraw",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_postDraw" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->postDraw();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_Render(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ StrokeRenderer *arg2 = (StrokeRenderer *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_Render",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_Render" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeRenderer, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_Render" "', argument " "2"" of type '" "StrokeRenderer const *""'");
+ }
+ arg2 = reinterpret_cast< StrokeRenderer * >(argp2);
+ {
+ try {
+ (arg1)->Render((StrokeRenderer const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_RenderBasic(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ StrokeRenderer *arg2 = (StrokeRenderer *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_RenderBasic",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_RenderBasic" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeRenderer, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_RenderBasic" "', argument " "2"" of type '" "StrokeRenderer const *""'");
+ }
+ arg2 = reinterpret_cast< StrokeRenderer * >(argp2);
+ {
+ try {
+ (arg1)->RenderBasic((StrokeRenderer const *)arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_RenderStroke(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ Stroke *arg2 = (Stroke *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_RenderStroke",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_RenderStroke" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Stroke, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_RenderStroke" "', argument " "2"" of type '" "Stroke *""'");
+ }
+ arg2 = reinterpret_cast< Stroke * >(argp2);
+ {
+ try {
+ (arg1)->RenderStroke(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_init(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_init",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_init" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->init();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_Clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_Clear",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_Clear" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->Clear();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_Erase(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_Erase",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_Erase" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->Erase();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_readColorPixels(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ RGBImage *arg6 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ void *argp6 = 0 ;
+ int res6 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOO:Canvas_readColorPixels",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_readColorPixels" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_readColorPixels" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Canvas_readColorPixels" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Canvas_readColorPixels" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Canvas_readColorPixels" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_RGBImage, 0 );
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "Canvas_readColorPixels" "', argument " "6"" of type '" "RGBImage &""'");
+ }
+ if (!argp6) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Canvas_readColorPixels" "', argument " "6"" of type '" "RGBImage &""'");
+ }
+ arg6 = reinterpret_cast< RGBImage * >(argp6);
+ {
+ try {
+ ((Canvas const *)arg1)->readColorPixels(arg2,arg3,arg4,arg5,*arg6);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_readDepthPixels(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ int arg2 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ GrayImage *arg6 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ void *argp6 = 0 ;
+ int res6 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOO:Canvas_readDepthPixels",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_readDepthPixels" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_readDepthPixels" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Canvas_readDepthPixels" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Canvas_readDepthPixels" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Canvas_readDepthPixels" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ res6 = SWIG_ConvertPtr(obj5, &argp6, SWIGTYPE_p_GrayImage, 0 );
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "Canvas_readDepthPixels" "', argument " "6"" of type '" "GrayImage &""'");
+ }
+ if (!argp6) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Canvas_readDepthPixels" "', argument " "6"" of type '" "GrayImage &""'");
+ }
+ arg6 = reinterpret_cast< GrayImage * >(argp6);
+ {
+ try {
+ ((Canvas const *)arg1)->readDepthPixels(arg2,arg3,arg4,arg5,*arg6);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_update(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_update",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_update" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->update();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_isEmpty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_isEmpty",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_isEmpty" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (bool)((Canvas const *)arg1)->isEmpty();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_loadMap__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ unsigned int arg4 ;
+ float arg5 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ unsigned int val4 ;
+ int ecode4 = 0 ;
+ float val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Canvas_loadMap",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_loadMap" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_loadMap" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Canvas_loadMap" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ ecode4 = SWIG_AsVal_unsigned_SS_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Canvas_loadMap" "', argument " "4"" of type '" "unsigned int""'");
+ }
+ arg4 = static_cast< unsigned int >(val4);
+ ecode5 = SWIG_AsVal_float(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Canvas_loadMap" "', argument " "5"" of type '" "float""'");
+ }
+ arg5 = static_cast< float >(val5);
+ {
+ try {
+ (arg1)->loadMap((char const *)arg2,(char const *)arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_loadMap__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ unsigned int arg4 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ unsigned int val4 ;
+ int ecode4 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOO:Canvas_loadMap",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_loadMap" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_loadMap" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Canvas_loadMap" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ ecode4 = SWIG_AsVal_unsigned_SS_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Canvas_loadMap" "', argument " "4"" of type '" "unsigned int""'");
+ }
+ arg4 = static_cast< unsigned int >(val4);
+ {
+ try {
+ (arg1)->loadMap((char const *)arg2,(char const *)arg3,arg4);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_loadMap__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Canvas_loadMap",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_loadMap" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_loadMap" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Canvas_loadMap" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
+ {
+ try {
+ (arg1)->loadMap((char const *)arg2,(char const *)arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_loadMap(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[6];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 5); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Canvas_loadMap__SWIG_2(self, args);
+ }
+ }
+ }
+ }
+ if (argc == 4) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Canvas_loadMap__SWIG_1(self, args);
+ }
+ }
+ }
+ }
+ }
+ if (argc == 5) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[3], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ {
+ int res = SWIG_AsVal_float(argv[4], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Canvas_loadMap__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Canvas_loadMap'.\n Possible C/C++ prototypes are:\n loadMap(char const *,char const *,unsigned int,float)\n loadMap(char const *,char const *,unsigned int)\n loadMap(char const *,char const *)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_readMapPixel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ char *arg2 = (char *) 0 ;
+ int arg3 ;
+ int arg4 ;
+ int arg5 ;
+ float result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOOOO:Canvas_readMapPixel",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_readMapPixel" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_readMapPixel" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = reinterpret_cast< char * >(buf2);
+ ecode3 = SWIG_AsVal_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Canvas_readMapPixel" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = static_cast< int >(val3);
+ ecode4 = SWIG_AsVal_int(obj3, &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Canvas_readMapPixel" "', argument " "4"" of type '" "int""'");
+ }
+ arg4 = static_cast< int >(val4);
+ ecode5 = SWIG_AsVal_int(obj4, &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "Canvas_readMapPixel" "', argument " "5"" of type '" "int""'");
+ }
+ arg5 = static_cast< int >(val5);
+ {
+ try {
+ result = (float)(arg1)->readMapPixel((char const *)arg2,arg3,arg4,arg5);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_float(static_cast< float >(result));
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return resultobj;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_loadSteerableViewMap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ SteerableViewMap *arg2 = (SteerableViewMap *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_loadSteerableViewMap",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_loadSteerableViewMap" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SteerableViewMap, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_loadSteerableViewMap" "', argument " "2"" of type '" "SteerableViewMap *""'");
+ }
+ arg2 = reinterpret_cast< SteerableViewMap * >(argp2);
+ {
+ try {
+ (arg1)->loadSteerableViewMap(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_getSteerableViewMap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ SteerableViewMap *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_getSteerableViewMap",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_getSteerableViewMap" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (SteerableViewMap *)(arg1)->getSteerableViewMap();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SteerableViewMap, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_selectedFEdge__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_selectedFEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_selectedFEdge" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (FEdge *)((Canvas const *)arg1)->selectedFEdge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_selectedFEdge__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_selectedFEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_selectedFEdge" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (FEdge *)(arg1)->selectedFEdge();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_selectedFEdge(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[2];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Canvas_selectedFEdge__SWIG_1(self, args);
+ }
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Canvas_selectedFEdge__SWIG_0(self, args);
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Canvas_selectedFEdge'.\n Possible C/C++ prototypes are:\n selectedFEdge()\n selectedFEdge()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_width(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_width",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_width" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (int)((Canvas const *)arg1)->width();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_height(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_height",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_height" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (int)((Canvas const *)arg1)->height();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_currentPaperTextureIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ int result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_currentPaperTextureIndex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_currentPaperTextureIndex" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (int)((Canvas const *)arg1)->currentPaperTextureIndex();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_int(static_cast< int >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_scene3DBBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ SwigValueWrapper<BBox<VecMat::Vec3<double > > > result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_scene3DBBox",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_scene3DBBox" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = ((Canvas const *)arg1)->scene3DBBox();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj((new BBox<Geometry::Vec3r >(static_cast< const BBox<Geometry::Vec3r >& >(result))), SWIGTYPE_p_BBoxTVecMat__Vec3Tdouble_t_t, SWIG_POINTER_OWN | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_renderer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ StrokeRenderer *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_renderer",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_renderer" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (StrokeRenderer *)((Canvas const *)arg1)->renderer();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeRenderer, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_getCurrentStyleModule(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ StyleModule *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_getCurrentStyleModule",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_getCurrentStyleModule" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (StyleModule *)(arg1)->getCurrentStyleModule();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StyleModule, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_getRecordFlag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ bool result;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_getRecordFlag",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_getRecordFlag" "', argument " "1"" of type '" "Canvas const *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ result = (bool)((Canvas const *)arg1)->getRecordFlag();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_From_bool(static_cast< bool >(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_SetSelectedFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ FEdge *arg2 = (FEdge *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_SetSelectedFEdge",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_SetSelectedFEdge" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_FEdge, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_SetSelectedFEdge" "', argument " "2"" of type '" "FEdge *""'");
+ }
+ arg2 = reinterpret_cast< FEdge * >(argp2);
+ {
+ try {
+ (arg1)->SetSelectedFEdge(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_InsertStyleModule(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ unsigned int arg2 ;
+ StyleModule *arg3 = (StyleModule *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Canvas_InsertStyleModule",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_InsertStyleModule" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_InsertStyleModule" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_StyleModule, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Canvas_InsertStyleModule" "', argument " "3"" of type '" "StyleModule *""'");
+ }
+ arg3 = reinterpret_cast< StyleModule * >(argp3);
+ {
+ try {
+ (arg1)->InsertStyleModule(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_RemoveStyleModule(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ unsigned int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_RemoveStyleModule",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_RemoveStyleModule" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_RemoveStyleModule" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ {
+ try {
+ (arg1)->RemoveStyleModule(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_SwapStyleModules(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ unsigned int arg2 ;
+ unsigned int arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ unsigned int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Canvas_SwapStyleModules",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_SwapStyleModules" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_SwapStyleModules" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Canvas_SwapStyleModules" "', argument " "3"" of type '" "unsigned int""'");
+ }
+ arg3 = static_cast< unsigned int >(val3);
+ {
+ try {
+ (arg1)->SwapStyleModules(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_ReplaceStyleModule(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ unsigned int arg2 ;
+ StyleModule *arg3 = (StyleModule *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Canvas_ReplaceStyleModule",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_ReplaceStyleModule" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_ReplaceStyleModule" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_StyleModule, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Canvas_ReplaceStyleModule" "', argument " "3"" of type '" "StyleModule *""'");
+ }
+ arg3 = reinterpret_cast< StyleModule * >(argp3);
+ {
+ try {
+ (arg1)->ReplaceStyleModule(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_SetVisible(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ unsigned int arg2 ;
+ bool arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Canvas_SetVisible",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_SetVisible" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_SetVisible" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Canvas_SetVisible" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ (arg1)->SetVisible(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_AddLayer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ StrokeLayer *arg2 = (StrokeLayer *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_AddLayer",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_AddLayer" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_StrokeLayer, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_AddLayer" "', argument " "2"" of type '" "StrokeLayer *""'");
+ }
+ arg2 = reinterpret_cast< StrokeLayer * >(argp2);
+ {
+ try {
+ (arg1)->AddLayer(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_SetCurrentPaperTextureIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_SetCurrentPaperTextureIndex",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_SetCurrentPaperTextureIndex" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_SetCurrentPaperTextureIndex" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = static_cast< int >(val2);
+ {
+ try {
+ (arg1)->SetCurrentPaperTextureIndex(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_changePaperTexture__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ bool arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_changePaperTexture",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_changePaperTexture" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_changePaperTexture" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ (arg1)->changePaperTexture(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_changePaperTexture__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_changePaperTexture",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_changePaperTexture" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->changePaperTexture();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_changePaperTexture(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Canvas_changePaperTexture__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Canvas_changePaperTexture__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Canvas_changePaperTexture'.\n Possible C/C++ prototypes are:\n changePaperTexture(bool)\n changePaperTexture()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_togglePaperTexture(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_togglePaperTexture",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_togglePaperTexture" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->togglePaperTexture();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_resetModified__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ bool arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ bool val2 ;
+ int ecode2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_resetModified",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_resetModified" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_bool(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_resetModified" "', argument " "2"" of type '" "bool""'");
+ }
+ arg2 = static_cast< bool >(val2);
+ {
+ try {
+ (arg1)->resetModified(arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_resetModified__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:Canvas_resetModified",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_resetModified" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ {
+ try {
+ (arg1)->resetModified();
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_resetModified(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[3];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 1) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Canvas_resetModified__SWIG_1(self, args);
+ }
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_bool(argv[1], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Canvas_resetModified__SWIG_0(self, args);
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Canvas_resetModified'.\n Possible C/C++ prototypes are:\n resetModified(bool)\n resetModified()\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_causalStyleModules__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ std::vector<unsigned int,std::allocator<unsigned int > > *arg2 = 0 ;
+ unsigned int arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ unsigned int val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Canvas_causalStyleModules",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_causalStyleModules" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_causalStyleModules" "', argument " "2"" of type '" "std::vector<unsigned int,std::allocator<unsigned int > > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Canvas_causalStyleModules" "', argument " "2"" of type '" "std::vector<unsigned int,std::allocator<unsigned int > > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<unsigned int,std::allocator<unsigned int > > * >(argp2);
+ ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Canvas_causalStyleModules" "', argument " "3"" of type '" "unsigned int""'");
+ }
+ arg3 = static_cast< unsigned int >(val3);
+ {
+ try {
+ (arg1)->causalStyleModules(*arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_causalStyleModules__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ std::vector<unsigned int,std::allocator<unsigned int > > *arg2 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:Canvas_causalStyleModules",&obj0,&obj1)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_causalStyleModules" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t, 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Canvas_causalStyleModules" "', argument " "2"" of type '" "std::vector<unsigned int,std::allocator<unsigned int > > &""'");
+ }
+ if (!argp2) {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Canvas_causalStyleModules" "', argument " "2"" of type '" "std::vector<unsigned int,std::allocator<unsigned int > > &""'");
+ }
+ arg2 = reinterpret_cast< std::vector<unsigned int,std::allocator<unsigned int > > * >(argp2);
+ {
+ try {
+ (arg1)->causalStyleModules(*arg2);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_causalStyleModules(PyObject *self, PyObject *args) {
+ int argc;
+ PyObject *argv[4];
+ int ii;
+
+ if (!PyTuple_Check(args)) SWIG_fail;
+ argc = PyObject_Length(args);
+ for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+ argv[ii] = PyTuple_GET_ITEM(args,ii);
+ }
+ if (argc == 2) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ return _wrap_Canvas_causalStyleModules__SWIG_1(self, args);
+ }
+ }
+ }
+ if (argc == 3) {
+ int _v;
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Canvas, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ void *vptr = 0;
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t, 0);
+ _v = SWIG_CheckState(res);
+ if (_v) {
+ {
+ int res = SWIG_AsVal_unsigned_SS_int(argv[2], NULL);
+ _v = SWIG_CheckState(res);
+ }
+ if (_v) {
+ return _wrap_Canvas_causalStyleModules__SWIG_0(self, args);
+ }
+ }
+ }
+ }
+
+fail:
+ SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Canvas_causalStyleModules'.\n Possible C/C++ prototypes are:\n causalStyleModules(std::vector<unsigned int,std::allocator<unsigned int > > &,unsigned int)\n causalStyleModules(std::vector<unsigned int,std::allocator<unsigned int > > &)\n");
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_Canvas_setModified(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Canvas *arg1 = (Canvas *) 0 ;
+ unsigned int arg2 ;
+ bool arg3 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ unsigned int val2 ;
+ int ecode2 = 0 ;
+ bool val3 ;
+ int ecode3 = 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OOO:Canvas_setModified",&obj0,&obj1,&obj2)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Canvas, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Canvas_setModified" "', argument " "1"" of type '" "Canvas *""'");
+ }
+ arg1 = reinterpret_cast< Canvas * >(argp1);
+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Canvas_setModified" "', argument " "2"" of type '" "unsigned int""'");
+ }
+ arg2 = static_cast< unsigned int >(val2);
+ ecode3 = SWIG_AsVal_bool(obj2, &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Canvas_setModified" "', argument " "3"" of type '" "bool""'");
+ }
+ arg3 = static_cast< bool >(val3);
+ {
+ try {
+ (arg1)->setModified(arg2,arg3);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *Canvas_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_Canvas, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_castToSVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ SVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToSVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToSVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (SVertex *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface0D,SVertex >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToViewVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ ViewVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToViewVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToViewVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (ViewVertex *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface0D,ViewVertex >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ TVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToTVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (TVertex *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface0D,TVertex >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToCurvePoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ CurvePoint *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToCurvePoint",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToCurvePoint" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (CurvePoint *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface0D,CurvePoint >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_CurvePoint, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToStrokeVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ StrokeVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToStrokeVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToStrokeVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (StrokeVertex *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface0D,StrokeVertex >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrokeVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToNonTVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface0D *arg1 = (Interface0D *) 0 ;
+ NonTVertex *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToNonTVertex",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface0D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToNonTVertex" "', argument " "1"" of type '" "Interface0D *""'");
+ }
+ arg1 = reinterpret_cast< Interface0D * >(argp1);
+ {
+ try {
+ result = (NonTVertex *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface0D,NonTVertex >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NonTVertex, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToFEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ FEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToFEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToFEdge" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (FEdge *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface1D,FEdge >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToViewEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ ViewEdge *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToViewEdge",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToViewEdge" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (ViewEdge *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface1D,ViewEdge >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ViewEdge, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToStroke(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ Stroke *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToStroke",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToStroke" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (Stroke *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface1D,Stroke >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Stroke, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_castToChain(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ Interface1D *arg1 = (Interface1D *) 0 ;
+ Chain *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:castToChain",&obj0)) SWIG_fail;
+ res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Interface1D, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "castToChain" "', argument " "1"" of type '" "Interface1D *""'");
+ }
+ arg1 = reinterpret_cast< Interface1D * >(argp1);
+ {
+ try {
+ result = (Chain *)Cast::SWIGTEMPLATEDISAMBIGUATOR cast<Interface1D,Chain >(arg1);
+ }
+ // catch (Swig::DirectorTypeMismatch&) {
+ // cout << "Warning: return type mismatch" << endl;
+ // }
+ catch (Swig::DirectorException&) {
+ cout << "Warning: director exception catched" << endl;
+ }
+ }
+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Chain, 0 | 0 );
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+static PyMethodDef SwigMethods[] = {
+ { (char *)"delete_PySwigIterator", _wrap_delete_PySwigIterator, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_value", _wrap_PySwigIterator_value, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_incr", _wrap_PySwigIterator_incr, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_decr", _wrap_PySwigIterator_decr, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_distance", _wrap_PySwigIterator_distance, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_equal", _wrap_PySwigIterator_equal, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_copy", _wrap_PySwigIterator_copy, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_next", _wrap_PySwigIterator_next, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_previous", _wrap_PySwigIterator_previous, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_advance", _wrap_PySwigIterator_advance, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator___eq__", _wrap_PySwigIterator___eq__, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator___ne__", _wrap_PySwigIterator___ne__, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator___iadd__", _wrap_PySwigIterator___iadd__, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator___isub__", _wrap_PySwigIterator___isub__, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator___add__", _wrap_PySwigIterator___add__, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator___sub__", _wrap_PySwigIterator___sub__, METH_VARARGS, NULL},
+ { (char *)"PySwigIterator_swigregister", PySwigIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"vectorInt_iterator", _wrap_vectorInt_iterator, METH_VARARGS, NULL},
+ { (char *)"vectorInt___nonzero__", _wrap_vectorInt___nonzero__, METH_VARARGS, NULL},
+ { (char *)"vectorInt___len__", _wrap_vectorInt___len__, METH_VARARGS, NULL},
+ { (char *)"vectorInt_pop", _wrap_vectorInt_pop, METH_VARARGS, NULL},
+ { (char *)"vectorInt___getslice__", _wrap_vectorInt___getslice__, METH_VARARGS, NULL},
+ { (char *)"vectorInt___setslice__", _wrap_vectorInt___setslice__, METH_VARARGS, NULL},
+ { (char *)"vectorInt___delslice__", _wrap_vectorInt___delslice__, METH_VARARGS, NULL},
+ { (char *)"vectorInt___delitem__", _wrap_vectorInt___delitem__, METH_VARARGS, NULL},
+ { (char *)"vectorInt___getitem__", _wrap_vectorInt___getitem__, METH_VARARGS, NULL},
+ { (char *)"vectorInt___setitem__", _wrap_vectorInt___setitem__, METH_VARARGS, NULL},
+ { (char *)"vectorInt_append", _wrap_vectorInt_append, METH_VARARGS, NULL},
+ { (char *)"vectorInt_empty", _wrap_vectorInt_empty, METH_VARARGS, NULL},
+ { (char *)"vectorInt_size", _wrap_vectorInt_size, METH_VARARGS, NULL},
+ { (char *)"vectorInt_clear", _wrap_vectorInt_clear, METH_VARARGS, NULL},
+ { (char *)"vectorInt_swap", _wrap_vectorInt_swap, METH_VARARGS, NULL},
+ { (char *)"vectorInt_get_allocator", _wrap_vectorInt_get_allocator, METH_VARARGS, NULL},
+ { (char *)"vectorInt_begin", _wrap_vectorInt_begin, METH_VARARGS, NULL},
+ { (char *)"vectorInt_end", _wrap_vectorInt_end, METH_VARARGS, NULL},
+ { (char *)"vectorInt_rbegin", _wrap_vectorInt_rbegin, METH_VARARGS, NULL},
+ { (char *)"vectorInt_rend", _wrap_vectorInt_rend, METH_VARARGS, NULL},
+ { (char *)"vectorInt_pop_back", _wrap_vectorInt_pop_back, METH_VARARGS, NULL},
+ { (char *)"vectorInt_erase", _wrap_vectorInt_erase, METH_VARARGS, NULL},
+ { (char *)"new_vectorInt", _wrap_new_vectorInt, METH_VARARGS, NULL},
+ { (char *)"vectorInt_push_back", _wrap_vectorInt_push_back, METH_VARARGS, NULL},
+ { (char *)"vectorInt_front", _wrap_vectorInt_front, METH_VARARGS, NULL},
+ { (char *)"vectorInt_back", _wrap_vectorInt_back, METH_VARARGS, NULL},
+ { (char *)"vectorInt_assign", _wrap_vectorInt_assign, METH_VARARGS, NULL},
+ { (char *)"vectorInt_resize", _wrap_vectorInt_resize, METH_VARARGS, NULL},
+ { (char *)"vectorInt_insert", _wrap_vectorInt_insert, METH_VARARGS, NULL},
+ { (char *)"vectorInt_reserve", _wrap_vectorInt_reserve, METH_VARARGS, NULL},
+ { (char *)"vectorInt_capacity", _wrap_vectorInt_capacity, METH_VARARGS, NULL},
+ { (char *)"delete_vectorInt", _wrap_delete_vectorInt, METH_VARARGS, NULL},
+ { (char *)"vectorInt_swigregister", vectorInt_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Id", _wrap_new_Id, METH_VARARGS, NULL},
+ { (char *)"Id_getFirst", _wrap_Id_getFirst, METH_VARARGS, NULL},
+ { (char *)"Id_getSecond", _wrap_Id_getSecond, METH_VARARGS, NULL},
+ { (char *)"Id_setFirst", _wrap_Id_setFirst, METH_VARARGS, NULL},
+ { (char *)"Id_setSecond", _wrap_Id_setSecond, METH_VARARGS, NULL},
+ { (char *)"Id___eq__", _wrap_Id___eq__, METH_VARARGS, NULL},
+ { (char *)"Id___ne__", _wrap_Id___ne__, METH_VARARGS, NULL},
+ { (char *)"Id___lt__", _wrap_Id___lt__, METH_VARARGS, NULL},
+ { (char *)"delete_Id", _wrap_delete_Id, METH_VARARGS, NULL},
+ { (char *)"Id_swigregister", Id_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec_2u", _wrap_new_Vec_2u, METH_VARARGS, NULL},
+ { (char *)"delete_Vec_2u", _wrap_delete_Vec_2u, METH_VARARGS, NULL},
+ { (char *)"Vec_2u_dim", _wrap_Vec_2u_dim, METH_VARARGS, NULL},
+ { (char *)"Vec_2u_norm", _wrap_Vec_2u_norm, METH_VARARGS, NULL},
+ { (char *)"Vec_2u_squareNorm", _wrap_Vec_2u_squareNorm, METH_VARARGS, NULL},
+ { (char *)"Vec_2u_normalize", _wrap_Vec_2u_normalize, METH_VARARGS, NULL},
+ { (char *)"Vec_2u_normalizeSafe", _wrap_Vec_2u_normalizeSafe, METH_VARARGS, NULL},
+ { (char *)"Vec_2u___add__", _wrap_Vec_2u___add__, METH_VARARGS, NULL},
+ { (char *)"Vec_2u___sub__", _wrap_Vec_2u___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec_2u___div__", _wrap_Vec_2u___div__, METH_VARARGS, NULL},
+ { (char *)"Vec_2u___mul__", _wrap_Vec_2u___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec_2u___eq__", _wrap_Vec_2u___eq__, METH_VARARGS, NULL},
+ { (char *)"Vec_2u___ne__", _wrap_Vec_2u___ne__, METH_VARARGS, NULL},
+ { (char *)"Vec_2u___lt__", _wrap_Vec_2u___lt__, METH_VARARGS, NULL},
+ { (char *)"Vec_2u___gt__", _wrap_Vec_2u___gt__, METH_VARARGS, NULL},
+ { (char *)"Vec_2u_swigregister", Vec_2u_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec_2i", _wrap_new_Vec_2i, METH_VARARGS, NULL},
+ { (char *)"delete_Vec_2i", _wrap_delete_Vec_2i, METH_VARARGS, NULL},
+ { (char *)"Vec_2i_dim", _wrap_Vec_2i_dim, METH_VARARGS, NULL},
+ { (char *)"Vec_2i_norm", _wrap_Vec_2i_norm, METH_VARARGS, NULL},
+ { (char *)"Vec_2i_squareNorm", _wrap_Vec_2i_squareNorm, METH_VARARGS, NULL},
+ { (char *)"Vec_2i_normalize", _wrap_Vec_2i_normalize, METH_VARARGS, NULL},
+ { (char *)"Vec_2i_normalizeSafe", _wrap_Vec_2i_normalizeSafe, METH_VARARGS, NULL},
+ { (char *)"Vec_2i___add__", _wrap_Vec_2i___add__, METH_VARARGS, NULL},
+ { (char *)"Vec_2i___sub__", _wrap_Vec_2i___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec_2i___div__", _wrap_Vec_2i___div__, METH_VARARGS, NULL},
+ { (char *)"Vec_2i___mul__", _wrap_Vec_2i___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec_2i___eq__", _wrap_Vec_2i___eq__, METH_VARARGS, NULL},
+ { (char *)"Vec_2i___ne__", _wrap_Vec_2i___ne__, METH_VARARGS, NULL},
+ { (char *)"Vec_2i___lt__", _wrap_Vec_2i___lt__, METH_VARARGS, NULL},
+ { (char *)"Vec_2i___gt__", _wrap_Vec_2i___gt__, METH_VARARGS, NULL},
+ { (char *)"Vec_2i_swigregister", Vec_2i_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec_2d", _wrap_new_Vec_2d, METH_VARARGS, NULL},
+ { (char *)"delete_Vec_2d", _wrap_delete_Vec_2d, METH_VARARGS, NULL},
+ { (char *)"Vec_2d_dim", _wrap_Vec_2d_dim, METH_VARARGS, NULL},
+ { (char *)"Vec_2d_norm", _wrap_Vec_2d_norm, METH_VARARGS, NULL},
+ { (char *)"Vec_2d_squareNorm", _wrap_Vec_2d_squareNorm, METH_VARARGS, NULL},
+ { (char *)"Vec_2d_normalize", _wrap_Vec_2d_normalize, METH_VARARGS, NULL},
+ { (char *)"Vec_2d_normalizeSafe", _wrap_Vec_2d_normalizeSafe, METH_VARARGS, NULL},
+ { (char *)"Vec_2d___add__", _wrap_Vec_2d___add__, METH_VARARGS, NULL},
+ { (char *)"Vec_2d___sub__", _wrap_Vec_2d___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec_2d___div__", _wrap_Vec_2d___div__, METH_VARARGS, NULL},
+ { (char *)"Vec_2d___mul__", _wrap_Vec_2d___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec_2d___eq__", _wrap_Vec_2d___eq__, METH_VARARGS, NULL},
+ { (char *)"Vec_2d___ne__", _wrap_Vec_2d___ne__, METH_VARARGS, NULL},
+ { (char *)"Vec_2d___lt__", _wrap_Vec_2d___lt__, METH_VARARGS, NULL},
+ { (char *)"Vec_2d___gt__", _wrap_Vec_2d___gt__, METH_VARARGS, NULL},
+ { (char *)"Vec_2d_swigregister", Vec_2d_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec_2f", _wrap_new_Vec_2f, METH_VARARGS, NULL},
+ { (char *)"delete_Vec_2f", _wrap_delete_Vec_2f, METH_VARARGS, NULL},
+ { (char *)"Vec_2f_dim", _wrap_Vec_2f_dim, METH_VARARGS, NULL},
+ { (char *)"Vec_2f_norm", _wrap_Vec_2f_norm, METH_VARARGS, NULL},
+ { (char *)"Vec_2f_squareNorm", _wrap_Vec_2f_squareNorm, METH_VARARGS, NULL},
+ { (char *)"Vec_2f_normalize", _wrap_Vec_2f_normalize, METH_VARARGS, NULL},
+ { (char *)"Vec_2f_normalizeSafe", _wrap_Vec_2f_normalizeSafe, METH_VARARGS, NULL},
+ { (char *)"Vec_2f___add__", _wrap_Vec_2f___add__, METH_VARARGS, NULL},
+ { (char *)"Vec_2f___sub__", _wrap_Vec_2f___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec_2f___div__", _wrap_Vec_2f___div__, METH_VARARGS, NULL},
+ { (char *)"Vec_2f___mul__", _wrap_Vec_2f___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec_2f___eq__", _wrap_Vec_2f___eq__, METH_VARARGS, NULL},
+ { (char *)"Vec_2f___ne__", _wrap_Vec_2f___ne__, METH_VARARGS, NULL},
+ { (char *)"Vec_2f___lt__", _wrap_Vec_2f___lt__, METH_VARARGS, NULL},
+ { (char *)"Vec_2f___gt__", _wrap_Vec_2f___gt__, METH_VARARGS, NULL},
+ { (char *)"Vec_2f_swigregister", Vec_2f_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec2u", _wrap_new_Vec2u, METH_VARARGS, NULL},
+ { (char *)"Vec2u_x", _wrap_Vec2u_x, METH_VARARGS, NULL},
+ { (char *)"Vec2u_y", _wrap_Vec2u_y, METH_VARARGS, NULL},
+ { (char *)"Vec2u_setX", _wrap_Vec2u_setX, METH_VARARGS, NULL},
+ { (char *)"Vec2u_setY", _wrap_Vec2u_setY, METH_VARARGS, NULL},
+ { (char *)"Vec2u___add__", _wrap_Vec2u___add__, METH_VARARGS, NULL},
+ { (char *)"Vec2u___sub__", _wrap_Vec2u___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec2u___div__", _wrap_Vec2u___div__, METH_VARARGS, NULL},
+ { (char *)"Vec2u___mul__", _wrap_Vec2u___mul__, METH_VARARGS, NULL},
+ { (char *)"delete_Vec2u", _wrap_delete_Vec2u, METH_VARARGS, NULL},
+ { (char *)"Vec2u_swigregister", Vec2u_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec2i", _wrap_new_Vec2i, METH_VARARGS, NULL},
+ { (char *)"Vec2i_x", _wrap_Vec2i_x, METH_VARARGS, NULL},
+ { (char *)"Vec2i_y", _wrap_Vec2i_y, METH_VARARGS, NULL},
+ { (char *)"Vec2i_setX", _wrap_Vec2i_setX, METH_VARARGS, NULL},
+ { (char *)"Vec2i_setY", _wrap_Vec2i_setY, METH_VARARGS, NULL},
+ { (char *)"Vec2i___add__", _wrap_Vec2i___add__, METH_VARARGS, NULL},
+ { (char *)"Vec2i___sub__", _wrap_Vec2i___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec2i___div__", _wrap_Vec2i___div__, METH_VARARGS, NULL},
+ { (char *)"Vec2i___mul__", _wrap_Vec2i___mul__, METH_VARARGS, NULL},
+ { (char *)"delete_Vec2i", _wrap_delete_Vec2i, METH_VARARGS, NULL},
+ { (char *)"Vec2i_swigregister", Vec2i_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec2f", _wrap_new_Vec2f, METH_VARARGS, NULL},
+ { (char *)"Vec2f_x", _wrap_Vec2f_x, METH_VARARGS, NULL},
+ { (char *)"Vec2f_y", _wrap_Vec2f_y, METH_VARARGS, NULL},
+ { (char *)"Vec2f_setX", _wrap_Vec2f_setX, METH_VARARGS, NULL},
+ { (char *)"Vec2f_setY", _wrap_Vec2f_setY, METH_VARARGS, NULL},
+ { (char *)"Vec2f___add__", _wrap_Vec2f___add__, METH_VARARGS, NULL},
+ { (char *)"Vec2f___sub__", _wrap_Vec2f___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec2f___div__", _wrap_Vec2f___div__, METH_VARARGS, NULL},
+ { (char *)"Vec2f___mul__", _wrap_Vec2f___mul__, METH_VARARGS, NULL},
+ { (char *)"delete_Vec2f", _wrap_delete_Vec2f, METH_VARARGS, NULL},
+ { (char *)"Vec2f_swigregister", Vec2f_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec2d", _wrap_new_Vec2d, METH_VARARGS, NULL},
+ { (char *)"Vec2d_x", _wrap_Vec2d_x, METH_VARARGS, NULL},
+ { (char *)"Vec2d_y", _wrap_Vec2d_y, METH_VARARGS, NULL},
+ { (char *)"Vec2d_setX", _wrap_Vec2d_setX, METH_VARARGS, NULL},
+ { (char *)"Vec2d_setY", _wrap_Vec2d_setY, METH_VARARGS, NULL},
+ { (char *)"Vec2d___add__", _wrap_Vec2d___add__, METH_VARARGS, NULL},
+ { (char *)"Vec2d___sub__", _wrap_Vec2d___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec2d___div__", _wrap_Vec2d___div__, METH_VARARGS, NULL},
+ { (char *)"Vec2d___mul__", _wrap_Vec2d___mul__, METH_VARARGS, NULL},
+ { (char *)"delete_Vec2d", _wrap_delete_Vec2d, METH_VARARGS, NULL},
+ { (char *)"Vec2d_swigregister", Vec2d_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec_3u", _wrap_new_Vec_3u, METH_VARARGS, NULL},
+ { (char *)"delete_Vec_3u", _wrap_delete_Vec_3u, METH_VARARGS, NULL},
+ { (char *)"Vec_3u_dim", _wrap_Vec_3u_dim, METH_VARARGS, NULL},
+ { (char *)"Vec_3u_norm", _wrap_Vec_3u_norm, METH_VARARGS, NULL},
+ { (char *)"Vec_3u_squareNorm", _wrap_Vec_3u_squareNorm, METH_VARARGS, NULL},
+ { (char *)"Vec_3u_normalize", _wrap_Vec_3u_normalize, METH_VARARGS, NULL},
+ { (char *)"Vec_3u_normalizeSafe", _wrap_Vec_3u_normalizeSafe, METH_VARARGS, NULL},
+ { (char *)"Vec_3u___add__", _wrap_Vec_3u___add__, METH_VARARGS, NULL},
+ { (char *)"Vec_3u___sub__", _wrap_Vec_3u___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec_3u___div__", _wrap_Vec_3u___div__, METH_VARARGS, NULL},
+ { (char *)"Vec_3u___mul__", _wrap_Vec_3u___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec_3u___eq__", _wrap_Vec_3u___eq__, METH_VARARGS, NULL},
+ { (char *)"Vec_3u___ne__", _wrap_Vec_3u___ne__, METH_VARARGS, NULL},
+ { (char *)"Vec_3u___lt__", _wrap_Vec_3u___lt__, METH_VARARGS, NULL},
+ { (char *)"Vec_3u___gt__", _wrap_Vec_3u___gt__, METH_VARARGS, NULL},
+ { (char *)"Vec_3u_swigregister", Vec_3u_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec_3i", _wrap_new_Vec_3i, METH_VARARGS, NULL},
+ { (char *)"delete_Vec_3i", _wrap_delete_Vec_3i, METH_VARARGS, NULL},
+ { (char *)"Vec_3i_dim", _wrap_Vec_3i_dim, METH_VARARGS, NULL},
+ { (char *)"Vec_3i_norm", _wrap_Vec_3i_norm, METH_VARARGS, NULL},
+ { (char *)"Vec_3i_squareNorm", _wrap_Vec_3i_squareNorm, METH_VARARGS, NULL},
+ { (char *)"Vec_3i_normalize", _wrap_Vec_3i_normalize, METH_VARARGS, NULL},
+ { (char *)"Vec_3i_normalizeSafe", _wrap_Vec_3i_normalizeSafe, METH_VARARGS, NULL},
+ { (char *)"Vec_3i___add__", _wrap_Vec_3i___add__, METH_VARARGS, NULL},
+ { (char *)"Vec_3i___sub__", _wrap_Vec_3i___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec_3i___div__", _wrap_Vec_3i___div__, METH_VARARGS, NULL},
+ { (char *)"Vec_3i___mul__", _wrap_Vec_3i___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec_3i___eq__", _wrap_Vec_3i___eq__, METH_VARARGS, NULL},
+ { (char *)"Vec_3i___ne__", _wrap_Vec_3i___ne__, METH_VARARGS, NULL},
+ { (char *)"Vec_3i___lt__", _wrap_Vec_3i___lt__, METH_VARARGS, NULL},
+ { (char *)"Vec_3i___gt__", _wrap_Vec_3i___gt__, METH_VARARGS, NULL},
+ { (char *)"Vec_3i_swigregister", Vec_3i_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec_3d", _wrap_new_Vec_3d, METH_VARARGS, NULL},
+ { (char *)"delete_Vec_3d", _wrap_delete_Vec_3d, METH_VARARGS, NULL},
+ { (char *)"Vec_3d_dim", _wrap_Vec_3d_dim, METH_VARARGS, NULL},
+ { (char *)"Vec_3d_norm", _wrap_Vec_3d_norm, METH_VARARGS, NULL},
+ { (char *)"Vec_3d_squareNorm", _wrap_Vec_3d_squareNorm, METH_VARARGS, NULL},
+ { (char *)"Vec_3d_normalize", _wrap_Vec_3d_normalize, METH_VARARGS, NULL},
+ { (char *)"Vec_3d_normalizeSafe", _wrap_Vec_3d_normalizeSafe, METH_VARARGS, NULL},
+ { (char *)"Vec_3d___add__", _wrap_Vec_3d___add__, METH_VARARGS, NULL},
+ { (char *)"Vec_3d___sub__", _wrap_Vec_3d___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec_3d___div__", _wrap_Vec_3d___div__, METH_VARARGS, NULL},
+ { (char *)"Vec_3d___mul__", _wrap_Vec_3d___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec_3d___eq__", _wrap_Vec_3d___eq__, METH_VARARGS, NULL},
+ { (char *)"Vec_3d___ne__", _wrap_Vec_3d___ne__, METH_VARARGS, NULL},
+ { (char *)"Vec_3d___lt__", _wrap_Vec_3d___lt__, METH_VARARGS, NULL},
+ { (char *)"Vec_3d___gt__", _wrap_Vec_3d___gt__, METH_VARARGS, NULL},
+ { (char *)"Vec_3d_swigregister", Vec_3d_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec_3f", _wrap_new_Vec_3f, METH_VARARGS, NULL},
+ { (char *)"delete_Vec_3f", _wrap_delete_Vec_3f, METH_VARARGS, NULL},
+ { (char *)"Vec_3f_dim", _wrap_Vec_3f_dim, METH_VARARGS, NULL},
+ { (char *)"Vec_3f_norm", _wrap_Vec_3f_norm, METH_VARARGS, NULL},
+ { (char *)"Vec_3f_squareNorm", _wrap_Vec_3f_squareNorm, METH_VARARGS, NULL},
+ { (char *)"Vec_3f_normalize", _wrap_Vec_3f_normalize, METH_VARARGS, NULL},
+ { (char *)"Vec_3f_normalizeSafe", _wrap_Vec_3f_normalizeSafe, METH_VARARGS, NULL},
+ { (char *)"Vec_3f___add__", _wrap_Vec_3f___add__, METH_VARARGS, NULL},
+ { (char *)"Vec_3f___sub__", _wrap_Vec_3f___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec_3f___div__", _wrap_Vec_3f___div__, METH_VARARGS, NULL},
+ { (char *)"Vec_3f___mul__", _wrap_Vec_3f___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec_3f___eq__", _wrap_Vec_3f___eq__, METH_VARARGS, NULL},
+ { (char *)"Vec_3f___ne__", _wrap_Vec_3f___ne__, METH_VARARGS, NULL},
+ { (char *)"Vec_3f___lt__", _wrap_Vec_3f___lt__, METH_VARARGS, NULL},
+ { (char *)"Vec_3f___gt__", _wrap_Vec_3f___gt__, METH_VARARGS, NULL},
+ { (char *)"Vec_3f_swigregister", Vec_3f_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec3u", _wrap_new_Vec3u, METH_VARARGS, NULL},
+ { (char *)"Vec3u_x", _wrap_Vec3u_x, METH_VARARGS, NULL},
+ { (char *)"Vec3u_y", _wrap_Vec3u_y, METH_VARARGS, NULL},
+ { (char *)"Vec3u_z", _wrap_Vec3u_z, METH_VARARGS, NULL},
+ { (char *)"Vec3u_setX", _wrap_Vec3u_setX, METH_VARARGS, NULL},
+ { (char *)"Vec3u_setY", _wrap_Vec3u_setY, METH_VARARGS, NULL},
+ { (char *)"Vec3u_setZ", _wrap_Vec3u_setZ, METH_VARARGS, NULL},
+ { (char *)"Vec3u___add__", _wrap_Vec3u___add__, METH_VARARGS, NULL},
+ { (char *)"Vec3u___sub__", _wrap_Vec3u___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec3u___div__", _wrap_Vec3u___div__, METH_VARARGS, NULL},
+ { (char *)"Vec3u___mul__", _wrap_Vec3u___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec3u___xor__", _wrap_Vec3u___xor__, METH_VARARGS, NULL},
+ { (char *)"delete_Vec3u", _wrap_delete_Vec3u, METH_VARARGS, NULL},
+ { (char *)"Vec3u_swigregister", Vec3u_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec3i", _wrap_new_Vec3i, METH_VARARGS, NULL},
+ { (char *)"Vec3i_x", _wrap_Vec3i_x, METH_VARARGS, NULL},
+ { (char *)"Vec3i_y", _wrap_Vec3i_y, METH_VARARGS, NULL},
+ { (char *)"Vec3i_z", _wrap_Vec3i_z, METH_VARARGS, NULL},
+ { (char *)"Vec3i_setX", _wrap_Vec3i_setX, METH_VARARGS, NULL},
+ { (char *)"Vec3i_setY", _wrap_Vec3i_setY, METH_VARARGS, NULL},
+ { (char *)"Vec3i_setZ", _wrap_Vec3i_setZ, METH_VARARGS, NULL},
+ { (char *)"Vec3i___add__", _wrap_Vec3i___add__, METH_VARARGS, NULL},
+ { (char *)"Vec3i___sub__", _wrap_Vec3i___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec3i___div__", _wrap_Vec3i___div__, METH_VARARGS, NULL},
+ { (char *)"Vec3i___mul__", _wrap_Vec3i___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec3i___xor__", _wrap_Vec3i___xor__, METH_VARARGS, NULL},
+ { (char *)"delete_Vec3i", _wrap_delete_Vec3i, METH_VARARGS, NULL},
+ { (char *)"Vec3i_swigregister", Vec3i_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec3f", _wrap_new_Vec3f, METH_VARARGS, NULL},
+ { (char *)"Vec3f_x", _wrap_Vec3f_x, METH_VARARGS, NULL},
+ { (char *)"Vec3f_y", _wrap_Vec3f_y, METH_VARARGS, NULL},
+ { (char *)"Vec3f_z", _wrap_Vec3f_z, METH_VARARGS, NULL},
+ { (char *)"Vec3f_setX", _wrap_Vec3f_setX, METH_VARARGS, NULL},
+ { (char *)"Vec3f_setY", _wrap_Vec3f_setY, METH_VARARGS, NULL},
+ { (char *)"Vec3f_setZ", _wrap_Vec3f_setZ, METH_VARARGS, NULL},
+ { (char *)"Vec3f___add__", _wrap_Vec3f___add__, METH_VARARGS, NULL},
+ { (char *)"Vec3f___sub__", _wrap_Vec3f___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec3f___div__", _wrap_Vec3f___div__, METH_VARARGS, NULL},
+ { (char *)"Vec3f___mul__", _wrap_Vec3f___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec3f___xor__", _wrap_Vec3f___xor__, METH_VARARGS, NULL},
+ { (char *)"delete_Vec3f", _wrap_delete_Vec3f, METH_VARARGS, NULL},
+ { (char *)"Vec3f_swigregister", Vec3f_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Vec3d", _wrap_new_Vec3d, METH_VARARGS, NULL},
+ { (char *)"Vec3d_x", _wrap_Vec3d_x, METH_VARARGS, NULL},
+ { (char *)"Vec3d_y", _wrap_Vec3d_y, METH_VARARGS, NULL},
+ { (char *)"Vec3d_z", _wrap_Vec3d_z, METH_VARARGS, NULL},
+ { (char *)"Vec3d_setX", _wrap_Vec3d_setX, METH_VARARGS, NULL},
+ { (char *)"Vec3d_setY", _wrap_Vec3d_setY, METH_VARARGS, NULL},
+ { (char *)"Vec3d_setZ", _wrap_Vec3d_setZ, METH_VARARGS, NULL},
+ { (char *)"Vec3d___add__", _wrap_Vec3d___add__, METH_VARARGS, NULL},
+ { (char *)"Vec3d___sub__", _wrap_Vec3d___sub__, METH_VARARGS, NULL},
+ { (char *)"Vec3d___div__", _wrap_Vec3d___div__, METH_VARARGS, NULL},
+ { (char *)"Vec3d___mul__", _wrap_Vec3d___mul__, METH_VARARGS, NULL},
+ { (char *)"Vec3d___xor__", _wrap_Vec3d___xor__, METH_VARARGS, NULL},
+ { (char *)"delete_Vec3d", _wrap_delete_Vec3d, METH_VARARGS, NULL},
+ { (char *)"Vec3d_swigregister", Vec3d_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Noise", _wrap_new_Noise, METH_VARARGS, NULL},
+ { (char *)"delete_Noise", _wrap_delete_Noise, METH_VARARGS, NULL},
+ { (char *)"Noise_turbulence1", _wrap_Noise_turbulence1, METH_VARARGS, NULL},
+ { (char *)"Noise_turbulence2", _wrap_Noise_turbulence2, METH_VARARGS, NULL},
+ { (char *)"Noise_turbulence3", _wrap_Noise_turbulence3, METH_VARARGS, NULL},
+ { (char *)"Noise_smoothNoise1", _wrap_Noise_smoothNoise1, METH_VARARGS, NULL},
+ { (char *)"Noise_smoothNoise2", _wrap_Noise_smoothNoise2, METH_VARARGS, NULL},
+ { (char *)"Noise_smoothNoise3", _wrap_Noise_smoothNoise3, METH_VARARGS, NULL},
+ { (char *)"Noise_swigregister", Noise_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Material", _wrap_new_Material, METH_VARARGS, NULL},
+ { (char *)"delete_Material", _wrap_delete_Material, METH_VARARGS, NULL},
+ { (char *)"Material_diffuse", _wrap_Material_diffuse, METH_VARARGS, NULL},
+ { (char *)"Material_diffuseR", _wrap_Material_diffuseR, METH_VARARGS, NULL},
+ { (char *)"Material_diffuseG", _wrap_Material_diffuseG, METH_VARARGS, NULL},
+ { (char *)"Material_diffuseB", _wrap_Material_diffuseB, METH_VARARGS, NULL},
+ { (char *)"Material_diffuseA", _wrap_Material_diffuseA, METH_VARARGS, NULL},
+ { (char *)"Material_specular", _wrap_Material_specular, METH_VARARGS, NULL},
+ { (char *)"Material_specularR", _wrap_Material_specularR, METH_VARARGS, NULL},
+ { (char *)"Material_specularG", _wrap_Material_specularG, METH_VARARGS, NULL},
+ { (char *)"Material_specularB", _wrap_Material_specularB, METH_VARARGS, NULL},
+ { (char *)"Material_specularA", _wrap_Material_specularA, METH_VARARGS, NULL},
+ { (char *)"Material_ambient", _wrap_Material_ambient, METH_VARARGS, NULL},
+ { (char *)"Material_ambientR", _wrap_Material_ambientR, METH_VARARGS, NULL},
+ { (char *)"Material_ambientG", _wrap_Material_ambientG, METH_VARARGS, NULL},
+ { (char *)"Material_ambientB", _wrap_Material_ambientB, METH_VARARGS, NULL},
+ { (char *)"Material_ambientA", _wrap_Material_ambientA, METH_VARARGS, NULL},
+ { (char *)"Material_emission", _wrap_Material_emission, METH_VARARGS, NULL},
+ { (char *)"Material_emissionR", _wrap_Material_emissionR, METH_VARARGS, NULL},
+ { (char *)"Material_emissionG", _wrap_Material_emissionG, METH_VARARGS, NULL},
+ { (char *)"Material_emissionB", _wrap_Material_emissionB, METH_VARARGS, NULL},
+ { (char *)"Material_emissionA", _wrap_Material_emissionA, METH_VARARGS, NULL},
+ { (char *)"Material_shininess", _wrap_Material_shininess, METH_VARARGS, NULL},
+ { (char *)"Material_SetDiffuse", _wrap_Material_SetDiffuse, METH_VARARGS, NULL},
+ { (char *)"Material_SetSpecular", _wrap_Material_SetSpecular, METH_VARARGS, NULL},
+ { (char *)"Material_SetAmbient", _wrap_Material_SetAmbient, METH_VARARGS, NULL},
+ { (char *)"Material_SetEmission", _wrap_Material_SetEmission, METH_VARARGS, NULL},
+ { (char *)"Material_SetShininess", _wrap_Material_SetShininess, METH_VARARGS, NULL},
+ { (char *)"Material___ne__", _wrap_Material___ne__, METH_VARARGS, NULL},
+ { (char *)"Material___eq__", _wrap_Material___eq__, METH_VARARGS, NULL},
+ { (char *)"Material_swigregister", Material_swigregister, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getExactTypeName", _wrap_Interface0D_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getX", _wrap_Interface0D_getX, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getY", _wrap_Interface0D_getY, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getZ", _wrap_Interface0D_getZ, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getPoint3D", _wrap_Interface0D_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getProjectedX", _wrap_Interface0D_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getProjectedY", _wrap_Interface0D_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getProjectedZ", _wrap_Interface0D_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getPoint2D", _wrap_Interface0D_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getFEdge", _wrap_Interface0D_getFEdge, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getId", _wrap_Interface0D_getId, METH_VARARGS, NULL},
+ { (char *)"Interface0D_getNature", _wrap_Interface0D_getNature, METH_VARARGS, NULL},
+ { (char *)"Interface0D_castToSVertex", _wrap_Interface0D_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0D_castToViewVertex", _wrap_Interface0D_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0D_castToNonTVertex", _wrap_Interface0D_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0D_castToTVertex", _wrap_Interface0D_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"new_Interface0D", _wrap_new_Interface0D, METH_VARARGS, NULL},
+ { (char *)"delete_Interface0D", _wrap_delete_Interface0D, METH_VARARGS, NULL},
+ { (char *)"Interface0D_swigregister", Interface0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"delete_Interface0DIteratorNested", _wrap_delete_Interface0DIteratorNested, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getExactTypeName", _wrap_Interface0DIteratorNested_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getObject", _wrap_Interface0DIteratorNested_getObject, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested___deref__", _wrap_Interface0DIteratorNested___deref__, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_increment", _wrap_Interface0DIteratorNested_increment, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_decrement", _wrap_Interface0DIteratorNested_decrement, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_isBegin", _wrap_Interface0DIteratorNested_isBegin, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_isEnd", _wrap_Interface0DIteratorNested_isEnd, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested___eq__", _wrap_Interface0DIteratorNested___eq__, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested___ne__", _wrap_Interface0DIteratorNested___ne__, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_t", _wrap_Interface0DIteratorNested_t, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_u", _wrap_Interface0DIteratorNested_u, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_copy", _wrap_Interface0DIteratorNested_copy, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getX", _wrap_Interface0DIteratorNested_getX, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getY", _wrap_Interface0DIteratorNested_getY, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getZ", _wrap_Interface0DIteratorNested_getZ, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getPoint3D", _wrap_Interface0DIteratorNested_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getProjectedX", _wrap_Interface0DIteratorNested_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getProjectedY", _wrap_Interface0DIteratorNested_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getProjectedZ", _wrap_Interface0DIteratorNested_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getPoint2D", _wrap_Interface0DIteratorNested_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getFEdge", _wrap_Interface0DIteratorNested_getFEdge, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getId", _wrap_Interface0DIteratorNested_getId, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_getNature", _wrap_Interface0DIteratorNested_getNature, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_castToSVertex", _wrap_Interface0DIteratorNested_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_castToViewVertex", _wrap_Interface0DIteratorNested_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_castToNonTVertex", _wrap_Interface0DIteratorNested_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_castToTVertex", _wrap_Interface0DIteratorNested_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0DIteratorNested_swigregister", Interface0DIteratorNested_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Interface0DIterator", _wrap_new_Interface0DIterator, METH_VARARGS, NULL},
+ { (char *)"delete_Interface0DIterator", _wrap_delete_Interface0DIterator, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getExactTypeName", _wrap_Interface0DIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getObject", _wrap_Interface0DIterator_getObject, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator___deref__", _wrap_Interface0DIterator___deref__, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_increment", _wrap_Interface0DIterator_increment, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_decrement", _wrap_Interface0DIterator_decrement, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_isBegin", _wrap_Interface0DIterator_isBegin, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_isEnd", _wrap_Interface0DIterator_isEnd, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator___eq__", _wrap_Interface0DIterator___eq__, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator___ne__", _wrap_Interface0DIterator___ne__, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_t", _wrap_Interface0DIterator_t, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_u", _wrap_Interface0DIterator_u, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getX", _wrap_Interface0DIterator_getX, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getY", _wrap_Interface0DIterator_getY, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getZ", _wrap_Interface0DIterator_getZ, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getPoint3D", _wrap_Interface0DIterator_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getProjectedX", _wrap_Interface0DIterator_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getProjectedY", _wrap_Interface0DIterator_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getProjectedZ", _wrap_Interface0DIterator_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getPoint2D", _wrap_Interface0DIterator_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getFEdge", _wrap_Interface0DIterator_getFEdge, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getId", _wrap_Interface0DIterator_getId, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_getNature", _wrap_Interface0DIterator_getNature, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_castToSVertex", _wrap_Interface0DIterator_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_castToViewVertex", _wrap_Interface0DIterator_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_castToNonTVertex", _wrap_Interface0DIterator_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_castToTVertex", _wrap_Interface0DIterator_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"Interface0DIterator_swigregister", Interface0DIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"Interface1D_getExactTypeName", _wrap_Interface1D_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"Interface1D_verticesBegin", _wrap_Interface1D_verticesBegin, METH_VARARGS, NULL},
+ { (char *)"Interface1D_verticesEnd", _wrap_Interface1D_verticesEnd, METH_VARARGS, NULL},
+ { (char *)"Interface1D_pointsBegin", _wrap_Interface1D_pointsBegin, METH_VARARGS, NULL},
+ { (char *)"Interface1D_pointsEnd", _wrap_Interface1D_pointsEnd, METH_VARARGS, NULL},
+ { (char *)"Interface1D_getLength2D", _wrap_Interface1D_getLength2D, METH_VARARGS, NULL},
+ { (char *)"Interface1D_getId", _wrap_Interface1D_getId, METH_VARARGS, NULL},
+ { (char *)"Interface1D_getNature", _wrap_Interface1D_getNature, METH_VARARGS, NULL},
+ { (char *)"Interface1D_getTimeStamp", _wrap_Interface1D_getTimeStamp, METH_VARARGS, NULL},
+ { (char *)"Interface1D_setTimeStamp", _wrap_Interface1D_setTimeStamp, METH_VARARGS, NULL},
+ { (char *)"delete_Interface1D", _wrap_delete_Interface1D, METH_VARARGS, NULL},
+ { (char *)"Interface1D_swigregister", Interface1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"integrateUnsigned", _wrap_integrateUnsigned, METH_VARARGS, NULL},
+ { (char *)"integrateFloat", _wrap_integrateFloat, METH_VARARGS, NULL},
+ { (char *)"integrateDouble", _wrap_integrateDouble, METH_VARARGS, NULL},
+ { (char *)"SVertex_getExactTypeName", _wrap_SVertex_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"SVertex_getX", _wrap_SVertex_getX, METH_VARARGS, NULL},
+ { (char *)"SVertex_getY", _wrap_SVertex_getY, METH_VARARGS, NULL},
+ { (char *)"SVertex_getZ", _wrap_SVertex_getZ, METH_VARARGS, NULL},
+ { (char *)"SVertex_getPoint3D", _wrap_SVertex_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"SVertex_getProjectedX", _wrap_SVertex_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"SVertex_getProjectedY", _wrap_SVertex_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"SVertex_getProjectedZ", _wrap_SVertex_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"SVertex_getPoint2D", _wrap_SVertex_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"SVertex_getFEdge", _wrap_SVertex_getFEdge, METH_VARARGS, NULL},
+ { (char *)"SVertex_getId", _wrap_SVertex_getId, METH_VARARGS, NULL},
+ { (char *)"SVertex_getNature", _wrap_SVertex_getNature, METH_VARARGS, NULL},
+ { (char *)"SVertex_castToSVertex", _wrap_SVertex_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"SVertex_castToViewVertex", _wrap_SVertex_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"SVertex_castToNonTVertex", _wrap_SVertex_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"SVertex_castToTVertex", _wrap_SVertex_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"SVertex_userdata_set", _wrap_SVertex_userdata_set, METH_VARARGS, NULL},
+ { (char *)"SVertex_userdata_get", _wrap_SVertex_userdata_get, METH_VARARGS, NULL},
+ { (char *)"new_SVertex", _wrap_new_SVertex, METH_VARARGS, NULL},
+ { (char *)"delete_SVertex", _wrap_delete_SVertex, METH_VARARGS, NULL},
+ { (char *)"SVertex_dupplicate", _wrap_SVertex_dupplicate, METH_VARARGS, NULL},
+ { (char *)"SVertex___eq__", _wrap_SVertex___eq__, METH_VARARGS, NULL},
+ { (char *)"SVertex_point3D", _wrap_SVertex_point3D, METH_VARARGS, NULL},
+ { (char *)"SVertex_point2D", _wrap_SVertex_point2D, METH_VARARGS, NULL},
+ { (char *)"SVertex_normals", _wrap_SVertex_normals, METH_VARARGS, NULL},
+ { (char *)"SVertex_normalsSize", _wrap_SVertex_normalsSize, METH_VARARGS, NULL},
+ { (char *)"SVertex_fedges", _wrap_SVertex_fedges, METH_VARARGS, NULL},
+ { (char *)"SVertex_fedges_begin", _wrap_SVertex_fedges_begin, METH_VARARGS, NULL},
+ { (char *)"SVertex_fedges_end", _wrap_SVertex_fedges_end, METH_VARARGS, NULL},
+ { (char *)"SVertex_z", _wrap_SVertex_z, METH_VARARGS, NULL},
+ { (char *)"SVertex_viewvertex", _wrap_SVertex_viewvertex, METH_VARARGS, NULL},
+ { (char *)"SVertex_SetPoint3D", _wrap_SVertex_SetPoint3D, METH_VARARGS, NULL},
+ { (char *)"SVertex_SetPoint2D", _wrap_SVertex_SetPoint2D, METH_VARARGS, NULL},
+ { (char *)"SVertex_AddNormal", _wrap_SVertex_AddNormal, METH_VARARGS, NULL},
+ { (char *)"SVertex_setCurvatureInfo", _wrap_SVertex_setCurvatureInfo, METH_VARARGS, NULL},
+ { (char *)"SVertex_getCurvatureInfo", _wrap_SVertex_getCurvatureInfo, METH_VARARGS, NULL},
+ { (char *)"SVertex_setCurvatureFredo", _wrap_SVertex_setCurvatureFredo, METH_VARARGS, NULL},
+ { (char *)"SVertex_setDirectionFredo", _wrap_SVertex_setDirectionFredo, METH_VARARGS, NULL},
+ { (char *)"SVertex_curvatureFredo", _wrap_SVertex_curvatureFredo, METH_VARARGS, NULL},
+ { (char *)"SVertex_directionFredo", _wrap_SVertex_directionFredo, METH_VARARGS, NULL},
+ { (char *)"SVertex_SetId", _wrap_SVertex_SetId, METH_VARARGS, NULL},
+ { (char *)"SVertex_SetFEdges", _wrap_SVertex_SetFEdges, METH_VARARGS, NULL},
+ { (char *)"SVertex_SetShape", _wrap_SVertex_SetShape, METH_VARARGS, NULL},
+ { (char *)"SVertex_SetViewVertex", _wrap_SVertex_SetViewVertex, METH_VARARGS, NULL},
+ { (char *)"SVertex_AddFEdge", _wrap_SVertex_AddFEdge, METH_VARARGS, NULL},
+ { (char *)"SVertex_Replace", _wrap_SVertex_Replace, METH_VARARGS, NULL},
+ { (char *)"SVertex_fedge", _wrap_SVertex_fedge, METH_VARARGS, NULL},
+ { (char *)"SVertex_point2d", _wrap_SVertex_point2d, METH_VARARGS, NULL},
+ { (char *)"SVertex_point3d", _wrap_SVertex_point3d, METH_VARARGS, NULL},
+ { (char *)"SVertex_normal", _wrap_SVertex_normal, METH_VARARGS, NULL},
+ { (char *)"SVertex_shape_id", _wrap_SVertex_shape_id, METH_VARARGS, NULL},
+ { (char *)"SVertex_shape", _wrap_SVertex_shape, METH_VARARGS, NULL},
+ { (char *)"SVertex_shape_importance", _wrap_SVertex_shape_importance, METH_VARARGS, NULL},
+ { (char *)"SVertex_qi", _wrap_SVertex_qi, METH_VARARGS, NULL},
+ { (char *)"SVertex_occluders_begin", _wrap_SVertex_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"SVertex_occluders_end", _wrap_SVertex_occluders_end, METH_VARARGS, NULL},
+ { (char *)"SVertex_occluders_empty", _wrap_SVertex_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"SVertex_occluders_size", _wrap_SVertex_occluders_size, METH_VARARGS, NULL},
+ { (char *)"SVertex_occludee", _wrap_SVertex_occludee, METH_VARARGS, NULL},
+ { (char *)"SVertex_occluded_shape", _wrap_SVertex_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"SVertex_occludee_empty", _wrap_SVertex_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"SVertex_z_discontinuity", _wrap_SVertex_z_discontinuity, METH_VARARGS, NULL},
+ { (char *)"SVertex_swigregister", SVertex_swigregister, METH_VARARGS, NULL},
+ { (char *)"FEdge_getExactTypeName", _wrap_FEdge_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"FEdge_getLength2D", _wrap_FEdge_getLength2D, METH_VARARGS, NULL},
+ { (char *)"FEdge_getId", _wrap_FEdge_getId, METH_VARARGS, NULL},
+ { (char *)"FEdge_userdata_set", _wrap_FEdge_userdata_set, METH_VARARGS, NULL},
+ { (char *)"FEdge_userdata_get", _wrap_FEdge_userdata_get, METH_VARARGS, NULL},
+ { (char *)"new_FEdge", _wrap_new_FEdge, METH_VARARGS, NULL},
+ { (char *)"delete_FEdge", _wrap_delete_FEdge, METH_VARARGS, NULL},
+ { (char *)"FEdge_dupplicate", _wrap_FEdge_dupplicate, METH_VARARGS, NULL},
+ { (char *)"FEdge_vertexA", _wrap_FEdge_vertexA, METH_VARARGS, NULL},
+ { (char *)"FEdge_vertexB", _wrap_FEdge_vertexB, METH_VARARGS, NULL},
+ { (char *)"FEdge_getNature", _wrap_FEdge_getNature, METH_VARARGS, NULL},
+ { (char *)"FEdge_nextEdge", _wrap_FEdge_nextEdge, METH_VARARGS, NULL},
+ { (char *)"FEdge_previousEdge", _wrap_FEdge_previousEdge, METH_VARARGS, NULL},
+ { (char *)"FEdge_invisibility", _wrap_FEdge_invisibility, METH_VARARGS, NULL},
+ { (char *)"FEdge_viewedge", _wrap_FEdge_viewedge, METH_VARARGS, NULL},
+ { (char *)"FEdge_center3d", _wrap_FEdge_center3d, METH_VARARGS, NULL},
+ { (char *)"FEdge_center2d", _wrap_FEdge_center2d, METH_VARARGS, NULL},
+ { (char *)"FEdge_aFace", _wrap_FEdge_aFace, METH_VARARGS, NULL},
+ { (char *)"FEdge_getOccludeeIntersection", _wrap_FEdge_getOccludeeIntersection, METH_VARARGS, NULL},
+ { (char *)"FEdge_getOccludeeEmpty", _wrap_FEdge_getOccludeeEmpty, METH_VARARGS, NULL},
+ { (char *)"FEdge_isSmooth", _wrap_FEdge_isSmooth, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetVertexA", _wrap_FEdge_SetVertexA, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetVertexB", _wrap_FEdge_SetVertexB, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetId", _wrap_FEdge_SetId, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetNextEdge", _wrap_FEdge_SetNextEdge, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetPreviousEdge", _wrap_FEdge_SetPreviousEdge, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetNature", _wrap_FEdge_SetNature, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetViewEdge", _wrap_FEdge_SetViewEdge, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetaFace", _wrap_FEdge_SetaFace, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetOccludeeIntersection", _wrap_FEdge_SetOccludeeIntersection, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetOccludeeEmpty", _wrap_FEdge_SetOccludeeEmpty, METH_VARARGS, NULL},
+ { (char *)"FEdge_SetSmooth", _wrap_FEdge_SetSmooth, METH_VARARGS, NULL},
+ { (char *)"FEdge_CommonVertex", _wrap_FEdge_CommonVertex, METH_VARARGS, NULL},
+ { (char *)"FEdge_min2d", _wrap_FEdge_min2d, METH_VARARGS, NULL},
+ { (char *)"FEdge_max2d", _wrap_FEdge_max2d, METH_VARARGS, NULL},
+ { (char *)"FEdge_shape_id", _wrap_FEdge_shape_id, METH_VARARGS, NULL},
+ { (char *)"FEdge_shape", _wrap_FEdge_shape, METH_VARARGS, NULL},
+ { (char *)"FEdge_shape_importance", _wrap_FEdge_shape_importance, METH_VARARGS, NULL},
+ { (char *)"FEdge_qi", _wrap_FEdge_qi, METH_VARARGS, NULL},
+ { (char *)"FEdge_occluders_begin", _wrap_FEdge_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"FEdge_occluders_end", _wrap_FEdge_occluders_end, METH_VARARGS, NULL},
+ { (char *)"FEdge_occluders_empty", _wrap_FEdge_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"FEdge_occluders_size", _wrap_FEdge_occluders_size, METH_VARARGS, NULL},
+ { (char *)"FEdge_occludee", _wrap_FEdge_occludee, METH_VARARGS, NULL},
+ { (char *)"FEdge_occluded_shape", _wrap_FEdge_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"FEdge_occludee_empty", _wrap_FEdge_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"FEdge_z_discontinuity", _wrap_FEdge_z_discontinuity, METH_VARARGS, NULL},
+ { (char *)"FEdge_viewedge_nature", _wrap_FEdge_viewedge_nature, METH_VARARGS, NULL},
+ { (char *)"FEdge_orientation2d", _wrap_FEdge_orientation2d, METH_VARARGS, NULL},
+ { (char *)"FEdge_orientation3d", _wrap_FEdge_orientation3d, METH_VARARGS, NULL},
+ { (char *)"FEdge_verticesBegin", _wrap_FEdge_verticesBegin, METH_VARARGS, NULL},
+ { (char *)"FEdge_verticesEnd", _wrap_FEdge_verticesEnd, METH_VARARGS, NULL},
+ { (char *)"FEdge_pointsBegin", _wrap_FEdge_pointsBegin, METH_VARARGS, NULL},
+ { (char *)"FEdge_pointsEnd", _wrap_FEdge_pointsEnd, METH_VARARGS, NULL},
+ { (char *)"FEdge_swigregister", FEdge_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_FEdgeSVertexIterator", _wrap_new_FEdgeSVertexIterator, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getExactTypeName", _wrap_FEdgeSVertexIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getObject", _wrap_FEdgeSVertexIterator_getObject, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator___deref__", _wrap_FEdgeSVertexIterator___deref__, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_increment", _wrap_FEdgeSVertexIterator_increment, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_decrement", _wrap_FEdgeSVertexIterator_decrement, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_isBegin", _wrap_FEdgeSVertexIterator_isBegin, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_isEnd", _wrap_FEdgeSVertexIterator_isEnd, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator___eq__", _wrap_FEdgeSVertexIterator___eq__, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_t", _wrap_FEdgeSVertexIterator_t, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_u", _wrap_FEdgeSVertexIterator_u, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_copy", _wrap_FEdgeSVertexIterator_copy, METH_VARARGS, NULL},
+ { (char *)"delete_FEdgeSVertexIterator", _wrap_delete_FEdgeSVertexIterator, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getX", _wrap_FEdgeSVertexIterator_getX, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getY", _wrap_FEdgeSVertexIterator_getY, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getZ", _wrap_FEdgeSVertexIterator_getZ, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getPoint3D", _wrap_FEdgeSVertexIterator_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getProjectedX", _wrap_FEdgeSVertexIterator_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getProjectedY", _wrap_FEdgeSVertexIterator_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getProjectedZ", _wrap_FEdgeSVertexIterator_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getPoint2D", _wrap_FEdgeSVertexIterator_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getFEdge", _wrap_FEdgeSVertexIterator_getFEdge, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getId", _wrap_FEdgeSVertexIterator_getId, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getNature", _wrap_FEdgeSVertexIterator_getNature, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_castToSVertex", _wrap_FEdgeSVertexIterator_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_castToViewVertex", _wrap_FEdgeSVertexIterator_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_castToNonTVertex", _wrap_FEdgeSVertexIterator_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_castToTVertex", _wrap_FEdgeSVertexIterator_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_userdata_set", _wrap_FEdgeSVertexIterator_userdata_set, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_userdata_get", _wrap_FEdgeSVertexIterator_userdata_get, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_dupplicate", _wrap_FEdgeSVertexIterator_dupplicate, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_point3D", _wrap_FEdgeSVertexIterator_point3D, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_point2D", _wrap_FEdgeSVertexIterator_point2D, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_normals", _wrap_FEdgeSVertexIterator_normals, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_normalsSize", _wrap_FEdgeSVertexIterator_normalsSize, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_fedges", _wrap_FEdgeSVertexIterator_fedges, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_fedges_begin", _wrap_FEdgeSVertexIterator_fedges_begin, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_fedges_end", _wrap_FEdgeSVertexIterator_fedges_end, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_shape", _wrap_FEdgeSVertexIterator_shape, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_z", _wrap_FEdgeSVertexIterator_z, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_viewvertex", _wrap_FEdgeSVertexIterator_viewvertex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_SetPoint3D", _wrap_FEdgeSVertexIterator_SetPoint3D, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_SetPoint2D", _wrap_FEdgeSVertexIterator_SetPoint2D, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_AddNormal", _wrap_FEdgeSVertexIterator_AddNormal, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_setCurvatureInfo", _wrap_FEdgeSVertexIterator_setCurvatureInfo, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_getCurvatureInfo", _wrap_FEdgeSVertexIterator_getCurvatureInfo, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_setCurvatureFredo", _wrap_FEdgeSVertexIterator_setCurvatureFredo, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_setDirectionFredo", _wrap_FEdgeSVertexIterator_setDirectionFredo, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_curvatureFredo", _wrap_FEdgeSVertexIterator_curvatureFredo, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_directionFredo", _wrap_FEdgeSVertexIterator_directionFredo, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_SetId", _wrap_FEdgeSVertexIterator_SetId, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_SetFEdges", _wrap_FEdgeSVertexIterator_SetFEdges, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_SetShape", _wrap_FEdgeSVertexIterator_SetShape, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_SetViewVertex", _wrap_FEdgeSVertexIterator_SetViewVertex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_AddFEdge", _wrap_FEdgeSVertexIterator_AddFEdge, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_Replace", _wrap_FEdgeSVertexIterator_Replace, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_fedge", _wrap_FEdgeSVertexIterator_fedge, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_point2d", _wrap_FEdgeSVertexIterator_point2d, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_point3d", _wrap_FEdgeSVertexIterator_point3d, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_normal", _wrap_FEdgeSVertexIterator_normal, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_shape_id", _wrap_FEdgeSVertexIterator_shape_id, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_shape_importance", _wrap_FEdgeSVertexIterator_shape_importance, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_qi", _wrap_FEdgeSVertexIterator_qi, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_occluders_begin", _wrap_FEdgeSVertexIterator_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_occluders_end", _wrap_FEdgeSVertexIterator_occluders_end, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_occluders_empty", _wrap_FEdgeSVertexIterator_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_occluders_size", _wrap_FEdgeSVertexIterator_occluders_size, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_occludee", _wrap_FEdgeSVertexIterator_occludee, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_occluded_shape", _wrap_FEdgeSVertexIterator_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_occludee_empty", _wrap_FEdgeSVertexIterator_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_z_discontinuity", _wrap_FEdgeSVertexIterator_z_discontinuity, METH_VARARGS, NULL},
+ { (char *)"FEdgeSVertexIterator_swigregister", FEdgeSVertexIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_FEdgeSharp", _wrap_new_FEdgeSharp, METH_VARARGS, NULL},
+ { (char *)"delete_FEdgeSharp", _wrap_delete_FEdgeSharp, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_dupplicate", _wrap_FEdgeSharp_dupplicate, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_normalA", _wrap_FEdgeSharp_normalA, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_normalB", _wrap_FEdgeSharp_normalB, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_aMaterialIndex", _wrap_FEdgeSharp_aMaterialIndex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_aMaterial", _wrap_FEdgeSharp_aMaterial, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_bMaterialIndex", _wrap_FEdgeSharp_bMaterialIndex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_bMaterial", _wrap_FEdgeSharp_bMaterial, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_SetNormalA", _wrap_FEdgeSharp_SetNormalA, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_SetNormalB", _wrap_FEdgeSharp_SetNormalB, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_SetaMaterialIndex", _wrap_FEdgeSharp_SetaMaterialIndex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_SetbMaterialIndex", _wrap_FEdgeSharp_SetbMaterialIndex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSharp_swigregister", FEdgeSharp_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_FEdgeSmooth", _wrap_new_FEdgeSmooth, METH_VARARGS, NULL},
+ { (char *)"delete_FEdgeSmooth", _wrap_delete_FEdgeSmooth, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_dupplicate", _wrap_FEdgeSmooth_dupplicate, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_face", _wrap_FEdgeSmooth_face, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_normal", _wrap_FEdgeSmooth_normal, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_materialIndex", _wrap_FEdgeSmooth_materialIndex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_material", _wrap_FEdgeSmooth_material, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_SetFace", _wrap_FEdgeSmooth_SetFace, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_SetNormal", _wrap_FEdgeSmooth_SetNormal, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_SetMaterialIndex", _wrap_FEdgeSmooth_SetMaterialIndex, METH_VARARGS, NULL},
+ { (char *)"FEdgeSmooth_swigregister", FEdgeSmooth_swigregister, METH_VARARGS, NULL},
+ { (char *)"SShape_userdata_set", _wrap_SShape_userdata_set, METH_VARARGS, NULL},
+ { (char *)"SShape_userdata_get", _wrap_SShape_userdata_get, METH_VARARGS, NULL},
+ { (char *)"new_SShape", _wrap_new_SShape, METH_VARARGS, NULL},
+ { (char *)"SShape_dupplicate", _wrap_SShape_dupplicate, METH_VARARGS, NULL},
+ { (char *)"delete_SShape", _wrap_delete_SShape, METH_VARARGS, NULL},
+ { (char *)"SShape_AddEdge", _wrap_SShape_AddEdge, METH_VARARGS, NULL},
+ { (char *)"SShape_AddNewVertex", _wrap_SShape_AddNewVertex, METH_VARARGS, NULL},
+ { (char *)"SShape_AddChain", _wrap_SShape_AddChain, METH_VARARGS, NULL},
+ { (char *)"SShape_CreateSVertex", _wrap_SShape_CreateSVertex, METH_VARARGS, NULL},
+ { (char *)"SShape_SplitEdge", _wrap_SShape_SplitEdge, METH_VARARGS, NULL},
+ { (char *)"SShape_SplitEdgeIn2", _wrap_SShape_SplitEdgeIn2, METH_VARARGS, NULL},
+ { (char *)"SShape_SetBBox", _wrap_SShape_SetBBox, METH_VARARGS, NULL},
+ { (char *)"SShape_ComputeBBox", _wrap_SShape_ComputeBBox, METH_VARARGS, NULL},
+ { (char *)"SShape_RemoveEdgeFromChain", _wrap_SShape_RemoveEdgeFromChain, METH_VARARGS, NULL},
+ { (char *)"SShape_RemoveEdge", _wrap_SShape_RemoveEdge, METH_VARARGS, NULL},
+ { (char *)"SShape_GetVertexList", _wrap_SShape_GetVertexList, METH_VARARGS, NULL},
+ { (char *)"SShape_GetEdgeList", _wrap_SShape_GetEdgeList, METH_VARARGS, NULL},
+ { (char *)"SShape_GetChains", _wrap_SShape_GetChains, METH_VARARGS, NULL},
+ { (char *)"SShape_bbox", _wrap_SShape_bbox, METH_VARARGS, NULL},
+ { (char *)"SShape_material", _wrap_SShape_material, METH_VARARGS, NULL},
+ { (char *)"SShape_materials", _wrap_SShape_materials, METH_VARARGS, NULL},
+ { (char *)"SShape_viewShape", _wrap_SShape_viewShape, METH_VARARGS, NULL},
+ { (char *)"SShape_importance", _wrap_SShape_importance, METH_VARARGS, NULL},
+ { (char *)"SShape_getId", _wrap_SShape_getId, METH_VARARGS, NULL},
+ { (char *)"SShape_SetId", _wrap_SShape_SetId, METH_VARARGS, NULL},
+ { (char *)"SShape_SetMaterials", _wrap_SShape_SetMaterials, METH_VARARGS, NULL},
+ { (char *)"SShape_SetViewShape", _wrap_SShape_SetViewShape, METH_VARARGS, NULL},
+ { (char *)"SShape_SetImportance", _wrap_SShape_SetImportance, METH_VARARGS, NULL},
+ { (char *)"SShape_swigregister", SShape_swigregister, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_iterator", _wrap_ViewShapesContainer_iterator, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer___nonzero__", _wrap_ViewShapesContainer___nonzero__, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer___len__", _wrap_ViewShapesContainer___len__, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_pop", _wrap_ViewShapesContainer_pop, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer___getslice__", _wrap_ViewShapesContainer___getslice__, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer___setslice__", _wrap_ViewShapesContainer___setslice__, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer___delslice__", _wrap_ViewShapesContainer___delslice__, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer___delitem__", _wrap_ViewShapesContainer___delitem__, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer___getitem__", _wrap_ViewShapesContainer___getitem__, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer___setitem__", _wrap_ViewShapesContainer___setitem__, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_append", _wrap_ViewShapesContainer_append, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_empty", _wrap_ViewShapesContainer_empty, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_size", _wrap_ViewShapesContainer_size, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_clear", _wrap_ViewShapesContainer_clear, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_swap", _wrap_ViewShapesContainer_swap, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_get_allocator", _wrap_ViewShapesContainer_get_allocator, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_begin", _wrap_ViewShapesContainer_begin, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_end", _wrap_ViewShapesContainer_end, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_rbegin", _wrap_ViewShapesContainer_rbegin, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_rend", _wrap_ViewShapesContainer_rend, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_pop_back", _wrap_ViewShapesContainer_pop_back, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_erase", _wrap_ViewShapesContainer_erase, METH_VARARGS, NULL},
+ { (char *)"new_ViewShapesContainer", _wrap_new_ViewShapesContainer, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_push_back", _wrap_ViewShapesContainer_push_back, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_front", _wrap_ViewShapesContainer_front, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_back", _wrap_ViewShapesContainer_back, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_assign", _wrap_ViewShapesContainer_assign, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_resize", _wrap_ViewShapesContainer_resize, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_insert", _wrap_ViewShapesContainer_insert, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_reserve", _wrap_ViewShapesContainer_reserve, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_capacity", _wrap_ViewShapesContainer_capacity, METH_VARARGS, NULL},
+ { (char *)"delete_ViewShapesContainer", _wrap_delete_ViewShapesContainer, METH_VARARGS, NULL},
+ { (char *)"ViewShapesContainer_swigregister", ViewShapesContainer_swigregister, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_iterator", _wrap_ViewEdgesContainer_iterator, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer___nonzero__", _wrap_ViewEdgesContainer___nonzero__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer___len__", _wrap_ViewEdgesContainer___len__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_pop", _wrap_ViewEdgesContainer_pop, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer___getslice__", _wrap_ViewEdgesContainer___getslice__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer___setslice__", _wrap_ViewEdgesContainer___setslice__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer___delslice__", _wrap_ViewEdgesContainer___delslice__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer___delitem__", _wrap_ViewEdgesContainer___delitem__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer___getitem__", _wrap_ViewEdgesContainer___getitem__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer___setitem__", _wrap_ViewEdgesContainer___setitem__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_append", _wrap_ViewEdgesContainer_append, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_empty", _wrap_ViewEdgesContainer_empty, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_size", _wrap_ViewEdgesContainer_size, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_clear", _wrap_ViewEdgesContainer_clear, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_swap", _wrap_ViewEdgesContainer_swap, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_get_allocator", _wrap_ViewEdgesContainer_get_allocator, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_begin", _wrap_ViewEdgesContainer_begin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_end", _wrap_ViewEdgesContainer_end, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_rbegin", _wrap_ViewEdgesContainer_rbegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_rend", _wrap_ViewEdgesContainer_rend, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_pop_back", _wrap_ViewEdgesContainer_pop_back, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_erase", _wrap_ViewEdgesContainer_erase, METH_VARARGS, NULL},
+ { (char *)"new_ViewEdgesContainer", _wrap_new_ViewEdgesContainer, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_push_back", _wrap_ViewEdgesContainer_push_back, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_front", _wrap_ViewEdgesContainer_front, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_back", _wrap_ViewEdgesContainer_back, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_assign", _wrap_ViewEdgesContainer_assign, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_resize", _wrap_ViewEdgesContainer_resize, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_insert", _wrap_ViewEdgesContainer_insert, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_reserve", _wrap_ViewEdgesContainer_reserve, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_capacity", _wrap_ViewEdgesContainer_capacity, METH_VARARGS, NULL},
+ { (char *)"delete_ViewEdgesContainer", _wrap_delete_ViewEdgesContainer, METH_VARARGS, NULL},
+ { (char *)"ViewEdgesContainer_swigregister", ViewEdgesContainer_swigregister, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_iterator", _wrap_FEdgesContainer_iterator, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer___nonzero__", _wrap_FEdgesContainer___nonzero__, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer___len__", _wrap_FEdgesContainer___len__, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_pop", _wrap_FEdgesContainer_pop, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer___getslice__", _wrap_FEdgesContainer___getslice__, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer___setslice__", _wrap_FEdgesContainer___setslice__, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer___delslice__", _wrap_FEdgesContainer___delslice__, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer___delitem__", _wrap_FEdgesContainer___delitem__, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer___getitem__", _wrap_FEdgesContainer___getitem__, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer___setitem__", _wrap_FEdgesContainer___setitem__, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_append", _wrap_FEdgesContainer_append, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_empty", _wrap_FEdgesContainer_empty, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_size", _wrap_FEdgesContainer_size, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_clear", _wrap_FEdgesContainer_clear, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_swap", _wrap_FEdgesContainer_swap, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_get_allocator", _wrap_FEdgesContainer_get_allocator, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_begin", _wrap_FEdgesContainer_begin, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_end", _wrap_FEdgesContainer_end, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_rbegin", _wrap_FEdgesContainer_rbegin, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_rend", _wrap_FEdgesContainer_rend, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_pop_back", _wrap_FEdgesContainer_pop_back, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_erase", _wrap_FEdgesContainer_erase, METH_VARARGS, NULL},
+ { (char *)"new_FEdgesContainer", _wrap_new_FEdgesContainer, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_push_back", _wrap_FEdgesContainer_push_back, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_front", _wrap_FEdgesContainer_front, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_back", _wrap_FEdgesContainer_back, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_assign", _wrap_FEdgesContainer_assign, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_resize", _wrap_FEdgesContainer_resize, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_insert", _wrap_FEdgesContainer_insert, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_reserve", _wrap_FEdgesContainer_reserve, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_capacity", _wrap_FEdgesContainer_capacity, METH_VARARGS, NULL},
+ { (char *)"delete_FEdgesContainer", _wrap_delete_FEdgesContainer, METH_VARARGS, NULL},
+ { (char *)"FEdgesContainer_swigregister", FEdgesContainer_swigregister, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_iterator", _wrap_ViewVerticesContainer_iterator, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer___nonzero__", _wrap_ViewVerticesContainer___nonzero__, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer___len__", _wrap_ViewVerticesContainer___len__, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_pop", _wrap_ViewVerticesContainer_pop, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer___getslice__", _wrap_ViewVerticesContainer___getslice__, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer___setslice__", _wrap_ViewVerticesContainer___setslice__, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer___delslice__", _wrap_ViewVerticesContainer___delslice__, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer___delitem__", _wrap_ViewVerticesContainer___delitem__, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer___getitem__", _wrap_ViewVerticesContainer___getitem__, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer___setitem__", _wrap_ViewVerticesContainer___setitem__, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_append", _wrap_ViewVerticesContainer_append, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_empty", _wrap_ViewVerticesContainer_empty, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_size", _wrap_ViewVerticesContainer_size, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_clear", _wrap_ViewVerticesContainer_clear, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_swap", _wrap_ViewVerticesContainer_swap, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_get_allocator", _wrap_ViewVerticesContainer_get_allocator, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_begin", _wrap_ViewVerticesContainer_begin, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_end", _wrap_ViewVerticesContainer_end, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_rbegin", _wrap_ViewVerticesContainer_rbegin, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_rend", _wrap_ViewVerticesContainer_rend, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_pop_back", _wrap_ViewVerticesContainer_pop_back, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_erase", _wrap_ViewVerticesContainer_erase, METH_VARARGS, NULL},
+ { (char *)"new_ViewVerticesContainer", _wrap_new_ViewVerticesContainer, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_push_back", _wrap_ViewVerticesContainer_push_back, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_front", _wrap_ViewVerticesContainer_front, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_back", _wrap_ViewVerticesContainer_back, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_assign", _wrap_ViewVerticesContainer_assign, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_resize", _wrap_ViewVerticesContainer_resize, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_insert", _wrap_ViewVerticesContainer_insert, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_reserve", _wrap_ViewVerticesContainer_reserve, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_capacity", _wrap_ViewVerticesContainer_capacity, METH_VARARGS, NULL},
+ { (char *)"delete_ViewVerticesContainer", _wrap_delete_ViewVerticesContainer, METH_VARARGS, NULL},
+ { (char *)"ViewVerticesContainer_swigregister", ViewVerticesContainer_swigregister, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_iterator", _wrap_SVerticesContainer_iterator, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer___nonzero__", _wrap_SVerticesContainer___nonzero__, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer___len__", _wrap_SVerticesContainer___len__, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_pop", _wrap_SVerticesContainer_pop, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer___getslice__", _wrap_SVerticesContainer___getslice__, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer___setslice__", _wrap_SVerticesContainer___setslice__, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer___delslice__", _wrap_SVerticesContainer___delslice__, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer___delitem__", _wrap_SVerticesContainer___delitem__, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer___getitem__", _wrap_SVerticesContainer___getitem__, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer___setitem__", _wrap_SVerticesContainer___setitem__, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_append", _wrap_SVerticesContainer_append, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_empty", _wrap_SVerticesContainer_empty, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_size", _wrap_SVerticesContainer_size, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_clear", _wrap_SVerticesContainer_clear, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_swap", _wrap_SVerticesContainer_swap, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_get_allocator", _wrap_SVerticesContainer_get_allocator, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_begin", _wrap_SVerticesContainer_begin, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_end", _wrap_SVerticesContainer_end, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_rbegin", _wrap_SVerticesContainer_rbegin, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_rend", _wrap_SVerticesContainer_rend, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_pop_back", _wrap_SVerticesContainer_pop_back, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_erase", _wrap_SVerticesContainer_erase, METH_VARARGS, NULL},
+ { (char *)"new_SVerticesContainer", _wrap_new_SVerticesContainer, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_push_back", _wrap_SVerticesContainer_push_back, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_front", _wrap_SVerticesContainer_front, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_back", _wrap_SVerticesContainer_back, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_assign", _wrap_SVerticesContainer_assign, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_resize", _wrap_SVerticesContainer_resize, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_insert", _wrap_SVerticesContainer_insert, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_reserve", _wrap_SVerticesContainer_reserve, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_capacity", _wrap_SVerticesContainer_capacity, METH_VARARGS, NULL},
+ { (char *)"delete_SVerticesContainer", _wrap_delete_SVerticesContainer, METH_VARARGS, NULL},
+ { (char *)"SVerticesContainer_swigregister", SVerticesContainer_swigregister, METH_VARARGS, NULL},
+ { (char *)"ViewMap_userdata_set", _wrap_ViewMap_userdata_set, METH_VARARGS, NULL},
+ { (char *)"ViewMap_userdata_get", _wrap_ViewMap_userdata_get, METH_VARARGS, NULL},
+ { (char *)"new_ViewMap", _wrap_new_ViewMap, METH_VARARGS, NULL},
+ { (char *)"delete_ViewMap", _wrap_delete_ViewMap, METH_VARARGS, NULL},
+ { (char *)"ViewMap_GetClosestViewEdge", _wrap_ViewMap_GetClosestViewEdge, METH_VARARGS, NULL},
+ { (char *)"ViewMap_GetClosestFEdge", _wrap_ViewMap_GetClosestFEdge, METH_VARARGS, NULL},
+ { (char *)"ViewMap_getInstance", _wrap_ViewMap_getInstance, METH_VARARGS, NULL},
+ { (char *)"ViewMap_ViewShapes", _wrap_ViewMap_ViewShapes, METH_VARARGS, NULL},
+ { (char *)"ViewMap_ViewEdges", _wrap_ViewMap_ViewEdges, METH_VARARGS, NULL},
+ { (char *)"ViewMap_ViewVertices", _wrap_ViewMap_ViewVertices, METH_VARARGS, NULL},
+ { (char *)"ViewMap_FEdges", _wrap_ViewMap_FEdges, METH_VARARGS, NULL},
+ { (char *)"ViewMap_SVertices", _wrap_ViewMap_SVertices, METH_VARARGS, NULL},
+ { (char *)"ViewMap_viewedges_begin", _wrap_ViewMap_viewedges_begin, METH_VARARGS, NULL},
+ { (char *)"ViewMap_viewedges_end", _wrap_ViewMap_viewedges_end, METH_VARARGS, NULL},
+ { (char *)"ViewMap_viewedges_size", _wrap_ViewMap_viewedges_size, METH_VARARGS, NULL},
+ { (char *)"ViewMap_viewShape", _wrap_ViewMap_viewShape, METH_VARARGS, NULL},
+ { (char *)"ViewMap_getScene3dBBox", _wrap_ViewMap_getScene3dBBox, METH_VARARGS, NULL},
+ { (char *)"ViewMap_AddViewShape", _wrap_ViewMap_AddViewShape, METH_VARARGS, NULL},
+ { (char *)"ViewMap_AddViewEdge", _wrap_ViewMap_AddViewEdge, METH_VARARGS, NULL},
+ { (char *)"ViewMap_AddViewVertex", _wrap_ViewMap_AddViewVertex, METH_VARARGS, NULL},
+ { (char *)"ViewMap_AddFEdge", _wrap_ViewMap_AddFEdge, METH_VARARGS, NULL},
+ { (char *)"ViewMap_AddSVertex", _wrap_ViewMap_AddSVertex, METH_VARARGS, NULL},
+ { (char *)"ViewMap_setScene3dBBox", _wrap_ViewMap_setScene3dBBox, METH_VARARGS, NULL},
+ { (char *)"ViewMap_CreateTVertex", _wrap_ViewMap_CreateTVertex, METH_VARARGS, NULL},
+ { (char *)"ViewMap_InsertViewVertex", _wrap_ViewMap_InsertViewVertex, METH_VARARGS, NULL},
+ { (char *)"ViewMap_swigregister", ViewMap_swigregister, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_getExactTypeName", _wrap_ViewVertex_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_userdata_set", _wrap_ViewVertex_userdata_set, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_userdata_get", _wrap_ViewVertex_userdata_get, METH_VARARGS, NULL},
+ { (char *)"delete_ViewVertex", _wrap_delete_ViewVertex, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_getNature", _wrap_ViewVertex_getNature, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_setNature", _wrap_ViewVertex_setNature, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_Replace", _wrap_ViewVertex_Replace, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_edges_begin", _wrap_ViewVertex_edges_begin, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_edges_end", _wrap_ViewVertex_edges_end, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_edges_iterator", _wrap_ViewVertex_edges_iterator, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_edgesBegin", _wrap_ViewVertex_edgesBegin, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_edgesEnd", _wrap_ViewVertex_edgesEnd, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_edgesIterator", _wrap_ViewVertex_edgesIterator, METH_VARARGS, NULL},
+ { (char *)"ViewVertex_swigregister", ViewVertex_swigregister, METH_VARARGS, NULL},
+ { (char *)"TVertex_getExactTypeName", _wrap_TVertex_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"TVertex_getX", _wrap_TVertex_getX, METH_VARARGS, NULL},
+ { (char *)"TVertex_getY", _wrap_TVertex_getY, METH_VARARGS, NULL},
+ { (char *)"TVertex_getZ", _wrap_TVertex_getZ, METH_VARARGS, NULL},
+ { (char *)"TVertex_getPoint3D", _wrap_TVertex_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"TVertex_getProjectedX", _wrap_TVertex_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"TVertex_getProjectedY", _wrap_TVertex_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"TVertex_getProjectedZ", _wrap_TVertex_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"TVertex_getPoint2D", _wrap_TVertex_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"TVertex_getId", _wrap_TVertex_getId, METH_VARARGS, NULL},
+ { (char *)"TVertex_castToViewVertex", _wrap_TVertex_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"TVertex_castToTVertex", _wrap_TVertex_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"new_TVertex", _wrap_new_TVertex, METH_VARARGS, NULL},
+ { (char *)"TVertex_frontSVertex", _wrap_TVertex_frontSVertex, METH_VARARGS, NULL},
+ { (char *)"TVertex_backSVertex", _wrap_TVertex_backSVertex, METH_VARARGS, NULL},
+ { (char *)"TVertex_frontEdgeA", _wrap_TVertex_frontEdgeA, METH_VARARGS, NULL},
+ { (char *)"TVertex_frontEdgeB", _wrap_TVertex_frontEdgeB, METH_VARARGS, NULL},
+ { (char *)"TVertex_backEdgeA", _wrap_TVertex_backEdgeA, METH_VARARGS, NULL},
+ { (char *)"TVertex_backEdgeB", _wrap_TVertex_backEdgeB, METH_VARARGS, NULL},
+ { (char *)"TVertex_SetFrontVertex", _wrap_TVertex_SetFrontVertex, METH_VARARGS, NULL},
+ { (char *)"TVertex_SetBackSVertex", _wrap_TVertex_SetBackSVertex, METH_VARARGS, NULL},
+ { (char *)"TVertex_SetFrontEdgeA", _wrap_TVertex_SetFrontEdgeA, METH_VARARGS, NULL},
+ { (char *)"TVertex_SetFrontEdgeB", _wrap_TVertex_SetFrontEdgeB, METH_VARARGS, NULL},
+ { (char *)"TVertex_SetBackEdgeA", _wrap_TVertex_SetBackEdgeA, METH_VARARGS, NULL},
+ { (char *)"TVertex_SetBackEdgeB", _wrap_TVertex_SetBackEdgeB, METH_VARARGS, NULL},
+ { (char *)"TVertex_SetId", _wrap_TVertex_SetId, METH_VARARGS, NULL},
+ { (char *)"TVertex_GetSVertex", _wrap_TVertex_GetSVertex, METH_VARARGS, NULL},
+ { (char *)"TVertex_Replace", _wrap_TVertex_Replace, METH_VARARGS, NULL},
+ { (char *)"TVertex_mate", _wrap_TVertex_mate, METH_VARARGS, NULL},
+ { (char *)"TVertex_edges_end", _wrap_TVertex_edges_end, METH_VARARGS, NULL},
+ { (char *)"TVertex_edgesBegin", _wrap_TVertex_edgesBegin, METH_VARARGS, NULL},
+ { (char *)"TVertex_edgesEnd", _wrap_TVertex_edgesEnd, METH_VARARGS, NULL},
+ { (char *)"TVertex_edgesIterator", _wrap_TVertex_edgesIterator, METH_VARARGS, NULL},
+ { (char *)"delete_TVertex", _wrap_delete_TVertex, METH_VARARGS, NULL},
+ { (char *)"TVertex_swigregister", TVertex_swigregister, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getExactTypeName", _wrap_NonTVertex_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getX", _wrap_NonTVertex_getX, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getY", _wrap_NonTVertex_getY, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getZ", _wrap_NonTVertex_getZ, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getPoint3D", _wrap_NonTVertex_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getProjectedX", _wrap_NonTVertex_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getProjectedY", _wrap_NonTVertex_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getProjectedZ", _wrap_NonTVertex_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getPoint2D", _wrap_NonTVertex_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_getId", _wrap_NonTVertex_getId, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_castToSVertex", _wrap_NonTVertex_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_castToViewVertex", _wrap_NonTVertex_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_castToNonTVertex", _wrap_NonTVertex_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"new_NonTVertex", _wrap_new_NonTVertex, METH_VARARGS, NULL},
+ { (char *)"delete_NonTVertex", _wrap_delete_NonTVertex, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_svertex", _wrap_NonTVertex_svertex, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_viewedges", _wrap_NonTVertex_viewedges, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_SetSVertex", _wrap_NonTVertex_SetSVertex, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_SetViewEdges", _wrap_NonTVertex_SetViewEdges, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_AddIncomingViewEdge", _wrap_NonTVertex_AddIncomingViewEdge, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_AddOutgoingViewEdge", _wrap_NonTVertex_AddOutgoingViewEdge, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_AddViewEdge", _wrap_NonTVertex_AddViewEdge, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_Replace", _wrap_NonTVertex_Replace, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_edges_end", _wrap_NonTVertex_edges_end, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_edgesBegin", _wrap_NonTVertex_edgesBegin, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_edgesEnd", _wrap_NonTVertex_edgesEnd, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_edgesIterator", _wrap_NonTVertex_edgesIterator, METH_VARARGS, NULL},
+ { (char *)"NonTVertex_swigregister", NonTVertex_swigregister, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_getExactTypeName", _wrap_ViewEdge_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_getId", _wrap_ViewEdge_getId, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_getNature", _wrap_ViewEdge_getNature, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_userdata_set", _wrap_ViewEdge_userdata_set, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_userdata_get", _wrap_ViewEdge_userdata_get, METH_VARARGS, NULL},
+ { (char *)"new_ViewEdge", _wrap_new_ViewEdge, METH_VARARGS, NULL},
+ { (char *)"delete_ViewEdge", _wrap_delete_ViewEdge, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_A", _wrap_ViewEdge_A, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_B", _wrap_ViewEdge_B, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_fedgeA", _wrap_ViewEdge_fedgeA, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_fedgeB", _wrap_ViewEdge_fedgeB, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_viewShape", _wrap_ViewEdge_viewShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_isClosed", _wrap_ViewEdge_isClosed, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_getChainingTimeStamp", _wrap_ViewEdge_getChainingTimeStamp, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_aShape", _wrap_ViewEdge_aShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_bShape", _wrap_ViewEdge_bShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_occluders", _wrap_ViewEdge_occluders, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_splittingId", _wrap_ViewEdge_splittingId, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetA", _wrap_ViewEdge_SetA, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetB", _wrap_ViewEdge_SetB, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetNature", _wrap_ViewEdge_SetNature, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetFEdgeA", _wrap_ViewEdge_SetFEdgeA, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetFEdgeB", _wrap_ViewEdge_SetFEdgeB, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetShape", _wrap_ViewEdge_SetShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetId", _wrap_ViewEdge_SetId, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_UpdateFEdges", _wrap_ViewEdge_UpdateFEdges, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetaShape", _wrap_ViewEdge_SetaShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_SetQI", _wrap_ViewEdge_SetQI, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_setChainingTimeStamp", _wrap_ViewEdge_setChainingTimeStamp, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_AddOccluder", _wrap_ViewEdge_AddOccluder, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_setSplittingId", _wrap_ViewEdge_setSplittingId, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_intersect_2d_area", _wrap_ViewEdge_intersect_2d_area, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_include_in_2d_area", _wrap_ViewEdge_include_in_2d_area, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_getLength2D", _wrap_ViewEdge_getLength2D, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_qi", _wrap_ViewEdge_qi, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_occluders_begin", _wrap_ViewEdge_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_occluders_end", _wrap_ViewEdge_occluders_end, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_occluders_size", _wrap_ViewEdge_occluders_size, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_occluders_empty", _wrap_ViewEdge_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_occludee", _wrap_ViewEdge_occludee, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_occluded_shape", _wrap_ViewEdge_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_occludee_empty", _wrap_ViewEdge_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_shape_id", _wrap_ViewEdge_shape_id, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_shape", _wrap_ViewEdge_shape, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_shape_importance", _wrap_ViewEdge_shape_importance, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_verticesBegin", _wrap_ViewEdge_verticesBegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_verticesEnd", _wrap_ViewEdge_verticesEnd, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_pointsBegin", _wrap_ViewEdge_pointsBegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_pointsEnd", _wrap_ViewEdge_pointsEnd, METH_VARARGS, NULL},
+ { (char *)"ViewEdge_swigregister", ViewEdge_swigregister, METH_VARARGS, NULL},
+ { (char *)"ViewShape_userdata_set", _wrap_ViewShape_userdata_set, METH_VARARGS, NULL},
+ { (char *)"ViewShape_userdata_get", _wrap_ViewShape_userdata_get, METH_VARARGS, NULL},
+ { (char *)"new_ViewShape", _wrap_new_ViewShape, METH_VARARGS, NULL},
+ { (char *)"ViewShape_dupplicate", _wrap_ViewShape_dupplicate, METH_VARARGS, NULL},
+ { (char *)"delete_ViewShape", _wrap_delete_ViewShape, METH_VARARGS, NULL},
+ { (char *)"ViewShape_SplitEdge", _wrap_ViewShape_SplitEdge, METH_VARARGS, NULL},
+ { (char *)"ViewShape_sshape", _wrap_ViewShape_sshape, METH_VARARGS, NULL},
+ { (char *)"ViewShape_vertices", _wrap_ViewShape_vertices, METH_VARARGS, NULL},
+ { (char *)"ViewShape_edges", _wrap_ViewShape_edges, METH_VARARGS, NULL},
+ { (char *)"ViewShape_getId", _wrap_ViewShape_getId, METH_VARARGS, NULL},
+ { (char *)"ViewShape_SetSShape", _wrap_ViewShape_SetSShape, METH_VARARGS, NULL},
+ { (char *)"ViewShape_SetVertices", _wrap_ViewShape_SetVertices, METH_VARARGS, NULL},
+ { (char *)"ViewShape_SetEdges", _wrap_ViewShape_SetEdges, METH_VARARGS, NULL},
+ { (char *)"ViewShape_AddVertex", _wrap_ViewShape_AddVertex, METH_VARARGS, NULL},
+ { (char *)"ViewShape_AddEdge", _wrap_ViewShape_AddEdge, METH_VARARGS, NULL},
+ { (char *)"ViewShape_RemoveEdge", _wrap_ViewShape_RemoveEdge, METH_VARARGS, NULL},
+ { (char *)"ViewShape_RemoveVertex", _wrap_ViewShape_RemoveVertex, METH_VARARGS, NULL},
+ { (char *)"ViewShape_swigregister", ViewShape_swigregister, METH_VARARGS, NULL},
+ { (char *)"delete_ViewVertexOrientedViewEdgeIterator", _wrap_delete_ViewVertexOrientedViewEdgeIterator, METH_VARARGS, NULL},
+ { (char *)"new_ViewVertexOrientedViewEdgeIterator", _wrap_new_ViewVertexOrientedViewEdgeIterator, METH_VARARGS, NULL},
+ { (char *)"ViewVertexOrientedViewEdgeIterator_isBegin", _wrap_ViewVertexOrientedViewEdgeIterator_isBegin, METH_VARARGS, NULL},
+ { (char *)"ViewVertexOrientedViewEdgeIterator_isEnd", _wrap_ViewVertexOrientedViewEdgeIterator_isEnd, METH_VARARGS, NULL},
+ { (char *)"ViewVertexOrientedViewEdgeIterator___ne__", _wrap_ViewVertexOrientedViewEdgeIterator___ne__, METH_VARARGS, NULL},
+ { (char *)"ViewVertexOrientedViewEdgeIterator___eq__", _wrap_ViewVertexOrientedViewEdgeIterator___eq__, METH_VARARGS, NULL},
+ { (char *)"ViewVertexOrientedViewEdgeIterator_getObject", _wrap_ViewVertexOrientedViewEdgeIterator_getObject, METH_VARARGS, NULL},
+ { (char *)"ViewVertexOrientedViewEdgeIterator___deref__", _wrap_ViewVertexOrientedViewEdgeIterator___deref__, METH_VARARGS, NULL},
+ { (char *)"ViewVertexOrientedViewEdgeIterator_increment", _wrap_ViewVertexOrientedViewEdgeIterator_increment, METH_VARARGS, NULL},
+ { (char *)"ViewVertexOrientedViewEdgeIterator_swigregister", ViewVertexOrientedViewEdgeIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ViewEdgeSVertexIterator", _wrap_new_ViewEdgeSVertexIterator, METH_VARARGS, NULL},
+ { (char *)"delete_ViewEdgeSVertexIterator", _wrap_delete_ViewEdgeSVertexIterator, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getExactTypeName", _wrap_ViewEdgeSVertexIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getObject", _wrap_ViewEdgeSVertexIterator_getObject, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator___deref__", _wrap_ViewEdgeSVertexIterator___deref__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_increment", _wrap_ViewEdgeSVertexIterator_increment, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_decrement", _wrap_ViewEdgeSVertexIterator_decrement, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_isBegin", _wrap_ViewEdgeSVertexIterator_isBegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_isEnd", _wrap_ViewEdgeSVertexIterator_isEnd, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_t", _wrap_ViewEdgeSVertexIterator_t, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_u", _wrap_ViewEdgeSVertexIterator_u, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator___eq__", _wrap_ViewEdgeSVertexIterator___eq__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_copy", _wrap_ViewEdgeSVertexIterator_copy, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getX", _wrap_ViewEdgeSVertexIterator_getX, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getY", _wrap_ViewEdgeSVertexIterator_getY, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getZ", _wrap_ViewEdgeSVertexIterator_getZ, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getPoint3D", _wrap_ViewEdgeSVertexIterator_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getProjectedX", _wrap_ViewEdgeSVertexIterator_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getProjectedY", _wrap_ViewEdgeSVertexIterator_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getProjectedZ", _wrap_ViewEdgeSVertexIterator_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getPoint2D", _wrap_ViewEdgeSVertexIterator_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getFEdge", _wrap_ViewEdgeSVertexIterator_getFEdge, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getId", _wrap_ViewEdgeSVertexIterator_getId, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getNature", _wrap_ViewEdgeSVertexIterator_getNature, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_castToSVertex", _wrap_ViewEdgeSVertexIterator_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_castToViewVertex", _wrap_ViewEdgeSVertexIterator_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_castToNonTVertex", _wrap_ViewEdgeSVertexIterator_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_castToTVertex", _wrap_ViewEdgeSVertexIterator_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_userdata_set", _wrap_ViewEdgeSVertexIterator_userdata_set, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_userdata_get", _wrap_ViewEdgeSVertexIterator_userdata_get, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_dupplicate", _wrap_ViewEdgeSVertexIterator_dupplicate, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_point3D", _wrap_ViewEdgeSVertexIterator_point3D, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_point2D", _wrap_ViewEdgeSVertexIterator_point2D, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_normals", _wrap_ViewEdgeSVertexIterator_normals, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_normalsSize", _wrap_ViewEdgeSVertexIterator_normalsSize, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_fedges", _wrap_ViewEdgeSVertexIterator_fedges, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_fedges_begin", _wrap_ViewEdgeSVertexIterator_fedges_begin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_fedges_end", _wrap_ViewEdgeSVertexIterator_fedges_end, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_shape", _wrap_ViewEdgeSVertexIterator_shape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_z", _wrap_ViewEdgeSVertexIterator_z, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_viewvertex", _wrap_ViewEdgeSVertexIterator_viewvertex, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_SetPoint3D", _wrap_ViewEdgeSVertexIterator_SetPoint3D, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_SetPoint2D", _wrap_ViewEdgeSVertexIterator_SetPoint2D, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_AddNormal", _wrap_ViewEdgeSVertexIterator_AddNormal, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_setCurvatureInfo", _wrap_ViewEdgeSVertexIterator_setCurvatureInfo, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_getCurvatureInfo", _wrap_ViewEdgeSVertexIterator_getCurvatureInfo, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_setCurvatureFredo", _wrap_ViewEdgeSVertexIterator_setCurvatureFredo, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_setDirectionFredo", _wrap_ViewEdgeSVertexIterator_setDirectionFredo, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_curvatureFredo", _wrap_ViewEdgeSVertexIterator_curvatureFredo, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_directionFredo", _wrap_ViewEdgeSVertexIterator_directionFredo, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_SetId", _wrap_ViewEdgeSVertexIterator_SetId, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_SetFEdges", _wrap_ViewEdgeSVertexIterator_SetFEdges, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_SetShape", _wrap_ViewEdgeSVertexIterator_SetShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_SetViewVertex", _wrap_ViewEdgeSVertexIterator_SetViewVertex, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_AddFEdge", _wrap_ViewEdgeSVertexIterator_AddFEdge, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_Replace", _wrap_ViewEdgeSVertexIterator_Replace, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_fedge", _wrap_ViewEdgeSVertexIterator_fedge, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_point2d", _wrap_ViewEdgeSVertexIterator_point2d, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_point3d", _wrap_ViewEdgeSVertexIterator_point3d, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_normal", _wrap_ViewEdgeSVertexIterator_normal, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_shape_id", _wrap_ViewEdgeSVertexIterator_shape_id, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_shape_importance", _wrap_ViewEdgeSVertexIterator_shape_importance, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_qi", _wrap_ViewEdgeSVertexIterator_qi, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_occluders_begin", _wrap_ViewEdgeSVertexIterator_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_occluders_end", _wrap_ViewEdgeSVertexIterator_occluders_end, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_occluders_empty", _wrap_ViewEdgeSVertexIterator_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_occluders_size", _wrap_ViewEdgeSVertexIterator_occluders_size, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_occludee", _wrap_ViewEdgeSVertexIterator_occludee, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_occluded_shape", _wrap_ViewEdgeSVertexIterator_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_occludee_empty", _wrap_ViewEdgeSVertexIterator_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_z_discontinuity", _wrap_ViewEdgeSVertexIterator_z_discontinuity, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeSVertexIterator_swigregister", ViewEdgeSVertexIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ViewEdgeViewEdgeIterator", _wrap_new_ViewEdgeViewEdgeIterator, METH_VARARGS, NULL},
+ { (char *)"delete_ViewEdgeViewEdgeIterator", _wrap_delete_ViewEdgeViewEdgeIterator, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getExactTypeName", _wrap_ViewEdgeViewEdgeIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getCurrentEdge", _wrap_ViewEdgeViewEdgeIterator_getCurrentEdge, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_setCurrentEdge", _wrap_ViewEdgeViewEdgeIterator_setCurrentEdge, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getBegin", _wrap_ViewEdgeViewEdgeIterator_getBegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_setBegin", _wrap_ViewEdgeViewEdgeIterator_setBegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getOrientation", _wrap_ViewEdgeViewEdgeIterator_getOrientation, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_setOrientation", _wrap_ViewEdgeViewEdgeIterator_setOrientation, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_changeOrientation", _wrap_ViewEdgeViewEdgeIterator_changeOrientation, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getObject", _wrap_ViewEdgeViewEdgeIterator_getObject, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator___deref__", _wrap_ViewEdgeViewEdgeIterator___deref__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_increment", _wrap_ViewEdgeViewEdgeIterator_increment, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_decrement", _wrap_ViewEdgeViewEdgeIterator_decrement, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_isBegin", _wrap_ViewEdgeViewEdgeIterator_isBegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_isEnd", _wrap_ViewEdgeViewEdgeIterator_isEnd, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator___eq__", _wrap_ViewEdgeViewEdgeIterator___eq__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator___ne__", _wrap_ViewEdgeViewEdgeIterator___ne__, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getId", _wrap_ViewEdgeViewEdgeIterator_getId, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getNature", _wrap_ViewEdgeViewEdgeIterator_getNature, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_userdata_set", _wrap_ViewEdgeViewEdgeIterator_userdata_set, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_userdata_get", _wrap_ViewEdgeViewEdgeIterator_userdata_get, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_A", _wrap_ViewEdgeViewEdgeIterator_A, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_B", _wrap_ViewEdgeViewEdgeIterator_B, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_fedgeA", _wrap_ViewEdgeViewEdgeIterator_fedgeA, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_fedgeB", _wrap_ViewEdgeViewEdgeIterator_fedgeB, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_viewShape", _wrap_ViewEdgeViewEdgeIterator_viewShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_aShape", _wrap_ViewEdgeViewEdgeIterator_aShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_isClosed", _wrap_ViewEdgeViewEdgeIterator_isClosed, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getChainingTimeStamp", _wrap_ViewEdgeViewEdgeIterator_getChainingTimeStamp, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_bShape", _wrap_ViewEdgeViewEdgeIterator_bShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_occluders", _wrap_ViewEdgeViewEdgeIterator_occluders, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_splittingId", _wrap_ViewEdgeViewEdgeIterator_splittingId, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetA", _wrap_ViewEdgeViewEdgeIterator_SetA, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetB", _wrap_ViewEdgeViewEdgeIterator_SetB, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetNature", _wrap_ViewEdgeViewEdgeIterator_SetNature, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetFEdgeA", _wrap_ViewEdgeViewEdgeIterator_SetFEdgeA, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetFEdgeB", _wrap_ViewEdgeViewEdgeIterator_SetFEdgeB, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetShape", _wrap_ViewEdgeViewEdgeIterator_SetShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetId", _wrap_ViewEdgeViewEdgeIterator_SetId, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_UpdateFEdges", _wrap_ViewEdgeViewEdgeIterator_UpdateFEdges, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetaShape", _wrap_ViewEdgeViewEdgeIterator_SetaShape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_SetQI", _wrap_ViewEdgeViewEdgeIterator_SetQI, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_setChainingTimeStamp", _wrap_ViewEdgeViewEdgeIterator_setChainingTimeStamp, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_AddOccluder", _wrap_ViewEdgeViewEdgeIterator_AddOccluder, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_setSplittingId", _wrap_ViewEdgeViewEdgeIterator_setSplittingId, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_intersect_2d_area", _wrap_ViewEdgeViewEdgeIterator_intersect_2d_area, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_include_in_2d_area", _wrap_ViewEdgeViewEdgeIterator_include_in_2d_area, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getLength2D", _wrap_ViewEdgeViewEdgeIterator_getLength2D, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_qi", _wrap_ViewEdgeViewEdgeIterator_qi, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_occluders_begin", _wrap_ViewEdgeViewEdgeIterator_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_occluders_end", _wrap_ViewEdgeViewEdgeIterator_occluders_end, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_occluders_size", _wrap_ViewEdgeViewEdgeIterator_occluders_size, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_occluders_empty", _wrap_ViewEdgeViewEdgeIterator_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_occludee", _wrap_ViewEdgeViewEdgeIterator_occludee, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_occluded_shape", _wrap_ViewEdgeViewEdgeIterator_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_occludee_empty", _wrap_ViewEdgeViewEdgeIterator_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_shape_id", _wrap_ViewEdgeViewEdgeIterator_shape_id, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_shape", _wrap_ViewEdgeViewEdgeIterator_shape, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_shape_importance", _wrap_ViewEdgeViewEdgeIterator_shape_importance, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_verticesBegin", _wrap_ViewEdgeViewEdgeIterator_verticesBegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_verticesEnd", _wrap_ViewEdgeViewEdgeIterator_verticesEnd, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_pointsBegin", _wrap_ViewEdgeViewEdgeIterator_pointsBegin, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_pointsEnd", _wrap_ViewEdgeViewEdgeIterator_pointsEnd, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_getTimeStamp", _wrap_ViewEdgeViewEdgeIterator_getTimeStamp, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_setTimeStamp", _wrap_ViewEdgeViewEdgeIterator_setTimeStamp, METH_VARARGS, NULL},
+ { (char *)"disown_ViewEdgeViewEdgeIterator", _wrap_disown_ViewEdgeViewEdgeIterator, METH_VARARGS, NULL},
+ { (char *)"ViewEdgeViewEdgeIterator_swigregister", ViewEdgeViewEdgeIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DVoid", _wrap_new_UnaryFunction0DVoid, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DVoid", _wrap_delete_UnaryFunction0DVoid, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVoid_getName", _wrap_UnaryFunction0DVoid_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVoid___call__", _wrap_UnaryFunction0DVoid___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction0DVoid", _wrap_disown_UnaryFunction0DVoid, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVoid_swigregister", UnaryFunction0DVoid_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DUnsigned", _wrap_new_UnaryFunction0DUnsigned, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DUnsigned", _wrap_delete_UnaryFunction0DUnsigned, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DUnsigned_getName", _wrap_UnaryFunction0DUnsigned_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DUnsigned___call__", _wrap_UnaryFunction0DUnsigned___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction0DUnsigned", _wrap_disown_UnaryFunction0DUnsigned, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DUnsigned_swigregister", UnaryFunction0DUnsigned_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DFloat", _wrap_new_UnaryFunction0DFloat, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DFloat", _wrap_delete_UnaryFunction0DFloat, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DFloat_getName", _wrap_UnaryFunction0DFloat_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DFloat___call__", _wrap_UnaryFunction0DFloat___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction0DFloat", _wrap_disown_UnaryFunction0DFloat, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DFloat_swigregister", UnaryFunction0DFloat_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DDouble", _wrap_new_UnaryFunction0DDouble, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DDouble", _wrap_delete_UnaryFunction0DDouble, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DDouble_getName", _wrap_UnaryFunction0DDouble_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DDouble___call__", _wrap_UnaryFunction0DDouble___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction0DDouble", _wrap_disown_UnaryFunction0DDouble, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DDouble_swigregister", UnaryFunction0DDouble_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DVec2f", _wrap_new_UnaryFunction0DVec2f, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DVec2f", _wrap_delete_UnaryFunction0DVec2f, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVec2f_getName", _wrap_UnaryFunction0DVec2f_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVec2f___call__", _wrap_UnaryFunction0DVec2f___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction0DVec2f", _wrap_disown_UnaryFunction0DVec2f, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVec2f_swigregister", UnaryFunction0DVec2f_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DVec3f", _wrap_new_UnaryFunction0DVec3f, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DVec3f", _wrap_delete_UnaryFunction0DVec3f, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVec3f_getName", _wrap_UnaryFunction0DVec3f_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVec3f___call__", _wrap_UnaryFunction0DVec3f___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction0DVec3f", _wrap_disown_UnaryFunction0DVec3f, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVec3f_swigregister", UnaryFunction0DVec3f_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DId", _wrap_new_UnaryFunction0DId, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DId", _wrap_delete_UnaryFunction0DId, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DId_getName", _wrap_UnaryFunction0DId_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DId___call__", _wrap_UnaryFunction0DId___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction0DId", _wrap_disown_UnaryFunction0DId, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DId_swigregister", UnaryFunction0DId_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DViewShape", _wrap_new_UnaryFunction0DViewShape, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DViewShape", _wrap_delete_UnaryFunction0DViewShape, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DViewShape_getName", _wrap_UnaryFunction0DViewShape_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DViewShape___call__", _wrap_UnaryFunction0DViewShape___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DViewShape_swigregister", UnaryFunction0DViewShape_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction0DVectorViewShape", _wrap_new_UnaryFunction0DVectorViewShape, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction0DVectorViewShape", _wrap_delete_UnaryFunction0DVectorViewShape, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVectorViewShape_getName", _wrap_UnaryFunction0DVectorViewShape_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVectorViewShape___call__", _wrap_UnaryFunction0DVectorViewShape___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction0DVectorViewShape_swigregister", UnaryFunction0DVectorViewShape_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetXF0D_getName", _wrap_GetXF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetXF0D___call__", _wrap_GetXF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetXF0D", _wrap_new_GetXF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetXF0D", _wrap_delete_GetXF0D, METH_VARARGS, NULL},
+ { (char *)"GetXF0D_swigregister", GetXF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetYF0D_getName", _wrap_GetYF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetYF0D___call__", _wrap_GetYF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetYF0D", _wrap_new_GetYF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetYF0D", _wrap_delete_GetYF0D, METH_VARARGS, NULL},
+ { (char *)"GetYF0D_swigregister", GetYF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetZF0D_getName", _wrap_GetZF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetZF0D___call__", _wrap_GetZF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetZF0D", _wrap_new_GetZF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetZF0D", _wrap_delete_GetZF0D, METH_VARARGS, NULL},
+ { (char *)"GetZF0D_swigregister", GetZF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetProjectedXF0D_getName", _wrap_GetProjectedXF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetProjectedXF0D___call__", _wrap_GetProjectedXF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetProjectedXF0D", _wrap_new_GetProjectedXF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetProjectedXF0D", _wrap_delete_GetProjectedXF0D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedXF0D_swigregister", GetProjectedXF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetProjectedYF0D_getName", _wrap_GetProjectedYF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetProjectedYF0D___call__", _wrap_GetProjectedYF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetProjectedYF0D", _wrap_new_GetProjectedYF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetProjectedYF0D", _wrap_delete_GetProjectedYF0D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedYF0D_swigregister", GetProjectedYF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetProjectedZF0D_getName", _wrap_GetProjectedZF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetProjectedZF0D___call__", _wrap_GetProjectedZF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetProjectedZF0D", _wrap_new_GetProjectedZF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetProjectedZF0D", _wrap_delete_GetProjectedZF0D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedZF0D_swigregister", GetProjectedZF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetCurvilinearAbscissaF0D_getName", _wrap_GetCurvilinearAbscissaF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetCurvilinearAbscissaF0D___call__", _wrap_GetCurvilinearAbscissaF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetCurvilinearAbscissaF0D", _wrap_new_GetCurvilinearAbscissaF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetCurvilinearAbscissaF0D", _wrap_delete_GetCurvilinearAbscissaF0D, METH_VARARGS, NULL},
+ { (char *)"GetCurvilinearAbscissaF0D_swigregister", GetCurvilinearAbscissaF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetParameterF0D_getName", _wrap_GetParameterF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetParameterF0D___call__", _wrap_GetParameterF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetParameterF0D", _wrap_new_GetParameterF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetParameterF0D", _wrap_delete_GetParameterF0D, METH_VARARGS, NULL},
+ { (char *)"GetParameterF0D_swigregister", GetParameterF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"VertexOrientation2DF0D_getName", _wrap_VertexOrientation2DF0D_getName, METH_VARARGS, NULL},
+ { (char *)"VertexOrientation2DF0D___call__", _wrap_VertexOrientation2DF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_VertexOrientation2DF0D", _wrap_new_VertexOrientation2DF0D, METH_VARARGS, NULL},
+ { (char *)"delete_VertexOrientation2DF0D", _wrap_delete_VertexOrientation2DF0D, METH_VARARGS, NULL},
+ { (char *)"VertexOrientation2DF0D_swigregister", VertexOrientation2DF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"VertexOrientation3DF0D_getName", _wrap_VertexOrientation3DF0D_getName, METH_VARARGS, NULL},
+ { (char *)"VertexOrientation3DF0D___call__", _wrap_VertexOrientation3DF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_VertexOrientation3DF0D", _wrap_new_VertexOrientation3DF0D, METH_VARARGS, NULL},
+ { (char *)"delete_VertexOrientation3DF0D", _wrap_delete_VertexOrientation3DF0D, METH_VARARGS, NULL},
+ { (char *)"VertexOrientation3DF0D_swigregister", VertexOrientation3DF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"Curvature2DAngleF0D_getName", _wrap_Curvature2DAngleF0D_getName, METH_VARARGS, NULL},
+ { (char *)"Curvature2DAngleF0D___call__", _wrap_Curvature2DAngleF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_Curvature2DAngleF0D", _wrap_new_Curvature2DAngleF0D, METH_VARARGS, NULL},
+ { (char *)"delete_Curvature2DAngleF0D", _wrap_delete_Curvature2DAngleF0D, METH_VARARGS, NULL},
+ { (char *)"Curvature2DAngleF0D_swigregister", Curvature2DAngleF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"ZDiscontinuityF0D_getName", _wrap_ZDiscontinuityF0D_getName, METH_VARARGS, NULL},
+ { (char *)"ZDiscontinuityF0D___call__", _wrap_ZDiscontinuityF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_ZDiscontinuityF0D", _wrap_new_ZDiscontinuityF0D, METH_VARARGS, NULL},
+ { (char *)"delete_ZDiscontinuityF0D", _wrap_delete_ZDiscontinuityF0D, METH_VARARGS, NULL},
+ { (char *)"ZDiscontinuityF0D_swigregister", ZDiscontinuityF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"Normal2DF0D_getName", _wrap_Normal2DF0D_getName, METH_VARARGS, NULL},
+ { (char *)"Normal2DF0D___call__", _wrap_Normal2DF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_Normal2DF0D", _wrap_new_Normal2DF0D, METH_VARARGS, NULL},
+ { (char *)"delete_Normal2DF0D", _wrap_delete_Normal2DF0D, METH_VARARGS, NULL},
+ { (char *)"Normal2DF0D_swigregister", Normal2DF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"MaterialF0D_getName", _wrap_MaterialF0D_getName, METH_VARARGS, NULL},
+ { (char *)"MaterialF0D___call__", _wrap_MaterialF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_MaterialF0D", _wrap_new_MaterialF0D, METH_VARARGS, NULL},
+ { (char *)"delete_MaterialF0D", _wrap_delete_MaterialF0D, METH_VARARGS, NULL},
+ { (char *)"MaterialF0D_swigregister", MaterialF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"ShapeIdF0D_getName", _wrap_ShapeIdF0D_getName, METH_VARARGS, NULL},
+ { (char *)"ShapeIdF0D___call__", _wrap_ShapeIdF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_ShapeIdF0D", _wrap_new_ShapeIdF0D, METH_VARARGS, NULL},
+ { (char *)"delete_ShapeIdF0D", _wrap_delete_ShapeIdF0D, METH_VARARGS, NULL},
+ { (char *)"ShapeIdF0D_swigregister", ShapeIdF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityF0D_getName", _wrap_QuantitativeInvisibilityF0D_getName, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityF0D___call__", _wrap_QuantitativeInvisibilityF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_QuantitativeInvisibilityF0D", _wrap_new_QuantitativeInvisibilityF0D, METH_VARARGS, NULL},
+ { (char *)"delete_QuantitativeInvisibilityF0D", _wrap_delete_QuantitativeInvisibilityF0D, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityF0D_swigregister", QuantitativeInvisibilityF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"CurveNatureF0D_getName", _wrap_CurveNatureF0D_getName, METH_VARARGS, NULL},
+ { (char *)"CurveNatureF0D___call__", _wrap_CurveNatureF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_CurveNatureF0D", _wrap_new_CurveNatureF0D, METH_VARARGS, NULL},
+ { (char *)"delete_CurveNatureF0D", _wrap_delete_CurveNatureF0D, METH_VARARGS, NULL},
+ { (char *)"CurveNatureF0D_swigregister", CurveNatureF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetShapeF0D_getName", _wrap_GetShapeF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetShapeF0D___call__", _wrap_GetShapeF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetShapeF0D", _wrap_new_GetShapeF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetShapeF0D", _wrap_delete_GetShapeF0D, METH_VARARGS, NULL},
+ { (char *)"GetShapeF0D_swigregister", GetShapeF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetOccludersF0D_getName", _wrap_GetOccludersF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetOccludersF0D___call__", _wrap_GetOccludersF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetOccludersF0D", _wrap_new_GetOccludersF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetOccludersF0D", _wrap_delete_GetOccludersF0D, METH_VARARGS, NULL},
+ { (char *)"GetOccludersF0D_swigregister", GetOccludersF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetOccludeeF0D_getName", _wrap_GetOccludeeF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetOccludeeF0D___call__", _wrap_GetOccludeeF0D___call__, METH_VARARGS, NULL},
+ { (char *)"new_GetOccludeeF0D", _wrap_new_GetOccludeeF0D, METH_VARARGS, NULL},
+ { (char *)"delete_GetOccludeeF0D", _wrap_delete_GetOccludeeF0D, METH_VARARGS, NULL},
+ { (char *)"GetOccludeeF0D_swigregister", GetOccludeeF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"getFEdge", _wrap_getFEdge, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction1DVoid", _wrap_new_UnaryFunction1DVoid, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction1DVoid", _wrap_delete_UnaryFunction1DVoid, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVoid_getName", _wrap_UnaryFunction1DVoid_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVoid___call__", _wrap_UnaryFunction1DVoid___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVoid_setIntegrationType", _wrap_UnaryFunction1DVoid_setIntegrationType, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVoid_getIntegrationType", _wrap_UnaryFunction1DVoid_getIntegrationType, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction1DVoid", _wrap_disown_UnaryFunction1DVoid, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVoid_swigregister", UnaryFunction1DVoid_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction1DUnsigned", _wrap_new_UnaryFunction1DUnsigned, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction1DUnsigned", _wrap_delete_UnaryFunction1DUnsigned, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DUnsigned_getName", _wrap_UnaryFunction1DUnsigned_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DUnsigned___call__", _wrap_UnaryFunction1DUnsigned___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DUnsigned_setIntegrationType", _wrap_UnaryFunction1DUnsigned_setIntegrationType, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DUnsigned_getIntegrationType", _wrap_UnaryFunction1DUnsigned_getIntegrationType, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction1DUnsigned", _wrap_disown_UnaryFunction1DUnsigned, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DUnsigned_swigregister", UnaryFunction1DUnsigned_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction1DFloat", _wrap_new_UnaryFunction1DFloat, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction1DFloat", _wrap_delete_UnaryFunction1DFloat, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DFloat_getName", _wrap_UnaryFunction1DFloat_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DFloat___call__", _wrap_UnaryFunction1DFloat___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DFloat_setIntegrationType", _wrap_UnaryFunction1DFloat_setIntegrationType, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DFloat_getIntegrationType", _wrap_UnaryFunction1DFloat_getIntegrationType, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction1DFloat", _wrap_disown_UnaryFunction1DFloat, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DFloat_swigregister", UnaryFunction1DFloat_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction1DDouble", _wrap_new_UnaryFunction1DDouble, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction1DDouble", _wrap_delete_UnaryFunction1DDouble, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DDouble_getName", _wrap_UnaryFunction1DDouble_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DDouble___call__", _wrap_UnaryFunction1DDouble___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DDouble_setIntegrationType", _wrap_UnaryFunction1DDouble_setIntegrationType, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DDouble_getIntegrationType", _wrap_UnaryFunction1DDouble_getIntegrationType, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction1DDouble", _wrap_disown_UnaryFunction1DDouble, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DDouble_swigregister", UnaryFunction1DDouble_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction1DVec2f", _wrap_new_UnaryFunction1DVec2f, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction1DVec2f", _wrap_delete_UnaryFunction1DVec2f, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec2f_getName", _wrap_UnaryFunction1DVec2f_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec2f___call__", _wrap_UnaryFunction1DVec2f___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec2f_setIntegrationType", _wrap_UnaryFunction1DVec2f_setIntegrationType, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec2f_getIntegrationType", _wrap_UnaryFunction1DVec2f_getIntegrationType, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction1DVec2f", _wrap_disown_UnaryFunction1DVec2f, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec2f_swigregister", UnaryFunction1DVec2f_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction1DVec3f", _wrap_new_UnaryFunction1DVec3f, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction1DVec3f", _wrap_delete_UnaryFunction1DVec3f, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec3f_getName", _wrap_UnaryFunction1DVec3f_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec3f___call__", _wrap_UnaryFunction1DVec3f___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec3f_setIntegrationType", _wrap_UnaryFunction1DVec3f_setIntegrationType, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec3f_getIntegrationType", _wrap_UnaryFunction1DVec3f_getIntegrationType, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryFunction1DVec3f", _wrap_disown_UnaryFunction1DVec3f, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVec3f_swigregister", UnaryFunction1DVec3f_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryFunction1DVectorViewShape", _wrap_new_UnaryFunction1DVectorViewShape, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryFunction1DVectorViewShape", _wrap_delete_UnaryFunction1DVectorViewShape, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVectorViewShape_getName", _wrap_UnaryFunction1DVectorViewShape_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVectorViewShape___call__", _wrap_UnaryFunction1DVectorViewShape___call__, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVectorViewShape_setIntegrationType", _wrap_UnaryFunction1DVectorViewShape_setIntegrationType, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVectorViewShape_getIntegrationType", _wrap_UnaryFunction1DVectorViewShape_getIntegrationType, METH_VARARGS, NULL},
+ { (char *)"UnaryFunction1DVectorViewShape_swigregister", UnaryFunction1DVectorViewShape_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetXF1D", _wrap_new_GetXF1D, METH_VARARGS, NULL},
+ { (char *)"GetXF1D_getName", _wrap_GetXF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetXF1D___call__", _wrap_GetXF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetXF1D", _wrap_delete_GetXF1D, METH_VARARGS, NULL},
+ { (char *)"GetXF1D_swigregister", GetXF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetYF1D", _wrap_new_GetYF1D, METH_VARARGS, NULL},
+ { (char *)"GetYF1D_getName", _wrap_GetYF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetYF1D___call__", _wrap_GetYF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetYF1D", _wrap_delete_GetYF1D, METH_VARARGS, NULL},
+ { (char *)"GetYF1D_swigregister", GetYF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetZF1D", _wrap_new_GetZF1D, METH_VARARGS, NULL},
+ { (char *)"GetZF1D_getName", _wrap_GetZF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetZF1D___call__", _wrap_GetZF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetZF1D", _wrap_delete_GetZF1D, METH_VARARGS, NULL},
+ { (char *)"GetZF1D_swigregister", GetZF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetProjectedXF1D", _wrap_new_GetProjectedXF1D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedXF1D_getName", _wrap_GetProjectedXF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetProjectedXF1D___call__", _wrap_GetProjectedXF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetProjectedXF1D", _wrap_delete_GetProjectedXF1D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedXF1D_swigregister", GetProjectedXF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetProjectedYF1D", _wrap_new_GetProjectedYF1D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedYF1D_getName", _wrap_GetProjectedYF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetProjectedYF1D___call__", _wrap_GetProjectedYF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetProjectedYF1D", _wrap_delete_GetProjectedYF1D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedYF1D_swigregister", GetProjectedYF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetProjectedZF1D", _wrap_new_GetProjectedZF1D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedZF1D_getName", _wrap_GetProjectedZF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetProjectedZF1D___call__", _wrap_GetProjectedZF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetProjectedZF1D", _wrap_delete_GetProjectedZF1D, METH_VARARGS, NULL},
+ { (char *)"GetProjectedZF1D_swigregister", GetProjectedZF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Orientation2DF1D", _wrap_new_Orientation2DF1D, METH_VARARGS, NULL},
+ { (char *)"Orientation2DF1D_getName", _wrap_Orientation2DF1D_getName, METH_VARARGS, NULL},
+ { (char *)"Orientation2DF1D___call__", _wrap_Orientation2DF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_Orientation2DF1D", _wrap_delete_Orientation2DF1D, METH_VARARGS, NULL},
+ { (char *)"Orientation2DF1D_swigregister", Orientation2DF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Orientation3DF1D", _wrap_new_Orientation3DF1D, METH_VARARGS, NULL},
+ { (char *)"Orientation3DF1D_getName", _wrap_Orientation3DF1D_getName, METH_VARARGS, NULL},
+ { (char *)"Orientation3DF1D___call__", _wrap_Orientation3DF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_Orientation3DF1D", _wrap_delete_Orientation3DF1D, METH_VARARGS, NULL},
+ { (char *)"Orientation3DF1D_swigregister", Orientation3DF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ZDiscontinuityF1D", _wrap_new_ZDiscontinuityF1D, METH_VARARGS, NULL},
+ { (char *)"ZDiscontinuityF1D_getName", _wrap_ZDiscontinuityF1D_getName, METH_VARARGS, NULL},
+ { (char *)"ZDiscontinuityF1D___call__", _wrap_ZDiscontinuityF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_ZDiscontinuityF1D", _wrap_delete_ZDiscontinuityF1D, METH_VARARGS, NULL},
+ { (char *)"ZDiscontinuityF1D_swigregister", ZDiscontinuityF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_QuantitativeInvisibilityF1D", _wrap_new_QuantitativeInvisibilityF1D, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityF1D_getName", _wrap_QuantitativeInvisibilityF1D_getName, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityF1D___call__", _wrap_QuantitativeInvisibilityF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_QuantitativeInvisibilityF1D", _wrap_delete_QuantitativeInvisibilityF1D, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityF1D_swigregister", QuantitativeInvisibilityF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_CurveNatureF1D", _wrap_new_CurveNatureF1D, METH_VARARGS, NULL},
+ { (char *)"CurveNatureF1D_getName", _wrap_CurveNatureF1D_getName, METH_VARARGS, NULL},
+ { (char *)"CurveNatureF1D___call__", _wrap_CurveNatureF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_CurveNatureF1D", _wrap_delete_CurveNatureF1D, METH_VARARGS, NULL},
+ { (char *)"CurveNatureF1D_swigregister", CurveNatureF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"TimeStampF1D_getName", _wrap_TimeStampF1D_getName, METH_VARARGS, NULL},
+ { (char *)"TimeStampF1D___call__", _wrap_TimeStampF1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_TimeStampF1D", _wrap_new_TimeStampF1D, METH_VARARGS, NULL},
+ { (char *)"delete_TimeStampF1D", _wrap_delete_TimeStampF1D, METH_VARARGS, NULL},
+ { (char *)"TimeStampF1D_swigregister", TimeStampF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"IncrementChainingTimeStampF1D_getName", _wrap_IncrementChainingTimeStampF1D_getName, METH_VARARGS, NULL},
+ { (char *)"IncrementChainingTimeStampF1D___call__", _wrap_IncrementChainingTimeStampF1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_IncrementChainingTimeStampF1D", _wrap_new_IncrementChainingTimeStampF1D, METH_VARARGS, NULL},
+ { (char *)"delete_IncrementChainingTimeStampF1D", _wrap_delete_IncrementChainingTimeStampF1D, METH_VARARGS, NULL},
+ { (char *)"IncrementChainingTimeStampF1D_swigregister", IncrementChainingTimeStampF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"ChainingTimeStampF1D_getName", _wrap_ChainingTimeStampF1D_getName, METH_VARARGS, NULL},
+ { (char *)"ChainingTimeStampF1D___call__", _wrap_ChainingTimeStampF1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_ChainingTimeStampF1D", _wrap_new_ChainingTimeStampF1D, METH_VARARGS, NULL},
+ { (char *)"delete_ChainingTimeStampF1D", _wrap_delete_ChainingTimeStampF1D, METH_VARARGS, NULL},
+ { (char *)"ChainingTimeStampF1D_swigregister", ChainingTimeStampF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Curvature2DAngleF1D", _wrap_new_Curvature2DAngleF1D, METH_VARARGS, NULL},
+ { (char *)"Curvature2DAngleF1D_getName", _wrap_Curvature2DAngleF1D_getName, METH_VARARGS, NULL},
+ { (char *)"Curvature2DAngleF1D___call__", _wrap_Curvature2DAngleF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_Curvature2DAngleF1D", _wrap_delete_Curvature2DAngleF1D, METH_VARARGS, NULL},
+ { (char *)"Curvature2DAngleF1D_swigregister", Curvature2DAngleF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Normal2DF1D", _wrap_new_Normal2DF1D, METH_VARARGS, NULL},
+ { (char *)"Normal2DF1D_getName", _wrap_Normal2DF1D_getName, METH_VARARGS, NULL},
+ { (char *)"Normal2DF1D___call__", _wrap_Normal2DF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_Normal2DF1D", _wrap_delete_Normal2DF1D, METH_VARARGS, NULL},
+ { (char *)"Normal2DF1D_swigregister", Normal2DF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetShapeF1D", _wrap_new_GetShapeF1D, METH_VARARGS, NULL},
+ { (char *)"GetShapeF1D_getName", _wrap_GetShapeF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetShapeF1D___call__", _wrap_GetShapeF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetShapeF1D", _wrap_delete_GetShapeF1D, METH_VARARGS, NULL},
+ { (char *)"GetShapeF1D_swigregister", GetShapeF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetOccludersF1D", _wrap_new_GetOccludersF1D, METH_VARARGS, NULL},
+ { (char *)"GetOccludersF1D_getName", _wrap_GetOccludersF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetOccludersF1D___call__", _wrap_GetOccludersF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetOccludersF1D", _wrap_delete_GetOccludersF1D, METH_VARARGS, NULL},
+ { (char *)"GetOccludersF1D_swigregister", GetOccludersF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetOccludeeF1D", _wrap_new_GetOccludeeF1D, METH_VARARGS, NULL},
+ { (char *)"GetOccludeeF1D_getName", _wrap_GetOccludeeF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetOccludeeF1D___call__", _wrap_GetOccludeeF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetOccludeeF1D", _wrap_delete_GetOccludeeF1D, METH_VARARGS, NULL},
+ { (char *)"GetOccludeeF1D_swigregister", GetOccludeeF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"Module_setAlwaysRefresh", _wrap_Module_setAlwaysRefresh, METH_VARARGS, NULL},
+ { (char *)"Module_setCausal", _wrap_Module_setCausal, METH_VARARGS, NULL},
+ { (char *)"Module_setDrawable", _wrap_Module_setDrawable, METH_VARARGS, NULL},
+ { (char *)"Module_getAlwaysRefresh", _wrap_Module_getAlwaysRefresh, METH_VARARGS, NULL},
+ { (char *)"Module_getCausal", _wrap_Module_getCausal, METH_VARARGS, NULL},
+ { (char *)"Module_getDrawable", _wrap_Module_getDrawable, METH_VARARGS, NULL},
+ { (char *)"new_Module", _wrap_new_Module, METH_VARARGS, NULL},
+ { (char *)"delete_Module", _wrap_delete_Module, METH_VARARGS, NULL},
+ { (char *)"Module_swigregister", Module_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_DensityF0D", _wrap_new_DensityF0D, METH_VARARGS, NULL},
+ { (char *)"DensityF0D_getName", _wrap_DensityF0D_getName, METH_VARARGS, NULL},
+ { (char *)"DensityF0D___call__", _wrap_DensityF0D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_DensityF0D", _wrap_delete_DensityF0D, METH_VARARGS, NULL},
+ { (char *)"DensityF0D_swigregister", DensityF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_LocalAverageDepthF0D", _wrap_new_LocalAverageDepthF0D, METH_VARARGS, NULL},
+ { (char *)"LocalAverageDepthF0D_getName", _wrap_LocalAverageDepthF0D_getName, METH_VARARGS, NULL},
+ { (char *)"LocalAverageDepthF0D___call__", _wrap_LocalAverageDepthF0D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_LocalAverageDepthF0D", _wrap_delete_LocalAverageDepthF0D, METH_VARARGS, NULL},
+ { (char *)"LocalAverageDepthF0D_swigregister", LocalAverageDepthF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ReadMapPixelF0D", _wrap_new_ReadMapPixelF0D, METH_VARARGS, NULL},
+ { (char *)"ReadMapPixelF0D_getName", _wrap_ReadMapPixelF0D_getName, METH_VARARGS, NULL},
+ { (char *)"ReadMapPixelF0D___call__", _wrap_ReadMapPixelF0D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_ReadMapPixelF0D", _wrap_delete_ReadMapPixelF0D, METH_VARARGS, NULL},
+ { (char *)"ReadMapPixelF0D_swigregister", ReadMapPixelF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ReadSteerableViewMapPixelF0D", _wrap_new_ReadSteerableViewMapPixelF0D, METH_VARARGS, NULL},
+ { (char *)"ReadSteerableViewMapPixelF0D_getName", _wrap_ReadSteerableViewMapPixelF0D_getName, METH_VARARGS, NULL},
+ { (char *)"ReadSteerableViewMapPixelF0D___call__", _wrap_ReadSteerableViewMapPixelF0D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_ReadSteerableViewMapPixelF0D", _wrap_delete_ReadSteerableViewMapPixelF0D, METH_VARARGS, NULL},
+ { (char *)"ReadSteerableViewMapPixelF0D_swigregister", ReadSteerableViewMapPixelF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ReadCompleteViewMapPixelF0D", _wrap_new_ReadCompleteViewMapPixelF0D, METH_VARARGS, NULL},
+ { (char *)"ReadCompleteViewMapPixelF0D_getName", _wrap_ReadCompleteViewMapPixelF0D_getName, METH_VARARGS, NULL},
+ { (char *)"ReadCompleteViewMapPixelF0D___call__", _wrap_ReadCompleteViewMapPixelF0D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_ReadCompleteViewMapPixelF0D", _wrap_delete_ReadCompleteViewMapPixelF0D, METH_VARARGS, NULL},
+ { (char *)"ReadCompleteViewMapPixelF0D_swigregister", ReadCompleteViewMapPixelF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetViewMapGradientNormF0D", _wrap_new_GetViewMapGradientNormF0D, METH_VARARGS, NULL},
+ { (char *)"GetViewMapGradientNormF0D_getName", _wrap_GetViewMapGradientNormF0D_getName, METH_VARARGS, NULL},
+ { (char *)"GetViewMapGradientNormF0D___call__", _wrap_GetViewMapGradientNormF0D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetViewMapGradientNormF0D", _wrap_delete_GetViewMapGradientNormF0D, METH_VARARGS, NULL},
+ { (char *)"GetViewMapGradientNormF0D_swigregister", GetViewMapGradientNormF0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_DensityF1D", _wrap_new_DensityF1D, METH_VARARGS, NULL},
+ { (char *)"delete_DensityF1D", _wrap_delete_DensityF1D, METH_VARARGS, NULL},
+ { (char *)"DensityF1D_getName", _wrap_DensityF1D_getName, METH_VARARGS, NULL},
+ { (char *)"DensityF1D___call__", _wrap_DensityF1D___call__, METH_VARARGS, NULL},
+ { (char *)"DensityF1D_swigregister", DensityF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_LocalAverageDepthF1D", _wrap_new_LocalAverageDepthF1D, METH_VARARGS, NULL},
+ { (char *)"LocalAverageDepthF1D_getName", _wrap_LocalAverageDepthF1D_getName, METH_VARARGS, NULL},
+ { (char *)"LocalAverageDepthF1D___call__", _wrap_LocalAverageDepthF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_LocalAverageDepthF1D", _wrap_delete_LocalAverageDepthF1D, METH_VARARGS, NULL},
+ { (char *)"LocalAverageDepthF1D_swigregister", LocalAverageDepthF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetCompleteViewMapDensityF1D", _wrap_new_GetCompleteViewMapDensityF1D, METH_VARARGS, NULL},
+ { (char *)"GetCompleteViewMapDensityF1D_getName", _wrap_GetCompleteViewMapDensityF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetCompleteViewMapDensityF1D___call__", _wrap_GetCompleteViewMapDensityF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetCompleteViewMapDensityF1D", _wrap_delete_GetCompleteViewMapDensityF1D, METH_VARARGS, NULL},
+ { (char *)"GetCompleteViewMapDensityF1D_swigregister", GetCompleteViewMapDensityF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetDirectionalViewMapDensityF1D", _wrap_new_GetDirectionalViewMapDensityF1D, METH_VARARGS, NULL},
+ { (char *)"GetDirectionalViewMapDensityF1D_getName", _wrap_GetDirectionalViewMapDensityF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetDirectionalViewMapDensityF1D___call__", _wrap_GetDirectionalViewMapDensityF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetDirectionalViewMapDensityF1D", _wrap_delete_GetDirectionalViewMapDensityF1D, METH_VARARGS, NULL},
+ { (char *)"GetDirectionalViewMapDensityF1D_swigregister", GetDirectionalViewMapDensityF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetSteerableViewMapDensityF1D", _wrap_new_GetSteerableViewMapDensityF1D, METH_VARARGS, NULL},
+ { (char *)"delete_GetSteerableViewMapDensityF1D", _wrap_delete_GetSteerableViewMapDensityF1D, METH_VARARGS, NULL},
+ { (char *)"GetSteerableViewMapDensityF1D_getName", _wrap_GetSteerableViewMapDensityF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetSteerableViewMapDensityF1D___call__", _wrap_GetSteerableViewMapDensityF1D___call__, METH_VARARGS, NULL},
+ { (char *)"GetSteerableViewMapDensityF1D_swigregister", GetSteerableViewMapDensityF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GetViewMapGradientNormF1D", _wrap_new_GetViewMapGradientNormF1D, METH_VARARGS, NULL},
+ { (char *)"GetViewMapGradientNormF1D_getName", _wrap_GetViewMapGradientNormF1D_getName, METH_VARARGS, NULL},
+ { (char *)"GetViewMapGradientNormF1D___call__", _wrap_GetViewMapGradientNormF1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_GetViewMapGradientNormF1D", _wrap_delete_GetViewMapGradientNormF1D, METH_VARARGS, NULL},
+ { (char *)"GetViewMapGradientNormF1D_swigregister", GetViewMapGradientNormF1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"GetTimeStampCF", _wrap_GetTimeStampCF, METH_VARARGS, NULL},
+ { (char *)"GetCanvasWidthCF", _wrap_GetCanvasWidthCF, METH_VARARGS, NULL},
+ { (char *)"GetCanvasHeightCF", _wrap_GetCanvasHeightCF, METH_VARARGS, NULL},
+ { (char *)"LoadMapCF", _wrap_LoadMapCF, METH_VARARGS, NULL},
+ { (char *)"ReadMapPixelCF", _wrap_ReadMapPixelCF, METH_VARARGS, NULL},
+ { (char *)"ReadCompleteViewMapPixelCF", _wrap_ReadCompleteViewMapPixelCF, METH_VARARGS, NULL},
+ { (char *)"ReadDirectionalViewMapPixelCF", _wrap_ReadDirectionalViewMapPixelCF, METH_VARARGS, NULL},
+ { (char *)"GetSelectedFEdgeCF", _wrap_GetSelectedFEdgeCF, METH_VARARGS, NULL},
+ { (char *)"new_AdjacencyIterator", _wrap_new_AdjacencyIterator, METH_VARARGS, NULL},
+ { (char *)"delete_AdjacencyIterator", _wrap_delete_AdjacencyIterator, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_isEnd", _wrap_AdjacencyIterator_isEnd, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_isBegin", _wrap_AdjacencyIterator_isBegin, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_isIncoming", _wrap_AdjacencyIterator_isIncoming, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_getObject", _wrap_AdjacencyIterator_getObject, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator___deref__", _wrap_AdjacencyIterator___deref__, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_increment", _wrap_AdjacencyIterator_increment, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_getExactTypeName", _wrap_AdjacencyIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_getId", _wrap_AdjacencyIterator_getId, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_getNature", _wrap_AdjacencyIterator_getNature, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_userdata_set", _wrap_AdjacencyIterator_userdata_set, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_userdata_get", _wrap_AdjacencyIterator_userdata_get, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_A", _wrap_AdjacencyIterator_A, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_B", _wrap_AdjacencyIterator_B, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_fedgeA", _wrap_AdjacencyIterator_fedgeA, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_fedgeB", _wrap_AdjacencyIterator_fedgeB, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_viewShape", _wrap_AdjacencyIterator_viewShape, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_aShape", _wrap_AdjacencyIterator_aShape, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_isClosed", _wrap_AdjacencyIterator_isClosed, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_getChainingTimeStamp", _wrap_AdjacencyIterator_getChainingTimeStamp, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_bShape", _wrap_AdjacencyIterator_bShape, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_occluders", _wrap_AdjacencyIterator_occluders, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_splittingId", _wrap_AdjacencyIterator_splittingId, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetA", _wrap_AdjacencyIterator_SetA, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetB", _wrap_AdjacencyIterator_SetB, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetNature", _wrap_AdjacencyIterator_SetNature, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetFEdgeA", _wrap_AdjacencyIterator_SetFEdgeA, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetFEdgeB", _wrap_AdjacencyIterator_SetFEdgeB, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetShape", _wrap_AdjacencyIterator_SetShape, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetId", _wrap_AdjacencyIterator_SetId, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_UpdateFEdges", _wrap_AdjacencyIterator_UpdateFEdges, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetaShape", _wrap_AdjacencyIterator_SetaShape, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_SetQI", _wrap_AdjacencyIterator_SetQI, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_setChainingTimeStamp", _wrap_AdjacencyIterator_setChainingTimeStamp, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_AddOccluder", _wrap_AdjacencyIterator_AddOccluder, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_setSplittingId", _wrap_AdjacencyIterator_setSplittingId, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_intersect_2d_area", _wrap_AdjacencyIterator_intersect_2d_area, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_include_in_2d_area", _wrap_AdjacencyIterator_include_in_2d_area, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_getLength2D", _wrap_AdjacencyIterator_getLength2D, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_qi", _wrap_AdjacencyIterator_qi, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_occluders_begin", _wrap_AdjacencyIterator_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_occluders_end", _wrap_AdjacencyIterator_occluders_end, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_occluders_size", _wrap_AdjacencyIterator_occluders_size, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_occluders_empty", _wrap_AdjacencyIterator_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_occludee", _wrap_AdjacencyIterator_occludee, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_occluded_shape", _wrap_AdjacencyIterator_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_occludee_empty", _wrap_AdjacencyIterator_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_shape_id", _wrap_AdjacencyIterator_shape_id, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_shape", _wrap_AdjacencyIterator_shape, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_shape_importance", _wrap_AdjacencyIterator_shape_importance, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_verticesBegin", _wrap_AdjacencyIterator_verticesBegin, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_verticesEnd", _wrap_AdjacencyIterator_verticesEnd, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_pointsBegin", _wrap_AdjacencyIterator_pointsBegin, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_pointsEnd", _wrap_AdjacencyIterator_pointsEnd, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_getTimeStamp", _wrap_AdjacencyIterator_getTimeStamp, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_setTimeStamp", _wrap_AdjacencyIterator_setTimeStamp, METH_VARARGS, NULL},
+ { (char *)"AdjacencyIterator_swigregister", AdjacencyIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ChainingIterator", _wrap_new_ChainingIterator, METH_VARARGS, NULL},
+ { (char *)"ChainingIterator_getExactTypeName", _wrap_ChainingIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"ChainingIterator_init", _wrap_ChainingIterator_init, METH_VARARGS, NULL},
+ { (char *)"ChainingIterator_traverse", _wrap_ChainingIterator_traverse, METH_VARARGS, NULL},
+ { (char *)"ChainingIterator_getVertex", _wrap_ChainingIterator_getVertex, METH_VARARGS, NULL},
+ { (char *)"ChainingIterator_isIncrementing", _wrap_ChainingIterator_isIncrementing, METH_VARARGS, NULL},
+ { (char *)"ChainingIterator_increment", _wrap_ChainingIterator_increment, METH_VARARGS, NULL},
+ { (char *)"ChainingIterator_decrement", _wrap_ChainingIterator_decrement, METH_VARARGS, NULL},
+ { (char *)"delete_ChainingIterator", _wrap_delete_ChainingIterator, METH_VARARGS, NULL},
+ { (char *)"disown_ChainingIterator", _wrap_disown_ChainingIterator, METH_VARARGS, NULL},
+ { (char *)"ChainingIterator_swigregister", ChainingIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ChainSilhouetteIterator", _wrap_new_ChainSilhouetteIterator, METH_VARARGS, NULL},
+ { (char *)"ChainSilhouetteIterator_getExactTypeName", _wrap_ChainSilhouetteIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"ChainSilhouetteIterator_traverse", _wrap_ChainSilhouetteIterator_traverse, METH_VARARGS, NULL},
+ { (char *)"delete_ChainSilhouetteIterator", _wrap_delete_ChainSilhouetteIterator, METH_VARARGS, NULL},
+ { (char *)"disown_ChainSilhouetteIterator", _wrap_disown_ChainSilhouetteIterator, METH_VARARGS, NULL},
+ { (char *)"ChainSilhouetteIterator_swigregister", ChainSilhouetteIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ChainPredicateIterator", _wrap_new_ChainPredicateIterator, METH_VARARGS, NULL},
+ { (char *)"delete_ChainPredicateIterator", _wrap_delete_ChainPredicateIterator, METH_VARARGS, NULL},
+ { (char *)"ChainPredicateIterator_getExactTypeName", _wrap_ChainPredicateIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"ChainPredicateIterator_traverse", _wrap_ChainPredicateIterator_traverse, METH_VARARGS, NULL},
+ { (char *)"disown_ChainPredicateIterator", _wrap_disown_ChainPredicateIterator, METH_VARARGS, NULL},
+ { (char *)"ChainPredicateIterator_swigregister", ChainPredicateIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryPredicate0D", _wrap_new_UnaryPredicate0D, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryPredicate0D", _wrap_delete_UnaryPredicate0D, METH_VARARGS, NULL},
+ { (char *)"UnaryPredicate0D_getName", _wrap_UnaryPredicate0D_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryPredicate0D___call__", _wrap_UnaryPredicate0D___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryPredicate0D", _wrap_disown_UnaryPredicate0D, METH_VARARGS, NULL},
+ { (char *)"UnaryPredicate0D_swigregister", UnaryPredicate0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_BinaryPredicate0D", _wrap_new_BinaryPredicate0D, METH_VARARGS, NULL},
+ { (char *)"delete_BinaryPredicate0D", _wrap_delete_BinaryPredicate0D, METH_VARARGS, NULL},
+ { (char *)"BinaryPredicate0D_getName", _wrap_BinaryPredicate0D_getName, METH_VARARGS, NULL},
+ { (char *)"BinaryPredicate0D___call__", _wrap_BinaryPredicate0D___call__, METH_VARARGS, NULL},
+ { (char *)"BinaryPredicate0D_swigregister", BinaryPredicate0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_TrueUP0D", _wrap_new_TrueUP0D, METH_VARARGS, NULL},
+ { (char *)"TrueUP0D_getName", _wrap_TrueUP0D_getName, METH_VARARGS, NULL},
+ { (char *)"TrueUP0D___call__", _wrap_TrueUP0D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_TrueUP0D", _wrap_delete_TrueUP0D, METH_VARARGS, NULL},
+ { (char *)"TrueUP0D_swigregister", TrueUP0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_FalseUP0D", _wrap_new_FalseUP0D, METH_VARARGS, NULL},
+ { (char *)"FalseUP0D_getName", _wrap_FalseUP0D_getName, METH_VARARGS, NULL},
+ { (char *)"FalseUP0D___call__", _wrap_FalseUP0D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_FalseUP0D", _wrap_delete_FalseUP0D, METH_VARARGS, NULL},
+ { (char *)"FalseUP0D_swigregister", FalseUP0D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_UnaryPredicate1D", _wrap_new_UnaryPredicate1D, METH_VARARGS, NULL},
+ { (char *)"delete_UnaryPredicate1D", _wrap_delete_UnaryPredicate1D, METH_VARARGS, NULL},
+ { (char *)"UnaryPredicate1D_getName", _wrap_UnaryPredicate1D_getName, METH_VARARGS, NULL},
+ { (char *)"UnaryPredicate1D___call__", _wrap_UnaryPredicate1D___call__, METH_VARARGS, NULL},
+ { (char *)"disown_UnaryPredicate1D", _wrap_disown_UnaryPredicate1D, METH_VARARGS, NULL},
+ { (char *)"UnaryPredicate1D_swigregister", UnaryPredicate1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_BinaryPredicate1D", _wrap_new_BinaryPredicate1D, METH_VARARGS, NULL},
+ { (char *)"delete_BinaryPredicate1D", _wrap_delete_BinaryPredicate1D, METH_VARARGS, NULL},
+ { (char *)"BinaryPredicate1D_getName", _wrap_BinaryPredicate1D_getName, METH_VARARGS, NULL},
+ { (char *)"BinaryPredicate1D___call__", _wrap_BinaryPredicate1D___call__, METH_VARARGS, NULL},
+ { (char *)"disown_BinaryPredicate1D", _wrap_disown_BinaryPredicate1D, METH_VARARGS, NULL},
+ { (char *)"BinaryPredicate1D_swigregister", BinaryPredicate1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_TrueUP1D", _wrap_new_TrueUP1D, METH_VARARGS, NULL},
+ { (char *)"TrueUP1D_getName", _wrap_TrueUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"TrueUP1D___call__", _wrap_TrueUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_TrueUP1D", _wrap_delete_TrueUP1D, METH_VARARGS, NULL},
+ { (char *)"TrueUP1D_swigregister", TrueUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_FalseUP1D", _wrap_new_FalseUP1D, METH_VARARGS, NULL},
+ { (char *)"FalseUP1D_getName", _wrap_FalseUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"FalseUP1D___call__", _wrap_FalseUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_FalseUP1D", _wrap_delete_FalseUP1D, METH_VARARGS, NULL},
+ { (char *)"FalseUP1D_swigregister", FalseUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_QuantitativeInvisibilityUP1D", _wrap_new_QuantitativeInvisibilityUP1D, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityUP1D_getName", _wrap_QuantitativeInvisibilityUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityUP1D___call__", _wrap_QuantitativeInvisibilityUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_QuantitativeInvisibilityUP1D", _wrap_delete_QuantitativeInvisibilityUP1D, METH_VARARGS, NULL},
+ { (char *)"QuantitativeInvisibilityUP1D_swigregister", QuantitativeInvisibilityUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"ContourUP1D_getName", _wrap_ContourUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"ContourUP1D___call__", _wrap_ContourUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_ContourUP1D", _wrap_new_ContourUP1D, METH_VARARGS, NULL},
+ { (char *)"delete_ContourUP1D", _wrap_delete_ContourUP1D, METH_VARARGS, NULL},
+ { (char *)"ContourUP1D_swigregister", ContourUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"ExternalContourUP1D_getName", _wrap_ExternalContourUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"ExternalContourUP1D___call__", _wrap_ExternalContourUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_ExternalContourUP1D", _wrap_new_ExternalContourUP1D, METH_VARARGS, NULL},
+ { (char *)"delete_ExternalContourUP1D", _wrap_delete_ExternalContourUP1D, METH_VARARGS, NULL},
+ { (char *)"ExternalContourUP1D_swigregister", ExternalContourUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_EqualToTimeStampUP1D", _wrap_new_EqualToTimeStampUP1D, METH_VARARGS, NULL},
+ { (char *)"EqualToTimeStampUP1D_getName", _wrap_EqualToTimeStampUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"EqualToTimeStampUP1D___call__", _wrap_EqualToTimeStampUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_EqualToTimeStampUP1D", _wrap_delete_EqualToTimeStampUP1D, METH_VARARGS, NULL},
+ { (char *)"EqualToTimeStampUP1D_swigregister", EqualToTimeStampUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_EqualToChainingTimeStampUP1D", _wrap_new_EqualToChainingTimeStampUP1D, METH_VARARGS, NULL},
+ { (char *)"EqualToChainingTimeStampUP1D_getName", _wrap_EqualToChainingTimeStampUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"EqualToChainingTimeStampUP1D___call__", _wrap_EqualToChainingTimeStampUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_EqualToChainingTimeStampUP1D", _wrap_delete_EqualToChainingTimeStampUP1D, METH_VARARGS, NULL},
+ { (char *)"EqualToChainingTimeStampUP1D_swigregister", EqualToChainingTimeStampUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ShapeUP1D", _wrap_new_ShapeUP1D, METH_VARARGS, NULL},
+ { (char *)"ShapeUP1D_getName", _wrap_ShapeUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"ShapeUP1D___call__", _wrap_ShapeUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_ShapeUP1D", _wrap_delete_ShapeUP1D, METH_VARARGS, NULL},
+ { (char *)"ShapeUP1D_swigregister", ShapeUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"TrueBP1D_getName", _wrap_TrueBP1D_getName, METH_VARARGS, NULL},
+ { (char *)"TrueBP1D___call__", _wrap_TrueBP1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_TrueBP1D", _wrap_new_TrueBP1D, METH_VARARGS, NULL},
+ { (char *)"delete_TrueBP1D", _wrap_delete_TrueBP1D, METH_VARARGS, NULL},
+ { (char *)"TrueBP1D_swigregister", TrueBP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"FalseBP1D_getName", _wrap_FalseBP1D_getName, METH_VARARGS, NULL},
+ { (char *)"FalseBP1D___call__", _wrap_FalseBP1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_FalseBP1D", _wrap_new_FalseBP1D, METH_VARARGS, NULL},
+ { (char *)"delete_FalseBP1D", _wrap_delete_FalseBP1D, METH_VARARGS, NULL},
+ { (char *)"FalseBP1D_swigregister", FalseBP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"Length2DBP1D_getName", _wrap_Length2DBP1D_getName, METH_VARARGS, NULL},
+ { (char *)"Length2DBP1D___call__", _wrap_Length2DBP1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_Length2DBP1D", _wrap_new_Length2DBP1D, METH_VARARGS, NULL},
+ { (char *)"delete_Length2DBP1D", _wrap_delete_Length2DBP1D, METH_VARARGS, NULL},
+ { (char *)"Length2DBP1D_swigregister", Length2DBP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"SameShapeIdBP1D_getName", _wrap_SameShapeIdBP1D_getName, METH_VARARGS, NULL},
+ { (char *)"SameShapeIdBP1D___call__", _wrap_SameShapeIdBP1D___call__, METH_VARARGS, NULL},
+ { (char *)"new_SameShapeIdBP1D", _wrap_new_SameShapeIdBP1D, METH_VARARGS, NULL},
+ { (char *)"delete_SameShapeIdBP1D", _wrap_delete_SameShapeIdBP1D, METH_VARARGS, NULL},
+ { (char *)"SameShapeIdBP1D_swigregister", SameShapeIdBP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ViewMapGradientNormBP1D", _wrap_new_ViewMapGradientNormBP1D, METH_VARARGS, NULL},
+ { (char *)"ViewMapGradientNormBP1D_getName", _wrap_ViewMapGradientNormBP1D_getName, METH_VARARGS, NULL},
+ { (char *)"ViewMapGradientNormBP1D___call__", _wrap_ViewMapGradientNormBP1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_ViewMapGradientNormBP1D", _wrap_delete_ViewMapGradientNormBP1D, METH_VARARGS, NULL},
+ { (char *)"ViewMapGradientNormBP1D_swigregister", ViewMapGradientNormBP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_DensityLowerThanUP1D", _wrap_new_DensityLowerThanUP1D, METH_VARARGS, NULL},
+ { (char *)"DensityLowerThanUP1D_getName", _wrap_DensityLowerThanUP1D_getName, METH_VARARGS, NULL},
+ { (char *)"DensityLowerThanUP1D___call__", _wrap_DensityLowerThanUP1D___call__, METH_VARARGS, NULL},
+ { (char *)"delete_DensityLowerThanUP1D", _wrap_delete_DensityLowerThanUP1D, METH_VARARGS, NULL},
+ { (char *)"DensityLowerThanUP1D_swigregister", DensityLowerThanUP1D_swigregister, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__CurvilinearLength_set", _wrap_CurvePointIterator__CurvilinearLength_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__CurvilinearLength_get", _wrap_CurvePointIterator__CurvilinearLength_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__step_set", _wrap_CurvePointIterator__step_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__step_get", _wrap_CurvePointIterator__step_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator___A_set", _wrap_CurvePointIterator___A_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator___A_get", _wrap_CurvePointIterator___A_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator___B_set", _wrap_CurvePointIterator___B_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator___B_get", _wrap_CurvePointIterator___B_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__begin_set", _wrap_CurvePointIterator__begin_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__begin_get", _wrap_CurvePointIterator__begin_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__end_set", _wrap_CurvePointIterator__end_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__end_get", _wrap_CurvePointIterator__end_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__n_set", _wrap_CurvePointIterator__n_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__n_get", _wrap_CurvePointIterator__n_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__currentn_set", _wrap_CurvePointIterator__currentn_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__currentn_get", _wrap_CurvePointIterator__currentn_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__t_set", _wrap_CurvePointIterator__t_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__t_get", _wrap_CurvePointIterator__t_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__Point_set", _wrap_CurvePointIterator__Point_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__Point_get", _wrap_CurvePointIterator__Point_get, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__CurveLength_set", _wrap_CurvePointIterator__CurveLength_set, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator__CurveLength_get", _wrap_CurvePointIterator__CurveLength_get, METH_VARARGS, NULL},
+ { (char *)"new_CurvePointIterator", _wrap_new_CurvePointIterator, METH_VARARGS, NULL},
+ { (char *)"delete_CurvePointIterator", _wrap_delete_CurvePointIterator, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_copy", _wrap_CurvePointIterator_copy, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_CastToInterface0DIterator", _wrap_CurvePointIterator_CastToInterface0DIterator, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getExactTypeName", _wrap_CurvePointIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator___eq__", _wrap_CurvePointIterator___eq__, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getObject", _wrap_CurvePointIterator_getObject, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator___deref__", _wrap_CurvePointIterator___deref__, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_isBegin", _wrap_CurvePointIterator_isBegin, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_isEnd", _wrap_CurvePointIterator_isEnd, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getX", _wrap_CurvePointIterator_getX, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getY", _wrap_CurvePointIterator_getY, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getZ", _wrap_CurvePointIterator_getZ, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getPoint3D", _wrap_CurvePointIterator_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getProjectedX", _wrap_CurvePointIterator_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getProjectedY", _wrap_CurvePointIterator_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getProjectedZ", _wrap_CurvePointIterator_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getPoint2D", _wrap_CurvePointIterator_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getFEdge", _wrap_CurvePointIterator_getFEdge, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getId", _wrap_CurvePointIterator_getId, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_getNature", _wrap_CurvePointIterator_getNature, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_castToSVertex", _wrap_CurvePointIterator_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_castToViewVertex", _wrap_CurvePointIterator_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_castToNonTVertex", _wrap_CurvePointIterator_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_castToTVertex", _wrap_CurvePointIterator_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_A", _wrap_CurvePointIterator_A, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_B", _wrap_CurvePointIterator_B, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_t2d", _wrap_CurvePointIterator_t2d, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_SetA", _wrap_CurvePointIterator_SetA, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_SetB", _wrap_CurvePointIterator_SetB, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_SetT2d", _wrap_CurvePointIterator_SetT2d, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_fedge", _wrap_CurvePointIterator_fedge, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_point2d", _wrap_CurvePointIterator_point2d, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_point3d", _wrap_CurvePointIterator_point3d, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_normal", _wrap_CurvePointIterator_normal, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_shape", _wrap_CurvePointIterator_shape, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_occluders_begin", _wrap_CurvePointIterator_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_occluders_end", _wrap_CurvePointIterator_occluders_end, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_occluders_empty", _wrap_CurvePointIterator_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_occluders_size", _wrap_CurvePointIterator_occluders_size, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_occludee", _wrap_CurvePointIterator_occludee, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_occluded_shape", _wrap_CurvePointIterator_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_occludee_empty", _wrap_CurvePointIterator_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_z_discontinuity", _wrap_CurvePointIterator_z_discontinuity, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_curvatureFredo", _wrap_CurvePointIterator_curvatureFredo, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_directionFredo", _wrap_CurvePointIterator_directionFredo, METH_VARARGS, NULL},
+ { (char *)"CurvePointIterator_swigregister", CurvePointIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getExactTypeName", _wrap_CurvePoint_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getX", _wrap_CurvePoint_getX, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getY", _wrap_CurvePoint_getY, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getZ", _wrap_CurvePoint_getZ, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getPoint3D", _wrap_CurvePoint_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getProjectedX", _wrap_CurvePoint_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getProjectedY", _wrap_CurvePoint_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getProjectedZ", _wrap_CurvePoint_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getPoint2D", _wrap_CurvePoint_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getFEdge", _wrap_CurvePoint_getFEdge, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getId", _wrap_CurvePoint_getId, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_getNature", _wrap_CurvePoint_getNature, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_castToSVertex", _wrap_CurvePoint_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_castToViewVertex", _wrap_CurvePoint_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_castToNonTVertex", _wrap_CurvePoint_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_castToTVertex", _wrap_CurvePoint_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"new_CurvePoint", _wrap_new_CurvePoint, METH_VARARGS, NULL},
+ { (char *)"delete_CurvePoint", _wrap_delete_CurvePoint, METH_VARARGS, NULL},
+ { (char *)"CurvePoint___eq__", _wrap_CurvePoint___eq__, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_A", _wrap_CurvePoint_A, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_B", _wrap_CurvePoint_B, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_t2d", _wrap_CurvePoint_t2d, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_SetA", _wrap_CurvePoint_SetA, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_SetB", _wrap_CurvePoint_SetB, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_SetT2d", _wrap_CurvePoint_SetT2d, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_fedge", _wrap_CurvePoint_fedge, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_point2d", _wrap_CurvePoint_point2d, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_point3d", _wrap_CurvePoint_point3d, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_normal", _wrap_CurvePoint_normal, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_shape", _wrap_CurvePoint_shape, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_occluders_begin", _wrap_CurvePoint_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_occluders_end", _wrap_CurvePoint_occluders_end, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_occluders_empty", _wrap_CurvePoint_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_occluders_size", _wrap_CurvePoint_occluders_size, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_occludee", _wrap_CurvePoint_occludee, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_occluded_shape", _wrap_CurvePoint_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_occludee_empty", _wrap_CurvePoint_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_z_discontinuity", _wrap_CurvePoint_z_discontinuity, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_curvatureFredo", _wrap_CurvePoint_curvatureFredo, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_directionFredo", _wrap_CurvePoint_directionFredo, METH_VARARGS, NULL},
+ { (char *)"CurvePoint_swigregister", CurvePoint_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Curve", _wrap_new_Curve, METH_VARARGS, NULL},
+ { (char *)"delete_Curve", _wrap_delete_Curve, METH_VARARGS, NULL},
+ { (char *)"Curve_computeCurvatureAndOrientation", _wrap_Curve_computeCurvatureAndOrientation, METH_VARARGS, NULL},
+ { (char *)"Curve_push_vertex_back", _wrap_Curve_push_vertex_back, METH_VARARGS, NULL},
+ { (char *)"Curve_push_vertex_front", _wrap_Curve_push_vertex_front, METH_VARARGS, NULL},
+ { (char *)"Curve_empty", _wrap_Curve_empty, METH_VARARGS, NULL},
+ { (char *)"Curve_getLength2D", _wrap_Curve_getLength2D, METH_VARARGS, NULL},
+ { (char *)"Curve_getId", _wrap_Curve_getId, METH_VARARGS, NULL},
+ { (char *)"Curve_nSegments", _wrap_Curve_nSegments, METH_VARARGS, NULL},
+ { (char *)"Curve_setId", _wrap_Curve_setId, METH_VARARGS, NULL},
+ { (char *)"Curve_curvePointsBegin", _wrap_Curve_curvePointsBegin, METH_VARARGS, NULL},
+ { (char *)"Curve_curvePointsEnd", _wrap_Curve_curvePointsEnd, METH_VARARGS, NULL},
+ { (char *)"Curve_curveVerticesBegin", _wrap_Curve_curveVerticesBegin, METH_VARARGS, NULL},
+ { (char *)"Curve_curveVerticesEnd", _wrap_Curve_curveVerticesEnd, METH_VARARGS, NULL},
+ { (char *)"Curve_verticesBegin", _wrap_Curve_verticesBegin, METH_VARARGS, NULL},
+ { (char *)"Curve_verticesEnd", _wrap_Curve_verticesEnd, METH_VARARGS, NULL},
+ { (char *)"Curve_pointsBegin", _wrap_Curve_pointsBegin, METH_VARARGS, NULL},
+ { (char *)"Curve_pointsEnd", _wrap_Curve_pointsEnd, METH_VARARGS, NULL},
+ { (char *)"Curve_swigregister", Curve_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_StrokeVertexIterator", _wrap_new_StrokeVertexIterator, METH_VARARGS, NULL},
+ { (char *)"delete_StrokeVertexIterator", _wrap_delete_StrokeVertexIterator, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_castToInterface0DIterator", _wrap_StrokeVertexIterator_castToInterface0DIterator, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getExactTypeName", _wrap_StrokeVertexIterator_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getObject", _wrap_StrokeVertexIterator_getObject, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator___deref__", _wrap_StrokeVertexIterator___deref__, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_increment", _wrap_StrokeVertexIterator_increment, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_decrement", _wrap_StrokeVertexIterator_decrement, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_isBegin", _wrap_StrokeVertexIterator_isBegin, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_isEnd", _wrap_StrokeVertexIterator_isEnd, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator___eq__", _wrap_StrokeVertexIterator___eq__, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_t", _wrap_StrokeVertexIterator_t, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_u", _wrap_StrokeVertexIterator_u, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_copy", _wrap_StrokeVertexIterator_copy, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getIt", _wrap_StrokeVertexIterator_getIt, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_x", _wrap_StrokeVertexIterator_x, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_y", _wrap_StrokeVertexIterator_y, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getPoint", _wrap_StrokeVertexIterator_getPoint, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_attribute", _wrap_StrokeVertexIterator_attribute, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_curvilinearAbscissa", _wrap_StrokeVertexIterator_curvilinearAbscissa, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_strokeLength", _wrap_StrokeVertexIterator_strokeLength, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetX", _wrap_StrokeVertexIterator_SetX, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetY", _wrap_StrokeVertexIterator_SetY, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetPoint", _wrap_StrokeVertexIterator_SetPoint, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetAttribute", _wrap_StrokeVertexIterator_SetAttribute, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetCurvilinearAbscissa", _wrap_StrokeVertexIterator_SetCurvilinearAbscissa, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetStrokeLength", _wrap_StrokeVertexIterator_SetStrokeLength, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getX", _wrap_StrokeVertexIterator_getX, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getY", _wrap_StrokeVertexIterator_getY, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getZ", _wrap_StrokeVertexIterator_getZ, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getPoint3D", _wrap_StrokeVertexIterator_getPoint3D, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getProjectedX", _wrap_StrokeVertexIterator_getProjectedX, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getProjectedY", _wrap_StrokeVertexIterator_getProjectedY, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getProjectedZ", _wrap_StrokeVertexIterator_getProjectedZ, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getPoint2D", _wrap_StrokeVertexIterator_getPoint2D, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getFEdge", _wrap_StrokeVertexIterator_getFEdge, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getId", _wrap_StrokeVertexIterator_getId, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_getNature", _wrap_StrokeVertexIterator_getNature, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_castToSVertex", _wrap_StrokeVertexIterator_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_castToViewVertex", _wrap_StrokeVertexIterator_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_castToNonTVertex", _wrap_StrokeVertexIterator_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_castToTVertex", _wrap_StrokeVertexIterator_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_A", _wrap_StrokeVertexIterator_A, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_B", _wrap_StrokeVertexIterator_B, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_t2d", _wrap_StrokeVertexIterator_t2d, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetA", _wrap_StrokeVertexIterator_SetA, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetB", _wrap_StrokeVertexIterator_SetB, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_SetT2d", _wrap_StrokeVertexIterator_SetT2d, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_fedge", _wrap_StrokeVertexIterator_fedge, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_point2d", _wrap_StrokeVertexIterator_point2d, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_point3d", _wrap_StrokeVertexIterator_point3d, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_normal", _wrap_StrokeVertexIterator_normal, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_shape", _wrap_StrokeVertexIterator_shape, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_occluders_begin", _wrap_StrokeVertexIterator_occluders_begin, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_occluders_end", _wrap_StrokeVertexIterator_occluders_end, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_occluders_empty", _wrap_StrokeVertexIterator_occluders_empty, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_occluders_size", _wrap_StrokeVertexIterator_occluders_size, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_occludee", _wrap_StrokeVertexIterator_occludee, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_occluded_shape", _wrap_StrokeVertexIterator_occluded_shape, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_occludee_empty", _wrap_StrokeVertexIterator_occludee_empty, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_z_discontinuity", _wrap_StrokeVertexIterator_z_discontinuity, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_curvatureFredo", _wrap_StrokeVertexIterator_curvatureFredo, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_directionFredo", _wrap_StrokeVertexIterator_directionFredo, METH_VARARGS, NULL},
+ { (char *)"StrokeVertexIterator_swigregister", StrokeVertexIterator_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_StrokeAttribute", _wrap_new_StrokeAttribute, METH_VARARGS, NULL},
+ { (char *)"delete_StrokeAttribute", _wrap_delete_StrokeAttribute, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getColor", _wrap_StrokeAttribute_getColor, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getColorR", _wrap_StrokeAttribute_getColorR, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getColorG", _wrap_StrokeAttribute_getColorG, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getColorB", _wrap_StrokeAttribute_getColorB, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getColorRGB", _wrap_StrokeAttribute_getColorRGB, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getAlpha", _wrap_StrokeAttribute_getAlpha, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getThickness", _wrap_StrokeAttribute_getThickness, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getThicknessR", _wrap_StrokeAttribute_getThicknessR, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getThicknessL", _wrap_StrokeAttribute_getThicknessL, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getThicknessRL", _wrap_StrokeAttribute_getThicknessRL, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_isVisible", _wrap_StrokeAttribute_isVisible, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getAttributeReal", _wrap_StrokeAttribute_getAttributeReal, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getAttributeVec2f", _wrap_StrokeAttribute_getAttributeVec2f, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_getAttributeVec3f", _wrap_StrokeAttribute_getAttributeVec3f, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_isAttributeAvailableReal", _wrap_StrokeAttribute_isAttributeAvailableReal, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_isAttributeAvailableVec2f", _wrap_StrokeAttribute_isAttributeAvailableVec2f, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_isAttributeAvailableVec3f", _wrap_StrokeAttribute_isAttributeAvailableVec3f, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_setColor", _wrap_StrokeAttribute_setColor, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_setAlpha", _wrap_StrokeAttribute_setAlpha, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_setThickness", _wrap_StrokeAttribute_setThickness, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_SetVisible", _wrap_StrokeAttribute_SetVisible, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_setAttributeReal", _wrap_StrokeAttribute_setAttributeReal, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_setAttributeVec2f", _wrap_StrokeAttribute_setAttributeVec2f, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_setAttributeVec3f", _wrap_StrokeAttribute_setAttributeVec3f, METH_VARARGS, NULL},
+ { (char *)"StrokeAttribute_swigregister", StrokeAttribute_swigregister, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_getExactTypeName", _wrap_StrokeVertex_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"new_StrokeVertex", _wrap_new_StrokeVertex, METH_VARARGS, NULL},
+ { (char *)"delete_StrokeVertex", _wrap_delete_StrokeVertex, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_x", _wrap_StrokeVertex_x, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_y", _wrap_StrokeVertex_y, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_getPoint", _wrap_StrokeVertex_getPoint, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_attribute", _wrap_StrokeVertex_attribute, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_curvilinearAbscissa", _wrap_StrokeVertex_curvilinearAbscissa, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_strokeLength", _wrap_StrokeVertex_strokeLength, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_u", _wrap_StrokeVertex_u, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_SetX", _wrap_StrokeVertex_SetX, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_SetY", _wrap_StrokeVertex_SetY, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_SetPoint", _wrap_StrokeVertex_SetPoint, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_SetAttribute", _wrap_StrokeVertex_SetAttribute, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_SetCurvilinearAbscissa", _wrap_StrokeVertex_SetCurvilinearAbscissa, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_SetStrokeLength", _wrap_StrokeVertex_SetStrokeLength, METH_VARARGS, NULL},
+ { (char *)"StrokeVertex_swigregister", StrokeVertex_swigregister, METH_VARARGS, NULL},
+ { (char *)"Stroke_getExactTypeName", _wrap_Stroke_getExactTypeName, METH_VARARGS, NULL},
+ { (char *)"Stroke_getId", _wrap_Stroke_getId, METH_VARARGS, NULL},
+ { (char *)"new_Stroke", _wrap_new_Stroke, METH_VARARGS, NULL},
+ { (char *)"delete_Stroke", _wrap_delete_Stroke, METH_VARARGS, NULL},
+ { (char *)"Stroke_ComputeSampling", _wrap_Stroke_ComputeSampling, METH_VARARGS, NULL},
+ { (char *)"Stroke_Resample", _wrap_Stroke_Resample, METH_VARARGS, NULL},
+ { (char *)"Stroke_RemoveVertex", _wrap_Stroke_RemoveVertex, METH_VARARGS, NULL},
+ { (char *)"Stroke_InsertVertex", _wrap_Stroke_InsertVertex, METH_VARARGS, NULL},
+ { (char *)"Stroke_Render", _wrap_Stroke_Render, METH_VARARGS, NULL},
+ { (char *)"Stroke_RenderBasic", _wrap_Stroke_RenderBasic, METH_VARARGS, NULL},
+ { (char *)"Stroke_getLength2D", _wrap_Stroke_getLength2D, METH_VARARGS, NULL},
+ { (char *)"Stroke_getMediumType", _wrap_Stroke_getMediumType, METH_VARARGS, NULL},
+ { (char *)"Stroke_getTextureId", _wrap_Stroke_getTextureId, METH_VARARGS, NULL},
+ { (char *)"Stroke_hasTips", _wrap_Stroke_hasTips, METH_VARARGS, NULL},
+ { (char *)"Stroke_vertices_size", _wrap_Stroke_vertices_size, METH_VARARGS, NULL},
+ { (char *)"Stroke_viewedges_begin", _wrap_Stroke_viewedges_begin, METH_VARARGS, NULL},
+ { (char *)"Stroke_viewedges_end", _wrap_Stroke_viewedges_end, METH_VARARGS, NULL},
+ { (char *)"Stroke_viewedges_size", _wrap_Stroke_viewedges_size, METH_VARARGS, NULL},
+ { (char *)"Stroke_getBeginningOrientation", _wrap_Stroke_getBeginningOrientation, METH_VARARGS, NULL},
+ { (char *)"Stroke_getBeginningOrientationX", _wrap_Stroke_getBeginningOrientationX, METH_VARARGS, NULL},
+ { (char *)"Stroke_getBeginningOrientationY", _wrap_Stroke_getBeginningOrientationY, METH_VARARGS, NULL},
+ { (char *)"Stroke_getEndingOrientation", _wrap_Stroke_getEndingOrientation, METH_VARARGS, NULL},
+ { (char *)"Stroke_getEndingOrientationX", _wrap_Stroke_getEndingOrientationX, METH_VARARGS, NULL},
+ { (char *)"Stroke_getEndingOrientationY", _wrap_Stroke_getEndingOrientationY, METH_VARARGS, NULL},
+ { (char *)"Stroke_SetId", _wrap_Stroke_SetId, METH_VARARGS, NULL},
+ { (char *)"Stroke_SetLength", _wrap_Stroke_SetLength, METH_VARARGS, NULL},
+ { (char *)"Stroke_SetMediumType", _wrap_Stroke_SetMediumType, METH_VARARGS, NULL},
+ { (char *)"Stroke_SetTextureId", _wrap_Stroke_SetTextureId, METH_VARARGS, NULL},
+ { (char *)"Stroke_SetTips", _wrap_Stroke_SetTips, METH_VARARGS, NULL},
+ { (char *)"Stroke_push_back", _wrap_Stroke_push_back, METH_VARARGS, NULL},
+ { (char *)"Stroke_push_front", _wrap_Stroke_push_front, METH_VARARGS, NULL},
+ { (char *)"Stroke_AddViewEdge", _wrap_Stroke_AddViewEdge, METH_VARARGS, NULL},
+ { (char *)"Stroke_SetBeginningOrientation", _wrap_Stroke_SetBeginningOrientation, METH_VARARGS, NULL},
+ { (char *)"Stroke_SetEndingOrientation", _wrap_Stroke_SetEndingOrientation, METH_VARARGS, NULL},
+ { (char *)"Stroke_strokeVerticesBegin", _wrap_Stroke_strokeVerticesBegin, METH_VARARGS, NULL},
+ { (char *)"Stroke_strokeVerticesEnd", _wrap_Stroke_strokeVerticesEnd, METH_VARARGS, NULL},
+ { (char *)"Stroke_strokeVerticesSize", _wrap_Stroke_strokeVerticesSize, METH_VARARGS, NULL},
+ { (char *)"Stroke_verticesBegin", _wrap_Stroke_verticesBegin, METH_VARARGS, NULL},
+ { (char *)"Stroke_verticesEnd", _wrap_Stroke_verticesEnd, METH_VARARGS, NULL},
+ { (char *)"Stroke_pointsBegin", _wrap_Stroke_pointsBegin, METH_VARARGS, NULL},
+ { (char *)"Stroke_pointsEnd", _wrap_Stroke_pointsEnd, METH_VARARGS, NULL},
+ { (char *)"Stroke_swigregister", Stroke_swigregister, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_iterator", _wrap_ShadersContainer_iterator, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer___nonzero__", _wrap_ShadersContainer___nonzero__, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer___len__", _wrap_ShadersContainer___len__, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_pop", _wrap_ShadersContainer_pop, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer___getslice__", _wrap_ShadersContainer___getslice__, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer___setslice__", _wrap_ShadersContainer___setslice__, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer___delslice__", _wrap_ShadersContainer___delslice__, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer___delitem__", _wrap_ShadersContainer___delitem__, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer___getitem__", _wrap_ShadersContainer___getitem__, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer___setitem__", _wrap_ShadersContainer___setitem__, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_append", _wrap_ShadersContainer_append, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_empty", _wrap_ShadersContainer_empty, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_size", _wrap_ShadersContainer_size, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_clear", _wrap_ShadersContainer_clear, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_swap", _wrap_ShadersContainer_swap, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_get_allocator", _wrap_ShadersContainer_get_allocator, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_begin", _wrap_ShadersContainer_begin, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_end", _wrap_ShadersContainer_end, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_rbegin", _wrap_ShadersContainer_rbegin, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_rend", _wrap_ShadersContainer_rend, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_pop_back", _wrap_ShadersContainer_pop_back, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_erase", _wrap_ShadersContainer_erase, METH_VARARGS, NULL},
+ { (char *)"new_ShadersContainer", _wrap_new_ShadersContainer, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_push_back", _wrap_ShadersContainer_push_back, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_front", _wrap_ShadersContainer_front, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_back", _wrap_ShadersContainer_back, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_assign", _wrap_ShadersContainer_assign, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_resize", _wrap_ShadersContainer_resize, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_insert", _wrap_ShadersContainer_insert, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_reserve", _wrap_ShadersContainer_reserve, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_capacity", _wrap_ShadersContainer_capacity, METH_VARARGS, NULL},
+ { (char *)"delete_ShadersContainer", _wrap_delete_ShadersContainer, METH_VARARGS, NULL},
+ { (char *)"ShadersContainer_swigregister", ShadersContainer_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_StrokeShader", _wrap_new_StrokeShader, METH_VARARGS, NULL},
+ { (char *)"delete_StrokeShader", _wrap_delete_StrokeShader, METH_VARARGS, NULL},
+ { (char *)"StrokeShader_getName", _wrap_StrokeShader_getName, METH_VARARGS, NULL},
+ { (char *)"StrokeShader_shade", _wrap_StrokeShader_shade, METH_VARARGS, NULL},
+ { (char *)"disown_StrokeShader", _wrap_disown_StrokeShader, METH_VARARGS, NULL},
+ { (char *)"StrokeShader_swigregister", StrokeShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ConstantThicknessShader", _wrap_new_ConstantThicknessShader, METH_VARARGS, NULL},
+ { (char *)"delete_ConstantThicknessShader", _wrap_delete_ConstantThicknessShader, METH_VARARGS, NULL},
+ { (char *)"ConstantThicknessShader_getName", _wrap_ConstantThicknessShader_getName, METH_VARARGS, NULL},
+ { (char *)"ConstantThicknessShader_shade", _wrap_ConstantThicknessShader_shade, METH_VARARGS, NULL},
+ { (char *)"ConstantThicknessShader_swigregister", ConstantThicknessShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ConstantExternThicknessShader", _wrap_new_ConstantExternThicknessShader, METH_VARARGS, NULL},
+ { (char *)"delete_ConstantExternThicknessShader", _wrap_delete_ConstantExternThicknessShader, METH_VARARGS, NULL},
+ { (char *)"ConstantExternThicknessShader_getName", _wrap_ConstantExternThicknessShader_getName, METH_VARARGS, NULL},
+ { (char *)"ConstantExternThicknessShader_shade", _wrap_ConstantExternThicknessShader_shade, METH_VARARGS, NULL},
+ { (char *)"ConstantExternThicknessShader_swigregister", ConstantExternThicknessShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_IncreasingThicknessShader", _wrap_new_IncreasingThicknessShader, METH_VARARGS, NULL},
+ { (char *)"delete_IncreasingThicknessShader", _wrap_delete_IncreasingThicknessShader, METH_VARARGS, NULL},
+ { (char *)"IncreasingThicknessShader_shade", _wrap_IncreasingThicknessShader_shade, METH_VARARGS, NULL},
+ { (char *)"IncreasingThicknessShader_swigregister", IncreasingThicknessShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ConstrainedIncreasingThicknessShader", _wrap_new_ConstrainedIncreasingThicknessShader, METH_VARARGS, NULL},
+ { (char *)"delete_ConstrainedIncreasingThicknessShader", _wrap_delete_ConstrainedIncreasingThicknessShader, METH_VARARGS, NULL},
+ { (char *)"ConstrainedIncreasingThicknessShader_shade", _wrap_ConstrainedIncreasingThicknessShader_shade, METH_VARARGS, NULL},
+ { (char *)"ConstrainedIncreasingThicknessShader_swigregister", ConstrainedIncreasingThicknessShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_LengthDependingThicknessShader", _wrap_new_LengthDependingThicknessShader, METH_VARARGS, NULL},
+ { (char *)"delete_LengthDependingThicknessShader", _wrap_delete_LengthDependingThicknessShader, METH_VARARGS, NULL},
+ { (char *)"LengthDependingThicknessShader_shade", _wrap_LengthDependingThicknessShader_shade, METH_VARARGS, NULL},
+ { (char *)"LengthDependingThicknessShader_swigregister", LengthDependingThicknessShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ThicknessVariationPatternShader", _wrap_new_ThicknessVariationPatternShader, METH_VARARGS, NULL},
+ { (char *)"delete_ThicknessVariationPatternShader", _wrap_delete_ThicknessVariationPatternShader, METH_VARARGS, NULL},
+ { (char *)"ThicknessVariationPatternShader_shade", _wrap_ThicknessVariationPatternShader_shade, METH_VARARGS, NULL},
+ { (char *)"ThicknessVariationPatternShader_swigregister", ThicknessVariationPatternShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ThicknessNoiseShader", _wrap_new_ThicknessNoiseShader, METH_VARARGS, NULL},
+ { (char *)"ThicknessNoiseShader_shade", _wrap_ThicknessNoiseShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_ThicknessNoiseShader", _wrap_delete_ThicknessNoiseShader, METH_VARARGS, NULL},
+ { (char *)"ThicknessNoiseShader_swigregister", ThicknessNoiseShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ConstantColorShader", _wrap_new_ConstantColorShader, METH_VARARGS, NULL},
+ { (char *)"ConstantColorShader_getName", _wrap_ConstantColorShader_getName, METH_VARARGS, NULL},
+ { (char *)"ConstantColorShader_shade", _wrap_ConstantColorShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_ConstantColorShader", _wrap_delete_ConstantColorShader, METH_VARARGS, NULL},
+ { (char *)"ConstantColorShader_swigregister", ConstantColorShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_IncreasingColorShader", _wrap_new_IncreasingColorShader, METH_VARARGS, NULL},
+ { (char *)"IncreasingColorShader_shade", _wrap_IncreasingColorShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_IncreasingColorShader", _wrap_delete_IncreasingColorShader, METH_VARARGS, NULL},
+ { (char *)"IncreasingColorShader_swigregister", IncreasingColorShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ColorVariationPatternShader", _wrap_new_ColorVariationPatternShader, METH_VARARGS, NULL},
+ { (char *)"delete_ColorVariationPatternShader", _wrap_delete_ColorVariationPatternShader, METH_VARARGS, NULL},
+ { (char *)"ColorVariationPatternShader_shade", _wrap_ColorVariationPatternShader_shade, METH_VARARGS, NULL},
+ { (char *)"ColorVariationPatternShader_swigregister", ColorVariationPatternShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_MaterialColorShader", _wrap_new_MaterialColorShader, METH_VARARGS, NULL},
+ { (char *)"MaterialColorShader_shade", _wrap_MaterialColorShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_MaterialColorShader", _wrap_delete_MaterialColorShader, METH_VARARGS, NULL},
+ { (char *)"MaterialColorShader_swigregister", MaterialColorShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_CalligraphicColorShader", _wrap_new_CalligraphicColorShader, METH_VARARGS, NULL},
+ { (char *)"CalligraphicColorShader_shade", _wrap_CalligraphicColorShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_CalligraphicColorShader", _wrap_delete_CalligraphicColorShader, METH_VARARGS, NULL},
+ { (char *)"CalligraphicColorShader_swigregister", CalligraphicColorShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ColorNoiseShader", _wrap_new_ColorNoiseShader, METH_VARARGS, NULL},
+ { (char *)"ColorNoiseShader_shade", _wrap_ColorNoiseShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_ColorNoiseShader", _wrap_delete_ColorNoiseShader, METH_VARARGS, NULL},
+ { (char *)"ColorNoiseShader_swigregister", ColorNoiseShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_TextureAssignerShader", _wrap_new_TextureAssignerShader, METH_VARARGS, NULL},
+ { (char *)"TextureAssignerShader_shade", _wrap_TextureAssignerShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_TextureAssignerShader", _wrap_delete_TextureAssignerShader, METH_VARARGS, NULL},
+ { (char *)"TextureAssignerShader_swigregister", TextureAssignerShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_StrokeTextureShader", _wrap_new_StrokeTextureShader, METH_VARARGS, NULL},
+ { (char *)"StrokeTextureShader_shade", _wrap_StrokeTextureShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_StrokeTextureShader", _wrap_delete_StrokeTextureShader, METH_VARARGS, NULL},
+ { (char *)"StrokeTextureShader_swigregister", StrokeTextureShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_BackboneStretcherShader", _wrap_new_BackboneStretcherShader, METH_VARARGS, NULL},
+ { (char *)"BackboneStretcherShader_shade", _wrap_BackboneStretcherShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_BackboneStretcherShader", _wrap_delete_BackboneStretcherShader, METH_VARARGS, NULL},
+ { (char *)"BackboneStretcherShader_swigregister", BackboneStretcherShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_SamplingShader", _wrap_new_SamplingShader, METH_VARARGS, NULL},
+ { (char *)"SamplingShader_shade", _wrap_SamplingShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_SamplingShader", _wrap_delete_SamplingShader, METH_VARARGS, NULL},
+ { (char *)"SamplingShader_swigregister", SamplingShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_ExternalContourStretcherShader", _wrap_new_ExternalContourStretcherShader, METH_VARARGS, NULL},
+ { (char *)"ExternalContourStretcherShader_shade", _wrap_ExternalContourStretcherShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_ExternalContourStretcherShader", _wrap_delete_ExternalContourStretcherShader, METH_VARARGS, NULL},
+ { (char *)"ExternalContourStretcherShader_swigregister", ExternalContourStretcherShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_BSplineShader", _wrap_new_BSplineShader, METH_VARARGS, NULL},
+ { (char *)"BSplineShader_shade", _wrap_BSplineShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_BSplineShader", _wrap_delete_BSplineShader, METH_VARARGS, NULL},
+ { (char *)"BSplineShader_swigregister", BSplineShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_BezierCurveShader", _wrap_new_BezierCurveShader, METH_VARARGS, NULL},
+ { (char *)"BezierCurveShader_shade", _wrap_BezierCurveShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_BezierCurveShader", _wrap_delete_BezierCurveShader, METH_VARARGS, NULL},
+ { (char *)"BezierCurveShader_swigregister", BezierCurveShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_InflateShader", _wrap_new_InflateShader, METH_VARARGS, NULL},
+ { (char *)"InflateShader_shade", _wrap_InflateShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_InflateShader", _wrap_delete_InflateShader, METH_VARARGS, NULL},
+ { (char *)"InflateShader_swigregister", InflateShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_PolygonalizationShader", _wrap_new_PolygonalizationShader, METH_VARARGS, NULL},
+ { (char *)"PolygonalizationShader_shade", _wrap_PolygonalizationShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_PolygonalizationShader", _wrap_delete_PolygonalizationShader, METH_VARARGS, NULL},
+ { (char *)"PolygonalizationShader_swigregister", PolygonalizationShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_GuidingLinesShader", _wrap_new_GuidingLinesShader, METH_VARARGS, NULL},
+ { (char *)"GuidingLinesShader_shade", _wrap_GuidingLinesShader_shade, METH_VARARGS, NULL},
+ { (char *)"delete_GuidingLinesShader", _wrap_delete_GuidingLinesShader, METH_VARARGS, NULL},
+ { (char *)"GuidingLinesShader_swigregister", GuidingLinesShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_TipRemoverShader", _wrap_new_TipRemoverShader, METH_VARARGS, NULL},
+ { (char *)"delete_TipRemoverShader", _wrap_delete_TipRemoverShader, METH_VARARGS, NULL},
+ { (char *)"TipRemoverShader_shade", _wrap_TipRemoverShader_shade, METH_VARARGS, NULL},
+ { (char *)"TipRemoverShader_swigregister", TipRemoverShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"delete_streamShader", _wrap_delete_streamShader, METH_VARARGS, NULL},
+ { (char *)"streamShader_getName", _wrap_streamShader_getName, METH_VARARGS, NULL},
+ { (char *)"streamShader_shade", _wrap_streamShader_shade, METH_VARARGS, NULL},
+ { (char *)"new_streamShader", _wrap_new_streamShader, METH_VARARGS, NULL},
+ { (char *)"streamShader_swigregister", streamShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_fstreamShader", _wrap_new_fstreamShader, METH_VARARGS, NULL},
+ { (char *)"delete_fstreamShader", _wrap_delete_fstreamShader, METH_VARARGS, NULL},
+ { (char *)"fstreamShader_getName", _wrap_fstreamShader_getName, METH_VARARGS, NULL},
+ { (char *)"fstreamShader_shade", _wrap_fstreamShader_shade, METH_VARARGS, NULL},
+ { (char *)"fstreamShader_swigregister", fstreamShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_CalligraphicShader", _wrap_new_CalligraphicShader, METH_VARARGS, NULL},
+ { (char *)"delete_CalligraphicShader", _wrap_delete_CalligraphicShader, METH_VARARGS, NULL},
+ { (char *)"CalligraphicShader_shade", _wrap_CalligraphicShader_shade, METH_VARARGS, NULL},
+ { (char *)"CalligraphicShader_swigregister", CalligraphicShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_SpatialNoiseShader", _wrap_new_SpatialNoiseShader, METH_VARARGS, NULL},
+ { (char *)"delete_SpatialNoiseShader", _wrap_delete_SpatialNoiseShader, METH_VARARGS, NULL},
+ { (char *)"SpatialNoiseShader_shade", _wrap_SpatialNoiseShader_shade, METH_VARARGS, NULL},
+ { (char *)"SpatialNoiseShader_swigregister", SpatialNoiseShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_SmoothingShader", _wrap_new_SmoothingShader, METH_VARARGS, NULL},
+ { (char *)"delete_SmoothingShader", _wrap_delete_SmoothingShader, METH_VARARGS, NULL},
+ { (char *)"SmoothingShader_shade", _wrap_SmoothingShader_shade, METH_VARARGS, NULL},
+ { (char *)"SmoothingShader_swigregister", SmoothingShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Smoother", _wrap_new_Smoother, METH_VARARGS, NULL},
+ { (char *)"delete_Smoother", _wrap_delete_Smoother, METH_VARARGS, NULL},
+ { (char *)"Smoother_smooth", _wrap_Smoother_smooth, METH_VARARGS, NULL},
+ { (char *)"Smoother_computeCurvature", _wrap_Smoother_computeCurvature, METH_VARARGS, NULL},
+ { (char *)"Smoother_swigregister", Smoother_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_Omitter", _wrap_new_Omitter, METH_VARARGS, NULL},
+ { (char *)"delete_Omitter", _wrap_delete_Omitter, METH_VARARGS, NULL},
+ { (char *)"Omitter_omit", _wrap_Omitter_omit, METH_VARARGS, NULL},
+ { (char *)"Omitter_swigregister", Omitter_swigregister, METH_VARARGS, NULL},
+ { (char *)"new_OmissionShader", _wrap_new_OmissionShader, METH_VARARGS, NULL},
+ { (char *)"delete_OmissionShader", _wrap_delete_OmissionShader, METH_VARARGS, NULL},
+ { (char *)"OmissionShader_shade", _wrap_OmissionShader_shade, METH_VARARGS, NULL},
+ { (char *)"OmissionShader_swigregister", OmissionShader_swigregister, METH_VARARGS, NULL},
+ { (char *)"Operators_select", _wrap_Operators_select, METH_VARARGS, NULL},
+ { (char *)"Operators_chain", _wrap_Operators_chain, METH_VARARGS, NULL},
+ { (char *)"Operators_bidirectionalChain", _wrap_Operators_bidirectionalChain, METH_VARARGS, NULL},
+ { (char *)"Operators_sequentialSplit", _wrap_Operators_sequentialSplit, METH_VARARGS, NULL},
+ { (char *)"Operators_recursiveSplit", _wrap_Operators_recursiveSplit, METH_VARARGS, NULL},
+ { (char *)"Operators_sort", _wrap_Operators_sort, METH_VARARGS, NULL},
+ { (char *)"Operators_create", _wrap_Operators_create, METH_VARARGS, NULL},
+ { (char *)"Operators_getViewEdgeFromIndex", _wrap_Operators_getViewEdgeFromIndex, METH_VARARGS, NULL},
+ { (char *)"Operators_getChainFromIndex", _wrap_Operators_getChainFromIndex, METH_VARARGS, NULL},
+ { (char *)"Operators_getStrokeFromIndex", _wrap_Operators_getStrokeFromIndex, METH_VARARGS, NULL},
+ { (char *)"Operators_getViewEdgesSize", _wrap_Operators_getViewEdgesSize, METH_VARARGS, NULL},
+ { (char *)"Operators_getChainsSize", _wrap_Operators_getChainsSize, METH_VARARGS, NULL},
+ { (char *)"Operators_getStrokesSize", _wrap_Operators_getStrokesSize, METH_VARARGS, NULL},
+ { (char *)"delete_Operators", _wrap_delete_Operators, METH_VARARGS, NULL},
+ { (char *)"Operators_swigregister", Operators_swigregister, METH_VARARGS, NULL},
+ { (char *)"ltstr___call__", _wrap_ltstr___call__, METH_VARARGS, NULL},
+ { (char *)"new_ltstr", _wrap_new_ltstr, METH_VARARGS, NULL},
+ { (char *)"delete_ltstr", _wrap_delete_ltstr, METH_VARARGS, NULL},
+ { (char *)"ltstr_swigregister", ltstr_swigregister, METH_VARARGS, NULL},
+ { (char *)"Canvas_getInstance", _wrap_Canvas_getInstance, METH_VARARGS, NULL},
+ { (char *)"delete_Canvas", _wrap_delete_Canvas, METH_VARARGS, NULL},
+ { (char *)"Canvas_preDraw", _wrap_Canvas_preDraw, METH_VARARGS, NULL},
+ { (char *)"Canvas_Draw", _wrap_Canvas_Draw, METH_VARARGS, NULL},
+ { (char *)"Canvas_postDraw", _wrap_Canvas_postDraw, METH_VARARGS, NULL},
+ { (char *)"Canvas_Render", _wrap_Canvas_Render, METH_VARARGS, NULL},
+ { (char *)"Canvas_RenderBasic", _wrap_Canvas_RenderBasic, METH_VARARGS, NULL},
+ { (char *)"Canvas_RenderStroke", _wrap_Canvas_RenderStroke, METH_VARARGS, NULL},
+ { (char *)"Canvas_init", _wrap_Canvas_init, METH_VARARGS, NULL},
+ { (char *)"Canvas_Clear", _wrap_Canvas_Clear, METH_VARARGS, NULL},
+ { (char *)"Canvas_Erase", _wrap_Canvas_Erase, METH_VARARGS, NULL},
+ { (char *)"Canvas_readColorPixels", _wrap_Canvas_readColorPixels, METH_VARARGS, NULL},
+ { (char *)"Canvas_readDepthPixels", _wrap_Canvas_readDepthPixels, METH_VARARGS, NULL},
+ { (char *)"Canvas_update", _wrap_Canvas_update, METH_VARARGS, NULL},
+ { (char *)"Canvas_isEmpty", _wrap_Canvas_isEmpty, METH_VARARGS, NULL},
+ { (char *)"Canvas_loadMap", _wrap_Canvas_loadMap, METH_VARARGS, NULL},
+ { (char *)"Canvas_readMapPixel", _wrap_Canvas_readMapPixel, METH_VARARGS, NULL},
+ { (char *)"Canvas_loadSteerableViewMap", _wrap_Canvas_loadSteerableViewMap, METH_VARARGS, NULL},
+ { (char *)"Canvas_getSteerableViewMap", _wrap_Canvas_getSteerableViewMap, METH_VARARGS, NULL},
+ { (char *)"Canvas_selectedFEdge", _wrap_Canvas_selectedFEdge, METH_VARARGS, NULL},
+ { (char *)"Canvas_width", _wrap_Canvas_width, METH_VARARGS, NULL},
+ { (char *)"Canvas_height", _wrap_Canvas_height, METH_VARARGS, NULL},
+ { (char *)"Canvas_currentPaperTextureIndex", _wrap_Canvas_currentPaperTextureIndex, METH_VARARGS, NULL},
+ { (char *)"Canvas_scene3DBBox", _wrap_Canvas_scene3DBBox, METH_VARARGS, NULL},
+ { (char *)"Canvas_renderer", _wrap_Canvas_renderer, METH_VARARGS, NULL},
+ { (char *)"Canvas_getCurrentStyleModule", _wrap_Canvas_getCurrentStyleModule, METH_VARARGS, NULL},
+ { (char *)"Canvas_getRecordFlag", _wrap_Canvas_getRecordFlag, METH_VARARGS, NULL},
+ { (char *)"Canvas_SetSelectedFEdge", _wrap_Canvas_SetSelectedFEdge, METH_VARARGS, NULL},
+ { (char *)"Canvas_InsertStyleModule", _wrap_Canvas_InsertStyleModule, METH_VARARGS, NULL},
+ { (char *)"Canvas_RemoveStyleModule", _wrap_Canvas_RemoveStyleModule, METH_VARARGS, NULL},
+ { (char *)"Canvas_SwapStyleModules", _wrap_Canvas_SwapStyleModules, METH_VARARGS, NULL},
+ { (char *)"Canvas_ReplaceStyleModule", _wrap_Canvas_ReplaceStyleModule, METH_VARARGS, NULL},
+ { (char *)"Canvas_SetVisible", _wrap_Canvas_SetVisible, METH_VARARGS, NULL},
+ { (char *)"Canvas_AddLayer", _wrap_Canvas_AddLayer, METH_VARARGS, NULL},
+ { (char *)"Canvas_SetCurrentPaperTextureIndex", _wrap_Canvas_SetCurrentPaperTextureIndex, METH_VARARGS, NULL},
+ { (char *)"Canvas_changePaperTexture", _wrap_Canvas_changePaperTexture, METH_VARARGS, NULL},
+ { (char *)"Canvas_togglePaperTexture", _wrap_Canvas_togglePaperTexture, METH_VARARGS, NULL},
+ { (char *)"Canvas_resetModified", _wrap_Canvas_resetModified, METH_VARARGS, NULL},
+ { (char *)"Canvas_causalStyleModules", _wrap_Canvas_causalStyleModules, METH_VARARGS, NULL},
+ { (char *)"Canvas_setModified", _wrap_Canvas_setModified, METH_VARARGS, NULL},
+ { (char *)"Canvas_swigregister", Canvas_swigregister, METH_VARARGS, NULL},
+ { (char *)"castToSVertex", _wrap_castToSVertex, METH_VARARGS, NULL},
+ { (char *)"castToViewVertex", _wrap_castToViewVertex, METH_VARARGS, NULL},
+ { (char *)"castToTVertex", _wrap_castToTVertex, METH_VARARGS, NULL},
+ { (char *)"castToCurvePoint", _wrap_castToCurvePoint, METH_VARARGS, NULL},
+ { (char *)"castToStrokeVertex", _wrap_castToStrokeVertex, METH_VARARGS, NULL},
+ { (char *)"castToNonTVertex", _wrap_castToNonTVertex, METH_VARARGS, NULL},
+ { (char *)"castToFEdge", _wrap_castToFEdge, METH_VARARGS, NULL},
+ { (char *)"castToViewEdge", _wrap_castToViewEdge, METH_VARARGS, NULL},
+ { (char *)"castToStroke", _wrap_castToStroke, METH_VARARGS, NULL},
+ { (char *)"castToChain", _wrap_castToChain, METH_VARARGS, NULL},
+ { NULL, NULL, 0, NULL }
+};
+
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
+
+static void *_p_Functions0D__GetOccludersF0DTo_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t(void *x) {
+ return (void *)((UnaryFunction0D<std::vector<ViewShape *,std::allocator<ViewShape * > > > *) ((Functions0D::GetOccludersF0D *) x));
+}
+static void *_p_Functions1D__GetOccludeeF1DTo_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t(void *x) {
+ return (void *)((UnaryFunction1D<std::vector<ViewShape *,std::allocator<ViewShape * > > > *) ((Functions1D::GetOccludeeF1D *) x));
+}
+static void *_p_Functions1D__GetShapeF1DTo_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t(void *x) {
+ return (void *)((UnaryFunction1D<std::vector<ViewShape *,std::allocator<ViewShape * > > > *) ((Functions1D::GetShapeF1D *) x));
+}
+static void *_p_Functions1D__GetOccludersF1DTo_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t(void *x) {
+ return (void *)((UnaryFunction1D<std::vector<ViewShape *,std::allocator<ViewShape * > > > *) ((Functions1D::GetOccludersF1D *) x));
+}
+static void *_p_TVertexTo_p_Interface0D(void *x) {
+ return (void *)((Interface0D *) (ViewVertex *) ((TVertex *) x));
+}
+static void *_p_NonTVertexTo_p_Interface0D(void *x) {
+ return (void *)((Interface0D *) (ViewVertex *) ((NonTVertex *) x));
+}
+static void *_p_SVertexTo_p_Interface0D(void *x) {
+ return (void *)((Interface0D *) ((SVertex *) x));
+}
+static void *_p_ViewVertexTo_p_Interface0D(void *x) {
+ return (void *)((Interface0D *) ((ViewVertex *) x));
+}
+static void *_p_StrokeVertexTo_p_Interface0D(void *x) {
+ return (void *)((Interface0D *) (CurvePoint *) ((StrokeVertex *) x));
+}
+static void *_p_CurvePointTo_p_Interface0D(void *x) {
+ return (void *)((Interface0D *) ((CurvePoint *) x));
+}
+static void *_p_Functions0D__GetShapeF0DTo_p_UnaryFunction0DTViewShape_p_t(void *x) {
+ return (void *)((UnaryFunction0D<ViewShape * > *) ((Functions0D::GetShapeF0D *) x));
+}
+static void *_p_Functions0D__GetOccludeeF0DTo_p_UnaryFunction0DTViewShape_p_t(void *x) {
+ return (void *)((UnaryFunction0D<ViewShape * > *) ((Functions0D::GetOccludeeF0D *) x));
+}
+static void *_p_ChainSilhouetteIteratorTo_p_ChainingIterator(void *x) {
+ return (void *)((ChainingIterator *) ((ChainSilhouetteIterator *) x));
+}
+static void *_p_ChainPredicateIteratorTo_p_ChainingIterator(void *x) {
+ return (void *)((ChainingIterator *) ((ChainPredicateIterator *) x));
+}
+static void *_p_ChainingIteratorTo_p_ViewEdgeInternal__ViewEdgeIterator(void *x) {
+ return (void *)((ViewEdgeInternal::ViewEdgeIterator *) ((ChainingIterator *) x));
+}
+static void *_p_ChainSilhouetteIteratorTo_p_ViewEdgeInternal__ViewEdgeIterator(void *x) {
+ return (void *)((ViewEdgeInternal::ViewEdgeIterator *) (ChainingIterator *) ((ChainSilhouetteIterator *) x));
+}
+static void *_p_ChainPredicateIteratorTo_p_ViewEdgeInternal__ViewEdgeIterator(void *x) {
+ return (void *)((ViewEdgeInternal::ViewEdgeIterator *) (ChainingIterator *) ((ChainPredicateIterator *) x));
+}
+static void *_p_ViewEdgeTo_p_Interface1D(void *x) {
+ return (void *)((Interface1D *) ((ViewEdge *) x));
+}
+static void *_p_StrokeTo_p_Interface1D(void *x) {
+ return (void *)((Interface1D *) ((Stroke *) x));
+}
+static void *_p_CurveTo_p_Interface1D(void *x) {
+ return (void *)((Interface1D *) ((Curve *) x));
+}
+static void *_p_FEdgeSharpTo_p_Interface1D(void *x) {
+ return (void *)((Interface1D *) (FEdge *) ((FEdgeSharp *) x));
+}
+static void *_p_FEdgeSmoothTo_p_Interface1D(void *x) {
+ return (void *)((Interface1D *) (FEdge *) ((FEdgeSmooth *) x));
+}
+static void *_p_FEdgeTo_p_Interface1D(void *x) {
+ return (void *)((Interface1D *) ((FEdge *) x));
+}
+static void *_p_VecMat__Vec2Tint_tTo_p_VecMat__VecTint_2_t(void *x) {
+ return (void *)((VecMat::Vec<int,2 > *) ((VecMat::Vec2<int > *) x));
+}
+static void *_p_VecMat__Vec2Tunsigned_int_tTo_p_VecMat__VecTunsigned_int_2_t(void *x) {
+ return (void *)((VecMat::Vec<unsigned int,2 > *) ((VecMat::Vec2<unsigned int > *) x));
+}
+static void *_p_VecMat__Vec3Tint_tTo_p_VecMat__VecTint_3_t(void *x) {
+ return (void *)((VecMat::Vec<int,3 > *) ((VecMat::Vec3<int > *) x));
+}
+static void *_p_VecMat__Vec3Tunsigned_int_tTo_p_VecMat__VecTunsigned_int_3_t(void *x) {
+ return (void *)((VecMat::Vec<unsigned int,3 > *) ((VecMat::Vec3<unsigned int > *) x));
+}
+static void *_p_StrokeVertexTo_p_CurvePoint(void *x) {
+ return (void *)((CurvePoint *) ((StrokeVertex *) x));
+}
+static void *_p_Predicates0D__TrueUP0DTo_p_UnaryPredicate0D(void *x) {
+ return (void *)((UnaryPredicate0D *) ((Predicates0D::TrueUP0D *) x));
+}
+static void *_p_Predicates0D__FalseUP0DTo_p_UnaryPredicate0D(void *x) {
+ return (void *)((UnaryPredicate0D *) ((Predicates0D::FalseUP0D *) x));
+}
+static void *_p_FEdgeSharpTo_p_FEdge(void *x) {
+ return (void *)((FEdge *) ((FEdgeSharp *) x));
+}
+static void *_p_FEdgeSmoothTo_p_FEdge(void *x) {
+ return (void *)((FEdge *) ((FEdgeSmooth *) x));
+}
+static void *_p_StrokeShaders__ConstrainedIncreasingThicknessShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ConstrainedIncreasingThicknessShader *) x));
+}
+static void *_p_StrokeShaders__ColorNoiseShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ColorNoiseShader *) x));
+}
+static void *_p_StrokeShaders__ThicknessNoiseShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ThicknessNoiseShader *) x));
+}
+static void *_p_StrokeShaders__LengthDependingThicknessShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::LengthDependingThicknessShader *) x));
+}
+static void *_p_StrokeShaders__IncreasingThicknessShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::IncreasingThicknessShader *) x));
+}
+static void *_p_StrokeShaders__ConstantExternThicknessShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ConstantExternThicknessShader *) x));
+}
+static void *_p_StrokeShaders__ConstantThicknessShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ConstantThicknessShader *) x));
+}
+static void *_p_StrokeShaders__StrokeTextureShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::StrokeTextureShader *) x));
+}
+static void *_p_StrokeShaders__SamplingShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::SamplingShader *) x));
+}
+static void *_p_StrokeShaders__BSplineShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::BSplineShader *) x));
+}
+static void *_p_StrokeShaders__BezierCurveShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::BezierCurveShader *) x));
+}
+static void *_p_StrokeShaders__InflateShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::InflateShader *) x));
+}
+static void *_p_StrokeShaders__GuidingLinesShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::GuidingLinesShader *) x));
+}
+static void *_p_StrokeShaders__streamShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::streamShader *) x));
+}
+static void *_p_StrokeShaders__fstreamShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::fstreamShader *) x));
+}
+static void *_p_CalligraphicShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((CalligraphicShader *) x));
+}
+static void *_p_SpatialNoiseShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((SpatialNoiseShader *) x));
+}
+static void *_p_SmoothingShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((SmoothingShader *) x));
+}
+static void *_p_StrokeShaders__TextureAssignerShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::TextureAssignerShader *) x));
+}
+static void *_p_StrokeShaders__CalligraphicColorShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::CalligraphicColorShader *) x));
+}
+static void *_p_StrokeShaders__MaterialColorShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::MaterialColorShader *) x));
+}
+static void *_p_StrokeShaders__ColorVariationPatternShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ColorVariationPatternShader *) x));
+}
+static void *_p_StrokeShaders__IncreasingColorShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::IncreasingColorShader *) x));
+}
+static void *_p_StrokeShaders__ConstantColorShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ConstantColorShader *) x));
+}
+static void *_p_StrokeShaders__ThicknessVariationPatternShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ThicknessVariationPatternShader *) x));
+}
+static void *_p_StrokeShaders__BackboneStretcherShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::BackboneStretcherShader *) x));
+}
+static void *_p_StrokeShaders__ExternalContourStretcherShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::ExternalContourStretcherShader *) x));
+}
+static void *_p_StrokeShaders__PolygonalizationShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::PolygonalizationShader *) x));
+}
+static void *_p_StrokeShaders__TipRemoverShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((StrokeShaders::TipRemoverShader *) x));
+}
+static void *_p_OmissionShaderTo_p_StrokeShader(void *x) {
+ return (void *)((StrokeShader *) ((OmissionShader *) x));
+}
+static void *_p_OmitterTo_p_Smoother(void *x) {
+ return (void *)((Smoother *) ((Omitter *) x));
+}
+static void *_p_Predicates1D__Length2DBP1DTo_p_BinaryPredicate1D(void *x) {
+ return (void *)((BinaryPredicate1D *) ((Predicates1D::Length2DBP1D *) x));
+}
+static void *_p_Predicates1D__FalseBP1DTo_p_BinaryPredicate1D(void *x) {
+ return (void *)((BinaryPredicate1D *) ((Predicates1D::FalseBP1D *) x));
+}
+static void *_p_Predicates1D__ViewMapGradientNormBP1DTo_p_BinaryPredicate1D(void *x) {
+ return (void *)((BinaryPredicate1D *) ((Predicates1D::ViewMapGradientNormBP1D *) x));
+}
+static void *_p_Predicates1D__TrueBP1DTo_p_BinaryPredicate1D(void *x) {
+ return (void *)((BinaryPredicate1D *) ((Predicates1D::TrueBP1D *) x));
+}
+static void *_p_Predicates1D__SameShapeIdBP1DTo_p_BinaryPredicate1D(void *x) {
+ return (void *)((BinaryPredicate1D *) ((Predicates1D::SameShapeIdBP1D *) x));
+}
+static void *_p_Predicates1D__FalseUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::FalseUP1D *) x));
+}
+static void *_p_Predicates1D__ShapeUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::ShapeUP1D *) x));
+}
+static void *_p_Predicates1D__DensityLowerThanUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::DensityLowerThanUP1D *) x));
+}
+static void *_p_Predicates1D__EqualToTimeStampUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::EqualToTimeStampUP1D *) x));
+}
+static void *_p_Predicates1D__EqualToChainingTimeStampUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::EqualToChainingTimeStampUP1D *) x));
+}
+static void *_p_Predicates1D__TrueUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::TrueUP1D *) x));
+}
+static void *_p_Predicates1D__QuantitativeInvisibilityUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::QuantitativeInvisibilityUP1D *) x));
+}
+static void *_p_Predicates1D__ContourUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::ContourUP1D *) x));
+}
+static void *_p_Predicates1D__ExternalContourUP1DTo_p_UnaryPredicate1D(void *x) {
+ return (void *)((UnaryPredicate1D *) ((Predicates1D::ExternalContourUP1D *) x));
+}
+static void *_p_VecMat__Vec2Tfloat_tTo_p_VecMat__VecTfloat_2_t(void *x) {
+ return (void *)((VecMat::Vec<float,2 > *) ((VecMat::Vec2<float > *) x));
+}
+static void *_p_Functions1D__TimeStampF1DTo_p_UnaryFunction1DTvoid_t(void *x) {
+ return (void *)((UnaryFunction1D<void > *) ((Functions1D::TimeStampF1D *) x));
+}
+static void *_p_Functions1D__IncrementChainingTimeStampF1DTo_p_UnaryFunction1DTvoid_t(void *x) {
+ return (void *)((UnaryFunction1D<void > *) ((Functions1D::IncrementChainingTimeStampF1D *) x));
+}
+static void *_p_Functions1D__ChainingTimeStampF1DTo_p_UnaryFunction1DTvoid_t(void *x) {
+ return (void *)((UnaryFunction1D<void > *) ((Functions1D::ChainingTimeStampF1D *) x));
+}
+static void *_p_VecMat__Vec3Tfloat_tTo_p_VecMat__VecTfloat_3_t(void *x) {
+ return (void *)((VecMat::Vec<float,3 > *) ((VecMat::Vec3<float > *) x));
+}
+static void *_p_FEdgeInternal__SVertexIteratorTo_p_Interface0DIteratorNested(void *x) {
+ return (void *)((Interface0DIteratorNested *) ((FEdgeInternal::SVertexIterator *) x));
+}
+static void *_p_ViewEdgeInternal__SVertexIteratorTo_p_Interface0DIteratorNested(void *x) {
+ return (void *)((Interface0DIteratorNested *) ((ViewEdgeInternal::SVertexIterator *) x));
+}
+static void *_p_CurveInternal__CurvePointIteratorTo_p_Interface0DIteratorNested(void *x) {
+ return (void *)((Interface0DIteratorNested *) ((CurveInternal::CurvePointIterator *) x));
+}
+static void *_p_StrokeInternal__StrokeVertexIteratorTo_p_Interface0DIteratorNested(void *x) {
+ return (void *)((Interface0DIteratorNested *) ((StrokeInternal::StrokeVertexIterator *) x));
+}
+static void *_p_Functions0D__VertexOrientation2DF0DTo_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t(void *x) {
+ return (void *)((UnaryFunction0D<VecMat::Vec2<float > > *) ((Functions0D::VertexOrientation2DF0D *) x));
+}
+static void *_p_Functions0D__Normal2DF0DTo_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t(void *x) {
+ return (void *)((UnaryFunction0D<VecMat::Vec2<float > > *) ((Functions0D::Normal2DF0D *) x));
+}
+static void *_p_Functions0D__VertexOrientation3DF0DTo_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t(void *x) {
+ return (void *)((UnaryFunction0D<VecMat::Vec3<float > > *) ((Functions0D::VertexOrientation3DF0D *) x));
+}
+static void *_p_Functions1D__Orientation2DF1DTo_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t(void *x) {
+ return (void *)((UnaryFunction1D<VecMat::Vec2<float > > *) ((Functions1D::Orientation2DF1D *) x));
+}
+static void *_p_Functions1D__Normal2DF1DTo_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t(void *x) {
+ return (void *)((UnaryFunction1D<VecMat::Vec2<float > > *) ((Functions1D::Normal2DF1D *) x));
+}
+static void *_p_Functions1D__Orientation3DF1DTo_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t(void *x) {
+ return (void *)((UnaryFunction1D<VecMat::Vec3<float > > *) ((Functions1D::Orientation3DF1D *) x));
+}
+static void *_p_Functions0D__QuantitativeInvisibilityF0DTo_p_UnaryFunction0DTunsigned_int_t(void *x) {
+ return (void *)((UnaryFunction0D<unsigned int > *) ((Functions0D::QuantitativeInvisibilityF0D *) x));
+}
+static void *_p_Functions1D__QuantitativeInvisibilityF1DTo_p_UnaryFunction1DTunsigned_int_t(void *x) {
+ return (void *)((UnaryFunction1D<unsigned int > *) ((Functions1D::QuantitativeInvisibilityF1D *) x));
+}
+static void *_p_Functions0D__ShapeIdF0DTo_p_UnaryFunction0DTId_t(void *x) {
+ return (void *)((UnaryFunction0D<Id > *) ((Functions0D::ShapeIdF0D *) x));
+}
+static void *_p_VecMat__Vec2Tdouble_tTo_p_VecMat__VecTdouble_2_t(void *x) {
+ return (void *)((VecMat::Vec<double,2 > *) ((VecMat::Vec2<double > *) x));
+}
+static void *_p_TVertexTo_p_ViewVertex(void *x) {
+ return (void *)((ViewVertex *) ((TVertex *) x));
+}
+static void *_p_NonTVertexTo_p_ViewVertex(void *x) {
+ return (void *)((ViewVertex *) ((NonTVertex *) x));
+}
+static void *_p_Functions0D__ZDiscontinuityF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::ZDiscontinuityF0D *) x));
+}
+static void *_p_Functions0D__DensityF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::DensityF0D *) x));
+}
+static void *_p_Functions0D__GetXF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::GetXF0D *) x));
+}
+static void *_p_Functions0D__GetProjectedXF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::GetProjectedXF0D *) x));
+}
+static void *_p_Functions0D__Curvature2DAngleF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::Curvature2DAngleF0D *) x));
+}
+static void *_p_Functions0D__GetYF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::GetYF0D *) x));
+}
+static void *_p_Functions0D__GetProjectedYF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::GetProjectedYF0D *) x));
+}
+static void *_p_Functions0D__GetZF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::GetZF0D *) x));
+}
+static void *_p_Functions0D__GetProjectedZF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::GetProjectedZF0D *) x));
+}
+static void *_p_Functions0D__LocalAverageDepthF0DTo_p_UnaryFunction0DTdouble_t(void *x) {
+ return (void *)((UnaryFunction0D<double > *) ((Functions0D::LocalAverageDepthF0D *) x));
+}
+static void *_p_Functions1D__GetSteerableViewMapDensityF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetSteerableViewMapDensityF1D *) x));
+}
+static void *_p_Functions1D__GetDirectionalViewMapDensityF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetDirectionalViewMapDensityF1D *) x));
+}
+static void *_p_Functions1D__GetCompleteViewMapDensityF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetCompleteViewMapDensityF1D *) x));
+}
+static void *_p_Functions1D__DensityF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::DensityF1D *) x));
+}
+static void *_p_Functions1D__ZDiscontinuityF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::ZDiscontinuityF1D *) x));
+}
+static void *_p_Functions1D__GetXF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetXF1D *) x));
+}
+static void *_p_Functions1D__GetZF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetZF1D *) x));
+}
+static void *_p_Functions1D__GetViewMapGradientNormF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetViewMapGradientNormF1D *) x));
+}
+static void *_p_Functions1D__GetProjectedYF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetProjectedYF1D *) x));
+}
+static void *_p_Functions1D__Curvature2DAngleF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::Curvature2DAngleF1D *) x));
+}
+static void *_p_Functions1D__GetYF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetYF1D *) x));
+}
+static void *_p_Functions1D__GetProjectedXF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetProjectedXF1D *) x));
+}
+static void *_p_Functions1D__LocalAverageDepthF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::LocalAverageDepthF1D *) x));
+}
+static void *_p_Functions1D__GetProjectedZF1DTo_p_UnaryFunction1DTdouble_t(void *x) {
+ return (void *)((UnaryFunction1D<double > *) ((Functions1D::GetProjectedZF1D *) x));
+}
+static void *_p_Functions0D__GetCurvilinearAbscissaF0DTo_p_UnaryFunction0DTfloat_t(void *x) {
+ return (void *)((UnaryFunction0D<float > *) ((Functions0D::GetCurvilinearAbscissaF0D *) x));
+}
+static void *_p_Functions0D__ReadMapPixelF0DTo_p_UnaryFunction0DTfloat_t(void *x) {
+ return (void *)((UnaryFunction0D<float > *) ((Functions0D::ReadMapPixelF0D *) x));
+}
+static void *_p_Functions0D__ReadSteerableViewMapPixelF0DTo_p_UnaryFunction0DTfloat_t(void *x) {
+ return (void *)((UnaryFunction0D<float > *) ((Functions0D::ReadSteerableViewMapPixelF0D *) x));
+}
+static void *_p_Functions0D__ReadCompleteViewMapPixelF0DTo_p_UnaryFunction0DTfloat_t(void *x) {
+ return (void *)((UnaryFunction0D<float > *) ((Functions0D::ReadCompleteViewMapPixelF0D *) x));
+}
+static void *_p_Functions0D__GetViewMapGradientNormF0DTo_p_UnaryFunction0DTfloat_t(void *x) {
+ return (void *)((UnaryFunction0D<float > *) ((Functions0D::GetViewMapGradientNormF0D *) x));
+}
+static void *_p_Functions0D__GetParameterF0DTo_p_UnaryFunction0DTfloat_t(void *x) {
+ return (void *)((UnaryFunction0D<float > *) ((Functions0D::GetParameterF0D *) x));
+}
+static void *_p_VecMat__Vec3Tdouble_tTo_p_VecMat__VecTdouble_3_t(void *x) {
+ return (void *)((VecMat::Vec<double,3 > *) ((VecMat::Vec3<double > *) x));
+}
+static swig_type_info _swigt__p_AdjacencyIterator = {"_p_AdjacencyIterator", "AdjacencyIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_BBoxTVecMat__Vec3Tdouble_t_t = {"_p_BBoxTVecMat__Vec3Tdouble_t_t", "BBox<VecMat::Vec3<double > > *|BBox<Geometry::Vec3r > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_BinaryPredicate0D = {"_p_BinaryPredicate0D", "BinaryPredicate0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_BinaryPredicate1D = {"_p_BinaryPredicate1D", "BinaryPredicate1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_CalligraphicShader = {"_p_CalligraphicShader", "CalligraphicShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Canvas = {"_p_Canvas", "Canvas *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Chain = {"_p_Chain", "Chain *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ChainPredicateIterator = {"_p_ChainPredicateIterator", "ChainPredicateIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ChainSilhouetteIterator = {"_p_ChainSilhouetteIterator", "ChainSilhouetteIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ChainingIterator = {"_p_ChainingIterator", "ChainingIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_CurvatureInfo = {"_p_CurvatureInfo", "CurvatureInfo *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Curve = {"_p_Curve", "Curve *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_CurveInternal__CurvePointIterator = {"_p_CurveInternal__CurvePointIterator", "CurveInternal::CurvePointIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_CurvePoint = {"_p_CurvePoint", "CurvePoint *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Curve__vertex_container__iterator = {"_p_Curve__vertex_container__iterator", "Curve::vertex_container::iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_FEdge = {"_p_FEdge", "FEdge *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_FEdgeInternal__SVertexIterator = {"_p_FEdgeInternal__SVertexIterator", "FEdgeInternal::SVertexIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_FEdgeSharp = {"_p_FEdgeSharp", "FEdgeSharp *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_FEdgeSmooth = {"_p_FEdgeSmooth", "FEdgeSmooth *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__Curvature2DAngleF0D = {"_p_Functions0D__Curvature2DAngleF0D", "Functions0D::Curvature2DAngleF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__CurveNatureF0D = {"_p_Functions0D__CurveNatureF0D", "Functions0D::CurveNatureF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__DensityF0D = {"_p_Functions0D__DensityF0D", "Functions0D::DensityF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetCurvilinearAbscissaF0D = {"_p_Functions0D__GetCurvilinearAbscissaF0D", "Functions0D::GetCurvilinearAbscissaF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetOccludeeF0D = {"_p_Functions0D__GetOccludeeF0D", "Functions0D::GetOccludeeF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetOccludersF0D = {"_p_Functions0D__GetOccludersF0D", "Functions0D::GetOccludersF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetParameterF0D = {"_p_Functions0D__GetParameterF0D", "Functions0D::GetParameterF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetProjectedXF0D = {"_p_Functions0D__GetProjectedXF0D", "Functions0D::GetProjectedXF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetProjectedYF0D = {"_p_Functions0D__GetProjectedYF0D", "Functions0D::GetProjectedYF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetProjectedZF0D = {"_p_Functions0D__GetProjectedZF0D", "Functions0D::GetProjectedZF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetShapeF0D = {"_p_Functions0D__GetShapeF0D", "Functions0D::GetShapeF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetViewMapGradientNormF0D = {"_p_Functions0D__GetViewMapGradientNormF0D", "Functions0D::GetViewMapGradientNormF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetXF0D = {"_p_Functions0D__GetXF0D", "Functions0D::GetXF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetYF0D = {"_p_Functions0D__GetYF0D", "Functions0D::GetYF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__GetZF0D = {"_p_Functions0D__GetZF0D", "Functions0D::GetZF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__LocalAverageDepthF0D = {"_p_Functions0D__LocalAverageDepthF0D", "Functions0D::LocalAverageDepthF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__MaterialF0D = {"_p_Functions0D__MaterialF0D", "Functions0D::MaterialF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__Normal2DF0D = {"_p_Functions0D__Normal2DF0D", "Functions0D::Normal2DF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__QuantitativeInvisibilityF0D = {"_p_Functions0D__QuantitativeInvisibilityF0D", "Functions0D::QuantitativeInvisibilityF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__ReadCompleteViewMapPixelF0D = {"_p_Functions0D__ReadCompleteViewMapPixelF0D", "Functions0D::ReadCompleteViewMapPixelF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__ReadMapPixelF0D = {"_p_Functions0D__ReadMapPixelF0D", "Functions0D::ReadMapPixelF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__ReadSteerableViewMapPixelF0D = {"_p_Functions0D__ReadSteerableViewMapPixelF0D", "Functions0D::ReadSteerableViewMapPixelF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__ShapeIdF0D = {"_p_Functions0D__ShapeIdF0D", "Functions0D::ShapeIdF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__VertexOrientation2DF0D = {"_p_Functions0D__VertexOrientation2DF0D", "Functions0D::VertexOrientation2DF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__VertexOrientation3DF0D = {"_p_Functions0D__VertexOrientation3DF0D", "Functions0D::VertexOrientation3DF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions0D__ZDiscontinuityF0D = {"_p_Functions0D__ZDiscontinuityF0D", "Functions0D::ZDiscontinuityF0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__ChainingTimeStampF1D = {"_p_Functions1D__ChainingTimeStampF1D", "Functions1D::ChainingTimeStampF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__Curvature2DAngleF1D = {"_p_Functions1D__Curvature2DAngleF1D", "Functions1D::Curvature2DAngleF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__CurveNatureF1D = {"_p_Functions1D__CurveNatureF1D", "Functions1D::CurveNatureF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__DensityF1D = {"_p_Functions1D__DensityF1D", "Functions1D::DensityF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetCompleteViewMapDensityF1D = {"_p_Functions1D__GetCompleteViewMapDensityF1D", "Functions1D::GetCompleteViewMapDensityF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetDirectionalViewMapDensityF1D = {"_p_Functions1D__GetDirectionalViewMapDensityF1D", "Functions1D::GetDirectionalViewMapDensityF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetOccludeeF1D = {"_p_Functions1D__GetOccludeeF1D", "Functions1D::GetOccludeeF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetOccludersF1D = {"_p_Functions1D__GetOccludersF1D", "Functions1D::GetOccludersF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetProjectedXF1D = {"_p_Functions1D__GetProjectedXF1D", "Functions1D::GetProjectedXF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetProjectedYF1D = {"_p_Functions1D__GetProjectedYF1D", "Functions1D::GetProjectedYF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetProjectedZF1D = {"_p_Functions1D__GetProjectedZF1D", "Functions1D::GetProjectedZF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetShapeF1D = {"_p_Functions1D__GetShapeF1D", "Functions1D::GetShapeF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetSteerableViewMapDensityF1D = {"_p_Functions1D__GetSteerableViewMapDensityF1D", "Functions1D::GetSteerableViewMapDensityF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetViewMapGradientNormF1D = {"_p_Functions1D__GetViewMapGradientNormF1D", "Functions1D::GetViewMapGradientNormF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetXF1D = {"_p_Functions1D__GetXF1D", "Functions1D::GetXF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetYF1D = {"_p_Functions1D__GetYF1D", "Functions1D::GetYF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__GetZF1D = {"_p_Functions1D__GetZF1D", "Functions1D::GetZF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__IncrementChainingTimeStampF1D = {"_p_Functions1D__IncrementChainingTimeStampF1D", "Functions1D::IncrementChainingTimeStampF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__LocalAverageDepthF1D = {"_p_Functions1D__LocalAverageDepthF1D", "Functions1D::LocalAverageDepthF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__Normal2DF1D = {"_p_Functions1D__Normal2DF1D", "Functions1D::Normal2DF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__Orientation2DF1D = {"_p_Functions1D__Orientation2DF1D", "Functions1D::Orientation2DF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__Orientation3DF1D = {"_p_Functions1D__Orientation3DF1D", "Functions1D::Orientation3DF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__QuantitativeInvisibilityF1D = {"_p_Functions1D__QuantitativeInvisibilityF1D", "Functions1D::QuantitativeInvisibilityF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__TimeStampF1D = {"_p_Functions1D__TimeStampF1D", "Functions1D::TimeStampF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Functions1D__ZDiscontinuityF1D = {"_p_Functions1D__ZDiscontinuityF1D", "Functions1D::ZDiscontinuityF1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_GrayImage = {"_p_GrayImage", "GrayImage *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_I1DContainer = {"_p_I1DContainer", "I1DContainer *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Id = {"_p_Id", "Id *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_IntegrationType = {"_p_IntegrationType", "enum IntegrationType *|IntegrationType *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Interface0D = {"_p_Interface0D", "Interface0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Interface0DIterator = {"_p_Interface0DIterator", "Interface0DIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Interface0DIteratorNested = {"_p_Interface0DIteratorNested", "Interface0DIteratorNested *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Interface1D = {"_p_Interface1D", "Interface1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Material = {"_p_Material", "Material *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_MediumType = {"_p_MediumType", "MediumType *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Module = {"_p_Module", "Module *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Noise = {"_p_Noise", "Noise *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_NonTVertex = {"_p_NonTVertex", "NonTVertex *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_OmissionShader = {"_p_OmissionShader", "OmissionShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Omitter = {"_p_Omitter", "Omitter *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Operators = {"_p_Operators", "Operators *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Point = {"_p_Point", "Point *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Polygon3r = {"_p_Polygon3r", "Polygon3r *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates0D__FalseUP0D = {"_p_Predicates0D__FalseUP0D", "Predicates0D::FalseUP0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates0D__TrueUP0D = {"_p_Predicates0D__TrueUP0D", "Predicates0D::TrueUP0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__ContourUP1D = {"_p_Predicates1D__ContourUP1D", "Predicates1D::ContourUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__DensityLowerThanUP1D = {"_p_Predicates1D__DensityLowerThanUP1D", "Predicates1D::DensityLowerThanUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__EqualToChainingTimeStampUP1D = {"_p_Predicates1D__EqualToChainingTimeStampUP1D", "Predicates1D::EqualToChainingTimeStampUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__EqualToTimeStampUP1D = {"_p_Predicates1D__EqualToTimeStampUP1D", "Predicates1D::EqualToTimeStampUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__ExternalContourUP1D = {"_p_Predicates1D__ExternalContourUP1D", "Predicates1D::ExternalContourUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__FalseBP1D = {"_p_Predicates1D__FalseBP1D", "Predicates1D::FalseBP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__FalseUP1D = {"_p_Predicates1D__FalseUP1D", "Predicates1D::FalseUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__Length2DBP1D = {"_p_Predicates1D__Length2DBP1D", "Predicates1D::Length2DBP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__QuantitativeInvisibilityUP1D = {"_p_Predicates1D__QuantitativeInvisibilityUP1D", "Predicates1D::QuantitativeInvisibilityUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__SameShapeIdBP1D = {"_p_Predicates1D__SameShapeIdBP1D", "Predicates1D::SameShapeIdBP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__ShapeUP1D = {"_p_Predicates1D__ShapeUP1D", "Predicates1D::ShapeUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__TrueBP1D = {"_p_Predicates1D__TrueBP1D", "Predicates1D::TrueBP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__TrueUP1D = {"_p_Predicates1D__TrueUP1D", "Predicates1D::TrueUP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Predicates1D__ViewMapGradientNormBP1D = {"_p_Predicates1D__ViewMapGradientNormBP1D", "Predicates1D::ViewMapGradientNormBP1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_RGBImage = {"_p_RGBImage", "RGBImage *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ReturnedValueType = {"_p_ReturnedValueType", "ReturnedValueType *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_SShape = {"_p_SShape", "SShape *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_SVertex = {"_p_SVertex", "SVertex *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_SVertex__fedges_container__iterator = {"_p_SVertex__fedges_container__iterator", "SVertex::fedges_container::iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Smoother = {"_p_Smoother", "Smoother *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_SmoothingShader = {"_p_SmoothingShader", "SmoothingShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_SpatialNoiseShader = {"_p_SpatialNoiseShader", "SpatialNoiseShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_SteerableViewMap = {"_p_SteerableViewMap", "SteerableViewMap *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Stroke = {"_p_Stroke", "Stroke *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeAttribute = {"_p_StrokeAttribute", "StrokeAttribute *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeInternal__StrokeVertexIterator = {"_p_StrokeInternal__StrokeVertexIterator", "StrokeInternal::StrokeVertexIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeLayer = {"_p_StrokeLayer", "StrokeLayer *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeRenderer = {"_p_StrokeRenderer", "StrokeRenderer *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShader = {"_p_StrokeShader", "StrokeShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__BSplineShader = {"_p_StrokeShaders__BSplineShader", "StrokeShaders::BSplineShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__BackboneStretcherShader = {"_p_StrokeShaders__BackboneStretcherShader", "StrokeShaders::BackboneStretcherShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__BezierCurveShader = {"_p_StrokeShaders__BezierCurveShader", "StrokeShaders::BezierCurveShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__CalligraphicColorShader = {"_p_StrokeShaders__CalligraphicColorShader", "StrokeShaders::CalligraphicColorShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ColorNoiseShader = {"_p_StrokeShaders__ColorNoiseShader", "StrokeShaders::ColorNoiseShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ColorVariationPatternShader = {"_p_StrokeShaders__ColorVariationPatternShader", "StrokeShaders::ColorVariationPatternShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ConstantColorShader = {"_p_StrokeShaders__ConstantColorShader", "StrokeShaders::ConstantColorShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ConstantExternThicknessShader = {"_p_StrokeShaders__ConstantExternThicknessShader", "StrokeShaders::ConstantExternThicknessShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ConstantThicknessShader = {"_p_StrokeShaders__ConstantThicknessShader", "StrokeShaders::ConstantThicknessShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ConstrainedIncreasingThicknessShader = {"_p_StrokeShaders__ConstrainedIncreasingThicknessShader", "StrokeShaders::ConstrainedIncreasingThicknessShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ExternalContourStretcherShader = {"_p_StrokeShaders__ExternalContourStretcherShader", "StrokeShaders::ExternalContourStretcherShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__GuidingLinesShader = {"_p_StrokeShaders__GuidingLinesShader", "StrokeShaders::GuidingLinesShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__IncreasingColorShader = {"_p_StrokeShaders__IncreasingColorShader", "StrokeShaders::IncreasingColorShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__IncreasingThicknessShader = {"_p_StrokeShaders__IncreasingThicknessShader", "StrokeShaders::IncreasingThicknessShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__InflateShader = {"_p_StrokeShaders__InflateShader", "StrokeShaders::InflateShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__LengthDependingThicknessShader = {"_p_StrokeShaders__LengthDependingThicknessShader", "StrokeShaders::LengthDependingThicknessShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__MaterialColorShader = {"_p_StrokeShaders__MaterialColorShader", "StrokeShaders::MaterialColorShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__PolygonalizationShader = {"_p_StrokeShaders__PolygonalizationShader", "StrokeShaders::PolygonalizationShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__SamplingShader = {"_p_StrokeShaders__SamplingShader", "StrokeShaders::SamplingShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__StrokeTextureShader = {"_p_StrokeShaders__StrokeTextureShader", "StrokeShaders::StrokeTextureShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__TextureAssignerShader = {"_p_StrokeShaders__TextureAssignerShader", "StrokeShaders::TextureAssignerShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ThicknessNoiseShader = {"_p_StrokeShaders__ThicknessNoiseShader", "StrokeShaders::ThicknessNoiseShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__ThicknessVariationPatternShader = {"_p_StrokeShaders__ThicknessVariationPatternShader", "StrokeShaders::ThicknessVariationPatternShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__TipRemoverShader = {"_p_StrokeShaders__TipRemoverShader", "StrokeShaders::TipRemoverShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__fstreamShader = {"_p_StrokeShaders__fstreamShader", "StrokeShaders::fstreamShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeShaders__streamShader = {"_p_StrokeShaders__streamShader", "StrokeShaders::streamShader *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokeVertex = {"_p_StrokeVertex", "StrokeVertex *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Stroke__vertex_container__iterator = {"_p_Stroke__vertex_container__iterator", "Stroke::vertex_container::iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Stroke__viewedge_container__const_iterator = {"_p_Stroke__viewedge_container__const_iterator", "Stroke::viewedge_container::const_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Stroke__viewedge_container__iterator = {"_p_Stroke__viewedge_container__iterator", "Stroke::viewedge_container::iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StrokesContainer = {"_p_StrokesContainer", "StrokesContainer *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_StyleModule = {"_p_StyleModule", "StyleModule *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_TVertex = {"_p_TVertex", "TVertex *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTId_t = {"_p_UnaryFunction0DTId_t", "UnaryFunction0D<Id > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t = {"_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t", "UnaryFunction0D<VecMat::Vec2<float > > *|UnaryFunction0D<Geometry::Vec2f > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t = {"_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t", "UnaryFunction0D<VecMat::Vec3<float > > *|UnaryFunction0D<Geometry::Vec3f > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTViewShape_p_t = {"_p_UnaryFunction0DTViewShape_p_t", "UnaryFunction0D<ViewShape * > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTdouble_t = {"_p_UnaryFunction0DTdouble_t", "UnaryFunction0D<double > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTfloat_t = {"_p_UnaryFunction0DTfloat_t", "UnaryFunction0D<float > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t = {"_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t", "UnaryFunction0D<std::vector<ViewShape * > > *|UnaryFunction0D<std::vector<ViewShape *,std::allocator<ViewShape * > > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTunsigned_int_t = {"_p_UnaryFunction0DTunsigned_int_t", "UnaryFunction0D<unsigned int > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction0DTvoid_t = {"_p_UnaryFunction0DTvoid_t", "UnaryFunction0D<void > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t = {"_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t", "UnaryFunction1D<VecMat::Vec2<float > > *|UnaryFunction1D<Geometry::Vec2f > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t = {"_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t", "UnaryFunction1D<VecMat::Vec3<float > > *|UnaryFunction1D<Geometry::Vec3f > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction1DTdouble_t = {"_p_UnaryFunction1DTdouble_t", "UnaryFunction1D<double > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction1DTfloat_t = {"_p_UnaryFunction1DTfloat_t", "UnaryFunction1D<float > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t = {"_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t", "UnaryFunction1D<std::vector<ViewShape * > > *|UnaryFunction1D<std::vector<ViewShape *,std::allocator<ViewShape * > > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction1DTunsigned_int_t = {"_p_UnaryFunction1DTunsigned_int_t", "UnaryFunction1D<unsigned int > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryFunction1DTvoid_t = {"_p_UnaryFunction1DTvoid_t", "UnaryFunction1D<void > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryPredicate0D = {"_p_UnaryPredicate0D", "UnaryPredicate0D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_UnaryPredicate1D = {"_p_UnaryPredicate1D", "UnaryPredicate1D *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__HVec3Tdouble_t = {"_p_VecMat__HVec3Tdouble_t", "VecMat::HVec3<double > *|Geometry::HVec3r *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__HVec3Tfloat_t = {"_p_VecMat__HVec3Tfloat_t", "VecMat::HVec3<float > *|Geometry::HVec3f *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__HVec3Tint_t = {"_p_VecMat__HVec3Tint_t", "VecMat::HVec3<int > *|Geometry::HVec3i *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__HVec3Tunsigned_int_t = {"_p_VecMat__HVec3Tunsigned_int_t", "VecMat::HVec3<unsigned int > *|Geometry::HVec3u *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTdouble_2_t = {"_p_VecMat__SquareMatrixTdouble_2_t", "VecMat::SquareMatrix<double,2 > *|Geometry::Matrix22r *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTdouble_3_t = {"_p_VecMat__SquareMatrixTdouble_3_t", "VecMat::SquareMatrix<double,3 > *|Geometry::Matrix33r *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTdouble_4_t = {"_p_VecMat__SquareMatrixTdouble_4_t", "VecMat::SquareMatrix<double,4 > *|Geometry::Matrix44r *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTfloat_2_t = {"_p_VecMat__SquareMatrixTfloat_2_t", "VecMat::SquareMatrix<float,2 > *|Geometry::Matrix22f *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTfloat_3_t = {"_p_VecMat__SquareMatrixTfloat_3_t", "VecMat::SquareMatrix<float,3 > *|Geometry::Matrix33f *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTfloat_4_t = {"_p_VecMat__SquareMatrixTfloat_4_t", "VecMat::SquareMatrix<float,4 > *|Geometry::Matrix44f *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTint_2_t = {"_p_VecMat__SquareMatrixTint_2_t", "VecMat::SquareMatrix<int,2 > *|Geometry::Matrix22i *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTint_3_t = {"_p_VecMat__SquareMatrixTint_3_t", "VecMat::SquareMatrix<int,3 > *|Geometry::Matrix33i *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTint_4_t = {"_p_VecMat__SquareMatrixTint_4_t", "VecMat::SquareMatrix<int,4 > *|Geometry::Matrix44i *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTunsigned_int_2_t = {"_p_VecMat__SquareMatrixTunsigned_int_2_t", "VecMat::SquareMatrix<unsigned int,2 > *|Geometry::Matrix22u *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTunsigned_int_3_t = {"_p_VecMat__SquareMatrixTunsigned_int_3_t", "VecMat::SquareMatrix<unsigned int,3 > *|Geometry::Matrix33u *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__SquareMatrixTunsigned_int_4_t = {"_p_VecMat__SquareMatrixTunsigned_int_4_t", "VecMat::SquareMatrix<unsigned int,4 > *|Geometry::Matrix44u *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__Vec2Tdouble_t = {"_p_VecMat__Vec2Tdouble_t", "VecMat::Vec2<double > *|Geometry::Vec2d *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__Vec2Tfloat_t = {"_p_VecMat__Vec2Tfloat_t", "VecMat::Vec2<float > *|Geometry::Vec2f *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__Vec2Tint_t = {"_p_VecMat__Vec2Tint_t", "VecMat::Vec2<int > *|Geometry::Vec2i *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__Vec2Tunsigned_int_t = {"_p_VecMat__Vec2Tunsigned_int_t", "VecMat::Vec2<unsigned int > *|Geometry::Vec2u *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__Vec3Tdouble_t = {"_p_VecMat__Vec3Tdouble_t", "VecMat::Vec3<double > *|Geometry::Vec3r *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__Vec3Tfloat_t = {"_p_VecMat__Vec3Tfloat_t", "VecMat::Vec3<float > *|Geometry::Vec3f *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__Vec3Tint_t = {"_p_VecMat__Vec3Tint_t", "VecMat::Vec3<int > *|Geometry::Vec3i *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__Vec3Tunsigned_int_t = {"_p_VecMat__Vec3Tunsigned_int_t", "VecMat::Vec3<unsigned int > *|Geometry::Vec3u *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__VecTdouble_2_t = {"_p_VecMat__VecTdouble_2_t", "VecMat::Vec<double,2 > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__VecTdouble_3_t = {"_p_VecMat__VecTdouble_3_t", "VecMat::Vec<double,3 > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__VecTfloat_2_t = {"_p_VecMat__VecTfloat_2_t", "VecMat::Vec<float,2 > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__VecTfloat_3_t = {"_p_VecMat__VecTfloat_3_t", "VecMat::Vec<float,3 > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__VecTint_2_t = {"_p_VecMat__VecTint_2_t", "VecMat::Vec<int,2 > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__VecTint_3_t = {"_p_VecMat__VecTint_3_t", "VecMat::Vec<int,3 > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__VecTunsigned_int_2_t = {"_p_VecMat__VecTunsigned_int_2_t", "VecMat::Vec<unsigned int,2 > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_VecMat__VecTunsigned_int_3_t = {"_p_VecMat__VecTunsigned_int_3_t", "VecMat::Vec<unsigned int,3 > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Vertex = {"_p_Vertex", "Vertex *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewEdge = {"_p_ViewEdge", "ViewEdge *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewEdgeInternal__SVertexIterator = {"_p_ViewEdgeInternal__SVertexIterator", "ViewEdgeInternal::SVertexIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewEdgeInternal__ViewEdgeIterator = {"_p_ViewEdgeInternal__ViewEdgeIterator", "ViewEdgeInternal::ViewEdgeIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewMap = {"_p_ViewMap", "ViewMap *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewShape = {"_p_ViewShape", "ViewShape *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewVertex = {"_p_ViewVertex", "ViewVertex *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t = {"_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t", "ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_const_traits > *|ViewVertex::const_edge_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t = {"_p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t", "ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_nonconst_traits > *|ViewVertex::edge_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewVertexInternal__orientedViewEdgeIterator = {"_p_ViewVertexInternal__orientedViewEdgeIterator", "ViewVertexInternal::orientedViewEdgeIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator = {"_p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator", "ViewVertexInternal::orientedViewEdgeIterator::edge_pointers_container::iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator = {"_p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator", "ViewVertexInternal::orientedViewEdgeIterator::edges_container::iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_allocator_type = {"_p_allocator_type", "allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_const_edge_iterator = {"_p_const_edge_iterator", "const_edge_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_const_fedge_iterator = {"_p_const_fedge_iterator", "const_fedge_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_const_point_iterator = {"_p_const_point_iterator", "const_point_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_const_reference = {"_p_const_reference", "const_reference *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_const_vertex_iterator = {"_p_const_vertex_iterator", "const_vertex_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_directedViewEdge = {"_p_directedViewEdge", "directedViewEdge *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_double = {"_p_double", "double *|VecMat::Vec3<double >::value_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_edge_iterator = {"_p_edge_iterator", "edge_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_edge_pointers_container = {"_p_edge_pointers_container", "edge_pointers_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_edges_container = {"_p_edges_container", "edges_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_fedge_iterator = {"_p_fedge_iterator", "fedge_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_fedges_container = {"_p_fedges_container", "fedges_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_float = {"_p_float", "float *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_id_type = {"_p_id_type", "id_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_int = {"_p_int", "int *|VecMat::Vec3<int >::value_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ltstr = {"_p_ltstr", "ltstr *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mapsMap = {"_p_mapsMap", "mapsMap *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_occluder_container__const_iterator = {"_p_occluder_container__const_iterator", "occluder_container::const_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_PyObject = {"_p_p_PyObject", "PyObject **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_point_iterator = {"_p_point_iterator", "point_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_point_type = {"_p_point_type", "point_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_reference = {"_p_reference", "reference *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_setTVecMat__Vec3Tdouble_t_t = {"_p_setTVecMat__Vec3Tdouble_t_t", "set<VecMat::Vec3<double > > *|set<Geometry::Vec3r > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_size_type = {"_p_size_type", "size_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__pairTViewEdge_p_bool_t = {"_p_std__pairTViewEdge_p_bool_t", "std::pair<ViewEdge *,bool > *|ViewVertex::directedViewEdge *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t = {"_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t", "std::vector<FEdge * > *|std::vector<FEdge *,std::allocator<FEdge * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__allocator_type = {"_p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__allocator_type", "std::allocator<FEdge * > *|std::vector<FEdge * >::allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTMaterial_std__allocatorTMaterial_t_t = {"_p_std__vectorTMaterial_std__allocatorTMaterial_t_t", "std::vector<Material > *|std::vector<Material,std::allocator<Material > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t = {"_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t", "std::vector<SVertex * > *|ViewMap::svertices_container *|std::vector<SVertex *,std::allocator<SVertex * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__allocator_type = {"_p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__allocator_type", "std::allocator<SVertex * > *|std::vector<SVertex * >::allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t = {"_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t", "std::vector<StrokeShader * > *|std::vector<StrokeShader *,std::allocator<StrokeShader * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__allocator_type = {"_p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__allocator_type", "std::allocator<StrokeShader * > *|std::vector<StrokeShader * >::allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTTVertex_p_std__allocatorTTVertex_p_t_t = {"_p_std__vectorTTVertex_p_std__allocatorTTVertex_p_t_t", "std::vector<TVertex * > *|std::vector<TVertex *,std::allocator<TVertex * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTVecMat__Vec2Tdouble_t_std__allocatorTVecMat__Vec2Tdouble_t_t_t = {"_p_std__vectorTVecMat__Vec2Tdouble_t_std__allocatorTVecMat__Vec2Tdouble_t_t_t", "std::vector<VecMat::Vec2<double > > *|std::vector<Geometry::Vec2r > *|std::vector<VecMat::Vec2<double >,std::allocator<VecMat::Vec2<double > > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t = {"_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t", "std::vector<ViewEdge * > *|std::vector<ViewEdge *,std::allocator<ViewEdge * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__allocator_type = {"_p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__allocator_type", "std::allocator<ViewEdge * > *|std::vector<ViewEdge * >::allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t = {"_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t", "std::vector<ViewShape * > *|std::vector<ViewShape *,std::allocator<ViewShape * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__allocator_type = {"_p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__allocator_type", "std::allocator<ViewShape * > *|std::vector<ViewShape * >::allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t = {"_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t", "std::vector<ViewVertex * > *|std::vector<ViewVertex *,std::allocator<ViewVertex * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__allocator_type = {"_p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__allocator_type", "std::allocator<ViewVertex * > *|std::vector<ViewVertex * >::allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTint_std__allocatorTint_t_t = {"_p_std__vectorTint_std__allocatorTint_t_t", "std::vector<int > *|std::vector<int,std::allocator<int > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTint_std__allocatorTint_t_t__allocator_type = {"_p_std__vectorTint_std__allocatorTint_t_t__allocator_type", "std::allocator<int > *|std::vector<int >::allocator_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t = {"_p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t", "std::vector<std::pair<ViewEdge *,bool > > *|std::vector<ViewVertex::directedViewEdge > *|std::vector<std::pair<ViewEdge *,bool >,std::allocator<std::pair<ViewEdge *,bool > > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t = {"_p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t", "std::vector<unsigned int,std::allocator<unsigned int > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svertices_container = {"_p_svertices_container", "svertices_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_swig__PySwigIterator = {"_p_swig__PySwigIterator", "swig::PySwigIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int *|VecMat::Vec3<unsigned int >::value_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|Nature::EdgeNature *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_vertex_container = {"_p_vertex_container", "vertex_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_vertex_iterator = {"_p_vertex_iterator", "vertex_iterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_vertex_type = {"_p_vertex_type", "vertex_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_viewedge_container = {"_p_viewedge_container", "viewedge_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_viewedges_container = {"_p_viewedges_container", "viewedges_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_viewshapes_container = {"_p_viewshapes_container", "viewshapes_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_viewvertices_container = {"_p_viewvertices_container", "viewvertices_container *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_void = {"_p_void", "void *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type = {"_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type", "FEdge *|std::vector<FEdge * >::value_type", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type = {"_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type", "SVertex *|std::vector<SVertex * >::value_type", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type = {"_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type", "StrokeShader *|std::vector<StrokeShader * >::value_type", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type = {"_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type", "ViewEdge *|std::vector<ViewEdge * >::value_type", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type = {"_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type", "ViewShape *|std::vector<ViewShape * >::value_type", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type = {"_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type", "ViewVertex *|std::vector<ViewVertex * >::value_type", 0, 0, (void*)0, 0};
+
+static swig_type_info *swig_type_initial[] = {
+ &_swigt__p_AdjacencyIterator,
+ &_swigt__p_BBoxTVecMat__Vec3Tdouble_t_t,
+ &_swigt__p_BinaryPredicate0D,
+ &_swigt__p_BinaryPredicate1D,
+ &_swigt__p_CalligraphicShader,
+ &_swigt__p_Canvas,
+ &_swigt__p_Chain,
+ &_swigt__p_ChainPredicateIterator,
+ &_swigt__p_ChainSilhouetteIterator,
+ &_swigt__p_ChainingIterator,
+ &_swigt__p_CurvatureInfo,
+ &_swigt__p_Curve,
+ &_swigt__p_CurveInternal__CurvePointIterator,
+ &_swigt__p_CurvePoint,
+ &_swigt__p_Curve__vertex_container__iterator,
+ &_swigt__p_FEdge,
+ &_swigt__p_FEdgeInternal__SVertexIterator,
+ &_swigt__p_FEdgeSharp,
+ &_swigt__p_FEdgeSmooth,
+ &_swigt__p_Functions0D__Curvature2DAngleF0D,
+ &_swigt__p_Functions0D__CurveNatureF0D,
+ &_swigt__p_Functions0D__DensityF0D,
+ &_swigt__p_Functions0D__GetCurvilinearAbscissaF0D,
+ &_swigt__p_Functions0D__GetOccludeeF0D,
+ &_swigt__p_Functions0D__GetOccludersF0D,
+ &_swigt__p_Functions0D__GetParameterF0D,
+ &_swigt__p_Functions0D__GetProjectedXF0D,
+ &_swigt__p_Functions0D__GetProjectedYF0D,
+ &_swigt__p_Functions0D__GetProjectedZF0D,
+ &_swigt__p_Functions0D__GetShapeF0D,
+ &_swigt__p_Functions0D__GetViewMapGradientNormF0D,
+ &_swigt__p_Functions0D__GetXF0D,
+ &_swigt__p_Functions0D__GetYF0D,
+ &_swigt__p_Functions0D__GetZF0D,
+ &_swigt__p_Functions0D__LocalAverageDepthF0D,
+ &_swigt__p_Functions0D__MaterialF0D,
+ &_swigt__p_Functions0D__Normal2DF0D,
+ &_swigt__p_Functions0D__QuantitativeInvisibilityF0D,
+ &_swigt__p_Functions0D__ReadCompleteViewMapPixelF0D,
+ &_swigt__p_Functions0D__ReadMapPixelF0D,
+ &_swigt__p_Functions0D__ReadSteerableViewMapPixelF0D,
+ &_swigt__p_Functions0D__ShapeIdF0D,
+ &_swigt__p_Functions0D__VertexOrientation2DF0D,
+ &_swigt__p_Functions0D__VertexOrientation3DF0D,
+ &_swigt__p_Functions0D__ZDiscontinuityF0D,
+ &_swigt__p_Functions1D__ChainingTimeStampF1D,
+ &_swigt__p_Functions1D__Curvature2DAngleF1D,
+ &_swigt__p_Functions1D__CurveNatureF1D,
+ &_swigt__p_Functions1D__DensityF1D,
+ &_swigt__p_Functions1D__GetCompleteViewMapDensityF1D,
+ &_swigt__p_Functions1D__GetDirectionalViewMapDensityF1D,
+ &_swigt__p_Functions1D__GetOccludeeF1D,
+ &_swigt__p_Functions1D__GetOccludersF1D,
+ &_swigt__p_Functions1D__GetProjectedXF1D,
+ &_swigt__p_Functions1D__GetProjectedYF1D,
+ &_swigt__p_Functions1D__GetProjectedZF1D,
+ &_swigt__p_Functions1D__GetShapeF1D,
+ &_swigt__p_Functions1D__GetSteerableViewMapDensityF1D,
+ &_swigt__p_Functions1D__GetViewMapGradientNormF1D,
+ &_swigt__p_Functions1D__GetXF1D,
+ &_swigt__p_Functions1D__GetYF1D,
+ &_swigt__p_Functions1D__GetZF1D,
+ &_swigt__p_Functions1D__IncrementChainingTimeStampF1D,
+ &_swigt__p_Functions1D__LocalAverageDepthF1D,
+ &_swigt__p_Functions1D__Normal2DF1D,
+ &_swigt__p_Functions1D__Orientation2DF1D,
+ &_swigt__p_Functions1D__Orientation3DF1D,
+ &_swigt__p_Functions1D__QuantitativeInvisibilityF1D,
+ &_swigt__p_Functions1D__TimeStampF1D,
+ &_swigt__p_Functions1D__ZDiscontinuityF1D,
+ &_swigt__p_GrayImage,
+ &_swigt__p_I1DContainer,
+ &_swigt__p_Id,
+ &_swigt__p_IntegrationType,
+ &_swigt__p_Interface0D,
+ &_swigt__p_Interface0DIterator,
+ &_swigt__p_Interface0DIteratorNested,
+ &_swigt__p_Interface1D,
+ &_swigt__p_Material,
+ &_swigt__p_MediumType,
+ &_swigt__p_Module,
+ &_swigt__p_Noise,
+ &_swigt__p_NonTVertex,
+ &_swigt__p_OmissionShader,
+ &_swigt__p_Omitter,
+ &_swigt__p_Operators,
+ &_swigt__p_Point,
+ &_swigt__p_Polygon3r,
+ &_swigt__p_Predicates0D__FalseUP0D,
+ &_swigt__p_Predicates0D__TrueUP0D,
+ &_swigt__p_Predicates1D__ContourUP1D,
+ &_swigt__p_Predicates1D__DensityLowerThanUP1D,
+ &_swigt__p_Predicates1D__EqualToChainingTimeStampUP1D,
+ &_swigt__p_Predicates1D__EqualToTimeStampUP1D,
+ &_swigt__p_Predicates1D__ExternalContourUP1D,
+ &_swigt__p_Predicates1D__FalseBP1D,
+ &_swigt__p_Predicates1D__FalseUP1D,
+ &_swigt__p_Predicates1D__Length2DBP1D,
+ &_swigt__p_Predicates1D__QuantitativeInvisibilityUP1D,
+ &_swigt__p_Predicates1D__SameShapeIdBP1D,
+ &_swigt__p_Predicates1D__ShapeUP1D,
+ &_swigt__p_Predicates1D__TrueBP1D,
+ &_swigt__p_Predicates1D__TrueUP1D,
+ &_swigt__p_Predicates1D__ViewMapGradientNormBP1D,
+ &_swigt__p_RGBImage,
+ &_swigt__p_ReturnedValueType,
+ &_swigt__p_SShape,
+ &_swigt__p_SVertex,
+ &_swigt__p_SVertex__fedges_container__iterator,
+ &_swigt__p_Smoother,
+ &_swigt__p_SmoothingShader,
+ &_swigt__p_SpatialNoiseShader,
+ &_swigt__p_SteerableViewMap,
+ &_swigt__p_Stroke,
+ &_swigt__p_StrokeAttribute,
+ &_swigt__p_StrokeInternal__StrokeVertexIterator,
+ &_swigt__p_StrokeLayer,
+ &_swigt__p_StrokeRenderer,
+ &_swigt__p_StrokeShader,
+ &_swigt__p_StrokeShaders__BSplineShader,
+ &_swigt__p_StrokeShaders__BackboneStretcherShader,
+ &_swigt__p_StrokeShaders__BezierCurveShader,
+ &_swigt__p_StrokeShaders__CalligraphicColorShader,
+ &_swigt__p_StrokeShaders__ColorNoiseShader,
+ &_swigt__p_StrokeShaders__ColorVariationPatternShader,
+ &_swigt__p_StrokeShaders__ConstantColorShader,
+ &_swigt__p_StrokeShaders__ConstantExternThicknessShader,
+ &_swigt__p_StrokeShaders__ConstantThicknessShader,
+ &_swigt__p_StrokeShaders__ConstrainedIncreasingThicknessShader,
+ &_swigt__p_StrokeShaders__ExternalContourStretcherShader,
+ &_swigt__p_StrokeShaders__GuidingLinesShader,
+ &_swigt__p_StrokeShaders__IncreasingColorShader,
+ &_swigt__p_StrokeShaders__IncreasingThicknessShader,
+ &_swigt__p_StrokeShaders__InflateShader,
+ &_swigt__p_StrokeShaders__LengthDependingThicknessShader,
+ &_swigt__p_StrokeShaders__MaterialColorShader,
+ &_swigt__p_StrokeShaders__PolygonalizationShader,
+ &_swigt__p_StrokeShaders__SamplingShader,
+ &_swigt__p_StrokeShaders__StrokeTextureShader,
+ &_swigt__p_StrokeShaders__TextureAssignerShader,
+ &_swigt__p_StrokeShaders__ThicknessNoiseShader,
+ &_swigt__p_StrokeShaders__ThicknessVariationPatternShader,
+ &_swigt__p_StrokeShaders__TipRemoverShader,
+ &_swigt__p_StrokeShaders__fstreamShader,
+ &_swigt__p_StrokeShaders__streamShader,
+ &_swigt__p_StrokeVertex,
+ &_swigt__p_Stroke__vertex_container__iterator,
+ &_swigt__p_Stroke__viewedge_container__const_iterator,
+ &_swigt__p_Stroke__viewedge_container__iterator,
+ &_swigt__p_StrokesContainer,
+ &_swigt__p_StyleModule,
+ &_swigt__p_TVertex,
+ &_swigt__p_UnaryFunction0DTId_t,
+ &_swigt__p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t,
+ &_swigt__p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t,
+ &_swigt__p_UnaryFunction0DTViewShape_p_t,
+ &_swigt__p_UnaryFunction0DTdouble_t,
+ &_swigt__p_UnaryFunction0DTfloat_t,
+ &_swigt__p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t,
+ &_swigt__p_UnaryFunction0DTunsigned_int_t,
+ &_swigt__p_UnaryFunction0DTvoid_t,
+ &_swigt__p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t,
+ &_swigt__p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t,
+ &_swigt__p_UnaryFunction1DTdouble_t,
+ &_swigt__p_UnaryFunction1DTfloat_t,
+ &_swigt__p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t,
+ &_swigt__p_UnaryFunction1DTunsigned_int_t,
+ &_swigt__p_UnaryFunction1DTvoid_t,
+ &_swigt__p_UnaryPredicate0D,
+ &_swigt__p_UnaryPredicate1D,
+ &_swigt__p_VecMat__HVec3Tdouble_t,
+ &_swigt__p_VecMat__HVec3Tfloat_t,
+ &_swigt__p_VecMat__HVec3Tint_t,
+ &_swigt__p_VecMat__HVec3Tunsigned_int_t,
+ &_swigt__p_VecMat__SquareMatrixTdouble_2_t,
+ &_swigt__p_VecMat__SquareMatrixTdouble_3_t,
+ &_swigt__p_VecMat__SquareMatrixTdouble_4_t,
+ &_swigt__p_VecMat__SquareMatrixTfloat_2_t,
+ &_swigt__p_VecMat__SquareMatrixTfloat_3_t,
+ &_swigt__p_VecMat__SquareMatrixTfloat_4_t,
+ &_swigt__p_VecMat__SquareMatrixTint_2_t,
+ &_swigt__p_VecMat__SquareMatrixTint_3_t,
+ &_swigt__p_VecMat__SquareMatrixTint_4_t,
+ &_swigt__p_VecMat__SquareMatrixTunsigned_int_2_t,
+ &_swigt__p_VecMat__SquareMatrixTunsigned_int_3_t,
+ &_swigt__p_VecMat__SquareMatrixTunsigned_int_4_t,
+ &_swigt__p_VecMat__Vec2Tdouble_t,
+ &_swigt__p_VecMat__Vec2Tfloat_t,
+ &_swigt__p_VecMat__Vec2Tint_t,
+ &_swigt__p_VecMat__Vec2Tunsigned_int_t,
+ &_swigt__p_VecMat__Vec3Tdouble_t,
+ &_swigt__p_VecMat__Vec3Tfloat_t,
+ &_swigt__p_VecMat__Vec3Tint_t,
+ &_swigt__p_VecMat__Vec3Tunsigned_int_t,
+ &_swigt__p_VecMat__VecTdouble_2_t,
+ &_swigt__p_VecMat__VecTdouble_3_t,
+ &_swigt__p_VecMat__VecTfloat_2_t,
+ &_swigt__p_VecMat__VecTfloat_3_t,
+ &_swigt__p_VecMat__VecTint_2_t,
+ &_swigt__p_VecMat__VecTint_3_t,
+ &_swigt__p_VecMat__VecTunsigned_int_2_t,
+ &_swigt__p_VecMat__VecTunsigned_int_3_t,
+ &_swigt__p_Vertex,
+ &_swigt__p_ViewEdge,
+ &_swigt__p_ViewEdgeInternal__SVertexIterator,
+ &_swigt__p_ViewEdgeInternal__ViewEdgeIterator,
+ &_swigt__p_ViewMap,
+ &_swigt__p_ViewShape,
+ &_swigt__p_ViewVertex,
+ &_swigt__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t,
+ &_swigt__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t,
+ &_swigt__p_ViewVertexInternal__orientedViewEdgeIterator,
+ &_swigt__p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator,
+ &_swigt__p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator,
+ &_swigt__p_allocator_type,
+ &_swigt__p_char,
+ &_swigt__p_const_edge_iterator,
+ &_swigt__p_const_fedge_iterator,
+ &_swigt__p_const_point_iterator,
+ &_swigt__p_const_reference,
+ &_swigt__p_const_vertex_iterator,
+ &_swigt__p_difference_type,
+ &_swigt__p_directedViewEdge,
+ &_swigt__p_double,
+ &_swigt__p_edge_iterator,
+ &_swigt__p_edge_pointers_container,
+ &_swigt__p_edges_container,
+ &_swigt__p_fedge_iterator,
+ &_swigt__p_fedges_container,
+ &_swigt__p_float,
+ &_swigt__p_id_type,
+ &_swigt__p_int,
+ &_swigt__p_ltstr,
+ &_swigt__p_mapsMap,
+ &_swigt__p_occluder_container__const_iterator,
+ &_swigt__p_p_PyObject,
+ &_swigt__p_point_iterator,
+ &_swigt__p_point_type,
+ &_swigt__p_reference,
+ &_swigt__p_setTVecMat__Vec3Tdouble_t_t,
+ &_swigt__p_size_type,
+ &_swigt__p_std__invalid_argument,
+ &_swigt__p_std__pairTViewEdge_p_bool_t,
+ &_swigt__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t,
+ &_swigt__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__allocator_type,
+ &_swigt__p_std__vectorTMaterial_std__allocatorTMaterial_t_t,
+ &_swigt__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t,
+ &_swigt__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__allocator_type,
+ &_swigt__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t,
+ &_swigt__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__allocator_type,
+ &_swigt__p_std__vectorTTVertex_p_std__allocatorTTVertex_p_t_t,
+ &_swigt__p_std__vectorTVecMat__Vec2Tdouble_t_std__allocatorTVecMat__Vec2Tdouble_t_t_t,
+ &_swigt__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t,
+ &_swigt__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__allocator_type,
+ &_swigt__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t,
+ &_swigt__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__allocator_type,
+ &_swigt__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t,
+ &_swigt__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__allocator_type,
+ &_swigt__p_std__vectorTint_std__allocatorTint_t_t,
+ &_swigt__p_std__vectorTint_std__allocatorTint_t_t__allocator_type,
+ &_swigt__p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t,
+ &_swigt__p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t,
+ &_swigt__p_svertices_container,
+ &_swigt__p_swig__PySwigIterator,
+ &_swigt__p_unsigned_int,
+ &_swigt__p_unsigned_short,
+ &_swigt__p_value_type,
+ &_swigt__p_vertex_container,
+ &_swigt__p_vertex_iterator,
+ &_swigt__p_vertex_type,
+ &_swigt__p_viewedge_container,
+ &_swigt__p_viewedges_container,
+ &_swigt__p_viewshapes_container,
+ &_swigt__p_viewvertices_container,
+ &_swigt__p_void,
+ &_swigt__std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type,
+ &_swigt__std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type,
+ &_swigt__std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type,
+ &_swigt__std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type,
+ &_swigt__std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type,
+ &_swigt__std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type,
+};
+
+static swig_cast_info _swigc__p_AdjacencyIterator[] = { {&_swigt__p_AdjacencyIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_BBoxTVecMat__Vec3Tdouble_t_t[] = { {&_swigt__p_BBoxTVecMat__Vec3Tdouble_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_BinaryPredicate0D[] = { {&_swigt__p_BinaryPredicate0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_BinaryPredicate1D[] = { {&_swigt__p_Predicates1D__Length2DBP1D, _p_Predicates1D__Length2DBP1DTo_p_BinaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__FalseBP1D, _p_Predicates1D__FalseBP1DTo_p_BinaryPredicate1D, 0, 0}, {&_swigt__p_BinaryPredicate1D, 0, 0, 0}, {&_swigt__p_Predicates1D__ViewMapGradientNormBP1D, _p_Predicates1D__ViewMapGradientNormBP1DTo_p_BinaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__TrueBP1D, _p_Predicates1D__TrueBP1DTo_p_BinaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__SameShapeIdBP1D, _p_Predicates1D__SameShapeIdBP1DTo_p_BinaryPredicate1D, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_CalligraphicShader[] = { {&_swigt__p_CalligraphicShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Canvas[] = { {&_swigt__p_Canvas, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Chain[] = { {&_swigt__p_Chain, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ChainPredicateIterator[] = { {&_swigt__p_ChainPredicateIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ChainSilhouetteIterator[] = { {&_swigt__p_ChainSilhouetteIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ChainingIterator[] = { {&_swigt__p_ChainingIterator, 0, 0, 0}, {&_swigt__p_ChainSilhouetteIterator, _p_ChainSilhouetteIteratorTo_p_ChainingIterator, 0, 0}, {&_swigt__p_ChainPredicateIterator, _p_ChainPredicateIteratorTo_p_ChainingIterator, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_CurvatureInfo[] = { {&_swigt__p_CurvatureInfo, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Curve[] = { {&_swigt__p_Curve, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_CurveInternal__CurvePointIterator[] = { {&_swigt__p_CurveInternal__CurvePointIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_CurvePoint[] = { {&_swigt__p_StrokeVertex, _p_StrokeVertexTo_p_CurvePoint, 0, 0}, {&_swigt__p_CurvePoint, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Curve__vertex_container__iterator[] = { {&_swigt__p_Curve__vertex_container__iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_FEdge[] = { {&_swigt__p_FEdge, 0, 0, 0}, {&_swigt__p_FEdgeSharp, _p_FEdgeSharpTo_p_FEdge, 0, 0}, {&_swigt__p_FEdgeSmooth, _p_FEdgeSmoothTo_p_FEdge, 0, 0}, {&_swigt__std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_FEdgeInternal__SVertexIterator[] = { {&_swigt__p_FEdgeInternal__SVertexIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_FEdgeSharp[] = { {&_swigt__p_FEdgeSharp, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_FEdgeSmooth[] = { {&_swigt__p_FEdgeSmooth, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__Curvature2DAngleF0D[] = { {&_swigt__p_Functions0D__Curvature2DAngleF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__CurveNatureF0D[] = { {&_swigt__p_Functions0D__CurveNatureF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__DensityF0D[] = { {&_swigt__p_Functions0D__DensityF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetCurvilinearAbscissaF0D[] = { {&_swigt__p_Functions0D__GetCurvilinearAbscissaF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetOccludeeF0D[] = { {&_swigt__p_Functions0D__GetOccludeeF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetOccludersF0D[] = { {&_swigt__p_Functions0D__GetOccludersF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetParameterF0D[] = { {&_swigt__p_Functions0D__GetParameterF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetProjectedXF0D[] = { {&_swigt__p_Functions0D__GetProjectedXF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetProjectedYF0D[] = { {&_swigt__p_Functions0D__GetProjectedYF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetProjectedZF0D[] = { {&_swigt__p_Functions0D__GetProjectedZF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetShapeF0D[] = { {&_swigt__p_Functions0D__GetShapeF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetViewMapGradientNormF0D[] = { {&_swigt__p_Functions0D__GetViewMapGradientNormF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetXF0D[] = { {&_swigt__p_Functions0D__GetXF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetYF0D[] = { {&_swigt__p_Functions0D__GetYF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__GetZF0D[] = { {&_swigt__p_Functions0D__GetZF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__LocalAverageDepthF0D[] = { {&_swigt__p_Functions0D__LocalAverageDepthF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__MaterialF0D[] = { {&_swigt__p_Functions0D__MaterialF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__Normal2DF0D[] = { {&_swigt__p_Functions0D__Normal2DF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__QuantitativeInvisibilityF0D[] = { {&_swigt__p_Functions0D__QuantitativeInvisibilityF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__ReadCompleteViewMapPixelF0D[] = { {&_swigt__p_Functions0D__ReadCompleteViewMapPixelF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__ReadMapPixelF0D[] = { {&_swigt__p_Functions0D__ReadMapPixelF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__ReadSteerableViewMapPixelF0D[] = { {&_swigt__p_Functions0D__ReadSteerableViewMapPixelF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__ShapeIdF0D[] = { {&_swigt__p_Functions0D__ShapeIdF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__VertexOrientation2DF0D[] = { {&_swigt__p_Functions0D__VertexOrientation2DF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__VertexOrientation3DF0D[] = { {&_swigt__p_Functions0D__VertexOrientation3DF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions0D__ZDiscontinuityF0D[] = { {&_swigt__p_Functions0D__ZDiscontinuityF0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__ChainingTimeStampF1D[] = { {&_swigt__p_Functions1D__ChainingTimeStampF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__Curvature2DAngleF1D[] = { {&_swigt__p_Functions1D__Curvature2DAngleF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__CurveNatureF1D[] = { {&_swigt__p_Functions1D__CurveNatureF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__DensityF1D[] = { {&_swigt__p_Functions1D__DensityF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetCompleteViewMapDensityF1D[] = { {&_swigt__p_Functions1D__GetCompleteViewMapDensityF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetDirectionalViewMapDensityF1D[] = { {&_swigt__p_Functions1D__GetDirectionalViewMapDensityF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetOccludeeF1D[] = { {&_swigt__p_Functions1D__GetOccludeeF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetOccludersF1D[] = { {&_swigt__p_Functions1D__GetOccludersF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetProjectedXF1D[] = { {&_swigt__p_Functions1D__GetProjectedXF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetProjectedYF1D[] = { {&_swigt__p_Functions1D__GetProjectedYF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetProjectedZF1D[] = { {&_swigt__p_Functions1D__GetProjectedZF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetShapeF1D[] = { {&_swigt__p_Functions1D__GetShapeF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetSteerableViewMapDensityF1D[] = { {&_swigt__p_Functions1D__GetSteerableViewMapDensityF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetViewMapGradientNormF1D[] = { {&_swigt__p_Functions1D__GetViewMapGradientNormF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetXF1D[] = { {&_swigt__p_Functions1D__GetXF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetYF1D[] = { {&_swigt__p_Functions1D__GetYF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__GetZF1D[] = { {&_swigt__p_Functions1D__GetZF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__IncrementChainingTimeStampF1D[] = { {&_swigt__p_Functions1D__IncrementChainingTimeStampF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__LocalAverageDepthF1D[] = { {&_swigt__p_Functions1D__LocalAverageDepthF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__Normal2DF1D[] = { {&_swigt__p_Functions1D__Normal2DF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__Orientation2DF1D[] = { {&_swigt__p_Functions1D__Orientation2DF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__Orientation3DF1D[] = { {&_swigt__p_Functions1D__Orientation3DF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__QuantitativeInvisibilityF1D[] = { {&_swigt__p_Functions1D__QuantitativeInvisibilityF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__TimeStampF1D[] = { {&_swigt__p_Functions1D__TimeStampF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Functions1D__ZDiscontinuityF1D[] = { {&_swigt__p_Functions1D__ZDiscontinuityF1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_GrayImage[] = { {&_swigt__p_GrayImage, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_I1DContainer[] = { {&_swigt__p_I1DContainer, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Id[] = { {&_swigt__p_Id, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_IntegrationType[] = { {&_swigt__p_IntegrationType, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Interface0D[] = { {&_swigt__std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, _p_SVertexTo_p_Interface0D, 0, 0}, {&_swigt__p_TVertex, _p_TVertexTo_p_Interface0D, 0, 0}, {&_swigt__p_NonTVertex, _p_NonTVertexTo_p_Interface0D, 0, 0}, {&_swigt__p_Interface0D, 0, 0, 0}, {&_swigt__p_SVertex, _p_SVertexTo_p_Interface0D, 0, 0}, {&_swigt__p_ViewVertex, _p_ViewVertexTo_p_Interface0D, 0, 0}, {&_swigt__std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, _p_ViewVertexTo_p_Interface0D, 0, 0}, {&_swigt__p_StrokeVertex, _p_StrokeVertexTo_p_Interface0D, 0, 0}, {&_swigt__p_CurvePoint, _p_CurvePointTo_p_Interface0D, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Interface0DIterator[] = { {&_swigt__p_Interface0DIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Interface0DIteratorNested[] = { {&_swigt__p_Interface0DIteratorNested, 0, 0, 0}, {&_swigt__p_FEdgeInternal__SVertexIterator, _p_FEdgeInternal__SVertexIteratorTo_p_Interface0DIteratorNested, 0, 0}, {&_swigt__p_ViewEdgeInternal__SVertexIterator, _p_ViewEdgeInternal__SVertexIteratorTo_p_Interface0DIteratorNested, 0, 0}, {&_swigt__p_CurveInternal__CurvePointIterator, _p_CurveInternal__CurvePointIteratorTo_p_Interface0DIteratorNested, 0, 0}, {&_swigt__p_StrokeInternal__StrokeVertexIterator, _p_StrokeInternal__StrokeVertexIteratorTo_p_Interface0DIteratorNested, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Interface1D[] = { {&_swigt__p_Interface1D, 0, 0, 0}, {&_swigt__p_ViewEdge, _p_ViewEdgeTo_p_Interface1D, 0, 0}, {&_swigt__std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0, 0, 0}, {&_swigt__p_Curve, _p_CurveTo_p_Interface1D, 0, 0}, {&_swigt__p_Stroke, _p_StrokeTo_p_Interface1D, 0, 0}, {&_swigt__p_FEdgeSharp, _p_FEdgeSharpTo_p_Interface1D, 0, 0}, {&_swigt__p_FEdgeSmooth, _p_FEdgeSmoothTo_p_Interface1D, 0, 0}, {&_swigt__p_FEdge, _p_FEdgeTo_p_Interface1D, 0, 0}, {&_swigt__std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Material[] = { {&_swigt__p_Material, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_MediumType[] = { {&_swigt__p_MediumType, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Module[] = { {&_swigt__p_Module, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Noise[] = { {&_swigt__p_Noise, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_NonTVertex[] = { {&_swigt__p_NonTVertex, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_OmissionShader[] = { {&_swigt__p_OmissionShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Omitter[] = { {&_swigt__p_Omitter, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Operators[] = { {&_swigt__p_Operators, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Point[] = { {&_swigt__p_Point, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Polygon3r[] = { {&_swigt__p_Polygon3r, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates0D__FalseUP0D[] = { {&_swigt__p_Predicates0D__FalseUP0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates0D__TrueUP0D[] = { {&_swigt__p_Predicates0D__TrueUP0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__ContourUP1D[] = { {&_swigt__p_Predicates1D__ContourUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__DensityLowerThanUP1D[] = { {&_swigt__p_Predicates1D__DensityLowerThanUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__EqualToChainingTimeStampUP1D[] = { {&_swigt__p_Predicates1D__EqualToChainingTimeStampUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__EqualToTimeStampUP1D[] = { {&_swigt__p_Predicates1D__EqualToTimeStampUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__ExternalContourUP1D[] = { {&_swigt__p_Predicates1D__ExternalContourUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__FalseBP1D[] = { {&_swigt__p_Predicates1D__FalseBP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__FalseUP1D[] = { {&_swigt__p_Predicates1D__FalseUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__Length2DBP1D[] = { {&_swigt__p_Predicates1D__Length2DBP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__QuantitativeInvisibilityUP1D[] = { {&_swigt__p_Predicates1D__QuantitativeInvisibilityUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__SameShapeIdBP1D[] = { {&_swigt__p_Predicates1D__SameShapeIdBP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__ShapeUP1D[] = { {&_swigt__p_Predicates1D__ShapeUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__TrueBP1D[] = { {&_swigt__p_Predicates1D__TrueBP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__TrueUP1D[] = { {&_swigt__p_Predicates1D__TrueUP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Predicates1D__ViewMapGradientNormBP1D[] = { {&_swigt__p_Predicates1D__ViewMapGradientNormBP1D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_RGBImage[] = { {&_swigt__p_RGBImage, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ReturnedValueType[] = { {&_swigt__p_ReturnedValueType, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_SShape[] = { {&_swigt__p_SShape, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_SVertex[] = { {&_swigt__std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0, 0, 0}, {&_swigt__p_SVertex, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_SVertex__fedges_container__iterator[] = { {&_swigt__p_SVertex__fedges_container__iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Smoother[] = { {&_swigt__p_Smoother, 0, 0, 0}, {&_swigt__p_Omitter, _p_OmitterTo_p_Smoother, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_SmoothingShader[] = { {&_swigt__p_SmoothingShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_SpatialNoiseShader[] = { {&_swigt__p_SpatialNoiseShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_SteerableViewMap[] = { {&_swigt__p_SteerableViewMap, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Stroke[] = { {&_swigt__p_Stroke, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeAttribute[] = { {&_swigt__p_StrokeAttribute, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeInternal__StrokeVertexIterator[] = { {&_swigt__p_StrokeInternal__StrokeVertexIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeLayer[] = { {&_swigt__p_StrokeLayer, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeRenderer[] = { {&_swigt__p_StrokeRenderer, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShader[] = { {&_swigt__p_StrokeShaders__ConstrainedIncreasingThicknessShader, _p_StrokeShaders__ConstrainedIncreasingThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0, 0, 0}, {&_swigt__p_StrokeShaders__ColorNoiseShader, _p_StrokeShaders__ColorNoiseShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ThicknessNoiseShader, _p_StrokeShaders__ThicknessNoiseShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__LengthDependingThicknessShader, _p_StrokeShaders__LengthDependingThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__IncreasingThicknessShader, _p_StrokeShaders__IncreasingThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ConstantExternThicknessShader, _p_StrokeShaders__ConstantExternThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ConstantThicknessShader, _p_StrokeShaders__ConstantThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__StrokeTextureShader, _p_StrokeShaders__StrokeTextureShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__SamplingShader, _p_StrokeShaders__SamplingShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__BSplineShader, _p_StrokeShaders__BSplineShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__BezierCurveShader, _p_StrokeShaders__BezierCurveShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__InflateShader, _p_StrokeShaders__InflateShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShader, 0, 0, 0}, {&_swigt__p_StrokeShaders__GuidingLinesShader, _p_StrokeShaders__GuidingLinesShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__streamShader, _p_StrokeShaders__streamShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__fstreamShader, _p_StrokeShaders__fstreamShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_CalligraphicShader, _p_CalligraphicShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_SpatialNoiseShader, _p_SpatialNoiseShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_SmoothingShader, _p_SmoothingShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__TextureAssignerShader, _p_StrokeShaders__TextureAssignerShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__CalligraphicColorShader, _p_StrokeShaders__CalligraphicColorShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__MaterialColorShader, _p_StrokeShaders__MaterialColorShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ColorVariationPatternShader, _p_StrokeShaders__ColorVariationPatternShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__IncreasingColorShader, _p_StrokeShaders__IncreasingColorShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ConstantColorShader, _p_StrokeShaders__ConstantColorShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ThicknessVariationPatternShader, _p_StrokeShaders__ThicknessVariationPatternShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__BackboneStretcherShader, _p_StrokeShaders__BackboneStretcherShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ExternalContourStretcherShader, _p_StrokeShaders__ExternalContourStretcherShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__PolygonalizationShader, _p_StrokeShaders__PolygonalizationShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__TipRemoverShader, _p_StrokeShaders__TipRemoverShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_OmissionShader, _p_OmissionShaderTo_p_StrokeShader, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__BSplineShader[] = { {&_swigt__p_StrokeShaders__BSplineShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__BackboneStretcherShader[] = { {&_swigt__p_StrokeShaders__BackboneStretcherShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__BezierCurveShader[] = { {&_swigt__p_StrokeShaders__BezierCurveShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__CalligraphicColorShader[] = { {&_swigt__p_StrokeShaders__CalligraphicColorShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ColorNoiseShader[] = { {&_swigt__p_StrokeShaders__ColorNoiseShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ColorVariationPatternShader[] = { {&_swigt__p_StrokeShaders__ColorVariationPatternShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ConstantColorShader[] = { {&_swigt__p_StrokeShaders__ConstantColorShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ConstantExternThicknessShader[] = { {&_swigt__p_StrokeShaders__ConstantExternThicknessShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ConstantThicknessShader[] = { {&_swigt__p_StrokeShaders__ConstantThicknessShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ConstrainedIncreasingThicknessShader[] = { {&_swigt__p_StrokeShaders__ConstrainedIncreasingThicknessShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ExternalContourStretcherShader[] = { {&_swigt__p_StrokeShaders__ExternalContourStretcherShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__GuidingLinesShader[] = { {&_swigt__p_StrokeShaders__GuidingLinesShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__IncreasingColorShader[] = { {&_swigt__p_StrokeShaders__IncreasingColorShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__IncreasingThicknessShader[] = { {&_swigt__p_StrokeShaders__IncreasingThicknessShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__InflateShader[] = { {&_swigt__p_StrokeShaders__InflateShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__LengthDependingThicknessShader[] = { {&_swigt__p_StrokeShaders__LengthDependingThicknessShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__MaterialColorShader[] = { {&_swigt__p_StrokeShaders__MaterialColorShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__PolygonalizationShader[] = { {&_swigt__p_StrokeShaders__PolygonalizationShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__SamplingShader[] = { {&_swigt__p_StrokeShaders__SamplingShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__StrokeTextureShader[] = { {&_swigt__p_StrokeShaders__StrokeTextureShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__TextureAssignerShader[] = { {&_swigt__p_StrokeShaders__TextureAssignerShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ThicknessNoiseShader[] = { {&_swigt__p_StrokeShaders__ThicknessNoiseShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__ThicknessVariationPatternShader[] = { {&_swigt__p_StrokeShaders__ThicknessVariationPatternShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__TipRemoverShader[] = { {&_swigt__p_StrokeShaders__TipRemoverShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__fstreamShader[] = { {&_swigt__p_StrokeShaders__fstreamShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeShaders__streamShader[] = { {&_swigt__p_StrokeShaders__streamShader, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokeVertex[] = { {&_swigt__p_StrokeVertex, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Stroke__vertex_container__iterator[] = { {&_swigt__p_Stroke__vertex_container__iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Stroke__viewedge_container__const_iterator[] = { {&_swigt__p_Stroke__viewedge_container__const_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Stroke__viewedge_container__iterator[] = { {&_swigt__p_Stroke__viewedge_container__iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StrokesContainer[] = { {&_swigt__p_StrokesContainer, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_StyleModule[] = { {&_swigt__p_StyleModule, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_TVertex[] = { {&_swigt__p_TVertex, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTId_t[] = { {&_swigt__p_UnaryFunction0DTId_t, 0, 0, 0}, {&_swigt__p_Functions0D__ShapeIdF0D, _p_Functions0D__ShapeIdF0DTo_p_UnaryFunction0DTId_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t[] = { {&_swigt__p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, 0, 0, 0}, {&_swigt__p_Functions0D__VertexOrientation2DF0D, _p_Functions0D__VertexOrientation2DF0DTo_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, 0, 0}, {&_swigt__p_Functions0D__Normal2DF0D, _p_Functions0D__Normal2DF0DTo_p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t[] = { {&_swigt__p_Functions0D__VertexOrientation3DF0D, _p_Functions0D__VertexOrientation3DF0DTo_p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t, 0, 0}, {&_swigt__p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTViewShape_p_t[] = { {&_swigt__p_Functions0D__GetShapeF0D, _p_Functions0D__GetShapeF0DTo_p_UnaryFunction0DTViewShape_p_t, 0, 0}, {&_swigt__p_Functions0D__GetOccludeeF0D, _p_Functions0D__GetOccludeeF0DTo_p_UnaryFunction0DTViewShape_p_t, 0, 0}, {&_swigt__p_UnaryFunction0DTViewShape_p_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTdouble_t[] = { {&_swigt__p_UnaryFunction0DTdouble_t, 0, 0, 0}, {&_swigt__p_Functions0D__ZDiscontinuityF0D, _p_Functions0D__ZDiscontinuityF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__DensityF0D, _p_Functions0D__DensityF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__GetXF0D, _p_Functions0D__GetXF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__GetProjectedXF0D, _p_Functions0D__GetProjectedXF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__Curvature2DAngleF0D, _p_Functions0D__Curvature2DAngleF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__GetYF0D, _p_Functions0D__GetYF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__GetProjectedYF0D, _p_Functions0D__GetProjectedYF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__GetZF0D, _p_Functions0D__GetZF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__GetProjectedZF0D, _p_Functions0D__GetProjectedZF0DTo_p_UnaryFunction0DTdouble_t, 0, 0}, {&_swigt__p_Functions0D__LocalAverageDepthF0D, _p_Functions0D__LocalAverageDepthF0DTo_p_UnaryFunction0DTdouble_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTfloat_t[] = { {&_swigt__p_Functions0D__GetCurvilinearAbscissaF0D, _p_Functions0D__GetCurvilinearAbscissaF0DTo_p_UnaryFunction0DTfloat_t, 0, 0}, {&_swigt__p_Functions0D__ReadMapPixelF0D, _p_Functions0D__ReadMapPixelF0DTo_p_UnaryFunction0DTfloat_t, 0, 0}, {&_swigt__p_Functions0D__ReadSteerableViewMapPixelF0D, _p_Functions0D__ReadSteerableViewMapPixelF0DTo_p_UnaryFunction0DTfloat_t, 0, 0}, {&_swigt__p_Functions0D__ReadCompleteViewMapPixelF0D, _p_Functions0D__ReadCompleteViewMapPixelF0DTo_p_UnaryFunction0DTfloat_t, 0, 0}, {&_swigt__p_Functions0D__GetViewMapGradientNormF0D, _p_Functions0D__GetViewMapGradientNormF0DTo_p_UnaryFunction0DTfloat_t, 0, 0}, {&_swigt__p_UnaryFunction0DTfloat_t, 0, 0, 0}, {&_swigt__p_Functions0D__GetParameterF0D, _p_Functions0D__GetParameterF0DTo_p_UnaryFunction0DTfloat_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t[] = { {&_swigt__p_Functions0D__GetOccludersF0D, _p_Functions0D__GetOccludersF0DTo_p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0, 0}, {&_swigt__p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTunsigned_int_t[] = { {&_swigt__p_Functions0D__QuantitativeInvisibilityF0D, _p_Functions0D__QuantitativeInvisibilityF0DTo_p_UnaryFunction0DTunsigned_int_t, 0, 0}, {&_swigt__p_UnaryFunction0DTunsigned_int_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction0DTvoid_t[] = { {&_swigt__p_UnaryFunction0DTvoid_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t[] = { {&_swigt__p_Functions1D__Orientation2DF1D, _p_Functions1D__Orientation2DF1DTo_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, 0, 0}, {&_swigt__p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, 0, 0, 0}, {&_swigt__p_Functions1D__Normal2DF1D, _p_Functions1D__Normal2DF1DTo_p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t[] = { {&_swigt__p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, 0, 0, 0}, {&_swigt__p_Functions1D__Orientation3DF1D, _p_Functions1D__Orientation3DF1DTo_p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction1DTdouble_t[] = { {&_swigt__p_Functions1D__GetSteerableViewMapDensityF1D, _p_Functions1D__GetSteerableViewMapDensityF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetDirectionalViewMapDensityF1D, _p_Functions1D__GetDirectionalViewMapDensityF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetCompleteViewMapDensityF1D, _p_Functions1D__GetCompleteViewMapDensityF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__DensityF1D, _p_Functions1D__DensityF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__ZDiscontinuityF1D, _p_Functions1D__ZDiscontinuityF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetXF1D, _p_Functions1D__GetXF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetZF1D, _p_Functions1D__GetZF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetViewMapGradientNormF1D, _p_Functions1D__GetViewMapGradientNormF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetProjectedYF1D, _p_Functions1D__GetProjectedYF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_UnaryFunction1DTdouble_t, 0, 0, 0}, {&_swigt__p_Functions1D__Curvature2DAngleF1D, _p_Functions1D__Curvature2DAngleF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetYF1D, _p_Functions1D__GetYF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetProjectedXF1D, _p_Functions1D__GetProjectedXF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__LocalAverageDepthF1D, _p_Functions1D__LocalAverageDepthF1DTo_p_UnaryFunction1DTdouble_t, 0, 0}, {&_swigt__p_Functions1D__GetProjectedZF1D, _p_Functions1D__GetProjectedZF1DTo_p_UnaryFunction1DTdouble_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction1DTfloat_t[] = { {&_swigt__p_UnaryFunction1DTfloat_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t[] = { {&_swigt__p_Functions1D__GetOccludeeF1D, _p_Functions1D__GetOccludeeF1DTo_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0, 0}, {&_swigt__p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0, 0, 0}, {&_swigt__p_Functions1D__GetShapeF1D, _p_Functions1D__GetShapeF1DTo_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0, 0}, {&_swigt__p_Functions1D__GetOccludersF1D, _p_Functions1D__GetOccludersF1DTo_p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction1DTunsigned_int_t[] = { {&_swigt__p_Functions1D__QuantitativeInvisibilityF1D, _p_Functions1D__QuantitativeInvisibilityF1DTo_p_UnaryFunction1DTunsigned_int_t, 0, 0}, {&_swigt__p_UnaryFunction1DTunsigned_int_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryFunction1DTvoid_t[] = { {&_swigt__p_UnaryFunction1DTvoid_t, 0, 0, 0}, {&_swigt__p_Functions1D__TimeStampF1D, _p_Functions1D__TimeStampF1DTo_p_UnaryFunction1DTvoid_t, 0, 0}, {&_swigt__p_Functions1D__IncrementChainingTimeStampF1D, _p_Functions1D__IncrementChainingTimeStampF1DTo_p_UnaryFunction1DTvoid_t, 0, 0}, {&_swigt__p_Functions1D__ChainingTimeStampF1D, _p_Functions1D__ChainingTimeStampF1DTo_p_UnaryFunction1DTvoid_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryPredicate0D[] = { {&_swigt__p_Predicates0D__TrueUP0D, _p_Predicates0D__TrueUP0DTo_p_UnaryPredicate0D, 0, 0}, {&_swigt__p_Predicates0D__FalseUP0D, _p_Predicates0D__FalseUP0DTo_p_UnaryPredicate0D, 0, 0}, {&_swigt__p_UnaryPredicate0D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_UnaryPredicate1D[] = { {&_swigt__p_Predicates1D__FalseUP1D, _p_Predicates1D__FalseUP1DTo_p_UnaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__ShapeUP1D, _p_Predicates1D__ShapeUP1DTo_p_UnaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__DensityLowerThanUP1D, _p_Predicates1D__DensityLowerThanUP1DTo_p_UnaryPredicate1D, 0, 0}, {&_swigt__p_UnaryPredicate1D, 0, 0, 0}, {&_swigt__p_Predicates1D__EqualToTimeStampUP1D, _p_Predicates1D__EqualToTimeStampUP1DTo_p_UnaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__EqualToChainingTimeStampUP1D, _p_Predicates1D__EqualToChainingTimeStampUP1DTo_p_UnaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__TrueUP1D, _p_Predicates1D__TrueUP1DTo_p_UnaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__QuantitativeInvisibilityUP1D, _p_Predicates1D__QuantitativeInvisibilityUP1DTo_p_UnaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__ContourUP1D, _p_Predicates1D__ContourUP1DTo_p_UnaryPredicate1D, 0, 0}, {&_swigt__p_Predicates1D__ExternalContourUP1D, _p_Predicates1D__ExternalContourUP1DTo_p_UnaryPredicate1D, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__HVec3Tdouble_t[] = { {&_swigt__p_VecMat__HVec3Tdouble_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__HVec3Tfloat_t[] = { {&_swigt__p_VecMat__HVec3Tfloat_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__HVec3Tint_t[] = { {&_swigt__p_VecMat__HVec3Tint_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__HVec3Tunsigned_int_t[] = { {&_swigt__p_VecMat__HVec3Tunsigned_int_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTdouble_2_t[] = { {&_swigt__p_VecMat__SquareMatrixTdouble_2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTdouble_3_t[] = { {&_swigt__p_VecMat__SquareMatrixTdouble_3_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTdouble_4_t[] = { {&_swigt__p_VecMat__SquareMatrixTdouble_4_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTfloat_2_t[] = { {&_swigt__p_VecMat__SquareMatrixTfloat_2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTfloat_3_t[] = { {&_swigt__p_VecMat__SquareMatrixTfloat_3_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTfloat_4_t[] = { {&_swigt__p_VecMat__SquareMatrixTfloat_4_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTint_2_t[] = { {&_swigt__p_VecMat__SquareMatrixTint_2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTint_3_t[] = { {&_swigt__p_VecMat__SquareMatrixTint_3_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTint_4_t[] = { {&_swigt__p_VecMat__SquareMatrixTint_4_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTunsigned_int_2_t[] = { {&_swigt__p_VecMat__SquareMatrixTunsigned_int_2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTunsigned_int_3_t[] = { {&_swigt__p_VecMat__SquareMatrixTunsigned_int_3_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__SquareMatrixTunsigned_int_4_t[] = { {&_swigt__p_VecMat__SquareMatrixTunsigned_int_4_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__Vec2Tdouble_t[] = { {&_swigt__p_VecMat__Vec2Tdouble_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__Vec2Tfloat_t[] = { {&_swigt__p_VecMat__Vec2Tfloat_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__Vec2Tint_t[] = { {&_swigt__p_VecMat__Vec2Tint_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__Vec2Tunsigned_int_t[] = { {&_swigt__p_VecMat__Vec2Tunsigned_int_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__Vec3Tdouble_t[] = { {&_swigt__p_VecMat__Vec3Tdouble_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__Vec3Tfloat_t[] = { {&_swigt__p_VecMat__Vec3Tfloat_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__Vec3Tint_t[] = { {&_swigt__p_VecMat__Vec3Tint_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__Vec3Tunsigned_int_t[] = { {&_swigt__p_VecMat__Vec3Tunsigned_int_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__VecTdouble_2_t[] = { {&_swigt__p_VecMat__VecTdouble_2_t, 0, 0, 0}, {&_swigt__p_VecMat__Vec2Tdouble_t, _p_VecMat__Vec2Tdouble_tTo_p_VecMat__VecTdouble_2_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__VecTdouble_3_t[] = { {&_swigt__p_VecMat__Vec3Tdouble_t, _p_VecMat__Vec3Tdouble_tTo_p_VecMat__VecTdouble_3_t, 0, 0}, {&_swigt__p_VecMat__VecTdouble_3_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__VecTfloat_2_t[] = { {&_swigt__p_VecMat__VecTfloat_2_t, 0, 0, 0}, {&_swigt__p_VecMat__Vec2Tfloat_t, _p_VecMat__Vec2Tfloat_tTo_p_VecMat__VecTfloat_2_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__VecTfloat_3_t[] = { {&_swigt__p_VecMat__VecTfloat_3_t, 0, 0, 0}, {&_swigt__p_VecMat__Vec3Tfloat_t, _p_VecMat__Vec3Tfloat_tTo_p_VecMat__VecTfloat_3_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__VecTint_2_t[] = { {&_swigt__p_VecMat__VecTint_2_t, 0, 0, 0}, {&_swigt__p_VecMat__Vec2Tint_t, _p_VecMat__Vec2Tint_tTo_p_VecMat__VecTint_2_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__VecTint_3_t[] = { {&_swigt__p_VecMat__VecTint_3_t, 0, 0, 0}, {&_swigt__p_VecMat__Vec3Tint_t, _p_VecMat__Vec3Tint_tTo_p_VecMat__VecTint_3_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__VecTunsigned_int_2_t[] = { {&_swigt__p_VecMat__VecTunsigned_int_2_t, 0, 0, 0}, {&_swigt__p_VecMat__Vec2Tunsigned_int_t, _p_VecMat__Vec2Tunsigned_int_tTo_p_VecMat__VecTunsigned_int_2_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_VecMat__VecTunsigned_int_3_t[] = { {&_swigt__p_VecMat__VecTunsigned_int_3_t, 0, 0, 0}, {&_swigt__p_VecMat__Vec3Tunsigned_int_t, _p_VecMat__Vec3Tunsigned_int_tTo_p_VecMat__VecTunsigned_int_3_t, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Vertex[] = { {&_swigt__p_Vertex, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewEdge[] = { {&_swigt__p_ViewEdge, 0, 0, 0}, {&_swigt__std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewEdgeInternal__SVertexIterator[] = { {&_swigt__p_ViewEdgeInternal__SVertexIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewEdgeInternal__ViewEdgeIterator[] = { {&_swigt__p_ViewEdgeInternal__ViewEdgeIterator, 0, 0, 0}, {&_swigt__p_ChainingIterator, _p_ChainingIteratorTo_p_ViewEdgeInternal__ViewEdgeIterator, 0, 0}, {&_swigt__p_ChainSilhouetteIterator, _p_ChainSilhouetteIteratorTo_p_ViewEdgeInternal__ViewEdgeIterator, 0, 0}, {&_swigt__p_ChainPredicateIterator, _p_ChainPredicateIteratorTo_p_ViewEdgeInternal__ViewEdgeIterator, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewMap[] = { {&_swigt__p_ViewMap, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewShape[] = { {&_swigt__p_ViewShape, 0, 0, 0}, {&_swigt__std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewVertex[] = { {&_swigt__p_TVertex, _p_TVertexTo_p_ViewVertex, 0, 0}, {&_swigt__p_NonTVertex, _p_NonTVertexTo_p_ViewVertex, 0, 0}, {&_swigt__p_ViewVertex, 0, 0, 0}, {&_swigt__std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t[] = { {&_swigt__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t[] = { {&_swigt__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewVertexInternal__orientedViewEdgeIterator[] = { {&_swigt__p_ViewVertexInternal__orientedViewEdgeIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator[] = { {&_swigt__p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator[] = { {&_swigt__p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_allocator_type[] = { {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_const_edge_iterator[] = { {&_swigt__p_const_edge_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_const_fedge_iterator[] = { {&_swigt__p_const_fedge_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_const_point_iterator[] = { {&_swigt__p_const_point_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_const_reference[] = { {&_swigt__p_const_reference, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_const_vertex_iterator[] = { {&_swigt__p_const_vertex_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_difference_type[] = { {&_swigt__p_difference_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_directedViewEdge[] = { {&_swigt__p_directedViewEdge, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_double[] = { {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_edge_iterator[] = { {&_swigt__p_edge_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_edge_pointers_container[] = { {&_swigt__p_edge_pointers_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_edges_container[] = { {&_swigt__p_edges_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_fedge_iterator[] = { {&_swigt__p_fedge_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_fedges_container[] = { {&_swigt__p_fedges_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_float[] = { {&_swigt__p_float, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_id_type[] = { {&_swigt__p_id_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ltstr[] = { {&_swigt__p_ltstr, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mapsMap[] = { {&_swigt__p_mapsMap, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_occluder_container__const_iterator[] = { {&_swigt__p_occluder_container__const_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_PyObject[] = { {&_swigt__p_p_PyObject, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_point_iterator[] = { {&_swigt__p_point_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_point_type[] = { {&_swigt__p_point_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_reference[] = { {&_swigt__p_reference, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_setTVecMat__Vec3Tdouble_t_t[] = { {&_swigt__p_setTVecMat__Vec3Tdouble_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_size_type[] = { {&_swigt__p_size_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__invalid_argument[] = { {&_swigt__p_std__invalid_argument, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__pairTViewEdge_p_bool_t[] = { {&_swigt__p_std__pairTViewEdge_p_bool_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t[] = { {&_swigt__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__allocator_type[] = { {&_swigt__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTMaterial_std__allocatorTMaterial_t_t[] = { {&_swigt__p_std__vectorTMaterial_std__allocatorTMaterial_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t[] = { {&_swigt__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__allocator_type[] = { {&_swigt__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t[] = { {&_swigt__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__allocator_type[] = { {&_swigt__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTTVertex_p_std__allocatorTTVertex_p_t_t[] = { {&_swigt__p_std__vectorTTVertex_p_std__allocatorTTVertex_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTVecMat__Vec2Tdouble_t_std__allocatorTVecMat__Vec2Tdouble_t_t_t[] = { {&_swigt__p_std__vectorTVecMat__Vec2Tdouble_t_std__allocatorTVecMat__Vec2Tdouble_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t[] = { {&_swigt__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__allocator_type[] = { {&_swigt__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t[] = { {&_swigt__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__allocator_type[] = { {&_swigt__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t[] = { {&_swigt__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__allocator_type[] = { {&_swigt__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTint_std__allocatorTint_t_t[] = { {&_swigt__p_std__vectorTint_std__allocatorTint_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTint_std__allocatorTint_t_t__allocator_type[] = { {&_swigt__p_std__vectorTint_std__allocatorTint_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t[] = { {&_swigt__p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t[] = { {&_swigt__p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svertices_container[] = { {&_swigt__p_svertices_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_swig__PySwigIterator[] = { {&_swigt__p_swig__PySwigIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_unsigned_short[] = { {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_vertex_container[] = { {&_swigt__p_vertex_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_vertex_iterator[] = { {&_swigt__p_vertex_iterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_vertex_type[] = { {&_swigt__p_vertex_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_viewedge_container[] = { {&_swigt__p_viewedge_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_viewedges_container[] = { {&_swigt__p_viewedges_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_viewshapes_container[] = { {&_swigt__p_viewshapes_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_viewvertices_container[] = { {&_swigt__p_viewvertices_container, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_void[] = { {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type[] = { {&_swigt__p_FEdge, 0, 0, 0}, {&_swigt__p_FEdgeSharp, _p_FEdgeSharpTo_p_FEdge, 0, 0}, {&_swigt__p_FEdgeSmooth, _p_FEdgeSmoothTo_p_FEdge, 0, 0}, {&_swigt__std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type[] = { {&_swigt__std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type, 0, 0, 0}, {&_swigt__p_SVertex, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type[] = { {&_swigt__p_StrokeShaders__ConstrainedIncreasingThicknessShader, _p_StrokeShaders__ConstrainedIncreasingThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type, 0, 0, 0}, {&_swigt__p_StrokeShader, 0, 0, 0}, {&_swigt__p_StrokeShaders__ColorNoiseShader, _p_StrokeShaders__ColorNoiseShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ThicknessNoiseShader, _p_StrokeShaders__ThicknessNoiseShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__LengthDependingThicknessShader, _p_StrokeShaders__LengthDependingThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__IncreasingThicknessShader, _p_StrokeShaders__IncreasingThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ConstantExternThicknessShader, _p_StrokeShaders__ConstantExternThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ConstantThicknessShader, _p_StrokeShaders__ConstantThicknessShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__StrokeTextureShader, _p_StrokeShaders__StrokeTextureShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__SamplingShader, _p_StrokeShaders__SamplingShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__BSplineShader, _p_StrokeShaders__BSplineShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__BezierCurveShader, _p_StrokeShaders__BezierCurveShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__InflateShader, _p_StrokeShaders__InflateShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__GuidingLinesShader, _p_StrokeShaders__GuidingLinesShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__streamShader, _p_StrokeShaders__streamShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__fstreamShader, _p_StrokeShaders__fstreamShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_CalligraphicShader, _p_CalligraphicShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_SpatialNoiseShader, _p_SpatialNoiseShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_SmoothingShader, _p_SmoothingShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__TextureAssignerShader, _p_StrokeShaders__TextureAssignerShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__CalligraphicColorShader, _p_StrokeShaders__CalligraphicColorShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__MaterialColorShader, _p_StrokeShaders__MaterialColorShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ColorVariationPatternShader, _p_StrokeShaders__ColorVariationPatternShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__IncreasingColorShader, _p_StrokeShaders__IncreasingColorShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ConstantColorShader, _p_StrokeShaders__ConstantColorShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ThicknessVariationPatternShader, _p_StrokeShaders__ThicknessVariationPatternShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__BackboneStretcherShader, _p_StrokeShaders__BackboneStretcherShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__ExternalContourStretcherShader, _p_StrokeShaders__ExternalContourStretcherShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__PolygonalizationShader, _p_StrokeShaders__PolygonalizationShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_StrokeShaders__TipRemoverShader, _p_StrokeShaders__TipRemoverShaderTo_p_StrokeShader, 0, 0}, {&_swigt__p_OmissionShader, _p_OmissionShaderTo_p_StrokeShader, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type[] = { {&_swigt__std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type, 0, 0, 0}, {&_swigt__p_ViewEdge, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type[] = { {&_swigt__p_ViewShape, 0, 0, 0}, {&_swigt__std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type[] = { {&_swigt__p_TVertex, _p_TVertexTo_p_ViewVertex, 0, 0}, {&_swigt__p_NonTVertex, _p_NonTVertexTo_p_ViewVertex, 0, 0}, {&_swigt__std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type, 0, 0, 0}, {&_swigt__p_ViewVertex, 0, 0, 0},{0, 0, 0, 0}};
+
+static swig_cast_info *swig_cast_initial[] = {
+ _swigc__p_AdjacencyIterator,
+ _swigc__p_BBoxTVecMat__Vec3Tdouble_t_t,
+ _swigc__p_BinaryPredicate0D,
+ _swigc__p_BinaryPredicate1D,
+ _swigc__p_CalligraphicShader,
+ _swigc__p_Canvas,
+ _swigc__p_Chain,
+ _swigc__p_ChainPredicateIterator,
+ _swigc__p_ChainSilhouetteIterator,
+ _swigc__p_ChainingIterator,
+ _swigc__p_CurvatureInfo,
+ _swigc__p_Curve,
+ _swigc__p_CurveInternal__CurvePointIterator,
+ _swigc__p_CurvePoint,
+ _swigc__p_Curve__vertex_container__iterator,
+ _swigc__p_FEdge,
+ _swigc__p_FEdgeInternal__SVertexIterator,
+ _swigc__p_FEdgeSharp,
+ _swigc__p_FEdgeSmooth,
+ _swigc__p_Functions0D__Curvature2DAngleF0D,
+ _swigc__p_Functions0D__CurveNatureF0D,
+ _swigc__p_Functions0D__DensityF0D,
+ _swigc__p_Functions0D__GetCurvilinearAbscissaF0D,
+ _swigc__p_Functions0D__GetOccludeeF0D,
+ _swigc__p_Functions0D__GetOccludersF0D,
+ _swigc__p_Functions0D__GetParameterF0D,
+ _swigc__p_Functions0D__GetProjectedXF0D,
+ _swigc__p_Functions0D__GetProjectedYF0D,
+ _swigc__p_Functions0D__GetProjectedZF0D,
+ _swigc__p_Functions0D__GetShapeF0D,
+ _swigc__p_Functions0D__GetViewMapGradientNormF0D,
+ _swigc__p_Functions0D__GetXF0D,
+ _swigc__p_Functions0D__GetYF0D,
+ _swigc__p_Functions0D__GetZF0D,
+ _swigc__p_Functions0D__LocalAverageDepthF0D,
+ _swigc__p_Functions0D__MaterialF0D,
+ _swigc__p_Functions0D__Normal2DF0D,
+ _swigc__p_Functions0D__QuantitativeInvisibilityF0D,
+ _swigc__p_Functions0D__ReadCompleteViewMapPixelF0D,
+ _swigc__p_Functions0D__ReadMapPixelF0D,
+ _swigc__p_Functions0D__ReadSteerableViewMapPixelF0D,
+ _swigc__p_Functions0D__ShapeIdF0D,
+ _swigc__p_Functions0D__VertexOrientation2DF0D,
+ _swigc__p_Functions0D__VertexOrientation3DF0D,
+ _swigc__p_Functions0D__ZDiscontinuityF0D,
+ _swigc__p_Functions1D__ChainingTimeStampF1D,
+ _swigc__p_Functions1D__Curvature2DAngleF1D,
+ _swigc__p_Functions1D__CurveNatureF1D,
+ _swigc__p_Functions1D__DensityF1D,
+ _swigc__p_Functions1D__GetCompleteViewMapDensityF1D,
+ _swigc__p_Functions1D__GetDirectionalViewMapDensityF1D,
+ _swigc__p_Functions1D__GetOccludeeF1D,
+ _swigc__p_Functions1D__GetOccludersF1D,
+ _swigc__p_Functions1D__GetProjectedXF1D,
+ _swigc__p_Functions1D__GetProjectedYF1D,
+ _swigc__p_Functions1D__GetProjectedZF1D,
+ _swigc__p_Functions1D__GetShapeF1D,
+ _swigc__p_Functions1D__GetSteerableViewMapDensityF1D,
+ _swigc__p_Functions1D__GetViewMapGradientNormF1D,
+ _swigc__p_Functions1D__GetXF1D,
+ _swigc__p_Functions1D__GetYF1D,
+ _swigc__p_Functions1D__GetZF1D,
+ _swigc__p_Functions1D__IncrementChainingTimeStampF1D,
+ _swigc__p_Functions1D__LocalAverageDepthF1D,
+ _swigc__p_Functions1D__Normal2DF1D,
+ _swigc__p_Functions1D__Orientation2DF1D,
+ _swigc__p_Functions1D__Orientation3DF1D,
+ _swigc__p_Functions1D__QuantitativeInvisibilityF1D,
+ _swigc__p_Functions1D__TimeStampF1D,
+ _swigc__p_Functions1D__ZDiscontinuityF1D,
+ _swigc__p_GrayImage,
+ _swigc__p_I1DContainer,
+ _swigc__p_Id,
+ _swigc__p_IntegrationType,
+ _swigc__p_Interface0D,
+ _swigc__p_Interface0DIterator,
+ _swigc__p_Interface0DIteratorNested,
+ _swigc__p_Interface1D,
+ _swigc__p_Material,
+ _swigc__p_MediumType,
+ _swigc__p_Module,
+ _swigc__p_Noise,
+ _swigc__p_NonTVertex,
+ _swigc__p_OmissionShader,
+ _swigc__p_Omitter,
+ _swigc__p_Operators,
+ _swigc__p_Point,
+ _swigc__p_Polygon3r,
+ _swigc__p_Predicates0D__FalseUP0D,
+ _swigc__p_Predicates0D__TrueUP0D,
+ _swigc__p_Predicates1D__ContourUP1D,
+ _swigc__p_Predicates1D__DensityLowerThanUP1D,
+ _swigc__p_Predicates1D__EqualToChainingTimeStampUP1D,
+ _swigc__p_Predicates1D__EqualToTimeStampUP1D,
+ _swigc__p_Predicates1D__ExternalContourUP1D,
+ _swigc__p_Predicates1D__FalseBP1D,
+ _swigc__p_Predicates1D__FalseUP1D,
+ _swigc__p_Predicates1D__Length2DBP1D,
+ _swigc__p_Predicates1D__QuantitativeInvisibilityUP1D,
+ _swigc__p_Predicates1D__SameShapeIdBP1D,
+ _swigc__p_Predicates1D__ShapeUP1D,
+ _swigc__p_Predicates1D__TrueBP1D,
+ _swigc__p_Predicates1D__TrueUP1D,
+ _swigc__p_Predicates1D__ViewMapGradientNormBP1D,
+ _swigc__p_RGBImage,
+ _swigc__p_ReturnedValueType,
+ _swigc__p_SShape,
+ _swigc__p_SVertex,
+ _swigc__p_SVertex__fedges_container__iterator,
+ _swigc__p_Smoother,
+ _swigc__p_SmoothingShader,
+ _swigc__p_SpatialNoiseShader,
+ _swigc__p_SteerableViewMap,
+ _swigc__p_Stroke,
+ _swigc__p_StrokeAttribute,
+ _swigc__p_StrokeInternal__StrokeVertexIterator,
+ _swigc__p_StrokeLayer,
+ _swigc__p_StrokeRenderer,
+ _swigc__p_StrokeShader,
+ _swigc__p_StrokeShaders__BSplineShader,
+ _swigc__p_StrokeShaders__BackboneStretcherShader,
+ _swigc__p_StrokeShaders__BezierCurveShader,
+ _swigc__p_StrokeShaders__CalligraphicColorShader,
+ _swigc__p_StrokeShaders__ColorNoiseShader,
+ _swigc__p_StrokeShaders__ColorVariationPatternShader,
+ _swigc__p_StrokeShaders__ConstantColorShader,
+ _swigc__p_StrokeShaders__ConstantExternThicknessShader,
+ _swigc__p_StrokeShaders__ConstantThicknessShader,
+ _swigc__p_StrokeShaders__ConstrainedIncreasingThicknessShader,
+ _swigc__p_StrokeShaders__ExternalContourStretcherShader,
+ _swigc__p_StrokeShaders__GuidingLinesShader,
+ _swigc__p_StrokeShaders__IncreasingColorShader,
+ _swigc__p_StrokeShaders__IncreasingThicknessShader,
+ _swigc__p_StrokeShaders__InflateShader,
+ _swigc__p_StrokeShaders__LengthDependingThicknessShader,
+ _swigc__p_StrokeShaders__MaterialColorShader,
+ _swigc__p_StrokeShaders__PolygonalizationShader,
+ _swigc__p_StrokeShaders__SamplingShader,
+ _swigc__p_StrokeShaders__StrokeTextureShader,
+ _swigc__p_StrokeShaders__TextureAssignerShader,
+ _swigc__p_StrokeShaders__ThicknessNoiseShader,
+ _swigc__p_StrokeShaders__ThicknessVariationPatternShader,
+ _swigc__p_StrokeShaders__TipRemoverShader,
+ _swigc__p_StrokeShaders__fstreamShader,
+ _swigc__p_StrokeShaders__streamShader,
+ _swigc__p_StrokeVertex,
+ _swigc__p_Stroke__vertex_container__iterator,
+ _swigc__p_Stroke__viewedge_container__const_iterator,
+ _swigc__p_Stroke__viewedge_container__iterator,
+ _swigc__p_StrokesContainer,
+ _swigc__p_StyleModule,
+ _swigc__p_TVertex,
+ _swigc__p_UnaryFunction0DTId_t,
+ _swigc__p_UnaryFunction0DTVecMat__Vec2Tfloat_t_t,
+ _swigc__p_UnaryFunction0DTVecMat__Vec3Tfloat_t_t,
+ _swigc__p_UnaryFunction0DTViewShape_p_t,
+ _swigc__p_UnaryFunction0DTdouble_t,
+ _swigc__p_UnaryFunction0DTfloat_t,
+ _swigc__p_UnaryFunction0DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t,
+ _swigc__p_UnaryFunction0DTunsigned_int_t,
+ _swigc__p_UnaryFunction0DTvoid_t,
+ _swigc__p_UnaryFunction1DTVecMat__Vec2Tfloat_t_t,
+ _swigc__p_UnaryFunction1DTVecMat__Vec3Tfloat_t_t,
+ _swigc__p_UnaryFunction1DTdouble_t,
+ _swigc__p_UnaryFunction1DTfloat_t,
+ _swigc__p_UnaryFunction1DTstd__vectorTViewShape_p_std__allocatorTViewShape_p_t_t_t,
+ _swigc__p_UnaryFunction1DTunsigned_int_t,
+ _swigc__p_UnaryFunction1DTvoid_t,
+ _swigc__p_UnaryPredicate0D,
+ _swigc__p_UnaryPredicate1D,
+ _swigc__p_VecMat__HVec3Tdouble_t,
+ _swigc__p_VecMat__HVec3Tfloat_t,
+ _swigc__p_VecMat__HVec3Tint_t,
+ _swigc__p_VecMat__HVec3Tunsigned_int_t,
+ _swigc__p_VecMat__SquareMatrixTdouble_2_t,
+ _swigc__p_VecMat__SquareMatrixTdouble_3_t,
+ _swigc__p_VecMat__SquareMatrixTdouble_4_t,
+ _swigc__p_VecMat__SquareMatrixTfloat_2_t,
+ _swigc__p_VecMat__SquareMatrixTfloat_3_t,
+ _swigc__p_VecMat__SquareMatrixTfloat_4_t,
+ _swigc__p_VecMat__SquareMatrixTint_2_t,
+ _swigc__p_VecMat__SquareMatrixTint_3_t,
+ _swigc__p_VecMat__SquareMatrixTint_4_t,
+ _swigc__p_VecMat__SquareMatrixTunsigned_int_2_t,
+ _swigc__p_VecMat__SquareMatrixTunsigned_int_3_t,
+ _swigc__p_VecMat__SquareMatrixTunsigned_int_4_t,
+ _swigc__p_VecMat__Vec2Tdouble_t,
+ _swigc__p_VecMat__Vec2Tfloat_t,
+ _swigc__p_VecMat__Vec2Tint_t,
+ _swigc__p_VecMat__Vec2Tunsigned_int_t,
+ _swigc__p_VecMat__Vec3Tdouble_t,
+ _swigc__p_VecMat__Vec3Tfloat_t,
+ _swigc__p_VecMat__Vec3Tint_t,
+ _swigc__p_VecMat__Vec3Tunsigned_int_t,
+ _swigc__p_VecMat__VecTdouble_2_t,
+ _swigc__p_VecMat__VecTdouble_3_t,
+ _swigc__p_VecMat__VecTfloat_2_t,
+ _swigc__p_VecMat__VecTfloat_3_t,
+ _swigc__p_VecMat__VecTint_2_t,
+ _swigc__p_VecMat__VecTint_3_t,
+ _swigc__p_VecMat__VecTunsigned_int_2_t,
+ _swigc__p_VecMat__VecTunsigned_int_3_t,
+ _swigc__p_Vertex,
+ _swigc__p_ViewEdge,
+ _swigc__p_ViewEdgeInternal__SVertexIterator,
+ _swigc__p_ViewEdgeInternal__ViewEdgeIterator,
+ _swigc__p_ViewMap,
+ _swigc__p_ViewShape,
+ _swigc__p_ViewVertex,
+ _swigc__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_const_traits_t,
+ _swigc__p_ViewVertexInternal__edge_iterator_baseTViewVertexInternal__edge_nonconst_traits_t,
+ _swigc__p_ViewVertexInternal__orientedViewEdgeIterator,
+ _swigc__p_ViewVertexInternal__orientedViewEdgeIterator__edge_pointers_container__iterator,
+ _swigc__p_ViewVertexInternal__orientedViewEdgeIterator__edges_container__iterator,
+ _swigc__p_allocator_type,
+ _swigc__p_char,
+ _swigc__p_const_edge_iterator,
+ _swigc__p_const_fedge_iterator,
+ _swigc__p_const_point_iterator,
+ _swigc__p_const_reference,
+ _swigc__p_const_vertex_iterator,
+ _swigc__p_difference_type,
+ _swigc__p_directedViewEdge,
+ _swigc__p_double,
+ _swigc__p_edge_iterator,
+ _swigc__p_edge_pointers_container,
+ _swigc__p_edges_container,
+ _swigc__p_fedge_iterator,
+ _swigc__p_fedges_container,
+ _swigc__p_float,
+ _swigc__p_id_type,
+ _swigc__p_int,
+ _swigc__p_ltstr,
+ _swigc__p_mapsMap,
+ _swigc__p_occluder_container__const_iterator,
+ _swigc__p_p_PyObject,
+ _swigc__p_point_iterator,
+ _swigc__p_point_type,
+ _swigc__p_reference,
+ _swigc__p_setTVecMat__Vec3Tdouble_t_t,
+ _swigc__p_size_type,
+ _swigc__p_std__invalid_argument,
+ _swigc__p_std__pairTViewEdge_p_bool_t,
+ _swigc__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t,
+ _swigc__p_std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__allocator_type,
+ _swigc__p_std__vectorTMaterial_std__allocatorTMaterial_t_t,
+ _swigc__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t,
+ _swigc__p_std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__allocator_type,
+ _swigc__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t,
+ _swigc__p_std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__allocator_type,
+ _swigc__p_std__vectorTTVertex_p_std__allocatorTTVertex_p_t_t,
+ _swigc__p_std__vectorTVecMat__Vec2Tdouble_t_std__allocatorTVecMat__Vec2Tdouble_t_t_t,
+ _swigc__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t,
+ _swigc__p_std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__allocator_type,
+ _swigc__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t,
+ _swigc__p_std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__allocator_type,
+ _swigc__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t,
+ _swigc__p_std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__allocator_type,
+ _swigc__p_std__vectorTint_std__allocatorTint_t_t,
+ _swigc__p_std__vectorTint_std__allocatorTint_t_t__allocator_type,
+ _swigc__p_std__vectorTstd__pairTViewEdge_p_bool_t_std__allocatorTstd__pairTViewEdge_p_bool_t_t_t,
+ _swigc__p_std__vectorTunsigned_int_std__allocatorTunsigned_int_t_t,
+ _swigc__p_svertices_container,
+ _swigc__p_swig__PySwigIterator,
+ _swigc__p_unsigned_int,
+ _swigc__p_unsigned_short,
+ _swigc__p_value_type,
+ _swigc__p_vertex_container,
+ _swigc__p_vertex_iterator,
+ _swigc__p_vertex_type,
+ _swigc__p_viewedge_container,
+ _swigc__p_viewedges_container,
+ _swigc__p_viewshapes_container,
+ _swigc__p_viewvertices_container,
+ _swigc__p_void,
+ _swigc__std__vectorTFEdge_p_std__allocatorTFEdge_p_t_t__value_type,
+ _swigc__std__vectorTSVertex_p_std__allocatorTSVertex_p_t_t__value_type,
+ _swigc__std__vectorTStrokeShader_p_std__allocatorTStrokeShader_p_t_t__value_type,
+ _swigc__std__vectorTViewEdge_p_std__allocatorTViewEdge_p_t_t__value_type,
+ _swigc__std__vectorTViewShape_p_std__allocatorTViewShape_p_t_t__value_type,
+ _swigc__std__vectorTViewVertex_p_std__allocatorTViewVertex_p_t_t__value_type,
+};
+
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
+
+static swig_const_info swig_const_table[] = {
+{0, 0, 0, 0.0, 0, 0}};
+
+#ifdef __cplusplus
+}
+#endif
+/* -----------------------------------------------------------------------------
+ * Type initialization:
+ * This problem is tough by the requirement that no dynamic
+ * memory is used. Also, since swig_type_info structures store pointers to
+ * swig_cast_info structures and swig_cast_info structures store pointers back
+ * to swig_type_info structures, we need some lookup code at initialization.
+ * The idea is that swig generates all the structures that are needed.
+ * The runtime then collects these partially filled structures.
+ * The SWIG_InitializeModule function takes these initial arrays out of
+ * swig_module, and does all the lookup, filling in the swig_module.types
+ * array with the correct data and linking the correct swig_cast_info
+ * structures together.
+ *
+ * The generated swig_type_info structures are assigned staticly to an initial
+ * array. We just loop through that array, and handle each type individually.
+ * First we lookup if this type has been already loaded, and if so, use the
+ * loaded structure instead of the generated one. Then we have to fill in the
+ * cast linked list. The cast data is initially stored in something like a
+ * two-dimensional array. Each row corresponds to a type (there are the same
+ * number of rows as there are in the swig_type_initial array). Each entry in
+ * a column is one of the swig_cast_info structures for that type.
+ * The cast_initial array is actually an array of arrays, because each row has
+ * a variable number of columns. So to actually build the cast linked list,
+ * we find the array of casts associated with the type, and loop through it
+ * adding the casts to the list. The one last trick we need to do is making
+ * sure the type pointer in the swig_cast_info struct is correct.
+ *
+ * First off, we lookup the cast->type name to see if it is already loaded.
+ * There are three cases to handle:
+ * 1) If the cast->type has already been loaded AND the type we are adding
+ * casting info to has not been loaded (it is in this module), THEN we
+ * replace the cast->type pointer with the type pointer that has already
+ * been loaded.
+ * 2) If BOTH types (the one we are adding casting info to, and the
+ * cast->type) are loaded, THEN the cast info has already been loaded by
+ * the previous module so we just ignore it.
+ * 3) Finally, if cast->type has not already been loaded, then we add that
+ * swig_cast_info to the linked list (because the cast->type) pointer will
+ * be correct.
+ * ----------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* c-mode */
+#endif
+#endif
+
+#if 0
+#define SWIGRUNTIME_DEBUG
+#endif
+
+
+SWIGRUNTIME void
+SWIG_InitializeModule(void *clientdata) {
+ size_t i;
+ swig_module_info *module_head, *iter;
+ int found;
+
+ clientdata = clientdata;
+
+ /* check to see if the circular list has been setup, if not, set it up */
+ if (swig_module.next==0) {
+ /* Initialize the swig_module */
+ swig_module.type_initial = swig_type_initial;
+ swig_module.cast_initial = swig_cast_initial;
+ swig_module.next = &swig_module;
+ }
+
+ /* Try and load any already created modules */
+ module_head = SWIG_GetModule(clientdata);
+ if (!module_head) {
+ /* This is the first module loaded for this interpreter */
+ /* so set the swig module into the interpreter */
+ SWIG_SetModule(clientdata, &swig_module);
+ module_head = &swig_module;
+ } else {
+ /* the interpreter has loaded a SWIG module, but has it loaded this one? */
+ found=0;
+ iter=module_head;
+ do {
+ if (iter==&swig_module) {
+ found=1;
+ break;
+ }
+ iter=iter->next;
+ } while (iter!= module_head);
+
+ /* if the is found in the list, then all is done and we may leave */
+ if (found) return;
+ /* otherwise we must add out module into the list */
+ swig_module.next = module_head->next;
+ module_head->next = &swig_module;
+ }
+
+ /* Now work on filling in swig_module.types */
+#ifdef SWIGRUNTIME_DEBUG
+ printf("SWIG_InitializeModule: size %d\n", swig_module.size);
+#endif
+ for (i = 0; i < swig_module.size; ++i) {
+ swig_type_info *type = 0;
+ swig_type_info *ret;
+ swig_cast_info *cast;
+
+#ifdef SWIGRUNTIME_DEBUG
+ printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
+#endif
+
+ /* if there is another module already loaded */
+ if (swig_module.next != &swig_module) {
+ type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
+ }
+ if (type) {
+ /* Overwrite clientdata field */
+#ifdef SWIGRUNTIME_DEBUG
+ printf("SWIG_InitializeModule: found type %s\n", type->name);
+#endif
+ if (swig_module.type_initial[i]->clientdata) {
+ type->clientdata = swig_module.type_initial[i]->clientdata;
+#ifdef SWIGRUNTIME_DEBUG
+ printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
+#endif
+ }
+ } else {
+ type = swig_module.type_initial[i];
+ }
+
+ /* Insert casting types */
+ cast = swig_module.cast_initial[i];
+ while (cast->type) {
+ /* Don't need to add information already in the list */
+ ret = 0;
+#ifdef SWIGRUNTIME_DEBUG
+ printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
+#endif
+ if (swig_module.next != &swig_module) {
+ ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
+#ifdef SWIGRUNTIME_DEBUG
+ if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
+#endif
+ }
+ if (ret) {
+ if (type == swig_module.type_initial[i]) {
+#ifdef SWIGRUNTIME_DEBUG
+ printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
+#endif
+ cast->type = ret;
+ ret = 0;
+ } else {
+ /* Check for casting already in the list */
+ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
+#ifdef SWIGRUNTIME_DEBUG
+ if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
+#endif
+ if (!ocast) ret = 0;
+ }
+ }
+
+ if (!ret) {
+#ifdef SWIGRUNTIME_DEBUG
+ printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
+#endif
+ if (type->cast) {
+ type->cast->prev = cast;
+ cast->next = type->cast;
+ }
+ type->cast = cast;
+ }
+ cast++;
+ }
+ /* Set entry in modules->types array equal to the type */
+ swig_module.types[i] = type;
+ }
+ swig_module.types[i] = 0;
+
+#ifdef SWIGRUNTIME_DEBUG
+ printf("**** SWIG_InitializeModule: Cast List ******\n");
+ for (i = 0; i < swig_module.size; ++i) {
+ int j = 0;
+ swig_cast_info *cast = swig_module.cast_initial[i];
+ printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
+ while (cast->type) {
+ printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
+ cast++;
+ ++j;
+ }
+ printf("---- Total casts: %d\n",j);
+ }
+ printf("**** SWIG_InitializeModule: Cast List ******\n");
+#endif
+}
+
+/* This function will propagate the clientdata field of type to
+* any new swig_type_info structures that have been added into the list
+* of equivalent types. It is like calling
+* SWIG_TypeClientData(type, clientdata) a second time.
+*/
+SWIGRUNTIME void
+SWIG_PropagateClientData(void) {
+ size_t i;
+ swig_cast_info *equiv;
+ static int init_run = 0;
+
+ if (init_run) return;
+ init_run = 1;
+
+ for (i = 0; i < swig_module.size; i++) {
+ if (swig_module.types[i]->clientdata) {
+ equiv = swig_module.types[i]->cast;
+ while (equiv) {
+ if (!equiv->converter) {
+ if (equiv->type && !equiv->type->clientdata)
+ SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
+ }
+ equiv = equiv->next;
+ }
+ }
+ }
+}
+
+#ifdef __cplusplus
+#if 0
+{
+ /* c-mode */
+#endif
+}
+#endif
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /* Python-specific SWIG API */
+#define SWIG_newvarlink() SWIG_Python_newvarlink()
+#define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr)
+#define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants)
+
+ /* -----------------------------------------------------------------------------
+ * global variable support code.
+ * ----------------------------------------------------------------------------- */
+
+ typedef struct swig_globalvar {
+ char *name; /* Name of global variable */
+ PyObject *(*get_attr)(void); /* Return the current value */
+ int (*set_attr)(PyObject *); /* Set the value */
+ struct swig_globalvar *next;
+ } swig_globalvar;
+
+ typedef struct swig_varlinkobject {
+ PyObject_HEAD
+ swig_globalvar *vars;
+ } swig_varlinkobject;
+
+ SWIGINTERN PyObject *
+ swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) {
+ return PyString_FromString("<Swig global variables>");
+ }
+
+ SWIGINTERN PyObject *
+ swig_varlink_str(swig_varlinkobject *v) {
+ PyObject *str = PyString_FromString("(");
+ swig_globalvar *var;
+ for (var = v->vars; var; var=var->next) {
+ PyString_ConcatAndDel(&str,PyString_FromString(var->name));
+ if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
+ }
+ PyString_ConcatAndDel(&str,PyString_FromString(")"));
+ return str;
+ }
+
+ SWIGINTERN int
+ swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) {
+ PyObject *str = swig_varlink_str(v);
+ fprintf(fp,"Swig global variables ");
+ fprintf(fp,"%s\n", PyString_AsString(str));
+ Py_DECREF(str);
+ return 0;
+ }
+
+ SWIGINTERN void
+ swig_varlink_dealloc(swig_varlinkobject *v) {
+ swig_globalvar *var = v->vars;
+ while (var) {
+ swig_globalvar *n = var->next;
+ free(var->name);
+ free(var);
+ var = n;
+ }
+ }
+
+ SWIGINTERN PyObject *
+ swig_varlink_getattr(swig_varlinkobject *v, char *n) {
+ PyObject *res = NULL;
+ swig_globalvar *var = v->vars;
+ while (var) {
+ if (strcmp(var->name,n) == 0) {
+ res = (*var->get_attr)();
+ break;
+ }
+ var = var->next;
+ }
+ if (res == NULL && !PyErr_Occurred()) {
+ PyErr_SetString(PyExc_NameError,"Unknown C global variable");
+ }
+ return res;
+ }
+
+ SWIGINTERN int
+ swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
+ int res = 1;
+ swig_globalvar *var = v->vars;
+ while (var) {
+ if (strcmp(var->name,n) == 0) {
+ res = (*var->set_attr)(p);
+ break;
+ }
+ var = var->next;
+ }
+ if (res == 1 && !PyErr_Occurred()) {
+ PyErr_SetString(PyExc_NameError,"Unknown C global variable");
+ }
+ return res;
+ }
+
+ SWIGINTERN PyTypeObject*
+ swig_varlink_type(void) {
+ static char varlink__doc__[] = "Swig var link object";
+ static PyTypeObject varlink_type;
+ static int type_init = 0;
+ if (!type_init) {
+ const PyTypeObject tmp
+ = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /* Number of items in variable part (ob_size) */
+ (char *)"swigvarlink", /* Type name (tp_name) */
+ sizeof(swig_varlinkobject), /* Basic size (tp_basicsize) */
+ 0, /* Itemsize (tp_itemsize) */
+ (destructor) swig_varlink_dealloc, /* Deallocator (tp_dealloc) */
+ (printfunc) swig_varlink_print, /* Print (tp_print) */
+ (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */
+ (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */
+ 0, /* tp_compare */
+ (reprfunc) swig_varlink_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ (reprfunc)swig_varlink_str, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ 0, /* tp_flags */
+ varlink__doc__, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+#if PY_VERSION_HEX >= 0x02020000
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
+#endif
+#if PY_VERSION_HEX >= 0x02030000
+ 0, /* tp_del */
+#endif
+#ifdef COUNT_ALLOCS
+ 0,0,0,0 /* tp_alloc -> tp_next */
+#endif
+ };
+ varlink_type = tmp;
+ varlink_type.ob_type = &PyType_Type;
+ type_init = 1;
+ }
+ return &varlink_type;
+ }
+
+ /* Create a variable linking object for use later */
+ SWIGINTERN PyObject *
+ SWIG_Python_newvarlink(void) {
+ swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
+ if (result) {
+ result->vars = 0;
+ }
+ return ((PyObject*) result);
+ }
+
+ SWIGINTERN void
+ SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
+ swig_varlinkobject *v = (swig_varlinkobject *) p;
+ swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
+ if (gv) {
+ size_t size = strlen(name)+1;
+ gv->name = (char *)malloc(size);
+ if (gv->name) {
+ strncpy(gv->name,name,size);
+ gv->get_attr = get_attr;
+ gv->set_attr = set_attr;
+ gv->next = v->vars;
+ }
+ }
+ v->vars = gv;
+ }
+
+ SWIGINTERN PyObject *
+ SWIG_globals(void) {
+ static PyObject *_SWIG_globals = 0;
+ if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink();
+ return _SWIG_globals;
+ }
+
+ /* -----------------------------------------------------------------------------
+ * constants/methods manipulation
+ * ----------------------------------------------------------------------------- */
+
+ /* Install Constants */
+ SWIGINTERN void
+ SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
+ PyObject *obj = 0;
+ size_t i;
+ for (i = 0; constants[i].type; ++i) {
+ switch(constants[i].type) {
+ case SWIG_PY_POINTER:
+ obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
+ break;
+ case SWIG_PY_BINARY:
+ obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
+ break;
+ default:
+ obj = 0;
+ break;
+ }
+ if (obj) {
+ PyDict_SetItemString(d, constants[i].name, obj);
+ Py_DECREF(obj);
+ }
+ }
+ }
+
+ /* -----------------------------------------------------------------------------*/
+ /* Fix SwigMethods to carry the callback ptrs when needed */
+ /* -----------------------------------------------------------------------------*/
+
+ SWIGINTERN void
+ SWIG_Python_FixMethods(PyMethodDef *methods,
+ swig_const_info *const_table,
+ swig_type_info **types,
+ swig_type_info **types_initial) {
+ size_t i;
+ for (i = 0; methods[i].ml_name; ++i) {
+ const char *c = methods[i].ml_doc;
+ if (c && (c = strstr(c, "swig_ptr: "))) {
+ int j;
+ swig_const_info *ci = 0;
+ const char *name = c + 10;
+ for (j = 0; const_table[j].type; ++j) {
+ if (strncmp(const_table[j].name, name,
+ strlen(const_table[j].name)) == 0) {
+ ci = &(const_table[j]);
+ break;
+ }
+ }
+ if (ci) {
+ size_t shift = (ci->ptype) - types;
+ swig_type_info *ty = types_initial[shift];
+ size_t ldoc = (c - methods[i].ml_doc);
+ size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
+ char *ndoc = (char*)malloc(ldoc + lptr + 10);
+ if (ndoc) {
+ char *buff = ndoc;
+ void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
+ if (ptr) {
+ strncpy(buff, methods[i].ml_doc, ldoc);
+ buff += ldoc;
+ strncpy(buff, "swig_ptr: ", 10);
+ buff += 10;
+ SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
+ methods[i].ml_doc = ndoc;
+ }
+ }
+ }
+ }
+ }
+ }
+
+#ifdef __cplusplus
+}
+#endif
+
+/* -----------------------------------------------------------------------------*
+ * Partial Init method
+ * -----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C"
+#endif
+SWIGEXPORT void SWIG_init(void) {
+ PyObject *m, *d;
+
+ /* Fix SwigMethods to carry the callback ptrs when needed */
+ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial);
+
+ m = Py_InitModule((char *) SWIG_name, SwigMethods);
+ d = PyModule_GetDict(m);
+
+ SWIG_InitializeModule(0);
+ SWIG_InstallConstants(d,swig_const_table);
+
+
+ SWIG_Python_SetConstant(d, "_Noise_B_",SWIG_From_int(static_cast< int >(0x100)));
+ PyDict_SetItemString(d,(char*)"cvar", SWIG_globals());
+ SWIG_addvarlink(SWIG_globals(),(char*)"POINT",POINT_get, POINT_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"S_VERTEX",S_VERTEX_get, S_VERTEX_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"VIEW_VERTEX",VIEW_VERTEX_get, VIEW_VERTEX_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"NON_T_VERTEX",NON_T_VERTEX_get, NON_T_VERTEX_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"T_VERTEX",T_VERTEX_get, T_VERTEX_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"CUSP",CUSP_get, CUSP_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"NO_FEATURE",NO_FEATURE_get, NO_FEATURE_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"SILHOUETTE",SILHOUETTE_get, SILHOUETTE_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"BORDER",BORDER_get, BORDER_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"CREASE",CREASE_get, CREASE_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"RIDGE",RIDGE_get, RIDGE_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"VALLEY",VALLEY_get, VALLEY_set);
+ SWIG_addvarlink(SWIG_globals(),(char*)"SUGGESTIVE_CONTOUR",SUGGESTIVE_CONTOUR_get, SUGGESTIVE_CONTOUR_set);
+ SWIG_Python_SetConstant(d, "MEAN",SWIG_From_int(static_cast< int >(MEAN)));
+ SWIG_Python_SetConstant(d, "MIN",SWIG_From_int(static_cast< int >(MIN)));
+ SWIG_Python_SetConstant(d, "MAX",SWIG_From_int(static_cast< int >(MAX)));
+ SWIG_Python_SetConstant(d, "FIRST",SWIG_From_int(static_cast< int >(FIRST)));
+ SWIG_Python_SetConstant(d, "LAST",SWIG_From_int(static_cast< int >(LAST)));
+ SWIG_Python_SetConstant(d, "Stroke_DRY_MEDIUM",SWIG_From_int(static_cast< int >(Stroke::DRY_MEDIUM)));
+ SWIG_Python_SetConstant(d, "Stroke_HUMID_MEDIUM",SWIG_From_int(static_cast< int >(Stroke::HUMID_MEDIUM)));
+ SWIG_Python_SetConstant(d, "Stroke_OPAQUE_MEDIUM",SWIG_From_int(static_cast< int >(Stroke::OPAQUE_MEDIUM)));
+ SWIG_Python_SetConstant(d, "Canvas_NB_STEERABLE_VIEWMAP",SWIG_From_int(static_cast< int >(Canvas::NB_STEERABLE_VIEWMAP)));
+}
+
diff --git a/source/blender/freestyle/intern/swig/ModuleWrapper.h b/source/blender/freestyle/intern/swig/ModuleWrapper.h
new file mode 100755
index 00000000000..06ca8c90f37
--- /dev/null
+++ b/source/blender/freestyle/intern/swig/ModuleWrapper.h
@@ -0,0 +1,1045 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.31
+ *
+ * This file is not intended to be easily readable and contains a number of
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG
+ * interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+#ifndef SWIG_Freestyle_WRAP_H_
+#define SWIG_Freestyle_WRAP_H_
+
+#include <map>
+#include <string>
+
+
+class SwigDirector_ViewEdgeViewEdgeIterator : public ViewEdgeInternal::ViewEdgeIterator, public Swig::Director {
+
+public:
+ SwigDirector_ViewEdgeViewEdgeIterator(PyObject *self, ViewEdge *begin = 0, bool orientation = true);
+ SwigDirector_ViewEdgeViewEdgeIterator(PyObject *self, ViewEdgeInternal::ViewEdgeIterator const &it);
+ virtual ~SwigDirector_ViewEdgeViewEdgeIterator();
+ virtual std::string getExactTypeName() const;
+ virtual ViewEdge *operator *();
+ virtual ViewEdge *operator ->();
+ virtual ViewEdgeInternal::ViewEdgeIterator &operator ++();
+ virtual ViewEdgeInternal::ViewEdgeIterator operator ++(int arg0);
+ virtual void increment();
+ virtual ViewEdgeInternal::ViewEdgeIterator &operator --();
+ virtual ViewEdgeInternal::ViewEdgeIterator operator --(int arg0);
+ virtual void decrement();
+ virtual bool isBegin() const;
+ virtual bool isEnd() const;
+ virtual bool operator ==(ViewEdgeInternal::ViewEdgeIterator &it) const;
+ virtual bool operator !=(ViewEdgeInternal::ViewEdgeIterator &it) const;
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class ViewEdgeViewEdgeIterator doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[9];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction0DVoid : public UnaryFunction0D<void >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction0DVoid(PyObject *self);
+ virtual ~SwigDirector_UnaryFunction0DVoid();
+ virtual std::string getName() const;
+ virtual void operator ()(Interface0DIterator &iter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction0DVoid doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction0DUnsigned : public UnaryFunction0D<unsigned int >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction0DUnsigned(PyObject *self);
+ virtual ~SwigDirector_UnaryFunction0DUnsigned();
+ virtual std::string getName() const;
+ virtual unsigned int operator ()(Interface0DIterator &iter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction0DUnsigned doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction0DFloat : public UnaryFunction0D<float >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction0DFloat(PyObject *self);
+ virtual ~SwigDirector_UnaryFunction0DFloat();
+ virtual std::string getName() const;
+ virtual float operator ()(Interface0DIterator &iter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction0DFloat doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction0DDouble : public UnaryFunction0D<double >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction0DDouble(PyObject *self);
+ virtual ~SwigDirector_UnaryFunction0DDouble();
+ virtual std::string getName() const;
+ virtual double operator ()(Interface0DIterator &iter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction0DDouble doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction0DVec2f : public UnaryFunction0D<Geometry::Vec2f >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction0DVec2f(PyObject *self);
+ virtual ~SwigDirector_UnaryFunction0DVec2f();
+ virtual std::string getName() const;
+ virtual VecMat::Vec2<float > operator ()(Interface0DIterator &iter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction0DVec2f doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction0DVec3f : public UnaryFunction0D<Geometry::Vec3f >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction0DVec3f(PyObject *self);
+ virtual ~SwigDirector_UnaryFunction0DVec3f();
+ virtual std::string getName() const;
+ virtual VecMat::Vec3<float > operator ()(Interface0DIterator &iter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction0DVec3f doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction0DId : public UnaryFunction0D<Id >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction0DId(PyObject *self);
+ virtual ~SwigDirector_UnaryFunction0DId();
+ virtual std::string getName() const;
+ virtual Id operator ()(Interface0DIterator &iter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction0DId doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction1DVoid : public UnaryFunction1D<void >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction1DVoid(PyObject *self);
+ SwigDirector_UnaryFunction1DVoid(PyObject *self, IntegrationType iType);
+ virtual ~SwigDirector_UnaryFunction1DVoid();
+ virtual std::string getName() const;
+ virtual void operator ()(Interface1D &inter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction1DVoid doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction1DUnsigned : public UnaryFunction1D<unsigned int >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction1DUnsigned(PyObject *self);
+ SwigDirector_UnaryFunction1DUnsigned(PyObject *self, IntegrationType iType);
+ virtual ~SwigDirector_UnaryFunction1DUnsigned();
+ virtual std::string getName() const;
+ virtual unsigned int operator ()(Interface1D &inter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction1DUnsigned doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction1DFloat : public UnaryFunction1D<float >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction1DFloat(PyObject *self);
+ SwigDirector_UnaryFunction1DFloat(PyObject *self, IntegrationType iType);
+ virtual ~SwigDirector_UnaryFunction1DFloat();
+ virtual std::string getName() const;
+ virtual float operator ()(Interface1D &inter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction1DFloat doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction1DDouble : public UnaryFunction1D<double >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction1DDouble(PyObject *self);
+ SwigDirector_UnaryFunction1DDouble(PyObject *self, IntegrationType iType);
+ virtual ~SwigDirector_UnaryFunction1DDouble();
+ virtual std::string getName() const;
+ virtual double operator ()(Interface1D &inter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction1DDouble doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction1DVec2f : public UnaryFunction1D<Geometry::Vec2f >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction1DVec2f(PyObject *self);
+ SwigDirector_UnaryFunction1DVec2f(PyObject *self, IntegrationType iType);
+ virtual ~SwigDirector_UnaryFunction1DVec2f();
+ virtual std::string getName() const;
+ virtual VecMat::Vec2<float > operator ()(Interface1D &inter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction1DVec2f doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryFunction1DVec3f : public UnaryFunction1D<Geometry::Vec3f >, public Swig::Director {
+
+public:
+ SwigDirector_UnaryFunction1DVec3f(PyObject *self);
+ SwigDirector_UnaryFunction1DVec3f(PyObject *self, IntegrationType iType);
+ virtual ~SwigDirector_UnaryFunction1DVec3f();
+ virtual std::string getName() const;
+ virtual VecMat::Vec3<float > operator ()(Interface1D &inter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryFunction1DVec3f doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_ChainingIterator : public ChainingIterator, public Swig::Director {
+
+public:
+ SwigDirector_ChainingIterator(PyObject *self, bool iRestrictToSelection = true, bool iRestrictToUnvisited = true, ViewEdge *begin = 0, bool orientation = true);
+ SwigDirector_ChainingIterator(PyObject *self, ChainingIterator const &brother);
+ virtual ~SwigDirector_ChainingIterator();
+ virtual std::string getExactTypeName() const;
+ virtual ViewEdge *operator *();
+ virtual ViewEdge *operator ->();
+ virtual ViewEdgeInternal::ViewEdgeIterator &operator ++();
+ virtual ViewEdgeInternal::ViewEdgeIterator operator ++(int arg0);
+ virtual void increment();
+ virtual ViewEdgeInternal::ViewEdgeIterator &operator --();
+ virtual ViewEdgeInternal::ViewEdgeIterator operator --(int arg0);
+ virtual void decrement();
+ virtual bool isBegin() const;
+ virtual bool isEnd() const;
+ virtual bool operator ==(ViewEdgeInternal::ViewEdgeIterator &it) const;
+ virtual bool operator !=(ViewEdgeInternal::ViewEdgeIterator &it) const;
+ virtual void init();
+ virtual ViewEdge *traverse(AdjacencyIterator const &it);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class ChainingIterator doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[11];
+#endif
+
+};
+
+
+class SwigDirector_ChainSilhouetteIterator : public ChainSilhouetteIterator, public Swig::Director {
+
+public:
+ SwigDirector_ChainSilhouetteIterator(PyObject *self, bool iRestrictToSelection = true, ViewEdge *begin = NULL, bool orientation = true);
+ SwigDirector_ChainSilhouetteIterator(PyObject *self, ChainSilhouetteIterator const &brother);
+ virtual ~SwigDirector_ChainSilhouetteIterator();
+ virtual std::string getExactTypeName() const;
+ virtual ViewEdge *operator *();
+ virtual ViewEdge *operator ->();
+ virtual ViewEdgeInternal::ViewEdgeIterator &operator ++();
+ virtual ViewEdgeInternal::ViewEdgeIterator operator ++(int arg0);
+ virtual void increment();
+ virtual ViewEdgeInternal::ViewEdgeIterator &operator --();
+ virtual ViewEdgeInternal::ViewEdgeIterator operator --(int arg0);
+ virtual void decrement();
+ virtual bool isBegin() const;
+ virtual bool isEnd() const;
+ virtual bool operator ==(ViewEdgeInternal::ViewEdgeIterator &it) const;
+ virtual bool operator !=(ViewEdgeInternal::ViewEdgeIterator &it) const;
+ virtual void init();
+ virtual ViewEdge *traverse(AdjacencyIterator const &it);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class ChainSilhouetteIterator doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[11];
+#endif
+
+};
+
+
+class SwigDirector_ChainPredicateIterator : public ChainPredicateIterator, public Swig::Director {
+
+public:
+ SwigDirector_ChainPredicateIterator(PyObject *self, bool iRestrictToSelection = true, bool iRestrictToUnvisited = true, ViewEdge *begin = NULL, bool orientation = true);
+ SwigDirector_ChainPredicateIterator(PyObject *self, UnaryPredicate1D &upred, BinaryPredicate1D &bpred, bool iRestrictToSelection = true, bool iRestrictToUnvisited = true, ViewEdge *begin = NULL, bool orientation = true);
+ SwigDirector_ChainPredicateIterator(PyObject *self, ChainPredicateIterator const &brother);
+ virtual ~SwigDirector_ChainPredicateIterator();
+ virtual std::string getExactTypeName() const;
+ virtual ViewEdge *operator *();
+ virtual ViewEdge *operator ->();
+ virtual ViewEdgeInternal::ViewEdgeIterator &operator ++();
+ virtual ViewEdgeInternal::ViewEdgeIterator operator ++(int arg0);
+ virtual void increment();
+ virtual ViewEdgeInternal::ViewEdgeIterator &operator --();
+ virtual ViewEdgeInternal::ViewEdgeIterator operator --(int arg0);
+ virtual void decrement();
+ virtual bool isBegin() const;
+ virtual bool isEnd() const;
+ virtual bool operator ==(ViewEdgeInternal::ViewEdgeIterator &it) const;
+ virtual bool operator !=(ViewEdgeInternal::ViewEdgeIterator &it) const;
+ virtual void init();
+ virtual ViewEdge *traverse(AdjacencyIterator const &it);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class ChainPredicateIterator doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[11];
+#endif
+
+};
+
+
+class SwigDirector_UnaryPredicate0D : public UnaryPredicate0D, public Swig::Director {
+
+public:
+ SwigDirector_UnaryPredicate0D(PyObject *self);
+ virtual ~SwigDirector_UnaryPredicate0D();
+ virtual std::string getName() const;
+ virtual bool operator ()(Interface0DIterator &it);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryPredicate0D doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_UnaryPredicate1D : public UnaryPredicate1D, public Swig::Director {
+
+public:
+ SwigDirector_UnaryPredicate1D(PyObject *self);
+ virtual ~SwigDirector_UnaryPredicate1D();
+ virtual std::string getName() const;
+ virtual bool operator ()(Interface1D &inter);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class UnaryPredicate1D doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_BinaryPredicate1D : public BinaryPredicate1D, public Swig::Director {
+
+public:
+ SwigDirector_BinaryPredicate1D(PyObject *self);
+ virtual ~SwigDirector_BinaryPredicate1D();
+ virtual std::string getName() const;
+ virtual bool operator ()(Interface1D &inter1, Interface1D &inter2);
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class BinaryPredicate1D doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+class SwigDirector_StrokeShader : public StrokeShader, public Swig::Director {
+
+public:
+ SwigDirector_StrokeShader(PyObject *self);
+ virtual ~SwigDirector_StrokeShader();
+ virtual std::string getName() const;
+ virtual void shade(Stroke &ioStroke) const;
+
+
+/* Internal Director utilities */
+public:
+ bool swig_get_inner(const char* name) const {
+ std::map<std::string, bool>::const_iterator iv = inner.find(name);
+ return (iv != inner.end() ? iv->second : false);
+ }
+
+ void swig_set_inner(const char* name, bool val) const
+ { inner[name] = val;}
+
+private:
+ mutable std::map<std::string, bool> inner;
+
+
+#if defined(SWIG_PYTHON_DIRECTOR_VTABLE)
+/* VTable implementation */
+ PyObject *swig_get_method(size_t method_index, const char *method_name) const {
+ PyObject *method = vtable[method_index];
+ if (!method) {
+ swig::PyObject_var name = PyString_FromString(method_name);
+ method = PyObject_GetAttr(swig_get_self(), name);
+ if (method == NULL) {
+ std::string msg = "Method in class StrokeShader doesn't exist, undefined ";
+ msg += method_name;
+ Swig::DirectorMethodException::raise(msg.c_str());
+ }
+ vtable[method_index] = method;
+ };
+ return method;
+ }
+private:
+ mutable swig::PyObject_var vtable[2];
+#endif
+
+};
+
+
+#endif
diff --git a/source/blender/freestyle/intern/system/BaseIterator.h b/source/blender/freestyle/intern/system/BaseIterator.h
new file mode 100755
index 00000000000..45cc19df4fe
--- /dev/null
+++ b/source/blender/freestyle/intern/system/BaseIterator.h
@@ -0,0 +1,90 @@
+//
+// Filename : BaseIterator.h
+// Author(s) : Stephane Grabli
+// Purpose : Classes defining the basic "Iterator" design pattern
+// Date of creation : 18/03/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef BASEITERATOR_H
+# define BASEITERATOR_H
+
+# include <iterator>
+
+// use for iterators defintions
+template <class Element>
+class Nonconst_traits;
+
+template <class Element>
+class Const_traits {
+public:
+ typedef Element value_type;
+ typedef const Element& reference;
+ typedef const Element* pointer;
+ typedef ptrdiff_t difference_type;
+ typedef Nonconst_traits<Element> Non_const_traits;
+};
+
+template <class Element>
+class Nonconst_traits {
+public:
+ typedef Element value_type;
+ typedef Element& reference;
+ typedef Element* pointer;
+ typedef ptrdiff_t difference_type;
+ typedef Nonconst_traits<Element> Non_const_traits;
+};
+
+class InputIteratorTag_Traits {
+public:
+ typedef std::input_iterator_tag iterator_category;
+};
+
+class BidirectionalIteratorTag_Traits {
+public:
+ typedef std::bidirectional_iterator_tag iterator_category;
+};
+
+template<class Traits, class IteratorTagTraits>
+class IteratorBase
+{
+public:
+
+ virtual ~IteratorBase() {}
+
+ virtual bool begin() const = 0;
+ virtual bool end() const = 0;
+
+ typedef typename IteratorTagTraits::iterator_category iterator_category;
+ typedef typename Traits::value_type value_type;
+ typedef typename Traits::difference_type difference_type;
+ typedef typename Traits::pointer pointer;
+ typedef typename Traits::reference reference;
+
+protected:
+
+ IteratorBase() {}
+};
+
+#endif // BASEITERATOR_H
diff --git a/source/blender/freestyle/intern/system/BaseObject.cpp b/source/blender/freestyle/intern/system/BaseObject.cpp
new file mode 100755
index 00000000000..21d8a77b268
--- /dev/null
+++ b/source/blender/freestyle/intern/system/BaseObject.cpp
@@ -0,0 +1 @@
+#include "BaseObject.h" \ No newline at end of file
diff --git a/source/blender/freestyle/intern/system/BaseObject.h b/source/blender/freestyle/intern/system/BaseObject.h
new file mode 100755
index 00000000000..a8515f98385
--- /dev/null
+++ b/source/blender/freestyle/intern/system/BaseObject.h
@@ -0,0 +1,73 @@
+//
+// Filename : BaseObject.h
+// Author(s) : Stephane Grabli
+// Purpose : Base Class for most shared objects (Node, Rep).
+// Defines the addRef, release system.
+// Inspired by COM IUnknown system.
+// Date of creation : 06/02/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef BASEOBJECT_H
+# define BASEOBJECT_H
+
+#include "FreestyleConfig.h"
+
+class LIB_SYSTEM_EXPORT BaseObject
+{
+public:
+
+ inline BaseObject() {
+ _ref_counter = 0;
+ }
+
+ virtual ~BaseObject() {}
+
+ /*! At least makes a release on this.
+ * The BaseObject::destroy method must be
+ * explicitely called at the end of any
+ * overloaded destroy
+ */
+ virtual int destroy() {
+ return release();
+ }
+
+ /*! Increments the reference counter */
+ inline int addRef() {
+ return ++_ref_counter;
+ }
+
+ /*! Decrements the reference counter */
+ inline int release() {
+ if (_ref_counter)
+ _ref_counter--;
+ return _ref_counter;
+ }
+
+private:
+
+ unsigned _ref_counter;
+};
+
+#endif // BASEOBJECT_H
diff --git a/source/blender/freestyle/intern/system/Cast.h b/source/blender/freestyle/intern/system/Cast.h
new file mode 100755
index 00000000000..15af767443e
--- /dev/null
+++ b/source/blender/freestyle/intern/system/Cast.h
@@ -0,0 +1,44 @@
+//
+// Filename : Cast.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Cast function
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef CAST_HPP
+# define CAST_HPP
+
+namespace Cast {
+
+ template <class T, class U>
+ U* cast(T* in) {
+ if (!in)
+ return NULL;
+ return dynamic_cast<U*>(in);
+ }
+
+} // end of namespace Cast
+
+#endif // CAST_HPP
diff --git a/source/blender/freestyle/intern/system/Exception.cpp b/source/blender/freestyle/intern/system/Exception.cpp
new file mode 100755
index 00000000000..d1d12d18297
--- /dev/null
+++ b/source/blender/freestyle/intern/system/Exception.cpp
@@ -0,0 +1,24 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "Exception.h"
+
+Exception::exception_type Exception::_exception = Exception::NO_EXCEPTION;
diff --git a/source/blender/freestyle/intern/system/Exception.h b/source/blender/freestyle/intern/system/Exception.h
new file mode 100755
index 00000000000..378de6b558f
--- /dev/null
+++ b/source/blender/freestyle/intern/system/Exception.h
@@ -0,0 +1,64 @@
+//
+// Filename : Exception.h
+// Author(s) : Stephane Grabli
+// Purpose : Singleton to manage exceptions
+// Date of creation : 10/01/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef EXCEPTION_H
+# define EXCEPTION_H
+
+# include "FreestyleConfig.h"
+
+class LIB_SYSTEM_EXPORT Exception
+{
+public:
+
+ typedef enum {
+ NO_EXCEPTION,
+ UNDEFINED
+ } exception_type;
+
+ static int getException() {
+ exception_type e = _exception;
+ _exception = NO_EXCEPTION;
+ return e;
+ }
+
+ static int raiseException(exception_type exception = UNDEFINED) {
+ _exception = exception;
+ return _exception;
+ }
+
+ static void reset() {
+ _exception = NO_EXCEPTION;
+ }
+
+private:
+
+ static exception_type _exception;
+};
+
+#endif // EXCEPTION_H
diff --git a/source/blender/freestyle/intern/system/FreestyleConfig.h b/source/blender/freestyle/intern/system/FreestyleConfig.h
new file mode 100755
index 00000000000..45bd00a402e
--- /dev/null
+++ b/source/blender/freestyle/intern/system/FreestyleConfig.h
@@ -0,0 +1,152 @@
+//
+// Filename : Config.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Configuration definitions
+// Date of creation : 25/02/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+#ifndef CONFIG_H
+# define CONFIG_H
+
+# include <string>
+
+using namespace std;
+
+namespace Config {
+
+ // Pi definition
+# ifndef M_PI
+# define M_PI 3.14159265
+# endif // M_PI
+
+ // Directory separators
+# ifdef WIN32
+ static const string DIR_SEP("\\");
+ static const string PATH_SEP(";");
+# else
+ static const string DIR_SEP("/");
+ static const string PATH_SEP(":");
+# endif // WIN32
+
+ // DLL import/export macros for Win32
+
+# ifdef WIN32
+# ifdef MAKE_LIB_SYSTEM_DLL
+# define LIB_SYSTEM_EXPORT __declspec(dllexport)
+# else
+# define LIB_SYSTEM_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_SYSTEM_DLL
+
+# ifdef MAKE_LIB_IMAGE_DLL
+# define LIB_IMAGE_EXPORT __declspec(dllexport)
+# else
+# define LIB_IMAGE_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_IMAGE_DLL
+
+# ifdef MAKE_LIB_GEOMETRY_DLL
+# define LIB_GEOMETRY_EXPORT __declspec(dllexport)
+# else
+# define LIB_GEOMETRY_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_GEOMETRY_DLL
+
+# ifdef MAKE_LIB_SCENE_GRAPH_DLL
+# define LIB_SCENE_GRAPH_EXPORT __declspec(dllexport)
+# else
+# define LIB_SCENE_GRAPH_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_SCENE_GRAPH_DLL
+
+# ifdef MAKE_LIB_WINGED_EDGE_DLL
+# define LIB_WINGED_EDGE_EXPORT __declspec(dllexport)
+# else
+# define LIB_WINGED_EDGE_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_WINGED_EDGE_DLL
+
+# ifdef MAKE_LIB_VIEW_MAP_DLL
+# define LIB_VIEW_MAP_EXPORT __declspec(dllexport)
+# else
+# define LIB_VIEW_MAP_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_VIEW_MAP_DLL
+
+# ifdef MAKE_LIB_STROKE_DLL
+# define LIB_STROKE_EXPORT __declspec(dllexport)
+# else
+# define LIB_STROKE_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_STROKE_DLL
+
+# ifdef MAKE_LIB_RENDERING_DLL
+# define LIB_RENDERING_EXPORT __declspec(dllexport)
+# else
+# define LIB_RENDERING_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_RENDERING_DLL
+
+# ifdef MAKE_LIB_WRAPPER_DLL
+# define LIB_WRAPPER_EXPORT __declspec(dllexport)
+# else
+# define LIB_WRAPPER_EXPORT __declspec(dllimport)
+# endif // MAKE_LIB_WRAPPER_DLL
+
+# else
+# ifndef LIB_SYSTEM_EXPORT
+# define LIB_SYSTEM_EXPORT
+# endif // LIB_SYSTEM_EXPORT
+
+# ifndef LIB_IMAGE_EXPORT
+# define LIB_IMAGE_EXPORT
+# endif // LIB_IMAGE_EXPORT
+
+# ifndef LIB_GEOMETRY_EXPORT
+# define LIB_GEOMETRY_EXPORT
+# endif // LIB_GEOMETRY_EXPORT
+
+# ifndef LIB_SCENE_GRAPH_EXPORT
+# define LIB_SCENE_GRAPH_EXPORT
+# endif // LIB_SCENE_GRAPH_EXPORT
+
+# ifndef LIB_WINGED_EDGE_EXPORT
+# define LIB_WINGED_EDGE_EXPORT
+# endif // LIB_WINGED_EDGE_EXPORT
+
+# ifndef LIB_VIEW_MAP_EXPORT
+# define LIB_VIEW_MAP_EXPORT
+# endif // LIB_VIEW_MAP_EXPORT
+
+# ifndef LIB_STROKE_EXPORT
+# define LIB_STROKE_EXPORT
+# endif // LIB_STROKE_EXPORT
+
+# ifndef LIB_RENDERING_EXPORT
+# define LIB_RENDERING_EXPORT
+# endif // LIB_RENDERING_EXPORT
+
+# ifndef LIB_WRAPPER_EXPORT
+# define LIB_WRAPPER_EXPORT
+# endif // LIB_WRAPPER_EXPORT
+
+# endif // WIN32
+
+} // end of namespace Config
+
+#endif // CONFIG_H
diff --git a/source/blender/freestyle/intern/system/Id.h b/source/blender/freestyle/intern/system/Id.h
new file mode 100755
index 00000000000..1f2206ed337
--- /dev/null
+++ b/source/blender/freestyle/intern/system/Id.h
@@ -0,0 +1,126 @@
+//
+// Filename : Id.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Identification system
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef ID_H
+# define ID_H
+
+/*! Class used to tag any object by an id .
+ * It is made of two unsigned integers.
+ */
+class Id
+{
+public:
+
+ typedef unsigned id_type;
+
+ /*! Default constructor */
+ Id() {
+ _first = 0;
+ _second = 0;
+ }
+
+ /*! Builds an Id from an integer.
+ * The second number is set to 0.
+ */
+ Id(id_type id) {
+ _first = id;
+ _second = 0;
+ }
+
+ /*! Builds the Id from the two numbers */
+ Id(id_type ifirst, id_type isecond) {
+ _first = ifirst;
+ _second = isecond;
+ }
+
+ /*! Copy constructor */
+ Id(const Id& iBrother) {
+ _first = iBrother._first;
+ _second = iBrother._second;
+ }
+
+ /*! Operator= */
+ Id& operator=(const Id& iBrother) {
+ _first = iBrother._first;
+ _second = iBrother._second;
+ return *this;
+ }
+
+ /*! Returns the first Id number */
+ id_type getFirst() const {
+ return _first;
+ }
+
+ /*! Returns the second Id number */
+ id_type getSecond() const {
+ return _second;
+ }
+
+ /*! Sets the first number constituing the Id */
+ void setFirst(id_type first) {
+ _first = first;
+ }
+
+ /*! Sets the second number constituing the Id */
+ void setSecond(id_type second) {
+ _second = second;
+ }
+
+ /*! Operator== */
+ bool operator==(const Id& id) const {
+ return ((_first == id._first) && (_second == id._second));
+ }
+
+ /*! Operator!= */
+ bool operator!=(const Id& id) const {
+ return !((*this)==id);
+ }
+
+ /*! Operator< */
+ bool operator<(const Id& id) const {
+ if (_first < id._first)
+ return true;
+ if (_first == id._first && _second < id._second)
+ return true;
+ return false;
+}
+
+private:
+
+ id_type _first;
+ id_type _second;
+};
+
+// stream operator
+inline std::ostream& operator<<(std::ostream& s, const Id& id) {
+ s << "[" << id.getFirst() << ", " << id.getSecond() << "]";
+ return s;
+}
+
+# endif // ID_H
diff --git a/source/blender/freestyle/intern/system/Interpreter.h b/source/blender/freestyle/intern/system/Interpreter.h
new file mode 100755
index 00000000000..ce603b17238
--- /dev/null
+++ b/source/blender/freestyle/intern/system/Interpreter.h
@@ -0,0 +1,56 @@
+//
+// Filename : Interpreter.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Base Class of all script interpreters
+// Date of creation : 17/04/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef INTERPRETER_H
+# define INTERPRETER_H
+
+# include <string>
+
+using namespace std;
+
+class LIB_SYSTEM_EXPORT Interpreter
+{
+ public:
+
+ Interpreter() { _language = "Unknown"; }
+
+ virtual int interpretCmd(const string& cmd) = 0;
+
+ virtual int interpretFile(const string& filename) = 0;
+
+ virtual string getLanguage() const { return _language; }
+
+ virtual void reset() = 0;
+
+ protected:
+
+ string _language;
+};
+
+#endif // INTERPRETER_H
diff --git a/source/blender/freestyle/intern/system/Precision.h b/source/blender/freestyle/intern/system/Precision.h
new file mode 100755
index 00000000000..24327a280df
--- /dev/null
+++ b/source/blender/freestyle/intern/system/Precision.h
@@ -0,0 +1,39 @@
+//
+// Filename : Precision.h
+// Author(s) : Stephane Grabli
+// Purpose : Define the float precision used in the program
+// Date of creation : 30/07/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef PRECISION_H
+# define PRECISION_H
+
+typedef double real;
+
+# ifndef SWIG
+static const real M_EPSILON = 0.00000001;
+# endif // SWIG
+
+#endif // PRECISION_H
diff --git a/source/blender/freestyle/intern/system/ProgressBar.h b/source/blender/freestyle/intern/system/ProgressBar.h
new file mode 100755
index 00000000000..5b61f936c90
--- /dev/null
+++ b/source/blender/freestyle/intern/system/ProgressBar.h
@@ -0,0 +1,85 @@
+//
+// Filename : ProgressBar.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to encapsulate a progress bar
+// Date of creation : 27/08/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef PROGRESSBAR_H
+# define PROGRESSBAR_H
+
+# include <string>
+
+using namespace std;
+
+class ProgressBar
+{
+public:
+
+ inline ProgressBar() {
+ _numtotalsteps = 0;
+ _progress = 0;
+ }
+
+ virtual ~ProgressBar() {}
+
+ virtual void reset() {
+ _numtotalsteps = 0;
+ _progress = 0;
+ }
+
+ virtual void setTotalSteps(unsigned n) {
+ _numtotalsteps = n;
+ }
+
+ virtual void setProgress(unsigned i) {
+ _progress = i;
+ }
+
+ virtual void setLabelText(const string& s) {
+ _label = s;
+ }
+
+ /*! accessors */
+ inline unsigned int getTotalSteps() const {
+ return _numtotalsteps;
+ }
+
+ inline unsigned int getProgress() const {
+ return _progress;
+ }
+
+ inline string getLabelText() const {
+ return _label;
+ }
+
+protected:
+
+ unsigned _numtotalsteps;
+ unsigned _progress;
+ string _label;
+};
+
+#endif // PROGRESSBAR_H
diff --git a/source/blender/freestyle/intern/system/PseudoNoise.cpp b/source/blender/freestyle/intern/system/PseudoNoise.cpp
new file mode 100755
index 00000000000..59332229ae2
--- /dev/null
+++ b/source/blender/freestyle/intern/system/PseudoNoise.cpp
@@ -0,0 +1,108 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <math.h>
+#include "RandGen.h"
+#include "PseudoNoise.h"
+
+static const unsigned NB_VALUE_NOISE = 512;
+
+real *PseudoNoise::_values;
+
+PseudoNoise::PseudoNoise ()
+{
+}
+
+void
+PseudoNoise::init (long seed)
+{
+ _values = new real[NB_VALUE_NOISE];
+ RandGen::srand48(seed);
+ for (int i=0; i<NB_VALUE_NOISE; i++)
+ _values[i] = -1.0 + 2.0 * RandGen::drand48();
+}
+
+real
+PseudoNoise::linearNoise (real x)
+{
+ int i = x*NB_VALUE_NOISE;
+ real x1=_values[i%NB_VALUE_NOISE], x2=_values[(i+1)%NB_VALUE_NOISE];
+ real t=x*real(NB_VALUE_NOISE)-real(i);
+ return x1*(1-t)+x2*t;
+}
+
+real
+LanczosWindowed(real t)
+{
+ if (fabs(t)>2) return 0;
+ if (fabs(t)<M_EPSILON) return 1.0;
+ return sin(M_PI*t)/(M_PI*t) * sin(M_PI*t/2.0)/(M_PI*t/2.0);
+}
+
+real
+PseudoNoise::smoothNoise (real x)
+{
+ int i = x*NB_VALUE_NOISE;
+ real t=x*real(NB_VALUE_NOISE)-real(i);
+ if (i - 1 < 0)
+ {
+ int plus=-i/NB_VALUE_NOISE;
+ i=i+NB_VALUE_NOISE*(plus+2);
+ t=(x+plus+2)*real(NB_VALUE_NOISE)-real(i);
+ }
+
+ real x1=_values[i%NB_VALUE_NOISE], x2=_values[(i+1)%NB_VALUE_NOISE];
+ real x0=_values[(i-1)%NB_VALUE_NOISE], x3=_values[(i+2)%NB_VALUE_NOISE];
+
+ real y0=LanczosWindowed(-1-t);
+ real y1=LanczosWindowed(-t);
+ real y2=LanczosWindowed(1-t);
+ real y3=LanczosWindowed(2-t);
+ // cerr<<"x0="<<x0<<" x1="<<x1<<" x2="<<x2<<" x3="<<x3<<endl;
+ // cerr<<"y0="<<y0<<" y1="<<y1<<" y2="<<y2<<" y3="<<y3<<" :";
+ return (x0*y0+x1*y1+x2*y2+x3*y3)/(y0+y1+y2+y3);
+}
+
+real
+PseudoNoise::turbulenceSmooth (real x, unsigned nbOctave)
+{
+ real y=0;
+ real k=1.0;
+ for (unsigned i=0; i<nbOctave; i++)
+ {
+ y=y+k*smoothNoise(x*k);
+ k=k/2.0;
+ }
+ return y;
+}
+
+real
+PseudoNoise::turbulenceLinear (real x, unsigned nbOctave)
+{
+ real y=0;
+ real k=1.0;
+ for (unsigned i=0; i<nbOctave; i++)
+ {
+ y=y+k*linearNoise(x*k);
+ k=k/2.0;
+ }
+ return y;
+}
diff --git a/source/blender/freestyle/intern/system/PseudoNoise.h b/source/blender/freestyle/intern/system/PseudoNoise.h
new file mode 100755
index 00000000000..43143865600
--- /dev/null
+++ b/source/blender/freestyle/intern/system/PseudoNoise.h
@@ -0,0 +1,58 @@
+//
+// Filename : PseudoNoise.h
+// Author(s) : Fredo Durand
+// Purpose : Class to define a pseudo Perlin noise
+// Date of creation : 16/06/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef PSEUDONOISE_H
+# define PSEUDONOISE_H
+
+# include "FreestyleConfig.h"
+# include "Precision.h"
+
+class LIB_SYSTEM_EXPORT PseudoNoise
+{
+public:
+
+ PseudoNoise ();
+
+ virtual ~PseudoNoise () {}
+
+ real smoothNoise (real x);
+ real linearNoise (real x);
+
+ real turbulenceSmooth (real x, unsigned nbOctave = 8);
+ real turbulenceLinear (real x, unsigned nbOctave = 8);
+
+ static void init (long seed);
+
+protected:
+
+ static real *_values;
+};
+
+#endif // PSEUDONOISE_H
+
diff --git a/source/blender/freestyle/intern/system/PythonInterpreter.cpp b/source/blender/freestyle/intern/system/PythonInterpreter.cpp
new file mode 100755
index 00000000000..821bd32b40b
--- /dev/null
+++ b/source/blender/freestyle/intern/system/PythonInterpreter.cpp
@@ -0,0 +1,25 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "PythonInterpreter.h"
+
+string PythonInterpreter::_path = "";
+bool PythonInterpreter::_initialized = false;
diff --git a/source/blender/freestyle/intern/system/PythonInterpreter.h b/source/blender/freestyle/intern/system/PythonInterpreter.h
new file mode 100755
index 00000000000..f9a573ffb86
--- /dev/null
+++ b/source/blender/freestyle/intern/system/PythonInterpreter.h
@@ -0,0 +1,111 @@
+//
+// Filename : PythonInterpreter.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Python Interpreter
+// Date of creation : 17/04/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef PYTHON_INTERPRETER_H
+# define PYTHON_INTERPRETER_H
+
+# include <iostream>
+# include <Python.h>
+# include "StringUtils.h"
+# include "Interpreter.h"
+
+class LIB_SYSTEM_EXPORT PythonInterpreter : public Interpreter
+{
+ public:
+
+ PythonInterpreter() {
+ _language = "Python";
+ Py_Initialize();
+ }
+
+ virtual ~PythonInterpreter() {
+ Py_Finalize();
+ }
+
+ int interpretCmd(const string& cmd) {
+ initPath();
+ char* c_cmd = strdup(cmd.c_str());
+ int err = PyRun_SimpleString(c_cmd);
+ free(c_cmd);
+ return err;
+ }
+
+ int interpretFile(const string& filename) {
+ initPath();
+ string cmd("execfile(\"" + filename + "\")");
+ char* c_cmd = strdup(cmd.c_str());
+ int err = PyRun_SimpleString(c_cmd);
+ free(c_cmd);
+ return err;
+ }
+
+ struct Options
+ {
+ static void setPythonPath(const string& path) {
+ _path = path;
+ }
+
+ static string getPythonPath() {
+ return _path;
+ }
+ };
+
+ void reset() {
+ Py_Finalize();
+ Py_Initialize();
+ _initialized = false;
+ }
+
+private:
+
+ static void initPath() {
+ if (_initialized)
+ return;
+ PyRun_SimpleString("import sys");
+ vector<string> pathnames;
+ StringUtils::getPathName(_path, "", pathnames);
+ string cmd;
+ char* c_cmd;
+ for (vector<string>::const_iterator it = pathnames.begin();
+ it != pathnames.end();
+ ++it) {
+ cmd = "sys.path.append(\"" + *it + "\")";
+ c_cmd = strdup(cmd.c_str());
+ PyRun_SimpleString(c_cmd);
+ free(c_cmd);
+ }
+ // PyRun_SimpleString("from Freestyle import *");
+ _initialized = true;
+ }
+
+ static bool _initialized;
+ static string _path;
+};
+
+#endif // PYTHON_INTERPRETER_H
diff --git a/source/blender/freestyle/intern/system/RandGen.cpp b/source/blender/freestyle/intern/system/RandGen.cpp
new file mode 100755
index 00000000000..a328cb7f583
--- /dev/null
+++ b/source/blender/freestyle/intern/system/RandGen.cpp
@@ -0,0 +1,86 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "RandGen.h"
+
+//
+// Macro definitions
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#define N 16
+#define MASK ((unsigned)(1 << (N - 1)) + (1 << (N - 1)) - 1)
+#define X0 0x330E
+#define X1 0xABCD
+#define X2 0x1234
+#define A0 0xE66D
+#define A1 0xDEEC
+#define A2 0x5
+#define C 0xB
+#define HI_BIT (1L << (2 * N - 1))
+
+#define LOW(x) ((unsigned)(x) & MASK)
+#define HIGH(x) LOW((x) >> N)
+#define MUL(x, y, z) { long l = (long)(x) * (long)(y); \
+ (z)[0] = LOW(l); (z)[1] = HIGH(l); }
+#define CARRY(x, y) ((unsigned long)((long)(x) + (long)(y)) > MASK)
+#define ADDEQU(x, y, z) (z = CARRY(x, (y)), x = LOW(x + (y)))
+#define SET3(x, x0, x1, x2) ((x)[0] = (x0), (x)[1] = (x1), (x)[2] = (x2))
+#define SETLOW(x, y, n) SET3(x, LOW((y)[n]), LOW((y)[(n)+1]), LOW((y)[(n)+2]))
+#define SEED(x0, x1, x2) (SET3(x, x0, x1, x2), SET3(a, A0, A1, A2), c = C)
+#define REST(v) for (i = 0; i < 3; i++) { xsubi[i] = x[i]; x[i] = temp[i]; } \
+ return (v);
+#define NEST(TYPE, f, F) TYPE f(register unsigned short *xsubi) { \
+ register int i; register TYPE v; unsigned temp[3]; \
+ for (i = 0; i < 3; i++) { temp[i] = x[i]; x[i] = LOW(xsubi[i]); } \
+ v = F(); REST(v); }
+
+static unsigned x[3] = { X0, X1, X2 }, a[3] = { A0, A1, A2 }, c = C;
+
+//
+// Methods implementation
+//
+///////////////////////////////////////////////////////////////////////////////
+
+real RandGen::drand48() {
+ static real two16m = 1.0 / (1L << N);
+ next();
+ return (two16m * (two16m * (two16m * x[0] + x[1]) + x[2]));
+}
+
+void RandGen::srand48(long seedval) {
+ SEED(X0, LOW(seedval), HIGH(seedval));
+}
+
+void RandGen::next() {
+ unsigned p[2], q[2], r[2], carry0, carry1;
+
+ MUL(a[0], x[0], p);
+ ADDEQU(p[0], c, carry0);
+ ADDEQU(p[1], carry0, carry1);
+ MUL(a[0], x[1], q);
+ ADDEQU(p[1], q[0], carry0);
+ MUL(a[1], x[0], r);
+ x[2] = LOW(carry0 + carry1 + CARRY(p[1], r[0]) + q[1] + r[1] +
+ a[0] * x[2] + a[1] * x[1] + a[2] * x[0]);
+ x[1] = LOW(p[1] + r[0]);
+ x[0] = LOW(p[0]);
+}
diff --git a/source/blender/freestyle/intern/system/RandGen.h b/source/blender/freestyle/intern/system/RandGen.h
new file mode 100755
index 00000000000..409d3b79609
--- /dev/null
+++ b/source/blender/freestyle/intern/system/RandGen.h
@@ -0,0 +1,48 @@
+//
+// Filename : RandGen.h
+// Author(s) : Fredo Durand
+// Purpose : Pseudo-random number generator
+// Date of creation : 20/05/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef RAND_GEN_H
+# define RAND_GEN_H
+
+# include "FreestyleConfig.h"
+# include "../system/Precision.h"
+
+class LIB_SYSTEM_EXPORT RandGen
+{
+public:
+
+ static real drand48();
+ static void srand48(long value);
+
+private:
+
+ static void next();
+};
+
+#endif // RAND_GEN_H
diff --git a/source/blender/freestyle/intern/system/StringUtils.cpp b/source/blender/freestyle/intern/system/StringUtils.cpp
new file mode 100755
index 00000000000..2af76feeb37
--- /dev/null
+++ b/source/blender/freestyle/intern/system/StringUtils.cpp
@@ -0,0 +1,46 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <qfileinfo.h>
+#include "FreestyleConfig.h"
+#include "StringUtils.h"
+
+namespace StringUtils {
+
+ void getPathName(const string& path, const string& base, vector<string>& pathnames) {
+ string dir;
+ unsigned size = path.size();
+ pathnames.push_back(base);
+ for (unsigned pos = 0, sep = path.find(Config::PATH_SEP, pos);
+ pos < size;
+ pos = sep + 1, sep = path.find(Config::PATH_SEP, pos)) {
+ if (sep == (unsigned)string::npos)
+ sep = size;
+ dir = path.substr(pos, sep - pos);
+ QFileInfo fi(dir.c_str());
+ string res = (const char*)fi.absoluteFilePath().toAscii();
+ if (!base.empty())
+ res += Config::DIR_SEP + base;
+ pathnames.push_back(res);
+ }
+ }
+
+} // end of namespace StringUtils
diff --git a/source/blender/freestyle/intern/system/StringUtils.h b/source/blender/freestyle/intern/system/StringUtils.h
new file mode 100755
index 00000000000..44adfc2b044
--- /dev/null
+++ b/source/blender/freestyle/intern/system/StringUtils.h
@@ -0,0 +1,51 @@
+//
+// Filename : StringUtils.h
+// Author(s) : Emmanuel Turquin
+// Purpose : String utilities
+// Date of creation : 20/05/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef STRING_UTILS_H
+# define STRING_UTILS_H
+
+# include <vector>
+# include <string>
+# include "FreestyleConfig.h"
+
+using namespace std;
+
+namespace StringUtils {
+
+ LIB_SYSTEM_EXPORT
+ void getPathName(const string& path, const string& base, vector<string>& pathnames);
+
+ // STL related
+ struct ltstr{
+ bool operator()(const char* s1, const char* s2) const{
+ return strcmp(s1, s2) < 0;
+ }
+};
+
+} // end of namespace StringUtils
+
+#endif // STRING_UTILS_H
diff --git a/source/blender/freestyle/intern/system/TimeStamp.cpp b/source/blender/freestyle/intern/system/TimeStamp.cpp
new file mode 100755
index 00000000000..c66e1131611
--- /dev/null
+++ b/source/blender/freestyle/intern/system/TimeStamp.cpp
@@ -0,0 +1,25 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TimeStamp.h"
+
+LIB_SYSTEM_EXPORT
+TimeStamp* TimeStamp::_instance = 0;
diff --git a/source/blender/freestyle/intern/system/TimeStamp.h b/source/blender/freestyle/intern/system/TimeStamp.h
new file mode 100755
index 00000000000..568a7851e30
--- /dev/null
+++ b/source/blender/freestyle/intern/system/TimeStamp.h
@@ -0,0 +1,71 @@
+//
+// Filename : TimeStamp.h
+// Author(s) : Stephane Grabli
+// Purpose : Class defining a singleton used as timestamp
+// Date of creation : 12/12/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef TIMESTAMP_H
+# define TIMESTAMP_H
+
+# include "FreestyleConfig.h"
+
+class LIB_SYSTEM_EXPORT TimeStamp
+{
+ public:
+
+ static inline TimeStamp* instance() {
+ if (_instance == 0)
+ _instance = new TimeStamp;
+ return _instance;
+ }
+
+ inline unsigned getTimeStamp() const {
+ return _time_stamp;
+ }
+
+ inline void increment() {
+ ++_time_stamp;
+ }
+
+ inline void reset() {
+ _time_stamp = 1;
+ }
+
+ protected:
+
+ TimeStamp() {
+ _time_stamp = 1;
+ }
+
+ TimeStamp(const TimeStamp&) {}
+
+ private:
+
+ static TimeStamp* _instance;
+ unsigned _time_stamp;
+};
+
+#endif // TIMESTAMP_H
diff --git a/source/blender/freestyle/intern/system/TimeUtils.h b/source/blender/freestyle/intern/system/TimeUtils.h
new file mode 100755
index 00000000000..99dd5b0a669
--- /dev/null
+++ b/source/blender/freestyle/intern/system/TimeUtils.h
@@ -0,0 +1,58 @@
+//
+// Filename : TimeUtils.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to measure ellapsed time
+// Date of creation : 10/04/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef TIMEUTILS_H
+# define TIMEUTILS_H
+
+#include <time.h>
+#include "FreestyleConfig.h"
+
+class Chronometer
+{
+ public:
+
+ inline Chronometer() {}
+ inline ~Chronometer() {}
+
+ inline clock_t start() {
+ _start = clock();
+ return _start;
+ }
+
+ inline double stop() {
+ clock_t stop = clock();
+ return (double)(stop - _start) / CLOCKS_PER_SEC ;
+ }
+
+ private:
+
+ clock_t _start;
+};
+
+#endif // TIMEUTILS_H
diff --git a/source/blender/freestyle/intern/system/src.pri b/source/blender/freestyle/intern/system/src.pri
new file mode 100755
index 00000000000..e7d69e142b4
--- /dev/null
+++ b/source/blender/freestyle/intern/system/src.pri
@@ -0,0 +1,30 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+SYSTEM_DIR = ../system
+
+SOURCES *= $${SYSTEM_DIR}/Exception.cpp \
+ $${SYSTEM_DIR}/PythonInterpreter.cpp \
+ $${SYSTEM_DIR}/RandGen.cpp \
+ $${SYSTEM_DIR}/StringUtils.cpp \
+ $${SYSTEM_DIR}/TimeStamp.cpp \
+ $${SYSTEM_DIR}/PseudoNoise.cpp \
+ $${SYSTEM_DIR}/BaseObject.cpp
+
+HEADERS *= $${SYSTEM_DIR}/BaseObject.h \
+ $${SYSTEM_DIR}/BaseIterator.h \
+ $${SYSTEM_DIR}/Cast.h \
+ $${SYSTEM_DIR}/FreestyleConfig.h \
+ $${SYSTEM_DIR}/Exception.h \
+ $${SYSTEM_DIR}/Id.h \
+ $${SYSTEM_DIR}/Interpreter.h \
+ $${SYSTEM_DIR}/ProgressBar.h \
+ $${SYSTEM_DIR}/PythonInterpreter.h \
+ $${SYSTEM_DIR}/RandGen.h \
+ $${SYSTEM_DIR}/StringUtils.h \
+ $${SYSTEM_DIR}/TimeStamp.h \
+ $${SYSTEM_DIR}/TimeUtils.h \
+ $${SYSTEM_DIR}/PseudoNoise.h \
+ $${SYSTEM_DIR}/Precision.h
diff --git a/source/blender/freestyle/intern/system/system.pro b/source/blender/freestyle/intern/system/system.pro
new file mode 100755
index 00000000000..495cdf47105
--- /dev/null
+++ b/source/blender/freestyle/intern/system/system.pro
@@ -0,0 +1,73 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+FOO_LIB_VERSION = $${APPVERSION_MAJ}$${APPVERSION_MID}
+TEMPLATE = lib
+TARGET = $${LIB_SYSTEM}
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= dll python$${PYTHON_VERSION_MAJ}.$${PYTHON_VERSION_MIN}
+QT += xml
+
+exists (../libconfig.pri) {
+ include (../libconfig.pri)
+}
+#
+# INCLUDE PATH
+#
+#######################################
+
+
+#
+# DEFINES
+#
+#######################################
+
+win32:DEFINES *= MAKE_LIB_SYSTEM_DLL
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build/
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+!win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}/lib
+win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+
+#win32:QMAKE_POST_LINK = "$$QMAKE_MOVE $${DESTDIR}/$${TARGET}$${LIBVERSION}.lib $${DESTDIR}\$${TARGET}$${FOO_LIB_VERSION}.lib"
+
+#
+# INSTALL
+#
+#######################################
+
+LIB_DIR = ../../lib
+# install library
+target.path = $$LIB_DIR
+# "make install" configuration options
+INSTALLS += target
+
+
+#
+# SOURCES & HEADERS
+#
+#######################################
+
+!static {
+ include(src.pri)
+}
+
diff --git a/source/blender/freestyle/intern/view_map/FEdgeXDetector.cpp b/source/blender/freestyle/intern/view_map/FEdgeXDetector.cpp
new file mode 100755
index 00000000000..628b3ad77aa
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/FEdgeXDetector.cpp
@@ -0,0 +1,677 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "FEdgeXDetector.h"
+#include "float.h"
+#include "../geometry/GeomUtils.h"
+#include <math.h>
+#include "../geometry/normal_cycle.h"
+
+void FEdgeXDetector::processShapes(WingedEdge& we) {
+ bool progressBarDisplay = false;
+ Vec3r Min, Max;
+ vector<WShape*> wshapes = we.getWShapes();
+ WXShape * wxs;
+
+ if(_pProgressBar != NULL) {
+ _pProgressBar->reset();
+ _pProgressBar->setLabelText("Detecting feature lines");
+ _pProgressBar->setTotalSteps(wshapes.size() * 3);
+ _pProgressBar->setProgress(0);
+ progressBarDisplay = true;
+ }
+
+ for(vector<WShape*>::const_iterator it = wshapes.begin();
+ it != wshapes.end();
+ it++){
+ wxs = dynamic_cast<WXShape*>(*it);
+ wxs->bbox(Min, Max);
+ _bbox_diagonal = (Max-Min).norm();
+ if(_changes){
+ vector<WFace*>& wfaces = wxs->GetFaceList();
+ for(vector<WFace*>::iterator wf=wfaces.begin(), wfend=wfaces.end();
+ wf!=wfend;
+ ++wf){
+ WXFace* wxf = dynamic_cast<WXFace*>(*wf);
+ wxf->Clear();
+ }
+ _computeViewIndependant = true;
+ } else if (!(wxs)->getComputeViewIndependantFlag()) {
+ wxs->Reset();
+ _computeViewIndependant = false;
+ } else {
+ _computeViewIndependant = true;
+ }
+ preProcessShape(wxs);
+ if (progressBarDisplay)
+ _pProgressBar->setProgress(_pProgressBar->getProgress() + 1);
+ processBorderShape(wxs);
+ processCreaseShape(wxs);
+ if(_computeRidgesAndValleys)
+ processRidgesAndValleysShape(wxs);
+ if(_computeSuggestiveContours)
+ processSuggestiveContourShape(wxs);
+ processSilhouetteShape(wxs);
+ if (progressBarDisplay)
+ _pProgressBar->setProgress(_pProgressBar->getProgress() + 1);
+
+ // build smooth edges:
+ buildSmoothEdges(wxs);
+
+ // Post processing for suggestive contours
+ if(_computeSuggestiveContours)
+ postProcessSuggestiveContourShape(wxs);
+ if (progressBarDisplay)
+ _pProgressBar->setProgress(_pProgressBar->getProgress() + 1);
+
+ wxs->setComputeViewIndependantFlag(false);
+ _computeViewIndependant = false;
+ _changes = false;
+
+ // reset user data
+ (*it)->ResetUserData();
+ }
+}
+
+// GENERAL STUFF
+////////////////
+void FEdgeXDetector::preProcessShape(WXShape* iWShape) {
+ _meanK1 = 0;
+ _meanKr = 0;
+ _minK1 = FLT_MAX;
+ _maxK1 = -FLT_MAX;
+ _minKr = FLT_MAX;
+ _maxKr = -FLT_MAX;
+ _nPoints = 0;
+ _meanEdgeSize = iWShape->getMeanEdgeSize();
+
+ vector<WFace*>& wfaces = iWShape->GetFaceList();
+ vector<WFace*>::iterator f,fend;
+ // view dependant stuff
+ for(f=wfaces.begin(), fend=wfaces.end();
+ f!=fend;
+ ++f){
+ preProcessFace((WXFace*)(*f));
+ }
+
+ vector<WVertex*>& wvertices = iWShape->GetVertexList();
+ for(vector<WVertex*>::iterator wv=wvertices.begin(), wvend=wvertices.end();
+ wv!=wvend;
+ ++wv){
+ // Compute curvatures
+ WXVertex * wxv = dynamic_cast<WXVertex*>(*wv);
+ computeCurvatures(wxv);
+ }
+ _meanK1 /= (real)(_nPoints);
+ _meanKr /= (real)(_nPoints);
+}
+
+void FEdgeXDetector::preProcessFace(WXFace *iFace){
+ Vec3r firstPoint = iFace->GetVertex(0)->GetVertex();
+ Vec3r N = iFace->GetNormal();
+
+ // Compute the dot product between V (=_Viewpoint - firstPoint) and N:
+ Vec3r V(_Viewpoint - firstPoint);
+ N.normalize();
+ V.normalize();
+ iFace->SetDotP(N * V);
+
+ // compute the distance between the face center and the viewpoint:
+ Vec3r dist_vec(iFace->center() - _Viewpoint);
+ iFace->SetZ(dist_vec.norm());
+}
+
+void FEdgeXDetector::computeCurvatures(WXVertex *vertex){
+ // CURVATURE LAYER
+ // store all the curvature datas for each vertex
+
+ real K1, K2, cos2theta, sin2theta;
+ Vec3r e1, n, v;
+ // one vertex curvature info :
+ CurvatureInfo *C;
+ float radius = _sphereRadius*_meanEdgeSize;
+
+ // view independant stuff
+ if(_computeViewIndependant){
+ C = new CurvatureInfo();
+ vertex->setCurvatures(C);
+ OGF::NormalCycle ncycle ;
+ ncycle.begin() ;
+ if(radius > 0) {
+ OGF::compute_curvature_tensor(vertex, radius, ncycle) ;
+ } else {
+ OGF::compute_curvature_tensor_one_ring(vertex, ncycle) ;
+ }
+ ncycle.end() ;
+ C->K1 = ncycle.kmin();
+ C->K2 = ncycle.kmax();
+ C->e1 = ncycle.Kmax(); //ncycle.kmin() * ncycle.Kmax();
+ C->e2 = ncycle.Kmin(); //ncycle.kmax() * ncycle.Kmin() ;
+
+ real absK1 = fabs(C->K1);
+ _meanK1 += absK1;
+ if(absK1 > _maxK1)
+ _maxK1 = absK1;
+ if(absK1 < _minK1)
+ _minK1 = absK1;
+ }
+ // view dependant
+ C = vertex->curvatures();
+ if(C == 0)
+ return;
+
+ // compute radial curvature :
+ n = C->e1 ^ C->e2;
+ v = _Viewpoint - vertex->GetVertex();
+ C->er = v - (v * n) * n;
+ C->er.normalize();
+ e1 = C->e1;
+ e1.normalize();
+ cos2theta = C->er * e1;
+ cos2theta *= cos2theta;
+ sin2theta = 1 - cos2theta;
+ C->Kr = C->K1 * cos2theta + C->K2 * sin2theta;
+ real absKr = fabs(C->Kr);
+ _meanKr += absKr;
+ if(absKr > _maxKr)
+ _maxKr = absKr;
+ if(absKr < _minKr)
+ _minKr = absKr;
+
+ ++_nPoints;
+}
+
+// SILHOUETTE
+/////////////
+void FEdgeXDetector::processSilhouetteShape(WXShape* iWShape) {
+ // Make a first pass on every polygons in order
+ // to compute all their silhouette relative values:
+ //------------------------------------------------
+ vector<WFace*>& wfaces = iWShape->GetFaceList();
+ vector<WFace*>::iterator f,fend;
+ for(f=wfaces.begin(), fend=wfaces.end();
+ f!=fend;
+ ++f)
+ {
+ ProcessSilhouetteFace((WXFace*)(*f));
+ }
+
+ // Make a pass on the edges to detect
+ // the silhouette edges that are not smooth
+ // --------------------
+ vector<WEdge*>::iterator we, weend;
+ vector<WEdge*> &wedges = iWShape->GetEdgeList();
+ for(we=wedges.begin(), weend=wedges.end();
+ we!=weend;
+ ++we)
+ {
+ ProcessSilhouetteEdge((WXEdge*)(*we));
+ }
+}
+
+void FEdgeXDetector::ProcessSilhouetteFace(WXFace *iFace)
+{
+
+ // SILHOUETTE LAYER
+ Vec3r normal;
+ // Compute the dot products between View direction and N at each vertex
+ // of the face:
+ Vec3r point;
+ int closestPointId = 0;
+ real dist, minDist = FLT_MAX;
+ int numVertices = iFace->numberOfVertices();
+ WXFaceLayer * faceLayer = new WXFaceLayer(iFace, Nature::SILHOUETTE, true);
+ for(int i=0; i<numVertices; i++){
+ point = iFace->GetVertex(i)->GetVertex();
+ normal = iFace->GetVertexNormal(i);
+ Vec3r V(_Viewpoint - point);
+ normal.normalize();
+ V.normalize();
+ real d = normal * V;
+ faceLayer->PushDotP(d);
+ // Find the point the closest to the viewpoint
+ Vec3r dist_vec(point - _Viewpoint);
+ dist = dist_vec.norm();
+ if(dist < minDist) {
+ minDist = dist;
+ closestPointId = i;
+ }
+ }
+ // Set the closest point id:
+ faceLayer->SetClosestPointIndex(closestPointId);
+ // Add this layer to the face:
+ iFace->AddSmoothLayer(faceLayer);
+}
+
+void FEdgeXDetector::ProcessSilhouetteEdge(WXEdge *iEdge)
+{
+ if(iEdge->nature() & Nature::BORDER)
+ return;
+ // SILHOUETTE ?
+ //-------------
+ WXFace * fA = (WXFace *)iEdge->GetaOEdge()->GetaFace();
+ WXFace * fB = (WXFace *)iEdge->GetaOEdge()->GetbFace();
+
+ if((fA->front())^(fB->front())){ // fA->visible XOR fB->visible (true if one is 0 and the other is 1)
+ // The only edges we want to set as silhouette edges in this
+ // way are the ones with 2 different normals for 1 vertex
+ // for these two faces
+ //--------------------
+ // In reality we only test the normals for 1 of the 2 vertices.
+ if(fA->GetVertexNormal(iEdge->GetaVertex()) == fB->GetVertexNormal(iEdge->GetaVertex()))
+ return;
+ iEdge->AddNature(Nature::SILHOUETTE);
+ if(fB->front())
+ iEdge->SetOrder(1);
+ else
+ iEdge->SetOrder(-1);
+ }
+}
+
+
+// BORDER
+/////////
+void FEdgeXDetector::processBorderShape(WXShape* iWShape) {
+
+ if(!_computeViewIndependant)
+ return;
+ // Make a pass on the edges to detect
+ // the BORDER
+ // --------------------
+ vector<WEdge*>::iterator we, weend;
+ vector<WEdge*> &wedges = iWShape->GetEdgeList();
+ for(we=wedges.begin(), weend=wedges.end();
+ we!=weend;
+ ++we){
+ ProcessBorderEdge((WXEdge*)(*we));
+ }
+}
+
+void FEdgeXDetector::ProcessBorderEdge(WXEdge *iEdge)
+{
+ // first check whether it is a border edge:
+ // BORDER ?
+ //---------
+ if(iEdge->GetaFace() == 0){
+ // it is a border edge
+ iEdge->AddNature(Nature::BORDER);
+ }
+}
+
+
+// CREASE
+/////////
+void FEdgeXDetector::processCreaseShape(WXShape* iWShape) {
+ if(!_computeViewIndependant)
+ return;
+
+ // Make a pass on the edges to detect
+ // the CREASE
+ // --------------------
+ vector<WEdge*>::iterator we, weend;
+ vector<WEdge*> &wedges = iWShape->GetEdgeList();
+ for(we=wedges.begin(), weend=wedges.end();
+ we!=weend;
+ ++we){
+ ProcessCreaseEdge((WXEdge*)(*we));
+ }
+}
+
+void FEdgeXDetector::ProcessCreaseEdge(WXEdge *iEdge)
+{
+ // CREASE ?
+ //---------
+ if(iEdge->nature() & Nature::BORDER)
+ return;
+ WXFace * fA = (WXFace *)iEdge->GetaOEdge()->GetaFace();
+ WXFace * fB = (WXFace *)iEdge->GetaOEdge()->GetbFace();
+
+ WVertex * aVertex = iEdge->GetaVertex();
+ if((fA->GetVertexNormal(aVertex) * fB->GetVertexNormal(aVertex)) <= 0.7) // angle of 140 degrees
+ iEdge->AddNature(Nature::CREASE);
+}
+
+// RIDGES AND VALLEYS
+/////////////////////
+
+void FEdgeXDetector::processRidgesAndValleysShape(WXShape* iWShape) {
+ // Don't forget to add the built layer to the face at the end
+ // of the ProcessFace:
+ //iFace->AddSmoothLayer(faceLayer);
+
+ if((!_computeViewIndependant))
+ return;
+
+ // Here the curvatures must already have been computed
+ vector<WFace*>& wfaces = iWShape->GetFaceList();
+ vector<WFace*>::iterator f, fend;
+ for(f=wfaces.begin(), fend=wfaces.end();
+ f!=fend;
+ ++f)
+ {
+ ProcessRidgeFace((WXFace*)(*f));
+ }
+}
+
+
+// RIDGES
+/////////
+
+void FEdgeXDetector::ProcessRidgeFace(WXFace *iFace)
+{
+ WXFaceLayer * flayer = new WXFaceLayer(iFace, Nature::RIDGE|Nature::VALLEY, false);
+ iFace->AddSmoothLayer(flayer);
+
+ unsigned int numVertices = iFace->numberOfVertices();
+ for(unsigned int i=0; i<numVertices; ++i){
+ WVertex *wv = iFace->GetVertex(i);
+ WXVertex * wxv = dynamic_cast<WXVertex*>(wv);
+ flayer->PushDotP(wxv->curvatures()->K1);
+ }
+
+ real threshold = 0;
+ //real threshold = _maxK1 - (_maxK1-_meanK1)/20.0;
+
+ if(flayer->nPosDotP()!=numVertices){
+ if((fabs(flayer->dotP(0)) < threshold) && (fabs(flayer->dotP(1)) < threshold) && (fabs(flayer->dotP(2)) < threshold)){
+ flayer->ReplaceDotP(0, 0);
+ flayer->ReplaceDotP(1, 0);
+ flayer->ReplaceDotP(2, 0);
+ }
+ }
+}
+
+// void FEdgeXDetector::ProcessRidgeFace(WXFace *iFace)
+// {
+
+// // RIDGE LAYER
+// // compute the RidgeFunction, that is the derivative of the ppal curvature
+// // along e1 at each vertex of the face
+
+// WVertex *v;
+// Vec3r v1v2;
+// real t;
+// vector<WXFaceLayer*> SmoothLayers;
+// WXFaceLayer *faceLayer;
+// Face_Curvature_Info *layer_info;
+// real K1_a(0), K1_b(0);
+// Vec3r Inter_a, Inter_b;
+
+// // find the ridge layer of the face
+// iFace->retrieveSmoothLayers(Nature::RIDGE, SmoothLayers);
+// if(SmoothLayers.size()!=1)
+// return;
+// faceLayer = SmoothLayers[0];
+// // retrieve the curvature info of this layer
+// layer_info = (Face_Curvature_Info *)faceLayer->userdata;
+
+// int numVertices = iFace->numberOfVertices();
+// for(int i=0; i<numVertices; i++){
+// v = iFace->GetVertex(i);
+// // vec_curvature_info[i] contains the curvature info of this vertex
+// Vec3r e2 = layer_info->vec_curvature_info[i]->K2*layer_info->vec_curvature_info[i]->e2;
+// Vec3r e1 = layer_info->vec_curvature_info[i]->K1*layer_info->vec_curvature_info[i]->e1;
+// e2.normalize();
+
+// WVertex::face_iterator fit = v->faces_begin();
+// WVertex::face_iterator fitend = v->faces_end();
+// for(; fit!=fitend; ++fit){
+// WXFace * wxf = dynamic_cast<WXFace*>(*fit);
+// WOEdge * oppositeEdge;
+// if(!(wxf->getOppositeEdge(v, oppositeEdge)))
+// continue;
+// v1v2 = oppositeEdge->GetbVertex()->GetVertex() - oppositeEdge->GetaVertex()->GetVertex();
+// GeomUtils::intersection_test res;
+// res = GeomUtils::intersectRayPlane(oppositeEdge->GetaVertex()->GetVertex(), v1v2,
+// e2, -(v->GetVertex()*e2),
+// t,1.e-06);
+// if((res == GeomUtils::DO_INTERSECT) && (t>=0.0) && (t<=1.0)){
+// vector<WXFaceLayer*> second_ridge_layer;
+// wxf->retrieveSmoothLayers(Nature::RIDGE, second_ridge_layer);
+// if(second_ridge_layer.size()!=1)
+// continue;
+// Face_Curvature_Info *second_layer_info = (Face_Curvature_Info*)second_ridge_layer[0]->userdata;
+
+// unsigned index1 = wxf->GetIndex(oppositeEdge->GetaVertex());
+// unsigned index2 = wxf->GetIndex(oppositeEdge->GetbVertex());
+// real K1_1 = second_layer_info->vec_curvature_info[index1]->K1;
+// real K1_2 = second_layer_info->vec_curvature_info[index2]->K1;
+// real K1 = (1.0-t)*K1_1 + t*K1_2;
+// Vec3r inter((1.0-t)*oppositeEdge->GetaVertex()->GetVertex() + t*oppositeEdge->GetbVertex()->GetVertex());
+// Vec3r vtmp(inter - v->GetVertex());
+// // is it K1_a or K1_b ?
+// if(vtmp*e1 > 0){
+// K1_b = K1;
+// Inter_b = inter;
+// }else{
+// K1_a = K1;
+// Inter_a = inter;
+// }
+// }
+// }
+// // Once we have K1 along the the ppal direction
+// // compute the derivative : K1b - K1a
+// // put it in DotP
+// //real d = fabs(K1_b)-fabs(K1_a);
+// real d = 0;
+// real threshold = _meanK1 + (_maxK1-_meanK1)/7.0;
+// //real threshold = _meanK1;
+// //if((fabs(K1_b) > threshold) || ((fabs(K1_a) > threshold)))
+// d = (K1_b)-(K1_a)/(Inter_b-Inter_a).norm();
+// faceLayer->PushDotP(d);
+// //faceLayer->PushDotP(layer_info->vec_curvature_info[i]->K1);
+// }
+
+// // Make the values relevant by checking whether all principal
+// // directions have the "same" direction:
+// Vec3r e0((layer_info->vec_curvature_info[0]->K1*layer_info->vec_curvature_info[0]->e1));
+// e0.normalize();
+// Vec3r e1((layer_info->vec_curvature_info[1]->K1*layer_info->vec_curvature_info[1]->e1));
+// e1.normalize();
+// Vec3r e2((layer_info->vec_curvature_info[2]->K1*layer_info->vec_curvature_info[2]->e1));
+// e2.normalize();
+// if (e0 * e1 < 0)
+// // invert dotP[1]
+// faceLayer->ReplaceDotP(1, -faceLayer->dotP(1));
+// if (e0 * e2 < 0)
+// // invert dotP[2]
+// faceLayer->ReplaceDotP(2, -faceLayer->dotP(2));
+
+// // remove the weakest values;
+// //real minDiff = (_maxK1 - _minK1)/10.0;
+// // real minDiff = _meanK1;
+// // if((faceLayer->dotP(0) < minDiff) && (faceLayer->dotP(1) < minDiff) && (faceLayer->dotP(2) < minDiff)){
+// // faceLayer->ReplaceDotP(0, 0);
+// // faceLayer->ReplaceDotP(1, 0);
+// // faceLayer->ReplaceDotP(2, 0);
+// // }
+// }
+
+// SUGGESTIVE CONTOURS
+//////////////////////
+
+void FEdgeXDetector::processSuggestiveContourShape(WXShape* iWShape) {
+
+ // Here the curvatures must already have been computed
+ vector<WFace*>& wfaces = iWShape->GetFaceList();
+ vector<WFace*>::iterator f, fend;
+ for(f=wfaces.begin(), fend=wfaces.end();
+ f!=fend;
+ ++f)
+ {
+ ProcessSuggestiveContourFace((WXFace*)(*f));
+ }
+}
+
+void FEdgeXDetector::ProcessSuggestiveContourFace(WXFace *iFace)
+{
+ WXFaceLayer *faceLayer = new WXFaceLayer(iFace, Nature::SUGGESTIVE_CONTOUR, true);
+ iFace->AddSmoothLayer(faceLayer);
+
+ unsigned int numVertices = iFace->numberOfVertices();
+ for(unsigned int i=0; i<numVertices; ++i){
+ WVertex *wv = iFace->GetVertex(i);
+ WXVertex * wxv = dynamic_cast<WXVertex*>(wv);
+ faceLayer->PushDotP(wxv->curvatures()->Kr);
+ }
+
+ // FIXME: find a more clever way to compute the threshold
+// real threshold = _meanKr;
+// if(faceLayer->nPosDotP()!=numVertices){
+// if((fabs(faceLayer->dotP(0)) < threshold) && (fabs(faceLayer->dotP(1)) < threshold) && (fabs(faceLayer->dotP(2)) < threshold)){
+// faceLayer->ReplaceDotP(0, 0);
+// faceLayer->ReplaceDotP(1, 0);
+// faceLayer->ReplaceDotP(2, 0);
+// }
+// }
+}
+
+void FEdgeXDetector::postProcessSuggestiveContourShape(WXShape* iShape) {
+ vector<WFace*>& wfaces = iShape->GetFaceList();
+ vector<WFace*>::iterator f, fend;
+ for(f=wfaces.begin(), fend=wfaces.end();
+ f!=fend;
+ ++f)
+ {
+ postProcessSuggestiveContourFace((WXFace*)(*f));
+ }
+}
+
+void FEdgeXDetector::postProcessSuggestiveContourFace(WXFace *iFace) {
+
+ // Compute the derivative of the radial curvature in the radial direction,
+ // at the two extremities of the smooth edge.
+ // If the derivative is smaller than a given threshold _kr_derivative_epsilon,
+ // discard the edge.
+
+ // Find the suggestive contour layer of the face (zero or one edge).
+ vector<WXFaceLayer*> sc_layers;
+ iFace->retrieveSmoothEdgesLayers(Nature::SUGGESTIVE_CONTOUR, sc_layers);
+ if(sc_layers.empty())
+ return;
+
+ WXFaceLayer *sc_layer;
+ sc_layer = sc_layers[0];
+
+ // Compute the derivative value at each vertex of the face, and add it in a vector.
+ vector<real> kr_derivatives;
+
+ unsigned vertices_nb = iFace->numberOfVertices();
+ WXVertex *v, *opposite_vertex_a, *opposite_vertex_b;
+ WXFace *wxf;
+ WOEdge *opposite_edge;
+ Vec3r opposite_edge_vec, normal_vec, radial_normal_vec, er_vec, v_vec, inter, inter1, inter2, tmp_vec;
+ GeomUtils::intersection_test res;
+ real kr(0), kr1(0), kr2(0), t;
+
+ for (unsigned i = 0; i < vertices_nb; ++i) {
+ v = (WXVertex*)(iFace->GetVertex(i));
+
+ // v is a singular vertex, skip it.
+ if (v->isBoundary()) {
+ kr_derivatives.push_back(0);
+ continue;
+ }
+
+ v_vec = v->GetVertex();
+ er_vec = v->curvatures()->er;
+
+ // For each vertex, iterate on its adjacent faces.
+ for (WVertex::face_iterator fit = v->faces_begin(), fitend = v->faces_end();
+ fit != fitend;
+ ++fit) {
+ wxf = dynamic_cast<WXFace*>(*fit);
+ if(!(wxf->getOppositeEdge(v, opposite_edge)))
+ continue;
+
+ opposite_vertex_a = (WXVertex*)opposite_edge->GetaVertex();
+ opposite_vertex_b = (WXVertex*)opposite_edge->GetbVertex();
+ opposite_edge_vec = opposite_vertex_b->GetVertex() - opposite_vertex_a->GetVertex();
+ normal_vec = wxf->GetVertexNormal(v); // FIXME: what about e1 ^ e2 ?
+ radial_normal_vec = er_vec ^ normal_vec;
+
+ // Test wether the radial plan intersects with the edge at the opposite of v.
+ res = GeomUtils::intersectRayPlane(opposite_vertex_a->GetVertex(), opposite_edge_vec,
+ radial_normal_vec, -(v_vec * radial_normal_vec),
+ t,
+ 1.e-06);
+
+ // If there is an intersection, compute the value of the derivative ath that point.
+ if ((res == GeomUtils::DO_INTERSECT) && (t >= 0) && (t <= 1)) {
+ kr = t * opposite_vertex_a->curvatures()->Kr + (1 - t) * opposite_vertex_b->curvatures()->Kr;
+ inter = opposite_vertex_a->GetVertex() + t * opposite_edge_vec;
+ tmp_vec = inter - v->GetVertex();
+ // Is it kr1 or kr2?
+ if (tmp_vec * er_vec > 0) {
+ kr2 = kr;
+ inter2 = inter;
+ } else {
+ kr1 = kr;
+ inter1 = inter;
+ }
+ }
+ }
+
+ // Now we have kr1 and kr2 along the radial direction, for one vertex of iFace.
+ // We have to compute the derivative of kr for that vertex, equal to:
+ // (kr2 - kr1) / dist(inter1, inter2).
+ // Then we add it to the vector of derivatives.
+ v->curvatures()->dKr = (kr2 - kr1) / (inter2 - inter1).norm();
+ kr_derivatives.push_back(v->curvatures()->dKr);
+ }
+
+ // At that point, we have the derivatives for each vertex of iFace.
+ // All we have to do now is to use linear interpolation to compute the values at
+ // the extremities of the smooth edge.
+ WXSmoothEdge *sc_edge = sc_layer->getSmoothEdge();
+ WOEdge *sc_oedge = sc_edge->woea();
+ t = sc_edge->ta();
+ if (t * kr_derivatives[iFace->GetIndex(sc_oedge->GetaVertex())] +
+ (1 - t) * kr_derivatives[iFace->GetIndex(sc_oedge->GetbVertex())] < _kr_derivative_epsilon) {
+ sc_layer->removeSmoothEdge();
+ return;
+ }
+ sc_oedge = sc_edge->woeb();
+ t = sc_edge->tb();
+ if (t * kr_derivatives[iFace->GetIndex(sc_oedge->GetaVertex())] +
+ (1 - t) * kr_derivatives[iFace->GetIndex(sc_oedge->GetbVertex())] < _kr_derivative_epsilon)
+ sc_layer->removeSmoothEdge();
+}
+
+
+// Build Smooth edges
+/////////////////////
+void FEdgeXDetector::buildSmoothEdges(WXShape* iShape){
+ // Make a last pass to build smooth edges from the previous stored values:
+ //--------------------------------------------------------------------------
+ vector<WFace*>& wfaces = iShape->GetFaceList();
+ for(vector<WFace*>::iterator f=wfaces.begin(), fend=wfaces.end();
+ f!=fend;
+ ++f)
+ {
+ vector<WXFaceLayer*>& faceLayers = ((WXFace*)(*f))->getSmoothLayers();
+ for(vector<WXFaceLayer*>::iterator wxfl = faceLayers.begin(), wxflend=faceLayers.end();
+ wxfl!=wxflend;
+ ++wxfl){
+ (*wxfl)->BuildSmoothEdge();
+ }
+ }
+}
diff --git a/source/blender/freestyle/intern/view_map/FEdgeXDetector.h b/source/blender/freestyle/intern/view_map/FEdgeXDetector.h
new file mode 100755
index 00000000000..38d0f34e21f
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/FEdgeXDetector.h
@@ -0,0 +1,150 @@
+//
+// Filename : FEdgeXDetector.h
+// Author(s) : Stephane Grabli
+// Purpose : Detects/flags/builds extended features edges on the
+// WXEdge structure
+// Date of creation : 26/10/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+#ifndef FEDGEXDETECTOR_H
+# define FEDGEXDETECTOR_H
+
+# include <vector>
+# include "../system/FreestyleConfig.h"
+# include "../geometry/Geom.h"
+# include "../winged_edge/WXEdge.h"
+# include "../winged_edge/Curvature.h"
+# include "../system/ProgressBar.h"
+
+using namespace Geometry;
+
+/*! This class takes as input a WXEdge structure and fills it
+ */
+
+class LIB_VIEW_MAP_EXPORT FEdgeXDetector
+{
+public:
+
+ FEdgeXDetector() {
+ _pProgressBar = 0;
+ _computeViewIndependant = true;
+ _bbox_diagonal = 1.0;
+ _meanEdgeSize = 0;
+ _computeRidgesAndValleys = true;
+ _computeSuggestiveContours = true;
+ _sphereRadius = 1.0;
+ _changes = false;
+ _kr_derivative_epsilon = 0.0;
+ }
+ virtual ~FEdgeXDetector() {}
+
+ /*! Process shapes from a WingedEdge containing a list of WShapes */
+ virtual void processShapes(WingedEdge&);
+
+ // GENERAL STUFF
+ virtual void preProcessShape(WXShape* iShape);
+ virtual void preProcessFace(WXFace* iFace);
+ virtual void computeCurvatures(WXVertex *iVertex);
+
+ // SILHOUETTE
+ virtual void processSilhouetteShape(WXShape* iShape);
+ virtual void ProcessSilhouetteFace(WXFace *iFace);
+ virtual void ProcessSilhouetteEdge(WXEdge *iEdge);
+
+ // CREASE
+ virtual void processCreaseShape(WXShape* iShape);
+ virtual void ProcessCreaseEdge(WXEdge *iEdge);
+
+ // BORDER
+ virtual void processBorderShape(WXShape* iShape);
+ virtual void ProcessBorderEdge(WXEdge *iEdge);
+
+ // RIDGES AND VALLEYS
+ virtual void processRidgesAndValleysShape(WXShape* iShape);
+ virtual void ProcessRidgeFace(WXFace *iFace);
+
+ // SUGGESTIVE CONTOURS
+ virtual void processSuggestiveContourShape(WXShape* iShape);
+ virtual void ProcessSuggestiveContourFace(WXFace *iFace);
+ virtual void postProcessSuggestiveContourShape(WXShape* iShape);
+ virtual void postProcessSuggestiveContourFace(WXFace *iFace);
+ /*! Sets the minimal derivative of the radial curvature for suggestive contours
+ * \param dkr
+ * The minimal derivative of the radial curvature
+ */
+ inline void setSuggestiveContourKrDerivativeEpsilon(real dkr) {
+ if (dkr != _kr_derivative_epsilon){
+ _kr_derivative_epsilon = dkr;
+ _changes = true;
+ }
+ }
+
+ // EVERYBODY
+ virtual void buildSmoothEdges(WXShape* iShape);
+
+ /*! Sets the current viewpoint */
+ inline void SetViewpoint(const Vec3r& ivp) {_Viewpoint = ivp;}
+ inline void enableRidgesAndValleysFlag(bool b) {_computeRidgesAndValleys = b;}
+ inline void enableSuggestiveContours(bool b) {_computeSuggestiveContours = b;}
+ /*! Sets the radius of the geodesic sphere around each vertex (for the curvature computation)
+ * \param r
+ * The radius of the sphere expressed as a ratio of the mean edge size
+ */
+ inline void setSphereRadius(real r) {
+ if(r!=_sphereRadius){
+ _sphereRadius = r;
+ _changes=true;
+ }
+ }
+
+ inline void SetProgressBar(ProgressBar *iProgressBar) {_pProgressBar = iProgressBar;}
+
+protected:
+
+ Vec3r _Viewpoint;
+ real _bbox_diagonal; // diagonal of the current processed shape bbox
+ //tmp values
+ bool _computeViewIndependant;
+ real _meanK1;
+ real _meanKr;
+ real _minK1;
+ real _minKr;
+ real _maxK1;
+ real _maxKr;
+ unsigned _nPoints;
+ real _meanEdgeSize;
+
+ bool _computeRidgesAndValleys;
+ bool _computeSuggestiveContours;
+ real _sphereRadius; // expressed as a ratio of the mean edge size
+ bool _changes;
+
+ real _kr_derivative_epsilon;
+
+ ProgressBar *_pProgressBar;
+};
+
+#endif // FEDGEDXETECTOR_H
diff --git a/source/blender/freestyle/intern/view_map/Functions0D.cpp b/source/blender/freestyle/intern/view_map/Functions0D.cpp
new file mode 100755
index 00000000000..c868510624c
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/Functions0D.cpp
@@ -0,0 +1,356 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+# include "Functions0D.h"
+# include "ViewMap.h"
+
+using namespace std;
+
+namespace Functions0D {
+
+ // Internal function
+ FEdge* getFEdge(Interface0D& it1, Interface0D& it2){
+ return it1.getFEdge(it2);
+ }
+
+ void getFEdges(Interface0DIterator& it,
+ FEdge*& fe1,
+ FEdge*& fe2) {
+ // count number of vertices
+ Interface0DIterator prev = it, next = it;
+ ++next;
+ int count = 1;
+ while((!prev.isBegin()) && (count < 3))
+ {
+ --prev;
+ ++count;
+ }
+ while((!next.isEnd()) && (count < 3))
+ {
+ ++next;
+ ++count;
+ }
+ if(count < 3)
+ {
+ // if we only have 2 vertices
+ FEdge * fe = 0;
+ Interface0DIterator tmp = it;
+ if(it.isBegin())
+ {
+ ++tmp;
+ fe = it->getFEdge(*tmp);
+ }
+ else
+ {
+ --tmp;
+ fe = it->getFEdge(*tmp);
+ }
+ fe1 = fe;
+ fe2 = 0;
+ }
+ else
+ {
+ // we have more than 2 vertices
+ bool begin=false,last=false;
+ Interface0DIterator previous = it;
+ if(!previous.isBegin())
+ --previous;
+ else
+ begin=true;
+ Interface0DIterator next = it;
+ ++next;
+ if(next.isEnd())
+ last = true;
+ if(begin)
+ {
+ fe1 = it->getFEdge(*next);
+ fe2 = 0;
+ }
+ else if(last)
+ {
+ fe1 = previous->getFEdge(*it);
+ fe2 = 0;
+ }
+ else
+ {
+ fe1 = previous->getFEdge(*it);
+ fe2 = it->getFEdge(*next);
+ }
+ }
+ }
+
+ void getViewEdges(Interface0DIterator &it,
+ ViewEdge *&ve1,
+ ViewEdge *&ve2)
+ {
+ FEdge * fe1, *fe2;
+ getFEdges(it, fe1, fe2);
+ ve1 = fe1->viewedge();
+ if(fe2 != 0)
+ {
+ ve2 = fe2->viewedge();
+ if(ve2 == ve1)
+ ve2 = 0;
+ }
+ else
+ ve2 = 0;
+ }
+
+ ViewShape* getShapeF0D(Interface0DIterator& it)
+ {
+ ViewEdge *ve1, *ve2;
+ getViewEdges(it, ve1, ve2);
+ return ve1->viewShape();
+ }
+
+ void getOccludersF0D(Interface0DIterator& it, set<ViewShape*>& oOccluders){
+ ViewEdge * ve1, *ve2;
+ getViewEdges(it, ve1, ve2);
+ occluder_container::const_iterator oit = ve1->occluders_begin();
+ occluder_container::const_iterator oitend = ve1->occluders_end();
+
+ for(;oit!=oitend; ++oit)
+ oOccluders.insert((*oit));
+
+ if(ve2!=0){
+ oit = ve2->occluders_begin();
+ oitend = ve2->occluders_end();
+ for(;oit!=oitend; ++oit)
+ oOccluders.insert((*oit));
+ }
+ }
+
+ ViewShape * getOccludeeF0D(Interface0DIterator& it){
+ ViewEdge * ve1, *ve2;
+ getViewEdges(it, ve1, ve2);
+ ViewShape *aShape = ve1->aShape();
+ return aShape;
+ }
+
+ //
+ Vec2f VertexOrientation2DF0D::operator()(Interface0DIterator& iter) {
+ Vec2f A,C;
+ Vec2f B(iter->getProjectedX(), iter->getProjectedY());
+ if(iter.isBegin())
+ A = Vec2f(iter->getProjectedX(), iter->getProjectedY());
+ else
+ {
+ Interface0DIterator previous = iter;
+ --previous ;
+ A = Vec2f(previous->getProjectedX(), previous->getProjectedY());
+ }
+ Interface0DIterator next = iter;
+ ++next ;
+ if(next.isEnd())
+ C = Vec2f(iter->getProjectedX(), iter->getProjectedY());
+ else
+ C = Vec2f(next->getProjectedX(), next->getProjectedY());
+
+ Vec2f AB(B-A);
+ if(AB.norm() != 0)
+ AB.normalize();
+ Vec2f BC(C-B);
+ if(BC.norm() != 0)
+ BC.normalize();
+ Vec2f res (AB + BC);
+ if(res.norm() != 0)
+ res.normalize();
+ return res;
+ }
+
+ Vec3f VertexOrientation3DF0D::operator()(Interface0DIterator& iter) {
+ Vec3r A,C;
+ Vec3r B(iter->getX(), iter->getY(), iter->getZ());
+ if(iter.isBegin())
+ A = Vec3r(iter->getX(), iter->getY(), iter->getZ());
+ else
+ {
+ Interface0DIterator previous = iter;
+ --previous ;
+ A = Vec3r(previous->getX(), previous->getY(), previous->getZ());
+ }
+ Interface0DIterator next = iter;
+ ++next ;
+ if(next.isEnd())
+ C = Vec3r(iter->getX(), iter->getY(), iter->getZ());
+ else
+ C = Vec3r(next->getX(), next->getY(), next->getZ());
+
+ Vec3r AB(B-A);
+ if(AB.norm() != 0)
+ AB.normalize();
+ Vec3r BC(C-B);
+ if(BC.norm() != 0)
+ BC.normalize();
+ Vec3f res (AB + BC);
+ if(res.norm() != 0)
+ res.normalize();
+ return res;
+ }
+
+ real Curvature2DAngleF0D::operator()(Interface0DIterator& iter) {
+ Interface0DIterator tmp1 = iter, tmp2 = iter;
+ ++tmp2;
+ unsigned count = 1;
+ while((!tmp1.isBegin()) && (count < 3))
+ {
+ --tmp1;
+ ++count;
+ }
+ while((!tmp2.isEnd()) && (count < 3))
+ {
+ ++tmp2;
+ ++count;
+ }
+ if(count < 3)
+ return 0; // if we only have 2 vertices
+
+ Interface0DIterator v = iter;
+ if(iter.isBegin())
+ ++v;
+ Interface0DIterator next=v;
+ ++next;
+ if(next.isEnd())
+ {
+ next = v;
+ --v;
+ }
+ Interface0DIterator prev=v;
+ --prev;
+
+ Vec2r A(prev->getProjectedX(), prev->getProjectedY());
+ Vec2r B(v->getProjectedX(), v->getProjectedY());
+ Vec2r C(next->getProjectedX(), next->getProjectedY());
+ Vec2r AB(B-A);
+ Vec2r BC(C-B);
+ Vec2r N1(-AB[1], AB[0]);
+ if(N1.norm() != 0)
+ N1.normalize();
+ Vec2r N2(-BC[1], BC[0]);
+ if(N2.norm() != 0)
+ N2.normalize();
+ if((N1.norm() == 0) && (N2.norm() == 0))
+ {
+ Exception::raiseException();
+ return 0;
+ }
+ double cosin = N1*N2;
+ if(cosin > 1)
+ cosin = 1;
+ if(cosin < -1)
+ cosin = -1;
+ return acos(cosin);
+ }
+
+ real ZDiscontinuityF0D::operator()(Interface0DIterator& iter) {
+ FEdge *fe1, *fe2;
+ getFEdges(iter, fe1, fe2);
+ real result ;
+ result = fe1->z_discontinuity();
+ if(fe2!=0){
+ result += fe2->z_discontinuity();
+ result /= 2.f;
+ }
+ return result;
+ }
+
+ Vec2f Normal2DF0D::operator()(Interface0DIterator& iter) {
+ FEdge *fe1, *fe2;
+ getFEdges(iter,fe1,fe2);
+ Vec3f e1(fe1->orientation2d());
+ Vec2f n1(e1[1], -e1[0]);
+ Vec2f n(n1);
+ if(fe2 != 0)
+ {
+ Vec3f e2(fe2->orientation2d());
+ Vec2f n2(e2[1], -e2[0]);
+ n += n2;
+ }
+ n.normalize();
+ return n;
+ }
+
+ Material MaterialF0D::operator()(Interface0DIterator& iter) {
+ FEdge *fe1, *fe2;
+ getFEdges(iter,fe1,fe2);
+
+ if(fe1 == 0)
+ getFEdges(iter, fe1, fe2);
+ Material mat;
+ if(fe1->isSmooth())
+ mat = ((FEdgeSmooth*)fe1)->material();
+ else
+ mat = ((FEdgeSharp*)fe1)->bMaterial();
+ // const SShape * sshape = getShapeF0D(iter);
+ // return sshape->material();
+ return mat;
+ }
+
+ Id ShapeIdF0D::operator()(Interface0DIterator& iter) {
+ ViewShape * vshape = getShapeF0D(iter);
+ return vshape->getId();
+ }
+
+ unsigned int QuantitativeInvisibilityF0D::operator()(Interface0DIterator& iter) {
+ ViewEdge * ve1, *ve2;
+ getViewEdges(iter,ve1,ve2);
+ unsigned int qi1, qi2;
+ qi1 = ve1->qi();
+ if(ve2 != 0){
+ qi2 = ve2->qi();
+ if(qi2!=qi1)
+ cout << "QuantitativeInvisibilityF0D: ambiguous evaluation for point " << iter->getId() << endl;
+ }
+ return qi1;
+ }
+
+ Nature::EdgeNature CurveNatureF0D::operator()(Interface0DIterator& iter) {
+ Nature::EdgeNature nat = 0;
+ ViewEdge * ve1, *ve2;
+ getViewEdges(iter, ve1, ve2);
+ nat |= ve1->getNature();
+ if(ve2!=0)
+ nat |= ve2->getNature();
+ return nat;
+ }
+
+ vector<ViewShape*> GetOccludersF0D::operator()(Interface0DIterator& iter) {
+ set<ViewShape*> occluders;
+ getOccludersF0D(iter,occluders);
+ vector<ViewShape*> vsOccluders;
+ // vsOccluders.insert(vsOccluders.begin(), occluders.begin(), occluders.end());
+ for(set<ViewShape*>::iterator it=occluders.begin(), itend=occluders.end();
+ it!=itend;
+ ++it){
+ vsOccluders.push_back((*it));
+ }
+ return vsOccluders;
+ }
+
+ ViewShape* GetShapeF0D::operator()(Interface0DIterator& iter) {
+ return getShapeF0D(iter);
+ }
+
+ ViewShape* GetOccludeeF0D::operator()(Interface0DIterator& iter) {
+ return getOccludeeF0D(iter);
+ }
+
+} // end of namespace Functions0D
diff --git a/source/blender/freestyle/intern/view_map/Functions0D.h b/source/blender/freestyle/intern/view_map/Functions0D.h
new file mode 100755
index 00000000000..3160546da2f
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/Functions0D.h
@@ -0,0 +1,487 @@
+//
+// Filename : Functions0D.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Functions taking 0D input
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef FUNCTIONS0D_H
+# define FUNCTIONS0D_H
+
+# include "../system/Precision.h"
+# include "Interface0D.h"
+# include "../geometry/Geom.h"
+# include "../system/Exception.h"
+# include "../scene_graph/Material.h"
+# include <set>
+# include <vector>
+class FEdge;
+class ViewEdge;
+class SShape;
+
+using namespace Geometry;
+
+//
+// UnaryFunction0D (base class for functions in 0D)
+//
+///////////////////////////////////////////////////////////
+
+template <class T>
+/*! Base class for Unary Functions (functors) working
+ * on Interface0DIterator.
+ * A unary function will be used by calling
+ * its operator() on an Interface0DIterator.
+ * \attention In the scripting language, there exists
+ * several prototypes depending on the returned value type.
+ * For example, you would inherit from a UnaryFunction0DDouble
+ * if you wish to define a function that returns a double.
+ * The different existing prototypes are:
+ * - UnaryFunction0DVoid
+ * - UnaryFunction0DUnsigned
+ * - UnaryFunction0DReal
+ * - UnaryFunction0DFloat
+ * - UnaryFunction0DDouble
+ * - UnaryFunction0DVec2f
+ * - UnaryFunction0DVec3f
+ */
+class /*LIB_VIEW_MAP_EXPORT*/ UnaryFunction0D
+{
+public:
+
+ /*! The type of the value
+ * returned by the functor.
+ */
+ typedef T ReturnedValueType;
+ /*! Default constructor. */
+ UnaryFunction0D() {}
+ /*! Destructor; */
+ virtual ~UnaryFunction0D() {}
+ /*! Returns the string "UnaryFunction0D" */
+ virtual string getName() const {
+ return "UnaryFunction0D";
+ }
+ /*! The operator ().
+ * \param iter
+ * An Interface0DIterator pointing onto
+ * the point at which we wish to evaluate
+ * the function.
+ * \return the result of the function of type T.
+ */
+ virtual T operator()(Interface0DIterator& iter) {
+ cerr << "Warning: operator() not implemented" << endl;
+ return T();
+ }
+};
+
+# ifdef SWIG
+%feature("director") UnaryFunction0D<void>;
+%feature("director") UnaryFunction0D<unsigned>;
+%feature("director") UnaryFunction0D<float>;
+%feature("director") UnaryFunction0D<double>;
+%feature("director") UnaryFunction0D<Vec2f>;
+%feature("director") UnaryFunction0D<Vec3f>;
+%feature("director") UnaryFunction0D<Id>;
+
+%template(UnaryFunction0DVoid) UnaryFunction0D<void>;
+%template(UnaryFunction0DUnsigned) UnaryFunction0D<unsigned>;
+%template(UnaryFunction0DFloat) UnaryFunction0D<float>;
+%template(UnaryFunction0DDouble) UnaryFunction0D<double>;
+%template(UnaryFunction0DVec2f) UnaryFunction0D<Vec2f>;
+%template(UnaryFunction0DVec3f) UnaryFunction0D<Vec3f>;
+%template(UnaryFunction0DId) UnaryFunction0D<Id>;
+%template(UnaryFunction0DViewShape) UnaryFunction0D<ViewShape*>;
+%template(UnaryFunction0DVectorViewShape) UnaryFunction0D<std::vector<ViewShape*> >;
+# endif // SWIG
+
+
+//
+// Functions definitions
+//
+///////////////////////////////////////////////////////////
+class ViewShape;
+namespace Functions0D {
+
+ // GetXF0D
+ /*! Returns the X 3D coordinate of an Interface0D. */
+ class LIB_VIEW_MAP_EXPORT GetXF0D : public UnaryFunction0D<real>
+ {
+ public:
+ /*! Returns the string "GetXF0D"*/
+ string getName() const {
+ return "GetXF0D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface0DIterator& iter) {
+ return iter->getX();
+ }
+ };
+
+ // GetYF0D
+ /*! Returns the Y 3D coordinate of an Interface0D. */
+ class LIB_VIEW_MAP_EXPORT GetYF0D : public UnaryFunction0D<real>
+ {
+ public:
+ /*! Returns the string "GetYF0D"*/
+ string getName() const {
+ return "GetYF0D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface0DIterator& iter) {
+ return iter->getY();
+ }
+ };
+
+ // GetZF0D
+ /*! Returns the Z 3D coordinate of an Interface0D. */
+ class LIB_VIEW_MAP_EXPORT GetZF0D : public UnaryFunction0D<real>
+ {
+ public:
+ /*! Returns the string "GetZF0D"*/
+ string getName() const {
+ return "GetZF0D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface0DIterator& iter) {
+ return iter->getZ();
+ }
+ };
+
+ // GetProjectedXF0D
+ /*! Returns the X 3D projected coordinate of an Interface0D. */
+ class LIB_VIEW_MAP_EXPORT GetProjectedXF0D : public UnaryFunction0D<real>
+ {
+ public:
+ /*! Returns the string "GetProjectedXF0D"*/
+ string getName() const {
+ return "GetProjectedXF0D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface0DIterator& iter) {
+ return iter->getProjectedX();
+ }
+ };
+
+ // GetProjectedYF0D
+ /*! Returns the Y projected 3D coordinate of an Interface0D. */
+ class LIB_VIEW_MAP_EXPORT GetProjectedYF0D : public UnaryFunction0D<real>
+ {
+ public:
+ /*! Returns the string "GetProjectedYF0D"*/
+ string getName() const {
+ return "GetProjectedYF0D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface0DIterator& iter) {
+ return iter->getProjectedY();
+ }
+ };
+
+ // GetProjectedZF0D
+ /*! Returns the Z projected 3D coordinate of an Interface0D. */
+ class LIB_VIEW_MAP_EXPORT GetProjectedZF0D : public UnaryFunction0D<real>
+ {
+ public:
+ /*! Returns the string "GetProjectedZF0D"*/
+ string getName() const {
+ return "GetProjectedZF0D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface0DIterator& iter) {
+ return iter->getProjectedZ();
+ }
+ };
+
+ // GetCurvilinearAbscissaF0D
+ /*! Returns the curvilinear abscissa of an Interface0D in the context of its 1D element. */
+ class LIB_VIEW_MAP_EXPORT GetCurvilinearAbscissaF0D : public UnaryFunction0D<float>
+ {
+ public:
+ /*! Returns the string "GetCurvilinearAbscissaF0D"*/
+ string getName() const {
+ return "GetCurvilinearAbscissaF0D";
+ }
+ /*! the () operator.*/
+ float operator()(Interface0DIterator& iter) {
+ return iter.t();
+ }
+ };
+
+ // GetParameterF0D
+ /*! Returns the parameter of an Interface0D in the context of its 1D element. */
+ class LIB_VIEW_MAP_EXPORT GetParameterF0D : public UnaryFunction0D<float>
+ {
+ public:
+ /*! Returns the string "GetCurvilinearAbscissaF0D"*/
+ string getName() const {
+ return "GetParameterF0D";
+ }
+ /*! the () operator.*/
+ float operator()(Interface0DIterator& iter) {
+ return iter.u();
+ }
+ };
+
+ // VertexOrientation2DF0D
+ /*! Returns a Vec2r giving the 2D oriented tangent to the 1D element
+ * to which the Interface0DIterator& belongs to and
+ * evaluated at the Interface0D pointed by this Interface0DIterator&.
+ */
+ class LIB_VIEW_MAP_EXPORT VertexOrientation2DF0D : public UnaryFunction0D<Vec2f>
+ {
+ public:
+ /*! Returns the string "VertexOrientation2DF0D"*/
+ string getName() const {
+ return "VertexOrientation2DF0D";
+ }
+ /*! the () operator.*/
+ Vec2f operator()(Interface0DIterator& iter);
+ };
+
+ // VertexOrientation3DF0D
+ /*! Returns a Vec3r giving the 3D oriented tangent to the 1D element
+ * to which the Interface0DIterator& belongs to and
+ * evaluated at the Interface0D pointed by this Interface0DIterator&.
+ */
+ class LIB_VIEW_MAP_EXPORT VertexOrientation3DF0D : public UnaryFunction0D<Vec3f>
+ {
+ public:
+ /*! Returns the string "VertexOrientation3DF0D"*/
+ string getName() const {
+ return "VertexOrientation3DF0D";
+ }
+ /*! the () operator.*/
+ Vec3f operator()(Interface0DIterator& iter);
+ };
+
+ // Curvature2DAngleF0D
+ /*! Returns a real giving the 2D curvature (as an angle) of the 1D element
+ * to which the Interface0DIterator& belongs to and
+ * evaluated at the Interface0D pointed by this Interface0DIterator&.
+ */
+ class LIB_VIEW_MAP_EXPORT Curvature2DAngleF0D : public UnaryFunction0D<real>
+ {
+ public:
+ /*! Returns the string "Curvature2DAngleF0D"*/
+ string getName() const {
+ return "Curvature2DAngleF0D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface0DIterator& iter);
+ };
+
+ // ZDiscontinuity
+ /*! Returns a real giving the distance between
+ * and Interface0D and the shape that lies behind (occludee).
+ * This distance is evaluated in the camera space and normalized
+ * between 0 and 1. Therefore, if no oject is occluded by the
+ * shape to which the Interface0D belongs to, 1 is returned.
+ */
+ class LIB_VIEW_MAP_EXPORT ZDiscontinuityF0D : public UnaryFunction0D<real>
+ {
+ public:
+ /*! Returns the string "ZDiscontinuityF0D"*/
+ string getName() const {
+ return "ZDiscontinuityF0D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface0DIterator& iter);
+ };
+
+ // Normal2DF0D
+ /*! Returns a Vec2f giving the normalized 2D normal to the 1D element
+ * to which the Interface0DIterator& belongs to and
+ * evaluated at the Interface0D pointed by this Interface0DIterator&.
+ */
+ class LIB_VIEW_MAP_EXPORT Normal2DF0D : public UnaryFunction0D<Vec2f>
+ {
+ public:
+ /*! Returns the string "Normal2DF0D"*/
+ string getName() const {
+ return "Normal2DF0D";
+ }
+ /*! the () operator.*/
+ Vec2f operator()(Interface0DIterator& iter);
+ };
+
+ // MaterialF0D
+ /*! Returns the material of the object evaluated at the Interface0D.
+ * This evaluation can be ambiguous (in the case of a TVertex for example.
+ * This functor tries to remove this ambiguity using the context
+ * offered by the 1D element to which the Interface0DIterator& belongs
+ * to and by arbitrary chosing the material of the face
+ * that lies on its left when following the 1D element if there
+ * are two different materials on each side of the point.
+ * However, there still can be problematic cases, and the user willing
+ * to deal with this cases in a specific way should implement
+ * its own getMaterial functor.
+ */
+ class LIB_VIEW_MAP_EXPORT MaterialF0D : public UnaryFunction0D<Material>
+ {
+ public:
+ /*! Returns the string "MaterialF0D"*/
+ string getName() const {
+ return "MaterialF0D";
+ }
+ /*! the () operator.*/
+ Material operator()(Interface0DIterator& iter);
+ };
+
+ // ShapeIdF0D
+ /*! Returns the Id of the Shape the Interface0D belongs to.
+ * This evaluation can be ambiguous (in the case of a TVertex for example).
+ * This functor tries to remove this ambiguity using the context
+ * offered by the 1D element to which the Interface0DIterator& belongs
+ * to.
+ * However, there still can be problematic cases, and the user willing
+ * to deal with this cases in a specific way should implement
+ * its own getShapeIdF0D functor.
+ */
+ class LIB_VIEW_MAP_EXPORT ShapeIdF0D : public UnaryFunction0D<Id>
+ {
+ public:
+ /*! Returns the string "ShapeIdF0D"*/
+ string getName() const {
+ return "ShapeIdF0D";
+ }
+ /*! the () operator.*/
+ Id operator()(Interface0DIterator& iter);
+ };
+
+ // QiF0D
+ /*! Returns the quantitative invisibility of this Interface0D.
+ * This evaluation can be ambiguous (in the case of a TVertex for example).
+ * This functor tries to remove this ambiguity using the context
+ * offered by the 1D element to which the Interface0DIterator& belongs
+ * to.
+ * However, there still can be problematic cases, and the user willing
+ * to deal with this cases in a specific way should implement
+ * its own getQIF0D functor.
+ */
+ class LIB_VIEW_MAP_EXPORT QuantitativeInvisibilityF0D : public UnaryFunction0D<unsigned int>
+ {
+ public:
+ /*! Returns the string "QuantitativeInvisibilityF0D"*/
+ string getName() const {
+ return "QuantitativeInvisibilityF0D";
+ }
+ /*! the () operator.*/
+ unsigned int operator()(Interface0DIterator& iter);
+ };
+
+ // CurveNatureF0D
+ /*! Returns the Nature::EdgeNature of the 1D element the
+ * Interface0DIterator& belongs to.
+ */
+ class LIB_VIEW_MAP_EXPORT CurveNatureF0D : public UnaryFunction0D<Nature::EdgeNature>
+ {
+ public:
+ /*! Returns the string "QuantitativeInvisibilityF0D"*/
+ string getName() const {
+ return "CurveNatureF0D";
+ }
+ /*! the () operator.*/
+ Nature::EdgeNature operator()(Interface0DIterator& iter);
+ };
+
+ // GetShapeF0D
+ /*! Returns the ViewShape*
+ * containing the Interface0D
+ */
+ class LIB_VIEW_MAP_EXPORT GetShapeF0D : public UnaryFunction0D< ViewShape*>
+ {
+ public:
+ /*! Returns the string "GetShapeF0D"*/
+ string getName() const {
+ return "GetShapeF0D";
+ }
+ /*! the () operator.*/
+ ViewShape* operator()(Interface0DIterator& iter);
+ };
+
+ // GetOccludersF0D
+ /*! Returns a vector containing the ViewShape*
+ * occluding the Interface0D
+ */
+ class LIB_VIEW_MAP_EXPORT GetOccludersF0D : public UnaryFunction0D< std::vector<ViewShape*> >
+ {
+ public:
+ /*! Returns the string "GetOccludersF0D"*/
+ string getName() const {
+ return "GetOccludersF0D";
+ }
+ /*! the () operator.*/
+ std::vector<ViewShape*> operator()(Interface0DIterator& iter);
+ };
+
+ // GetOccludeeF0D
+ /*! Returns the ViewShape*
+ * "occluded" by the Interface0D
+ */
+ class LIB_VIEW_MAP_EXPORT GetOccludeeF0D: public UnaryFunction0D< ViewShape*>
+ {
+ public:
+ /*! Returns the string "GetOccludeeF0D"*/
+ string getName() const {
+ return "GetOccludeeF0D";
+ }
+ /*! the () operator.*/
+ ViewShape* operator()(Interface0DIterator& iter);
+ };
+
+
+
+ /////////////////////////// Internal ////////////////////////////
+
+ // getFEdge
+ LIB_VIEW_MAP_EXPORT
+ FEdge* getFEdge(Interface0D& it1, Interface0D& it2);
+
+ // getFEdges
+ LIB_VIEW_MAP_EXPORT
+ void getFEdges(Interface0DIterator& it,
+ FEdge*& fe1,
+ FEdge*& fe2);
+
+ // getViewEdges
+ LIB_VIEW_MAP_EXPORT
+ void getViewEdges(Interface0DIterator& it,
+ ViewEdge *&ve1,
+ ViewEdge *&ve2);
+
+ // getShapeF0D
+ LIB_VIEW_MAP_EXPORT
+ ViewShape* getShapeF0D(Interface0DIterator& it);
+
+ // getOccludersF0D
+ LIB_VIEW_MAP_EXPORT
+ void getOccludersF0D(Interface0DIterator& it, std::set<ViewShape*>& oOccluders);
+
+ // getOccludeeF0D
+ LIB_VIEW_MAP_EXPORT
+ ViewShape* getOccludeeF0D(Interface0DIterator& it);
+
+} // end of namespace Functions0D
+
+#endif // FUNCTIONS0D_H
diff --git a/source/blender/freestyle/intern/view_map/Functions1D.cpp b/source/blender/freestyle/intern/view_map/Functions1D.cpp
new file mode 100755
index 00000000000..a34124ded31
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/Functions1D.cpp
@@ -0,0 +1,209 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+# include "Functions1D.h"
+using namespace std;
+
+namespace Functions1D {
+
+ real GetXF1D::operator()(Interface1D& inter) {
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ real GetYF1D::operator()(Interface1D& inter) {
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ real GetZF1D::operator()(Interface1D& inter) {
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ real GetProjectedXF1D::operator()(Interface1D& inter) {
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ real GetProjectedYF1D::operator()(Interface1D& inter) {
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ real GetProjectedZF1D::operator()(Interface1D& inter) {
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ Vec2f Orientation2DF1D::operator()(Interface1D& inter) {
+ FEdge * fe = dynamic_cast<FEdge*>(&inter);
+ if(fe){
+ Vec3r res = fe->orientation2d();
+ return Vec2f(res[0], res[1]);
+ }
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ Vec3f Orientation3DF1D::operator()(Interface1D& inter) {
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ real ZDiscontinuityF1D::operator()(Interface1D& inter) {
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ unsigned QuantitativeInvisibilityF1D::operator()(Interface1D& inter) {
+ ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
+ if (ve)
+ return ve->qi();
+ FEdge *fe = dynamic_cast<FEdge*>(&inter);
+ if(fe)
+ return ve->qi();
+ return integrate(_func, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+
+ Nature::EdgeNature CurveNatureF1D::operator()(Interface1D& inter) {
+ ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
+ if (ve)
+ return ve->getNature();
+ else{
+ // we return a nature that contains every
+ // natures of the viewedges spanned by the chain.
+ Nature::EdgeNature nat = Nature::NO_FEATURE;
+ Interface0DIterator it = inter.verticesBegin();
+ while(!it.isEnd()){
+ nat |= _func(it);
+ ++it;
+ }
+ return nat;
+ }
+ }
+
+ void TimeStampF1D::operator()(Interface1D& inter) {
+ TimeStamp *timestamp = TimeStamp::instance();
+ inter.setTimeStamp(timestamp->getTimeStamp());
+ }
+
+ void ChainingTimeStampF1D::operator()(Interface1D& inter) {
+ TimeStamp *timestamp = TimeStamp::instance();
+ ViewEdge *ve = dynamic_cast<ViewEdge*>(&inter);
+ if(ve)
+ ve->setChainingTimeStamp(timestamp->getTimeStamp());
+ }
+
+ void IncrementChainingTimeStampF1D::operator()(Interface1D& inter) {
+ ViewEdge *ve = dynamic_cast<ViewEdge*>(&inter);
+ if(ve)
+ ve->setChainingTimeStamp(ve->getChainingTimeStamp()+1);
+ }
+
+ vector<ViewShape*> GetShapeF1D::operator()(Interface1D& inter) {
+ vector<ViewShape*> shapesVector;
+ set<ViewShape*> shapesSet;
+ ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
+ if (ve){
+ shapesVector.push_back(ve->viewShape());
+ }else{
+ Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
+ for(;it!=itend;++it)
+ shapesSet.insert(Functions0D::getShapeF0D(it));
+ shapesVector.insert<set<ViewShape*>::iterator>(shapesVector.begin(), shapesSet.begin(), shapesSet.end());
+ }
+ return shapesVector;
+ }
+
+ vector<ViewShape*> GetOccludersF1D::operator()(Interface1D& inter) {
+ vector<ViewShape*> shapesVector;
+ set<ViewShape*> shapesSet;
+ ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
+ if (ve){
+ return ve->occluders();
+ }else{
+ Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
+ for(;it!=itend;++it){
+ Functions0D::getOccludersF0D(it, shapesSet);
+ }
+ shapesVector.insert(shapesVector.begin(), shapesSet.begin(), shapesSet.end());
+ }
+ return shapesVector;
+ }
+
+ vector<ViewShape*> GetOccludeeF1D::operator()(Interface1D& inter) {
+ vector<ViewShape*> shapesVector;
+ set<ViewShape*> shapesSet;
+ ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
+ if (ve){
+ ViewShape * aShape = ve->aShape();
+ shapesVector.push_back(aShape);
+ }else{
+ Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
+ for(;it!=itend;++it){
+ shapesSet.insert(Functions0D::getOccludeeF0D(it));
+ }
+ shapesVector.insert<set<ViewShape*>::iterator>(shapesVector.begin(), shapesSet.begin(), shapesSet.end());
+ }
+ return shapesVector;
+ }
+ // Internal
+ ////////////
+
+ void getOccludeeF1D(Interface1D& inter, set<ViewShape*>& oShapes){
+ ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
+ if (ve){
+ ViewShape * aShape = ve->aShape();
+ if(aShape == 0){
+ oShapes.insert(0);
+ return;
+ }
+ oShapes.insert(aShape);
+ }
+ else{
+ Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
+ for(;it!=itend;++it)
+ oShapes.insert(Functions0D::getOccludeeF0D(it));
+ }
+ }
+
+ void getOccludersF1D(Interface1D& inter, set<ViewShape*>& oShapes){
+ ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
+ if (ve){
+ vector<ViewShape*>& occluders = ve->occluders();
+ oShapes.insert<vector<ViewShape*>::iterator>(occluders.begin(), occluders.end());
+ }
+ else{
+ Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
+ for(;it!=itend;++it){
+ set<ViewShape*> shapes;
+ Functions0D::getOccludersF0D(it, shapes);
+ for(set<ViewShape*>::iterator s=shapes.begin(), send=shapes.end();
+ s!=send;
+ ++s)
+ oShapes.insert(*s);
+ }
+ }
+ }
+
+ void getShapeF1D(Interface1D& inter, set<ViewShape*>& oShapes){
+ ViewEdge* ve = dynamic_cast<ViewEdge*>(&inter);
+ if (ve){
+ oShapes.insert(ve->viewShape());
+ }else{
+ Interface0DIterator it=inter.verticesBegin(), itend=inter.verticesEnd();
+ for(;it!=itend;++it)
+ oShapes.insert(Functions0D::getShapeF0D(it));
+ }
+ }
+} // end of namespace Functions1D
diff --git a/source/blender/freestyle/intern/view_map/Functions1D.h b/source/blender/freestyle/intern/view_map/Functions1D.h
new file mode 100755
index 00000000000..c92d12ff330
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/Functions1D.h
@@ -0,0 +1,537 @@
+//
+// Filename : Functions1D.h
+// Author(s) : Stephane Grabli, Emmanuel Turquin
+// Purpose : Functions taking 1D input
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef FUNCTIONS1D_HPP
+# define FUNCTIONS1D_HPP
+
+# include "../system/Precision.h"
+# include "../system/TimeStamp.h"
+# include "ViewMap.h"
+# include "Functions0D.h"
+# include "Interface1D.h"
+# include "../system/FreestyleConfig.h"
+//
+// UnaryFunction1D (base class for functions in 1D)
+//
+///////////////////////////////////////////////////////////
+
+/*! Base class for Unary Functions (functors) working
+ * on Interface1D.
+ * A unary function will be used by calling
+ * its operator() on an Interface1D.
+ * \attention In the scripting language, there exists
+ * several prototypes depending on the returned value type.
+ * For example, you would inherit from a UnaryFunction1DDouble
+ * if you wish to define a function that returns a double.
+ * The different existing prototypes are:
+ * - UnaryFunction1DVoid
+ * - UnaryFunction1DUnsigned
+ * - UnaryFunction1DReal
+ * - UnaryFunction1DFloat
+ * - UnaryFunction1DDouble
+ * - UnaryFunction1DVec2f
+ * - UnaryFunction1DVec3f
+ */
+template <class T>
+class /*LIB_VIEW_MAP_EXPORT*/ UnaryFunction1D
+{
+public:
+ /*! The type of the value
+ * returned by the functor.
+ */
+ typedef T ReturnedValueType;
+
+ /*! Default constructor */
+ UnaryFunction1D(){_integration = MEAN;}
+ /*! Builds a UnaryFunction1D from an integration type.
+ * \param iType
+ * In case the result for the Interface1D would be
+ * obtained by evaluating a 0D function over the different
+ * Interface0D of the Interface1D, \a iType tells which
+ * integration method to use.
+ * The default integration method is the MEAN.
+ */
+ UnaryFunction1D(IntegrationType iType){_integration = iType;}
+ /*! destructor. */
+ virtual ~UnaryFunction1D() {}
+
+ /*! returns the string "UnaryFunction1D". */
+ virtual string getName() const {
+ return "UnaryFunction1D";
+ }
+ /*! The operator ().
+ * \param inter
+ * The Interface1D on which we wish to evaluate
+ * the function.
+ * \return the result of the function of type T.
+ */
+ virtual T operator()(Interface1D& inter) {
+ cerr << "Warning: operator() not implemented" << endl;
+ return T(0);
+ }
+ /*! Sets the integration method */
+ void setIntegrationType(IntegrationType integration) {
+ _integration = integration;
+ }
+ /*! Returns the integration method. */
+ IntegrationType getIntegrationType() const {
+ return _integration;
+ }
+
+protected:
+
+ IntegrationType _integration;
+};
+
+# ifdef SWIG
+%feature("director") UnaryFunction1D<void>;
+%feature("director") UnaryFunction1D<unsigned>;
+%feature("director") UnaryFunction1D<float>;
+%feature("director") UnaryFunction1D<double>;
+%feature("director") UnaryFunction1D<Vec2f>;
+%feature("director") UnaryFunction1D<Vec3f>;
+
+%template(UnaryFunction1DVoid) UnaryFunction1D<void>;
+%template(UnaryFunction1DUnsigned) UnaryFunction1D<unsigned>;
+%template(UnaryFunction1DFloat) UnaryFunction1D<float>;
+%template(UnaryFunction1DDouble) UnaryFunction1D<double>;
+%template(UnaryFunction1DVec2f) UnaryFunction1D<Vec2f>;
+%template(UnaryFunction1DVec3f) UnaryFunction1D<Vec3f>;
+%template(UnaryFunction1DVectorViewShape) UnaryFunction1D<std::vector<ViewShape*> >;
+# endif // SWIG
+
+
+//
+// Functions definitions
+//
+///////////////////////////////////////////////////////////
+
+namespace Functions1D {
+
+ // GetXF1D
+ /*! Returns the X 3D coordinate of an Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetXF1D : public UnaryFunction1D<real>
+ {
+ private:
+ Functions0D::GetXF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ GetXF1D(IntegrationType iType) : UnaryFunction1D<real>(iType){}
+ /*! Returns the string "GetXF1D"*/
+ string getName() const {
+ return "GetXF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter) ;
+ };
+
+ // GetYF1D
+ /*! Returns the Y 3D coordinate of an Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetYF1D : public UnaryFunction1D<real>
+ {
+ private:
+ Functions0D::GetYF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ GetYF1D(IntegrationType iType = MEAN) : UnaryFunction1D<real>(iType){}
+ /*! Returns the string "GetYF1D"*/
+ string getName() const {
+ return "GetYF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter) ;
+ };
+
+ // GetZF1D
+ /*! Returns the Z 3D coordinate of an Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetZF1D : public UnaryFunction1D<real>
+ {
+ private:
+ Functions0D::GetZF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ GetZF1D(IntegrationType iType = MEAN) : UnaryFunction1D<real>(iType){}
+ /*! Returns the string "GetZF1D"*/
+ string getName() const {
+ return "GetZF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter) ;
+ };
+
+ // GetProjectedXF1D
+ /*! Returns the projected X 3D coordinate of an Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetProjectedXF1D : public UnaryFunction1D<real>
+ {
+ private:
+ Functions0D::GetProjectedXF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ GetProjectedXF1D(IntegrationType iType = MEAN) : UnaryFunction1D<real>(iType){}
+ public:
+ /*! Returns the string "GetProjectedXF1D"*/
+ string getName() const {
+ return "GetProjectedXF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter);
+ };
+
+ // GetProjectedYF1D
+ /*! Returns the projected Y 3D coordinate of an Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetProjectedYF1D : public UnaryFunction1D<real>
+ {
+ private:
+ Functions0D::GetProjectedYF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ GetProjectedYF1D(IntegrationType iType = MEAN) : UnaryFunction1D<real>(iType){}
+ public:
+ /*! Returns the string "GetProjectedYF1D"*/
+ string getName() const {
+ return "GetProjectedYF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter);
+ };
+
+ // GetProjectedZF1D
+ /*! Returns the projected Z 3D coordinate of an Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetProjectedZF1D : public UnaryFunction1D<real>
+ {
+ private:
+ Functions0D::GetProjectedZF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ GetProjectedZF1D(IntegrationType iType = MEAN) : UnaryFunction1D<real>(iType){}
+ public:
+ /*! Returns the string "GetProjectedZF1D"*/
+ string getName() const {
+ return "GetProjectedZF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter);
+ };
+
+ // Orientation2DF1D
+ /*! Returns the 2D orientation as a Vec2f*/
+ class LIB_VIEW_MAP_EXPORT Orientation2DF1D : public UnaryFunction1D<Vec2f>
+ {
+ private:
+ Functions0D::VertexOrientation2DF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ Orientation2DF1D(IntegrationType iType = MEAN) : UnaryFunction1D<Vec2f>(iType){}
+ /*! Returns the string "Orientation2DF1D"*/
+ string getName() const {
+ return "Orientation2DF1D";
+ }
+ /*! the () operator.*/
+ Vec2f operator()(Interface1D& inter);
+ };
+
+ // Orientation3DF1D
+ /*! Returns the 3D orientation as a Vec3f. */
+ class LIB_VIEW_MAP_EXPORT Orientation3DF1D : public UnaryFunction1D<Vec3f>
+ {
+ private:
+ Functions0D::VertexOrientation3DF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ Orientation3DF1D(IntegrationType iType = MEAN) : UnaryFunction1D<Vec3f>(iType){}
+ /*! Returns the string "Orientation3DF1D"*/
+ string getName() const {
+ return "Orientation3DF1D";
+ }
+ /*! the () operator.*/
+ Vec3f operator()(Interface1D& inter);
+ };
+
+ // ZDiscontinuityF1D
+ /*! Returns a real giving the distance between
+ * and Interface1D and the shape that lies behind (occludee).
+ * This distance is evaluated in the camera space and normalized
+ * between 0 and 1. Therefore, if no oject is occluded by the
+ * shape to which the Interface1D belongs to, 1 is returned.
+ */
+ class LIB_VIEW_MAP_EXPORT ZDiscontinuityF1D : public UnaryFunction1D<real>
+ {
+ private:
+ Functions0D::ZDiscontinuityF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ ZDiscontinuityF1D(IntegrationType iType = MEAN) : UnaryFunction1D<real>(iType){}
+ /*! Returns the string "ZDiscontinuityF1D"*/
+ string getName() const {
+ return "ZDiscontinuityF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter);
+ };
+
+ // QuantitativeInvisibilityF1D
+ /*! Returns the Quantitative Invisibility of an Interface1D element.
+ * If the Interface1D is a ViewEdge, then there is no ambiguity
+ * concerning the result. But, if the Interface1D results of a chaining
+ * (chain, stroke), then it might be made of several 1D elements
+ * of different Quantitative Invisibilities.
+ */
+ class LIB_VIEW_MAP_EXPORT QuantitativeInvisibilityF1D : public UnaryFunction1D<unsigned>
+ {
+ private:
+ Functions0D::QuantitativeInvisibilityF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ QuantitativeInvisibilityF1D(IntegrationType iType = MEAN) : UnaryFunction1D<unsigned int>(iType) {}
+ /*! Returns the string "QuantitativeInvisibilityF1D"*/
+ string getName() const {
+ return "QuantitativeInvisibilityF1D";
+ }
+ /*! the () operator.*/
+ unsigned operator()(Interface1D& inter);
+ };
+
+ // CurveNatureF1D
+/*! Returns the nature of the Interface1D (silhouette, ridge, crease...).
+ * Except if the Interface1D is a ViewEdge, this result might be ambiguous.
+ * Indeed, the Interface1D might result from the gathering of several 1D elements,
+ * each one being of a different nature. An integration method, such as
+ * the MEAN, might give, in this case, irrelevant results.
+ */
+ class LIB_VIEW_MAP_EXPORT CurveNatureF1D : public UnaryFunction1D<Nature::EdgeNature>
+ {
+ private:
+ Functions0D::CurveNatureF0D _func;
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ CurveNatureF1D(IntegrationType iType = MEAN) : UnaryFunction1D<Nature::EdgeNature>(iType) {}
+ /*! Returns the string "CurveNatureF1D"*/
+ string getName() const {
+ return "CurveNatureF1D";
+ }
+ /*! the () operator.*/
+ Nature::EdgeNature operator()(Interface1D& inter);
+ };
+
+ // TimeStampF1D
+/*! Returns the time stamp of the Interface1D. */
+ class LIB_VIEW_MAP_EXPORT TimeStampF1D : public UnaryFunction1D<void>
+ {
+ public:
+ /*! Returns the string "TimeStampF1D"*/
+ string getName() const {
+ return "TimeStampF1D";
+ }
+ /*! the () operator.*/
+ void operator()(Interface1D& inter);
+ };
+
+ // IncrementChainingTimeStampF1D
+/*! Increments the chaining time stamp of the Interface1D. */
+ class LIB_VIEW_MAP_EXPORT IncrementChainingTimeStampF1D : public UnaryFunction1D<void>
+ {
+ public:
+ /*! Returns the string "IncrementChainingTimeStampF1D"*/
+ string getName() const {
+ return "IncrementChainingTimeStampF1D";
+ }
+ /*! the () operator.*/
+ void operator()(Interface1D& inter);
+ };
+
+ // ChainingTimeStampF1D
+/*! Sets the chaining time stamp of the Interface1D. */
+ class LIB_VIEW_MAP_EXPORT ChainingTimeStampF1D : public UnaryFunction1D<void>
+ {
+ public:
+ /*! Returns the string "ChainingTimeStampF1D"*/
+ string getName() const {
+ return "ChainingTimeStampF1D";
+ }
+ /*! the () operator.*/
+ void operator()(Interface1D& inter);
+ };
+
+
+ // Curvature2DAngleF1D
+/*! Returns the 2D curvature as an angle for an Interface1D. */
+ class LIB_VIEW_MAP_EXPORT Curvature2DAngleF1D : public UnaryFunction1D<real>
+ {
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ Curvature2DAngleF1D(IntegrationType iType = MEAN) : UnaryFunction1D<real>(iType) {}
+ /*! Returns the string "Curvature2DAngleF1D"*/
+ string getName() const {
+ return "Curvature2DAngleF1D";
+ }
+ /*! the () operator.*/
+ real operator()(Interface1D& inter) {
+ return integrate(_fun, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+ private:
+ Functions0D::Curvature2DAngleF0D _fun;
+ };
+
+ // Normal2DF1D
+ /*! Returns the 2D normal for an interface 1D. */
+ class LIB_VIEW_MAP_EXPORT Normal2DF1D : public UnaryFunction1D<Vec2f>
+ {
+ public:
+ /*! Builds the functor.
+ * \param iType
+ * The integration method used to compute
+ * a single value from a set of values.
+ */
+ Normal2DF1D(IntegrationType iType = MEAN) : UnaryFunction1D<Vec2f>(iType) {}
+ /*! Returns the string "Normal2DF1D"*/
+ string getName() const {
+ return "Normal2DF1D";
+ }
+ /*! the () operator.*/
+ Vec2f operator()(Interface1D& inter) {
+ return integrate(_fun, inter.verticesBegin(), inter.verticesEnd(), _integration);
+ }
+ private:
+ Functions0D::Normal2DF0D _fun;
+ };
+
+ // GetShapeF1D
+ /*! Returns list of shapes covered by this Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetShapeF1D : public UnaryFunction1D<std::vector<ViewShape*> >
+ {
+ public:
+ /*! Builds the functor.
+ */
+ GetShapeF1D() : UnaryFunction1D<std::vector<ViewShape*> >() {}
+ /*! Returns the string "GetShapeF1D"*/
+ string getName() const {
+ return "GetShapeF1D";
+ }
+ /*! the () operator.*/
+ std::vector<ViewShape*> operator()(Interface1D& inter);
+ };
+
+ // GetOccludersF1D
+ /*! Returns list of occluding shapes covered by this Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetOccludersF1D : public UnaryFunction1D<std::vector<ViewShape*> >
+ {
+ public:
+ /*! Builds the functor.
+ */
+ GetOccludersF1D() : UnaryFunction1D<std::vector<ViewShape*> >() {}
+ /*! Returns the string "GetOccludersF1D"*/
+ string getName() const {
+ return "GetOccludersF1D";
+ }
+ /*! the () operator.*/
+ std::vector<ViewShape*> operator()(Interface1D& inter);
+ };
+
+ // GetOccludeeF1D
+ /*! Returns list of occluded shapes covered by this Interface1D. */
+ class LIB_VIEW_MAP_EXPORT GetOccludeeF1D : public UnaryFunction1D<std::vector<ViewShape*> >
+ {
+ public:
+ /*! Builds the functor.
+ */
+ GetOccludeeF1D() : UnaryFunction1D<std::vector<ViewShape*> >() {}
+ /*! Returns the string "GetOccludeeF1D"*/
+ string getName() const {
+ return "GetOccludeeF1D";
+ }
+ /*! the () operator.*/
+ std::vector<ViewShape*> operator()(Interface1D& inter);
+ };
+
+ // internal
+ ////////////
+
+ // getOccludeeF1D
+ LIB_VIEW_MAP_EXPORT
+ void getOccludeeF1D(Interface1D& inter, set<ViewShape*>& oShapes);
+
+ // getOccludersF1D
+ LIB_VIEW_MAP_EXPORT
+ void getOccludersF1D(Interface1D& inter, set<ViewShape*>& oShapes);
+
+ // getShapeF1D
+ LIB_VIEW_MAP_EXPORT
+ void getShapeF1D(Interface1D& inter, set<ViewShape*>& oShapes);
+
+} // end of namespace Functions1D
+
+#endif // FUNCTIONS1D_HPP
diff --git a/source/blender/freestyle/intern/view_map/Interface0D.h b/source/blender/freestyle/intern/view_map/Interface0D.h
new file mode 100755
index 00000000000..eec39d2f7bc
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/Interface0D.h
@@ -0,0 +1,351 @@
+//
+// Filename : Interface0D.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Interface to 0D elts
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef INTERFACE0D_H
+# define INTERFACE0D_H
+
+# include <string>
+# include <iostream>
+# include "../system/Id.h"
+# include "../system/Precision.h"
+# include "../winged_edge/Nature.h"
+# include "../geometry/Geom.h"
+using namespace std;
+
+//
+// Interface0D
+//
+//////////////////////////////////////////////////
+
+class FEdge;
+class SVertex;
+class ViewVertex;
+class NonTVertex;
+class TVertex;
+/*! Base class for any 0D element. */
+class Interface0D
+{
+public:
+
+ /*! Returns the string "Interface0D".*/
+ virtual string getExactTypeName() const {
+ return "Interface0D";
+ }
+
+ // Data access methods
+
+ /*! Returns the 3D x coordinate of the point. */
+ virtual real getX() const {
+ cerr << "Warning: method getX() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the 3D y coordinate of the point. */
+ virtual real getY() const {
+ cerr << "Warning: method getY() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the 3D z coordinate of the point. */
+ virtual real getZ() const {
+ cerr << "Warning: method getZ() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the 3D point. */
+ virtual Geometry::Vec3f getPoint3D() const {
+ cerr << "Warning: method getPoint3D() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the 2D x coordinate of the point. */
+ virtual real getProjectedX() const {
+ cerr << "Warning: method getProjectedX() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the 2D y coordinate of the point. */
+ virtual real getProjectedY() const {
+ cerr << "Warning: method getProjectedY() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the 2D z coordinate of the point. */
+ virtual real getProjectedZ() const {
+ cerr << "Warning: method getProjectedZ() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the 2D point. */
+ virtual Geometry::Vec2f getPoint2D() const {
+ cerr << "Warning: method getPoint2D() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the FEdge that lies between this Interface0D and the
+ * Interface0D given as argument. */
+ virtual FEdge* getFEdge(Interface0D&) {
+ cerr << "Warning: method getFEdge() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the Id of the point. */
+ virtual Id getId() const {
+ cerr << "Warning: method getId() not implemented" << endl;
+ return Id(0, 0);
+ }
+
+ /*! Returns the nature of the point. */
+ virtual Nature::VertexNature getNature() const {
+ cerr << "Warning: method getNature() not implemented" << endl;
+ return Nature::POINT;
+ }
+
+ /*! Cast the Interface0D in SVertex if it can be. */
+ virtual SVertex * castToSVertex(){
+ cerr << "Warning: can't cast this Interface0D in SVertex" << endl;
+ return 0;
+ }
+
+ /*! Cast the Interface0D in ViewVertex if it can be. */
+ virtual ViewVertex * castToViewVertex(){
+ cerr << "Warning: can't cast this Interface0D in ViewVertex" << endl;
+ return 0;
+ }
+
+ /*! Cast the Interface0D in NonTVertex if it can be. */
+ virtual NonTVertex * castToNonTVertex(){
+ cerr << "Warning: can't cast this Interface0D in NonTVertex" << endl;
+ return 0;
+ }
+
+ /*! Cast the Interface0D in TVertex if it can be. */
+ virtual TVertex * castToTVertex(){
+ cerr << "Warning: can't cast this Interface0D in TVertex" << endl;
+ return 0;
+ }
+};
+
+
+//
+// Interface0DIteratorNested
+//
+//////////////////////////////////////////////////
+
+class Interface0DIteratorNested
+{
+public:
+
+ virtual ~Interface0DIteratorNested() {}
+
+ virtual string getExactTypeName() const {
+ return "Interface0DIteratorNested";
+ }
+
+ virtual Interface0D& operator*() = 0;
+
+ virtual Interface0D* operator->() {
+ return &(operator*());
+ }
+
+ virtual void increment() = 0;
+
+ virtual void decrement() = 0;
+
+ virtual bool isBegin() const = 0;
+
+ virtual bool isEnd() const = 0;
+
+ virtual bool operator==(const Interface0DIteratorNested& it) const = 0;
+
+ virtual bool operator!=(const Interface0DIteratorNested& it) const {
+ return !(*this == it);
+ }
+
+ /*! Returns the curvilinear abscissa */
+ virtual float t() const = 0;
+ /*! Returns the point parameter 0<u<1 */
+ virtual float u() const = 0;
+
+ virtual Interface0DIteratorNested* copy() const = 0;
+};
+
+
+//
+// Interface0DIterator
+//
+//////////////////////////////////////////////////
+
+/*! Class defining an iterator over Interface0D elements.
+ * An instance of this iterator is always obtained
+ * from a 1D element.
+ * \attention In the scripting language, you must call
+ * \code it2 = Interface0DIterator(it1) \endcode instead of \code it2 = it1 \endcode
+ * where \a it1 and \a it2 are 2 Interface0DIterator.
+ * Otherwise, incrementing \a it1 will also increment \a it2.
+ */
+class Interface0DIterator
+{
+public:
+
+ Interface0DIterator(Interface0DIteratorNested* it = NULL) {
+ _iterator = it;
+ }
+
+ /*! Copy constructor */
+ Interface0DIterator(const Interface0DIterator& it) {
+ _iterator = it._iterator->copy();
+ }
+
+ /*! Destructor */
+ virtual ~Interface0DIterator() {
+ if (_iterator)
+ delete _iterator;
+ }
+
+ /*! Operator =
+ * \attention In the scripting language, you must call
+ * \code it2 = Interface0DIterator(it1) \endcode instead of \code it2 = it1 \endcode
+ * where \a it1 and \a it2 are 2 Interface0DIterator.
+ * Otherwise, incrementing \a it1 will also increment \a it2.
+ */
+ Interface0DIterator& operator=(const Interface0DIterator& it) {
+ if(_iterator)
+ delete _iterator;
+ _iterator = it._iterator->copy();
+ return *this;
+ }
+
+ /*! Returns the string "Interface0DIterator". */
+ string getExactTypeName() const {
+ if (!_iterator)
+ return "Interface0DIterator";
+ return _iterator->getExactTypeName() + "Proxy";
+ }
+
+ // FIXME test it != 0 (exceptions ?)
+
+ /*! Returns a reference to the pointed Interface0D.
+ * In the scripting language, you must call
+ * "getObject()" instead using this operator.
+ */
+ Interface0D& operator*() {
+ return _iterator->operator*();
+ }
+
+ /*! Returns a pointer to the pointed Interface0D.
+ * Can't be called in the scripting language.
+ */
+ Interface0D* operator->() {
+ return &(operator*());
+ }
+
+ /*! Increments. In the scripting language, call
+ * "increment()".
+ */
+ Interface0DIterator& operator++() {
+ _iterator->increment();
+ return *this;
+ }
+
+ /*! Increments. In the scripting language, call
+ * "increment()".
+ */
+ Interface0DIterator operator++(int) {
+ Interface0DIterator ret(*this);
+ _iterator->increment();
+ return ret;
+ }
+
+ /*! Decrements. In the scripting language, call
+ * "decrement()".
+ */
+ Interface0DIterator& operator--() {
+ _iterator->decrement();
+ return *this;
+ }
+
+ /*! Decrements. In the scripting language, call
+ * "decrement()".
+ */
+ Interface0DIterator operator--(int) {
+ Interface0DIterator ret(*this);
+ _iterator->decrement();
+ return ret;
+ }
+
+ /*! Increments. */
+ void increment() {
+ _iterator->increment();
+ }
+
+ /*! Decrements. */
+ void decrement() {
+ _iterator->decrement();
+ }
+
+ /*! Returns true if the pointed Interface0D is the
+ * first of the 1D element containing the points over
+ * which we're iterating.
+ */
+ bool isBegin() const {
+ return _iterator->isBegin();
+ }
+
+ /*! Returns true if the pointed Interface0D is after the
+ * after the last point of the 1D element we're iterating from.
+ */
+ bool isEnd() const {
+ return _iterator->isEnd();
+ }
+
+ /*! operator == . */
+ bool operator==(const Interface0DIterator& it) const {
+ return _iterator->operator==(*(it._iterator));
+ }
+
+ /*! operator != . */
+ bool operator!=(const Interface0DIterator& it) const {
+ return !(*this == it);
+ }
+
+ /*! Returns the curvilinear abscissa. */
+ inline float t() const {
+ return _iterator->t();
+ }
+ /*! Returns the point parameter in the curve 0<=u<=1. */
+ inline float u() const {
+ return _iterator->u();
+ }
+protected:
+
+ Interface0DIteratorNested* _iterator;
+};
+
+#endif // INTERFACE0D_H
diff --git a/source/blender/freestyle/intern/view_map/Interface1D.h b/source/blender/freestyle/intern/view_map/Interface1D.h
new file mode 100755
index 00000000000..812187e5ec1
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/Interface1D.h
@@ -0,0 +1,202 @@
+//
+// Filename : Interface1D.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Interface to 1D elts
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef INTERFACE1D_H
+# define INTERFACE1D_H
+
+# include <string>
+# include <iostream>
+# include <float.h>
+# include "../system/Id.h"
+# include "../system/Precision.h"
+# include "../winged_edge/Nature.h"
+# include "Functions0D.h"
+
+using namespace std;
+/*! \file Interface1D.h
+ * Interface1D and related tools definitions
+ */
+// Integration method
+/*! The different integration
+ * methods that can be invoked
+ * to integrate into a single value the set of values obtained
+ * from each 0D element of a 1D element.
+ */
+typedef enum {
+ MEAN,/*!< The value computed for the 1D element is the mean of the values obtained for the 0D elements.*/
+ MIN,/*!< The value computed for the 1D element is the minimum of the values obtained for the 0D elements.*/
+ MAX,/*!< The value computed for the 1D element is the maximum of the values obtained for the 0D elements.*/
+ FIRST,/*!< The value computed for the 1D element is the first of the values obtained for the 0D elements.*/
+ LAST/*!< The value computed for the 1D element is the last of the values obtained for the 0D elements.*/
+} IntegrationType;
+
+/*! Returns a single
+ * value from a set of values evaluated at each 0D element
+ * of this 1D element.
+ * \param fun
+ * The UnaryFunction0D used to compute a value at each Interface0D.
+ * \param it
+ * The Interface0DIterator used to iterate over the 0D elements of
+ * this 1D element. The integration will occur over the 0D elements
+ * starting from the one pointed by it.
+ * \param it_end
+ * The Interface0DIterator pointing the end of the 0D elements of the
+ * 1D element.
+ * \param integration_type
+ * The integration method used to compute a single value from
+ * a set of values.
+ * \return the single value obtained for the 1D element.
+ */
+template <class T>
+T integrate(UnaryFunction0D<T>& fun,
+ Interface0DIterator it,
+ Interface0DIterator it_end,
+ IntegrationType integration_type = MEAN) {
+ T res;
+ T res_tmp;
+ unsigned size;
+ switch (integration_type) {
+ case MIN:
+ res = fun(it);++it;
+ for (; !it.isEnd(); ++it) {
+ res_tmp = fun(it);
+ if (res_tmp < res)
+ res = res_tmp;
+ }
+ break;
+ case MAX:
+ res = fun(it);++it;
+ for (; !it.isEnd(); ++it) {
+ res_tmp = fun(it);
+ if (res_tmp > res)
+ res = res_tmp;
+ }
+ break;
+ case FIRST:
+ res = fun(it);
+ break;
+ case LAST:
+ res = fun(--it_end);
+ break;
+ case MEAN:
+ default:
+ res = fun(it);++it;
+ for (size = 1; !it.isEnd(); ++it, ++size)
+ res += fun(it);
+ res /= (size ? size : 1);
+ break;
+ }
+ return res;
+}
+
+//
+// Interface1D
+//
+//////////////////////////////////////////////////
+
+/*! Base class for any 1D element. */
+class Interface1D
+{
+public:
+
+ /*! Default constructor */
+ Interface1D() {_timeStamp=0;}
+
+ /*! Returns the string "Interface1D" .*/
+ virtual string getExactTypeName() const {
+ return "Interface1D";
+ }
+
+ // Iterator access
+
+ /*! Returns an iterator over the Interface1D vertices,
+ * pointing to the first vertex.
+ */
+ virtual Interface0DIterator verticesBegin() = 0;
+ /*! Returns an iterator over the Interface1D vertices,
+ * pointing after the last vertex.
+ */
+ virtual Interface0DIterator verticesEnd() = 0;
+ /*! Returns an iterator over the Interface1D points,
+ * pointing to the first point. The difference with
+ * verticesBegin() is that here we can iterate over
+ * points of the 1D element at a any given sampling.
+ * Indeed, for each iteration, a virtual point is created.
+ * \param t
+ * The sampling with which we want to iterate over points of
+ * this 1D element.
+ */
+ virtual Interface0DIterator pointsBegin(float t=0.f) = 0;
+ /*! Returns an iterator over the Interface1D points,
+ * pointing after the last point. The difference with
+ * verticesEnd() is that here we can iterate over
+ * points of the 1D element at a any given sampling.
+ * Indeed, for each iteration, a virtual point is created.
+ * \param t
+ * The sampling with which we want to iterate over points of
+ * this 1D element.
+ */
+ virtual Interface0DIterator pointsEnd(float t=0.f) = 0;
+
+ // Data access methods
+
+ /*! Returns the 2D length of the 1D element. */
+ virtual real getLength2D() const {
+ cerr << "Warning: method getLength2D() not implemented" << endl;
+ return 0;
+ }
+
+ /*! Returns the Id of the 1D element .*/
+ virtual Id getId() const {
+ cerr << "Warning: method getId() not implemented" << endl;
+ return Id(0, 0);
+ }
+
+ // FIXME: ce truc n'a rien a faire la...(c une requete complexe qui doit etre ds les Function1D)
+ /*! Returns the nature of the 1D element. */
+ virtual Nature::EdgeNature getNature() const {
+ cerr << "Warning: method getNature() not implemented" << endl;
+ return Nature::NO_FEATURE;
+ }
+
+ /*! Returns the time stamp of the 1D element. Mainly used for selection. */
+ virtual unsigned getTimeStamp() const {
+ return _timeStamp;
+ }
+
+ /*! Sets the time stamp for the 1D element. */
+ inline void setTimeStamp(unsigned iTimeStamp){
+ _timeStamp = iTimeStamp;
+ }
+
+protected:
+ unsigned _timeStamp;
+};
+
+#endif // INTERFACE1D_H
diff --git a/source/blender/freestyle/intern/view_map/Silhouette.cpp b/source/blender/freestyle/intern/view_map/Silhouette.cpp
new file mode 100755
index 00000000000..db4f82d369e
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/Silhouette.cpp
@@ -0,0 +1,370 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "Silhouette.h"
+#include "ViewMap.h"
+
+ /**********************************/
+ /* */
+ /* */
+ /* SVertex */
+ /* */
+ /* */
+ /**********************************/
+
+Nature::VertexNature SVertex::getNature() const {
+ Nature::VertexNature nature = Nature::S_VERTEX;
+ if (_pViewVertex)
+ nature |= _pViewVertex->getNature();
+ return nature;
+}
+
+SVertex * SVertex::castToSVertex(){
+ return this;
+}
+
+ViewVertex * SVertex::castToViewVertex(){
+ return _pViewVertex;
+}
+
+NonTVertex * SVertex::castToNonTVertex(){
+ return dynamic_cast<NonTVertex*>(_pViewVertex);
+}
+
+TVertex * SVertex::castToTVertex(){
+ return dynamic_cast<TVertex*>(_pViewVertex);
+}
+
+float SVertex::shape_importance() const
+{
+ return shape()->importance();
+}
+
+//Material SVertex::material() const {return _Shape->material();}
+Id SVertex::shape_id() const {return _Shape->getId();}
+const SShape * SVertex::shape() const {return _Shape;}
+
+const int SVertex::qi() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->qi();
+}
+
+occluder_container::const_iterator SVertex::occluders_begin() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->occluders_begin();
+}
+
+occluder_container::const_iterator SVertex::occluders_end() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->occluders_end();
+}
+
+bool SVertex::occluders_empty() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->occluders_empty();
+}
+
+int SVertex::occluders_size() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->occluders_size();
+}
+
+const Polygon3r& SVertex::occludee() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->occludee();
+}
+
+const SShape* SVertex::occluded_shape() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->occluded_shape();
+}
+
+const bool SVertex::occludee_empty() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->occludee_empty();
+}
+
+real SVertex::z_discontinuity() const
+{
+ if (getNature() & Nature::T_VERTEX)
+ Exception::raiseException();
+ return (_FEdges[0])->z_discontinuity();
+}
+
+FEdge* SVertex::fedge()
+{
+ if (getNature() & Nature::T_VERTEX)
+ return 0;
+ return _FEdges[0];
+}
+
+FEdge* SVertex::getFEdge(Interface0D& inter)
+{
+ FEdge * result = 0;
+ SVertex* iVertexB = dynamic_cast<SVertex*>(&inter);
+ if (!iVertexB)
+ return result;
+ vector<FEdge*>::const_iterator fe=_FEdges.begin(), feend=_FEdges.end();
+ for(;
+ fe!=feend;
+ ++fe)
+ {
+ if( (((*fe)->vertexA() == this) && ((*fe)->vertexB() == iVertexB))
+ || (((*fe)->vertexB() == this) && ((*fe)->vertexA() == iVertexB)))
+ result = (*fe);
+ }
+ if((result == 0) && (getNature() & Nature::T_VERTEX))
+ {
+ SVertex *brother;
+ ViewVertex *vvertex = viewvertex();
+ TVertex * tvertex = dynamic_cast<TVertex*>(vvertex);
+ if(tvertex)
+ {
+ brother = tvertex->frontSVertex();
+ if(this == brother)
+ brother = tvertex->backSVertex();
+ const vector<FEdge*>& fedges = brother->fedges();
+ for(fe=fedges.begin(),feend=fedges.end();
+ fe!=feend;
+ ++fe)
+ {
+ if( (((*fe)->vertexA() == brother) && ((*fe)->vertexB() == iVertexB))
+ || (((*fe)->vertexB() == brother) && ((*fe)->vertexA() == iVertexB)))
+ result = (*fe);
+ }
+ }
+ }
+ if((result == 0) && (iVertexB->getNature() & Nature::T_VERTEX))
+ {
+ SVertex *brother;
+ ViewVertex *vvertex = iVertexB->viewvertex();
+ TVertex * tvertex = dynamic_cast<TVertex*>(vvertex);
+ if(tvertex)
+ {
+ brother = tvertex->frontSVertex();
+ if(iVertexB == brother)
+ brother = tvertex->backSVertex();
+ for(fe=_FEdges.begin(),feend=_FEdges.end();
+ fe!=feend;
+ ++fe)
+ {
+ if( (((*fe)->vertexA() == this) && ((*fe)->vertexB() == brother))
+ || (((*fe)->vertexB() == this) && ((*fe)->vertexA() == brother)))
+ result = (*fe);
+ }
+ }
+ }
+
+ return result;
+}
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* FEdge */
+ /* */
+ /* */
+ /**********************************/
+
+
+int FEdge::viewedge_nature() const {return _ViewEdge->getNature();}
+//float FEdge::viewedge_length() const {return _ViewEdge->viewedge_length();}
+const SShape* FEdge::occluded_shape() const
+{
+ ViewShape * aShape = _ViewEdge->aShape();
+ if(aShape == 0)
+ return 0;
+ return aShape->sshape();
+}
+
+float FEdge::shape_importance() const
+{
+ return _VertexA->shape()->importance();
+}
+
+int FEdge::invisibility() const
+{
+ return _ViewEdge->qi();
+}
+
+occluder_container::const_iterator FEdge::occluders_begin() const {return _ViewEdge->occluders_begin();}
+occluder_container::const_iterator FEdge::occluders_end() const {return _ViewEdge->occluders_end();}
+bool FEdge::occluders_empty() const {return _ViewEdge->occluders_empty();}
+int FEdge::occluders_size() const {return _ViewEdge->occluders_size();}
+const bool FEdge::occludee_empty() const
+{
+ return _ViewEdge->occludee_empty();
+}
+
+
+
+Id FEdge::shape_id() const
+{
+ return _VertexA->shape()->getId();
+}
+const SShape* FEdge::shape() const
+{
+ return _VertexA->shape();
+}
+
+real FEdge::z_discontinuity() const
+{
+ if(!(getNature() & Nature::SILHOUETTE) && !(getNature() & Nature::BORDER))
+ {
+ return 0;
+ }
+
+ BBox<Vec3r> box = ViewMap::getInstance()->getScene3dBBox();
+
+ Vec3r bbox_size_vec(box.getMax() - box.getMin());
+ real bboxsize = bbox_size_vec.norm();
+ if(occludee_empty())
+
+ {
+ //return FLT_MAX;
+
+ return 1.0;
+
+ //return bboxsize;
+
+ }
+ // real result;
+ // z_discontinuity_functor<SVertex> _functor;
+
+ // Evaluate<SVertex,z_discontinuity_functor<SVertex> >(&_functor, iCombination, result )
+ Vec3r middle((_VertexB->point3d()-_VertexA->point3d()));
+
+ middle /= 2;
+ Vec3r disc_vec(middle - _occludeeIntersection);
+ real res = disc_vec.norm() / bboxsize;
+ return res;
+
+ //return fabs((middle.z()-_occludeeIntersection.z()));
+}
+
+
+//float FEdge::local_average_depth(int iCombination ) const
+//{
+//
+// float result;
+// local_average_depth_functor<SVertex> functor;
+// Evaluate(&functor, iCombination, result);
+//
+// return result;
+//}
+//float FEdge::local_depth_variance(int iCombination ) const
+//{
+// float result;
+//
+// local_depth_variance_functor<SVertex> functor;
+//
+// Evaluate(&functor, iCombination, result);
+//
+// return result;
+//}
+//
+//
+//real FEdge::local_average_density( float sigma, int iCombination) const
+//{
+// float result;
+//
+// density_functor<SVertex> functor(sigma);
+//
+// Evaluate(&functor, iCombination, result);
+//
+// return result;
+//}
+//
+////Vec3r FEdge::normal(int& oException /* = Exception::NO_EXCEPTION */)
+////{
+//// Vec3r Na = _VertexA->normal(oException);
+//// if(oException != Exception::NO_EXCEPTION)
+//// return Na;
+//// Vec3r Nb = _VertexB->normal(oException);
+//// if(oException != Exception::NO_EXCEPTION)
+//// return Nb;
+//// return (Na+Nb)/2.0;
+////}
+//
+//Vec3r FEdge::curvature2d_as_vector(int iCombination) const
+//{
+// Vec3r result;
+// curvature2d_as_vector_functor<SVertex> _functor;
+// Evaluate<Vec3r,curvature2d_as_vector_functor<SVertex> >(&_functor, iCombination, result );
+// return result;
+//}
+//
+//real FEdge::curvature2d_as_angle(int iCombination) const
+//{
+// real result;
+// curvature2d_as_angle_functor<SVertex> _functor;
+// Evaluate<real,curvature2d_as_angle_functor<SVertex> >(&_functor, iCombination, result );
+// return result;
+//}
+
+ /**********************************/
+ /* */
+ /* */
+ /* FEdgeSharp */
+ /* */
+ /* */
+ /**********************************/
+
+//Material FEdge::material() const
+//{
+// return _VertexA->shape()->material();
+//}
+const Material& FEdgeSharp::aMaterial() const {
+ return _VertexA->shape()->material(_aMaterialIndex);
+}
+
+const Material& FEdgeSharp::bMaterial() const {
+ return _VertexA->shape()->material(_bMaterialIndex);
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* FEdgeSmooth */
+ /* */
+ /* */
+ /**********************************/
+
+const Material& FEdgeSmooth::material() const {
+ return _VertexA->shape()->material(_MaterialIndex);
+}
diff --git a/source/blender/freestyle/intern/view_map/Silhouette.h b/source/blender/freestyle/intern/view_map/Silhouette.h
new file mode 100755
index 00000000000..e88bf23b210
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/Silhouette.h
@@ -0,0 +1,1417 @@
+//
+// Filename : Silhouette.h
+// Author(s) : Stephane Grabli
+// Purpose : Classes to define a silhouette structure
+// Date of creation : 25/03/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef SILHOUETTE_H
+# define SILHOUETTE_H
+
+# include <iostream>
+# include <string>
+# include <vector>
+# include <set>
+# include <float.h>
+# include "../system/FreestyleConfig.h"
+# include "../geometry/Geom.h"
+# include "../geometry/BBox.h"
+# include "../scene_graph/Material.h"
+# include "../geometry/Polygon.h"
+# include "../system/Exception.h"
+# include "Interface0D.h"
+# include "Interface1D.h"
+# include "../winged_edge/Curvature.h"
+
+using namespace std;
+using namespace Geometry;
+
+class ViewShape;
+typedef vector<ViewShape*> occluder_container;
+
+ /**********************************/
+ /* */
+ /* */
+ /* SVertex */
+ /* */
+ /* */
+ /**********************************/
+
+class FEdge;
+class ViewVertex;
+class SShape;
+
+/*! Class to define a vertex of the embedding. */
+class LIB_VIEW_MAP_EXPORT SVertex : public Interface0D
+{
+public: // Implementation of Interface0D
+
+ /*! Returns the string "SVertex" .*/
+ virtual string getExactTypeName() const {
+ return "SVertex";
+ }
+
+ // Data access methods
+
+ /*! Returns the 3D x coordinate of the vertex .*/
+ virtual real getX() const {
+ return _Point3D.x();
+ }
+
+ /*! Returns the 3D y coordinate of the vertex .*/
+ virtual real getY() const {
+ return _Point3D.y();
+ }
+
+ /*! Returns the 3D z coordinate of the vertex .*/
+ virtual real getZ() const {
+ return _Point3D.z();
+ }
+
+ /*! Returns the 3D point. */
+ virtual Vec3f getPoint3D() const {
+ return _Point3D;
+ }
+
+ /*! Returns the projected 3D x coordinate of the vertex .*/
+ virtual real getProjectedX() const {
+ return _Point2D.x();
+ }
+
+ /*! Returns the projected 3D y coordinate of the vertex .*/
+ virtual real getProjectedY() const {
+ return _Point2D.y();
+ }
+
+ /*! Returns the projected 3D z coordinate of the vertex .*/
+ virtual real getProjectedZ() const {
+ return _Point2D.z();
+ }
+
+ /*! Returns the 2D point. */
+ virtual Vec2f getPoint2D() const {
+ return Vec2f((float)_Point2D.x(),(float)_Point2D.y());
+ }
+
+ /*! Returns the FEdge that lies between this Svertex and the
+ * Interface0D given as argument. */
+ virtual FEdge* getFEdge(Interface0D&);
+
+ /*! Returns the Id of the vertex .*/
+ virtual Id getId() const {
+ return _Id;
+ }
+
+ /*! Returns the nature of the vertex .*/
+ virtual Nature::VertexNature getNature() const;
+
+ /*! Cast the Interface0D in SVertex if it can be. */
+ virtual SVertex * castToSVertex();
+
+ /*! Cast the Interface0D in ViewVertex if it can be. */
+ virtual ViewVertex * castToViewVertex();
+
+ /*! Cast the Interface0D in NonTVertex if it can be. */
+ virtual NonTVertex * castToNonTVertex();
+
+ /*! Cast the Interface0D in TVertex if it can be. */
+ virtual TVertex * castToTVertex();
+
+public:
+
+ typedef vector<FEdge*> fedges_container;
+
+private:
+
+ Id _Id;
+ Vec3r _Point3D;
+ Vec3r _Point2D;
+ set<Vec3r> _Normals;
+ vector<FEdge*> _FEdges; // the edges containing this vertex
+ SShape *_Shape; // the shape to which belongs the vertex
+ ViewVertex *_pViewVertex; // The associated viewvertex, in case there is one.
+ real _curvatureFredo;
+ Vec2r _directionFredo;
+ CurvatureInfo* _curvature_info;
+
+public:
+
+ /*! A field that can be used by the user to store any data.
+ * This field must be reseted afterwards using ResetUserData().
+ */
+ void *userdata;
+
+ /*! Default constructor.*/
+ inline SVertex() {
+ _Id = 0;
+ userdata = NULL;
+ _Shape = NULL;
+ _pViewVertex = 0;
+ _curvature_info = 0;
+ }
+
+ /*! Builds a SVertex from 3D coordinates and an Id. */
+ inline SVertex(const Vec3r &iPoint3D, const Id& id) {
+ _Point3D = iPoint3D;
+ _Id=id;
+ userdata = NULL;
+ _Shape = NULL;
+ _pViewVertex=0;
+ _curvature_info = 0;
+ }
+
+ /*! Copy constructor. */
+ inline SVertex(SVertex& iBrother) {
+ _Id = iBrother._Id;
+ _Point3D = iBrother.point3D();
+ _Point2D = iBrother.point2D();
+ _Normals = iBrother._Normals;
+ _FEdges = iBrother.fedges();
+ _Shape = iBrother.shape();
+ _pViewVertex = iBrother._pViewVertex;
+ if (!(iBrother._curvature_info))
+ _curvature_info = 0;
+ else
+ _curvature_info = new CurvatureInfo(*(iBrother._curvature_info));
+ iBrother.userdata = this;
+ userdata = 0;
+ }
+
+ /*! Destructor. */
+ virtual ~SVertex() {
+ if (_curvature_info)
+ delete _curvature_info;
+ }
+
+ /*! Cloning method. */
+ virtual SVertex * dupplicate() {
+ SVertex *clone = new SVertex(*this);
+ return clone;
+ }
+
+ /*! operator == */
+ virtual bool operator==(const SVertex& iBrother) {
+ return ((_Point2D == iBrother._Point2D) &&
+ (_Point3D == iBrother._Point3D));
+ }
+
+ /* accessors */
+ inline const Vec3r& point3D() const {return _Point3D;}
+ inline const Vec3r& point2D() const {return _Point2D;}
+ /*! Returns the set of normals for this Vertex.
+ * In a smooth surface, a vertex has exactly one normal.
+ * In a sharp surface, a vertex can have any number of normals.
+ */
+ inline set<Vec3r> normals() {return _Normals;}
+ /*! Returns the number of different normals for this vertex. */
+ inline unsigned normalsSize() const {return _Normals.size();}
+ inline const vector<FEdge*>& fedges() {return _FEdges;}
+ inline fedges_container::iterator fedges_begin() {return _FEdges.begin();}
+ inline fedges_container::iterator fedges_end() {return _FEdges.end();}
+ inline SShape * shape() {return _Shape;}
+ inline real z() const {return _Point2D[2];}
+ /*! If this SVertex is also a ViewVertex, this method
+ * returns a pointer onto this ViewVertex. 0 is returned
+ * otherwise.
+ */
+ inline ViewVertex * viewvertex() {return _pViewVertex;}
+
+ /*! modifiers */
+ /*! Sets the 3D coordinates of the SVertex. */
+ inline void SetPoint3D(const Vec3r &iPoint3D) {_Point3D = iPoint3D;}
+ /*! Sets the 3D projected coordinates of the SVertex. */
+ inline void SetPoint2D(const Vec3r &iPoint2D) {_Point2D = iPoint2D;}
+ /*! Adds a normal to the Svertex's set of normals. If the same
+ * normal is already in the set, nothing changes.
+ */
+ inline void AddNormal(const Vec3r& iNormal)
+ {
+ _Normals.insert(iNormal); // if iNormal in the set already exists, nothing is done
+ }
+
+ void setCurvatureInfo(CurvatureInfo* ci) {
+ _curvature_info = ci;
+ }
+
+ const CurvatureInfo* getCurvatureInfo() const {
+ return _curvature_info;
+ }
+
+ /* Fredo's normal and curvature*/
+ void setCurvatureFredo(real c) {_curvatureFredo=c;}
+ void setDirectionFredo(Vec2r d) {_directionFredo=d;}
+ real curvatureFredo () {return _curvatureFredo;}
+ const Vec2r directionFredo () {return _directionFredo;}
+
+ /*! Sets the Id */
+ inline void SetId(const Id& id) {_Id = id;}
+ inline void SetFEdges(const vector<FEdge*>& iFEdges) {_FEdges = iFEdges;}
+ inline void SetShape(SShape *iShape) {_Shape = iShape;}
+ inline void SetViewVertex(ViewVertex *iViewVertex) {_pViewVertex = iViewVertex;}
+ /*! Add an FEdge to the list of edges emanating from this SVertex. */
+ inline void AddFEdge(FEdge* iFEdge) {_FEdges.push_back(iFEdge);}
+ /* replaces edge 1 by edge 2 in the list of edges */
+ inline void Replace(FEdge *e1, FEdge *e2)
+ {
+ vector<FEdge*>::iterator insertedfe;
+ for(vector<FEdge*>::iterator fe=_FEdges.begin(),fend=_FEdges.end();
+ fe!=fend;
+ fe++)
+ {
+ if((*fe) == e1)
+ {
+ insertedfe = _FEdges.insert(fe, e2);// inserts e2 before fe.
+ // returns an iterator pointing toward e2. fe is invalidated.
+ // we want to remove e1, but we can't use fe anymore:
+ insertedfe++; // insertedfe points now to e1
+ _FEdges.erase(insertedfe);
+ return;
+ }
+ }
+ }
+
+public:
+
+ /* Information access interface */
+
+ FEdge *fedge() ; // for non T vertex
+ inline const Vec3r& point2d() const {return point2D();}
+ inline const Vec3r& point3d() const {return point3D();}
+ inline Vec3r normal() const {if(_Normals.size() == 1) return (*(_Normals.begin())); Exception::raiseException(); return *(_Normals.begin());}
+ //Material material() const ;
+ Id shape_id() const ;
+ const SShape* shape() const ;
+ float shape_importance() const ;
+
+ const int qi() const ;
+ occluder_container::const_iterator occluders_begin() const ;
+ occluder_container::const_iterator occluders_end() const ;
+ bool occluders_empty() const ;
+ int occluders_size() const ;
+ const Polygon3r& occludee() const ;
+ const SShape * occluded_shape() const ;
+ const bool occludee_empty() const ;
+ real z_discontinuity() const ;
+ //inline float local_average_depth() const ;
+ // inline float local_depth_variance() const ;
+ // inline real local_average_density(float sigma = 2.3f) const ;
+ //inline Vec3r shaded_color() const ;
+ // inline Vec3r orientation2d() const ;
+ // inline Vec3r orientation3d() const ;
+ // inline Vec3r curvature2d_as_vector() const ;
+ /*! angle in radians */
+ // inline real curvature2d_as_angle() const ;
+
+};
+
+ /**********************************/
+ /* */
+ /* */
+ /* FEdge */
+ /* */
+ /* */
+ /**********************************/
+
+
+class ViewEdge;
+/*! Base Class for feature edges.
+ * This FEdge can represent a silhouette, a crease,
+ * a ridge/valley, a border or a suggestive contour.
+ * For silhouettes, the FEdge is oriented
+ * such as, the visible face lies on the left of the edge.
+ * For borders, the FEdge is oriented
+ * such as, the face lies on the left of the edge.
+ * An FEdge can represent an initial edge of the mesh
+ * or runs accross a face of the initial mesh depending
+ * on the smoothness or sharpness of the mesh.
+ * This class is specialized into a smooth and a sharp
+ * version since their properties slightly vary from
+ * one to the other.
+ */
+class LIB_VIEW_MAP_EXPORT FEdge : public Interface1D
+{
+public: // Implementation of Interface0D
+
+ /*! Returns the string "FEdge" . */
+ virtual string getExactTypeName() const {
+ return "FEdge";
+ }
+
+ // Data access methods
+
+ /*! Returns the 2D length of the FEdge. */
+ virtual real getLength2D() const {
+ if (!_VertexA || !_VertexB)
+ return 0;
+ return (_VertexB->getPoint2D() - _VertexA->getPoint2D()).norm();
+ }
+
+ /*! Returns the Id of the FEdge. */
+ virtual Id getId() const {
+ return _Id;
+ }
+
+public:
+
+ // An edge can only be of one kind (SILHOUETTE or BORDER, etc...)
+ // For an multi-nature edge there must be several different FEdge.
+ // DEBUG:
+ // Vec3r A;
+ // Vec3r u;
+ // vector<Polygon3r> _Occludees;
+ // Vec3r intersection;
+ // vector<Vec3i> _Cells;
+
+protected:
+ SVertex *_VertexA;
+ SVertex *_VertexB;
+ Id _Id;
+ Nature::EdgeNature _Nature;
+ //vector<Polygon3r> _Occluders; // visibility // NON GERE PAR LE COPY CONSTRUCTOR!!
+
+ FEdge *_NextEdge; // next edge on the chain
+ FEdge *_PreviousEdge;
+ ViewEdge *_ViewEdge;
+ // Sometimes we need to deport the visibility computation onto another
+ // edge. For example the exact edges use edges of the mesh to
+ // compute their visibility
+
+ Polygon3r _aFace; // The occluded face which lies on the right of a silhouette edge
+ Vec3r _occludeeIntersection;
+ bool _occludeeEmpty;
+
+ bool _isSmooth;
+
+public:
+ /*! A field that can be used by the user to store any data.
+ * This field must be reseted afterwards using ResetUserData().
+ */
+ void *userdata;
+ /*! Default constructor */
+ inline FEdge() {
+ userdata = NULL;
+ _Nature = Nature::NO_FEATURE;
+ _NextEdge = NULL;
+ _PreviousEdge = NULL;
+ _ViewEdge = NULL;
+ //_hasVisibilityPoint=false;
+ _occludeeEmpty = true;
+ _isSmooth = false;
+ }
+ /*! Builds an FEdge going from vA to vB. */
+ inline FEdge(SVertex *vA, SVertex *vB) {
+ userdata = NULL;
+ _VertexA = vA;
+ _VertexB = vB;
+ _Nature = Nature::NO_FEATURE;
+ _NextEdge=NULL;
+ _PreviousEdge=NULL;
+ _ViewEdge = NULL;
+ //_hasVisibilityPoint=false;
+ _occludeeEmpty = true;
+ _isSmooth = false;
+ }
+ /*! Copy constructor */
+ inline FEdge(FEdge& iBrother)
+ {
+ _VertexA = iBrother.vertexA();
+ _VertexB = iBrother.vertexB();
+ _NextEdge = iBrother.nextEdge();
+ _PreviousEdge = iBrother._PreviousEdge;
+ _Nature = iBrother.getNature();
+ _Id = iBrother._Id;
+ _ViewEdge = iBrother._ViewEdge;
+ //_hasVisibilityPoint = iBrother._hasVisibilityPoint;
+ //_VisibilityPointA = iBrother._VisibilityPointA;
+ //_VisibilityPointB = iBrother._VisibilityPointB;
+ _aFace = iBrother._aFace;
+ _occludeeEmpty = iBrother._occludeeEmpty;
+ _isSmooth = iBrother._isSmooth;
+ iBrother.userdata = this;
+ userdata = 0;
+ }
+ /*! Destructor */
+ virtual ~FEdge() {}
+ /*! Cloning method. */
+ virtual FEdge* dupplicate()
+ {
+ FEdge *clone = new FEdge(*this);
+ return clone;
+ }
+ /* accessors */
+ /*! Returns the first SVertex. */
+ inline SVertex* vertexA() {return _VertexA;}
+ /*! Returns the second SVertex. */
+ inline SVertex* vertexB() {return _VertexB;}
+ /*! Returns the first SVertex if i=0, the seccond SVertex
+ * if i=1. */
+ inline SVertex* operator[](const unsigned short int& i) const{
+ return i%2==0 ? _VertexA : _VertexB;
+ }
+ /*! Returns the nature of the FEdge. */
+ inline Nature::EdgeNature getNature() const {return _Nature;}
+ /*! Returns the FEdge following this one in the ViewEdge.
+ * If this FEdge is the last of the ViewEdge, 0 is returned.
+ */
+ inline FEdge * nextEdge() {return _NextEdge;}
+ /*! Returns the Edge preceding this one in the ViewEdge.
+ * If this FEdge is the first one of the ViewEdge, 0 is returned.
+ */
+ inline FEdge * previousEdge() {return _PreviousEdge;}
+ inline SShape * shape() {return _VertexA->shape();}
+ //inline int invisibility() const {return _Occluders.size();}
+ int invisibility() const ;
+ //inline const vector<Polygon3r>& occluders() const {return _Occluders;}
+ /*! Returns a pointer to the ViewEdge to which this FEdge belongs to. */
+ inline ViewEdge * viewedge() const {return _ViewEdge;}
+ inline Vec3r center3d() {return Vec3r((_VertexA->point3D()+_VertexB->point3D())/2.0);}
+ inline Vec3r center2d() {return Vec3r((_VertexA->point2D()+_VertexB->point2D())/2.0);}
+ // inline bool hasVisibilityPoint() const {return _hasVisibilityPoint;}
+ // inline Vec3r visibilityPointA() const {return _VisibilityPointA;}
+ // inline Vec3r visibilityPointB() const {return _VisibilityPointB;}
+ inline const Polygon3r& aFace() const {return _aFace;}
+ inline const Vec3r& getOccludeeIntersection() { return _occludeeIntersection; }
+ inline bool getOccludeeEmpty() { return _occludeeEmpty; }
+ /*! Returns true if this FEdge is a smooth FEdge. */
+ inline bool isSmooth() const {return _isSmooth;}
+
+ /* modifiers */
+ /*! Sets the first SVertex. */
+ inline void SetVertexA(SVertex *vA) {_VertexA = vA;}
+ /*! Sets the second SVertex. */
+ inline void SetVertexB(SVertex *vB) {_VertexB = vB;}
+ /*! Sets the FEdge Id . */
+ inline void SetId(const Id& id) {_Id = id;}
+ /*! Sets the pointer to the next FEdge. */
+ inline void SetNextEdge(FEdge* iEdge) {_NextEdge = iEdge;}
+ /*! Sets the pointer to the previous FEdge. */
+ inline void SetPreviousEdge(FEdge *iEdge) {_PreviousEdge = iEdge;}
+ /*! Sets the nature of this FEdge. */
+ inline void SetNature(Nature::EdgeNature iNature) {_Nature = iNature;}
+ //inline void AddOccluder(Polygon3r& iPolygon) {_Occluders.push_back(iPolygon);}
+ /*! Sets the ViewEdge to which this FEdge belongs to. */
+ inline void SetViewEdge(ViewEdge *iViewEdge) {_ViewEdge = iViewEdge;}
+ // inline void SetHasVisibilityPoint(bool iBool) {_hasVisibilityPoint = iBool;}
+ // inline void SetVisibilityPointA(const Vec3r& iPoint) {_VisibilityPointA = iPoint;}
+ // inline void SetVisibilityPointB(const Vec3r& iPoint) {_VisibilityPointB = iPoint;}
+ inline void SetaFace(Polygon3r& iFace) {_aFace = iFace;}
+ inline void SetOccludeeIntersection(const Vec3r& iPoint) {_occludeeIntersection = iPoint;}
+ inline void SetOccludeeEmpty(bool iempty) {_occludeeEmpty = iempty;}
+ /*! Sets the flag telling whether this FEdge is smooth or sharp.
+ * true for Smooth, false for Sharp.
+ */
+ inline void SetSmooth(bool iFlag) {_isSmooth = iFlag;}
+
+ /* checks whether two FEdge have a common vertex.
+ * Returns a pointer on the common vertex if it exists,
+ * NULL otherwise.
+ */
+ static inline SVertex* CommonVertex(FEdge *iEdge1, FEdge* iEdge2)
+ {
+ if((NULL == iEdge1) || (NULL == iEdge2))
+ return NULL;
+
+ SVertex *sv1 = iEdge1->vertexA();
+ SVertex *sv2 = iEdge1->vertexB();
+ SVertex *sv3 = iEdge2->vertexA();
+ SVertex *sv4 = iEdge2->vertexB();
+
+ if((sv1 == sv3) || (sv1 == sv4))
+ {
+ return sv1;
+ }
+ else if((sv2 == sv3) || (sv2 == sv4))
+ {
+ return sv2;
+ }
+
+ return NULL;
+ }
+
+ inline const SVertex* min2d() const
+ {
+ if(_VertexA->point2D() < _VertexB->point2D())
+ return _VertexA;
+ else
+ return _VertexB;
+ }
+ inline const SVertex* max2d() const
+ {
+ if(_VertexA->point2D() < _VertexB->point2D())
+ return _VertexB;
+ else
+ return _VertexA;
+ }
+
+ /* Information access interface */
+ /* Information access interface */
+
+ //Material material() const ;
+ Id shape_id() const ;
+ const SShape * shape() const ;
+ float shape_importance() const ;
+ inline const int qi() const {return invisibility();}
+ occluder_container::const_iterator occluders_begin() const ;
+ occluder_container::const_iterator occluders_end() const ;
+ bool occluders_empty() const ;
+ int occluders_size() const ;
+ inline const Polygon3r& occludee() const {return aFace();}
+ const SShape * occluded_shape() const ;
+ //inline const bool occludee_empty() const {return _occludeeEmpty;}
+ const bool occludee_empty() const ;
+ real z_discontinuity() const ;
+ // inline float local_average_depth(int iCombination = 0) const ;
+ // inline float local_depth_variance(int iCombination = 0) const ;
+ // inline real local_average_density(float sigma = 2.3f, int iCombination = 0) const ;
+ //inline Vec3r shaded_color(int iCombination = 0) const {}
+ int viewedge_nature() const ;
+ //float viewedge_length() const ;
+ inline Vec3r orientation2d() const {return Vec3r(_VertexB->point2d()-_VertexA->point2d());}
+ inline Vec3r orientation3d() const {return Vec3r(_VertexB->point3d()-_VertexA->point3d());}
+ // //inline real curvature2d() const {return viewedge()->curvature2d((_VertexA->point2d()+_VertexB->point2d())/2.0);}
+ // inline Vec3r curvature2d_as_vector(int iCombination = 0) const ;
+ // /* angle in degrees*/
+ // inline real curvature2d_as_angle(int iCombination = 0) const ;
+
+
+ // Iterator access (Interface1D)
+ /*! Returns an iterator over the 2 (!) SVertex
+ * pointing to the first SVertex. */
+ virtual inline Interface0DIterator verticesBegin();
+ /*! Returns an iterator over the 2 (!) SVertex
+ * pointing after the last SVertex. */
+ virtual inline Interface0DIterator verticesEnd();
+
+ /*! Returns an iterator over the FEdge points,
+ * pointing to the first point. The difference with
+ * verticesBegin() is that here we can iterate over
+ * points of the FEdge at a any given sampling.
+ * Indeed, for each iteration, a virtual point is created.
+ * \param t
+ * The sampling with which we want to iterate over points of
+ * this FEdge.
+ */
+ virtual inline Interface0DIterator pointsBegin(float t=0.f);
+ /*! Returns an iterator over the FEdge points,
+ * pointing after the last point. The difference with
+ * verticesEnd() is that here we can iterate over
+ * points of the FEdge at a any given sampling.
+ * Indeed, for each iteration, a virtual point is created.
+ * \param t
+ * The sampling with which we want to iterate over points of
+ * this FEdge.
+ */
+ virtual inline Interface0DIterator pointsEnd(float t=0.f);
+};
+
+//
+// SVertexIterator
+//
+/////////////////////////////////////////////////
+
+namespace FEdgeInternal {
+
+ class SVertexIterator : public Interface0DIteratorNested
+ {
+ public:
+
+ SVertexIterator() {
+ _vertex = NULL;
+ _edge = NULL;
+ }
+
+ SVertexIterator(const SVertexIterator& vi) {
+ _vertex = vi._vertex;
+ _edge = vi._edge;
+ }
+
+ SVertexIterator(SVertex* v, FEdge* edge) {
+ _vertex = v;
+ _edge = edge;
+ }
+
+ SVertexIterator& operator=(const SVertexIterator& vi) {
+ _vertex = vi._vertex;
+ _edge = vi._edge;
+ return *this;
+ }
+
+ virtual string getExactTypeName() const {
+ return "SVertexIterator";
+ }
+
+ virtual SVertex& operator*() {
+ return *_vertex;
+ }
+
+ virtual SVertex* operator->() {
+ return &(operator*());
+ }
+
+ virtual SVertexIterator& operator++() {
+ increment();
+ return *this;
+ }
+
+ virtual SVertexIterator operator++(int) {
+ SVertexIterator ret(*this);
+ increment();
+ return ret;
+ }
+
+ virtual SVertexIterator& operator--() {
+ decrement();
+ return *this;
+ }
+
+ virtual SVertexIterator operator--(int) {
+ SVertexIterator ret(*this);
+ decrement();
+ return ret;
+ }
+
+ virtual void increment() {
+ if (_vertex == _edge->vertexB()) {
+ _vertex = 0;
+ return;
+ }
+
+ _vertex = _edge->vertexB();
+ }
+
+ virtual void decrement() {
+ if (_vertex == _edge->vertexA()) {
+ _vertex = 0;
+ return;
+ }
+ _vertex = _edge->vertexA();
+ }
+
+ virtual bool isBegin() const {
+ return _vertex == _edge->vertexA();
+ }
+
+ virtual bool isEnd() const {
+ return _vertex == _edge->vertexB();
+ }
+
+ virtual bool operator==(const Interface0DIteratorNested& it) const {
+ const SVertexIterator* it_exact = dynamic_cast<const SVertexIterator*>(&it);
+ if (!it_exact)
+ return false;
+ return ((_vertex == it_exact->_vertex) &&
+ (_edge == it_exact->_edge));
+ }
+
+ virtual float t() const{
+ if(_vertex == _edge->vertexA()){
+ return 0;
+ }
+ return ((float)_edge->getLength2D());
+ }
+ virtual float u() const{
+ if(_vertex == _edge->vertexA()){
+ return 0;
+ }
+ return 1.0;
+ }
+ virtual SVertexIterator* copy() const {
+ return new SVertexIterator(*this);
+ }
+
+ private:
+
+ SVertex* _vertex;
+ FEdge* _edge;
+ };
+
+} // end of namespace FEdgeInternal
+
+// Iterator access (implementation)
+
+Interface0DIterator FEdge::verticesBegin() {
+ Interface0DIterator ret(new FEdgeInternal::SVertexIterator(_VertexA, this));
+ return ret;
+}
+
+Interface0DIterator FEdge::verticesEnd() {
+ Interface0DIterator ret(new FEdgeInternal::SVertexIterator(0, this));
+ return ret;
+}
+
+Interface0DIterator FEdge::pointsBegin(float t) {
+ return verticesBegin();
+}
+
+Interface0DIterator FEdge::pointsEnd(float t) {
+ return verticesEnd();
+}
+
+/*! Class defining a sharp FEdge. A Sharp FEdge
+ * corresponds to an initial edge of the input mesh.
+ * It can be a silhouette, a crease or a border.
+ * If it is a crease edge, then it is borded
+ * by two faces of the mesh. Face a lies on its right
+ * whereas Face b lies on its left.
+ * If it is a border edge, then it doesn't have any
+ * face on its right, and thus Face a = 0.
+ */
+class LIB_VIEW_MAP_EXPORT FEdgeSharp : public FEdge
+{
+protected:
+ Vec3r _aNormal; // When following the edge, normal of the right face
+ Vec3r _bNormal; // When following the edge, normal of the left face
+ unsigned _aMaterialIndex;
+ unsigned _bMaterialIndex;
+
+public:
+ /*! Default constructor. */
+ inline FEdgeSharp() : FEdge(){
+ _aMaterialIndex = _bMaterialIndex = 0;
+ }
+ /*! Builds an FEdgeSharp going from vA to vB. */
+ inline FEdgeSharp(SVertex *vA, SVertex *vB) : FEdge(vA, vB){
+ _aMaterialIndex = _bMaterialIndex = 0;
+ }
+ /*! Copy constructor. */
+ inline FEdgeSharp(FEdgeSharp& iBrother) : FEdge(iBrother){
+ _aNormal = iBrother._aNormal;
+ _bNormal = iBrother._bNormal;
+ _aMaterialIndex = iBrother._aMaterialIndex;
+ _bMaterialIndex = iBrother._bMaterialIndex;
+ }
+ /*! Destructor. */
+ virtual ~FEdgeSharp() {}
+ /*! Cloning method. */
+ virtual FEdge* dupplicate(){
+ FEdge *clone = new FEdgeSharp(*this);
+ return clone;
+ }
+ /*! Returns the normal to the face lying on the
+ * right of the FEdge. If this FEdge is a border,
+ * it has no Face on its right and therefore, no normal.
+ */
+ inline const Vec3r& normalA() {return _aNormal;}
+ /*! Returns the normal to the face lying on the
+ * left of the FEdge.
+ */
+ inline const Vec3r& normalB() {return _bNormal;}
+ /*! Returns the index of the material of the face lying on the
+ * right of the FEdge. If this FEdge is a border,
+ * it has no Face on its right and therefore, no material.
+ */
+ inline unsigned aMaterialIndex() const {return _aMaterialIndex;}
+ /*! Returns the material of the face lying on the
+ * right of the FEdge. If this FEdge is a border,
+ * it has no Face on its right and therefore, no material.
+ */
+ const Material& aMaterial() const ;
+ /*! Returns the index of the material of the face lying on the
+ * left of the FEdge.
+ */
+ inline unsigned bMaterialIndex() const {return _bMaterialIndex;}
+ /*! Returns the material of the face lying on the
+ * left of the FEdge.
+ */
+ const Material& bMaterial() const ;
+
+ /*! Sets the normal to the face lying on the right of the FEdge. */
+ inline void SetNormalA(const Vec3r& iNormal) {_aNormal = iNormal;}
+ /*! Sets the normal to the face lying on the left of the FEdge. */
+ inline void SetNormalB(const Vec3r& iNormal) {_bNormal = iNormal;}
+ /*! Sets the index of the material lying on the right of the FEdge.*/
+ inline void SetaMaterialIndex(unsigned i) {_aMaterialIndex = i;}
+ /*! Sets the index of the material lying on the left of the FEdge.*/
+ inline void SetbMaterialIndex(unsigned i) {_bMaterialIndex = i;}
+
+};
+
+/*! Class defining a smooth edge. This kind of edge typically
+ * runs across a face of the input mesh. It can be
+ * a silhouette, a ridge or valley, a suggestive contour.
+ */
+class LIB_VIEW_MAP_EXPORT FEdgeSmooth : public FEdge
+{
+protected:
+ Vec3r _Normal;
+ unsigned _MaterialIndex;
+ // bool _hasVisibilityPoint;
+ // Vec3r _VisibilityPointA; // The edge on which the visibility will be computed represented
+ // Vec3r _VisibilityPointB; // using its 2 extremity points A and B
+ void * _Face; // In case of exact silhouette, Face is the WFace crossed by Fedge
+ // NON GERE PAR LE COPY CONSTRUCTEUR
+public:
+ /*! Default constructor. */
+ inline FEdgeSmooth() : FEdge(){
+ _Face=0;
+ _MaterialIndex = 0;
+ _isSmooth = true;
+ }
+ /*! Builds an FEdgeSmooth going from vA to vB. */
+ inline FEdgeSmooth(SVertex *vA, SVertex *vB) : FEdge(vA, vB){
+ _Face=0;
+ _MaterialIndex = 0;
+ _isSmooth = true;
+
+ }
+ /*! Copy constructor. */
+ inline FEdgeSmooth(FEdgeSmooth& iBrother) : FEdge(iBrother){
+ _Normal = iBrother._Normal;
+ _Face = iBrother._Face;
+ _MaterialIndex = iBrother._MaterialIndex;
+ _isSmooth = true;
+ }
+ /*! Destructor. */
+ virtual ~FEdgeSmooth() {}
+ /*! Cloning method. */
+ virtual FEdge* dupplicate(){
+ FEdge *clone = new FEdgeSmooth(*this);
+ return clone;
+ }
+
+ inline void * face() const {return _Face;}
+ /*! Returns the normal to the Face it is running accross. */
+ inline const Vec3r& normal() {return _Normal;}
+ /*! Returns the index of the material of the face it is running accross. */
+ inline unsigned materialIndex() const {return _MaterialIndex;}
+ /*! Returns the material of the face it is running accross. */
+ const Material& material() const ;
+
+ inline void SetFace(void * iFace) {_Face = iFace;}
+ /*! Sets the normal to the Face it is running accross. */
+ inline void SetNormal(const Vec3r& iNormal) {_Normal = iNormal;}
+ /*! Sets the index of the material of the face it is running accross. */
+ inline void SetMaterialIndex(unsigned i) {_MaterialIndex = i;}
+};
+ /**********************************/
+ /* */
+ /* */
+ /* SShape */
+ /* */
+ /* */
+ /**********************************/
+
+
+/*! Class to define a feature shape. It is the gathering
+ * of feature elements from an identified input shape
+ */
+class LIB_VIEW_MAP_EXPORT SShape
+{
+private:
+ vector<FEdge*> _chains; // list of fedges that are chains starting points.
+ vector<SVertex*> _verticesList; // list of all vertices
+ vector<FEdge*> _edgesList; // list of all edges
+ Id _Id;
+ BBox<Vec3r> _BBox;
+ vector<Material> _Materials;
+
+ float _importance;
+
+ ViewShape *_ViewShape;
+
+public:
+ /*! A field that can be used by the user to store any data.
+ * This field must be reseted afterwards using ResetUserData().
+ */
+ void* userdata; // added by E.T.
+ /*! Default constructor */
+ inline SShape()
+ {
+ userdata = 0;
+
+ _importance = 0.f;
+ _ViewShape = 0;
+ }
+ /*! Copy constructor */
+ inline SShape(SShape& iBrother)
+ {
+ userdata = 0;
+ _Id = iBrother._Id;
+ _BBox = iBrother.bbox();
+ _Materials = iBrother._Materials;
+
+ _importance = iBrother._importance;
+
+ _ViewShape = iBrother._ViewShape;
+
+
+ //---------
+ // vertices
+ //---------
+ vector<SVertex*>::iterator sv,svend;
+ vector<SVertex*>& verticesList = iBrother.GetVertexList();
+ for(sv=verticesList.begin(), svend=verticesList.end();
+ sv!=svend;
+ sv++)
+ {
+ SVertex *newv = new SVertex(*(*sv));
+ newv->SetShape(this);
+ _verticesList.push_back(newv);
+ }
+
+ //------
+ // edges
+ //------
+ vector<FEdge*>::iterator e,eend;
+ vector<FEdge*>& edgesList = iBrother.GetEdgeList();
+ for(e=edgesList.begin(),eend=edgesList.end();
+ e!=eend;
+ e++)
+ {
+ FEdge *newe = (*e)->dupplicate();
+ _edgesList.push_back(newe);
+ }
+
+ //-------------------------
+ // starting chain edges
+ //-------------------------
+ vector<FEdge*>::iterator fe,fend;
+ vector<FEdge*>& fedges = iBrother.GetChains();
+ for(fe=fedges.begin(),fend=fedges.end();
+ fe!=fend;
+ fe++)
+ {
+ _chains.push_back((FEdge*)((*fe)->userdata));
+ }
+
+
+ //-------------------------
+ // remap edges in vertices:
+ //-------------------------
+ for(sv=_verticesList.begin(),svend=_verticesList.end();
+ sv!=svend;
+ sv++)
+ {
+ const vector<FEdge*>& fedgeList = (*sv)->fedges();
+ vector<FEdge*> newfedgelist;
+ for(vector<FEdge*>::const_iterator fed=fedgeList.begin(),fedend=fedgeList.end();
+ fed!=fedend;
+ fed++)
+ {
+ FEdge *current = *fed;
+ newfedgelist.push_back((FEdge*)current->userdata);
+ }
+ (*sv)->SetFEdges(newfedgelist);
+ }
+
+ //-------------------------------------
+ // remap vertices and nextedge in edges:
+ //-------------------------------------
+ for(e=_edgesList.begin(),eend=_edgesList.end();
+ e!=eend;
+ e++)
+ {
+ (*e)->SetVertexA((SVertex*)((*e)->vertexA()->userdata));
+ (*e)->SetVertexB((SVertex*)((*e)->vertexB()->userdata));
+ (*e)->SetNextEdge((FEdge*)((*e)->nextEdge()->userdata));
+ (*e)->SetPreviousEdge((FEdge*)((*e)->previousEdge()->userdata));
+ }
+
+
+ // reset all brothers userdata to NULL:
+ //-------------------------------------
+ //---------
+ // vertices
+ //---------
+ for(sv=_verticesList.begin(),svend=_verticesList.end();
+ sv!=svend;
+ sv++)
+ {
+ (*sv)->userdata = NULL;
+ }
+
+ //------
+ // edges
+ //------
+ for(e=_edgesList.begin(),eend=_edgesList.end();
+ e!=eend;
+ e++)
+ {
+ (*e)->userdata = NULL;
+ }
+ }
+ /*! Cloning method. */
+ virtual SShape * dupplicate()
+ {
+ SShape *clone = new SShape(*this);
+ return clone;
+ }
+ /*! Destructor. */
+ virtual inline ~SShape()
+ {
+ vector<SVertex*>::iterator sv,svend;
+ vector<FEdge*>::iterator e,eend;
+ if(0 != _verticesList.size())
+ {
+ for(sv=_verticesList.begin(),svend=_verticesList.end();
+ sv!=svend;
+ sv++)
+ {
+ delete (*sv);
+ }
+ _verticesList.clear();
+ }
+
+ if(0 != _edgesList.size())
+ {
+ for(e=_edgesList.begin(),eend=_edgesList.end();
+ e!=eend;
+ e++)
+ {
+ delete (*e);
+ }
+ _edgesList.clear();
+ }
+
+ //! Clear the chains list
+ //-----------------------
+ if(0 != _chains.size())
+ {
+ _chains.clear();
+ }
+ }
+
+ /*! Adds a FEdge to the list of FEdges. */
+ inline void AddEdge(FEdge *iEdge)
+ {
+ _edgesList.push_back(iEdge);
+ }
+
+ /*! Adds a SVertex to the list of SVertex of this Shape.
+ * The SShape attribute of the SVertex is also set to 'this'.
+ */
+ inline void AddNewVertex(SVertex* iv) {iv->SetShape(this);_verticesList.push_back(iv);}
+ inline void AddChain(FEdge *iEdge){
+ _chains.push_back(iEdge);
+ }
+
+ inline SVertex * CreateSVertex(const Vec3r& P3D, const Vec3r& P2D, const Id& id)
+ {
+ SVertex *Ia = new SVertex(P3D, id);
+ Ia->SetPoint2D(P2D);
+ AddNewVertex(Ia);
+ return Ia;
+ }
+ /* splits an edge into several edges.
+ * The edge's vertices are passed rather than
+ * the edge itself. This way, all feature edges (SILHOUETTE,
+ * CREASE, BORDER) are splitted in the same time.
+ * The processed edges are flagged as done (using the userdata
+ * flag).One single new vertex is created whereas
+ * several splitted edges might created for the different
+ * kinds of edges. These new elements are added to the lists
+ * maintained by the shape.
+ * new chains are also created.
+ * ioA
+ * The first vertex for the edge that gets splitted
+ * ioB
+ * The second vertex for the edge that gets splitted
+ * iParameters
+ * A vector containing 2D real vectors indicating the parameters
+ * giving the intersections coordinates in 3D and in 2D.
+ * These intersections points must be sorted from B to A.
+ * Each parameter defines the intersection point I as I=A+T*AB.
+ * T<0 and T>1 are then incorrect insofar as they give intersections
+ * points that lie outside the segment.
+ * ioNewEdges
+ * The edges that are newly created (the initial edges are not
+ * included) are added to this list.
+ */
+ inline void SplitEdge(FEdge *fe, const vector<Vec2r>& iParameters, vector<FEdge*>& ioNewEdges)
+ {
+
+ SVertex *ioA = fe->vertexA();
+ SVertex *ioB = fe->vertexB();
+ Vec3r A = ioA->point3D();
+ Vec3r B = ioB->point3D();
+ Vec3r a = ioA->point2D();
+ Vec3r b = ioB->point2D();
+ SVertex *svA, *svB;
+
+ Vec3r newpoint3d,newpoint2d;
+ vector<SVertex*> intersections;
+ real t,T;
+ for(vector<Vec2r>::const_iterator p=iParameters.begin(),pend=iParameters.end();
+ p!=pend;
+ p++)
+ {
+ T=(*p)[0];
+ t=(*p)[1];
+
+ if((t < 0) || (t > 1))
+ cerr << "Warning: Intersection out of range for edge " << ioA->getId() << " - " << ioB->getId() << endl;
+
+ // compute the 3D and 2D coordinates for the intersections points:
+ newpoint3d = Vec3r(A + T*(B-A));
+ newpoint2d = Vec3r(a + t*(b-a));
+
+ // create new SVertex:
+ // (we keep B's id)
+ SVertex* newVertex = new SVertex(newpoint3d, ioB->getId());
+ newVertex->SetPoint2D(newpoint2d);
+
+ // Add this vertex to the intersections list:
+ intersections.push_back(newVertex);
+
+ // Add this vertex to this sshape:
+ AddNewVertex(newVertex);
+ }
+
+ for(vector<SVertex*>::iterator sv=intersections.begin(),svend=intersections.end();
+ sv!=svend;
+ sv++)
+ {
+ svA = fe->vertexA();
+ svB = fe->vertexB();
+
+ // We split edge AB into AA' and A'B. A' and A'B are created.
+ // AB becomes (address speaking) AA'. B is updated.
+ //--------------------------------------------------
+ // The edge AB becomes edge AA'.
+ (fe)->SetVertexB((*sv));
+ // a new edge, A'B is created.
+ FEdge *newEdge;
+ if(fe->isSmooth()){
+ newEdge = new FEdgeSmooth((*sv), svB);
+ FEdgeSmooth * se = dynamic_cast<FEdgeSmooth*>(newEdge);
+ FEdgeSmooth * fes = dynamic_cast<FEdgeSmooth*>(fe);
+ se->SetMaterialIndex(fes->materialIndex());
+ }else{
+ newEdge = new FEdgeSharp((*sv), svB);
+ FEdgeSharp * se = dynamic_cast<FEdgeSharp*>(newEdge);
+ FEdgeSharp * fes = dynamic_cast<FEdgeSharp*>(fe);
+ se->SetaMaterialIndex(fes->aMaterialIndex());
+ se->SetbMaterialIndex(fes->bMaterialIndex());
+ }
+
+ newEdge->SetNature((fe)->getNature());
+
+
+ // to build a new chain:
+ AddChain(newEdge);
+ // add the new edge to the sshape edges list.
+ AddEdge(newEdge);
+ // add new edge to the list of new edges passed as argument:
+ ioNewEdges.push_back(newEdge);
+
+ // update edge A'B for the next pointing edge
+ newEdge->SetNextEdge((fe)->nextEdge());
+ fe->nextEdge()->SetPreviousEdge(newEdge);
+ Id id(fe->getId().getFirst(), fe->getId().getSecond()+1);
+ newEdge->SetId(fe->getId());
+ fe->SetId(id);
+
+ // update edge AA' for the next pointing edge
+ //ioEdge->SetNextEdge(newEdge);
+ (fe)->SetNextEdge(NULL);
+
+ // update vertex pointing edges list:
+ // -- vertex B --
+ svB->Replace((fe), newEdge);
+ // -- vertex A' --
+ (*sv)->AddFEdge((fe));
+ (*sv)->AddFEdge(newEdge);
+ }
+
+ }
+
+ /* splits an edge into 2 edges. The new vertex and edge are added
+ * to the sshape list of vertices and edges
+ * a new chain is also created.
+ * returns the new edge.
+ * ioEdge
+ * The edge that gets splitted
+ * newpoint
+ * x,y,z coordinates of the new point.
+ */
+ inline FEdge* SplitEdgeIn2(FEdge* ioEdge, SVertex * ioNewVertex)
+ {
+ SVertex *A = ioEdge->vertexA();
+ SVertex *B = ioEdge->vertexB();
+
+
+ // We split edge AB into AA' and A'B. A' and A'B are created.
+ // AB becomes (address speaking) AA'. B is updated.
+ //--------------------------------------------------
+
+ // a new edge, A'B is created.
+ FEdge *newEdge;
+ if(ioEdge->isSmooth()){
+ newEdge = new FEdgeSmooth(ioNewVertex, B);
+ FEdgeSmooth * se = dynamic_cast<FEdgeSmooth*>(newEdge);
+ FEdgeSmooth * fes = dynamic_cast<FEdgeSmooth*>(ioEdge);
+ se->SetMaterialIndex(fes->materialIndex());
+ }else{
+ newEdge = new FEdgeSharp(ioNewVertex, B);
+ FEdgeSharp * se = dynamic_cast<FEdgeSharp*>(newEdge);
+ FEdgeSharp * fes = dynamic_cast<FEdgeSharp*>(ioEdge);
+ se->SetaMaterialIndex(fes->aMaterialIndex());
+ se->SetbMaterialIndex(fes->bMaterialIndex());
+ }
+ newEdge->SetNature(ioEdge->getNature());
+
+
+ if(ioEdge->nextEdge() != 0)
+ ioEdge->nextEdge()->SetPreviousEdge(newEdge);
+
+ // update edge A'B for the next pointing edge
+ newEdge->SetNextEdge(ioEdge->nextEdge());
+ // update edge A'B for the previous pointing edge
+ newEdge->SetPreviousEdge(0); // because it is now a TVertex
+ Id id(ioEdge->getId().getFirst(), ioEdge->getId().getSecond()+1);
+ newEdge->SetId(ioEdge->getId());
+ ioEdge->SetId(id);
+
+ // update edge AA' for the next pointing edge
+ ioEdge->SetNextEdge(0); // because it is now a TVertex
+
+ // update vertex pointing edges list:
+ // -- vertex B --
+ B->Replace(ioEdge, newEdge);
+ // -- vertex A' --
+ ioNewVertex->AddFEdge(ioEdge);
+ ioNewVertex->AddFEdge(newEdge);
+
+ // to build a new chain:
+ AddChain(newEdge);
+ AddEdge(newEdge); // FIXME ??
+
+ // The edge AB becomes edge AA'.
+ ioEdge->SetVertexB(ioNewVertex);
+
+ if(ioEdge->isSmooth()){
+ ((FEdgeSmooth*)newEdge)->SetFace(((FEdgeSmooth*)ioEdge)->face());
+ }
+
+ return newEdge;
+ }
+
+ /*! Sets the Bounding Box of the Shape */
+ inline void SetBBox(const BBox<Vec3r>& iBBox) {_BBox = iBBox;}
+
+ /*! Compute the bbox of the sshape */
+ inline void ComputeBBox()
+ {
+ if(0 == _verticesList.size())
+ return;
+
+ Vec3r firstVertex = _verticesList[0]->point3D();
+ real XMax = firstVertex[0];
+ real YMax = firstVertex[1];
+ real ZMax = firstVertex[2];
+
+ real XMin = firstVertex[0];
+ real YMin = firstVertex[1];
+ real ZMin = firstVertex[2];
+
+ vector<SVertex*>::iterator v,vend;
+ // parse all the coordinates to find
+ // the Xmax, YMax, ZMax
+ for(v=_verticesList.begin(),vend=_verticesList.end();
+ v!=vend;
+ v++)
+ {
+ Vec3r vertex = (*v)->point3D();
+ // X
+ real x = vertex[0];
+ if(x > XMax)
+ XMax = x;
+ if(x < XMin)
+ XMin = x;
+
+ // Y
+ real y = vertex[1];
+ if(y > YMax)
+ YMax = y;
+ if(y < YMin)
+ YMin = y;
+
+ // Z
+ real z = vertex[2];
+ if(z > ZMax)
+ ZMax = z;
+ if(z < ZMin)
+ ZMin = z;
+ }
+
+
+ SetBBox(BBox<Vec3r>(Vec3r(XMin, YMin, ZMin), Vec3r(XMax, YMax, ZMax)));
+ }
+
+ inline void RemoveEdgeFromChain(FEdge *iEdge)
+ {
+ for(vector<FEdge*>::iterator fe=_chains.begin(), feend=_chains.end();
+ fe!=feend;
+ fe++)
+ {
+ if(iEdge == (*fe))
+ {
+ _chains.erase(fe);
+ break;
+ }
+ }
+ }
+
+ inline void RemoveEdge(FEdge *iEdge)
+ {
+ for(vector<FEdge*>::iterator fe=_edgesList.begin(), feend=_edgesList.end();
+ fe!=feend;
+ fe++)
+ {
+ if(iEdge == (*fe))
+ {
+ _edgesList.erase(fe);
+ break;
+ }
+ }
+ }
+
+ /* accessors */
+ /*! Returns the list of SVertex of the Shape. */
+ inline vector<SVertex*>& GetVertexList() {return _verticesList;} // Get vertices list
+ /*! Returns the list of FEdges of the Shape. */
+ inline vector<FEdge*>& GetEdgeList() {return _edgesList;} // Get edges list
+ inline vector<FEdge*>& GetChains() {return _chains;}
+ /*! Returns the bounding box of the shape. */
+ inline const BBox<Vec3r>& bbox() {return _BBox;}
+ /*! Returns the ith material of the shape. */
+ inline const Material& material(unsigned i) const {return _Materials[i];}
+ /*! Returns the list of materials of the Shape. */
+ inline const vector<Material>& materials() const {return _Materials;}
+ inline ViewShape * viewShape() {return _ViewShape;}
+ inline float importance() const {return _importance;}
+ /*! Returns the Id of the Shape. */
+ inline Id getId() const { return _Id; }
+
+ /* Modififers */
+ /*! Sets the Id of the shape.*/
+ inline void SetId(Id id) {_Id = id;}
+ /*! Sets the list of materials for the shape */
+ inline void SetMaterials(const vector<Material>& iMaterials) {_Materials = iMaterials;}
+ inline void SetViewShape(ViewShape *iShape) {_ViewShape = iShape;}
+ inline void SetImportance(float importance){_importance = importance;}
+};
+
+#endif // SILHOUETTE_H
diff --git a/source/blender/freestyle/intern/view_map/SilhouetteGeomEngine.cpp b/source/blender/freestyle/intern/view_map/SilhouetteGeomEngine.cpp
new file mode 100755
index 00000000000..19b8a632ffe
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/SilhouetteGeomEngine.cpp
@@ -0,0 +1,185 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "SilhouetteGeomEngine.h"
+#include "Silhouette.h"
+#include "../geometry/GeomUtils.h"
+
+using namespace std;
+
+Vec3r SilhouetteGeomEngine::_Viewpoint = Vec3r(0,0,0);
+real SilhouetteGeomEngine::_translation[3] = {0,0,0};
+real SilhouetteGeomEngine::_modelViewMatrix[4][4] = {{1,0,0,0},
+ {0,1,0,0},
+ {0,0,1,0},
+ {0,0,0,1}};
+real SilhouetteGeomEngine::_projectionMatrix[4][4] = {{1,0,0,0},
+ {0,1,0,0},
+ {0,0,1,0},
+ {0,0,0,1}};
+real SilhouetteGeomEngine::_transform[4][4] = {{1,0,0,0},
+ {0,1,0,0},
+ {0,0,1,0},
+ {0,0,0,1}};
+int SilhouetteGeomEngine::_viewport[4] = {1,1,1,1}; // the viewport
+real SilhouetteGeomEngine::_Focal = 0.0;
+
+real SilhouetteGeomEngine::_glProjectionMatrix[4][4] = {{1,0,0,0},
+ {0,1,0,0},
+ {0,0,1,0},
+ {0,0,0,1}};
+real SilhouetteGeomEngine::_glModelViewMatrix[4][4] = {{1,0,0,0},
+ {0,1,0,0},
+ {0,0,1,0},
+ {0,0,0,1}};
+real SilhouetteGeomEngine::_znear = 0.0;
+real SilhouetteGeomEngine::_zfar = 100.0;
+
+SilhouetteGeomEngine * SilhouetteGeomEngine::_pInstance = 0;
+
+void SilhouetteGeomEngine::SetTransform(const real iModelViewMatrix[4][4], const real iProjectionMatrix[4][4], const int iViewport[4], real iFocal)
+{
+ unsigned int i,j;
+ _translation[0] = iModelViewMatrix[3][0];
+ _translation[1] = iModelViewMatrix[3][1];
+ _translation[2] = iModelViewMatrix[3][2];
+
+ for(i=0; i<4; i++){
+ for(j=0; j<4; j++)
+ {
+ _modelViewMatrix[i][j] = iModelViewMatrix[j][i];
+ _glModelViewMatrix[i][j] = iModelViewMatrix[i][j];
+ }
+ }
+
+ for(i=0; i<4; i++){
+ for(j=0; j<4; j++)
+ {
+ _projectionMatrix[i][j] = iProjectionMatrix[j][i];
+ _glProjectionMatrix[i][j] = iProjectionMatrix[i][j];
+ }
+ }
+
+ for(i=0; i<4; i++){
+ for(j=0; j<4; j++)
+ {
+ _transform[i][j] = 0;
+ for(unsigned int k=0; k<4; k++)
+ _transform[i][j] += _projectionMatrix[i][k] * _modelViewMatrix[k][j];
+ }
+ }
+
+ for(i=0; i<4; i++){
+ _viewport[i] = iViewport[i];
+ }
+ _Focal = iFocal;
+}
+
+void SilhouetteGeomEngine::SetFrustum(real iZNear, real iZFar)
+{
+ _znear = iZNear;
+ _zfar = iZFar;
+}
+
+void SilhouetteGeomEngine::retrieveViewport(int viewport[4]){
+ memcpy(viewport, _viewport, 4*sizeof(int));
+}
+//#define HUGE 1e9
+
+void SilhouetteGeomEngine::ProjectSilhouette(vector<SVertex*>& ioVertices)
+{
+ Vec3r newPoint;
+ // real min=HUGE;
+ // real max=-HUGE;
+ vector<SVertex*>::iterator sv, svend;
+
+ for(sv=ioVertices.begin(), svend=ioVertices.end();
+ sv!=svend;
+ sv++)
+ {
+ GeomUtils::fromWorldToImage((*sv)->point3D(), newPoint, _modelViewMatrix, _projectionMatrix, _viewport);
+ newPoint[2] = (-newPoint[2]-_znear)/(_zfar-_znear); // normalize Z between 0 and 1
+ (*sv)->SetPoint2D(newPoint);
+ //cerr << (*sv)->point2d().z() << " ";
+ // real d=(*sv)->point2d()[2];
+ // if (d>max) max =d;
+ // if (d<min) min =d;
+ }
+ // for(sv=ioVertices.begin(), svend=ioVertices.end();
+ // sv!=svend;
+ // sv++)
+ // {
+ // Vec3r P((*sv)->point2d());
+ // (*sv)->SetPoint2D(Vec3r(P[0], P[1], 1.0-(P[2]-min)/(max-min)));
+ // //cerr<<(*sv)->point2d()[2]<<" ";
+ // }
+}
+
+void SilhouetteGeomEngine::ProjectSilhouette(SVertex* ioVertex)
+{
+ Vec3r newPoint;
+ // real min=HUGE;
+ // real max=-HUGE;
+ vector<SVertex*>::iterator sv, svend;
+ GeomUtils::fromWorldToImage(ioVertex->point3D(), newPoint, _modelViewMatrix, _projectionMatrix, _viewport);
+ newPoint[2] = (-newPoint[2]-_znear)/(_zfar-_znear); // normalize Z between 0 and 1
+ ioVertex->SetPoint2D(newPoint);
+}
+
+real SilhouetteGeomEngine::ImageToWorldParameter(FEdge *fe, real t)
+{
+ // we need to compute for each parameter t the corresponding
+ // parameter T which gives the intersection in 3D.
+ //currentEdge = (*fe);
+ Vec3r A = (fe)->vertexA()->point3D();
+ Vec3r B = (fe)->vertexB()->point3D();
+ Vec3r Ai = (fe)->vertexA()->point2D();
+ Vec3r Bi = (fe)->vertexB()->point2D();
+ Vec3r AB = Vec3r((B-A)); // the edge
+ Vec3r ABi(Bi-Ai);
+ Vec3r Ac, Bc;
+ GeomUtils::fromWorldToCamera(A, Ac, _modelViewMatrix);
+ GeomUtils::fromWorldToCamera(B, Bc, _modelViewMatrix);
+
+ Vec3r Ii = Vec3r((Ai+t*ABi)); // I image
+ // let us compute the 3D point corresponding to the 2D intersection point
+ // and lying on the edge:
+ Vec3r Ir, Ic;
+ GeomUtils::fromImageToRetina(Ii, Ir, _viewport);
+ GeomUtils::fromRetinaToCamera(Ir, Ic, -_Focal, _projectionMatrix);
+
+ real T;
+ T = (Ic[2]*Ac[1] - Ic[1]*Ac[2])/(Ic[1]*(Bc[2]-Ac[2])-Ic[2]*(Bc[1]-Ac[1]));
+
+ return T;
+}
+
+Vec3r SilhouetteGeomEngine::WorldToImage(const Vec3r& M)
+
+{
+
+ Vec3r newPoint;
+ GeomUtils::fromWorldToImage(M, newPoint, _transform, _viewport);
+ newPoint[2] = (-newPoint[2]-_znear)/(_zfar-_znear); // normalize Z between 0 and 1
+ return newPoint;
+
+}
+
diff --git a/source/blender/freestyle/intern/view_map/SilhouetteGeomEngine.h b/source/blender/freestyle/intern/view_map/SilhouetteGeomEngine.h
new file mode 100755
index 00000000000..159dda1afc0
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/SilhouetteGeomEngine.h
@@ -0,0 +1,122 @@
+//
+// Filename : SilhouetteGeomEngine.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to perform all geometric operations dedicated
+// to silhouette. That, for example, implies that
+// this geom engine has as member data the viewpoint,
+// transformations, projections...
+// Date of creation : 03/09/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef SILHOUETTEGEOMENGINE_H
+# define SILHOUETTEGEOMENGINE_H
+
+# include <vector>
+# include "../system/FreestyleConfig.h"
+# include "../geometry/Geom.h"
+
+using namespace Geometry;
+
+class SVertex;
+class FEdge;
+
+class LIB_VIEW_MAP_EXPORT SilhouetteGeomEngine
+{
+private:
+ static Vec3r _Viewpoint; // The viewpoint under which the silhouette has to be computed
+ static real _translation[3];
+ static real _modelViewMatrix[4][4]; // the model view matrix (_modelViewMatrix[i][j] means element of line i and column j)
+ static real _projectionMatrix[4][4]; // the projection matrix (_projectionMatrix[i][j] means element of line i and column j)
+ static real _transform[4][4]; // the global transformation from world to screen (projection included) (_transform[i][j] means element of line i and column j)
+ static int _viewport[4]; // the viewport
+ static real _Focal;
+
+ static real _znear;
+ static real _zfar;
+
+ static real _glProjectionMatrix[4][4]; // GL style (column major) projection matrix
+ static real _glModelViewMatrix[4][4]; // GL style (column major) model view matrix
+
+
+
+ static SilhouetteGeomEngine *_pInstance;
+public:
+
+ /*! retrieves an instance on the singleton */
+ static SilhouetteGeomEngine * getInstance()
+ {
+ if(0 == _pInstance)
+ {
+ _pInstance = new SilhouetteGeomEngine;
+ }
+ return _pInstance;
+ }
+
+ /*! Sets the current viewpoint */
+ static inline void SetViewpoint(const Vec3r& ivp) {_Viewpoint = ivp;}
+
+ /*! Sets the current transformation
+ * iModelViewMatrix
+ * The 4x4 model view matrix, in column major order (openGL like).
+ * iProjection matrix
+ * The 4x4 projection matrix, in column major order (openGL like).
+ * iViewport
+ * The viewport. 4 real array: origin.x, origin.y, width, length
+ * iFocal
+ * The focal length
+ */
+ static void SetTransform(const real iModelViewMatrix[4][4], const real iProjectionMatrix[4][4], const int iViewport[4], real iFocal) ;
+
+ /*! Sets the current znear and zfar
+ */
+ static void SetFrustum(real iZNear, real iZFar) ;
+
+ /* accessors */
+ static void retrieveViewport(int viewport[4]);
+
+ /*! Projects the silhouette in camera coordinates
+ * This method modifies the ioEdges passed as argument.
+ * ioVertices
+ * The vertices to project. It is modified during the
+ * operation.
+ */
+ static void ProjectSilhouette(std::vector<SVertex*>& ioVertices);
+ static void ProjectSilhouette(SVertex* ioVertex);
+
+ /*! transforms the parameter t defining a 2D intersection for edge fe in order to obtain
+ * the parameter giving the corresponding 3D intersection.
+ * Returns the 3D parameter
+ * fe
+ * The edge
+ * t
+ * The parameter for the 2D intersection.
+ */
+ static real ImageToWorldParameter(FEdge *fe, real t);
+
+ /*! From world to image */
+ static Vec3r WorldToImage(const Vec3r& M);
+};
+
+#endif // SILHOUETTEGEOMENGINE_H
diff --git a/source/blender/freestyle/intern/view_map/SteerableViewMap.cpp b/source/blender/freestyle/intern/view_map/SteerableViewMap.cpp
new file mode 100755
index 00000000000..b2604606aa7
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/SteerableViewMap.cpp
@@ -0,0 +1,243 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "SteerableViewMap.h"
+#include "../image/ImagePyramid.h"
+#include "../image/Image.h"
+#include "Silhouette.h"
+#include <math.h>
+#include "../geometry/Geom.h"
+using namespace Geometry;
+
+#include <qstring.h>
+#include <qimage.h>
+
+SteerableViewMap::SteerableViewMap(unsigned int nbOrientations){
+ _nbOrientations = nbOrientations;
+ _bound = cos(M_PI/(float)_nbOrientations);
+ for(unsigned i=0; i<_nbOrientations; ++i){
+ _directions.push_back(Vec2d(cos((float)i*M_PI/(float)_nbOrientations), sin((float)i*M_PI/(float)_nbOrientations)));
+ }
+ Build();
+}
+
+void SteerableViewMap::Build(){
+ _imagesPyramids = new ImagePyramid*[_nbOrientations+1]; // one more map to store the complete visible VM
+ memset((_imagesPyramids),0,(_nbOrientations+1)*sizeof(ImagePyramid*));
+}
+
+SteerableViewMap::SteerableViewMap(const SteerableViewMap& iBrother){
+ _nbOrientations = iBrother._nbOrientations;
+ unsigned i;
+ _bound = iBrother._bound;
+ _directions = iBrother._directions;
+ _mapping = iBrother._mapping;
+ _imagesPyramids = new ImagePyramid*[_nbOrientations+1]; // one more map to store the complete visible VM
+ for(i=0;i<_nbOrientations+1;++i)
+ _imagesPyramids[i] = new GaussianPyramid(*(dynamic_cast<GaussianPyramid*>(iBrother._imagesPyramids[i])));
+}
+
+SteerableViewMap::~SteerableViewMap(){
+ Clear();
+}
+
+void SteerableViewMap::Clear(){
+ unsigned i;
+ if(_imagesPyramids){
+ for(i=0; i<=_nbOrientations; ++i){
+ if(_imagesPyramids[i])
+ delete (_imagesPyramids)[i];
+ }
+ delete [] _imagesPyramids;
+ _imagesPyramids = 0;
+ }
+ if(!_mapping.empty()){
+ for(map<unsigned int, double*>::iterator m=_mapping.begin(), mend=_mapping.end();
+ m!=mend;
+ ++m){
+ delete [] (*m).second;
+ }
+ _mapping.clear();
+ }
+}
+
+void SteerableViewMap::Reset(){
+ Clear();
+ Build();
+}
+
+double SteerableViewMap::ComputeWeight(const Vec2d& dir, unsigned i){
+ double dotp = fabs(dir*_directions[i]);
+ if(dotp < _bound)
+ return 0;
+ if(dotp>1)
+ dotp = 1;
+
+ return cos((float)_nbOrientations/2.0*acos(dotp));
+}
+
+double * SteerableViewMap::AddFEdge(FEdge *iFEdge){
+ unsigned i;
+ unsigned id = iFEdge->getId().getFirst();
+ map<unsigned int, double* >::iterator o = _mapping.find(id);
+ if(o!=_mapping.end()){
+ return (*o).second;
+ }
+ double * res = new double[_nbOrientations];
+ for(i=0; i<_nbOrientations; ++i){
+ res[i] = 0;
+ }
+ Vec3r o2d3 = iFEdge->orientation2d();
+ Vec2r o2d2(o2d3.x(), o2d3.y());
+ real norm = o2d2.norm();
+ if(norm < 1e-6){
+ return res;
+ }
+ o2d2/=norm;
+
+ for(i=0; i<_nbOrientations; ++i){
+ res[i] = ComputeWeight(o2d2, i);
+ }
+ _mapping[id] = res;
+ return res;
+}
+
+unsigned SteerableViewMap::getSVMNumber(const Vec2f& orient){
+ Vec2f dir(orient);
+ unsigned res = 0;
+ real norm = dir.norm();
+ if(norm < 1e-6){
+ return _nbOrientations+1;
+ }
+ dir/=norm;
+ double maxw = 0.f;
+ unsigned winner = _nbOrientations+1;
+ for(unsigned i=0; i<_nbOrientations; ++i){
+ double w = ComputeWeight(dir, i);
+ if(w>maxw){
+ maxw = w;
+ winner = i;
+ }
+ }
+ return winner;
+}
+
+
+unsigned SteerableViewMap::getSVMNumber(unsigned id){
+ map<unsigned int, double* >::iterator o = _mapping.find(id);
+ if(o!=_mapping.end()){
+ double* wvalues= (*o).second;
+ double maxw = 0.f;
+ unsigned winner = _nbOrientations+1;
+ for(unsigned i=0; i<_nbOrientations; ++i){
+ double w = wvalues[i];
+ if(w>maxw){
+ maxw = w;
+ winner = i;
+ }
+ }
+ return winner;
+ }
+ return _nbOrientations+1;
+}
+
+void SteerableViewMap::buildImagesPyramids(GrayImage **steerableBases, bool copy, unsigned iNbLevels, float iSigma){
+ for(unsigned i=0; i<=_nbOrientations; ++i){
+ ImagePyramid * svm = (_imagesPyramids)[i];
+ if(svm)
+ delete svm;
+ if(copy)
+ svm = new GaussianPyramid(*(steerableBases[i]), iNbLevels, iSigma);
+ else
+ svm = new GaussianPyramid(steerableBases[i], iNbLevels, iSigma);
+ _imagesPyramids[i] = svm;
+ }
+}
+
+float SteerableViewMap::readSteerableViewMapPixel(unsigned iOrientation, int iLevel, int x, int y){
+ ImagePyramid *pyramid = _imagesPyramids[iOrientation];
+ if(pyramid==0){
+ cout << "Warning: this steerable ViewMap level doesn't exist" << endl;
+ return 0;
+ }
+ if((x<0) || (x>=pyramid->width()) || (y<0) || (y>=pyramid->height()))
+ return 0;
+ //float v = pyramid->pixel(x,pyramid->height()-1-y,iLevel)*255.f;
+ float v = pyramid->pixel(x,pyramid->height()-1-y,iLevel)/32.f; // we encode both the directionality and the lines counting on 8 bits
+ // (because of frame buffer). Thus, we allow until 8 lines to pass through
+ // the same pixel, so that we can discretize the Pi/_nbOrientations angle into
+ // 32 slices. Therefore, for example, in the vertical direction, a vertical line
+ // will have the value 32 on each pixel it passes through.
+ return v;
+}
+
+float SteerableViewMap::readCompleteViewMapPixel(int iLevel, int x, int y){
+ return readSteerableViewMapPixel(_nbOrientations,iLevel,x,y);
+}
+
+unsigned int SteerableViewMap::getNumberOfPyramidLevels() const{
+ if(_imagesPyramids[0])
+ return _imagesPyramids[0]->getNumberOfLevels();
+ return 0;
+}
+void SteerableViewMap::saveSteerableViewMap() const {
+ for(unsigned i=0; i<=_nbOrientations; ++i){
+ if(_imagesPyramids[i] == 0){
+ cerr << "SteerableViewMap warning: orientation " << i <<" of steerable View Map whas not been computed yet" << endl;
+ continue;
+ }
+ int ow = _imagesPyramids[i]->width(0);
+ int oh = _imagesPyramids[i]->height(0);
+ QString base("SteerableViewMap");
+ for(unsigned j=0; j<_imagesPyramids[i]->getNumberOfLevels(); ++j){
+ float coeff = 1;//1/255.f; //100*255;//*pow(2,j);
+ QImage qtmp(ow, oh, QImage::Format_RGB32);
+ for(unsigned y=0;y<oh;++y){
+ for(unsigned x=0;x<ow;++x){
+ int c = (int)(coeff*_imagesPyramids[i]->pixel(x,y,j));
+ if(c>255)
+ c=255;
+ //int c = (int)(_imagesPyramids[i]->pixel(x,y,j));
+ qtmp.setPixel(x,y,qRgb(c,c,c));
+ }
+ }
+ qtmp.save(base+QString::number(i)+"-"+QString::number(j)+".png", "PNG");
+ }
+ // QString base("SteerableViewMap");
+ // for(unsigned j=0; j<_imagesPyramids[i]->getNumberOfLevels(); ++j){
+ // GrayImage * img = _imagesPyramids[i]->getLevel(j);
+ // int ow = img->width();
+ // int oh = img->height();
+ // float coeff = 1; //100*255;//*pow(2,j);
+ // QImage qtmp(ow, oh, 32);
+ // for(unsigned y=0;y<oh;++y){
+ // for(unsigned x=0;x<ow;++x){
+ // int c = (int)(coeff*img->pixel(x,y));
+ // if(c>255)
+ // c=255;
+ // //int c = (int)(_imagesPyramids[i]->pixel(x,y,j));
+ // qtmp.setPixel(x,y,qRgb(c,c,c));
+ // }
+ // }
+ // qtmp.save(base+QString::number(i)+"-"+QString::number(j)+".png", "PNG");
+ // }
+ //
+ }
+}
diff --git a/source/blender/freestyle/intern/view_map/SteerableViewMap.h b/source/blender/freestyle/intern/view_map/SteerableViewMap.h
new file mode 100755
index 00000000000..fe7c2493752
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/SteerableViewMap.h
@@ -0,0 +1,153 @@
+//
+// Filename : SteerbaleViewMap.h
+// Author(s) : Stephane Grabli
+// Purpose : Convenient access to the steerable ViewMap
+// to which any element of the ViewMap belongs to.
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+#ifndef STEERABLEVIEWMAP_H
+# define STEERABLEVIEWMAP_H
+
+#include <map>
+#include "../system/FreestyleConfig.h"
+#include "../geometry/Geom.h"
+using namespace Geometry;
+
+using namespace std;
+
+class FEdge;
+class ImagePyramid;
+class GrayImage;
+/*! This class checks for every FEdge in which steerable
+ * it belongs and stores the mapping allowing to retrieve
+ * this information from the FEdge Id
+ */
+class LIB_VIEW_MAP_EXPORT SteerableViewMap{
+protected:
+ map<unsigned int, double* > _mapping; // for each vector the list of nbOrientations weigths corresponding to its contributions to the nbOrientations directional maps
+ unsigned _nbOrientations;
+ ImagePyramid **_imagesPyramids; // the pyramids of images storing the different SVM
+
+ // internal
+ double _bound; // cos(Pi/N)
+ vector<Vec2d> _directions;
+
+public:
+ SteerableViewMap(unsigned int nbOrientations = 4);
+ SteerableViewMap(const SteerableViewMap& iBrother);
+ virtual ~SteerableViewMap();
+
+ /*! Resets everything */
+ virtual void Reset();
+
+ /*! Adds a FEdge to steerable VM.
+ * Returns the nbOrientations weigths corresponding to
+ * the FEdge contributions to the nbOrientations directional maps.
+ */
+ double* AddFEdge(FEdge *iFEdge);
+
+ /*! Compute the weight of direction dir for orientation iNOrientation */
+ double ComputeWeight(const Vec2d& dir, unsigned iNOrientation);
+
+ /*! Returns the number of the SVM to which a direction belongs
+ * to.
+ * \param dir
+ * The direction
+ */
+ unsigned getSVMNumber(const Vec2f& dir);
+
+ /*! Returns the number of the SVM to which a FEdge belongs
+ * most.
+ * \param id
+ * The First element of the Id struct of the FEdge
+ * we're intersted in.
+ */
+ unsigned getSVMNumber(unsigned id);
+
+ /*! Builds _nbOrientations+1 pyramids of images from the _nbOrientations+1 base images
+ * of the steerable viewmap.
+ * \param steerableBases
+ * The _nbOrientations+1 images constituing the basis for the steerable
+ * pyramid.
+ * \param copy
+ * If false, the data is not duplicated, and Canvas deals
+ * with the memory management of these _nbOrientations+1 images. If true, data
+ * is copied, and it's up to the caller to delete the images.
+ * \params iNbLevels
+ * The number of levels desired for each pyramid.
+ * If iNbLevels == 0, the complete pyramid is built.
+ * \param iSigma
+ * The sigma that will be used for the gaussian blur
+ */
+ void buildImagesPyramids(GrayImage **steerableBases, bool copy = false, unsigned iNbLevels=4, float iSigma = 1.f);
+
+ /*! Reads a pixel value in one of the VewMap density steerable pyramids.
+ * Returns a value between 0 and 1.
+ * \param iOrientation
+ * the number telling which orientation we need to check.
+ * There are _nbOrientations+1 oriented ViewMaps:
+ * 0 -> the ViewMap containing every horizontal lines
+ * 1 -> the ViewMap containing every lines whose orientation is around PI/4
+ * 2 -> the ViewMap containing every vertical lines
+ * 3 -> the ViewMap containing every lines whose orientation is around 3PI/4
+ * 4 -> the complete ViewMap
+ * \param iLevel
+ * The level of the pyramid we want to read
+ * \param x
+ * The abscissa of the desired pixel specified in level0 coordinate
+ * system. The origin is the lower left corner.
+ * \param y
+ * The ordinate of the desired pixel specified in level0 coordinate
+ * system. The origin is the lower left corner.
+ */
+ float readSteerableViewMapPixel(unsigned iOrientation, int iLevel, int x, int y);
+
+ /*! Reads a pixel in the one of the level of the
+ * pyramid containing the images of the complete
+ * ViewMap.
+ * Returns a value between 0 and 1.
+ * Equivalent to : readSteerableViewMapPixel(nbOrientations, x,y)
+ */
+ float readCompleteViewMapPixel(int iLevel, int x, int y);
+
+ /*! Returns the number of levels in the pyramids */
+ unsigned int getNumberOfPyramidLevels() const;
+
+ /*! Returns the number of orientations */
+ unsigned int getNumberOfOrientations() const{
+ return _nbOrientations;
+ }
+
+ /*! for debug purposes */
+ void saveSteerableViewMap() const ;
+
+protected:
+ void Clear();
+ void Build();
+
+
+};
+
+#endif // STEERABLEVIEWMAP_H
diff --git a/source/blender/freestyle/intern/view_map/ViewEdgeXBuilder.cpp b/source/blender/freestyle/intern/view_map/ViewEdgeXBuilder.cpp
new file mode 100755
index 00000000000..20b3aeb144d
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewEdgeXBuilder.cpp
@@ -0,0 +1,666 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "ViewEdgeXBuilder.h"
+#include "../winged_edge/WXEdge.h"
+#include "ViewMap.h"
+#include "SilhouetteGeomEngine.h"
+#include <list>
+
+using namespace std;
+
+void ViewEdgeXBuilder::Init(ViewShape *oVShape){
+ if(0 == oVShape)
+ return;
+
+ // for design conveniance, we store the current SShape.
+ _pCurrentSShape = oVShape->sshape();
+ if(0 == _pCurrentSShape)
+ return;
+
+ _pCurrentVShape = oVShape;
+
+ // Reset previous data
+ //--------------------
+ if(!_SVertexMap.empty())
+ _SVertexMap.clear();
+}
+
+void ViewEdgeXBuilder::BuildViewEdges( WXShape *iWShape, ViewShape *oVShape,
+ vector<ViewEdge*>& ioVEdges,
+ vector<ViewVertex*>& ioVVertices,
+ vector<FEdge*>& ioFEdges,
+ vector<SVertex*>& ioSVertices){
+ // Reinit structures
+ Init(oVShape);
+
+ ViewEdge *vedge ;
+ // Let us build the smooth stuff
+ //----------------------------------------
+ // We parse all faces to find the ones
+ // that contain smooth edges
+ vector<WFace*>& wfaces = iWShape->GetFaceList();
+ vector<WFace*>::iterator wf, wfend;
+ WXFace *wxf;
+ for(wf=wfaces.begin(), wfend=wfaces.end();
+ wf!=wfend;
+ wf++){
+ wxf = dynamic_cast<WXFace*>(*wf);
+ if(false == ((wxf))->hasSmoothEdges()) // does it contain at least one smooth edge ?
+ continue;
+ // parse all smooth layers:
+ vector<WXFaceLayer*>& smoothLayers = wxf->getSmoothLayers();
+ for(vector<WXFaceLayer*>::iterator sl = smoothLayers.begin(), slend=smoothLayers.end();
+ sl!=slend;
+ ++sl){
+ if(!(*sl)->hasSmoothEdge())
+ continue;
+ if(stopSmoothViewEdge((*sl))) // has it been parsed already ?
+ continue;
+ // here we know that we're dealing with a face layer that has not been
+ // processed yet and that contains a smooth edge.
+ vedge = BuildSmoothViewEdge(OWXFaceLayer(*sl, true));
+ }
+ }
+
+ // Now let's build sharp view edges:
+ //----------------------------------
+ // Reset all userdata for WXEdge structure
+ //----------------------------------------
+ //iWShape->ResetUserData();
+
+ WXEdge * wxe;
+ vector<WEdge*>& wedges = iWShape->GetEdgeList();
+ //
+ //------------------------------
+ for(vector<WEdge*>::iterator we=wedges.begin(),weend=wedges.end();
+ we!=weend;
+ we++){
+ wxe = dynamic_cast<WXEdge*>(*we);
+ if(Nature::NO_FEATURE == wxe->nature())
+ continue;
+
+ if(!stopSharpViewEdge(wxe)){
+ bool b=true;
+ if(wxe->order() == -1)
+ b = false;
+ BuildSharpViewEdge(OWXEdge(wxe,b));
+ }
+ }
+
+ // Reset all userdata for WXEdge structure
+ //----------------------------------------
+ iWShape->ResetUserData();
+
+ // Add all these new edges to the scene's feature edges list:
+ //-----------------------------------------------------------
+ vector<FEdge*>& newedges = _pCurrentSShape->GetEdgeList();
+ vector<SVertex*>& newVertices = _pCurrentSShape->GetVertexList();
+ vector<ViewVertex*>& newVVertices = _pCurrentVShape->vertices();
+ vector<ViewEdge*>& newVEdges = _pCurrentVShape->edges();
+
+ // inserts in ioFEdges, at its end, all the edges of newedges
+ ioFEdges.insert(ioFEdges.end(), newedges.begin(), newedges.end());
+ ioSVertices.insert(ioSVertices.end(), newVertices.begin(), newVertices.end());
+ ioVVertices.insert(ioVVertices.end(), newVVertices.begin(), newVVertices.end());
+ ioVEdges.insert(ioVEdges.end(), newVEdges.begin(), newVEdges.end());
+
+}
+
+ViewEdge * ViewEdgeXBuilder::BuildSmoothViewEdge(const OWXFaceLayer& iFaceLayer){
+ // Find first edge:
+ OWXFaceLayer first = iFaceLayer;
+ OWXFaceLayer currentFace = first;
+
+ // bidirectional chaining.
+ // first direction
+ list<OWXFaceLayer> facesChain;
+ unsigned size = 0;
+ while(!stopSmoothViewEdge(currentFace.fl)){
+ facesChain.push_back(currentFace);
+ ++size;
+ currentFace.fl->userdata = (void*)1; // processed
+ // Find the next edge!
+ currentFace = FindNextFaceLayer(currentFace);
+ }
+ OWXFaceLayer end = facesChain.back();
+ // second direction
+ currentFace = FindPreviousFaceLayer(first);
+ while(!stopSmoothViewEdge(currentFace.fl)){
+ facesChain.push_front(currentFace);
+ ++size;
+ currentFace.fl->userdata = (void*)1; // processed
+ // Find the previous edge!
+ currentFace = FindPreviousFaceLayer(currentFace);
+ }
+ first = facesChain.front();
+
+ if(iFaceLayer.fl->nature() & Nature::RIDGE){
+ if(size<4){
+ return 0;
+ }
+ }
+
+ // Start a new chain edges
+ ViewEdge * newVEdge = new ViewEdge;
+ newVEdge->SetId(_currentViewId);
+ ++_currentViewId;
+
+ _pCurrentVShape->AddEdge(newVEdge);
+
+
+ // build FEdges
+ FEdge * feprevious = 0;
+ FEdge * fefirst = 0;
+ FEdge * fe;
+ for(list<OWXFaceLayer>::iterator fl = facesChain.begin(), flend=facesChain.end();
+ fl!=flend;
+ ++fl){
+ fe = BuildSmoothFEdge(feprevious, (*fl));
+ fe->SetViewEdge(newVEdge);
+ if(!fefirst)
+ fefirst = fe;
+ feprevious = fe;
+ }
+ // Store the chain starting edge:
+ _pCurrentSShape->AddChain(fefirst);
+ newVEdge->SetNature(iFaceLayer.fl->nature());
+ newVEdge->SetFEdgeA(fefirst);
+ newVEdge->SetFEdgeB(fe);
+
+ // is it a closed loop ?
+ if((first == end) && (size != 1)){
+ fefirst->SetPreviousEdge(fe);
+ fe->SetNextEdge(fefirst);
+ newVEdge->SetA(0);
+ newVEdge->SetB(0);
+ }else{
+ ViewVertex *vva = MakeViewVertex(fefirst->vertexA());
+ ViewVertex *vvb = MakeViewVertex(fe->vertexB());
+
+ ((NonTVertex*)vva)->AddOutgoingViewEdge(newVEdge);
+ ((NonTVertex*)vvb)->AddIncomingViewEdge(newVEdge);
+
+ newVEdge->SetA(vva);
+ newVEdge->SetB(vvb);
+ }
+
+ return newVEdge;
+}
+
+ViewEdge * ViewEdgeXBuilder::BuildSharpViewEdge(const OWXEdge& iWEdge) {
+ // Start a new sharp chain edges
+ ViewEdge * newVEdge = new ViewEdge;
+ newVEdge->SetId(_currentViewId);
+ ++_currentViewId;
+ unsigned size=0;
+
+ _pCurrentVShape->AddEdge(newVEdge);
+
+ // Find first edge:
+ OWXEdge firstWEdge = iWEdge;
+ OWXEdge previousWEdge = firstWEdge;
+ OWXEdge currentWEdge = firstWEdge;
+ list<OWXEdge> edgesChain;
+ // bidirectional chaining
+ // first direction:
+ while(!stopSharpViewEdge(currentWEdge.e)){
+ edgesChain.push_back(currentWEdge);
+ ++size;
+ currentWEdge.e->userdata = (void*)1; // processed
+ // Find the next edge!
+ currentWEdge = FindNextWEdge(currentWEdge);
+ }
+ OWXEdge endWEdge = edgesChain.back();
+ // second direction
+ currentWEdge = FindPreviousWEdge(firstWEdge);
+ while(!stopSharpViewEdge(currentWEdge.e)){
+ edgesChain.push_front(currentWEdge);
+ ++size;
+ currentWEdge.e->userdata = (void*)1; // processed
+ // Find the previous edge!
+ currentWEdge = FindPreviousWEdge(currentWEdge);
+ }
+ firstWEdge = edgesChain.front();
+
+ // build FEdges
+ FEdge * feprevious = 0;
+ FEdge * fefirst = 0;
+ FEdge * fe;
+ for(list<OWXEdge>::iterator we = edgesChain.begin(), weend=edgesChain.end();
+ we!=weend;
+ ++we){
+ fe = BuildSharpFEdge(feprevious, (*we));
+ fe->SetViewEdge(newVEdge);
+ if(!fefirst)
+ fefirst = fe;
+ feprevious = fe;
+ }
+ // Store the chain starting edge:
+ _pCurrentSShape->AddChain(fefirst);
+ newVEdge->SetNature(iWEdge.e->nature());
+ newVEdge->SetFEdgeA(fefirst);
+ newVEdge->SetFEdgeB(fe);
+
+ // is it a closed loop ?
+ if((firstWEdge == endWEdge) && (size!=1)){
+ fefirst->SetPreviousEdge(fe);
+ fe->SetNextEdge(fefirst);
+ newVEdge->SetA(0);
+ newVEdge->SetB(0);
+ }else{
+ ViewVertex *vva = MakeViewVertex(fefirst->vertexA());
+ ViewVertex *vvb = MakeViewVertex(fe->vertexB());
+
+ ((NonTVertex*)vva)->AddOutgoingViewEdge(newVEdge);
+ ((NonTVertex*)vvb)->AddIncomingViewEdge(newVEdge);
+
+ newVEdge->SetA(vva);
+ newVEdge->SetB(vvb);
+ }
+
+ return newVEdge;
+}
+
+OWXFaceLayer ViewEdgeXBuilder::FindNextFaceLayer(const OWXFaceLayer& iFaceLayer){
+ WXFace *nextFace = 0;
+ WOEdge * woeend;
+ real tend;
+ if(iFaceLayer.order){
+ woeend = iFaceLayer.fl->getSmoothEdge()->woeb();
+ tend = iFaceLayer.fl->getSmoothEdge()->tb();
+ }else{
+ woeend = iFaceLayer.fl->getSmoothEdge()->woea();
+ tend = iFaceLayer.fl->getSmoothEdge()->ta();
+ }
+ // special case of EDGE_VERTEX config:
+ if((tend == 0.0) || (tend == 1.0)){
+ WVertex *nextVertex;
+ if(tend == 0.0)
+ nextVertex = woeend->GetaVertex();
+ else
+ nextVertex = woeend->GetbVertex();
+ if(nextVertex->isBoundary()) // if it's a non-manifold vertex -> ignore
+ return OWXFaceLayer(0,true);
+ bool found = false;
+ WVertex::face_iterator f=nextVertex->faces_begin();
+ WVertex::face_iterator fend=nextVertex->faces_end();
+ while((!found) && (f!=fend)){
+ nextFace = dynamic_cast<WXFace*>(*f);
+ if((0 != nextFace) && (nextFace!=iFaceLayer.fl->getFace())){
+ vector<WXFaceLayer*> sameNatureLayers;
+ nextFace->retrieveSmoothEdgesLayers(iFaceLayer.fl->nature(), sameNatureLayers);
+ if(sameNatureLayers.size() == 1) {// don't know
+ // maybe should test whether this face has
+ // also a vertex_edge configuration
+ WXFaceLayer * winner = sameNatureLayers[0];
+ if(woeend == winner->getSmoothEdge()->woea()->twin())
+ return OWXFaceLayer(winner,true);
+ else
+ return OWXFaceLayer(winner,false);
+ }
+ }
+ ++f;
+ }
+ }else{
+ nextFace = dynamic_cast<WXFace*>(iFaceLayer.fl->getFace()->GetBordingFace(woeend));
+ if(0 == nextFace)
+ return OWXFaceLayer(0,true);
+ // if the next face layer has either no smooth edge or
+ // no smooth edge of same nature, no next face
+ if(!nextFace->hasSmoothEdges())
+ return OWXFaceLayer(0,true);
+ vector<WXFaceLayer*> sameNatureLayers;
+ nextFace->retrieveSmoothEdgesLayers(iFaceLayer.fl->nature(), sameNatureLayers);
+ if((sameNatureLayers.empty()) || (sameNatureLayers.size() != 1)) // don't know how to deal with several edges of same nature on a single face
+ return OWXFaceLayer(0,true);
+ else{
+ WXFaceLayer * winner = sameNatureLayers[0];
+ if(woeend == winner->getSmoothEdge()->woea()->twin())
+ return OWXFaceLayer(winner,true);
+ else
+ return OWXFaceLayer(winner,false);
+ }
+ }
+ return OWXFaceLayer(0,true);
+}
+
+OWXFaceLayer ViewEdgeXBuilder::FindPreviousFaceLayer(const OWXFaceLayer& iFaceLayer) {
+ WXFace *previousFace = 0;
+ WOEdge * woebegin;
+ real tend;
+ if(iFaceLayer.order){
+ woebegin = iFaceLayer.fl->getSmoothEdge()->woea();
+ tend = iFaceLayer.fl->getSmoothEdge()->ta();
+ }else{
+ woebegin = iFaceLayer.fl->getSmoothEdge()->woeb();
+ tend = iFaceLayer.fl->getSmoothEdge()->tb();
+ }
+
+ // special case of EDGE_VERTEX config:
+ if((tend == 0.0) || (tend == 1.0)){
+ WVertex *previousVertex;
+ if(tend == 0.0)
+ previousVertex = woebegin->GetaVertex();
+ else
+ previousVertex = woebegin->GetbVertex();
+ if(previousVertex->isBoundary()) // if it's a non-manifold vertex -> ignore
+ return OWXFaceLayer(0,true);
+ bool found = false;
+ WVertex::face_iterator f=previousVertex->faces_begin();
+ WVertex::face_iterator fend=previousVertex->faces_end();
+ while((!found) && (f!=fend)){
+ previousFace = dynamic_cast<WXFace*>(*f);
+ if((0 != previousFace) && (previousFace!=iFaceLayer.fl->getFace())){
+ vector<WXFaceLayer*> sameNatureLayers;
+ previousFace->retrieveSmoothEdgesLayers(iFaceLayer.fl->nature(), sameNatureLayers);
+ if(sameNatureLayers.size() == 1) {// don't know
+ // maybe should test whether this face has
+ // also a vertex_edge configuration
+ WXFaceLayer * winner = sameNatureLayers[0];
+ if(woebegin == winner->getSmoothEdge()->woeb()->twin())
+ return OWXFaceLayer(winner,true);
+ else
+ return OWXFaceLayer(winner,false);
+ }
+ }
+ ++f;
+ }
+ }else{
+ previousFace = dynamic_cast<WXFace*>(iFaceLayer.fl->getFace()->GetBordingFace(woebegin));
+ if(0 == previousFace)
+ return OWXFaceLayer(0,true);
+
+ // if the next face layer has either no smooth edge or
+ // no smooth edge of same nature, no next face
+ if(!previousFace->hasSmoothEdges())
+ return OWXFaceLayer(0,true);
+ vector<WXFaceLayer*> sameNatureLayers;
+ previousFace->retrieveSmoothEdgesLayers(iFaceLayer.fl->nature(), sameNatureLayers);
+ if((sameNatureLayers.empty()) || (sameNatureLayers.size() != 1)) // don't know how to deal with several edges of same nature on a single face
+ return OWXFaceLayer(0,true);
+ else{
+ WXFaceLayer * winner = sameNatureLayers[0];
+ if(woebegin == winner->getSmoothEdge()->woeb()->twin())
+ return OWXFaceLayer(winner,true);
+ else
+ return OWXFaceLayer(winner,false);
+ }
+ }
+ return OWXFaceLayer(0,true);
+}
+
+FEdge * ViewEdgeXBuilder::BuildSmoothFEdge(FEdge *feprevious, const OWXFaceLayer& ifl){
+ SVertex *va, *vb;
+ FEdgeSmooth *fe;
+ // retrieve exact silhouette data
+ WXSmoothEdge *se = ifl.fl->getSmoothEdge();
+
+ Vec3r normal;
+ // Make the 2 Svertices
+ if(feprevious == 0){ // that means that we don't have any vertex already built for that face
+ real ta = se->ta();
+ Vec3r A1(se->woea()->GetaVertex()->GetVertex());
+ Vec3r A2(se->woea()->GetbVertex()->GetVertex());
+ Vec3r A(A1+ta*(A2-A1));
+
+ va = MakeSVertex(A);
+ // Set normal:
+ Vec3r NA1(ifl.fl->getFace()->GetVertexNormal(se->woea()->GetaVertex()));
+ Vec3r NA2(ifl.fl->getFace()->GetVertexNormal(se->woea()->GetbVertex()));
+ Vec3r na((1 - ta) * NA1 + ta * NA2);
+ na.normalize();
+ va->AddNormal(na);
+ normal = na;
+
+ // Set CurvatureInfo
+ CurvatureInfo* curvature_info_a = new CurvatureInfo(*(dynamic_cast<WXVertex*>(se->woea()->GetaVertex())->curvatures()),
+ *(dynamic_cast<WXVertex*>(se->woea()->GetbVertex())->curvatures()),
+ ta);
+ va->setCurvatureInfo(curvature_info_a);
+ }
+ else
+ va = feprevious->vertexB();
+
+ real tb = se->tb();
+ Vec3r B1(se->woeb()->GetaVertex()->GetVertex());
+ Vec3r B2(se->woeb()->GetbVertex()->GetVertex());
+ Vec3r B(B1+tb*(B2-B1));
+
+ vb = MakeSVertex(B);
+ // Set normal:
+ Vec3r NB1(ifl.fl->getFace()->GetVertexNormal(se->woeb()->GetaVertex()));
+ Vec3r NB2(ifl.fl->getFace()->GetVertexNormal(se->woeb()->GetbVertex()));
+ Vec3r nb((1 - tb) * NB1 + tb * NB2);
+ nb.normalize();
+ normal += nb;
+ vb->AddNormal(nb);
+
+ // Set CurvatureInfo
+ CurvatureInfo* curvature_info_b = new CurvatureInfo(*(dynamic_cast<WXVertex*>(se->woeb()->GetaVertex())->curvatures()),
+ *(dynamic_cast<WXVertex*>(se->woeb()->GetbVertex())->curvatures()),
+ tb);
+ vb->setCurvatureInfo(curvature_info_b);
+
+ // if the order is false we must swap va and vb
+ if(!ifl.order){
+ SVertex *tmp = va;
+ va = vb;
+ vb = tmp;
+ }
+
+ // Creates the corresponding feature edge
+ fe = new FEdgeSmooth(va, vb);
+ fe->SetNature(ifl.fl->nature());
+ fe->SetId(_currentFId);
+ fe->SetMaterialIndex(ifl.fl->getFace()->materialIndex());
+ fe->SetFace(ifl.fl->getFace());
+ fe->SetNormal(normal);
+ fe->SetPreviousEdge(feprevious);
+ if(feprevious)
+ feprevious->SetNextEdge(fe);
+ _pCurrentSShape->AddEdge(fe);
+ va->AddFEdge(fe);
+ vb->AddFEdge(fe);
+
+ ++_currentFId;
+ ifl.fl->userdata = fe;
+ return fe;
+}
+
+bool ViewEdgeXBuilder::stopSmoothViewEdge(WXFaceLayer *iFaceLayer){
+ if(0 == iFaceLayer)
+ return true;
+ if(iFaceLayer->userdata == 0)
+ return false;
+ return true;
+}
+
+OWXEdge ViewEdgeXBuilder::FindNextWEdge(const OWXEdge& iEdge){
+ if(Nature::NO_FEATURE == iEdge.e->nature())
+ return OWXEdge(0, true);
+
+ WVertex *v;
+ if(true == iEdge.order)
+ v = iEdge.e->GetbVertex();
+ else
+ v = iEdge.e->GetaVertex();
+
+ if(((WXVertex*)v)->isFeature())
+ return 0;
+
+
+ vector<WEdge*>& vEdges = (v)->GetEdges();
+ for(vector<WEdge*>::iterator ve=vEdges.begin(),veend=vEdges.end();
+ ve!=veend;
+ ve++){
+ WXEdge *wxe = dynamic_cast<WXEdge*>(*ve);
+ if(wxe == iEdge.e)
+ continue; // same edge as the one processed
+
+ if(wxe->nature() != iEdge.e->nature())
+ continue;
+
+ if(wxe->GetaVertex() == v){
+ // That means that the face necesarily lies on the edge left.
+ // So the vertex order is OK.
+ return OWXEdge(wxe, true);
+ }else{
+ // That means that the face necesarily lies on the edge left.
+ // So the vertex order is OK.
+ return OWXEdge(wxe, false);
+ }
+ }
+ // we did not find:
+ return OWXEdge(0, true);
+}
+
+OWXEdge ViewEdgeXBuilder::FindPreviousWEdge(const OWXEdge& iEdge){
+ if(Nature::NO_FEATURE == iEdge.e->nature())
+ return OWXEdge(0, true);
+
+ WVertex *v;
+ if(true == iEdge.order)
+ v = iEdge.e->GetaVertex();
+ else
+ v = iEdge.e->GetbVertex();
+
+ if(((WXVertex*)v)->isFeature())
+ return 0;
+
+
+ vector<WEdge*>& vEdges = (v)->GetEdges();
+ for(vector<WEdge*>::iterator ve=vEdges.begin(),veend=vEdges.end();
+ ve!=veend;
+ ve++){
+ WXEdge *wxe = dynamic_cast<WXEdge*>(*ve);
+ if(wxe == iEdge.e)
+ continue; // same edge as the one processed
+
+ if(wxe->nature() != iEdge.e->nature())
+ continue;
+
+ if(wxe->GetbVertex() == v){
+ return OWXEdge(wxe, true);
+ }else{
+ return OWXEdge(wxe, false);
+ }
+ }
+ // we did not find:
+ return OWXEdge(0, true);
+}
+
+FEdge * ViewEdgeXBuilder::BuildSharpFEdge(FEdge *feprevious, const OWXEdge& iwe){
+ SVertex *va, *vb;
+ FEdgeSharp *fe;
+ WXVertex *wxVA, *wxVB;
+ if(iwe.order){
+ wxVA = (WXVertex*)iwe.e->GetaVertex();
+ wxVB = (WXVertex*)iwe.e->GetbVertex();
+ }else{
+ wxVA = (WXVertex*)iwe.e->GetbVertex();
+ wxVB = (WXVertex*)iwe.e->GetaVertex();
+ }
+ // Make the 2 SVertex
+ va = MakeSVertex(wxVA->GetVertex());
+ vb = MakeSVertex(wxVB->GetVertex());
+
+ // get the faces normals and the material indices
+ Vec3r normalA, normalB;
+ unsigned matA(0), matB(0);
+ if(iwe.order){
+ normalB = (iwe.e->GetbFace()->GetNormal());
+ matB = (iwe.e->GetbFace()->materialIndex());
+ if(!(iwe.e->nature() & Nature::BORDER)) {
+ normalA = (iwe.e->GetaFace()->GetNormal());
+ matA = (iwe.e->GetaFace()->materialIndex());
+ }
+ }else{
+ normalA = (iwe.e->GetbFace()->GetNormal());
+ matA = (iwe.e->GetbFace()->materialIndex());
+ if(!(iwe.e->nature() & Nature::BORDER)) {
+ normalB = (iwe.e->GetaFace()->GetNormal());
+ matB = (iwe.e->GetaFace()->materialIndex());
+ }
+ }
+ // Creates the corresponding feature edge
+ // Creates the corresponding feature edge
+ fe = new FEdgeSharp(va, vb);
+ fe->SetNature(iwe.e->nature());
+ fe->SetId(_currentFId);
+ fe->SetaMaterialIndex(matA);
+ fe->SetbMaterialIndex(matB);
+ fe->SetNormalA(normalA);
+ fe->SetNormalB(normalB);
+ fe->SetPreviousEdge(feprevious);
+ if(feprevious)
+ feprevious->SetNextEdge(fe);
+ _pCurrentSShape->AddEdge(fe);
+ va->AddFEdge(fe);
+ vb->AddFEdge(fe);
+ //Add normals:
+ va->AddNormal(normalA);
+ va->AddNormal(normalB);
+ vb->AddNormal(normalA);
+ vb->AddNormal(normalB);
+
+ ++_currentFId;
+ iwe.e->userdata = fe;
+ return fe;
+}
+
+bool ViewEdgeXBuilder::stopSharpViewEdge(WXEdge *iEdge){
+ if(0 == iEdge)
+ return true;
+ if(iEdge->userdata == 0)
+ return false;
+ return true;
+}
+
+SVertex * ViewEdgeXBuilder::MakeSVertex(Vec3r& iPoint){
+ SVertex *va;
+ // Check whether the vertices are already in the table:
+ // fisrt vertex
+ // -------------
+ SVertexMap::const_iterator found = _SVertexMap.find(iPoint);
+ if (found != _SVertexMap.end()) {
+ va = (*found).second;
+ }else{
+ va = new SVertex(iPoint, _currentSVertexId);
+ SilhouetteGeomEngine::ProjectSilhouette(va);
+ ++_currentSVertexId;
+ // Add the svertex to the SShape svertex list:
+ _pCurrentSShape->AddNewVertex(va);
+ // Add the svertex in the table using its id:
+ _SVertexMap[iPoint] = va;
+ }
+ return va;
+}
+
+ViewVertex * ViewEdgeXBuilder::MakeViewVertex(SVertex *iSVertex){
+ ViewVertex *vva = iSVertex->viewvertex();
+ if(vva != 0)
+ return vva;
+ vva = new NonTVertex(iSVertex);
+ // Add the view vertex to the ViewShape svertex list:
+ _pCurrentVShape->AddVertex(vva);
+ return vva;
+}
+
diff --git a/source/blender/freestyle/intern/view_map/ViewEdgeXBuilder.h b/source/blender/freestyle/intern/view_map/ViewEdgeXBuilder.h
new file mode 100755
index 00000000000..9e2837b49a7
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewEdgeXBuilder.h
@@ -0,0 +1,214 @@
+//
+// Filename : ViewEdgeXBuilder.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to build view edges and the underlying chains
+// of feature edges...
+// Date of creation : 27/10/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VIEWEDGEXBUILDER_H
+# define VIEWEDGEXBUILDER_H
+
+# include <map>
+# include <utility>
+# include <vector>
+
+# if defined(__GNUC__) && (__GNUC__ >= 3)
+//hash_map is not part of the C++ standard anymore; hash_map.h has been kept though for backward compatibility
+# include <hash_map.h>
+# else
+# include <hash_map>
+# endif
+
+# include "../system/FreestyleConfig.h"
+# include "../geometry/Geom.h"
+# include "Interface1D.h"
+
+using namespace Geometry;
+using namespace std;
+
+class SVertex;
+/*! Defines a hash table used for searching the SVertex */
+struct SVertexHasher {
+#define _MUL 950706376UL
+#define _MOD 2147483647UL
+ inline size_t operator() (const Vec3r& p) const {
+ size_t res = ((unsigned long) (p[0] * _MUL)) % _MOD;
+ res = ((res + (unsigned long) (p[1]) * _MUL)) % _MOD;
+ return ((res +(unsigned long) (p[2]) * _MUL)) % _MOD;
+ }
+};
+
+// Key_compare predicate for hash_map. In particular, return false if equal.
+struct epsilonEquals{
+ bool operator()(const Vec3r& v1, const Vec3r& v2) const{
+ real norm = (v1-v2).norm();
+ return (norm<1e-06);
+ }
+};
+
+
+// typedef hash_map<Vec3r, SVertex*, SVertexHasher, epsilonEquals> SVertexMap;
+typedef map<Vec3r , SVertex*> SVertexMap;
+
+class WXFaceLayer;
+/*! class to describe an oriented smooth edge */
+class OWXFaceLayer{
+public:
+ WXFaceLayer * fl;
+ bool order;
+
+ OWXFaceLayer() {fl=0;order=true;}
+ OWXFaceLayer(WXFaceLayer *ifl, bool iOrder=true){fl = ifl;order=iOrder;}
+ OWXFaceLayer& operator=(const OWXFaceLayer& iBrother){
+ fl = iBrother.fl;
+ order = iBrother.order;
+ return *this;
+ }
+ bool operator==(const OWXFaceLayer& b){
+ return ((fl == b.fl) && (order == b.order));
+ }
+ bool operator!=(const OWXFaceLayer& b){
+ return !(*this==b);
+ }
+};
+
+class WXEdge;
+/*! class to describe an oriented sharp edge */
+class OWXEdge{
+public:
+ WXEdge * e;
+ bool order;
+
+ OWXEdge() {e=0;order=true;}
+ OWXEdge(WXEdge *ie, bool iOrder=true){e = ie;order=iOrder;}
+ OWXEdge& operator=(const OWXEdge& iBrother){
+ e = iBrother.e;
+ order = iBrother.order;
+ return *this;
+ }
+ bool operator==(const OWXEdge& b){
+ return ((e == b.e) && (order == b.order));
+ }
+ bool operator!=(const OWXEdge& b){
+ return !(*this==b);
+ }
+};
+
+class WOEdge;
+class WXEdge;
+class WXShape;
+class SVertex;
+class FEdge;
+class ViewVertex;
+class ViewEdge;
+class ViewShape;
+class LIB_VIEW_MAP_EXPORT ViewEdgeXBuilder
+{
+protected:
+ int _currentViewId; // Id for view edges
+ int _currentFId; // Id for FEdges
+ int _currentSVertexId; // Id for SVertex
+public:
+
+ inline ViewEdgeXBuilder()
+ {_currentViewId = 1;_currentFId=0;_currentSVertexId=0;}
+ virtual ~ViewEdgeXBuilder(){}
+
+ /*! Builds a view shape from a WXShape in which the feature edges
+ * are flagged
+ * Builds chains of feature edges (so ViewEdges) from a WXShape
+ * iWShape
+ * The Winged Edge structure in which all silhouette edges
+ * and vertices are flagged.
+ * oViewShape
+ * The Silhouette Shape in which the chains must be added.
+ * ioVEdges
+ * The list of new ViewEdges.
+ * ioVVertices
+ * THe new ViewVertices
+ * ioFEdges
+ * A list in which all new FEdges are added
+ * ioSVertices
+ * A list of SVertex where all created SVertex are added.
+ */
+ virtual void BuildViewEdges(WXShape *iWShape, ViewShape *oVShape,
+ std::vector<ViewEdge*>& ioVEdges,
+ std::vector<ViewVertex*>& ioVVertices,
+ std::vector<FEdge*>& ioFEdges,
+ std::vector<SVertex*>& ioSVertices) ;
+
+ /*! Builds a smooth view edge, starting the face iFace.*/
+ ViewEdge * BuildSmoothViewEdge(const OWXFaceLayer& iFaceLayer);
+
+ /*! Makes a sharp viewedge
+ */
+ ViewEdge * BuildSharpViewEdge(const OWXEdge& iWEdge) ;
+
+
+public:
+ /*! accessors */
+ inline int currentViewId() const { return _currentViewId; }
+ inline int currentFId() const { return _currentFId; }
+ inline int currentSVertexId() const { return _currentSVertexId; }
+ /*! modifiers */
+ inline void SetCurrentViewId(int id) { _currentViewId = id; }
+ inline void SetCurrentFId(int id) { _currentFId = id; }
+ inline void SetCurrentSVertexId(int id) { _currentSVertexId = id; }
+
+protected:
+ /*! Init the view edges building */
+ virtual void Init(ViewShape *oVShape) ;
+
+ // SMOOTH //
+ /*! checks whether a face has already been processed or not */
+ bool stopSmoothViewEdge(WXFaceLayer *iFaceLayer);
+ OWXFaceLayer FindNextFaceLayer(const OWXFaceLayer& iFaceLayer);
+ OWXFaceLayer FindPreviousFaceLayer(const OWXFaceLayer& iFaceLayer);
+ FEdge * BuildSmoothFEdge(FEdge *feprevious, const OWXFaceLayer& ifl);
+
+ // SHARP //
+ /*! checks whether a WEdge has already been processed or not */
+ bool stopSharpViewEdge(WXEdge *iFace);
+ OWXEdge FindNextWEdge(const OWXEdge& iEdge);
+ OWXEdge FindPreviousWEdge(const OWXEdge& iEdge);
+ FEdge * BuildSharpFEdge(FEdge *feprevious, const OWXEdge& iwe);
+
+ // GENERAL //
+ /*! Instanciate a SVertex if it hasn't been already created */
+ SVertex * MakeSVertex(Vec3r& iPoint);
+ /*! instanciate a ViewVertex from a SVertex, if it doesn't exist yet */
+ ViewVertex * MakeViewVertex(SVertex *iSVertex);
+
+ //tmp values
+ // IdHashTable _hashtable;
+ // VVIdHashTable _multivertexHashTable;
+ SVertexMap _SVertexMap;
+ SShape *_pCurrentSShape;
+ ViewShape * _pCurrentVShape;
+};
+
+#endif
+
diff --git a/source/blender/freestyle/intern/view_map/ViewMap.cpp b/source/blender/freestyle/intern/view_map/ViewMap.cpp
new file mode 100755
index 00000000000..9a2d262b703
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMap.cpp
@@ -0,0 +1,703 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "ViewMap.h"
+#include "../geometry/GeomUtils.h"
+#include <float.h>
+#include "ViewMapIterators.h"
+#include "ViewMapAdvancedIterators.h"
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewMap */
+ /* */
+ /* */
+ /**********************************/
+
+ViewMap * ViewMap::_pInstance = 0;
+
+ViewMap::~ViewMap()
+{
+ // The view vertices must be deleted here as some of them
+ // are shared between two shapes:
+ for(vector<ViewVertex*>::iterator vv=_VVertices.begin(), vvend=_VVertices.end();
+ vv!=vvend;
+ vv++)
+ {
+ delete (*vv);
+ }
+ _VVertices.clear();
+
+ for(vector<ViewShape*>::iterator vs=_VShapes.begin(),vsend=_VShapes.end();
+ vs!=vsend;
+ vs++)
+ {
+ delete (*vs);
+ }
+ _VShapes.clear();
+
+ _FEdges.clear();
+ _SVertices.clear();
+ _VEdges.clear();
+}
+
+ViewShape * ViewMap::viewShape(unsigned id)
+{
+ int index = _shapeIdToIndex[id];
+ return _VShapes[ index ];
+}
+void ViewMap::AddViewShape(ViewShape *iVShape) {
+ _shapeIdToIndex[iVShape->getId().getFirst()] = _VShapes.size();
+ _VShapes.push_back(iVShape);
+}
+const FEdge * ViewMap::GetClosestFEdge(real x, real y) const
+{
+ // find the closest of this candidates:
+ real minDist = DBL_MAX;
+ FEdge * winner = 0;
+ for(fedges_container::const_iterator fe=_FEdges.begin(),feend=_FEdges.end();
+ fe!=feend;
+ fe++)
+ {
+ Vec2d A((*fe)->vertexA()->point2D()[0], (*fe)->vertexA()->point2D()[1]);
+ Vec2d B((*fe)->vertexB()->point2D()[0], (*fe)->vertexB()->point2D()[1]);
+ real dist = GeomUtils::distPointSegment<Vec2r>(Vec2r(x,y),A, B);
+ if(dist < minDist)
+ {
+ minDist = dist;
+ winner = (*fe);
+ }
+
+ }
+ if(winner==0)
+ return 0;
+
+ return winner;
+}
+
+const ViewEdge * ViewMap::GetClosestViewEdge(real x, real y) const
+{
+ // find the closest of this candidates:
+ real minDist = DBL_MAX;
+ FEdge * winner = 0;
+ for(fedges_container::const_iterator fe=_FEdges.begin(),feend=_FEdges.end();
+ fe!=feend;
+ fe++)
+ {
+ Vec2d A((*fe)->vertexA()->point2D()[0], (*fe)->vertexA()->point2D()[1]);
+ Vec2d B((*fe)->vertexB()->point2D()[0], (*fe)->vertexB()->point2D()[1]);
+ real dist = GeomUtils::distPointSegment<Vec2r>(Vec2r(x,y),A, B);
+ if(dist < minDist)
+ {
+ minDist = dist;
+ winner = (*fe);
+ }
+
+ }
+ if(winner==0)
+ return 0;
+
+ return winner->viewedge();
+}
+
+
+TVertex* ViewMap::CreateTVertex(const Vec3r& iA3D, const Vec3r& iA2D, FEdge *iFEdgeA,
+ const Vec3r& iB3D, const Vec3r& iB2D, FEdge *iFEdgeB,
+ const Id& id)
+{
+ ViewShape *vshapeA = iFEdgeA->viewedge()->viewShape();
+ SShape *shapeA = iFEdgeA->shape();
+ ViewShape *vshapeB = iFEdgeB->viewedge()->viewShape();
+ SShape *shapeB = iFEdgeB->shape();
+
+ SVertex * Ia = shapeA->CreateSVertex(iA3D, iA2D, iFEdgeA->vertexA()->getId());
+ SVertex * Ib = shapeB->CreateSVertex(iB3D, iB2D, iFEdgeB->vertexA()->getId());
+
+ // depending on which of these 2 svertices is the nearest from the
+ // viewpoint, we're going to build the TVertex by giving them in
+ // an order or another (the first one must be the nearest)
+ real dista = Ia->point2D()[2];
+ real distb = Ib->point2D()[2];
+
+ TVertex * tvertex;
+ if(dista < distb)
+ tvertex = new TVertex(Ia, Ib);
+ else
+ tvertex = new TVertex(Ib,Ia);
+
+ tvertex->SetId(id);
+
+ // add these vertices to the view map
+ AddViewVertex(tvertex);
+ AddSVertex(Ia);
+ AddSVertex(Ib);
+
+ // and this T Vertex to the view shapes:
+ vshapeA->AddVertex(tvertex);
+ vshapeB->AddVertex(tvertex);
+
+ return tvertex;
+}
+
+ViewVertex * ViewMap::InsertViewVertex(SVertex *iVertex,
+ vector<ViewEdge*>& newViewEdges){
+ NonTVertex *vva = dynamic_cast<NonTVertex*>(iVertex->viewvertex());
+ if(vva != 0)
+ return vva;
+ // beacuse it is not already a ViewVertex, this SVertex must have only
+ // 2 FEdges. The incoming one still belongs to ioEdge, the outgoing one
+ // now belongs to newVEdge
+ const vector<FEdge*>& fedges = iVertex->fedges();
+ if(fedges.size()!=2){
+ cerr << "ViewMap warning: Can't split the ViewEdge" << endl;
+ return 0;
+ }
+ FEdge * fend(0), * fbegin(0);
+ for(vector<FEdge*>::const_iterator fe=fedges.begin(), feend=fedges.end();
+ fe!=feend;
+ ++fe){
+ if((*fe)->vertexB() == iVertex){
+ fend = (*fe);
+ }
+ if((*fe)->vertexA() == iVertex){
+ fbegin = (*fe);
+ }
+ if((fbegin!=0) && (fend!=0))
+ break;
+ }
+ ViewEdge *ioEdge = fbegin->viewedge();
+ ViewShape * vshape = ioEdge->viewShape();
+ vva = new NonTVertex(iVertex);
+ // if the ViewEdge is a closed loop, we don't create
+ // a new VEdge
+ if(ioEdge->A() == 0){
+ // closed loop
+ ioEdge->SetA(vva);
+ ioEdge->SetB(vva);
+ // update sshape
+ vshape->sshape()->RemoveEdgeFromChain(ioEdge->fedgeA());
+ vshape->sshape()->RemoveEdgeFromChain(ioEdge->fedgeB());
+
+ ioEdge->SetFEdgeA(fbegin);
+ ioEdge->SetFEdgeB(fend);
+
+ // Update FEdges
+ fend->SetNextEdge(0);
+ fbegin->SetPreviousEdge(0);
+
+ // update new View Vertex:
+ vva->AddOutgoingViewEdge(ioEdge);
+ vva->AddIncomingViewEdge(ioEdge);
+
+ vshape->sshape()->AddChain(ioEdge->fedgeA());
+ vshape->sshape()->AddChain(ioEdge->fedgeB());
+ }else{
+ // Create new ViewEdge
+ ViewEdge * newVEdge = new ViewEdge(vva, ioEdge->B(), fbegin, ioEdge->fedgeB(), vshape);
+ newVEdge->SetId(Id(ioEdge->getId().getFirst(), ioEdge->getId().getSecond()+1));
+ newVEdge->SetNature(ioEdge->getNature());
+ //newVEdge->UpdateFEdges(); // done in the ViewEdge constructor
+ // Update old ViewEdge
+ ioEdge->SetB(vva);
+ ioEdge->SetFEdgeB(fend);
+
+ // Update FEdges
+ fend->SetNextEdge(0);
+ fbegin->SetPreviousEdge(0);
+
+ // update new View Vertex:
+ vva->AddOutgoingViewEdge(newVEdge);
+ vva->AddIncomingViewEdge(ioEdge);
+ // update ViewShape
+ //vshape->AddEdge(newVEdge);
+ // update SShape
+ vshape->sshape()->AddChain(fbegin);
+ // update ViewMap
+ //_VEdges.push_back(newVEdge);
+ newViewEdges.push_back(newVEdge);
+ }
+
+ // update ViewShape
+ vshape->AddVertex(vva);
+
+ // update ViewMap
+ _VVertices.push_back(vva);
+
+ return vva;
+}
+
+//FEdge * ViewMap::Connect(FEdge *ioEdge, SVertex *ioVertex, vector<ViewEdge*>& oNewVEdges){
+// SShape * sshape = ioEdge->shape();
+// FEdge *newFEdge = sshape->SplitEdgeIn2(ioEdge, ioVertex);
+// AddFEdge(newFEdge);
+// InsertViewVertex(ioVertex, oNewVEdges);
+// return newFEdge;
+//}
+
+ /**********************************/
+ /* */
+ /* */
+ /* TVertex */
+ /* */
+ /* */
+ /**********************************/
+
+// is dve1 before dve2 ? (does it have a smaller angle ?)
+bool ViewEdgeComp(ViewVertex::directedViewEdge& dve1, ViewVertex::directedViewEdge& dve2){
+ FEdge *fe1;
+ if(dve1.second)
+ fe1 = dve1.first->fedgeB();
+ else
+ fe1 = dve1.first->fedgeA();
+ FEdge *fe2;
+ if(dve2.second)
+ fe2 = dve2.first->fedgeB();
+ else
+ fe2 = dve2.first->fedgeA();
+
+ Vec3r V1 = fe1->orientation2d();
+ Vec2r v1(V1.x(), V1.y());v1.normalize();
+ Vec3r V2 = fe2->orientation2d();
+ Vec2r v2(V2.x(), V2.y());v2.normalize();
+ if(v1.y() > 0){
+ if(v2.y() < 0)
+ return true;
+ else
+ return (v1.x() > v2.x());
+ }else{
+ if(v2.y() > 0)
+ return false;
+ else
+ return (v1.x() < v2.x());
+ }
+ return false;
+}
+void TVertex::SetFrontEdgeA(ViewEdge *iFrontEdgeA, bool incoming) {
+ if (!iFrontEdgeA) {
+ cerr << "Warning: null pointer passed as argument of TVertex::SetFrontEdgeA()" << endl;
+ return;
+ }
+ _FrontEdgeA = directedViewEdge(iFrontEdgeA, incoming);
+ if(!_sortedEdges.empty()){
+ edge_pointers_container::iterator dve = _sortedEdges.begin(), dveend = _sortedEdges.end();
+ while((dve!=dveend) && ViewEdgeComp(**dve, _FrontEdgeA)){
+ ++dve;
+ }
+ _sortedEdges.insert( dve, &_FrontEdgeA);
+ }
+ else
+ _sortedEdges.push_back(&_FrontEdgeA);
+}
+void TVertex::SetFrontEdgeB(ViewEdge *iFrontEdgeB, bool incoming) {
+ if (!iFrontEdgeB) {
+ cerr << "Warning: null pointer passed as argument of TVertex::SetFrontEdgeB()" << endl;
+ return;
+ }
+ _FrontEdgeB = directedViewEdge(iFrontEdgeB, incoming);
+ if(!_sortedEdges.empty()){
+ edge_pointers_container::iterator dve = _sortedEdges.begin(), dveend = _sortedEdges.end();
+ while((dve!=dveend) && ViewEdgeComp(**dve, _FrontEdgeB)){
+ ++dve;
+ }
+ _sortedEdges.insert(dve, &_FrontEdgeB);
+ }
+ else
+ _sortedEdges.push_back(&_FrontEdgeB);
+}
+void TVertex::SetBackEdgeA(ViewEdge *iBackEdgeA, bool incoming) {
+ if (!iBackEdgeA) {
+ cerr << "Warning: null pointer passed as argument of TVertex::SetBackEdgeA()" << endl;
+ return;
+ }
+ _BackEdgeA = directedViewEdge(iBackEdgeA, incoming);
+ if(!_sortedEdges.empty()){
+ edge_pointers_container::iterator dve = _sortedEdges.begin(), dveend = _sortedEdges.end();
+ while((dve!=dveend) && ViewEdgeComp(**dve, _BackEdgeA)){
+ ++dve;
+ }
+ _sortedEdges.insert(dve, &_BackEdgeA);
+ }
+ else
+ _sortedEdges.push_back(&_BackEdgeA);
+}
+void TVertex::SetBackEdgeB(ViewEdge *iBackEdgeB, bool incoming) {
+ if (!iBackEdgeB) {
+ cerr << "Warning: null pointer passed as argument of TVertex::SetBackEdgeB()" << endl;
+ return;
+ }
+ _BackEdgeB = directedViewEdge(iBackEdgeB, incoming);
+ if(!_sortedEdges.empty()){
+ edge_pointers_container::iterator dve = _sortedEdges.begin(), dveend = _sortedEdges.end();
+ while((dve!=dveend) && ViewEdgeComp(**dve, _BackEdgeB)){
+ ++dve;
+ }
+ _sortedEdges.insert(dve, &_BackEdgeB);
+ }
+ else
+ _sortedEdges.push_back(&_BackEdgeB);
+}
+void TVertex::Replace(ViewEdge *iOld, ViewEdge *iNew)
+{
+ // theoritically, we only replace edges for which this
+ // view vertex is the B vertex
+ if((iOld == _FrontEdgeA.first) && (_FrontEdgeA.first->B() == this))
+ {
+ _FrontEdgeA.first = iNew;
+ return;
+ }
+ if((iOld == _FrontEdgeB.first) && (_FrontEdgeB.first->B() == this))
+ {
+ _FrontEdgeB.first = iNew;
+ return;
+ }
+ if((iOld == _BackEdgeA.first) && (_BackEdgeA.first->B() == this))
+ {
+ _BackEdgeA.first = iNew;
+ return;
+ }
+ if((iOld == _BackEdgeB.first) && (_BackEdgeB.first->B() == this))
+ {
+ _BackEdgeB.first = iNew;
+ return;
+ }
+}
+
+/*! iterators access */
+ViewVertex::edge_iterator TVertex::edges_begin()
+{
+ //return edge_iterator(_FrontEdgeA, _FrontEdgeB, _BackEdgeA, _BackEdgeB, _FrontEdgeA);
+ return edge_iterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.begin());
+}
+ViewVertex::const_edge_iterator TVertex::edges_begin() const
+{
+ //return const_edge_iterator(_FrontEdgeA, _FrontEdgeB, _BackEdgeA, _BackEdgeB, _FrontEdgeA);
+ return const_edge_iterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.begin());
+}
+ViewVertex::edge_iterator TVertex::edges_end()
+{
+ //return edge_iterator(_FrontEdgeA, _FrontEdgeB, _BackEdgeA, _BackEdgeB, directedViewEdge(0,true));
+ return edge_iterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.end());
+}
+ViewVertex::const_edge_iterator TVertex::edges_end() const
+{
+ //return const_edge_iterator(_FrontEdgeA, _FrontEdgeB, _BackEdgeA, _BackEdgeB, directedViewEdge(0, true));
+ return const_edge_iterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.end());
+}
+ViewVertex::edge_iterator TVertex::edges_iterator(ViewEdge *iEdge)
+{
+ for(edge_pointers_container::iterator it=_sortedEdges.begin(), itend=_sortedEdges.end();
+ it!=itend;
+ it++)
+ {
+ if((*it)->first == iEdge)
+ return edge_iterator(_sortedEdges.begin(), _sortedEdges.end(), it);
+ }
+ return edge_iterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.begin());
+
+ // directedViewEdge dEdge;
+ // if(_FrontEdgeA.first == iEdge)
+ // dEdge = _FrontEdgeA;
+ // else if(_FrontEdgeB.first == iEdge)
+ // dEdge = _FrontEdgeB;
+ // else if(_BackEdgeA.first == iEdge)
+ // dEdge = _BackEdgeA;
+ // else if(_BackEdgeB.first == iEdge)
+ // dEdge = _BackEdgeB;
+ // return edge_iterator(_FrontEdgeA, _FrontEdgeB, _BackEdgeA, _BackEdgeB, dEdge);
+}
+ViewVertex::const_edge_iterator TVertex::edges_iterator(ViewEdge *iEdge) const
+{
+ for(edge_pointers_container::const_iterator it=_sortedEdges.begin(), itend=_sortedEdges.end();
+ it!=itend;
+ it++)
+ {
+ if((*it)->first == iEdge)
+ return const_edge_iterator(_sortedEdges.begin(), _sortedEdges.end(), it);
+ }
+ return const_edge_iterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.begin());
+
+ // directedViewEdge dEdge;
+ // if(_FrontEdgeA.first == iEdge)
+ // dEdge = _FrontEdgeA;
+ // else if(_FrontEdgeB.first == iEdge)
+ // dEdge = _FrontEdgeB;
+ // else if(_BackEdgeA.first == iEdge)
+ // dEdge = _BackEdgeA;
+ // else if(_BackEdgeB.first == iEdge)
+ // dEdge = _BackEdgeB;
+ // return const_edge_iterator(_FrontEdgeA, _FrontEdgeB, _BackEdgeA, _BackEdgeB, dEdge);
+}
+
+ViewVertexInternal::orientedViewEdgeIterator TVertex::edgesBegin() {
+ return ViewVertexInternal::orientedViewEdgeIterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.begin());
+}
+ViewVertexInternal::orientedViewEdgeIterator TVertex::edgesEnd() {
+ return ViewVertexInternal::orientedViewEdgeIterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.end());
+}
+ViewVertexInternal::orientedViewEdgeIterator TVertex::edgesIterator(ViewEdge *iEdge) {
+ for(edge_pointers_container::iterator it=_sortedEdges.begin(), itend=_sortedEdges.end();
+ it!=itend;
+ it++)
+ {
+ if((*it)->first == iEdge)
+ return ViewVertexInternal::orientedViewEdgeIterator(_sortedEdges.begin(), _sortedEdges.end(), it);
+ }
+ return ViewVertexInternal::orientedViewEdgeIterator(_sortedEdges.begin(), _sortedEdges.end(), _sortedEdges.begin());
+}
+ /**********************************/
+ /* */
+ /* */
+ /* NonTVertex */
+ /* */
+ /* */
+ /**********************************/
+
+void NonTVertex::AddOutgoingViewEdge(ViewEdge * iVEdge){
+ // let's keep the viewedges ordered in CCW order
+ // in the 2D image plan
+ directedViewEdge idve(iVEdge, false);
+ if(!_ViewEdges.empty()){
+ edges_container::iterator dve = _ViewEdges.begin(), dveend = _ViewEdges.end();
+ while((dve!=dveend) && ViewEdgeComp(*dve, idve)){
+ ++dve;
+ }
+ _ViewEdges.insert(dve, idve);
+ }
+ else
+ _ViewEdges.push_back(idve);
+}
+
+void NonTVertex::AddIncomingViewEdge(ViewEdge * iVEdge){
+ // let's keep the viewedges ordered in CCW order
+ // in the 2D image plan
+ directedViewEdge idve(iVEdge, true);
+ if(!_ViewEdges.empty()){
+ edges_container::iterator dve = _ViewEdges.begin(), dveend = _ViewEdges.end();
+ while((dve!=dveend) && ViewEdgeComp(*dve, idve)){
+ ++dve;
+ }
+ _ViewEdges.insert(dve, idve);
+ }
+ else
+ _ViewEdges.push_back(idve);
+}
+
+/*! iterators access */
+ViewVertex::edge_iterator NonTVertex::edges_begin()
+{
+ return edge_iterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.begin());
+}
+ViewVertex::const_edge_iterator NonTVertex::edges_begin() const
+{
+ return const_edge_iterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.begin());
+}
+ViewVertex::edge_iterator NonTVertex::edges_end()
+{
+ return edge_iterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.end());
+}
+ViewVertex::const_edge_iterator NonTVertex::edges_end() const
+{
+ return const_edge_iterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.end());
+}
+ViewVertex::edge_iterator NonTVertex::edges_iterator(ViewEdge *iEdge)
+{
+ for(edges_container::iterator it=_ViewEdges.begin(), itend=_ViewEdges.end();
+ it!=itend;
+ it++)
+ {
+ if((it)->first == iEdge)
+ return edge_iterator(_ViewEdges.begin(), _ViewEdges.end(), it);
+ }
+ return edge_iterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.begin());
+}
+ViewVertex::const_edge_iterator NonTVertex::edges_iterator(ViewEdge *iEdge) const
+{
+ for(edges_container::const_iterator it=_ViewEdges.begin(), itend=_ViewEdges.end();
+ it!=itend;
+ it++)
+ {
+ if((it)->first == iEdge)
+ return const_edge_iterator(_ViewEdges.begin(), _ViewEdges.end(), it);
+ }
+ return const_edge_iterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.begin());
+}
+
+ViewVertexInternal::orientedViewEdgeIterator NonTVertex::edgesBegin() {
+ return ViewVertexInternal::orientedViewEdgeIterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.begin());
+}
+ViewVertexInternal::orientedViewEdgeIterator NonTVertex::edgesEnd() {
+ return ViewVertexInternal::orientedViewEdgeIterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.end());
+}
+ViewVertexInternal::orientedViewEdgeIterator NonTVertex::edgesIterator(ViewEdge *iEdge) {
+ for(edges_container::iterator it=_ViewEdges.begin(), itend=_ViewEdges.end();
+ it!=itend;
+ it++)
+ {
+ if((it)->first == iEdge)
+ return ViewVertexInternal::orientedViewEdgeIterator(_ViewEdges.begin(), _ViewEdges.end(), it);
+ }
+ return ViewVertexInternal::orientedViewEdgeIterator(_ViewEdges.begin(), _ViewEdges.end(), _ViewEdges.begin());
+}
+ /**********************************/
+ /* */
+ /* */
+ /* ViewEdge */
+ /* */
+ /* */
+ /**********************************/
+
+real ViewEdge::getLength2D() const
+{
+ float length = 0.f;
+ ViewEdge::const_fedge_iterator itlast = fedge_iterator_last();
+ ViewEdge::const_fedge_iterator it = fedge_iterator_begin(), itend=fedge_iterator_end();
+ Vec2r seg;
+ do{
+ seg = Vec2r((*it)->orientation2d()[0], (*it)->orientation2d()[1]);
+ length += seg.norm();
+ ++it;
+ }while((it!=itend) && (it!=itlast));
+ return length;
+}
+
+
+//! view edge iterator
+ViewEdge::edge_iterator ViewEdge::ViewEdge_iterator() {return edge_iterator(this);}
+ViewEdge::const_edge_iterator ViewEdge::ViewEdge_iterator() const {return const_edge_iterator((ViewEdge*)this);}
+//! feature edge iterator
+ViewEdge::fedge_iterator ViewEdge::fedge_iterator_begin() {return fedge_iterator(this->_FEdgeA, this->_FEdgeB);}
+ViewEdge::const_fedge_iterator ViewEdge::fedge_iterator_begin() const {return const_fedge_iterator(this->_FEdgeA, this->_FEdgeB);}
+ViewEdge::fedge_iterator ViewEdge::fedge_iterator_last() {return fedge_iterator(this->_FEdgeB, this->_FEdgeB);}
+ViewEdge::const_fedge_iterator ViewEdge::fedge_iterator_last() const {return const_fedge_iterator(this->_FEdgeB, this->_FEdgeB);}
+ViewEdge::fedge_iterator ViewEdge::fedge_iterator_end() {return fedge_iterator(0, this->_FEdgeB);}
+ViewEdge::const_fedge_iterator ViewEdge::fedge_iterator_end() const {return const_fedge_iterator(0, this->_FEdgeB);}
+//! embedding vertex iterator
+ViewEdge::const_vertex_iterator ViewEdge::vertices_begin() const {return const_vertex_iterator(this->_FEdgeA->vertexA(), 0, _FEdgeA);}
+ViewEdge::vertex_iterator ViewEdge::vertices_begin() {return vertex_iterator(this->_FEdgeA->vertexA(), 0, _FEdgeA);}
+ViewEdge::const_vertex_iterator ViewEdge::vertices_last() const {return const_vertex_iterator(this->_FEdgeB->vertexB(), _FEdgeB, 0);}
+ViewEdge::vertex_iterator ViewEdge::vertices_last() {return vertex_iterator(this->_FEdgeB->vertexB(), _FEdgeB, 0);}
+ViewEdge::const_vertex_iterator ViewEdge::vertices_end() const {return const_vertex_iterator(0, _FEdgeB, 0);}
+ViewEdge::vertex_iterator ViewEdge::vertices_end() {return vertex_iterator(0, _FEdgeB, 0);}
+
+
+Interface0DIterator ViewEdge::verticesBegin() {
+ Interface0DIterator ret(new ViewEdgeInternal::SVertexIterator(this->_FEdgeA->vertexA(), this->_FEdgeA->vertexA(), 0, _FEdgeA, 0.f));
+ return ret;
+}
+
+Interface0DIterator ViewEdge::verticesEnd() {
+ Interface0DIterator ret(new ViewEdgeInternal::SVertexIterator(0, this->_FEdgeA->vertexA(), _FEdgeB, 0, getLength2D()));
+ return ret;
+}
+
+Interface0DIterator ViewEdge::pointsBegin(float t) {
+ return verticesBegin();
+}
+
+Interface0DIterator ViewEdge::pointsEnd(float t) {
+ return verticesEnd();
+}
+
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewShape */
+ /* */
+ /* */
+ /**********************************/
+
+
+ViewShape::~ViewShape()
+{
+ _Vertices.clear();
+
+ if(!(_Edges.empty()))
+ {
+ for(vector<ViewEdge*>::iterator e=_Edges.begin(), eend=_Edges.end();
+ e!=eend;
+ e++)
+ {
+ delete (*e);
+ }
+ _Edges.clear();
+ }
+
+ if(0 != _SShape)
+ {
+ delete _SShape;
+ _SShape = 0;
+ }
+}
+
+void ViewShape::RemoveEdge(ViewEdge * iViewEdge)
+{
+ FEdge * fedge = iViewEdge->fedgeA();
+ for(vector<ViewEdge*>::iterator ve=_Edges.begin(),veend=_Edges.end();
+ ve!=veend;
+ ve++)
+ {
+ if(iViewEdge == (*ve))
+ {
+ _Edges.erase(ve);
+ _SShape->RemoveEdge(fedge);
+ break;
+ }
+ }
+}
+
+void ViewShape::RemoveVertex(ViewVertex * iViewVertex)
+{
+ for(vector<ViewVertex*>::iterator vv=_Vertices.begin(), vvend=_Vertices.end();
+ vv!=vvend;
+ vv++)
+ {
+ if(iViewVertex == (*vv))
+ {
+ _Vertices.erase(vv);
+ break;
+ }
+ }
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewEdge */
+ /* */
+ /* */
+ /**********************************/
+
+
+void ViewEdge::UpdateFEdges()
+{
+ FEdge *currentEdge = _FEdgeA;
+ do
+ {
+ currentEdge->SetViewEdge(this);
+ currentEdge = currentEdge->nextEdge();
+ }while((currentEdge != NULL) && (currentEdge!= _FEdgeB));
+ // last one
+ _FEdgeB->SetViewEdge(this);
+
+}
diff --git a/source/blender/freestyle/intern/view_map/ViewMap.h b/source/blender/freestyle/intern/view_map/ViewMap.h
new file mode 100755
index 00000000000..bdbb140e130
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMap.h
@@ -0,0 +1,1487 @@
+//
+// Filename : ViewMap.h
+// Author(s) : Stephane Grabli
+// Purpose : Classes to define a View Map (ViewVertex, ViewEdge, etc.)
+// Date of creation : 03/09/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VIEWMAP_H
+# define VIEWMAP_H
+
+# include "../system/BaseIterator.h"
+# include "../system/FreestyleConfig.h"
+# include "../geometry/GeomUtils.h"
+# include "Interface0D.h"
+# include "Interface1D.h"
+# include "Silhouette.h" // defines the embedding
+# include <map>
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewMap */
+ /* */
+ /* */
+ /**********************************/
+
+
+/* Density
+ Mean area depth value
+ distance to a point
+ */
+
+class ViewVertex;
+class ViewEdge;
+class ViewShape;
+class TVertex;
+
+/*! Class defining the ViewMap.*/
+class LIB_VIEW_MAP_EXPORT ViewMap
+{
+public:
+
+ typedef vector<ViewEdge*> viewedges_container;
+ typedef vector<ViewVertex*> viewvertices_container;
+ typedef vector<ViewShape*> viewshapes_container;
+ typedef vector<SVertex*> svertices_container;
+ typedef vector<FEdge*> fedges_container;
+ typedef map<int,int> id_to_index_map;
+
+private:
+
+ static ViewMap *_pInstance;
+ viewshapes_container _VShapes; // view shapes
+ viewedges_container _VEdges; // view edges
+ viewvertices_container _VVertices; // view vertices
+ fedges_container _FEdges; // feature edges (embedded edges)
+ svertices_container _SVertices; // embedded vertices
+ BBox<Vec3r> _scene3DBBox;
+ id_to_index_map _shapeIdToIndex; // Mapping between the WShape or VShape id to the VShape index in the
+ // _VShapes vector. Used in the method viewShape(int id) to access a shape from its id.
+
+public:
+
+ /*! A field that can be used by the user to store any data.
+ * This field must be reseted afterwards using ResetUserData().
+ */
+ void* userdata;
+
+ /*! Default constructor. */
+ ViewMap() {
+ _pInstance = this;
+ userdata = 0;
+ }
+ /*! Destructor. */
+ virtual ~ViewMap();
+
+ /*! Gets the viewedge the nearest to the
+ * 2D position specified as argument
+ */
+ const ViewEdge * GetClosestViewEdge(real x, real y) const ;
+
+ /*! Gets the Fedge the nearest to the
+ * 2D position specified as argument
+ */
+ const FEdge * GetClosestFEdge(real x, real y) const ;
+
+ /* accessors */
+ /*! The ViewMap is a singleton class. This static method
+ * returns the instance of the ViewMap.
+ */
+ static inline ViewMap * getInstance() {return _pInstance;}
+ /* Returns the list of ViewShapes of the scene. */
+ inline viewshapes_container& ViewShapes() {return _VShapes;}
+ /* Returns the list of ViewEdges of the scene. */
+ inline viewedges_container& ViewEdges() {return _VEdges;}
+ /* Returns the list of ViewVertices of the scene. */
+ inline viewvertices_container& ViewVertices() {return _VVertices;}
+ /* Returns the list of FEdges of the scene. */
+ inline fedges_container& FEdges() {return _FEdges;}
+ /* Returns the list of SVertices of the scene. */
+ inline svertices_container& SVertices() {return _SVertices;}
+ /* Returns an iterator pointing onto the first ViewEdge of the list. */
+ inline viewedges_container::iterator viewedges_begin() {return _VEdges.begin();}
+ inline viewedges_container::iterator viewedges_end() {return _VEdges.end();}
+ inline int viewedges_size() {return _VEdges.size();}
+ ViewShape * viewShape(unsigned index);
+ id_to_index_map& shapeIdToIndexMap() {return _shapeIdToIndex;}
+
+ /*! Returns the scene 3D bounding box. */
+ inline BBox<Vec3r> getScene3dBBox() const {return _scene3DBBox;}
+
+ /* modifiers */
+ void AddViewShape(ViewShape *iVShape);
+ inline void AddViewEdge(ViewEdge *iVEdge) {_VEdges.push_back(iVEdge);}
+ inline void AddViewVertex(ViewVertex *iVVertex) {_VVertices.push_back(iVVertex);}
+ inline void AddFEdge(FEdge *iFEdge) {_FEdges.push_back(iFEdge);}
+ inline void AddSVertex(SVertex *iSVertex) {_SVertices.push_back(iSVertex);}
+ /*! Sets the scene 3D bounding box. */
+ inline void setScene3dBBox(const BBox<Vec3r>& bbox) {_scene3DBBox=bbox;}
+
+ /* Creates a T vertex in the view map.
+ * A T vertex is the intersection between 2
+ * FEdges (before these ones are splitted).
+ * The TVertex is a 2D intersection but it
+ * corresponds to a 3D point on each of the 2 FEdges.
+ * iA3D
+ * The 3D coordinates of the point corresponding
+ * to the intersection on the first edge.
+ * iA2D
+ * The x,y,z 2D coordinates of the projection
+ * of iA3D
+ * iFEdgeA
+ * The first FEdge
+ * iB3D
+ * The 3D coordinates of the point corresponding
+ * to the intersection on the second edge.
+ * iB2D
+ * The x,y,z 2D coordinates of the projection
+ * of iB3D
+ * iFEdgeB
+ * The second FEdge
+ * id
+ * The id that must be given to that TVertex
+ */
+ TVertex* CreateTVertex(const Vec3r& iA3D, const Vec3r& iA2D, FEdge *iFEdgeA,
+ const Vec3r& iB3D, const Vec3r& iB2D, FEdge *iFEdgeB,
+ const Id& id);
+
+ /* Updates the structures to take into account the fact
+ * that a SVertex must now be considered as a ViewVertex
+ * iVertex
+ * The SVertex on top of which the ViewVertex is built (it is necessarily
+ * a NonTVertex because it is a SVertex)
+ * newViewEdges
+ * The new ViewEdges that must be add to the ViewMap
+ */
+ ViewVertex * InsertViewVertex(SVertex *iVertex, vector<ViewEdge*>& newViewEdges);
+
+ /* connects a FEdge to the graph trough a SVertex */
+ //FEdge * Connect(FEdge *ioEdge, SVertex *ioVertex);
+};
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewVertex */
+ /* */
+ /* */
+ /**********************************/
+
+class ViewEdge;
+class SShape;
+
+namespace ViewVertexInternal {
+ class edge_const_traits;
+ class edge_nonconst_traits;
+ template<class Traits> class edge_iterator_base ;
+ class orientedViewEdgeIterator;
+} // end of namespace ViewEdgeInternal
+/*! Class to define a view vertex
+ * A view vertex is a feature vertex corresponding
+ * to a point of the image graph, where the characteristics of an
+ * edge might change (nature, visibility, ...).
+ * A ViewVertex can be of two kinds: a TVertex when
+ * it corresponds to the intersection between two
+ * ViewEdges or a NonTVertex when it corresponds to a
+ * vertex of the initial input mesh (it is the case
+ * for vertices such as corners for example).
+ * Thus, this class can be specialized into two classes,
+ * the TVertex class and the NonTVertex class.
+ */
+class LIB_VIEW_MAP_EXPORT ViewVertex : public Interface0D
+{
+public: // Implementation of Interface0D
+
+ /*! Returns the string "ViewVertex" .*/
+ virtual string getExactTypeName() const {
+ return "ViewVertex";
+ }
+
+public:
+ friend class ViewShape;
+ typedef pair<ViewEdge*, bool> directedViewEdge; // if bool = true, the ViewEdge is incoming
+
+ typedef vector<directedViewEdge> edges_container;
+
+ typedef ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_nonconst_traits> edge_iterator;
+ typedef ViewVertexInternal::edge_iterator_base<ViewVertexInternal::edge_const_traits> const_edge_iterator;
+
+private:
+
+ Nature::VertexNature _Nature;
+
+public:
+ /*! A field that can be used by the user to store any data.
+ * This field must be reseted afterwards using ResetUserData().
+ */
+ void * userdata;
+ /*! Default constructor.*/
+ inline ViewVertex() {userdata = 0;_Nature = Nature::VIEW_VERTEX; }
+ inline ViewVertex(Nature::VertexNature nature) {
+ userdata = 0;
+ _Nature = Nature::VIEW_VERTEX | nature;
+ }
+
+protected:
+ /*! Copy constructor. */
+ inline ViewVertex(ViewVertex& iBrother)
+ {
+ _Nature = iBrother._Nature;
+ iBrother.userdata = this;
+ userdata = 0;
+ }
+ /*! Cloning method. */
+ virtual ViewVertex * dupplicate() = 0;
+
+public:
+ /*! Destructor. */
+ virtual ~ViewVertex() {}
+
+ /* accessors */
+ /*! Returns the nature of the vertex .*/
+ virtual Nature::VertexNature getNature() const {
+ return _Nature;
+ }
+
+ /* modifiers */
+ /*! Sets the nature of the vertex. */
+ inline void setNature(Nature::VertexNature iNature) {_Nature = iNature;}
+
+ /* Replaces old edge by new edge */
+ virtual void Replace(ViewEdge *, ViewEdge *) {}
+
+public:
+
+ /* iterators access */
+ // allows iteration on the edges that comes from/goes to
+ // this vertex in CCW order (order defined in 2D in the image plan)
+ virtual edge_iterator edges_begin() = 0;
+ virtual const_edge_iterator edges_begin() const = 0;
+ virtual edge_iterator edges_end() = 0;
+ virtual const_edge_iterator edges_end() const = 0;
+ virtual edge_iterator edges_iterator(ViewEdge *iEdge) = 0;
+ virtual const_edge_iterator edges_iterator(ViewEdge *iEdge) const = 0;
+
+ // Iterator access
+ /*! Returns an iterator over the ViewEdges that goes to or comes from
+ * this ViewVertex pointing to the first ViewEdge of the list.
+ * The orientedViewEdgeIterator allows to iterate in CCW order over these ViewEdges
+ * and to get the orientation for each ViewEdge (incoming/outgoing).
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesBegin() = 0;
+ /*! Returns an orientedViewEdgeIterator over the ViewEdges around this ViewVertex,
+ * pointing after the last ViewEdge.
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesEnd() = 0;
+ /*! Returns an orientedViewEdgeIterator pointing to the ViewEdge
+ * given as argument.
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesIterator(ViewEdge *iEdge) = 0;
+
+};
+
+ /**********************************/
+ /* */
+ /* */
+ /* TVertex */
+ /* */
+ /* */
+ /**********************************/
+
+/*! class to define a T vertex, i.e. an intersection between
+ * two edges.
+ * It points towards 2 SVertex and 4 View edges.
+ * Among these ViewEdges, 2 are front and 2 are back.
+ * Basically the front edge hides part of the back edge.
+ * So, among the back edges, 1 is of invisibility n
+ * and the other of visibility n+1
+ */
+class LIB_VIEW_MAP_EXPORT TVertex : public ViewVertex
+{
+public:
+ typedef vector<directedViewEdge*> edge_pointers_container;
+public: // Implementation of Interface0D
+
+ /*! Returns the string "TVertex" .*/
+ virtual string getExactTypeName() const {
+ return "TVertex";
+ }
+
+ // Data access methods
+ /* Returns the 3D x coordinate of the vertex .
+ * Ambiguous in this case.
+ */
+ virtual real getX() const {
+ cerr << "Warning: getX() undefined for this point" << endl;
+ return _FrontSVertex->point3D().x();
+ }
+
+ virtual real getY() const {
+ cerr << "Warning: getX() undefined for this point" << endl;
+ return _FrontSVertex->point3D().y();
+ }
+
+ virtual real getZ() const {
+ cerr << "Warning: getX() undefined for this point" << endl;
+ return _FrontSVertex->point3D().z();
+ }
+
+ /*! Returns the 3D point. */
+ virtual Vec3f getPoint3D() const {
+ cerr << "Warning: getPoint3D() undefined for this point" << endl;
+ return _FrontSVertex->getPoint3D();
+ }
+
+ /*! Returns the projected 3D x coordinate of the vertex .*/
+ virtual real getProjectedX() const {
+ return _FrontSVertex->point2D().x();
+ }
+
+ /*! Returns the projected 3D y coordinate of the vertex .*/
+ virtual real getProjectedY() const {
+ return _FrontSVertex->point2D().y();
+ }
+
+ virtual real getProjectedZ() const {
+ return _FrontSVertex->point2D().z();
+ }
+
+ /*! Returns the 2D point. */
+ virtual Vec2f getPoint2D() const {
+ return _FrontSVertex->getPoint2D();
+ }
+
+ /*! Returns the Id of the TVertex .*/
+ virtual Id getId() const {
+ return _Id;
+ }
+
+ /*! Cast the Interface0D in SVertex if it can be. */
+ // it can't
+ /*! Cast the Interface0D in ViewVertex if it can be. */
+ virtual ViewVertex * castToViewVertex(){
+ return this;
+ }
+
+ /*! Cast the Interface0D in TVertex if it can be. */
+ virtual TVertex * castToTVertex(){
+ return this;
+ }
+
+private:
+ SVertex *_FrontSVertex;
+ SVertex *_BackSVertex;
+ directedViewEdge _FrontEdgeA;
+ directedViewEdge _FrontEdgeB;
+ directedViewEdge _BackEdgeA;
+ directedViewEdge _BackEdgeB;
+ Id _Id; // id to identify t vertices . these id will be negative in order not to be mixed with NonTVertex ids.
+ edge_pointers_container _sortedEdges; // the list of the four ViewEdges, ordered in CCW order (in the image plan)
+
+
+public:
+ /*! Default constructor.*/
+ inline TVertex() : ViewVertex(Nature::T_VERTEX)
+ {
+ _FrontSVertex = 0;
+ _BackSVertex = 0;
+ _FrontEdgeA.first = 0;
+ _FrontEdgeB.first = 0;
+ _BackEdgeA.first = 0;
+ _BackEdgeB.first = 0;
+
+ }
+
+ inline TVertex(SVertex *svFront, SVertex *svBack)
+ : ViewVertex(Nature::T_VERTEX)
+ {
+ _FrontSVertex = svFront;
+ _BackSVertex = svBack;
+ _FrontEdgeA.first = 0;
+ _FrontEdgeB.first = 0;
+ _BackEdgeA.first = 0;
+ _BackEdgeB.first = 0;
+ svFront->SetViewVertex(this);
+ svBack->SetViewVertex(this);
+ }
+
+protected:
+ /*! Copy constructor. */
+ inline TVertex(TVertex& iBrother)
+ : ViewVertex(iBrother)
+ {
+ _FrontSVertex = iBrother._FrontSVertex;
+ _BackSVertex = iBrother._BackSVertex;
+ _FrontEdgeA = iBrother._FrontEdgeA;
+ _FrontEdgeB = iBrother._FrontEdgeB;
+ _BackEdgeA = iBrother._BackEdgeA;
+ _BackEdgeB = iBrother._BackEdgeB;
+ _sortedEdges = iBrother._sortedEdges;
+ }
+
+ /*! Cloning method. */
+ virtual ViewVertex * dupplicate()
+ {
+ TVertex *clone = new TVertex(*this);
+ return clone;
+ }
+
+public:
+ /* accessors */
+ /*! Returns the SVertex that is closer to the viewpoint. */
+ inline SVertex *frontSVertex() {return _FrontSVertex;}
+ /*! Returns the SVertex that is further away from the viewpoint. */
+ inline SVertex *backSVertex() {return _BackSVertex;}
+ inline directedViewEdge& frontEdgeA() {return _FrontEdgeA;}
+ inline directedViewEdge& frontEdgeB() {return _FrontEdgeB;}
+ inline directedViewEdge& backEdgeA() {return _BackEdgeA;}
+ inline directedViewEdge& backEdgeB() {return _BackEdgeB;}
+
+ /* modifiers */
+ /*! Sets the SVertex that is closer to the viewpoint. */
+ inline void SetFrontVertex(SVertex *iFrontSVertex) {_FrontSVertex = iFrontSVertex;_FrontSVertex->SetViewVertex(this);}
+ /*! Sets the SVertex that is further away from the viewpoint. */
+ inline void SetBackSVertex(SVertex *iBackSVertex) {_BackSVertex = iBackSVertex;_BackSVertex->SetViewVertex(this);}
+ void SetFrontEdgeA(ViewEdge *iFrontEdgeA, bool incoming=true);
+ void SetFrontEdgeB(ViewEdge *iFrontEdgeB, bool incoming=true) ;
+ void SetBackEdgeA(ViewEdge *iBackEdgeA, bool incoming=true);
+ void SetBackEdgeB(ViewEdge *iBackEdgeB, bool incoming=true) ;
+ /*! Sets the Id. */
+ inline void SetId(const Id& iId) {_Id = iId;}
+
+ /*! Returns the SVertex (among the 2) belonging to the FEdge iFEdge */
+ inline SVertex * GetSVertex(FEdge *iFEdge)
+ {
+ const vector<FEdge*>& vfEdges = _FrontSVertex->fedges();
+ vector<FEdge*>::const_iterator fe,fend;
+ for(fe=vfEdges.begin(),fend=vfEdges.end();
+ fe!=fend;
+ fe++)
+ {
+ if((*fe) == iFEdge)
+ return _FrontSVertex;
+ }
+
+ const vector<FEdge*>& vbEdges = _BackSVertex->fedges();
+ for(fe=vbEdges.begin(),fend=vbEdges.end();
+ fe!=fend;
+ fe++)
+ {
+ if((*fe) == iFEdge)
+ return _BackSVertex;
+ }
+ return 0;
+ }
+
+ virtual void Replace(ViewEdge *iOld, ViewEdge *iNew);
+
+ /*! returns the mate edge of iEdgeA.
+ * For example, if iEdgeA is frontEdgeA,
+ * then frontEdgeB is returned. If iEdgeA is
+ * frontEdgeB then frontEdgeA is returned.
+ * Same for back edges
+ */
+ virtual ViewEdge * mate(ViewEdge* iEdgeA)
+ {
+ if(iEdgeA == _FrontEdgeA.first)
+ return _FrontEdgeB.first;
+ if(iEdgeA == _FrontEdgeB.first)
+ return _FrontEdgeA.first;
+ if(iEdgeA == _BackEdgeA.first)
+ return _BackEdgeB.first;
+ if(iEdgeA == _BackEdgeB.first)
+ return _BackEdgeA.first;
+ return 0;
+ }
+
+ /* iterators access */
+ virtual edge_iterator edges_begin();
+ virtual const_edge_iterator edges_begin() const;
+ virtual edge_iterator edges_end();
+ virtual const_edge_iterator edges_end() const;
+ virtual edge_iterator edges_iterator(ViewEdge *iEdge);
+ virtual const_edge_iterator edges_iterator(ViewEdge *iEdge) const;
+
+ /*! Returns an iterator over the ViewEdges that goes to or comes from
+ * this ViewVertex pointing to the first ViewEdge of the list.
+ * The orientedViewEdgeIterator allows to iterate in CCW order over these ViewEdges
+ * and to get the orientation for each ViewEdge (incoming/outgoing).
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesBegin() ;
+ /*! Returns an orientedViewEdgeIterator over the ViewEdges around this ViewVertex,
+ * pointing after the last ViewEdge.
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesEnd() ;
+ /*! Returns an orientedViewEdgeIterator pointing to the ViewEdge
+ * given as argument.
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesIterator(ViewEdge *iEdge) ;
+};
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* NonTVertex */
+ /* */
+ /* */
+ /**********************************/
+
+
+// (non T vertex)
+/*! View vertex for corners, cusps, etc...
+ * Associated to a single SVertex.
+ * Can be associated to 2 or several view edges
+ */
+class LIB_VIEW_MAP_EXPORT NonTVertex : public ViewVertex
+{
+public:
+ typedef vector<directedViewEdge> edges_container;
+
+public: // Implementation of Interface0D
+
+ /*! Returns the string "ViewVertex" .*/
+ virtual string getExactTypeName() const {
+ return "NonTVertex";
+ }
+
+ // Data access methods
+ /*! Returns the 3D x coordinate of the vertex .*/
+ virtual real getX() const {
+ return _SVertex->point3D().x();
+ }
+ /*! Returns the 3D y coordinate of the vertex .*/
+ virtual real getY() const {
+ return _SVertex->point3D().y();
+ }
+
+ /*! Returns the 3D z coordinate of the vertex .*/
+ virtual real getZ() const {
+ return _SVertex->point3D().z();
+ }
+
+ /*! Returns the 3D point. */
+ virtual Vec3f getPoint3D() const {
+ return _SVertex->getPoint3D();
+ }
+
+ /*! Returns the projected 3D x coordinate of the vertex .*/
+ virtual real getProjectedX() const {
+ return _SVertex->point2D().x();
+ }
+
+ /*! Returns the projected 3D y coordinate of the vertex .*/
+ virtual real getProjectedY() const {
+ return _SVertex->point2D().y();
+ }
+
+ /*! Returns the projected 3D z coordinate of the vertex .*/
+ virtual real getProjectedZ() const {
+ return _SVertex->point2D().z();
+ }
+
+ /*! Returns the 2D point. */
+ virtual Vec2f getPoint2D() const {
+ return _SVertex->getPoint2D();
+ }
+
+ /*! Returns the Id of the vertex .*/
+ virtual Id getId() const {
+ return _SVertex->getId();
+ }
+
+ /*! Cast the Interface0D in SVertex if it can be. */
+ virtual SVertex * castToSVertex(){
+ return _SVertex;
+ }
+
+ /*! Cast the Interface0D in ViewVertex if it can be. */
+ virtual ViewVertex * castToViewVertex(){
+ return this;
+ }
+
+ /*! Cast the Interface0D in NonTVertex if it can be. */
+ virtual NonTVertex * castToNonTVertex(){
+ return this;
+ }
+
+private:
+ SVertex *_SVertex;
+ edges_container _ViewEdges;
+public:
+ /*! Default constructor.*/
+ inline NonTVertex() : ViewVertex(Nature::NON_T_VERTEX) { _SVertex = 0; }
+ /*! Builds a NonTVertex from a SVertex. */
+ inline NonTVertex(SVertex* iSVertex) : ViewVertex(Nature::NON_T_VERTEX)
+ {
+ _SVertex = iSVertex;
+ _SVertex->SetViewVertex(this);
+ }
+protected:
+ /*! Copy constructor. */
+ inline NonTVertex(NonTVertex& iBrother)
+ : ViewVertex(iBrother)
+ {
+ _SVertex = iBrother._SVertex;
+ _SVertex->SetViewVertex(this);
+ _ViewEdges = iBrother._ViewEdges;
+ }
+ /*! Cloning method. */
+ virtual ViewVertex * dupplicate()
+ {
+ NonTVertex *clone = new NonTVertex(*this);
+ return clone;
+ }
+public:
+ /*! destructor. */
+ virtual ~NonTVertex() {}
+
+ /* accessors */
+ /*! Returns the SVertex on top of which this NonTVertex is built. */
+ inline SVertex * svertex() {return _SVertex;}
+ inline edges_container& viewedges() {return _ViewEdges;}
+
+ /* modifiers */
+ /*! Sets the SVertex on top of which this NonTVertex is built. */
+ inline void SetSVertex(SVertex *iSVertex) {_SVertex = iSVertex;_SVertex->SetViewVertex(this);}
+ inline void SetViewEdges(const vector<directedViewEdge>& iViewEdges) {_ViewEdges = iViewEdges;}
+ void AddIncomingViewEdge(ViewEdge * iVEdge) ;
+ void AddOutgoingViewEdge(ViewEdge * iVEdge) ;
+ inline void AddViewEdge(ViewEdge * iVEdge, bool incoming=true) {
+ if(incoming)
+ AddIncomingViewEdge(iVEdge);
+ else
+ AddOutgoingViewEdge(iVEdge);
+ }
+ /* Replaces old edge by new edge */
+ virtual void Replace(ViewEdge *iOld, ViewEdge *iNew)
+ {
+
+ edges_container::iterator insertedve;
+ for(edges_container::iterator ve=_ViewEdges.begin(),vend=_ViewEdges.end();
+ ve!=vend;
+ ve++)
+ {
+ if((ve)->first == iOld)
+ {
+ insertedve = _ViewEdges.insert(ve, directedViewEdge(iNew, ve->second));// inserts e2 before ve.
+ // returns an iterator pointing toward e2. ve is invalidated.
+ // we want to remove e1, but we can't use ve anymore:
+ insertedve++; // insertedve points now to e1
+ _ViewEdges.erase(insertedve);
+ return;
+ }
+ }
+ }
+
+
+ /* iterators access */
+ virtual edge_iterator edges_begin();
+ virtual const_edge_iterator edges_begin() const;
+ virtual edge_iterator edges_end();
+ virtual const_edge_iterator edges_end() const;
+ virtual edge_iterator edges_iterator(ViewEdge *iEdge);
+ virtual const_edge_iterator edges_iterator(ViewEdge *iEdge) const;
+
+ /*! Returns an iterator over the ViewEdges that goes to or comes from
+ * this ViewVertex pointing to the first ViewEdge of the list.
+ * The orientedViewEdgeIterator allows to iterate in CCW order over these ViewEdges
+ * and to get the orientation for each ViewEdge (incoming/outgoing).
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesBegin() ;
+ /*! Returns an orientedViewEdgeIterator over the ViewEdges around this ViewVertex,
+ * pointing after the last ViewEdge.
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesEnd() ;
+ /*! Returns an orientedViewEdgeIterator pointing to the ViewEdge
+ * given as argument.
+ */
+ virtual ViewVertexInternal::orientedViewEdgeIterator edgesIterator(ViewEdge *iEdge) ;
+};
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewEdge */
+ /* */
+ /* */
+ /**********************************/
+
+/* Geometry(normals...)
+ Nature of edges
+ 2D spaces (1or2, material, z...)
+ Parent Shape
+ 3D Shading, material
+ Importance
+ Occluders
+ */
+class ViewShape;
+
+namespace ViewEdgeInternal {
+ template<class Traits> class edge_iterator_base ;
+ template<class Traits> class fedge_iterator_base ;
+ template<class Traits> class vertex_iterator_base ;
+} // end of namespace ViewEdgeInternal
+
+/*! Class defining a ViewEdge. A ViewEdge in an edge
+ * of the image graph. it connnects two ViewVertex.
+ * It is made by connecting a set of FEdges.
+ */
+class LIB_VIEW_MAP_EXPORT ViewEdge : public Interface1D
+{
+public: // Implementation of Interface0D
+
+ /*! Returns the string "ViewEdge" .*/
+ virtual string getExactTypeName() const {
+ return "ViewEdge";
+ }
+
+ // Data access methods
+ /*! Returns the Id of the vertex .*/
+ virtual Id getId() const {
+ return _Id;
+ }
+
+ /*! Returns the nature of the ViewEdge. */
+ virtual Nature::EdgeNature getNature() const {
+ return _Nature;
+ }
+
+public:
+
+ typedef SVertex vertex_type;
+ friend class ViewShape;
+ // for ViewEdge iterator
+ typedef ViewEdgeInternal::edge_iterator_base<Nonconst_traits<ViewEdge*> > edge_iterator;
+ typedef ViewEdgeInternal::edge_iterator_base<Const_traits<ViewEdge*> > const_edge_iterator;
+ // for fedge iterator
+ typedef ViewEdgeInternal::fedge_iterator_base<Nonconst_traits<FEdge*> > fedge_iterator;
+ typedef ViewEdgeInternal::fedge_iterator_base<Const_traits<FEdge*> > const_fedge_iterator;
+ // for svertex iterator
+ typedef ViewEdgeInternal::vertex_iterator_base<Nonconst_traits<SVertex*> > vertex_iterator;
+ typedef ViewEdgeInternal::vertex_iterator_base<Const_traits<SVertex*> > const_vertex_iterator;
+private:
+
+ ViewVertex * __A; // edge starting vertex
+ ViewVertex * __B; // edge ending vertex
+ Nature::EdgeNature _Nature; // nature of view edge
+ ViewShape *_Shape; // shape to which the view edge belongs
+ FEdge * _FEdgeA; // first edge of the embedded fedges chain
+ FEdge * _FEdgeB; // last edge of the embedded fedges chain
+ Id _Id;
+ unsigned _ChainingTimeStamp;
+ ViewShape *_aShape; // The silhouette view edge separates 2 2D spaces. The one on the left is
+ // necessarly the Shape _Shape (the one to which this edge belongs to)
+ // and _aShape is the one on its right // NON GERE PAR LE COPY CONSTRUCTEUR
+ int _qi;
+ vector<ViewShape*> _Occluders;
+
+ // tmp
+ Id * _splittingId;
+
+public:
+ /*! A field that can be used by the user to store any data.
+ * This field must be reseted afterwards using ResetUserData().
+ */
+ void * userdata;
+ /*! Default constructor.*/
+ inline ViewEdge() {
+ __A=0;
+ __B=0;
+ _FEdgeA = 0;
+ _FEdgeB = 0;
+ _ChainingTimeStamp = 0;
+ _qi = 0;
+ _aShape=0;
+ userdata = 0;
+ _splittingId = 0;
+ }
+ inline ViewEdge(ViewVertex* iA, ViewVertex *iB)
+ {
+ __A = iA;
+ __B = iB;
+ _FEdgeA = 0;
+ _FEdgeB = 0;
+ _Shape = 0;
+ _ChainingTimeStamp = 0;
+ _aShape = 0;
+ _qi = 0;
+ userdata = 0;
+ _splittingId = 0;
+ }
+ inline ViewEdge(ViewVertex* iA, ViewVertex *iB, FEdge *iFEdgeA)
+ {
+ __A = iA;
+ __B = iB;
+ _FEdgeA = iFEdgeA;
+ _FEdgeB = 0;
+ _Shape = 0;
+ _ChainingTimeStamp = 0;
+ _aShape = 0;
+ _qi = 0;
+ userdata = 0;
+ _splittingId = 0;
+ }
+ inline ViewEdge(ViewVertex* iA, ViewVertex *iB, FEdge *iFEdgeA, FEdge *iFEdgeB, ViewShape *iShape)
+ {
+ __A = iA;
+ __B = iB;
+ _FEdgeA = iFEdgeA;
+ _FEdgeB = iFEdgeB;
+ _Shape = iShape;
+ _ChainingTimeStamp = 0;
+ _aShape = 0;
+ _qi = 0;
+ userdata = 0;
+ _splittingId = 0;
+ UpdateFEdges(); // tells every FEdge between iFEdgeA and iFEdgeB that this is theit ViewEdge
+ }
+protected:
+ /*! Copy constructor. */
+ inline ViewEdge(ViewEdge& iBrother)
+ {
+ __A = iBrother.__A;
+ __B = iBrother.__B;
+ _FEdgeA = iBrother._FEdgeA;
+ _FEdgeB = iBrother._FEdgeB;
+ _Nature = iBrother._Nature;
+ _Shape = 0;
+ _Id = iBrother._Id;
+ _ChainingTimeStamp = iBrother._ChainingTimeStamp;
+ _aShape = iBrother._aShape;
+ _qi = iBrother._qi;
+ _splittingId = 0;
+ iBrother.userdata = this;
+ userdata = 0;
+ }
+ /*! Cloning method. */
+ virtual ViewEdge * dupplicate()
+ {
+ ViewEdge *clone = new ViewEdge(*this);
+ return clone;
+ }
+
+public:
+ /*! Destructor. */
+ virtual ~ViewEdge()
+ {
+ // if(0 != _aFace)
+ // {
+ // delete _aFace;
+ // _aFace = 0;
+ // }
+ // only the last splitted deletes this id
+ if(_splittingId){
+ if(*_splittingId == _Id)
+ delete _splittingId;
+ }
+ }
+
+ /* accessors */
+ /*! Returns the first ViewVertex. */
+ inline ViewVertex* A() {return __A;}
+ /*! Returns the second ViewVertex. */
+ inline ViewVertex* B() {return __B;}
+ /*! Returns the first FEdge that constitues this ViewEdge. */
+ inline FEdge* fedgeA() {return _FEdgeA;}
+ /*! Returns the last FEdge that constitues this ViewEdge. */
+ inline FEdge* fedgeB() {return _FEdgeB;}
+ /*! Returns the ViewShape to which this ViewEdge belongs to .*/
+ inline ViewShape * viewShape() {return _Shape;}
+ /*! Returns the shape that is occluded by the ViewShape
+ * to which this ViewEdge belongs to. If no object is occluded,
+ * 0 is returned.
+ * \return The occluded ViewShape.
+ */
+ inline ViewShape * aShape() {return _aShape;}
+ /*! Tells whether this ViewEdge forms a closed loop
+ * or not.
+ */
+ inline bool isClosed()
+ {
+ if(__B == 0)
+ return true;
+ return false;
+ }
+ /*! Returns the time stamp of this ViewEdge. */
+ inline unsigned getChainingTimeStamp() {return _ChainingTimeStamp;}
+ inline const ViewShape * aShape() const {return _aShape;}
+ inline const ViewShape * bShape() const {return _Shape;}
+ inline vector<ViewShape*>& occluders() {return _Occluders;}
+ inline Id * splittingId() {return _splittingId;}
+
+ /* modifiers */
+ /*! Sets the first ViewVertex of the ViewEdge. */
+ inline void SetA(ViewVertex* iA) { __A = iA; }
+ /*! Sets the last ViewVertex of the ViewEdge. */
+ inline void SetB(ViewVertex* iB) { __B = iB; }
+ /*! Sets the nature of the ViewEdge. */
+ inline void SetNature(Nature::EdgeNature iNature) { _Nature = iNature; }
+ /*! Sets the first FEdge of the ViewEdge. */
+ inline void SetFEdgeA(FEdge* iFEdge) { _FEdgeA = iFEdge; }
+ /*! Sets the last FEdge of the ViewEdge. */
+ inline void SetFEdgeB(FEdge* iFEdge) { _FEdgeB = iFEdge; }
+ /*! Sets the ViewShape to which this ViewEdge belongs to.*/
+ inline void SetShape(ViewShape *iVShape)
+ {
+ _Shape = iVShape;
+ }
+ /*! Sets the ViewEdge id. */
+ inline void SetId(const Id& id) {_Id = id;}
+ /*! Sets Viewedge to this for all embedded fedges */
+ void UpdateFEdges();
+ /*! Sets the occluded ViewShape */
+ inline void SetaShape(ViewShape * iShape) {_aShape = iShape;}
+ /*! Sets the quantitative invisibility value. */
+ inline void SetQI(int qi) {_qi = qi;}
+ /*! Sets the time stamp value. */
+ inline void setChainingTimeStamp(unsigned ts) {_ChainingTimeStamp = ts;}
+ inline void AddOccluder(ViewShape *iShape) {_Occluders.push_back(iShape);}
+ inline void setSplittingId(Id * id) {_splittingId = id;}
+
+ /* stroke interface definition */
+ inline bool intersect_2d_area(const Vec2r& iMin, const Vec2r& iMax) const
+ {
+ // parse edges to check if one of them is intersection the region:
+ FEdge * current = _FEdgeA;
+ do
+ {
+ if(GeomUtils::intersect2dSeg2dArea(iMin,iMax,
+ Vec2r(current->vertexA()->point2D()[0],current->vertexA()->point2D()[1]),
+ Vec2r(current->vertexB()->point2D()[0],current->vertexB()->point2D()[1])))
+
+ return true;
+ current = current->nextEdge();
+ }while((current != 0) && (current != _FEdgeA));
+
+ return false;
+ }
+ inline bool include_in_2d_area(const Vec2r& iMin, const Vec2r& iMax) const
+ {
+ // parse edges to check if all of them are intersection the region:
+ FEdge * current = _FEdgeA;
+
+ do
+ {
+ if(!GeomUtils::include2dSeg2dArea(iMin,iMax,
+ Vec2r(current->vertexA()->point2D()[0],current->vertexA()->point2D()[1]),
+ Vec2r(current->vertexB()->point2D()[0],current->vertexB()->point2D()[1])))
+ return false;
+ current = current->nextEdge();
+ }while((current != 0) && (current != _FEdgeA));
+
+ return true;
+ }
+
+ /* Information access interface */
+
+ //inline Nature::EdgeNature viewedge_nature() const {return getNature();}
+ //float viewedge_length() const ;
+ /*! Returns the 2D length of the Viewedge. */
+ real getLength2D() const;
+ //inline Material material() const {return _FEdgeA->vertexA()->shape()->material();}
+ inline int qi() const {return _qi;}
+ inline occluder_container::const_iterator occluders_begin() const {return _Occluders.begin();}
+ inline occluder_container::const_iterator occluders_end() const {return _Occluders.end();}
+ inline int occluders_size() const {return _Occluders.size();}
+ inline bool occluders_empty() const {return _Occluders.empty();}
+ inline const Polygon3r& occludee() const {return (_FEdgeA->aFace());}
+ inline const SShape * occluded_shape() const ;
+ inline const bool occludee_empty() const {if(_aShape == 0) return true; return false;}
+ //inline real z_discontinuity(int iCombination = 0) const ;
+ inline Id shape_id() const {return _FEdgeA->vertexA()->shape()->getId();}
+ inline const SShape * shape() const {return _FEdgeA->vertexA()->shape();}
+ inline float shape_importance() const {return _FEdgeA->shape_importance();}
+
+ /* iterators access */
+ // view edge iterator
+ edge_iterator ViewEdge_iterator();
+ const_edge_iterator ViewEdge_iterator() const;
+ // feature edge iterator
+ fedge_iterator fedge_iterator_begin();
+ const_fedge_iterator fedge_iterator_begin() const;
+ fedge_iterator fedge_iterator_last();
+ const_fedge_iterator fedge_iterator_last() const;
+ fedge_iterator fedge_iterator_end();
+ const_fedge_iterator fedge_iterator_end() const;
+ // embedding vertex iterator
+ const_vertex_iterator vertices_begin() const;
+ vertex_iterator vertices_begin();
+ const_vertex_iterator vertices_last() const;
+ vertex_iterator vertices_last();
+ const_vertex_iterator vertices_end() const;
+ vertex_iterator vertices_end();
+
+ // Iterator access (Interface1D)
+ /*! Returns an Interface0DIterator to iterate over
+ * the SVertex constituing the embedding of this ViewEdge.
+ * The returned Interface0DIterator points to the first
+ * SVertex of the ViewEdge.
+ */
+ virtual Interface0DIterator verticesBegin();
+ /*! Returns an Interface0DIterator to iterate over
+ * the SVertex constituing the embedding of this ViewEdge.
+ * The returned Interface0DIterator points after the last
+ * SVertex of the ViewEdge.
+ */
+ virtual Interface0DIterator verticesEnd();
+
+ /*! Returns an Interface0DIterator to iterate over
+ * the points of this ViewEdge at a given resolution.
+ * The returned Interface0DIterator points on the first
+ * Point of the ViewEdge.
+ * \param t
+ * the sampling value.
+ */
+ virtual Interface0DIterator pointsBegin(float t=0.f);
+ /*! Returns an Interface0DIterator to iterate over
+ * the points of this ViewEdge at a given resolution.
+ * The returned Interface0DIterator points after the last
+ * Point of the ViewEdge.
+ * \param t
+ * the sampling value.
+ */
+ virtual Interface0DIterator pointsEnd(float t=0.f);
+};
+
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewShape */
+ /* */
+ /* */
+ /**********************************/
+
+/*! Class gathering the elements of the ViewMap (ViewVertex, ViewEdge)
+ * that are issued from the same input shape.
+ */
+class LIB_VIEW_MAP_EXPORT ViewShape
+{
+private:
+ vector<ViewVertex*> _Vertices;
+ vector<ViewEdge*> _Edges;
+ SShape * _SShape;
+
+
+public:
+ /*! A field that can be used by the user to store any data.
+ * This field must be reseted afterwards using ResetUserData().
+ */
+ void* userdata;
+ /*! Default constructor.*/
+ inline ViewShape() { userdata = 0; _SShape = 0;}
+ /*! Builds a ViewShape from a SShape. */
+ inline ViewShape(SShape *iSShape) {userdata = 0; _SShape = iSShape;}//_SShape->SetViewShape(this);}
+ /*! Copy constructor. */
+ inline ViewShape(ViewShape& iBrother)
+ {
+ userdata = 0;
+ vector<ViewVertex*>::iterator vv,vvend;
+ vector<ViewEdge*>::iterator ve, veend;
+
+ _SShape = iBrother._SShape;
+
+ vector<ViewVertex*>& vvertices = iBrother.vertices();
+ // dupplicate vertices
+ for(vv=vvertices.begin(), vvend=vvertices.end();
+ vv!=vvend;
+ vv++)
+ {
+ ViewVertex * newVertex = (*vv)->dupplicate();
+ AddVertex(newVertex);
+ }
+
+ vector<ViewEdge*>& vvedges = iBrother.edges();
+ // dupplicate edges
+ for(ve=vvedges.begin(), veend=vvedges.end();
+ ve!=veend;
+ ve++)
+ {
+ ViewEdge * newEdge = (*ve)->dupplicate();
+ AddEdge(newEdge); // here the shape is set as the edge's shape
+ }
+
+ //-------------------------
+ // remap edges in vertices:
+ //-------------------------
+ for(vv=_Vertices.begin(), vvend=_Vertices.end();
+ vv!=vvend;
+ vv++)
+ {
+ switch((*vv)->getNature())
+ {
+ case Nature::T_VERTEX:
+ {
+ TVertex *v = (TVertex*)(*vv);
+ ViewEdge *veFrontA = (ViewEdge*)(v)->frontEdgeA().first->userdata;
+ ViewEdge *veFrontB = (ViewEdge*)(v)->frontEdgeB().first->userdata;
+ ViewEdge *veBackA = (ViewEdge*)(v)->backEdgeA().first->userdata;
+ ViewEdge *veBackB = (ViewEdge*)(v)->backEdgeB().first->userdata;
+
+ v->SetFrontEdgeA(veFrontA, v->frontEdgeA().second);
+ v->SetFrontEdgeB(veFrontB, v->frontEdgeB().second);
+ v->SetBackEdgeA(veBackA, v->backEdgeA().second);
+ v->SetBackEdgeB(veBackB, v->backEdgeB().second);
+ }
+ break;
+ case Nature::NON_T_VERTEX:
+ {
+ NonTVertex * v = (NonTVertex*)(*vv);
+ vector<ViewVertex::directedViewEdge>& vedges = (v)->viewedges();
+ vector<ViewVertex::directedViewEdge> newEdges;
+ for(vector<ViewVertex::directedViewEdge>::iterator ve=vedges.begin(), veend=vedges.end();
+ ve!=veend;
+ ve++)
+ {
+ ViewEdge *current = (ViewEdge*)((ve)->first)->userdata;
+ newEdges.push_back(ViewVertex::directedViewEdge(current, ve->second));
+ }
+ (v)->SetViewEdges(newEdges);
+ }
+ break;
+ default:
+ ;
+ }
+ }
+
+ //-------------------------------------
+ // remap vertices in edges:
+ //-------------------------------------
+ for(ve=_Edges.begin(),veend=_Edges.end();
+ ve!=veend;
+ ve++)
+ {
+ (*ve)->SetA((ViewVertex*)((*ve)->A()->userdata));
+ (*ve)->SetB((ViewVertex*)((*ve)->B()->userdata));
+ //---------------------------------------
+ // Update all embedded FEdges
+ //---------------------------------------
+ (*ve)->UpdateFEdges();
+ }
+
+
+ // reset all brothers userdata to NULL:
+ //-------------------------------------
+ //---------
+ // vertices
+ //---------
+ for(vv=vvertices.begin(),vvend=vvertices.end();
+ vv!=vvend;
+ vv++)
+ {
+ (*vv)->userdata = NULL;
+ }
+
+ //------
+ // edges
+ //------
+ for(ve=vvedges.begin(),veend=vvedges.end();
+ ve!=veend;
+ ve++)
+ {
+ (*ve)->userdata = NULL;
+ }
+ }
+
+ /*! Cloning method. */
+ virtual ViewShape * dupplicate()
+ {
+ ViewShape *clone = new ViewShape(*this);
+ return clone;
+ }
+
+ /*! Destructor. */
+ virtual ~ViewShape();
+
+ /* splits a view edge into several view edges.
+ * fe
+ * The FEdge that gets splitted
+ * iViewVertices
+ * The view vertices corresponding to the different intersections for the edge fe.
+ * This list need to be sorted such as the first view vertex is the
+ * farther away from fe->vertexA.
+ * ioNewEdges
+ * The feature edges that are newly created (the initial edges are not
+ * included) are added to this list.
+ * ioNewViewEdges
+ * The view edges that are newly created (the initial edges are not
+ * included) are added to this list.
+ */
+ inline void SplitEdge(FEdge *fe,
+ const vector<TVertex*>& iViewVertices,
+ vector<FEdge*>& ioNewEdges,
+ vector<ViewEdge*>& ioNewViewEdges);
+ /* accessors */
+ /*! Returns the SShape on top of which this ViewShape is built. */
+ inline SShape * sshape() {return _SShape;}
+ /*! Returns the SShape on top of which this ViewShape is built. */
+ inline const SShape * sshape() const {return _SShape;}
+ /*! Returns the list of ViewVertex contained in this ViewShape. */
+ inline vector<ViewVertex*>& vertices() {return _Vertices;}
+ /*! Returns the list of ViewEdge contained in this ViewShape. */
+ inline vector<ViewEdge*>& edges() {return _Edges;}
+ /*! Returns the ViewShape id. */
+ inline Id getId() const {return _SShape->getId();}
+
+ /* modifiers */
+ /*! Sets the SShape on top of which the ViewShape is built. */
+ inline void SetSShape(SShape* iSShape) {_SShape = iSShape;}
+ /*! Sets the list of ViewVertex contained in this ViewShape. */
+ inline void SetVertices(const vector<ViewVertex*>& iVertices) {_Vertices = iVertices;}
+ /*! Sets the list of ViewEdge contained in this ViewShape. */
+ inline void SetEdges(const vector<ViewEdge*>& iEdges) {_Edges = iEdges;}
+ /*! Adds a ViewVertex to the list. */
+ inline void AddVertex(ViewVertex *iVertex)
+ {
+ _Vertices.push_back(iVertex);
+ //_SShape->AddNewVertex(iVertex->svertex());
+ }
+ /*! Adds a ViewEdge to the list */
+ inline void AddEdge(ViewEdge *iEdge)
+ {
+ _Edges.push_back(iEdge);
+ iEdge->SetShape(this);
+ //_SShape->AddNewEdge(iEdge->fedge());
+ }
+
+ /* removes the view edge iViewEdge in the
+ * View Shape and the associated FEdge chain entry
+ * in the underlying SShape
+ */
+ void RemoveEdge(ViewEdge * iViewEdge);
+
+ /* removes the view vertex iViewVertex in the
+ * View Shape.
+ */
+ void RemoveVertex(ViewVertex * iViewVertex);
+};
+
+
+
+/*
+
+ #############################################
+ #############################################
+ #############################################
+ ###### ######
+ ###### I M P L E M E N T A T I O N ######
+ ###### ######
+ #############################################
+ #############################################
+ #############################################
+
+*/
+/* for inline functions */
+
+void ViewShape::SplitEdge(FEdge *fe,
+ const vector<TVertex*>& iViewVertices,
+ vector<FEdge*>& ioNewEdges,
+ vector<ViewEdge*>& ioNewViewEdges)
+{
+ ViewEdge *vEdge = fe->viewedge();
+
+
+ // We first need to sort the view vertices from farther to closer to fe->vertexA
+
+ SVertex *sv, *sv2;
+ ViewVertex *vva, *vvb;
+ vector<TVertex*>::const_iterator vv, vvend;
+ for(vv=iViewVertices.begin(), vvend = iViewVertices.end();
+ vv!=vvend;
+ vv++)
+ {
+ // Add the viewvertices to the ViewShape
+ AddVertex((*vv));
+
+ // retrieve the correct SVertex from the view vertex
+ //--------------------------------------------------
+ sv = (*vv)->frontSVertex();
+ sv2 = (*vv)->backSVertex();
+
+ if(sv->shape() != sv2->shape())
+ {
+ if(sv->shape() != _SShape)
+ sv = sv2;
+ }
+ else
+ {
+ // if the shape is the same we can safely differ
+ // the two vertices using their ids:
+ if(sv->getId() != fe->vertexA()->getId())
+ sv = sv2;
+ }
+
+ vva = vEdge->A();
+ vvb = vEdge->B();
+
+ // We split Fedge AB into AA' and A'B. A' and A'B are created.
+ // AB becomes (address speaking) AA'. B is updated.
+ //--------------------------------------------------
+ SShape * shape = fe->shape();
+
+ // a new edge, A'B is created.
+ FEdge *newEdge = shape->SplitEdgeIn2(fe, sv);
+
+ ioNewEdges.push_back(newEdge);
+ ViewEdge *newVEdge;
+
+ if((vva == 0) || (vvb == 0)) // that means we're dealing with a closed viewedge (loop)
+ {
+ // remove the chain that was starting by the fedge A of vEdge (which is different from fe !!!!)
+ shape->RemoveEdgeFromChain(vEdge->fedgeA());
+ // we set
+ vEdge->SetA(*vv);
+ vEdge->SetB(*vv);
+ vEdge->SetFEdgeA(newEdge);
+ //FEdge *previousEdge = newEdge->previousEdge();
+ vEdge->SetFEdgeB(fe);
+ newVEdge = vEdge;
+ vEdge->fedgeA()->SetViewEdge(newVEdge);
+ }
+ else
+ {
+
+ // while we create the view edge, it updates the "ViewEdge" pointer
+ // of every underlying FEdges to this.
+ newVEdge = new ViewEdge((*vv),vvb);//, newEdge, vEdge->fedgeB());
+ newVEdge->SetNature((fe)->getNature());
+ newVEdge->SetFEdgeA(newEdge);
+ //newVEdge->SetFEdgeB(fe);
+ // If our original viewedge is made of one FEdge,
+ // then
+ if((vEdge->fedgeA() == vEdge->fedgeB()) || (fe == vEdge->fedgeB()))
+ newVEdge->SetFEdgeB(newEdge);
+ else
+ newVEdge->SetFEdgeB(vEdge->fedgeB()); //MODIF
+
+ Id * newId = vEdge->splittingId();
+ if(newId == 0){
+ newId = new Id(vEdge->getId());
+ vEdge->setSplittingId(newId);
+ }
+ newId->setSecond(newId->getSecond()+1);
+ newVEdge->SetId(*newId);
+ newVEdge->setSplittingId(newId);
+ // Id id(vEdge->getId().getFirst(), vEdge->getId().getSecond()+1);
+ // newVEdge->SetId(vEdge->getId());
+ // vEdge->SetId(id);
+
+ AddEdge(newVEdge); // here this shape is set as the edge's shape
+
+ // add new edge to the list of new edges passed as argument:
+ ioNewViewEdges.push_back(newVEdge);
+
+
+
+ if(0 != vvb)
+ vvb->Replace((vEdge), newVEdge);
+
+ // we split the view edge:
+ vEdge->SetB((*vv));
+ vEdge->SetFEdgeB(fe); //MODIF
+
+ // Update fedges so that they point to the new viewedge:
+ newVEdge->UpdateFEdges();
+
+ }
+ // check whether this vertex is a front vertex or a back
+ // one
+
+ if(sv == (*vv)->frontSVertex())
+ {
+ // -- View Vertex A' --
+ (*vv)->SetFrontEdgeA(vEdge, true);
+ (*vv)->SetFrontEdgeB(newVEdge, false);
+ }
+ else
+ {
+ // -- View Vertex A' --
+ (*vv)->SetBackEdgeA(vEdge, true);
+ (*vv)->SetBackEdgeB(newVEdge, false);
+ }
+ }
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewEdge */
+ /* */
+ /* */
+ /**********************************/
+
+
+// inline Vec3r ViewEdge::orientation2d(int iCombination) const
+// {
+// return edge_orientation2d_function<ViewEdge>(*this, iCombination);
+// }
+
+// inline Vec3r ViewEdge::orientation3d(int iCombination) const
+// {
+// return edge_orientation3d_function<ViewEdge>(*this, iCombination);
+// }
+
+// inline real ViewEdge::z_discontinuity(int iCombination) const
+// {
+// return z_discontinuity_edge_function<ViewEdge>(*this, iCombination);
+// }
+
+// inline float ViewEdge::local_average_depth(int iCombination ) const
+// {
+// return local_average_depth_edge_function<ViewEdge>(*this, iCombination);
+// }
+
+// inline float ViewEdge::local_depth_variance(int iCombination) const
+// {
+// return local_depth_variance_edge_function<ViewEdge>(*this, iCombination);
+// }
+
+// inline real ViewEdge::local_average_density(float sigma, int iCombination) const
+// {
+// return density_edge_function<ViewEdge>(*this, iCombination);
+// }
+
+inline const SShape * ViewEdge::occluded_shape() const
+{
+ if(0 == _aShape)
+ return 0;
+ return _aShape->sshape();
+}
+
+// inline Vec3r ViewEdge::curvature2d_as_vector(int iCombination) const
+// {
+// return curvature2d_as_vector_edge_function<ViewEdge>(*this, iCombination);
+// }
+
+// inline real ViewEdge::curvature2d_as_angle(int iCombination) const
+// {
+// return curvature2d_as_angle_edge_function<ViewEdge>(*this, iCombination);
+// }
+
+
+#endif // VIEWMAP_H
diff --git a/source/blender/freestyle/intern/view_map/ViewMapAdvancedIterators.h b/source/blender/freestyle/intern/view_map/ViewMapAdvancedIterators.h
new file mode 100755
index 00000000000..bb2d916f2df
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMapAdvancedIterators.h
@@ -0,0 +1,691 @@
+//
+// Filename : ViewMapAdvancedIterators.h
+// Author(s) : Stephane Grabli
+// Purpose : Iterators used to iterate over the various elements of the ViewMap
+// These iterators can't be exported to python.
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VIEWMAPADVANCEDITERATORS_H
+# define VIEWMAPADVANCEDITERATORS_H
+
+#include "ViewMap.h"
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewMap */
+ /* */
+ /* */
+ /**********************************/
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewVertex */
+ /* */
+ /* */
+ /**********************************/
+
+namespace ViewVertexInternal{
+
+ class edge_const_traits : public Const_traits< ::ViewVertex::directedViewEdge> {
+ public:
+ typedef vector< ::ViewVertex::directedViewEdge> edges_container;
+ typedef edges_container::const_iterator edges_container_iterator ;
+ typedef vector< ::ViewVertex::directedViewEdge*> edge_pointers_container;
+ typedef edge_pointers_container::const_iterator edge_pointers_container_iterator ;
+ };
+ class edge_nonconst_traits : public Nonconst_traits< ::ViewVertex::directedViewEdge> {
+ public:
+ typedef vector< ::ViewVertex::directedViewEdge> edges_container;
+ typedef edges_container::iterator edges_container_iterator ;
+ typedef vector< ::ViewVertex::directedViewEdge*> edge_pointers_container;
+ typedef edge_pointers_container::iterator edge_pointers_container_iterator ;
+ };
+
+template<class Traits>
+ class edge_iterator_base : public IteratorBase<Traits,InputIteratorTag_Traits>
+ {
+ public:
+ typedef typename Traits::value_type value_type;
+ typedef typename Traits::difference_type difference_type;
+ typedef typename Traits::pointer pointer;
+ typedef typename Traits::reference reference;
+ typedef edge_iterator_base<Traits> Self;
+ typedef typename Traits::edges_container_iterator edges_container_iterator;
+ typedef typename Traits::edge_pointers_container_iterator edge_pointers_container_iterator;
+ typedef edge_iterator_base<edge_nonconst_traits> iterator;
+ typedef edge_iterator_base<edge_const_traits> const_iterator;
+ public:
+ friend class ViewVertex;
+ friend class TVertex;
+ friend class NonTVertex;
+ friend class ViewEdge;
+ friend class edge_iterator;
+ protected:
+ Nature::VertexNature _Nature; // the nature of the underlying vertex
+ // T vertex attributes
+ edge_pointers_container_iterator _tbegin;
+ edge_pointers_container_iterator _tend;
+ edge_pointers_container_iterator _tvertex_iter;
+
+ // mutable value_type _tvertex_iter;
+ // value_type _feA;
+ // value_type _feB;
+ // value_type _beA;
+ // value_type _beB;
+
+ // Non TVertex attributes
+ edges_container_iterator _begin;
+ edges_container_iterator _end;
+ edges_container_iterator _nontvertex_iter;
+
+ typedef IteratorBase<Traits,InputIteratorTag_Traits> parent_class;
+
+ public:
+ inline edge_iterator_base() : parent_class() {}
+ inline edge_iterator_base(Nature::VertexNature iNature)
+ : parent_class()
+ {_Nature = iNature;}
+ edge_iterator_base(const edge_iterator_base<edge_nonconst_traits>& iBrother)
+ : parent_class(iBrother)
+ {
+ _Nature = iBrother._Nature;
+ if(_Nature & Nature::T_VERTEX)
+ {
+ // _feA = iBrother._feA;
+ // _feB = iBrother._feB;
+ // _beA = iBrother._beA;
+ // _beB = iBrother._beB;
+ // _tvertex_iter = iBrother._tvertex_iter;
+ _tbegin = iBrother._tbegin;
+ _tend = iBrother._tend;
+ _tvertex_iter = iBrother._tvertex_iter;
+ }
+ else
+ {
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ _nontvertex_iter = iBrother._nontvertex_iter;
+ }
+ }
+ edge_iterator_base(const edge_iterator_base<edge_const_traits>& iBrother)
+ : parent_class(iBrother)
+ {
+ _Nature = iBrother._Nature;
+ if(_Nature & Nature::T_VERTEX)
+ {
+ // _feA = iBrother._feA;
+ // _feB = iBrother._feB;
+ // _beA = iBrother._beA;
+ // _beB = iBrother._beB;
+ // _tvertex_iter = iBrother._tvertex_iter;
+ _tbegin = iBrother._tbegin;
+ _tend = iBrother._tend;
+ _tvertex_iter = iBrother._tvertex_iter;
+ }
+ else
+ {
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ _nontvertex_iter = iBrother._nontvertex_iter;
+ }
+ }
+ virtual ~edge_iterator_base() {}
+ //protected://FIXME
+ public:
+ // inline edge_iterator_base(value_type ifeA,
+ // value_type ifeB,
+ // value_type ibeA,
+ // value_type ibeB,
+ // value_type iter)
+ // : parent_class()
+ // {
+ // _Nature = Nature::T_VERTEX;
+ // _feA = ifeA;
+ // _feB = ifeB;
+ // _beA = ibeA;
+ // _beB = ibeB;
+ // _tvertex_iter = iter;
+ // }
+ inline edge_iterator_base(edge_pointers_container_iterator begin,
+ edge_pointers_container_iterator end,
+ edge_pointers_container_iterator iter)
+ : parent_class()
+ {
+ _Nature = Nature::T_VERTEX;
+ _tbegin = begin;
+ _tend = end;
+ _tvertex_iter = iter;
+ }
+ inline edge_iterator_base(edges_container_iterator begin,
+ edges_container_iterator end,
+ edges_container_iterator iter)
+ : parent_class()
+ {
+ _Nature = Nature::NON_T_VERTEX;
+ _begin = begin;
+ _end = end;
+ _nontvertex_iter = iter;
+ }
+
+ public:
+
+
+ virtual bool begin() const
+ {
+ if(_Nature & Nature::T_VERTEX)
+ return (_tvertex_iter == _tbegin);
+ //return (_tvertex_iter == _feA);
+ else
+ return (_nontvertex_iter == _begin);
+ }
+ virtual bool end() const
+ {
+ if(_Nature & Nature::T_VERTEX)
+ //return (_tvertex_iter.first == 0);
+ return (_tvertex_iter == _tend);
+ else
+ return (_nontvertex_iter == _end);
+ }
+
+ // operators
+ virtual Self& operator++() // operator corresponding to ++i
+ {
+ increment();
+ return *this;
+ }
+ virtual Self operator++(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ increment(); // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const Self& b) const
+ {
+ if(_Nature & Nature::T_VERTEX)
+ return (_tvertex_iter != b._tvertex_iter);
+ else
+ return (_nontvertex_iter != b._nontvertex_iter);
+ }
+
+ virtual bool operator==(const Self& b) const
+ {return !(*this != b);}
+
+ // dereferencing
+ virtual reference operator*() const
+ {
+ if(_Nature & Nature::T_VERTEX)
+ //return _tvertex_iter;
+ return **_tvertex_iter;
+ else
+ return (*_nontvertex_iter);
+ }
+ virtual pointer operator->() const { return &(operator*());}
+
+ protected:
+ inline void increment()
+ {
+ if(_Nature & Nature::T_VERTEX)
+ {
+ value_type tmp = (**_tvertex_iter);
+ ++_tvertex_iter;
+ value_type tmp2 = (**_tvertex_iter);
+ if(tmp2.first == tmp.first)
+ ++_tvertex_iter;
+ // // Hack to deal with cusp. the result of a cusp
+ // // is a TVertex having two identical viewedges.
+ // // In order to iterate properly, we chose to
+ // // to skip these last ones.
+ // if(_feB.first == _beA.first)
+ // {
+ // if(_feA.first == _beB.first)
+ // {
+ // _tvertex_iter.first = 0;
+ // return;
+ // }
+ //
+ // if(_tvertex_iter.first == _feA.first)
+ // _tvertex_iter.first = _beB.first;
+ // else if(_tvertex_iter.first == _beB.first)
+ // _tvertex_iter.first = 0;
+ // else
+ // _tvertex_iter.first = _feA.first;
+ // return;
+ // }
+ // if(_feA.first == _beB.first)
+ // {
+ // if(_feB.first == _beA.first)
+ // {
+ // _tvertex_iter.first = 0;
+ // return;
+ // }
+ //
+ // if(_tvertex_iter.first == _feB.first)
+ // _tvertex_iter.first = _beA.first;
+ // else if(_tvertex_iter.first == _beA.first)
+ // _tvertex_iter.first = 0;
+ // else
+ // _tvertex_iter.first = _feB.first;
+ // return;
+ // }
+ // // End of hack
+ //
+ // if(_tvertex_iter.first == _feA.first){
+ // // we return bea or beb
+ //
+ //
+ // // choose one of them
+ //
+ // _tvertex_iter.first = _feB.first;
+ // return;
+ // }
+ // if(_tvertex_iter.first == _feB.first)
+ // {
+ // _tvertex_iter.first = _beA.first;
+ // return;
+ // }
+ // if(_tvertex_iter.first == _beA.first)
+ // {
+ // _tvertex_iter.first = _beB.first;
+ // return;
+ // }
+ // if(_tvertex_iter.first == _beB.first)
+ // {
+ // _tvertex_iter.first = 0;
+ // return;
+ // }
+ }
+ else
+ ++_nontvertex_iter;
+ }
+ };
+
+ }
+ /**********************************/
+ /* */
+ /* */
+ /* ViewEdge */
+ /* */
+ /* */
+ /**********************************/
+
+namespace ViewEdgeInternal {
+
+ /*!----------------------*/
+ /*! Iterators definition */
+ /*!----------------------*/
+ template<class Traits>
+ class edge_iterator_base : public IteratorBase<Traits,BidirectionalIteratorTag_Traits>
+ {
+ public:
+ typedef typename Traits::value_type value_type;
+ typedef typename Traits::difference_type difference_type;
+ typedef typename Traits::pointer pointer;
+ typedef typename Traits::reference reference;
+ typedef edge_iterator_base<Traits> Self;
+ public:
+ mutable value_type _ViewEdge;
+ //friend class edge_iterator_base<Nonconst_traits<ViewEdge*> >;
+ //friend class edge_iterator_base<Const_traits<ViewEdge*> >;
+ value_type _first;
+ bool _orientation;
+ typedef IteratorBase<Traits,BidirectionalIteratorTag_Traits> parent_class;
+
+ public:
+ friend class ViewEdge;
+ inline edge_iterator_base()
+ : parent_class()
+ {_orientation=true;_first=0;}
+
+ inline edge_iterator_base(const edge_iterator_base<Nonconst_traits< ::ViewEdge*> >& iBrother)
+ : parent_class()
+ {
+ _ViewEdge = iBrother._ViewEdge;
+ _first = iBrother._first;
+ _orientation = iBrother._orientation;
+ }
+
+ inline edge_iterator_base(const edge_iterator_base<Const_traits< ::ViewEdge*> >& iBrother)
+ : parent_class()
+ {
+ _ViewEdge = iBrother._ViewEdge;
+ _first = iBrother._first;
+ _orientation = iBrother._orientation;
+ }
+
+ //protected://FIXME
+ public:
+ inline edge_iterator_base(value_type iEdge, bool orientation = true)
+ : parent_class()
+ {
+ _ViewEdge = iEdge;
+ _first = iEdge;
+ _orientation = orientation;
+ }
+
+
+ public:
+ virtual Self* clone() const
+ {
+ return new edge_iterator_base(*this);
+ }
+ virtual ~edge_iterator_base() {}
+
+ public:
+
+ virtual bool orientation() {return _orientation;}
+ virtual void set_edge(value_type iVE) {_ViewEdge=iVE;}
+ virtual void set_orientation(bool iOrientation) {_orientation = iOrientation;}
+ virtual void change_orientation() {_orientation = !_orientation;}
+
+ // operators
+ inline Self& operator++() // operator corresponding to ++i
+ {
+ //++_ViewEdge->getTimeStamp();
+ increment();
+ return *this;
+ }
+ inline Self operator++(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ //++_ViewEdge->getTimeStamp();
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ increment(); // dans un temporaire.
+ return tmp;
+ }
+ inline Self& operator--() // operator corresponding to ++i
+ {
+ //++_ViewEdge->getTimeStamp();
+ decrement();
+ return *this;
+ }
+ inline Self operator--(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ //++_ViewEdge->getTimeStamp();
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ decrement(); // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const Self& b) const
+ {
+ return (_ViewEdge != b._ViewEdge);
+ }
+ virtual bool operator==(const Self& b) const
+ {
+ return !(*this != b);
+ }
+
+ // dereferencing
+ virtual reference operator*() const {return (_ViewEdge);}
+ virtual pointer operator->() const { return &(operator*());}
+
+ public:
+ virtual bool begin() const {return _ViewEdge==_first ? true : false;}
+ virtual bool end() const {return _ViewEdge==0 ? true : false;}
+
+ protected:
+ virtual void increment() {}
+ virtual void decrement() {}
+ };
+
+ template<class Traits>
+ class fedge_iterator_base : public IteratorBase<Traits,BidirectionalIteratorTag_Traits>
+ {
+ public:
+ typedef typename Traits::value_type value_type;
+ typedef typename Traits::difference_type difference_type;
+ typedef typename Traits::pointer pointer;
+ typedef typename Traits::reference reference;
+ typedef fedge_iterator_base<Traits> Self;
+ public:
+ typedef IteratorBase<Traits,BidirectionalIteratorTag_Traits> parent_class;
+ mutable value_type _FEdge;
+ value_type _first;
+ value_type _FEdgeB; // last fedge of the view edge
+
+ public:
+ friend class ::ViewEdge;
+ friend class fedge_iterator;
+ inline fedge_iterator_base()
+ : parent_class()
+ {}
+ inline fedge_iterator_base(const fedge_iterator_base<Nonconst_traits<FEdge*> >& iBrother)
+ : parent_class()
+ {
+ _FEdge = iBrother._FEdge;
+ _first = iBrother._first;
+ _FEdgeB = iBrother._FEdgeB;
+ }
+ inline fedge_iterator_base(const fedge_iterator_base<Const_traits<FEdge*> >& iBrother)
+ : parent_class()
+ {
+ _FEdge = iBrother._FEdge;
+ _first = iBrother._first;
+ _FEdgeB = iBrother._FEdgeB;
+ }
+ //protected://FIXME
+ public:
+ inline fedge_iterator_base(value_type iEdge, value_type iFEdgeB)
+ : parent_class()
+ {
+ _FEdge = iEdge;
+ _first = iEdge;
+ _FEdgeB = iFEdgeB;
+ }
+
+ public:
+ virtual ~fedge_iterator_base() {}
+ // operators
+ inline Self& operator++() // operator corresponding to ++i
+ {
+ increment();
+ return *this;
+ }
+ inline Self operator++(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ increment(); // dans un temporaire.
+ return tmp;
+ }
+ inline Self& operator--() // operator corresponding to ++i
+ {
+ decrement();
+ return *this;
+ }
+ inline Self operator--(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ decrement(); // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const Self& b) const
+ {
+ return (_FEdge != b._FEdge);
+ }
+ virtual bool operator==(const Self& b) const
+ {
+ return !(*this != b);
+ }
+
+ // dereferencing
+ virtual reference operator*() const {return (_FEdge);}
+ virtual pointer operator->() const { return &(operator*());}
+
+
+ public:
+ virtual bool begin() const {return _FEdge==_first ? true : false;}
+ virtual bool end() const {return _FEdge==0 ? true : false;}
+ protected:
+ virtual void increment()
+ {
+ _FEdge = _FEdge->nextEdge(); // we don't change or
+ }
+
+ virtual void decrement()
+ {
+ if(0 == _FEdge)
+ {
+ _FEdge = _FEdgeB;
+ return;
+ }
+ _FEdge = _FEdge->previousEdge(); // we don't change or
+ }
+ };
+
+ template<class Traits>
+ class vertex_iterator_base : public IteratorBase<Traits,BidirectionalIteratorTag_Traits>
+ {
+ public:
+ typedef typename Traits::value_type value_type;
+ typedef typename Traits::difference_type difference_type;
+ typedef typename Traits::pointer pointer;
+ typedef typename Traits::reference reference;
+ typedef vertex_iterator_base<Traits> Self;
+ protected:
+ typedef IteratorBase<Traits,BidirectionalIteratorTag_Traits> parent_class;
+ public:
+ mutable value_type _SVertex;
+ FEdge *_NextFEdge;
+ FEdge *_PreviousFEdge;
+ public:
+ friend class ViewEdge;
+ friend class vertex_iterator;
+ inline vertex_iterator_base()
+ : parent_class()
+ {}
+ inline vertex_iterator_base(const vertex_iterator_base<Const_traits<SVertex*> >& iBrother)
+ : parent_class()
+ {
+ _SVertex = iBrother._SVertex;
+ _NextFEdge = iBrother._NextFEdge;
+ _PreviousFEdge = iBrother._PreviousFEdge;
+ }
+ inline vertex_iterator_base(const vertex_iterator_base<Nonconst_traits<SVertex*> >& iBrother)
+ : parent_class()
+ {
+ _SVertex = iBrother._SVertex;
+ _NextFEdge = iBrother._NextFEdge;
+ _PreviousFEdge = iBrother._PreviousFEdge;
+ }
+
+ //protected://FIXME
+ public:
+
+ inline vertex_iterator_base(value_type iVertex, FEdge *iPreviousFEdge, FEdge *iNextFEdge)
+ : parent_class()
+ {
+ _SVertex = iVertex;
+ _NextFEdge = iNextFEdge;
+ _PreviousFEdge = iPreviousFEdge;
+ }
+
+ public:
+ virtual ~vertex_iterator_base() {}
+
+ virtual bool begin() const {return _PreviousFEdge==0? true : false;}
+ virtual bool end() const {return _SVertex==0 ? true : false;}
+
+ // operators
+ inline Self& operator++() // operator corresponding to ++i
+ {
+ increment();
+ return *this;
+ }
+ inline Self operator++(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ increment(); // dans un temporaire.
+ return tmp;
+ }
+ inline Self& operator--() // operator corresponding to ++i
+ {
+ decrement();
+ return *this;
+ }
+ inline Self operator--(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ Self tmp = *this; // C'est pour cela qu'on stocke la valeur
+ decrement(); // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const Self& b) const
+ {
+ return (_SVertex != b._SVertex);
+ }
+ virtual bool operator==(const Self& b) const
+ {
+ return !(*this != b);
+ }
+
+ // dereferencing
+ virtual reference operator*() const {return (_SVertex);}
+ virtual pointer operator->() const { return &(operator*());}
+
+ protected:
+ virtual void increment()
+ {
+ if(0 == _NextFEdge)
+ {
+ _SVertex = 0;
+ return;
+ }
+
+ _SVertex = _NextFEdge->vertexB();
+ _PreviousFEdge = _NextFEdge;
+ _NextFEdge = _NextFEdge->nextEdge();
+
+ }
+ virtual void decrement()
+ {
+ // if(0 == _SVertex)
+ // {
+ // _SVertex = _PreviousFEdge->vertexB();
+ // return;
+ // }
+ if(0 == _PreviousFEdge)
+ {
+ _SVertex = 0;
+ return;
+ }
+ _SVertex = _PreviousFEdge->vertexA();
+ _NextFEdge = _PreviousFEdge;
+ _PreviousFEdge = _PreviousFEdge->previousEdge();
+ }
+ };
+
+
+} // end of namespace ViewEdgeInternal
+
+#endif // VIEWMAPADVANCEDITERATORS_H
diff --git a/source/blender/freestyle/intern/view_map/ViewMapBuilder.cpp b/source/blender/freestyle/intern/view_map/ViewMapBuilder.cpp
new file mode 100755
index 00000000000..32f5283a63c
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMapBuilder.cpp
@@ -0,0 +1,1027 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <algorithm>
+#include "ViewMapBuilder.h"
+
+using namespace std;
+
+ViewMap* ViewMapBuilder::BuildViewMap(WingedEdge& we, visibility_algo iAlgo, real epsilon) {
+ _ViewMap = new ViewMap;
+ _currentId = 1;
+ _currentFId = 0;
+ _currentSVertexId = 0;
+
+ // Builds initial view edges
+ computeInitialViewEdges(we);
+
+ // Detects cusps
+ computeCusps(_ViewMap);
+
+ // Compute intersections
+ ComputeIntersections(_ViewMap, sweep_line, epsilon);
+
+ // Compute visibility
+ ComputeEdgesVisibility(_ViewMap, iAlgo, _Grid, epsilon);
+
+ return _ViewMap;
+}
+
+void ViewMapBuilder::computeInitialViewEdges(WingedEdge& we)
+{
+ vector<WShape*> wshapes = we.getWShapes();
+ SShape* psShape;
+
+ for (vector<WShape*>::const_iterator it = wshapes.begin();
+ it != wshapes.end();
+ it++) {
+ // create the embedding
+ psShape = new SShape;
+ psShape->SetId((*it)->GetId());
+ psShape->SetMaterials((*it)->materials()); // FIXME
+
+ // create the view shape
+ ViewShape * vshape = new ViewShape(psShape);
+ // add this view shape to the view map:
+ _ViewMap->AddViewShape(vshape);
+
+ _pViewEdgeBuilder->SetCurrentViewId(_currentId); // we want to number the view edges in a unique way for the while scene.
+ _pViewEdgeBuilder->SetCurrentFId(_currentFId); // we want to number the feature edges in a unique way for the while scene.
+ _pViewEdgeBuilder->SetCurrentSVertexId(_currentFId); // we want to number the SVertex in a unique way for the while scene.
+ _pViewEdgeBuilder->BuildViewEdges(dynamic_cast<WXShape*>(*it), vshape,
+ _ViewMap->ViewEdges(),
+ _ViewMap->ViewVertices(),
+ _ViewMap->FEdges(),
+ _ViewMap->SVertices());
+
+ _currentId = _pViewEdgeBuilder->currentViewId()+1;
+ _currentFId = _pViewEdgeBuilder->currentFId()+1;
+ _currentSVertexId = _pViewEdgeBuilder->currentSVertexId()+1;
+
+ psShape->ComputeBBox();
+ }
+}
+
+void ViewMapBuilder::computeCusps(ViewMap *ioViewMap){
+ vector<ViewVertex*> newVVertices;
+ vector<ViewEdge*> newVEdges;
+ ViewMap::viewedges_container& vedges = ioViewMap->ViewEdges();
+ ViewMap::viewedges_container::iterator ve=vedges.begin(), veend=vedges.end();
+ for(;
+ ve!=veend;
+ ++ve){
+ if((!((*ve)->getNature() & Nature::SILHOUETTE)) || (!((*ve)->fedgeA()->isSmooth())))
+ continue;
+ FEdge *fe = (*ve)->fedgeA();
+ FEdge * fefirst = fe;
+ bool first = true;
+ bool positive = true;
+ do{
+ FEdgeSmooth * fes = dynamic_cast<FEdgeSmooth*>(fe);
+ Vec3r A((fes)->vertexA()->point3d());
+ Vec3r B((fes)->vertexB()->point3d());
+ Vec3r AB(B-A);
+ AB.normalize();
+ Vec3r m((A+B)/2.0);
+ Vec3r crossP(AB^(fes)->normal());
+ crossP.normalize();
+ Vec3r viewvector(m-_viewpoint);
+ viewvector.normalize();
+ if(first){
+ if(((crossP)*(viewvector)) > 0)
+ positive = true;
+ else
+ positive = false;
+ first = false;
+ }
+ // If we're in a positive part, we need
+ // a stronger negative value to change
+ NonTVertex *cusp = 0;
+ if(positive){
+ if(((crossP)*(viewvector)) < -0.1){
+ // state changes
+ positive = false;
+ // creates and insert cusp
+ cusp = dynamic_cast<NonTVertex*>(ioViewMap->InsertViewVertex(fes->vertexA(), newVEdges));
+ if(cusp!=0)
+ cusp->setNature(cusp->getNature()|Nature::CUSP);
+ }
+
+ }else{
+ // If we're in a negative part, we need
+ // a stronger negative value to change
+ if(((crossP)*(viewvector)) > 0.1){
+ positive = true;
+ cusp = dynamic_cast<NonTVertex*>(ioViewMap->InsertViewVertex(fes->vertexA(), newVEdges));
+ if(cusp!=0)
+ cusp->setNature(cusp->getNature()|Nature::CUSP);
+ }
+ }
+ fe = fe->nextEdge();
+ }while((fe!=0) && (fe!=fefirst));
+ }
+ for(ve=newVEdges.begin(), veend=newVEdges.end();
+ ve!=veend;
+ ++ve){
+ (*ve)->viewShape()->AddEdge(*ve);
+ vedges.push_back(*ve);
+ }
+}
+void ViewMapBuilder::ComputeEdgesVisibility(ViewMap *ioViewMap, visibility_algo iAlgo, Grid *iGrid, real epsilon)
+{
+ if((iAlgo == ray_casting ||
+ iAlgo == ray_casting_fast ||
+ iAlgo == ray_casting_very_fast) && (NULL == iGrid))
+ {
+ cerr << "Error: can't cast ray, no grid defined" << endl;
+ return;
+ }
+
+ switch(iAlgo)
+ {
+ case ray_casting:
+ ComputeRayCastingVisibility(ioViewMap, iGrid, epsilon);
+ break;
+ case ray_casting_fast:
+ ComputeFastRayCastingVisibility(ioViewMap, iGrid, epsilon);
+ break;
+ case ray_casting_very_fast:
+ ComputeVeryFastRayCastingVisibility(ioViewMap, iGrid, epsilon);
+ break;
+ default:
+ break;
+ }
+}
+
+static const unsigned gProgressBarMaxSteps = 10;
+static const unsigned gProgressBarMinSize = 2000;
+
+void ViewMapBuilder::ComputeRayCastingVisibility(ViewMap *ioViewMap, Grid* iGrid, real epsilon)
+{
+ vector<ViewEdge*>& vedges = ioViewMap->ViewEdges();
+ bool progressBarDisplay = false;
+ unsigned progressBarStep = 0;
+ unsigned vEdgesSize = vedges.size();
+ unsigned fEdgesSize = ioViewMap->FEdges().size();
+
+ if(_pProgressBar != NULL && fEdgesSize > gProgressBarMinSize) {
+ unsigned progressBarSteps = min(gProgressBarMaxSteps, vEdgesSize);
+ progressBarStep = vEdgesSize / progressBarSteps;
+ _pProgressBar->reset();
+ _pProgressBar->setLabelText("Computing Ray casting Visibility");
+ _pProgressBar->setTotalSteps(progressBarSteps);
+ _pProgressBar->setProgress(0);
+ progressBarDisplay = true;
+ }
+
+ unsigned counter = progressBarStep;
+ FEdge * fe, *festart;
+ int nSamples = 0;
+ vector<Polygon3r*> aFaces;
+ Polygon3r *aFace = 0;
+ unsigned tmpQI = 0;
+ unsigned qiClasses[256];
+ unsigned maxIndex, maxCard;
+ unsigned qiMajority;
+ static unsigned timestamp = 1;
+ for(vector<ViewEdge*>::iterator ve=vedges.begin(), veend=vedges.end();
+ ve!=veend;
+ ve++)
+ {
+ festart = (*ve)->fedgeA();
+ fe = (*ve)->fedgeA();
+ qiMajority = 1;
+ do {
+ qiMajority++;
+ fe = fe->nextEdge();
+ } while (fe && fe != festart);
+ qiMajority >>= 1;
+
+ tmpQI = 0;
+ maxIndex = 0;
+ maxCard = 0;
+ nSamples = 0;
+ fe = (*ve)->fedgeA();
+ memset(qiClasses, 0, 256 * sizeof(*qiClasses));
+ set<ViewShape*> occluders;
+ do
+ {
+ if((maxCard < qiMajority)) {
+ tmpQI = ComputeRayCastingVisibility(fe, iGrid, epsilon, occluders, &aFace, timestamp++);
+
+ if(tmpQI >= 256)
+ cerr << "Warning: too many occluding levels" << endl;
+
+ if (++qiClasses[tmpQI] > maxCard) {
+ maxCard = qiClasses[tmpQI];
+ maxIndex = tmpQI;
+ }
+ }
+ else
+ FindOccludee(fe, iGrid, epsilon, &aFace, timestamp++);
+
+ if(aFace) {
+ fe->SetaFace(*aFace);
+ aFaces.push_back(aFace);
+ fe->SetOccludeeEmpty(false);
+ }
+ else
+ fe->SetOccludeeEmpty(true);
+
+ ++nSamples;
+ fe = fe->nextEdge();
+ }
+ while((maxCard < qiMajority) && (0!=fe) && (fe!=festart));
+
+ // ViewEdge
+ // qi --
+ (*ve)->SetQI(maxIndex);
+ // occluders --
+ for(set<ViewShape*>::iterator o=occluders.begin(), oend=occluders.end();
+ o!=oend;
+ ++o)
+ (*ve)->AddOccluder((*o));
+ // occludee --
+ if(!aFaces.empty())
+ {
+ if(aFaces.size() <= (float)nSamples/2.f)
+ {
+ (*ve)->SetaShape(0);
+ }
+ else
+ {
+ vector<Polygon3r*>::iterator p = aFaces.begin();
+ WFace * wface = (WFace*)((*p)->userdata);
+ ViewShape *vshape = ioViewMap->viewShape(wface->GetVertex(0)->shape()->GetId());
+ ++p;
+ (*ve)->SetaShape(vshape);
+ }
+ }
+
+ if(progressBarDisplay) {
+ counter--;
+ if (counter <= 0) {
+ counter = progressBarStep;
+ _pProgressBar->setProgress(_pProgressBar->getProgress() + 1);
+ }
+ }
+ aFaces.clear();
+ }
+}
+
+void ViewMapBuilder::ComputeFastRayCastingVisibility(ViewMap *ioViewMap, Grid* iGrid, real epsilon)
+{
+ vector<ViewEdge*>& vedges = ioViewMap->ViewEdges();
+ bool progressBarDisplay = false;
+ unsigned progressBarStep = 0;
+ unsigned vEdgesSize = vedges.size();
+ unsigned fEdgesSize = ioViewMap->FEdges().size();
+
+ if(_pProgressBar != NULL && fEdgesSize > gProgressBarMinSize) {
+ unsigned progressBarSteps = min(gProgressBarMaxSteps, vEdgesSize);
+ progressBarStep = vEdgesSize / progressBarSteps;
+ _pProgressBar->reset();
+ _pProgressBar->setLabelText("Computing Ray casting Visibility");
+ _pProgressBar->setTotalSteps(progressBarSteps);
+ _pProgressBar->setProgress(0);
+ progressBarDisplay = true;
+ }
+
+ unsigned counter = progressBarStep;
+ FEdge * fe, *festart;
+ unsigned nSamples = 0;
+ vector<Polygon3r*> aFaces;
+ Polygon3r *aFace = 0;
+ unsigned tmpQI = 0;
+ unsigned qiClasses[256];
+ unsigned maxIndex, maxCard;
+ unsigned qiMajority;
+ static unsigned timestamp = 1;
+ bool even_test;
+ for(vector<ViewEdge*>::iterator ve=vedges.begin(), veend=vedges.end();
+ ve!=veend;
+ ve++)
+ {
+ festart = (*ve)->fedgeA();
+ fe = (*ve)->fedgeA();
+ qiMajority = 1;
+ do {
+ qiMajority++;
+ fe = fe->nextEdge();
+ } while (fe && fe != festart);
+ if (qiMajority >= 4)
+ qiMajority >>= 2;
+ else
+ qiMajority = 1;
+
+ set<ViewShape*> occluders;
+
+ even_test = true;
+ maxIndex = 0;
+ maxCard = 0;
+ nSamples = 0;
+ memset(qiClasses, 0, 256 * sizeof(*qiClasses));
+ fe = (*ve)->fedgeA();
+ do
+ {
+ if (even_test)
+ {
+ if((maxCard < qiMajority)) {
+ tmpQI = ComputeRayCastingVisibility(fe, iGrid, epsilon, occluders, &aFace, timestamp++);
+
+ if(tmpQI >= 256)
+ cerr << "Warning: too many occluding levels" << endl;
+
+ if (++qiClasses[tmpQI] > maxCard) {
+ maxCard = qiClasses[tmpQI];
+ maxIndex = tmpQI;
+ }
+ }
+ else
+ FindOccludee(fe, iGrid, epsilon, &aFace, timestamp++);
+
+ if(aFace)
+ {
+ fe->SetaFace(*aFace);
+ aFaces.push_back(aFace);
+ }
+ ++nSamples;
+ even_test = false;
+ }
+ else
+ even_test = true;
+ fe = fe->nextEdge();
+ } while ((maxCard < qiMajority) && (0!=fe) && (fe!=festart));
+
+ (*ve)->SetQI(maxIndex);
+
+ if(!aFaces.empty())
+ {
+ if(aFaces.size() < nSamples / 2)
+ {
+ (*ve)->SetaShape(0);
+ }
+ else
+ {
+ vector<Polygon3r*>::iterator p = aFaces.begin();
+ WFace * wface = (WFace*)((*p)->userdata);
+ ViewShape *vshape = ioViewMap->viewShape(wface->GetVertex(0)->shape()->GetId());
+ ++p;
+ // for(;
+ // p!=pend;
+ // ++p)
+ // {
+ // WFace *f = (WFace*)((*p)->userdata);
+ // ViewShape *vs = ioViewMap->viewShape(f->GetVertex(0)->shape()->GetId());
+ // if(vs != vshape)
+ // {
+ // sameShape = false;
+ // break;
+ // }
+ // }
+ // if(sameShape)
+ (*ve)->SetaShape(vshape);
+ }
+ }
+
+ //(*ve)->SetaFace(aFace);
+
+ if(progressBarDisplay) {
+ counter--;
+ if (counter <= 0) {
+ counter = progressBarStep;
+ _pProgressBar->setProgress(_pProgressBar->getProgress() + 1);
+ }
+ }
+ aFaces.clear();
+ }
+}
+
+void ViewMapBuilder::ComputeVeryFastRayCastingVisibility(ViewMap *ioViewMap, Grid* iGrid, real epsilon)
+{
+ vector<ViewEdge*>& vedges = ioViewMap->ViewEdges();
+ bool progressBarDisplay = false;
+ unsigned progressBarStep = 0;
+ unsigned vEdgesSize = vedges.size();
+ unsigned fEdgesSize = ioViewMap->FEdges().size();
+
+ if(_pProgressBar != NULL && fEdgesSize > gProgressBarMinSize) {
+ unsigned progressBarSteps = min(gProgressBarMaxSteps, vEdgesSize);
+ progressBarStep = vEdgesSize / progressBarSteps;
+ _pProgressBar->reset();
+ _pProgressBar->setLabelText("Computing Ray casting Visibility");
+ _pProgressBar->setTotalSteps(progressBarSteps);
+ _pProgressBar->setProgress(0);
+ progressBarDisplay = true;
+ }
+
+ unsigned counter = progressBarStep;
+ FEdge* fe;
+ unsigned qi = 0;
+ Polygon3r *aFace = 0;
+ static unsigned timestamp = 1;
+ for(vector<ViewEdge*>::iterator ve=vedges.begin(), veend=vedges.end();
+ ve!=veend;
+ ve++)
+ {
+ set<ViewShape*> occluders;
+
+ fe = (*ve)->fedgeA();
+ qi = ComputeRayCastingVisibility(fe, iGrid, epsilon, occluders, &aFace, timestamp++);
+ if(aFace)
+ {
+ fe->SetaFace(*aFace);
+ WFace * wface = (WFace*)(aFace->userdata);
+ ViewShape *vshape = ioViewMap->viewShape(wface->GetVertex(0)->shape()->GetId());
+ (*ve)->SetaShape(vshape);
+ }
+ else
+ {
+ (*ve)->SetaShape(0);
+ }
+
+ (*ve)->SetQI(qi);
+
+ if(progressBarDisplay) {
+ counter--;
+ if (counter <= 0) {
+ counter = progressBarStep;
+ _pProgressBar->setProgress(_pProgressBar->getProgress() + 1);
+ }
+ }
+ }
+}
+
+
+void ViewMapBuilder::FindOccludee(FEdge *fe, Grid* iGrid, real epsilon, Polygon3r** oaPolygon, unsigned timestamp,
+ Vec3r& u, Vec3r& A, Vec3r& origin, Vec3r& edge, vector<WVertex*>& faceVertices)
+{
+ WFace *face = 0;
+ if(fe->isSmooth()){
+ FEdgeSmooth * fes = dynamic_cast<FEdgeSmooth*>(fe);
+ face = (WFace*)fes->face();
+ }
+ OccludersSet occluders;
+ WFace * oface;
+ bool skipFace;
+
+ WVertex::incoming_edge_iterator ie;
+ OccludersSet::iterator p, pend;
+
+ *oaPolygon = 0;
+ if(((fe)->getNature() & Nature::SILHOUETTE) || ((fe)->getNature() & Nature::BORDER))
+ {
+ occluders.clear();
+ // we cast a ray from A in the same direction but looking behind
+ Vec3r v(-u[0],-u[1],-u[2]);
+ iGrid->castInfiniteRay(A, v, occluders, timestamp);
+
+ bool noIntersection = true;
+ real mint=FLT_MAX;
+ // we met some occluders, let us fill the aShape field
+ // with the first intersected occluder
+ for(p=occluders.begin(),pend=occluders.end();
+ p!=pend;
+ p++)
+ {
+ // check whether the edge and the polygon plane are coincident:
+ //-------------------------------------------------------------
+ //first let us compute the plane equation.
+ oface = (WFace*)(*p)->userdata;
+ Vec3r v1(((*p)->getVertices())[0]);
+ Vec3r normal((*p)->getNormal());
+ real d = -(v1 * normal);
+ real t,t_u,t_v;
+
+ if(0 != face)
+ {
+ skipFace = false;
+
+ if(face == oface)
+ continue;
+
+ if(faceVertices.empty())
+ continue;
+
+ for(vector<WVertex*>::iterator fv=faceVertices.begin(), fvend=faceVertices.end();
+ fv!=fvend;
+ ++fv)
+ {
+ if((*fv)->isBoundary())
+ continue;
+ WVertex::incoming_edge_iterator iebegin=(*fv)->incoming_edges_begin();
+ WVertex::incoming_edge_iterator ieend=(*fv)->incoming_edges_end();
+ for(ie=iebegin;ie!=ieend; ++ie)
+ {
+ if((*ie) == 0)
+ continue;
+
+ WFace * sface = (*ie)->GetbFace();
+ if(sface == oface)
+ {
+ skipFace = true;
+ break;
+ }
+ }
+ if(skipFace)
+ break;
+ }
+ if(skipFace)
+ continue;
+ }
+ else
+ {
+ if(GeomUtils::COINCIDENT == GeomUtils::intersectRayPlane(origin, edge, normal, d, t, epsilon))
+ continue;
+ }
+ if((*p)->rayIntersect(A, v, t,t_u,t_v))
+ {
+ if (fabs(v * normal) > 0.0001)
+ if ((t>0.0)) // && (t<1.0))
+ {
+ if (t<mint)
+ {
+ *oaPolygon = (*p);
+ mint = t;
+ noIntersection = false;
+ fe->SetOccludeeIntersection(Vec3r(A+t*v));
+ }
+ }
+ }
+ }
+
+ if(noIntersection)
+ *oaPolygon = 0;
+ }
+}
+
+void ViewMapBuilder::FindOccludee(FEdge *fe, Grid* iGrid, real epsilon, Polygon3r** oaPolygon, unsigned timestamp)
+{
+ OccludersSet occluders;
+
+ Vec3r A;
+ Vec3r edge;
+ Vec3r origin;
+ A = Vec3r(((fe)->vertexA()->point3D() + (fe)->vertexB()->point3D())/2.0);
+ edge = Vec3r((fe)->vertexB()->point3D()-(fe)->vertexA()->point3D());
+ origin = Vec3r((fe)->vertexA()->point3D());
+ Vec3r u(_viewpoint-A);
+ u.normalize();
+ if(A < iGrid->getOrigin())
+ cerr << "Warning: point is out of the grid for fedge " << fe->getId().getFirst() << "-" << fe->getId().getSecond() << endl;
+
+ vector<WVertex*> faceVertices;
+
+ WFace *face = 0;
+ if(fe->isSmooth()){
+ FEdgeSmooth * fes = dynamic_cast<FEdgeSmooth*>(fe);
+ face = (WFace*)fes->face();
+ }
+ if(0 != face)
+ face->RetrieveVertexList(faceVertices);
+
+ return FindOccludee(fe,iGrid, epsilon, oaPolygon, timestamp,
+ u, A, origin, edge, faceVertices);
+}
+
+int ViewMapBuilder::ComputeRayCastingVisibility(FEdge *fe, Grid* iGrid, real epsilon, set<ViewShape*>& oOccluders,
+ Polygon3r** oaPolygon, unsigned timestamp)
+{
+ OccludersSet occluders;
+ int qi = 0;
+
+ Vec3r center;
+ Vec3r edge;
+ Vec3r origin;
+
+ center = fe->center3d();
+ edge = Vec3r(fe->vertexB()->point3D() - fe->vertexA()->point3D());
+ origin = Vec3r(fe->vertexA()->point3D());
+ //
+ // // Is the edge outside the view frustum ?
+ Vec3r gridOrigin(iGrid->getOrigin());
+ Vec3r gridExtremity(iGrid->getOrigin()+iGrid->gridSize());
+
+ if( (center.x() < gridOrigin.x()) || (center.y() < gridOrigin.y()) || (center.z() < gridOrigin.z())
+ ||(center.x() > gridExtremity.x()) || (center.y() > gridExtremity.y()) || (center.z() > gridExtremity.z())){
+ cerr << "Warning: point is out of the grid for fedge " << fe->getId() << endl;
+ //return 0;
+ }
+
+
+ // Vec3r A(fe->vertexA()->point2d());
+ // Vec3r B(fe->vertexB()->point2d());
+ // int viewport[4];
+ // SilhouetteGeomEngine::retrieveViewport(viewport);
+ // if( (A.x() < viewport[0]) || (A.x() > viewport[2]) || (A.y() < viewport[1]) || (A.y() > viewport[3])
+ // ||(B.x() < viewport[0]) || (B.x() > viewport[2]) || (B.y() < viewport[1]) || (B.y() > viewport[3])){
+ // cerr << "Warning: point is out of the grid for fedge " << fe->getId() << endl;
+ // //return 0;
+ // }
+
+ Vec3r u(_viewpoint - center);
+ real raylength = u.norm();
+ u.normalize();
+ //cout << "grid origin " << iGrid->getOrigin().x() << "," << iGrid->getOrigin().y() << "," << iGrid->getOrigin().z() << endl;
+ //cout << "center " << center.x() << "," << center.y() << "," << center.z() << endl;
+
+ iGrid->castRay(center, Vec3r(_viewpoint), occluders, timestamp);
+
+ WFace *face = 0;
+ if(fe->isSmooth()){
+ FEdgeSmooth * fes = dynamic_cast<FEdgeSmooth*>(fe);
+ face = (WFace*)fes->face();
+ }
+ vector<WVertex*> faceVertices;
+ WVertex::incoming_edge_iterator ie;
+
+ WFace * oface;
+ bool skipFace;
+ OccludersSet::iterator p, pend;
+ if(face)
+ face->RetrieveVertexList(faceVertices);
+
+ for(p=occluders.begin(),pend=occluders.end();
+ p!=pend;
+ p++)
+ {
+ // If we're dealing with an exact silhouette, check whether
+ // we must take care of this occluder of not.
+ // (Indeed, we don't consider the occluders that
+ // share at least one vertex with the face containing
+ // this edge).
+ //-----------
+ oface = (WFace*)(*p)->userdata;
+ Vec3r v1(((*p)->getVertices())[0]);
+ Vec3r normal((*p)->getNormal());
+ real d = -(v1 * normal);
+ real t, t_u, t_v;
+
+ if(0 != face)
+ {
+ skipFace = false;
+
+ if(face == oface)
+ continue;
+
+
+ for(vector<WVertex*>::iterator fv=faceVertices.begin(), fvend=faceVertices.end();
+ fv!=fvend;
+ ++fv)
+ {
+ if((*fv)->isBoundary())
+ continue;
+
+ WVertex::incoming_edge_iterator iebegin=(*fv)->incoming_edges_begin();
+ WVertex::incoming_edge_iterator ieend=(*fv)->incoming_edges_end();
+ for(ie=iebegin;ie!=ieend; ++ie)
+ {
+ if((*ie) == 0)
+ continue;
+
+ WFace * sface = (*ie)->GetbFace();
+ //WFace * sfacea = (*ie)->GetaFace();
+ //if((sface == oface) || (sfacea == oface))
+ if(sface == oface)
+ {
+ skipFace = true;
+ break;
+ }
+ }
+ if(skipFace)
+ break;
+ }
+ if(skipFace)
+ continue;
+ }
+ else
+ {
+ // check whether the edge and the polygon plane are coincident:
+ //-------------------------------------------------------------
+ //first let us compute the plane equation.
+
+ if(GeomUtils::COINCIDENT == GeomUtils::intersectRayPlane(origin, edge, normal, d, t, epsilon))
+ continue;
+ }
+
+ if((*p)->rayIntersect(center, u, t, t_u, t_v))
+ {
+ if (fabs(u * normal) > 0.0001)
+ if ((t>0.0) && (t<raylength))
+ {
+ WFace *f = (WFace*)((*p)->userdata);
+ ViewShape *vshape = _ViewMap->viewShape(f->GetVertex(0)->shape()->GetId());
+ oOccluders.insert(vshape);
+ ++qi;
+ if(!_EnableQI)
+ break;
+ }
+ }
+ }
+
+ // Find occludee
+ FindOccludee(fe,iGrid, epsilon, oaPolygon, timestamp,
+ u, center, edge, origin, faceVertices);
+
+ return qi;
+}
+
+void ViewMapBuilder::ComputeIntersections(ViewMap *ioViewMap, intersection_algo iAlgo, real epsilon)
+{
+ switch(iAlgo)
+ {
+ case sweep_line:
+ ComputeSweepLineIntersections(ioViewMap, epsilon);
+ break;
+ default:
+ break;
+ }
+ ViewMap::viewvertices_container& vvertices = ioViewMap->ViewVertices();
+ for(ViewMap::viewvertices_container::iterator vv=vvertices.begin(), vvend=vvertices.end();
+ vv!=vvend;
+ ++vv)
+ {
+ if((*vv)->getNature() == Nature::T_VERTEX)
+ {
+ TVertex *tvertex = (TVertex*)(*vv);
+ cout << "TVertex " << tvertex->getId() << " has :" << endl;
+ cout << "FrontEdgeA: " << tvertex->frontEdgeA().first << endl;
+ cout << "FrontEdgeB: " << tvertex->frontEdgeB().first << endl;
+ cout << "BackEdgeA: " << tvertex->backEdgeA().first << endl;
+ cout << "BackEdgeB: " << tvertex->backEdgeB().first << endl << endl;
+ }
+ }
+}
+
+struct less_SVertex2D : public binary_function<SVertex*, SVertex*, bool>
+{
+ real epsilon;
+ less_SVertex2D(real eps)
+ : binary_function<SVertex*,SVertex*,bool>()
+ {
+ epsilon = eps;
+ }
+ bool operator()(SVertex* x, SVertex* y)
+ {
+ Vec3r A = x->point2D();
+ Vec3r B = y->point2D();
+ for(unsigned int i=0; i<3; i++)
+ {
+ if((fabs(A[i] - B[i])) < epsilon)
+ continue;
+ if(A[i] < B[i])
+ return true;
+ if(A[i] > B[i])
+ return false;
+ }
+
+ return false;
+ }
+};
+
+typedef Segment<FEdge*,Vec3r > segment;
+typedef Intersection<segment> intersection;
+
+struct less_Intersection : public binary_function<intersection*, intersection*, bool>
+{
+ segment *edge;
+ less_Intersection(segment *iEdge)
+ : binary_function<intersection*,intersection*,bool>()
+ {
+ edge = iEdge;
+ }
+ bool operator()(intersection* x, intersection* y)
+ {
+ real tx = x->getParameter(edge);
+ real ty = y->getParameter(edge);
+ if(tx > ty)
+ return true;
+ return false;
+ }
+};
+
+struct silhouette_binary_rule : public binary_rule<segment,segment>
+{
+ silhouette_binary_rule() : binary_rule<segment,segment>() {}
+ virtual bool operator() (segment& s1, segment& s2)
+ {
+ FEdge * f1 = s1.edge();
+ FEdge * f2 = s2.edge();
+
+ if((!(((f1)->getNature() & Nature::SILHOUETTE) || ((f1)->getNature() & Nature::BORDER))) && (!(((f2)->getNature() & Nature::SILHOUETTE) || ((f2)->getNature() & Nature::BORDER))))
+ return false;
+
+ return true;
+ }
+};
+
+void ViewMapBuilder::ComputeSweepLineIntersections(ViewMap *ioViewMap, real epsilon)
+{
+ vector<SVertex*>& svertices = ioViewMap->SVertices();
+ bool progressBarDisplay = false;
+ unsigned sVerticesSize = svertices.size();
+ unsigned fEdgesSize = ioViewMap->FEdges().size();
+ // ViewMap::fedges_container& fedges = ioViewMap->FEdges();
+ // for(ViewMap::fedges_container::const_iterator f=fedges.begin(), end=fedges.end();
+ // f!=end;
+ // ++f){
+ // cout << (*f)->aMaterialIndex() << "-" << (*f)->bMaterialIndex() << endl;
+ // }
+
+ unsigned progressBarStep = 0;
+
+ if(_pProgressBar != NULL && fEdgesSize > gProgressBarMinSize) {
+ unsigned progressBarSteps = min(gProgressBarMaxSteps, sVerticesSize);
+ progressBarStep = sVerticesSize / progressBarSteps;
+ _pProgressBar->reset();
+ _pProgressBar->setLabelText("Computing Sweep Line Intersections");
+ _pProgressBar->setTotalSteps(progressBarSteps);
+ _pProgressBar->setProgress(0);
+ progressBarDisplay = true;
+ }
+
+ unsigned counter = progressBarStep;
+
+ sort(svertices.begin(), svertices.end(), less_SVertex2D(epsilon));
+
+ SweepLine<FEdge*,Vec3r> SL;
+
+ vector<FEdge*>& ioEdges = ioViewMap->FEdges();
+
+ vector<segment* > segments;
+
+ vector<FEdge*>::iterator fe,fend;
+
+ for(fe=ioEdges.begin(), fend=ioEdges.end();
+ fe!=fend;
+ fe++)
+ {
+ segment * s = new segment((*fe), (*fe)->vertexA()->point2D(), (*fe)->vertexB()->point2D());
+ (*fe)->userdata = s;
+ segments.push_back(s);
+ }
+
+ vector<segment*> vsegments;
+ for(vector<SVertex*>::iterator sv=svertices.begin(),svend=svertices.end();
+ sv!=svend;
+ sv++)
+ {
+ const vector<FEdge*>& vedges = (*sv)->fedges();
+
+ for(vector<FEdge*>::const_iterator sve=vedges.begin(), sveend=vedges.end();
+ sve!=sveend;
+ sve++)
+ {
+ vsegments.push_back((segment*)((*sve)->userdata));
+ }
+
+ Vec3r evt((*sv)->point2D());
+ silhouette_binary_rule sbr;
+ SL.process(evt, vsegments, sbr);
+
+ if(progressBarDisplay) {
+ counter--;
+ if (counter <= 0) {
+ counter = progressBarStep;
+ _pProgressBar->setProgress(_pProgressBar->getProgress() + 1);
+ }
+ }
+ vsegments.clear();
+ }
+
+ // reset userdata:
+ for(fe=ioEdges.begin(), fend=ioEdges.end();
+ fe!=fend;
+ fe++)
+ (*fe)->userdata = NULL;
+
+ // list containing the new edges resulting from splitting operations.
+ vector<FEdge*> newEdges;
+
+ // retrieve the intersected edges:
+ vector<segment* >& iedges = SL.intersectedEdges();
+ // retrieve the intersections:
+ vector<intersection*>& intersections = SL.intersections();
+
+ int id=0;
+ // create a view vertex for each intersection and linked this one
+ // with the intersection object
+ vector<intersection*>::iterator i, iend;
+ for(i=intersections.begin(),iend=intersections.end();
+ i!=iend;
+ i++)
+ {
+ FEdge *fA = (*i)->EdgeA->edge();
+ FEdge *fB = (*i)->EdgeB->edge();
+
+ Vec3r A1 = fA->vertexA()->point3D();
+ Vec3r A2 = fA->vertexB()->point3D();
+ Vec3r B1 = fB->vertexA()->point3D();
+ Vec3r B2 = fB->vertexB()->point3D();
+
+ Vec3r a1 = fA->vertexA()->point2D();
+ Vec3r a2 = fA->vertexB()->point2D();
+ Vec3r b1 = fB->vertexA()->point2D();
+ Vec3r b2 = fB->vertexB()->point2D();
+
+ real ta = (*i)->tA;
+ real tb = (*i)->tB;
+
+ if((ta < -epsilon) || (ta > 1+epsilon))
+ cerr << "Warning: intersection out of range for edge " << fA->vertexA()->getId() << " - " << fA->vertexB()->getId() << endl;
+
+ if((tb < -epsilon) || (tb > 1+epsilon))
+ cerr << "Warning: intersection out of range for edge " << fB->vertexA()->getId() << " - " << fB->vertexB()->getId() << endl;
+
+ real Ta = SilhouetteGeomEngine::ImageToWorldParameter(fA, ta);
+ real Tb = SilhouetteGeomEngine::ImageToWorldParameter(fB, tb);
+
+ TVertex * tvertex = ioViewMap->CreateTVertex(Vec3r(A1 + Ta*(A2-A1)), Vec3r(a1 + ta*(a2-a1)), fA,
+ Vec3r(B1 + Tb*(B2-B1)), Vec3r(b1 + tb*(b2-b1)), fB, id);
+
+ (*i)->userdata = tvertex;
+ ++id;
+ }
+
+ progressBarStep = 0;
+
+ if(progressBarDisplay) {
+ unsigned iEdgesSize = iedges.size();
+ unsigned progressBarSteps = min(gProgressBarMaxSteps, iEdgesSize);
+ progressBarStep = iEdgesSize / progressBarSteps;
+ _pProgressBar->reset();
+ _pProgressBar->setLabelText("Splitting intersected edges");
+ _pProgressBar->setTotalSteps(progressBarSteps);
+ _pProgressBar->setProgress(0);
+ }
+
+ counter = progressBarStep;
+
+ vector<TVertex*> edgeVVertices;
+ vector<ViewEdge*> newVEdges;
+ vector<segment* >::iterator s, send;
+ for(s=iedges.begin(),send=iedges.end();
+ s!=send;
+ s++)
+ {
+ edgeVVertices.clear();
+ newEdges.clear();
+ newVEdges.clear();
+
+ FEdge* fedge = (*s)->edge();
+ ViewEdge *vEdge = fedge->viewedge();
+ ViewShape *shape = vEdge->viewShape();
+
+ vector<intersection*>& eIntersections = (*s)->intersections();
+ // we first need to sort these intersections from farther to closer to A
+ sort(eIntersections.begin(), eIntersections.end(), less_Intersection(*s));
+ for(i=eIntersections.begin(),iend=eIntersections.end();
+ i!=iend;
+ i++)
+ edgeVVertices.push_back((TVertex*)(*i)->userdata);
+
+ shape->SplitEdge(fedge, edgeVVertices, ioViewMap->FEdges(), ioViewMap->ViewEdges());
+
+ if(progressBarDisplay) {
+ counter--;
+ if (counter <= 0) {
+ counter = progressBarStep;
+ _pProgressBar->setProgress(_pProgressBar->getProgress() + 1);
+ }
+ }
+ }
+
+ // reset userdata:
+ for(fe=ioEdges.begin(), fend=ioEdges.end();
+ fe!=fend;
+ fe++)
+ (*fe)->userdata = NULL;
+
+ // delete segments
+ // if(!segments.empty()){
+ // for(s=segments.begin(),send=segments.end();
+ // s!=send;
+ // s++){
+ // delete *s;
+ // }
+ // segments.clear();
+ // }
+}
diff --git a/source/blender/freestyle/intern/view_map/ViewMapBuilder.h b/source/blender/freestyle/intern/view_map/ViewMapBuilder.h
new file mode 100755
index 00000000000..ec52d4fdd7e
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMapBuilder.h
@@ -0,0 +1,224 @@
+//
+// Filename : ViewMapBuilder.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to build silhouette edges from a
+// Winged-Edge structure
+// Date of creation : 25/03/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VIEWMAPBUILDER_H
+# define VIEWMAPBUILDER_H
+
+# include <vector>
+# include "../system/FreestyleConfig.h"
+# include "../geometry/Geom.h"
+# include "../scene_graph/NodeGroup.h"
+# include "../winged_edge/WXEdge.h"
+# include "Silhouette.h"
+# include "../geometry/GeomUtils.h"
+# include "../geometry/Grid.h"
+# include "../system/ProgressBar.h"
+# include "../geometry/SweepLine.h"
+# include "ViewMap.h"
+# include "SilhouetteGeomEngine.h"
+# include "../scene_graph/TriangleRep.h"
+# include "../winged_edge/WEdge.h"
+# include "ViewEdgeXBuilder.h"
+
+
+using namespace Geometry;
+
+class LIB_VIEW_MAP_EXPORT ViewMapBuilder
+{
+private:
+
+ ViewMap * _ViewMap; // result
+ //SilhouetteGeomEngine _GeomEngine;
+ ProgressBar *_pProgressBar;
+ Vec3r _viewpoint;
+ Grid* _Grid;
+ ViewEdgeXBuilder *_pViewEdgeBuilder;
+ bool _EnableQI;
+ double _epsilon;
+
+ // tmp values:
+ int _currentId;
+ int _currentFId;
+ int _currentSVertexId;
+
+
+public:
+
+ typedef enum {
+ sweep_line
+ } intersection_algo;
+
+ typedef enum {
+ ray_casting,
+ ray_casting_fast,
+ ray_casting_very_fast
+ } visibility_algo;
+
+ inline ViewMapBuilder()
+ {
+ _pProgressBar = 0;
+ _Grid = 0;
+ _currentId = 1;
+ _currentFId = 0;
+ _currentSVertexId = 0;
+ _pViewEdgeBuilder = new ViewEdgeXBuilder;
+ _EnableQI = true;
+ }
+
+ inline ~ViewMapBuilder()
+ {
+ if(_pViewEdgeBuilder){
+ delete _pViewEdgeBuilder;
+ _pViewEdgeBuilder = 0;
+ }
+ }
+
+ /*! Compute Shapes from a WingedEdge containing a list of WShapes */
+ void computeInitialViewEdges(WingedEdge&);
+
+ /*! Compute Cusps */
+ void computeCusps(ViewMap *ioViewMap);
+ /*! Detects cusps (for a single ViewEdge) among SVertices and builds a ViewVertex on top of
+ * each cusp SVertex
+ * We use a hysteresis approach to avoid noise.
+ */
+ void DetectCusps(ViewEdge *ioEdge);
+
+
+ /*! Sets the current viewpoint */
+ inline void SetViewpoint(const Vec3r& ivp) {_viewpoint = ivp; SilhouetteGeomEngine::SetViewpoint(ivp);}
+
+ /*! Sets the current transformation
+ * iModelViewMatrix
+ * The 4x4 model view matrix, in column major order (openGL like).
+ * iProjection matrix
+ * The 4x4 projection matrix, in column major order (openGL like).
+ * iViewport
+ * The viewport. 4 real array: origin.x, origin.y, width, length
+ */
+ inline void SetTransform(const real iModelViewMatrix[4][4],
+ const real iProjectionMatrix[4][4],
+ const int iViewport[4],
+ real iFocalLength,
+ real iAspect,
+ real iFovy) {
+ SilhouetteGeomEngine::SetTransform(iModelViewMatrix, iProjectionMatrix, iViewport, iFocalLength);
+ }
+
+ inline void SetFrustum(real iZnear, real iZfar) {
+ SilhouetteGeomEngine::SetFrustum(iZnear, iZfar);
+ }
+
+ /*! Builds the scene view map
+ * returns the list the view map
+ * it is up to the caller to delete this ViewMap
+ * iWRoot
+ * The root group node containing the WEdge structured scene
+ */
+
+ ViewMap* BuildViewMap(WingedEdge& we, visibility_algo iAlgo = ray_casting, real epsilon=1e-06) ;
+ /*! computes the intersection between all 2D
+ * feature edges of the scene.
+ * ioViewMap
+ * The view map. It is modified by the method.
+ * The list of all features edges of the scene.
+ * Each time an intersection is found, the 2 intersecting
+ * edges are splitted (creating 2 new vertices)
+ * At the end, this list is updated with the adding
+ * of all new created edges (resulting from splitting).
+ * iAlgo
+ * The algo to use for computing the intersections
+ */
+ void ComputeIntersections(ViewMap *ioViewMap, intersection_algo iAlgo = sweep_line, real epsilon=1e-06);
+
+ /*! Computes the 2D scene silhouette edges visibility
+ * iGrid
+ * For the Ray Casting algorithm.
+ */
+ void ComputeEdgesVisibility(ViewMap *ioViewMap, visibility_algo iAlgo= ray_casting, Grid* iGrid = 0, real epsilon=1e-6);
+
+ void SetGrid(Grid *iGrid) {_Grid = iGrid;}
+
+ /*! accessors */
+
+ /*! Modifiers */
+ inline void SetProgressBar(ProgressBar *iProgressBar) {_pProgressBar = iProgressBar;}
+ inline void SetEnableQI(bool iBool) {_EnableQI = iBool;}
+
+protected:
+
+ /*! Computes intersections on all edges of the scene using a sweep line
+ * algorithm*/
+ void ComputeSweepLineIntersections(ViewMap *ioViewMap, real epsilon = 1e-6);
+
+ /*! Computes the 2D scene silhouette edges visibility
+ * using a ray casting. On each edge, a ray is cast
+ * to check its quantitative invisibility. The list
+ * of occluders are each time stored in the tested edge.
+ * ioViewMap
+ * The view map.
+ * The 2D scene silhouette edges as FEdges.
+ * These edges have already been splitted at their intersections points.
+ * Thus, these edges do not intersect anymore.
+ * The visibility corresponding to each edge of ioScene is set is this
+ * edge.
+ */
+ void ComputeRayCastingVisibility(ViewMap *ioViewMap, Grid *iGrid, real epsilon=1e-6);
+ void ComputeFastRayCastingVisibility(ViewMap *ioViewMap, Grid *iGrid, real epsilon=1e-6);
+ void ComputeVeryFastRayCastingVisibility(ViewMap *ioViewMap, Grid *iGrid, real epsilon=1e-6);
+
+ /*! Compute the visibility for the FEdge fe.
+ * The occluders are added to fe occluders list.
+ * fe
+ * The FEdge
+ * iGrid
+ * The grid used to compute the ray casting visibility
+ * epsilon
+ * The epsilon used for computation
+ * oShapeId
+ * fe is the border (in 2D) between 2 2D spaces.
+ * if fe is a silhouette,
+ * One of these 2D spaces is occupied by the shape
+ * to which fe belongs (on its left) and the other one is either occupied
+ * by another shape or empty or occupied by the same shape.
+ * We use this ray csating operation to determine which shape
+ * lies on fe's right.
+ * The result is the shape id stored in oShapeId
+ */
+ int ComputeRayCastingVisibility(FEdge *fe, Grid* iGrid, real epsilon, set<ViewShape*>& oOccluders,
+ Polygon3r** oaPolygon, unsigned timestamp);
+ // FIXME
+ void FindOccludee(FEdge *fe, Grid* iGrid, real epsilon, Polygon3r** oaPolygon, unsigned timestamp);
+ void FindOccludee(FEdge *fe, Grid* iGrid, real epsilon, Polygon3r** oaPolygon, unsigned timestamp,
+ Vec3r& u, Vec3r& A, Vec3r& origin, Vec3r& edge, vector<WVertex*>& faceVertices);
+
+};
+
+#endif // VIEWMAPBUILDER_H
diff --git a/source/blender/freestyle/intern/view_map/ViewMapIO.cpp b/source/blender/freestyle/intern/view_map/ViewMapIO.cpp
new file mode 100755
index 00000000000..d68164973a1
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMapIO.cpp
@@ -0,0 +1,1245 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "ViewMapIO.h"
+
+#ifdef IRIX
+# define WRITE(n) Internal::write<sizeof((n))>(out, (const char*)(&(n)))
+# define READ(n) Internal::read<sizeof((n))>(in, (char*)(&(n)))
+#else
+# define WRITE(n) out.write((const char*)(&(n)), sizeof((n)))
+# define READ(n) in.read((char*)(&(n)), sizeof((n)))
+#endif
+
+#define WRITE_IF_NON_NULL(ptr) if ((ptr) == NULL) { WRITE(ZERO); } else { WRITE((ptr)->userdata); }
+#define READ_IF_NON_NULL(ptr, array) READ(tmp); if (tmp == ZERO) { (ptr) = NULL; } else { (ptr) = (array)[tmp]; }
+
+namespace ViewMapIO {
+
+ namespace Internal {
+
+ ViewMap* g_vm;
+
+ //////////////////// 'load' Functions ////////////////////
+
+ inline
+ int load(istream& in, Vec3r& v) {
+
+ if (Options::getFlags() & Options::FLOAT_VECTORS) {
+ float tmp;
+ READ(tmp);
+ v[0] = tmp;
+ READ(tmp);
+ v[1] = tmp;
+ READ(tmp);
+ v[2] = tmp;
+ } else {
+ Vec3r::value_type tmp;
+ READ(tmp);
+ v[0] = tmp;
+ READ(tmp);
+ v[1] = tmp;
+ READ(tmp);
+ v[2] = tmp;
+ }
+ return 0;
+ }
+
+
+ inline
+ int load(istream& in, Polygon3r& p) {
+
+ unsigned tmp;
+
+ // Id
+ READ(tmp);
+ p.setId(tmp);
+
+ // vertices (List)
+ vector<Vec3r> tmp_vec;
+ Vec3r v;
+ READ(tmp);
+ for (unsigned i = 0; i < tmp; i++) {
+ load(in, v);
+ tmp_vec.push_back(v);
+ }
+ p.setVertices(tmp_vec);
+
+ // min & max
+ // Already computed (in the SetVertices() method)
+
+ return 0;
+ }
+
+
+ inline
+ int load(istream& in, Material& m) {
+
+ float tmp_array[4];
+ int i;
+
+ // Diffuse
+ for (i = 0; i < 4; i++)
+ READ(tmp_array[i]);
+ m.SetDiffuse(tmp_array[0], tmp_array[1], tmp_array[2], tmp_array[3]);
+
+ // Specular
+ for (i = 0; i < 4; i++)
+ READ(tmp_array[i]);
+ m.SetSpecular(tmp_array[0], tmp_array[1], tmp_array[2], tmp_array[3]);
+
+ // Ambient
+ for (i = 0; i < 4; i++)
+ READ(tmp_array[i]);
+ m.SetAmbient(tmp_array[0], tmp_array[1], tmp_array[2], tmp_array[3]);
+
+ // Emission
+ for (i = 0; i < 4; i++)
+ READ(tmp_array[i]);
+ m.SetEmission(tmp_array[0], tmp_array[1], tmp_array[2], tmp_array[3]);
+
+ // Shininess
+ READ(tmp_array[0]);
+ m.SetShininess(tmp_array[0]);
+
+ return 0;
+ }
+
+
+ int load(istream& in, ViewShape* vs) {
+
+ if (!vs || !vs->sshape())
+ return 1;
+
+ // SShape
+
+ // -> Id
+ Id::id_type id1, id2;
+ READ(id1);
+ READ(id2);
+ vs->sshape()->SetId(Id(id1, id2));
+
+ // -> Importance
+ float importance;
+ READ(importance);
+ vs->sshape()->SetImportance(importance);
+
+ // -> BBox
+ // Not necessary (only used during view map computatiom)
+
+ unsigned i, size, tmp;
+
+ // -> Material
+ READ(size);
+ vector<Material> materials;
+ Material m;
+ for(i=0; i<size; ++i){
+ load(in, m);
+ materials.push_back(m);
+ }
+ vs->sshape()->SetMaterials(materials);
+
+
+
+ // -> VerticesList (List)
+ READ(size);
+ for (i = 0; i < size; i++) {
+ SVertex* sv;
+ READ_IF_NON_NULL(sv, g_vm->SVertices());
+ vs->sshape()->AddNewVertex(sv);
+ }
+
+ // -> Chains (List)
+ READ(size);
+ for (i = 0; i < size; i++) {
+ FEdge* fe;
+ READ_IF_NON_NULL(fe, g_vm->FEdges());
+ vs->sshape()->AddChain(fe);
+ }
+
+ // -> EdgesList (List)
+ READ(size);
+ for (i = 0; i < size; i++) {
+ FEdge* fe;
+ READ_IF_NON_NULL(fe, g_vm->FEdges());
+ vs->sshape()->AddEdge(fe);
+ }
+
+ // ViewEdges (List)
+ READ(size);
+ for (i = 0; i < size; i++) {
+ ViewEdge* ve;
+ READ_IF_NON_NULL(ve, g_vm->ViewEdges());
+ vs->AddEdge(ve);
+ }
+
+ // ViewVertices (List)
+ READ(size);
+ for (i = 0; i < size; i++) {
+ ViewVertex* vv;
+ READ_IF_NON_NULL(vv, g_vm->ViewVertices());
+ vs->AddVertex(vv);
+ }
+
+ return 0;
+ }
+
+
+ int load(istream& in, FEdge* fe) {
+
+ if (!fe)
+ return 1;
+
+ bool b;
+
+ FEdgeSmooth *fesmooth = 0;
+ FEdgeSharp * fesharp = 0;
+ if(fe->isSmooth()){
+ fesmooth = dynamic_cast<FEdgeSmooth*>(fe);
+ }else{
+ fesharp = dynamic_cast<FEdgeSharp*>(fe);
+ }
+
+ // Id
+ Id::id_type id1, id2;
+ READ(id1);
+ READ(id2);
+ fe->SetId(Id(id1, id2));
+
+ // Nature
+ Nature::EdgeNature nature;
+ READ(nature);
+ fe->SetNature(nature);
+
+ // hasVisibilityPoint
+ // bool b;
+ // READ(b);
+ // fe->SetHasVisibilityPoint(b);
+
+ Vec3r v;
+ unsigned int matindex;
+
+ // VisibilityPointA
+ // load(in, v);
+ // fe->SetVisibilityPointA(v);
+
+ // VisibilityPointB
+ // load(in, v);
+ // fe->SetVisibilityPointB(v);
+
+ if(fe->isSmooth()){
+ // Normal
+ load(in, v);
+ fesmooth->SetNormal(v);
+
+ // Material
+ READ(matindex);
+ fesmooth->SetMaterialIndex(matindex);
+ }else{
+ // aNormal
+ load(in, v);
+ fesharp->SetNormalA(v);
+
+ // bNormal
+ load(in, v);
+ fesharp->SetNormalB(v);
+
+ // Materials
+ READ(matindex);
+ fesharp->SetaMaterialIndex(matindex);
+ READ(matindex);
+ fesharp->SetbMaterialIndex(matindex);
+ }
+
+ unsigned tmp;
+
+ // VertexA
+ SVertex* sva;
+ READ_IF_NON_NULL(sva, g_vm->SVertices());
+ fe->SetVertexA(sva);
+
+ // VertexB
+ SVertex* svb;
+ READ_IF_NON_NULL(svb, g_vm->SVertices());
+ fe->SetVertexB(svb);
+
+ // NextEdge
+ FEdge* nfe;
+ READ_IF_NON_NULL(nfe, g_vm->FEdges());
+ fe->SetNextEdge(nfe);
+
+ // PreviousEdge
+ FEdge* pfe;
+ READ_IF_NON_NULL(pfe, g_vm->FEdges());
+ fe->SetPreviousEdge(pfe);
+
+ // ViewEdge
+ ViewEdge* ve;
+ READ_IF_NON_NULL(ve, g_vm->ViewEdges());
+ fe->SetViewEdge(ve);
+
+ // Face
+ // Not necessary (only used during view map computatiom)
+
+ Polygon3r p;
+
+ // aFace
+ load(in, p);
+ fe->SetaFace(p);
+
+ // occludeeEmpty
+ READ(b);
+ fe->SetOccludeeEmpty(b);
+
+ // occludeeIntersection
+ load(in, v);
+ fe->SetOccludeeIntersection(v);
+
+ return 0;
+ }
+
+
+ int load(istream& in, SVertex* sv) {
+
+ if (!sv)
+ return 1;
+
+ // Id
+ Id::id_type id1, id2;
+ READ(id1);
+ READ(id2);
+ sv->SetId(Id(id1, id2));
+
+ Vec3r v;
+
+ // Point3D
+ load(in, v);
+ sv->SetPoint3D(v);
+
+ // Point2D
+ load(in, v);
+ sv->SetPoint2D(v);
+
+ unsigned tmp;
+
+ // Shape
+ ViewShape* vs;
+ READ_IF_NON_NULL(vs, g_vm->ViewShapes());
+ sv->SetShape(vs->sshape());
+
+ // pViewVertex
+ ViewVertex* vv;
+ READ_IF_NON_NULL(vv, g_vm->ViewVertices());
+ sv->SetViewVertex(vv);
+
+ unsigned i, size;
+
+ // Normals (List)
+ READ(size);
+ for (i = 0; i < size; i++) {
+ load(in, v);
+ sv->AddNormal(v);
+ }
+
+ // FEdges (List)
+ READ(size);
+ FEdge* fe;
+ for (i = 0; i < size; i++) {
+ READ_IF_NON_NULL(fe, g_vm->FEdges());
+ sv->AddFEdge(fe);
+ }
+
+ return 0;
+ }
+
+
+ int load(istream& in, ViewEdge* ve) {
+
+ if (!ve)
+ return 1;
+
+ unsigned tmp;
+
+ // Id
+ Id::id_type id1, id2;
+ READ(id1);
+ READ(id2);
+ ve->SetId(Id(id1, id2));
+
+ // Nature
+ Nature::EdgeNature nature;
+ READ(nature);
+ ve->SetNature(nature);
+
+ // QI
+ READ(tmp);
+ ve->SetQI(tmp);
+
+ // Shape
+ ViewShape* vs;
+ READ_IF_NON_NULL(vs, g_vm->ViewShapes());
+ ve->SetShape(vs);
+
+ // aShape
+ ViewShape* avs;
+ READ_IF_NON_NULL(avs, g_vm->ViewShapes());
+ ve->SetaShape(avs);
+
+ // FEdgeA
+ FEdge* fea;
+ READ_IF_NON_NULL(fea, g_vm->FEdges());
+ ve->SetFEdgeA(fea);
+
+ // FEdgeB
+ FEdge* feb;
+ READ_IF_NON_NULL(feb, g_vm->FEdges());
+ ve->SetFEdgeB(feb);
+
+ // A
+ ViewVertex* vva;
+ READ_IF_NON_NULL(vva, g_vm->ViewVertices());
+ ve->SetA(vva);
+
+ // B
+ ViewVertex* vvb;
+ READ_IF_NON_NULL(vvb, g_vm->ViewVertices());
+ ve->SetB(vvb);
+
+ // Occluders (List)
+ if (!(Options::getFlags() & Options::NO_OCCLUDERS)) {
+ unsigned size;
+ READ(size);
+ ViewShape* vso;
+ for (unsigned i = 0; i < size; i++) {
+ READ_IF_NON_NULL(vso, g_vm->ViewShapes());
+ ve->AddOccluder(vso);
+ }
+ }
+
+ return 0;
+ }
+
+
+ int load(istream& in, ViewVertex* vv) {
+
+ if (!vv)
+ return 1;
+
+ unsigned tmp;
+ bool b;
+
+ // Nature
+ Nature::VertexNature nature;
+ READ(nature);
+ vv->setNature(nature);
+
+ if (vv->getNature() & Nature::T_VERTEX) {
+ TVertex* tv = dynamic_cast<TVertex*>(vv);
+
+ // Id
+ Id::id_type id1, id2;
+ READ(id1);
+ READ(id2);
+ tv->SetId(Id(id1, id2));
+
+ // FrontSVertex
+ SVertex* fsv;
+ READ_IF_NON_NULL(fsv, g_vm->SVertices());
+ tv->SetFrontVertex(fsv);
+
+ // BackSVertex
+ SVertex* bsv;
+ READ_IF_NON_NULL(bsv, g_vm->SVertices());
+ tv->SetBackSVertex(bsv);
+
+ // FrontEdgeA
+ ViewEdge* fea;
+ READ_IF_NON_NULL(fea, g_vm->ViewEdges());
+ READ(b);
+ tv->SetFrontEdgeA(fea, b);
+
+ // FrontEdgeB
+ ViewEdge* feb;
+ READ_IF_NON_NULL(feb, g_vm->ViewEdges());
+ READ(b);
+ tv->SetFrontEdgeB(feb, b);
+
+ // BackEdgeA
+ ViewEdge* bea;
+ READ_IF_NON_NULL(bea, g_vm->ViewEdges());
+ READ(b);
+ tv->SetBackEdgeA(bea, b);
+
+ // BackEdgeB
+ ViewEdge* beb;
+ READ_IF_NON_NULL(beb, g_vm->ViewEdges());
+ READ(b);
+ tv->SetBackEdgeB(beb, b);
+ }
+ else if (vv->getNature() & Nature::NON_T_VERTEX) {
+ NonTVertex* ntv = dynamic_cast<NonTVertex*>(vv);
+
+ // SVertex
+ SVertex* sv;
+ READ_IF_NON_NULL(sv, g_vm->SVertices());
+ ntv->SetSVertex(sv);
+
+ // ViewEdges (List)
+ unsigned size;
+ READ(size);
+ ViewEdge* ve;
+ for (unsigned i = 0; i < size; i++) {
+ READ_IF_NON_NULL(ve, g_vm->ViewEdges());
+ READ(b);
+ ntv->AddViewEdge(ve, b);
+ }
+ }
+
+ return 0;
+ }
+
+ //////////////////// 'save' Functions ////////////////////
+
+ inline
+ int save(ostream& out, const Vec3r& v) {
+
+ if (Options::getFlags() & Options::FLOAT_VECTORS) {
+ float tmp;
+
+ tmp = v[0];
+ WRITE(tmp);
+ tmp = v[1];
+ WRITE(tmp);
+ tmp = v[2];
+ WRITE(tmp);
+ } else {
+ Vec3r::value_type tmp;
+
+ tmp = v[0];
+ WRITE(tmp);
+ tmp = v[1];
+ WRITE(tmp);
+ tmp = v[2];
+ WRITE(tmp);
+ }
+ return 0;
+ }
+
+
+ inline
+ int save(ostream& out, const Polygon3r& p) {
+
+ unsigned tmp;
+
+ // Id
+ tmp = p.getId();
+ WRITE(tmp);
+
+ // vertices (List)
+ tmp = p.getVertices().size();
+ WRITE(tmp);
+ for (vector<Vec3r>::const_iterator i = p.getVertices().begin();
+ i != p.getVertices().end(); i++) {
+ save(out, *i);
+ }
+
+ // min & max
+ // Do not need to be saved
+
+ return 0;
+ }
+
+
+ inline
+ int save(ostream& out, const Material& m) {
+
+ unsigned i;
+
+ // Diffuse
+ for (i = 0; i < 4; i++)
+ WRITE(m.diffuse()[i]);
+
+ // Specular
+ for (i = 0; i < 4; i++)
+ WRITE(m.specular()[i]);
+
+ // Ambient
+ for (i = 0; i < 4; i++)
+ WRITE(m.ambient()[i]);
+
+ // Emission
+ for (i = 0; i < 4; i++)
+ WRITE(m.emission()[i]);
+
+ // Shininess
+ float shininess = m.shininess();
+ WRITE(shininess);
+
+ return 0;
+ }
+
+
+ int save(ostream& out, ViewShape* vs) {
+
+ if (!vs || !vs->sshape()) {
+ cerr << "Warning: null ViewShape" << endl;
+ return 1;
+ }
+
+ unsigned tmp;
+
+ // SShape
+
+ // -> Id
+ Id::id_type id = vs->sshape()->getId().getFirst();
+ WRITE(id);
+ id = vs->sshape()->getId().getSecond();
+ WRITE(id);
+
+ // -> Importance
+ float importance = vs->sshape()->importance();
+ WRITE(importance);
+
+ // -> BBox
+ // Not necessary (only used during view map computatiom)
+
+ // -> Material
+ unsigned size = vs->sshape()->materials().size();
+ WRITE(size);
+ for(unsigned i=0; i<size; ++i)
+ save(out, vs->sshape()->material(i));
+
+ // -> VerticesList (List)
+ tmp = vs->sshape()->GetVertexList().size();
+ WRITE(tmp);
+ for (vector<SVertex*>::const_iterator i1 = vs->sshape()->GetVertexList().begin();
+ i1 != vs->sshape()->GetVertexList().end(); i1++)
+ WRITE_IF_NON_NULL(*i1);
+
+ // -> Chains (List)
+ tmp = vs->sshape()->GetChains().size();
+ WRITE(tmp);
+ for (vector<FEdge*>::const_iterator i2 = vs->sshape()->GetChains().begin();
+ i2 != vs->sshape()->GetChains().end(); i2++)
+ WRITE_IF_NON_NULL(*i2);
+
+ // -> EdgesList (List)
+ tmp = vs->sshape()->GetEdgeList().size();
+ WRITE(tmp);
+ for (vector<FEdge*>::const_iterator i3 = vs->sshape()->GetEdgeList().begin();
+ i3 != vs->sshape()->GetEdgeList().end(); i3++)
+ WRITE_IF_NON_NULL(*i3);
+
+ // ViewEdges (List)
+ tmp = vs->edges().size();
+ WRITE(tmp);
+ for (vector<ViewEdge*>::const_iterator i4 = vs->edges().begin();
+ i4 != vs->edges().end(); i4++)
+ WRITE_IF_NON_NULL(*i4);
+
+ // ViewVertices (List)
+ tmp = vs->vertices().size();
+ WRITE(tmp);
+ for (vector<ViewVertex*>::const_iterator i5 = vs->vertices().begin();
+ i5 != vs->vertices().end(); i5++)
+ WRITE_IF_NON_NULL(*i5);
+
+
+ return 0;
+ }
+
+
+ int save(ostream& out, FEdge* fe) {
+
+ if (!fe) {
+ cerr << "Warning: null FEdge" << endl;
+ return 1;
+ }
+
+ FEdgeSmooth * fesmooth = dynamic_cast<FEdgeSmooth*>(fe);
+ FEdgeSharp * fesharp = dynamic_cast<FEdgeSharp*>(fe);
+
+ // Id
+ Id::id_type id = fe->getId().getFirst();
+ WRITE(id);
+ id = fe->getId().getSecond();
+ WRITE(id);
+
+ // Nature
+ Nature::EdgeNature nature = fe->getNature();
+ WRITE(nature);
+
+ bool b;
+
+ // hasVisibilityPoint
+ // b = fe->hasVisibilityPoint();
+ // WRITE(b);
+
+ // VisibilityPointA
+ // save(out, fe->visibilityPointA());
+ //
+ // // VisibilityPointB
+ // save(out, fe->visibilityPointB());
+
+ unsigned index;
+ if(fe->isSmooth()){
+ // normal
+ save(out, fesmooth->normal());
+ // material
+ index = fesmooth->materialIndex();
+ WRITE(index);
+ }else{
+ // aNormal
+ save(out, fesharp->normalA());
+ // bNormal
+ save(out, fesharp->normalB());
+ // aMaterial
+ index = fesharp->aMaterialIndex();
+ WRITE(index);
+ // bMaterial
+ index = fesharp->bMaterialIndex();
+ WRITE(index);
+ }
+
+
+ // VertexA
+ WRITE_IF_NON_NULL(fe->vertexA());
+
+ // VertexB
+ WRITE_IF_NON_NULL(fe->vertexB());
+
+ // NextEdge
+ WRITE_IF_NON_NULL(fe->nextEdge());
+
+ // PreviousEdge
+ WRITE_IF_NON_NULL(fe->previousEdge());
+
+ // ViewEdge
+ WRITE_IF_NON_NULL(fe->viewedge());
+
+ // Face
+ // Not necessary (only used during view map computatiom)
+
+ // aFace
+ save(out, (Polygon3r&)fe->aFace());
+
+ // occludeeEmpty
+ b = fe->getOccludeeEmpty();
+ WRITE(b);
+
+ // occludeeIntersection
+ save(out, fe->getOccludeeIntersection());
+
+ return 0;
+ }
+
+
+ int save(ostream& out, SVertex* sv) {
+
+ if (!sv) {
+ cerr << "Warning: null SVertex" << endl;
+ return 1;
+ }
+
+ unsigned tmp;
+
+ // Id
+ Id::id_type id = sv->getId().getFirst();
+ WRITE(id);
+ id = sv->getId().getSecond();
+ WRITE(id);
+
+ Vec3r v;
+
+ // Point3D
+ v = sv->point3D();
+ save(out, sv->point3D());
+
+ // Point2D
+ v = sv->point2D();
+ save(out, v);
+
+ // Shape
+ WRITE_IF_NON_NULL(sv->shape());
+
+ // pViewVertex
+ WRITE_IF_NON_NULL(sv->viewvertex());
+
+ // Normals (List)
+ // Note: the 'size()' method of a set doesn't seem to return the
+ // actual size of the given set, so we have to hack it...
+ set<Vec3r>::const_iterator i;
+ for (i = sv->normals().begin(), tmp = 0;
+ i != sv->normals().end();
+ i++, tmp++);
+ WRITE(tmp);
+ for (i = sv->normals().begin(); i != sv->normals().end(); i++)
+ save(out, *i);
+
+ // FEdges (List)
+ tmp = sv->fedges().size();
+ WRITE(tmp);
+ for (vector<FEdge*>::const_iterator j = sv->fedges_begin();
+ j != sv->fedges_end(); j++)
+ WRITE_IF_NON_NULL(*j);
+
+ return 0;
+ }
+
+
+ int save(ostream& out, ViewEdge* ve) {
+
+ if (!ve) {
+ cerr << "Warning: null ViewEdge" << endl;
+ return 1;
+ }
+
+ unsigned tmp;
+
+ // Id
+ Id::id_type id = ve->getId().getFirst();
+ WRITE(id);
+ id = ve->getId().getSecond();
+ WRITE(id);
+
+ // Nature
+ Nature::EdgeNature nature = ve->getNature();
+ WRITE(nature);
+
+ // QI
+ unsigned qi = ve->qi();
+ WRITE(qi);
+
+ // Shape
+ WRITE_IF_NON_NULL(ve->shape());
+
+ // aShape
+ WRITE_IF_NON_NULL(ve->aShape());
+
+ // FEdgeA
+ WRITE_IF_NON_NULL(ve->fedgeA());
+
+ // FEdgeB
+ WRITE_IF_NON_NULL(ve->fedgeB());
+
+ // A
+ WRITE_IF_NON_NULL(ve->A());
+
+ // B
+ WRITE_IF_NON_NULL(ve->B());
+
+ // Occluders (List)
+ if (!(Options::getFlags() & Options::NO_OCCLUDERS)) {
+ tmp = ve->occluders().size();
+ WRITE(tmp);
+ for (vector<ViewShape*>::const_iterator i = ve->occluders().begin();
+ i != ve->occluders().end(); i++)
+ WRITE_IF_NON_NULL((*i));
+ }
+
+ return 0;
+ }
+
+
+ int save(ostream& out, ViewVertex* vv) {
+
+ if (!vv) {
+ cerr << "Warning: null ViewVertex" << endl;
+ return 1;
+ }
+
+ // Nature
+ Nature::VertexNature nature = vv->getNature();
+ WRITE(nature);
+
+ if (vv->getNature() & Nature::T_VERTEX) {
+ TVertex* tv = dynamic_cast<TVertex*>(vv);
+
+ // Id
+ Id::id_type id = tv->getId().getFirst();
+ WRITE(id);
+ id = tv->getId().getSecond();
+ WRITE(id);
+
+ // FrontSVertex
+ WRITE_IF_NON_NULL(tv->frontSVertex());
+
+ // BackSVertex
+ WRITE_IF_NON_NULL(tv->backSVertex());
+
+ // FrontEdgeA
+ WRITE_IF_NON_NULL(tv->frontEdgeA().first);
+ WRITE(tv->frontEdgeA().second);
+
+ // FrontEdgeB
+ WRITE_IF_NON_NULL(tv->frontEdgeB().first);
+ WRITE(tv->frontEdgeB().second);
+
+ // BackEdgeA
+ WRITE_IF_NON_NULL(tv->backEdgeA().first);
+ WRITE(tv->backEdgeA().second);
+
+ // BackEdgeB
+ WRITE_IF_NON_NULL(tv->backEdgeB().first);
+ WRITE(tv->backEdgeB().second);
+
+ }
+ else if (vv->getNature() & Nature::NON_T_VERTEX) {
+ NonTVertex* ntv = dynamic_cast<NonTVertex*>(vv);
+
+ // SVertex
+ WRITE_IF_NON_NULL(ntv->svertex());
+
+ // ViewEdges (List)
+ unsigned size = ntv->viewedges().size();
+ WRITE(size);
+ vector<ViewVertex::directedViewEdge>::const_iterator i = ntv->viewedges().begin();
+ for ( ; i != ntv->viewedges().end(); i++){
+ WRITE_IF_NON_NULL(i->first);
+ WRITE(i->second);
+ }
+
+ } else {
+ cerr << "Warning: unexpected ViewVertex nature" << endl;
+ return 1;
+ }
+
+ return 0;
+ }
+
+ } // End of namespace Internal
+
+
+ //////////////////// "Public" 'load' and 'save' functions ////////////////////
+
+#define SET_PROGRESS(n) if (pb) pb->setProgress((n))
+
+ int load(istream& in, ViewMap* vm, ProgressBar* pb) {
+
+ if (!vm)
+ return 1;
+
+ unsigned tmp;
+
+ int err = 0;
+
+ Internal::g_vm = vm;
+
+ // Management of the progress bar (if present)
+ if (pb) {
+ pb->reset();
+ pb->setLabelText("Loading View Map...");
+ pb->setTotalSteps(6);
+ pb->setProgress(0);
+ }
+
+ // Read and set the options
+ unsigned char flags;
+ READ(flags);
+ Options::setFlags(flags);
+
+ // Read the size of the five ViewMap's lists (with some extra informations for the ViewVertices)
+ // and instantiate them (with default costructors)
+ unsigned vs_s, fe_s, fe_rle1, fe_rle2, sv_s, ve_s, vv_s, vv_rle1, vv_rle2;
+ READ(vs_s);
+ READ(fe_s);
+
+ if (fe_s) {
+ bool b;
+ READ(b);
+ for (READ(fe_rle1), fe_rle2 = 0;
+ fe_rle1 < fe_s+1;
+ fe_rle2 = fe_rle1, READ(fe_rle1)) {
+ if (b) {
+ for (unsigned i = fe_rle2; i < fe_rle1; i++) {
+ FEdgeSmooth * fes = new FEdgeSmooth;
+ vm->AddFEdge(fes);
+ }
+ b = !b;
+ }
+ else if (!b) {
+ for (unsigned i = fe_rle2; i < fe_rle1; i++) {
+ FEdgeSharp * fes = new FEdgeSharp;
+ vm->AddFEdge(fes);
+ }
+ b = !b;
+ }
+ }
+ }
+
+ READ(sv_s);
+ READ(ve_s);
+ READ(vv_s);
+
+ if (vv_s) {
+ Nature::VertexNature nature;
+ READ(nature);
+ for (READ(vv_rle1), vv_rle2 = 0;
+ vv_rle1 < vv_s+1;
+ vv_rle2 = vv_rle1, READ(vv_rle1)) {
+ if (nature & Nature::T_VERTEX) {
+ for (unsigned i = vv_rle2; i < vv_rle1; i++) {
+ TVertex* tv = new TVertex();
+ vm->AddViewVertex(tv);
+ }
+ nature = Nature::NON_T_VERTEX;
+ }
+ else if (nature & Nature::NON_T_VERTEX) {
+ for (unsigned i = vv_rle2; i < vv_rle1; i++) {
+ NonTVertex* ntv = new NonTVertex();
+ vm->AddViewVertex(ntv);
+ }
+ nature = Nature::T_VERTEX;
+ }
+ }
+ }
+
+ for (unsigned i0 = 0; i0 < vs_s; i0++) {
+ SShape* ss = new SShape();
+ ViewShape* vs = new ViewShape();
+ vs->SetSShape(ss);
+ ss->SetViewShape(vs);
+ vm->AddViewShape(vs);
+ }
+ // for (unsigned i1 = 0; i1 < fe_s; i1++) {
+ // FEdge* fe = new FEdge();
+ // vm->AddFEdge(fe);
+ // }
+ for (unsigned i2 = 0; i2 < sv_s; i2++) {
+ SVertex* sv = new SVertex();
+ vm->AddSVertex(sv);
+ }
+ for (unsigned i3 = 0; i3 < ve_s; i3++) {
+ ViewEdge* ve = new ViewEdge();
+ vm->AddViewEdge(ve);
+ }
+
+
+ // Read the values for all the objects created above
+ SET_PROGRESS(1);
+ for (vector<ViewShape*>::const_iterator i4 = vm->ViewShapes().begin();
+ i4 != vm->ViewShapes().end(); i4++)
+ err += Internal::load(in, *i4);
+ SET_PROGRESS(2);
+ for (vector<FEdge*>::const_iterator i5 = vm->FEdges().begin();
+ i5 != vm->FEdges().end(); i5++)
+ err += Internal::load(in, *i5);
+ SET_PROGRESS(3);
+ for (vector<SVertex*>::const_iterator i6 = vm->SVertices().begin();
+ i6 != vm->SVertices().end(); i6++)
+ err += Internal::load(in, *i6);
+ SET_PROGRESS(4);
+ for (vector<ViewEdge*>::const_iterator i7 = vm->ViewEdges().begin();
+ i7 != vm->ViewEdges().end(); i7++)
+ err += Internal::load(in, *i7);
+ SET_PROGRESS(5);
+ for (vector<ViewVertex*>::const_iterator i8 = vm->ViewVertices().begin();
+ i8 != vm->ViewVertices().end(); i8++)
+ err += Internal::load(in, *i8);
+ SET_PROGRESS(6);
+
+ // Read the shape id to index mapping
+ unsigned map_s;
+ READ(map_s);
+ unsigned id,index;
+ for(unsigned i4=0;i4<map_s;++i4){
+ READ(id);
+ READ(index);
+ vm->shapeIdToIndexMap()[id] = index;
+ }
+
+ return err;
+ }
+
+
+ int save(ostream& out, ViewMap* vm, ProgressBar* pb) {
+
+ if (!vm)
+ return 1;
+
+ int err = 0;
+
+ // Management of the progress bar (if present)
+ if (pb) {
+ pb->reset();
+ pb->setLabelText("Saving View Map...");
+ pb->setTotalSteps(6);
+ pb->setProgress(0);
+ }
+
+ // For every object, initialize its userdata member to its index in the ViewMap list
+ for (unsigned i0 = 0; i0 < vm->ViewShapes().size(); i0++) {
+ vm->ViewShapes()[i0]->userdata = (void*)i0;
+ vm->ViewShapes()[i0]->sshape()->userdata = (void*)i0;
+ }
+ for (unsigned i1 = 0; i1 < vm->FEdges().size(); i1++)
+ vm->FEdges()[i1]->userdata = (void*)i1;
+ for (unsigned i2 = 0; i2 < vm->SVertices().size(); i2++)
+ vm->SVertices()[i2]->userdata = (void*)i2;
+ for (unsigned i3 = 0; i3 < vm->ViewEdges().size(); i3++)
+ vm->ViewEdges()[i3]->userdata = (void*)i3;
+ for (unsigned i4 = 0; i4 < vm->ViewVertices().size(); i4++)
+ vm->ViewVertices()[i4]->userdata = (void*)i4;
+
+ // Write the current options
+ unsigned char flags = Options::getFlags();
+ WRITE(flags);
+
+ // Write the size of the five lists (with some extra informations for the ViewVertices)
+ unsigned size;
+ size = vm->ViewShapes().size();
+ WRITE(size);
+ size = vm->FEdges().size();
+ WRITE(size);
+ if (size) {
+ bool b = vm->FEdges()[0]->isSmooth();
+ WRITE(b);
+ for (unsigned i = 0; i < size; i++) {
+ while (i < size && (vm->FEdges()[i]->isSmooth() == b))
+ i++;
+ if (i < size) {
+ WRITE(i);
+ b = !b;
+ }
+ }
+ WRITE(size);
+ size++;
+ WRITE(size);
+ }
+ size = vm->SVertices().size();
+ WRITE(size);
+ size = vm->ViewEdges().size();
+ WRITE(size);
+ size = vm->ViewVertices().size();
+ WRITE(size);
+ if (size) {
+ Nature::VertexNature nature = vm->ViewVertices()[0]->getNature();
+ WRITE(nature);
+ nature &= ~Nature::VIEW_VERTEX;
+ for (unsigned i = 0; i < size; i++) {
+ while (i < size && (vm->ViewVertices()[i]->getNature() & nature))
+ i++;
+ if (i < size) {
+ WRITE(i);
+ nature = vm->ViewVertices()[i]->getNature() & ~Nature::VIEW_VERTEX;
+ }
+ }
+ WRITE(size);
+ size++;
+ WRITE(size);
+ }
+
+
+ // Write all the elts of the ViewShapes List
+ SET_PROGRESS(1);
+ for (vector<ViewShape*>::const_iterator i5 = vm->ViewShapes().begin();
+ i5 != vm->ViewShapes().end(); i5++)
+ err += Internal::save(out, *i5);
+ SET_PROGRESS(2);
+ for (vector<FEdge*>::const_iterator i6 = vm->FEdges().begin();
+ i6 != vm->FEdges().end(); i6++)
+ err += Internal::save(out, *i6);
+ SET_PROGRESS(3);
+ for (vector<SVertex*>::const_iterator i7 = vm->SVertices().begin();
+ i7 != vm->SVertices().end(); i7++)
+ err += Internal::save(out, *i7);
+ SET_PROGRESS(4);
+ for (vector<ViewEdge*>::const_iterator i8 = vm->ViewEdges().begin();
+ i8 != vm->ViewEdges().end(); i8++)
+ err += Internal::save(out, *i8);
+ SET_PROGRESS(5);
+ for (vector<ViewVertex*>::const_iterator i9 = vm->ViewVertices().begin();
+ i9 != vm->ViewVertices().end(); i9++)
+ err += Internal::save(out, *i9);
+
+ // Write the shape id to index mapping
+ size = vm->shapeIdToIndexMap().size();
+ WRITE(size);
+ unsigned id,index;
+ for(ViewMap::id_to_index_map::iterator mit=vm->shapeIdToIndexMap().begin(), mitend=vm->shapeIdToIndexMap().end(); mit!=mitend; ++mit){
+ id = mit->first;
+ index = mit->second;
+ WRITE(id);
+ WRITE(index);
+ }
+
+ // Reset 'userdata' members
+ for (vector<ViewShape*>::const_iterator j0 = vm->ViewShapes().begin();
+ j0 != vm->ViewShapes().end(); j0++) {
+ (*j0)->userdata = 0;
+ (*j0)->sshape()->userdata = 0;
+ }
+ for (vector<FEdge*>::const_iterator j1 = vm->FEdges().begin();
+ j1 != vm->FEdges().end(); j1++)
+ (*j1)->userdata = 0;
+ for (vector<SVertex*>::const_iterator j2 = vm->SVertices().begin();
+ j2 != vm->SVertices().end(); j2++)
+ (*j2)->userdata = 0;
+ for (vector<ViewEdge*>::const_iterator j3 = vm->ViewEdges().begin();
+ j3 != vm->ViewEdges().end(); j3++)
+ (*j3)->userdata = 0;
+ for (vector<ViewVertex*>::const_iterator j4 = vm->ViewVertices().begin();
+ j4 != vm->ViewVertices().end(); j4++)
+ (*j4)->userdata = 0;
+ SET_PROGRESS(6);
+
+ return err;
+ }
+
+
+ //////////////////// Options ////////////////////
+
+ namespace Options {
+
+ namespace Internal {
+
+ static unsigned char g_flags = 0;
+ static string g_models_path;
+
+ } // End of namespace Internal
+
+ void setFlags(const unsigned char flags) {
+ Internal::g_flags = flags;
+ }
+
+ void addFlags(const unsigned char flags) {
+ Internal::g_flags |= flags;
+ }
+
+ void rmFlags(const unsigned char flags) {
+ Internal::g_flags &= ~flags;
+ }
+
+ unsigned char getFlags() {
+ return Internal::g_flags;
+ }
+
+ void setModelsPath(const string& path) {
+ Internal::g_models_path = path;
+ }
+
+ string getModelsPath() {
+ return Internal::g_models_path;
+ }
+
+ }; // End of namepace Options
+
+} // End of namespace ViewMapIO
diff --git a/source/blender/freestyle/intern/view_map/ViewMapIO.h b/source/blender/freestyle/intern/view_map/ViewMapIO.h
new file mode 100755
index 00000000000..33e168b537b
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMapIO.h
@@ -0,0 +1,116 @@
+//
+// Filename : ViewMapIO.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Functions to manage I/O for the view map
+// Date of creation : 09/01/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VIEWMAPIO_H
+# define VIEWMAPIO_H
+
+# include <fstream>
+# include <string>
+# include "../system/FreestyleConfig.h"
+# include "../system/ProgressBar.h"
+# include "ViewMap.h"
+
+namespace ViewMapIO {
+
+ static const unsigned ZERO = UINT_MAX;
+
+ LIB_VIEW_MAP_EXPORT
+ int load(istream& in, ViewMap* vm, ProgressBar* pb = NULL);
+
+ LIB_VIEW_MAP_EXPORT
+ int save(ostream& out, ViewMap* vm, ProgressBar* pb = NULL);
+
+ namespace Options {
+
+ static const unsigned char FLOAT_VECTORS = 1;
+ static const unsigned char NO_OCCLUDERS = 2;
+
+ LIB_VIEW_MAP_EXPORT
+ void setFlags(const unsigned char flags);
+
+ LIB_VIEW_MAP_EXPORT
+ void addFlags(const unsigned char flags);
+
+ LIB_VIEW_MAP_EXPORT
+ void rmFlags(const unsigned char flags);
+
+ LIB_VIEW_MAP_EXPORT
+ unsigned char getFlags();
+
+ LIB_VIEW_MAP_EXPORT
+ void setModelsPath(const string& path);
+
+ LIB_VIEW_MAP_EXPORT
+ string getModelsPath();
+
+ }; // End of namepace Options
+
+# ifdef IRIX
+
+ namespace Internal {
+
+ template <unsigned S>
+ ostream& write(ostream& out, const char* str) {
+ out.put(str[S - 1]);
+ return write<S - 1>(out, str);
+ }
+
+ template<>
+ ostream& write<1>(ostream& out, const char* str) {
+ return out.put(str[0]);
+ }
+
+ template<>
+ ostream& write<0>(ostream& out, const char*) {
+ return out;
+ }
+
+ template <unsigned S>
+ istream& read(istream& in, char* str) {
+ in.get(str[S - 1]);
+ return read<S - 1>(in, str);
+ }
+
+ template<>
+ istream& read<1>(istream& in, char* str) {
+ return in.get(str[0]);
+ }
+
+ template<>
+ istream& read<0>(istream& in, char*) {
+ return in;
+ }
+
+ } // End of namespace Internal
+
+# endif // IRIX
+
+} // End of namespace ViewMapIO
+
+#endif // VIEWMAPIO_H
diff --git a/source/blender/freestyle/intern/view_map/ViewMapIterators.h b/source/blender/freestyle/intern/view_map/ViewMapIterators.h
new file mode 100755
index 00000000000..004674ba758
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMapIterators.h
@@ -0,0 +1,542 @@
+//
+// Filename : ViewMapIterators.h
+// Author(s) : Stephane Grabli
+// Purpose : Iterators used to iterate over the various elements
+// of the ViewMap
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VIEWMAPITERATORS_H
+# define VIEWMAPITERATORS_H
+
+#include "ViewMap.h"
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewMap */
+ /* */
+ /* */
+ /**********************************/
+
+ /**********************************/
+ /* */
+ /* */
+ /* ViewVertex */
+ /* */
+ /* */
+ /**********************************/
+
+namespace ViewVertexInternal{
+
+ /*! Class representing an iterator over oriented ViewEdges
+ * around a ViewVertex. This iterator allows a CCW iteration
+ * (in the image plane).
+ * An instance of an orientedViewEdgeIterator can only
+ * be obtained from a ViewVertex by calling edgesBegin() or edgesEnd().
+ */
+ class orientedViewEdgeIterator
+ {
+ public:
+ friend class ViewVertex;
+ friend class TVertex;
+ friend class NonTVertex;
+ friend class ViewEdge;
+
+ // FIXME
+ typedef ::TVertex::edge_pointers_container edge_pointers_container;
+ typedef ::NonTVertex::edges_container edges_container;
+ protected:
+
+ Nature::VertexNature _Nature; // the nature of the underlying vertex
+ // T vertex attributes
+ edge_pointers_container::iterator _tbegin;
+ edge_pointers_container::iterator _tend;
+ edge_pointers_container::iterator _tvertex_iter;
+
+ // Non TVertex attributes
+ edges_container::iterator _begin;
+ edges_container::iterator _end;
+ edges_container::iterator _nontvertex_iter;
+
+ public:
+ /*! Default constructor */
+ inline orientedViewEdgeIterator() {}
+ inline orientedViewEdgeIterator(Nature::VertexNature iNature)
+ {_Nature = iNature;}
+ /*! Copy constructor */
+ orientedViewEdgeIterator(const orientedViewEdgeIterator& iBrother)
+ {
+ _Nature = iBrother._Nature;
+ if(_Nature & Nature::T_VERTEX)
+ {
+ _tbegin = iBrother._tbegin;
+ _tend = iBrother._tend;
+ _tvertex_iter = iBrother._tvertex_iter;
+ }
+ else
+ {
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ _nontvertex_iter = iBrother._nontvertex_iter;
+ }
+ }
+ virtual ~orientedViewEdgeIterator() {}
+
+ public:
+ inline orientedViewEdgeIterator(edge_pointers_container::iterator begin,
+ edge_pointers_container::iterator end,
+ edge_pointers_container::iterator iter)
+ {
+ _Nature = Nature::T_VERTEX;
+ _tbegin = begin;
+ _tend = end;
+ _tvertex_iter = iter;
+ }
+ inline orientedViewEdgeIterator(edges_container::iterator begin,
+ edges_container::iterator end,
+ edges_container::iterator iter)
+ {
+ _Nature = Nature::NON_T_VERTEX;
+ _begin = begin;
+ _end = end;
+ _nontvertex_iter = iter;
+ }
+
+ public:
+
+
+ /*! Tells whether the ViewEdge pointed
+ * by this iterator is the first one of the
+ * iteration list or not.
+ */
+ virtual bool isBegin() const
+ {
+ if(_Nature & Nature::T_VERTEX)
+ return (_tvertex_iter == _tbegin);
+ else
+ return (_nontvertex_iter == _begin);
+ }
+ /*! Tells whether the ViewEdge pointed
+ * by this iterator is after the last one of the
+ * iteration list or not.
+ */
+ virtual bool isEnd() const
+ {
+ if(_Nature & Nature::T_VERTEX)
+ return (_tvertex_iter == _tend);
+ else
+ return (_nontvertex_iter == _end);
+ }
+
+ // operators
+ /*! Increments.In the scripting language, call
+ * "increment()".
+ */
+ virtual orientedViewEdgeIterator& operator++() // operator corresponding to ++i
+ {
+ increment();
+ return *this;
+ }
+ /*! Increments.In the scripting language, call
+ * "increment()".
+ */
+ virtual orientedViewEdgeIterator operator++(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ orientedViewEdgeIterator tmp = *this; // C'est pour cela qu'on stocke la valeur
+ increment(); // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ /*! operator != */
+ virtual bool operator!=(const orientedViewEdgeIterator& b) const
+ {
+ if(_Nature & Nature::T_VERTEX)
+ return (_tvertex_iter != b._tvertex_iter);
+ else
+ return (_nontvertex_iter != b._nontvertex_iter);
+ }
+
+ /*! operator == */
+ virtual bool operator==(const orientedViewEdgeIterator& b) const
+ {return !(*this != b);}
+
+ // dereferencing
+ /*! Returns a reference to the pointed orientedViewEdge.
+ * In the scripting language, you must call
+ * "getObject()"instead.
+ */
+ virtual ::ViewVertex::directedViewEdge& operator*() const
+ {
+ if(_Nature & Nature::T_VERTEX)
+ //return _tvertex_iter;
+ return **_tvertex_iter;
+ else
+ return (*_nontvertex_iter);
+ }
+ /*! Returns a pointer to the pointed orientedViewEdge.
+ * Can't be called in the scripting language.
+ */
+ virtual ::ViewVertex::directedViewEdge* operator->() const { return &(operator*());}
+
+ public:
+ /*! increments.*/
+ inline void increment()
+ {
+ if(_Nature & Nature::T_VERTEX)
+ {
+ ::ViewVertex::directedViewEdge tmp = (**_tvertex_iter);
+ ++_tvertex_iter;
+ if(_tvertex_iter != _tend){
+ // FIXME : pquoi deja ?
+ ::ViewVertex::directedViewEdge tmp2 = (**_tvertex_iter);
+ if(tmp2.first == tmp.first)
+ ++_tvertex_iter;
+ }
+ }
+ else
+ ++_nontvertex_iter;
+ }
+ };
+
+ }
+ /**********************************/
+ /* */
+ /* */
+ /* ViewEdge */
+ /* */
+ /* */
+ /**********************************/
+
+namespace ViewEdgeInternal {
+//
+// SVertexIterator
+//
+/////////////////////////////////////////////////
+
+ class SVertexIterator : public Interface0DIteratorNested
+ {
+ public:
+
+ SVertexIterator() {
+ _vertex = NULL;
+ _begin = NULL;
+ _previous_edge = NULL;
+ _next_edge = NULL;
+ _t = 0;
+ }
+
+ SVertexIterator(const SVertexIterator& vi) {
+ _vertex = vi._vertex;
+ _begin = vi._begin;
+ _previous_edge = vi._previous_edge;
+ _next_edge = vi._next_edge;
+ _t = vi._t;
+ }
+
+ SVertexIterator(SVertex* v, SVertex* begin, FEdge* prev, FEdge* next, float t) {
+ _vertex = v;
+ _begin = begin;
+ _previous_edge = prev;
+ _next_edge = next;
+ _t = t;
+ }
+
+ SVertexIterator& operator=(const SVertexIterator& vi) {
+ _vertex = vi._vertex;
+ _begin = vi._begin;
+ _previous_edge = vi._previous_edge;
+ _next_edge = vi._next_edge;
+ _t = vi._t;
+ return *this;
+ }
+
+ virtual ~SVertexIterator() {}
+
+ virtual string getExactTypeName() const {
+ return "SVertexIterator";
+ }
+
+ virtual SVertex& operator*() {
+ return *_vertex;
+ }
+
+ virtual SVertex* operator->() {
+ return &(operator*());
+ }
+
+ virtual SVertexIterator& operator++() {
+ increment();
+ return *this;
+ }
+
+ virtual SVertexIterator operator++(int) {
+ SVertexIterator ret(*this);
+ increment();
+ return ret;
+ }
+
+ virtual SVertexIterator& operator--() {
+ decrement();
+ return *this;
+ }
+
+ virtual SVertexIterator operator--(int) {
+ SVertexIterator ret(*this);
+ decrement();
+ return ret;
+ }
+
+ virtual void increment(){
+ if (!_next_edge) {
+ _vertex = 0;
+ return;
+ }
+ _t += (float)_next_edge->getLength2D();
+ _vertex = _next_edge->vertexB();
+ _previous_edge = _next_edge;
+ _next_edge = _next_edge->nextEdge();
+
+ }
+ virtual void decrement(){
+ if (!_previous_edge) {
+ _vertex = 0;
+ return;
+ }
+ if((!_next_edge) && (!_vertex)){
+ _vertex = _previous_edge->vertexB();
+ return;
+ }
+ _t -= (float)_previous_edge->getLength2D();
+ _vertex = _previous_edge->vertexA();
+ _next_edge = _previous_edge;
+ _previous_edge = _previous_edge->previousEdge();
+ }
+
+ bool isBegin() const {
+ return _vertex == _begin;
+ }
+
+ bool isEnd() const {
+ return (!_vertex) || (_vertex == _begin && _previous_edge);
+ }
+
+ virtual float t() const {
+ return _t;
+ }
+ virtual float u() const {
+ return _t/(float)_next_edge->viewedge()->getLength2D();
+ }
+
+ virtual bool operator==(const Interface0DIteratorNested& it) const {
+ const SVertexIterator* it_exact = dynamic_cast<const SVertexIterator*>(&it);
+ if (!it_exact)
+ return false;
+ return (_vertex == it_exact->_vertex);
+ }
+
+ virtual SVertexIterator* copy() const {
+ return new SVertexIterator(*this);
+ }
+
+ private:
+
+ SVertex* _vertex;
+ SVertex* _begin;
+ FEdge* _previous_edge;
+ FEdge* _next_edge;
+ float _t; // curvilinear abscissa
+ };
+
+
+
+//
+// ViewEdgeIterator (base class)
+//
+///////////////////////////////////////////////////////////
+
+ /*! Base class for iterators over ViewEdges of the ViewMap Graph.
+ * Basically the "increment()" operator of this class should
+ * be able to take the decision of "where" (on which ViewEdge) to go
+ * when pointing on a given ViewEdge.
+ * ::Caution::: the dereferencing operator returns a *pointer* to
+ * the pointed ViewEdge.
+ */
+class ViewEdgeIterator
+{
+public:
+
+ /*! Builds a ViewEdgeIterator from a starting ViewEdge and its orientation.
+ * \param begin
+ * The ViewEdge from where to start the iteration.
+ * \param orientation
+ * If true, we'll look for the next ViewEdge among the
+ * ViewEdges that surround the ending ViewVertex of begin.
+ * If false, we'll search over the ViewEdges surrounding
+ * the ending ViewVertex of begin.
+ */
+ ViewEdgeIterator(ViewEdge* begin = 0, bool orientation = true) {
+ _orientation = orientation;
+ _edge = begin;
+ _begin = begin;
+ }
+
+ /*! Copy constructor */
+ ViewEdgeIterator(const ViewEdgeIterator& it) {
+ _orientation = it._orientation;
+ _edge = it._edge;
+ _begin = it._begin;
+ }
+
+ virtual ~ViewEdgeIterator() {}
+
+ /*! Returns the string "ViewEdgeIterator" */
+ virtual string getExactTypeName() const {
+ return "ViewEdgeIterator";
+ }
+
+ /*! Returns the current pointed ViewEdge. */
+ ViewEdge* getCurrentEdge() {
+ return _edge;
+ }
+
+ /*! Sets the current pointed ViewEdge. */
+ void setCurrentEdge(ViewEdge* edge) {
+ _edge = edge;
+ }
+
+ /*! Returns the first ViewEdge used for the iteration. */
+ ViewEdge* getBegin() {
+ return _begin;
+ }
+
+ /*! Sets the first ViewEdge used for the iteration. */
+ void setBegin(ViewEdge* begin) {
+ _begin = begin;
+ }
+
+ /*! Gets the orientation of the pointed ViewEdge in the iteration. */
+ bool getOrientation() const {
+ return _orientation;
+ }
+
+ /*! Sets the orientation of the pointed ViewEdge in the iteration. */
+ void setOrientation(bool orientation) {
+ _orientation = orientation;
+ }
+
+ /*! Changes the current orientation. */
+ void changeOrientation() {
+ _orientation = !_orientation;
+ }
+
+ /*! Returns a *pointer* to the pointed ViewEdge. */
+ virtual ViewEdge* operator*() {
+ return _edge;
+ }
+
+ virtual ViewEdge* operator->() {
+ return operator*();
+ }
+
+ /*! Increments. In the scripting language, call
+ * "increment()".
+ */
+ virtual ViewEdgeIterator& operator++() {
+ increment();
+ return *this;
+ }
+
+ /*! Increments. In the scripting language, call
+ * "increment()".
+ */
+ virtual ViewEdgeIterator operator++(int) {
+ ViewEdgeIterator tmp(*this);
+ increment();
+ return tmp;
+ }
+
+ /*! increments. */
+ virtual void increment() {
+ cerr << "Warning: method increment() not implemented" << endl;
+ }
+
+ /*! Decrements. In the scripting language, call
+ * "decrement()".
+ */
+ virtual ViewEdgeIterator& operator--() {
+ decrement();
+ return *this;
+ }
+
+ /*! Decrements. In the scripting language, call
+ * "decrement()".
+ */
+ virtual ViewEdgeIterator operator--(int) {
+ ViewEdgeIterator tmp(*this);
+ decrement();
+ return tmp;
+ }
+
+ /*! decrements. */
+ virtual void decrement(){
+ cerr << "Warning: method decrement() not implemented" << endl;
+ }
+
+ /*! Returns true if the pointed ViewEdge is the
+ * first one used for the iteration.
+ */
+ virtual bool isBegin() const {
+ return _edge == _begin;
+ }
+
+ /*! Returns true if the pointed ViewEdge* equals 0.
+ */
+ virtual bool isEnd() const {
+ return !_edge;
+ }
+
+ /*! operator == */
+ virtual bool operator==(ViewEdgeIterator& it) const {
+ return _edge == it._edge;
+ }
+
+ /*! operator != */
+ virtual bool operator!=(ViewEdgeIterator& it) const {
+ return !(*this == it);
+ }
+
+protected:
+
+ bool _orientation;
+ ViewEdge* _edge;
+ ViewEdge* _begin;
+};
+
+} // end of namespace ViewEdgeInternal
+
+#endif // VIEWMAPITERATORS_H
+
diff --git a/source/blender/freestyle/intern/view_map/ViewMapTesselator.cpp b/source/blender/freestyle/intern/view_map/ViewMapTesselator.cpp
new file mode 100755
index 00000000000..6041f527d17
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMapTesselator.cpp
@@ -0,0 +1,36 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "ViewMapTesselator.h"
+
+NodeGroup* ViewMapTesselator::Tesselate(ViewMap *iViewMap)
+{
+ if(0 == iViewMap->ViewEdges().size())
+ return NULL;
+
+ const vector<ViewEdge*>& viewedges = iViewMap->ViewEdges();
+ return Tesselate(viewedges.begin(), viewedges.end());
+}
+
+NodeGroup* ViewMapTesselator::Tesselate(WShape *)
+{
+ return NULL;
+}
diff --git a/source/blender/freestyle/intern/view_map/ViewMapTesselator.h b/source/blender/freestyle/intern/view_map/ViewMapTesselator.h
new file mode 100755
index 00000000000..fc1ec8e373e
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/ViewMapTesselator.h
@@ -0,0 +1,196 @@
+//
+// Filename : ViewMapTesselator.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to build a Node Tree designed to be displayed
+// from a Silhouette View Map structure.
+// Date of creation : 26/03/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef VIEWMAPTESSELATOR_H
+# define VIEWMAPTESSELATOR_H
+
+# include "../scene_graph/NodeShape.h"
+# include "../winged_edge/WEdge.h"
+# include "Silhouette.h"
+# include "ViewMap.h"
+# include "../scene_graph/NodeGroup.h"
+# include "../scene_graph/LineRep.h"
+# include "../scene_graph/OrientedLineRep.h"
+# include "../scene_graph/VertexRep.h"
+
+class NodeShape;
+class NodeGroup;
+class SShape;
+class WShape;
+
+class LIB_VIEW_MAP_EXPORT ViewMapTesselator
+{
+public:
+
+ inline ViewMapTesselator() {_nature = Nature::SILHOUETTE | Nature::BORDER | Nature::CREASE;_Material.SetDiffuse(0,0,0,1);_overloadMaterial=false;}
+ virtual ~ViewMapTesselator() {}
+
+ /*! Builds a set of lines rep contained under a
+ * a NodeShape, itself contained under a NodeGroup from a ViewMap
+ */
+ NodeGroup* Tesselate(ViewMap* iViewMap) ;
+
+ /*! Builds a set of lines rep contained under a
+ * a NodeShape, itself contained under a NodeGroup from a
+ * set of view edges
+ */
+ template<class ViewEdgesIterator>
+ NodeGroup* Tesselate(ViewEdgesIterator begin, ViewEdgesIterator end) ;
+
+ /*! Builds a set of lines rep contained among a
+ * a NodeShape, from a WShape
+ */
+ NodeGroup* Tesselate(WShape* iWShape);
+
+
+ inline void SetNature(Nature::EdgeNature iNature) {_nature = iNature;}
+ inline void SetMaterial(const Material& iMaterial) {_Material=iMaterial;_overloadMaterial=true;}
+ inline Nature::EdgeNature nature() {return _nature;}
+ inline const Material& material() const {return _Material;}
+
+protected:
+ virtual void AddVertexToLine(LineRep *iLine, SVertex *v) = 0;
+
+private:
+ Nature::EdgeNature _nature;
+ Material _Material;
+ bool _overloadMaterial;
+};
+
+/*! Class to tesselate the 2D projected silhouette */
+class ViewMapTesselator2D : public ViewMapTesselator
+{
+public:
+ inline ViewMapTesselator2D() : ViewMapTesselator() {}
+ virtual ~ViewMapTesselator2D() {}
+
+protected:
+ virtual void AddVertexToLine(LineRep *iLine, SVertex *v)
+ {
+ iLine->AddVertex(v->point2D());
+ }
+};
+
+/*! Class to tesselate the 3D silhouette */
+class ViewMapTesselator3D : public ViewMapTesselator
+{
+public:
+ inline ViewMapTesselator3D() : ViewMapTesselator() {}
+ virtual ~ViewMapTesselator3D() {}
+
+protected:
+ virtual void AddVertexToLine(LineRep *iLine, SVertex *v)
+ {
+ iLine->AddVertex(v->point3D());
+ }
+};
+
+//
+// Implementation
+//
+///////////////////////////////////////////////
+
+template<class ViewEdgesIterator>
+NodeGroup * ViewMapTesselator::Tesselate(ViewEdgesIterator begin, ViewEdgesIterator end)
+{
+ NodeGroup *group = new NodeGroup;
+ NodeShape *tshape = new NodeShape;
+ group->AddChild(tshape);
+ //tshape->material().SetDiffuse(0.f, 0.f, 0.f, 1.f);
+ tshape->SetMaterial(_Material);
+
+ LineRep* line;
+
+
+ FEdge *firstEdge;
+ FEdge *nextFEdge, *currentEdge;
+
+ int id=0;
+ // for(vector<ViewEdge*>::const_iterator c=viewedges.begin(),cend=viewedges.end();
+ // c!=cend;
+ // c++)
+ for(ViewEdgesIterator c=begin, cend=end;
+ c!=cend;
+ c++)
+ {
+ // if((*c)->qi() > 0){
+ // continue;
+ // }
+ // if(!((*c)->nature() & (_nature)))
+ // continue;
+ //
+ firstEdge = (*c)->fedgeA();
+
+ // if(firstEdge->invisibility() > 0)
+ // continue;
+
+ line = new OrientedLineRep();
+ if(_overloadMaterial)
+ line->SetMaterial(_Material);
+
+ // there might be chains containing a single element
+ if(0 == (firstEdge)->nextEdge())
+ {
+ line->SetStyle(LineRep::LINES);
+ // line->AddVertex((*c)->vertexA()->point3D());
+ // line->AddVertex((*c)->vertexB()->point3D());
+ AddVertexToLine(line, firstEdge->vertexA());
+ AddVertexToLine(line, firstEdge->vertexB());
+ }
+ else
+ {
+ line->SetStyle(LineRep::LINE_STRIP);
+
+ //firstEdge = (*c);
+ nextFEdge = firstEdge;
+ currentEdge = firstEdge;
+ do
+ {
+ //line->AddVertex(nextFEdge->vertexA()->point3D());
+ AddVertexToLine(line, nextFEdge->vertexA());
+ currentEdge = nextFEdge;
+ nextFEdge = nextFEdge->nextEdge();
+ }while((nextFEdge != NULL) && (nextFEdge != firstEdge));
+ // Add the last vertex
+ //line->AddVertex(currentEdge->vertexB()->point3D());
+ AddVertexToLine(line, currentEdge->vertexB());
+
+ }
+
+ line->SetId((*c)->getId().getFirst());
+ line->ComputeBBox();
+ tshape->AddRep(line);
+ id++;
+ }
+
+ return group;
+}
+
+#endif // VIEWMAPTESSELATOR_H
diff --git a/source/blender/freestyle/intern/view_map/src.pri b/source/blender/freestyle/intern/view_map/src.pri
new file mode 100755
index 00000000000..2faf6a81fea
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/src.pri
@@ -0,0 +1,34 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+VIEW_MAP_DIR = ../view_map
+
+SOURCES *= $${VIEW_MAP_DIR}/Functions0D.cpp \
+ $${VIEW_MAP_DIR}/Functions1D.cpp \
+ $${VIEW_MAP_DIR}/Silhouette.cpp \
+ $${VIEW_MAP_DIR}/SilhouetteGeomEngine.cpp \
+ $${VIEW_MAP_DIR}/ViewMap.cpp \
+ $${VIEW_MAP_DIR}/ViewMapBuilder.cpp \
+ $${VIEW_MAP_DIR}/ViewMapIO.cpp \
+ $${VIEW_MAP_DIR}/ViewMapTesselator.cpp \
+ $${VIEW_MAP_DIR}/FEdgeXDetector.cpp \
+ $${VIEW_MAP_DIR}/ViewEdgeXBuilder.cpp \
+ $${VIEW_MAP_DIR}/SteerableViewMap.cpp
+
+HEADERS *= $${VIEW_MAP_DIR}/Functions0D.h \
+ $${VIEW_MAP_DIR}/Functions1D.h \
+ $${VIEW_MAP_DIR}/Interface0D.h \
+ $${VIEW_MAP_DIR}/Interface1D.h \
+ $${VIEW_MAP_DIR}/Silhouette.h \
+ $${VIEW_MAP_DIR}/SilhouetteGeomEngine.h \
+ $${VIEW_MAP_DIR}/ViewMap.h \
+ $${VIEW_MAP_DIR}/ViewMapAdvancedIterators.h \
+ $${VIEW_MAP_DIR}/ViewMapBuilder.h \
+ $${VIEW_MAP_DIR}/ViewMapIO.h \
+ $${VIEW_MAP_DIR}/ViewMapIterators.h \
+ $${VIEW_MAP_DIR}/ViewMapTesselator.h \
+ $${VIEW_MAP_DIR}/FEdgeXDetector.h \
+ $${VIEW_MAP_DIR}/ViewEdgeXBuilder.h \
+ $${VIEW_MAP_DIR}/SteerableViewMap.h
diff --git a/source/blender/freestyle/intern/view_map/view_map.pro b/source/blender/freestyle/intern/view_map/view_map.pro
new file mode 100755
index 00000000000..ef629bcf6a7
--- /dev/null
+++ b/source/blender/freestyle/intern/view_map/view_map.pro
@@ -0,0 +1,89 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+TEMPLATE = lib
+
+TARGET = $${LIB_VIEW_MAP}
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= dll
+
+#
+# DEFINES
+#
+#######################################
+
+win32:DEFINES *= MAKE_LIB_VIEW_MAP_DLL
+
+#
+# INCLUDE PATH
+#
+#######################################
+
+#INCLUDEPATH *= ../geometry ../image ../scene_graph ../system ../winged_edge
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+!win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}/lib
+win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+
+#
+# LIBS
+#
+#######################################
+
+win32:LIBS *= $${DESTDIR}/$${LIB_GEOMETRY}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_IMAGE}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SCENE_GRAPH}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SYSTEM}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_WINGED_EDGE}$${LIBVERSION}.lib
+
+!win32 {
+ lib_bundle {
+ LIBS += -F$${DESTDIR} -framework $${LIB_GEOMETRY} \
+ -framework $${LIB_IMAGE} -framework $${LIB_SCENE_GRAPH} \
+ -framework $${LIB_SYSTEM} -framework $${LIB_WINGED_EDGE}
+ } else {
+ LIBS *= -L$${DESTDIR} -l$${LIB_GEOMETRY} -l$${LIB_IMAGE} -l$${LIB_SCENE_GRAPH} \
+ -l$${LIB_SYSTEM} -l$${LIB_WINGED_EDGE}
+ }
+}
+
+
+#
+# INSTALL
+#
+#######################################
+
+LIB_DIR = ../../lib
+# install library
+target.path = $$LIB_DIR
+# "make install" configuration options
+INSTALLS += target
+
+#
+# SOURCES & HEADERS
+#
+#######################################
+
+!static {
+ include(src.pri)
+}
diff --git a/source/blender/freestyle/intern/winged_edge/Curvature.cpp b/source/blender/freestyle/intern/winged_edge/Curvature.cpp
new file mode 100755
index 00000000000..a890fb92c04
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/Curvature.cpp
@@ -0,0 +1,647 @@
+/* GTS - Library for the manipulation of triangulated surfaces
+ * Copyright (C) 1999-2002 Ray Jones, Stéphane Popinet
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "Curvature.h"
+#include <math.h>
+#include "WEdge.h"
+#include "../system/FreestyleConfig.h"
+#include "../geometry/normal_cycle.h"
+#include <set>
+#include <stack>
+
+static bool angle_obtuse (WVertex * v, WFace * f)
+{
+ WOEdge * e;
+ f->getOppositeEdge (v, e);
+
+ Vec3r vec1(e->GetaVertex()->GetVertex()-v->GetVertex());
+ Vec3r vec2(e->GetbVertex()->GetVertex()-v->GetVertex());
+ return ((vec1 * vec2) < 0);
+}
+
+// FIXME
+// WVvertex is useless but kept for history reasons
+static bool triangle_obtuse (WVertex*, WFace * f)
+{
+ bool b=false;
+ for (int i=0; i<3; i++)
+ b = b ||
+ ((f->GetEdgeList()[i]->getVec3r() * f->GetEdgeList()[(i+1)%3]->getVec3r()) < 0);
+ return b;
+}
+
+static real cotan (WVertex * vo, WVertex * v1, WVertex * v2)
+{
+ /* cf. Appendix B of [Meyer et al 2002] */
+ real udotv, denom;
+
+ Vec3r u(v1->GetVertex()- vo->GetVertex());
+ Vec3r v(v2->GetVertex()- vo->GetVertex());
+
+ udotv = u * v;
+ denom = sqrt(u.squareNorm() * v.squareNorm() - udotv * udotv);
+
+ /* denom can be zero if u==v. Returning 0 is acceptable, based on
+ * the callers of this function below. */
+ if (denom == 0.0) return (0.0);
+
+ return (udotv / denom);
+}
+
+static real angle_from_cotan (WVertex * vo, WVertex * v1, WVertex * v2)
+{
+ /* cf. Appendix B and the caption of Table 1 from [Meyer et al 2002] */
+ real udotv, denom;
+
+ Vec3r u (v1->GetVertex()-vo->GetVertex());
+ Vec3r v(v2->GetVertex()-vo->GetVertex());
+
+ udotv = u * v;
+ denom = sqrt(u.squareNorm() * v.squareNorm() - udotv * udotv);
+
+ /* Note: I assume this is what they mean by using atan2 (). -Ray Jones */
+
+ /* tan = denom/udotv = y/x (see man page for atan2) */
+ return (fabs (atan2 (denom, udotv)));
+}
+
+/**
+ * gts_vertex_mean_curvature_normal:
+ * @v: a #WVertex.
+ * @s: a #GtsSurface.
+ * @Kh: the Mean Curvature Normal at @v.
+ *
+ * Computes the Discrete Mean Curvature Normal approximation at @v.
+ * The mean curvature at @v is half the magnitude of the vector @Kh.
+ *
+ * Note: the normal computed is not unit length, and may point either
+ * into or out of the surface, depending on the curvature at @v. It
+ * is the responsibility of the caller of the function to use the mean
+ * curvature normal appropriately.
+ *
+ * This approximation is from the paper:
+ * Discrete Differential-Geometry Operators for Triangulated 2-Manifolds
+ * Mark Meyer, Mathieu Desbrun, Peter Schroder, Alan H. Barr
+ * VisMath '02, Berlin (Germany)
+ * http://www-grail.usc.edu/pubs.html
+ *
+ * Returns: %TRUE if the operator could be evaluated, %FALSE if the
+ * evaluation failed for some reason (@v is boundary or is the
+ * endpoint of a non-manifold edge.)
+ */
+bool gts_vertex_mean_curvature_normal (WVertex * v, Vec3r &Kh)
+{
+ real area = 0.0;
+
+ if (!v) return false;
+
+ /* this operator is not defined for boundary edges */
+ if (v->isBoundary()) return false;
+
+ WVertex::incoming_edge_iterator itE;
+
+ for (itE=v->incoming_edges_begin();
+ itE!=v->incoming_edges_end(); itE++)
+ area+=(*itE)->GetaFace()->getArea();
+
+ Kh=Vec3r(0.0, 0.0, 0.0);
+
+ for (itE=v->incoming_edges_begin();
+ itE!=v->incoming_edges_end(); itE++)
+ {
+ WOEdge * e = (*itE)->getPrevOnFace();
+ //if ((e->GetaVertex()==v) || (e->GetbVertex()==v)) cerr<< "BUG ";
+
+ WVertex * v1 = e->GetaVertex();
+ WVertex * v2 = e->GetbVertex();
+ real temp;
+
+ temp = cotan (v1, v, v2);
+ Kh = Vec3r(Kh+temp*(v2->GetVertex()-v->GetVertex()));
+
+ temp = cotan (v2, v, v1);
+ Kh = Vec3r(Kh+temp*(v1->GetVertex()-v->GetVertex()));
+ }
+ if (area > 0.0)
+ {
+ Kh[0] /= 2*area;
+ Kh[1] /= 2*area;
+ Kh[2] /= 2*area;
+ }
+ else return false;
+
+ return true;
+}
+
+/**
+ * gts_vertex_gaussian_curvature:
+ * @v: a #WVertex.
+ * @s: a #GtsSurface.
+ * @Kg: the Discrete Gaussian Curvature approximation at @v.
+ *
+ * Computes the Discrete Gaussian Curvature approximation at @v.
+ *
+ * This approximation is from the paper:
+ * Discrete Differential-Geometry Operators for Triangulated 2-Manifolds
+ * Mark Meyer, Mathieu Desbrun, Peter Schroder, Alan H. Barr
+ * VisMath '02, Berlin (Germany)
+ * http://www-grail.usc.edu/pubs.html
+ *
+ * Returns: %TRUE if the operator could be evaluated, %FALSE if the
+ * evaluation failed for some reason (@v is boundary or is the
+ * endpoint of a non-manifold edge.)
+ */
+bool gts_vertex_gaussian_curvature (WVertex * v, real * Kg)
+{
+ real area = 0.0;
+ real angle_sum = 0.0;
+
+ if (!v) return false;
+ if (!Kg) return false;
+
+ /* this operator is not defined for boundary edges */
+ if (v->isBoundary()) {*Kg=0.0 ;return false;}
+
+ WVertex::incoming_edge_iterator itE;
+ for (itE=v->incoming_edges_begin();
+ itE!=v->incoming_edges_end(); itE++)
+ area+=(*itE)->GetaFace()->getArea();
+
+ for (itE=v->incoming_edges_begin();
+ itE!=v->incoming_edges_end(); itE++)
+ {
+ WOEdge * e = (*itE)->getPrevOnFace();
+ WVertex * v1 = e->GetaVertex();
+ WVertex * v2 = e->GetbVertex();
+ angle_sum += angle_from_cotan (v, v1, v2);
+ }
+
+ *Kg = (2.0*M_PI - angle_sum)/area;
+
+ return true;
+}
+
+/**
+ * gts_vertex_principal_curvatures:
+ * @Kh: mean curvature.
+ * @Kg: Gaussian curvature.
+ * @K1: first principal curvature.
+ * @K2: second principal curvature.
+ *
+ * Computes the principal curvatures at a point given the mean and
+ * Gaussian curvatures at that point.
+ *
+ * The mean curvature can be computed as one-half the magnitude of the
+ * vector computed by gts_vertex_mean_curvature_normal().
+ *
+ * The Gaussian curvature can be computed with
+ * gts_vertex_gaussian_curvature().
+ */
+void gts_vertex_principal_curvatures (real Kh, real Kg,
+ real * K1, real * K2)
+{
+ real temp = Kh*Kh - Kg;
+
+ if (!K1) return;
+ if (!K1) return;
+
+ if (temp < 0.0) temp = 0.0;
+ temp = sqrt (temp);
+ *K1 = Kh + temp;
+ *K2 = Kh - temp;
+}
+
+/* from Maple */
+static void linsolve (real m11, real m12, real b1,
+ real m21, real m22, real b2,
+ real * x1, real * x2)
+{
+ real temp;
+
+ temp = 1.0 / (m21*m12 - m11*m22);
+ *x1 = (m12*b2 - m22*b1)*temp;
+ *x2 = (m11*b2 - m21*b1)*temp;
+}
+
+/* from Maple - largest eigenvector of [a b; b c] */
+static void eigenvector (real a, real b, real c,
+ Vec3r e)
+{
+ if (b == 0.0) {
+ e[0] = 0.0;
+ } else {
+ e[0] = -(c - a - sqrt (c*c - 2*a*c + a*a + 4*b*b))/(2*b);
+ }
+ e[1] = 1.0;
+ e[2] = 0.0;
+}
+
+/**
+ * gts_vertex_principal_directions:
+ * @v: a #WVertex.
+ * @s: a #GtsSurface.
+ * @Kh: mean curvature normal (a #Vec3r).
+ * @Kg: Gaussian curvature (a real).
+ * @e1: first principal curvature direction (direction of largest curvature).
+ * @e2: second principal curvature direction.
+ *
+ * Computes the principal curvature directions at a point given @Kh
+ * and @Kg, the mean curvature normal and Gaussian curvatures at that
+ * point, computed with gts_vertex_mean_curvature_normal() and
+ * gts_vertex_gaussian_curvature(), respectively.
+ *
+ * Note that this computation is very approximate and tends to be
+ * unstable. Smoothing of the surface or the principal directions may
+ * be necessary to achieve reasonable results.
+ */
+void gts_vertex_principal_directions (WVertex * v,
+ Vec3r Kh, real Kg,
+ Vec3r &e1, Vec3r &e2)
+{
+ Vec3r N;
+ real normKh;
+
+ Vec3r basis1, basis2, d, eig;
+ real ve2, vdotN;
+ real aterm_da, bterm_da, cterm_da, const_da;
+ real aterm_db, bterm_db, cterm_db, const_db;
+ real a, b, c;
+ real K1, K2;
+ real *weights, *kappas, *d1s, *d2s;
+ int edge_count;
+ real err_e1, err_e2;
+ int e;
+ WVertex::incoming_edge_iterator itE;
+
+ /* compute unit normal */
+ normKh = Kh.norm();
+
+ if (normKh > 0.0) {
+ Kh.normalize();
+ } else {
+ /* This vertex is a point of zero mean curvature (flat or saddle
+ * point). Compute a normal by averaging the adjacent triangles
+ */
+ N[0] = N[1] = N[2] = 0.0;
+
+ for (itE=v->incoming_edges_begin();
+ itE!=v->incoming_edges_end(); itE++)
+ N=Vec3r(N+(*itE)->GetaFace()->GetNormal());
+ real normN = N.norm();
+ if (normN <= 0.0)
+ return;
+ N.normalize();
+ }
+
+
+ /* construct a basis from N: */
+ /* set basis1 to any component not the largest of N */
+ basis1[0] = basis1[1] = basis1[2] = 0.0;
+ if (fabs (N[0]) > fabs (N[1]))
+ basis1[1] = 1.0;
+ else
+ basis1[0] = 1.0;
+
+ /* make basis2 orthogonal to N */
+ basis2 = (N ^ basis1);
+ basis2.normalize();
+
+ /* make basis1 orthogonal to N and basis2 */
+ basis1 = (N ^ basis2);
+ basis1.normalize();
+
+ aterm_da = bterm_da = cterm_da = const_da = 0.0;
+ aterm_db = bterm_db = cterm_db = const_db = 0.0;
+ int nb_edges=v->GetEdges().size();
+
+ weights = (real *) malloc (sizeof (real)*nb_edges);
+ kappas = (real*) malloc (sizeof (real)*nb_edges);
+ d1s = (real*) malloc (sizeof (real)*nb_edges);
+ d2s = (real*) malloc (sizeof (real)*nb_edges);
+ edge_count = 0;
+
+ for (itE=v->incoming_edges_begin();
+ itE!=v->incoming_edges_end(); itE++)
+ {
+ WOEdge * e;
+ WFace * f1, * f2;
+ real weight, kappa, d1, d2;
+ Vec3r vec_edge;
+ if (! *itE) continue;
+ e = *itE;
+
+ /* since this vertex passed the tests in
+ * gts_vertex_mean_curvature_normal(), this should be true. */
+ //g_assert (gts_edge_face_number (e, s) == 2);
+
+ /* identify the two triangles bordering e in s */
+ f1=e->GetaFace();
+ f2=e->GetbFace();
+
+ /* We are solving for the values of the curvature tensor
+ * B = [ a b ; b c ].
+ * The computations here are from section 5 of [Meyer et al 2002].
+ *
+ * The first step is to calculate the linear equations governing
+ * the values of (a,b,c). These can be computed by setting the
+ * derivatives of the error E to zero (section 5.3).
+ *
+ * Since a + c = norm(Kh), we only compute the linear equations
+ * for dE/da and dE/db. (NB: [Meyer et al 2002] has the
+ * equation a + b = norm(Kh), but I'm almost positive this is
+ * incorrect.)
+ *
+ * Note that the w_ij (defined in section 5.2) are all scaled by
+ * (1/8*A_mixed). We drop this uniform scale factor because the
+ * solution of the linear equations doesn't rely on it.
+ *
+ * The terms of the linear equations are xterm_dy with x in
+ * {a,b,c} and y in {a,b}. There are also const_dy terms that are
+ * the constant factors in the equations.
+ */
+
+ /* find the vector from v along edge e */
+ vec_edge=Vec3r(-1*e->getVec3r());
+
+ ve2 = vec_edge.squareNorm();
+ vdotN = vec_edge * N;
+
+ /* section 5.2 - There is a typo in the computation of kappa. The
+ * edges should be x_j-x_i.
+ */
+ kappa = 2.0 * vdotN / ve2;
+
+ /* section 5.2 */
+
+ /* I don't like performing a minimization where some of the
+ * weights can be negative (as can be the case if f1 or f2 are
+ * obtuse). To ensure all-positive weights, we check for
+ * obtuseness. */
+ weight = 0.0;
+ if (! triangle_obtuse(v, f1)) {
+ weight += ve2 *
+ cotan (f1->GetNextOEdge(e->twin())->GetbVertex(),
+ e->GetaVertex(), e->GetbVertex()) / 8.0;
+ } else {
+ if (angle_obtuse (v, f1)) {
+ weight += ve2 * f1->getArea() / 4.0;
+ } else {
+ weight += ve2 * f1->getArea() / 8.0;
+ }
+ }
+
+ if (! triangle_obtuse(v, f2)) {
+ weight += ve2 *
+ cotan (f2->GetNextOEdge(e)->GetbVertex(),
+ e->GetaVertex(), e->GetbVertex()) / 8.0;
+ } else {
+ if (angle_obtuse (v, f2)) {
+ weight += ve2 * f1->getArea() / 4.0;
+ } else {
+ weight += ve2 * f1->getArea() / 8.0;
+ }
+ }
+
+ /* projection of edge perpendicular to N (section 5.3) */
+ d[0] = vec_edge[0] - vdotN * N[0];
+ d[1] = vec_edge[1] - vdotN * N[1];
+ d[2] = vec_edge[2] - vdotN * N[2];
+ d.normalize();
+
+ /* not explicit in the paper, but necessary. Move d to 2D basis. */
+ d1 = d * basis1;
+ d2 = d * basis2;
+
+ /* store off the curvature, direction of edge, and weights for later use */
+ weights[edge_count] = weight;
+ kappas[edge_count] = kappa;
+ d1s[edge_count] = d1;
+ d2s[edge_count] = d2;
+ edge_count++;
+
+ /* Finally, update the linear equations */
+ aterm_da += weight * d1 * d1 * d1 * d1;
+ bterm_da += weight * d1 * d1 * 2 * d1 * d2;
+ cterm_da += weight * d1 * d1 * d2 * d2;
+ const_da += weight * d1 * d1 * (- kappa);
+
+ aterm_db += weight * d1 * d2 * d1 * d1;
+ bterm_db += weight * d1 * d2 * 2 * d1 * d2;
+ cterm_db += weight * d1 * d2 * d2 * d2;
+ const_db += weight * d1 * d2 * (- kappa);
+
+ }
+
+ /* now use the identity (Section 5.3) a + c = |Kh| = 2 * kappa_h */
+ aterm_da -= cterm_da;
+ const_da += cterm_da * normKh;
+
+ aterm_db -= cterm_db;
+ const_db += cterm_db * normKh;
+
+ /* check for solvability of the linear system */
+ if (((aterm_da * bterm_db - aterm_db * bterm_da) != 0.0) &&
+ ((const_da != 0.0) || (const_db != 0.0))) {
+ linsolve (aterm_da, bterm_da, -const_da,
+ aterm_db, bterm_db, -const_db,
+ &a, &b);
+
+ c = normKh - a;
+
+ eigenvector (a, b, c, eig);
+ } else {
+ /* region of v is planar */
+ eig[0] = 1.0;
+ eig[1] = 0.0;
+ }
+
+ /* Although the eigenvectors of B are good estimates of the
+ * principal directions, it seems that which one is attached to
+ * which curvature direction is a bit arbitrary. This may be a bug
+ * in my implementation, or just a side-effect of the inaccuracy of
+ * B due to the discrete nature of the sampling.
+ *
+ * To overcome this behavior, we'll evaluate which assignment best
+ * matches the given eigenvectors by comparing the curvature
+ * estimates computed above and the curvatures calculated from the
+ * discrete differential operators. */
+
+ gts_vertex_principal_curvatures (0.5 * normKh, Kg, &K1, &K2);
+
+ err_e1 = err_e2 = 0.0;
+ /* loop through the values previously saved */
+ for (e = 0; e < edge_count; e++) {
+ real weight, kappa, d1, d2;
+ real temp1, temp2;
+ real delta;
+
+ weight = weights[e];
+ kappa = kappas[e];
+ d1 = d1s[e];
+ d2 = d2s[e];
+
+ temp1 = fabs (eig[0] * d1 + eig[1] * d2);
+ temp1 = temp1 * temp1;
+ temp2 = fabs (eig[1] * d1 - eig[0] * d2);
+ temp2 = temp2 * temp2;
+
+ /* err_e1 is for K1 associated with e1 */
+ delta = K1 * temp1 + K2 * temp2 - kappa;
+ err_e1 += weight * delta * delta;
+
+ /* err_e2 is for K1 associated with e2 */
+ delta = K2 * temp1 + K1 * temp2 - kappa;
+ err_e2 += weight * delta * delta;
+ }
+ free (weights);
+ free (kappas);
+ free (d1s);
+ free (d2s);
+
+ /* rotate eig by a right angle if that would decrease the error */
+ if (err_e2 < err_e1) {
+ real temp = eig[0];
+
+ eig[0] = eig[1];
+ eig[1] = -temp;
+ }
+
+ e1[0] = eig[0] * basis1[0] + eig[1] * basis2[0];
+ e1[1] = eig[0] * basis1[1] + eig[1] * basis2[1];
+ e1[2] = eig[0] * basis1[2] + eig[1] * basis2[2];
+ e1.normalize();
+
+ /* make N,e1,e2 a right handed coordinate sytem */
+ e2 = N ^ e1;
+ e2.normalize();
+}
+
+namespace OGF {
+ static real angle(WOEdge* h) {
+ Vec3r e(h->GetbVertex()->GetVertex()-h->GetaVertex()->GetVertex()) ;
+ Vec3r n1 = h->GetbFace()->GetNormal();
+ Vec3r n2 = h->GetaFace()->GetNormal();
+ real sine = (n1 ^ n2) * e / e.norm() ;
+ if(sine >= 1.0) {
+ return M_PI / 2.0 ;
+ }
+ if(sine <= -1.0) {
+ return -M_PI / 2.0 ;
+ }
+ return ::asin(sine) ;
+ }
+
+ // precondition1: P is inside the sphere
+ // precondition2: P,V points to the outside of
+ // the sphere (i.e. OP.V > 0)
+ static bool sphere_clip_vector(
+ const Vec3r& O, real r,
+ const Vec3r& P, Vec3r& V
+ ) {
+
+ Vec3r W = P - O ;
+ real a = V.squareNorm() ;
+ real b = 2.0 * V * W ;
+ real c = W.squareNorm() - r*r ;
+ real delta = b*b - 4*a*c ;
+ if(delta < 0) {
+ // Should not happen, but happens sometimes (numerical precision)
+ return true ;
+ }
+ real t = - b + ::sqrt(delta) / (2.0 * a) ;
+ if(t < 0.0) {
+ // Should not happen, but happens sometimes (numerical precision)
+ return true ;
+ }
+ if(t >= 1.0) {
+ // Inside the sphere
+ return false ;
+ }
+
+ V[0] = (t * V.x()) ;
+ V[1] = (t * V.y()) ;
+ V[2] = (t * V.z()) ;
+
+ return true ;
+ }
+
+ // TODO: check optimizations:
+ // use marking ? (measure *timings* ...)
+ void compute_curvature_tensor(
+ WVertex* start, real radius, NormalCycle& nc
+ ) {
+ // in case we have a non-manifold vertex, skip it...
+ if(start->isBoundary())
+ return;
+
+ std::set<WVertex*> vertices ;
+ const Vec3r& O = start->GetVertex() ;
+ std::stack<WVertex*> S ;
+ S.push(start) ;
+ vertices.insert(start) ;
+ while(!S.empty()) {
+ WVertex* v = S.top() ;
+ S.pop() ;
+ if(v->isBoundary())
+ continue;
+ const Vec3r& P = v->GetVertex() ;
+ WVertex::incoming_edge_iterator woeit = v->incoming_edges_begin();
+ WVertex::incoming_edge_iterator woeitend = v->incoming_edges_end();
+ for(;woeit!=woeitend; ++woeit){
+ WOEdge *h = *woeit;
+ Vec3r V(h->GetaVertex()->GetVertex()-h->GetbVertex()->GetVertex()) ;
+ if((v == start) || V * (P - O) > 0.0) {
+ bool isect = sphere_clip_vector(O, radius, P, V) ;
+ if(h->GetOwner()->GetNumberOfOEdges() == 2) {
+ real beta = angle(h) ;
+ nc.accumulate_dihedral_angle(V, beta) ;
+ }
+ if(!isect) {
+ WVertex* w = h->GetaVertex() ;
+ if(vertices.find(w) == vertices.end()) {
+ vertices.insert(w) ;
+ S.push(w) ;
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ void compute_curvature_tensor_one_ring(
+ WVertex* start, NormalCycle& nc
+ ) {
+ // in case we have a non-manifold vertex, skip it...
+ if(start->isBoundary())
+ return;
+
+ WVertex::incoming_edge_iterator woeit = start->incoming_edges_begin();
+ WVertex::incoming_edge_iterator woeitend = start->incoming_edges_end();
+ for(;woeit!=woeitend; ++woeit){
+ WOEdge *h = (*woeit)->twin();
+ Vec3r hvec(h->GetbVertex()->GetVertex()-h->GetaVertex()->GetVertex());
+ nc.accumulate_dihedral_angle(hvec, angle(h)) ;
+ WOEdge *hprev = h->getPrevOnFace();
+ Vec3r hprevvec(hprev->GetbVertex()->GetVertex()-hprev->GetaVertex()->GetVertex());
+ nc.accumulate_dihedral_angle(hprevvec, angle(hprev)) ;
+ }
+ }
+
+}
diff --git a/source/blender/freestyle/intern/winged_edge/Curvature.h b/source/blender/freestyle/intern/winged_edge/Curvature.h
new file mode 100755
index 00000000000..214a32ca922
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/Curvature.h
@@ -0,0 +1,156 @@
+
+/* GTS - Library for the manipulation of triangulated surfaces
+ * Copyright (C) 1999 Stéphane Popinet
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __CURVATURE_H__
+#define __CURVATURE_H__
+
+# include "../system/FreestyleConfig.h"
+# include "../system/Precision.h"
+# include "../geometry/Geom.h"
+using namespace Geometry;
+
+class WVertex;
+
+class LIB_WINGED_EDGE_EXPORT CurvatureInfo
+{
+public:
+
+ CurvatureInfo()
+ {
+ K1 = 0.0;
+ K2 = 0.0;
+ e1 = Vec3r(0.0,0.0,0.0);
+ e2 = Vec3r(0.0,0.0,0.0);
+ Kr = 0.0;
+ dKr = 0.0;
+ er = Vec3r(0.0,0.0,0.0);
+ }
+
+ CurvatureInfo(const CurvatureInfo& iBrother){
+ K1 = iBrother.K1;
+ K2 = iBrother.K2;
+ e1 = iBrother.e1;
+ e2 = iBrother.e2;
+ Kr = iBrother.Kr;
+ dKr = iBrother.dKr;
+ er = iBrother.er;
+ }
+
+ CurvatureInfo(const CurvatureInfo& ca, const CurvatureInfo& cb, real t) {
+ K1 = ca.K1 + t * (cb.K1 - ca.K1);
+ K2 = ca.K2 + t * (cb.K2 - ca.K2);
+ e1 = ca.e1 + t * (cb.e1 - ca.e1);
+ e2 = ca.e2 + t * (cb.e2 - ca.e2);
+ Kr = ca.Kr + t * (cb.Kr - ca.Kr);
+ dKr = ca.dKr + t * (cb.dKr - ca.dKr);
+ er = ca.er + t * (cb.er - ca.er);
+ }
+
+ real K1; // maximum curvature
+ real K2; // minimum curvature
+ Vec3r e1; // maximum curvature direction
+ Vec3r e2; // minimum curvature direction
+ real Kr; // radial curvature
+ real dKr; // radial curvature
+ Vec3r er; // radial curvature direction
+};
+
+class Face_Curvature_Info{
+public:
+ Face_Curvature_Info() {}
+ ~Face_Curvature_Info(){
+ for(vector<CurvatureInfo*>::iterator ci=vec_curvature_info.begin(), ciend=vec_curvature_info.end();
+ ci!=ciend;
+ ++ci){
+ delete (*ci);
+ }
+ vec_curvature_info.clear();
+ }
+ vector<CurvatureInfo *> vec_curvature_info;
+};
+
+bool LIB_WINGED_EDGE_EXPORT gts_vertex_mean_curvature_normal (WVertex * v,
+ Vec3r &n);
+
+bool LIB_WINGED_EDGE_EXPORT gts_vertex_gaussian_curvature (WVertex * v,
+ real * Kg);
+
+void LIB_WINGED_EDGE_EXPORT gts_vertex_principal_curvatures (real Kh,
+ real Kg,
+ real * K1,
+ real * K2);
+
+void LIB_WINGED_EDGE_EXPORT gts_vertex_principal_directions (WVertex * v,
+ Vec3r Kh,
+ real Kg,
+ Vec3r &e1,
+ Vec3r &e2);
+
+/*
+ * OGF/Graphite: Geometry and Graphics Programming Library + Utilities
+ * Copyright (C) 2000-2003 Bruno Levy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
+ *
+ * Contact: Bruno Levy
+ *
+ * levy@loria.fr
+ *
+ * ISA Project
+ * LORIA, INRIA Lorraine,
+ * Campus Scientifique, BP 239
+ * 54506 VANDOEUVRE LES NANCY CEDEX
+ * FRANCE
+ *
+ * Note that the GNU General Public License does not permit incorporating
+ * the Software into proprietary programs.
+ */
+ namespace OGF {
+
+ class NormalCycle ;
+
+ void LIB_WINGED_EDGE_EXPORT compute_curvature_tensor(
+ WVertex* start, double radius, NormalCycle& nc
+ ) ;
+
+ void LIB_WINGED_EDGE_EXPORT compute_curvature_tensor_one_ring(
+ WVertex* start, NormalCycle& nc
+ ) ;
+ }
+
+
+#endif /* __CURVATURE_H__ */
+
diff --git a/source/blender/freestyle/intern/winged_edge/Nature.h b/source/blender/freestyle/intern/winged_edge/Nature.h
new file mode 100755
index 00000000000..1f165e677f5
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/Nature.h
@@ -0,0 +1,75 @@
+//
+// Filename : Nature.h
+// Author(s) : Emmanuel Turquin
+// Purpose : Different natures for both vertices and edges
+// Date of creation : 01/07/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef NATURE_H
+# define NATURE_H
+
+/*! \file Nature.h
+ * Definitions of Natures of the ViewMap's elements
+ */
+
+/*! Namespace gathering the different possible
+ * natures of 0D and 1D elements of the ViewMap
+ */
+namespace Nature {
+
+ typedef unsigned short VertexNature;
+
+ /*! true for any 0D element */
+ static const VertexNature POINT = 0; // 0
+ /*! true for SVertex */
+ static const VertexNature S_VERTEX = (1 << 0); // 1
+ /*! true for ViewVertex */
+ static const VertexNature VIEW_VERTEX = (1 << 1); // 2
+ /*! true for NonTVertex */
+ static const VertexNature NON_T_VERTEX = (1 << 2); // 4
+ /*! true for TVertex */
+ static const VertexNature T_VERTEX = (1 << 3); // 8
+ /*! true for CUSP */
+ static const VertexNature CUSP = (1 << 4); // 16
+
+ typedef unsigned short EdgeNature;
+ /*! true for non feature edges (always false for 1D elements of the ViewMap) */
+ static const EdgeNature NO_FEATURE = 0; // 0
+ /*! true for silhouettes */
+ static const EdgeNature SILHOUETTE = (1 << 0); // 1
+ /*! true for borders */
+ static const EdgeNature BORDER = (1 << 1); // 2
+ /*! true for creases */
+ static const EdgeNature CREASE = (1 << 2); // 4
+ /*! true for ridges */
+ static const EdgeNature RIDGE = (1 << 3); // 8
+ /*! true for valleys */
+ static const EdgeNature VALLEY = (1 << 4); // 16
+ /*! true for suggestive contours */
+ static const EdgeNature SUGGESTIVE_CONTOUR = (1 << 5); // 32
+
+} // end of namespace Nature
+
+#endif // NATURE_H
diff --git a/source/blender/freestyle/intern/winged_edge/WEdge.cpp b/source/blender/freestyle/intern/winged_edge/WEdge.cpp
new file mode 100755
index 00000000000..79b3a8dae26
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WEdge.cpp
@@ -0,0 +1,732 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <iostream>
+#include "WEdge.h"
+
+/*! Temporary structures */
+class vertexdata
+{
+public:
+ WVertex *_copy;
+};
+
+class oedgedata
+{
+public:
+ WOEdge *_copy;
+};
+
+class edgedata
+{
+public:
+ WEdge *_copy;
+};
+
+class facedata
+{
+public:
+ WFace *_copy;
+};
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* WVertex */
+ /* */
+ /* */
+ /**********************************/
+
+WVertex::WVertex(WVertex& iBrother)
+{
+ _Id = iBrother._Id;
+ _Vertex = iBrother._Vertex;
+ _EdgeList = iBrother._EdgeList;
+
+ _Shape = iBrother._Shape;
+ _Smooth = iBrother._Smooth;
+ _Border = iBrother._Border;
+ userdata = NULL;
+ iBrother.userdata = new vertexdata;
+ ((vertexdata*)(iBrother.userdata))->_copy = this;
+}
+
+WVertex* WVertex::dupplicate()
+{
+ WVertex *clone = new WVertex(*this);
+ return clone;
+}
+
+
+WOEdge* WVertex::incoming_edge_iterator::operator*()
+
+{
+ return _current;
+}
+void WVertex::incoming_edge_iterator::increment(){
+ WOEdge *twin = _current->twin();
+ if(!twin){
+ // we reached a hole
+ _current = 0;
+ return;
+ }
+ WOEdge *next = twin->getPrevOnFace();
+ if(next == _begin){
+ next = 0;
+ }
+ _current = next;
+}
+
+WFace* WVertex::face_iterator::operator*(){
+ WOEdge * woedge = *_edge_it;
+ if(woedge == 0)
+ return 0;
+ return (woedge)->GetbFace();
+}
+
+//bool WVertex::isBoundary () const{
+// return _Border;
+//}
+bool WVertex::isBoundary ()
+{
+ if(_Border == 1)
+ return true;
+ else if(_Border == 0)
+ return false;
+
+ vector<WEdge *>::const_iterator it;
+ for(it=_EdgeList.begin(); it!=_EdgeList.end(); it++){
+ if((*it)->GetNumberOfOEdges() == 1){
+ _Border = 1;
+ return true;
+ }
+ }
+ //if (!(*it)->GetaOEdge()->GetaFace()) return true;
+ _Border = 0;
+ return false;
+}
+
+void WVertex::AddEdge(WEdge *iEdge) {
+ _EdgeList.push_back(iEdge);
+}
+
+WVertex::incoming_edge_iterator WVertex::incoming_edges_begin(){
+ WOEdge *begin;
+ WEdge * wedge = _EdgeList.front();
+ WOEdge* aOEdge = wedge->GetaOEdge();
+ if(aOEdge->GetbVertex() == this)
+ begin = aOEdge;
+ else
+ begin = _EdgeList.front()->GetbOEdge();
+ return incoming_edge_iterator(this, begin, begin);
+}
+WVertex::incoming_edge_iterator WVertex::incoming_edges_end(){
+ WOEdge *begin;
+ WOEdge* aOEdge = _EdgeList.front()->GetaOEdge();
+ if(aOEdge->GetbVertex() == this)
+ begin = aOEdge;
+ else
+ begin = _EdgeList.front()->GetbOEdge();
+ return incoming_edge_iterator(this, begin, 0);
+}
+//WOEdge** WVertex::incoming_edge_iterator::operator->()
+//{
+// WOEdge ** ppaOEdge = (*_iter)->GetaOEdge();
+// if(aOEdge->GetbVertex() == _vertex)
+// return ppaOEdge;
+// else
+// {
+// WOEdge *bOEdge = (*_iter)->GetbOEdge();
+// return &bOEdge;
+// }
+//
+//}
+ /**********************************/
+ /* */
+ /* */
+ /* WOEdge */
+ /* */
+ /* */
+ /**********************************/
+
+WOEdge::WOEdge(WOEdge& iBrother)
+{
+ _paVertex = iBrother.GetaVertex();
+ _pbVertex = iBrother.GetbVertex();
+ _paFace = iBrother.GetaFace();
+ _pbFace = iBrother.GetbFace();
+ _pOwner = iBrother.GetOwner();
+ userdata = NULL;
+ iBrother.userdata = new oedgedata;
+ ((oedgedata*)(iBrother.userdata))->_copy = this;
+}
+
+WOEdge * WOEdge::dupplicate()
+{
+ WOEdge *clone = new WOEdge(*this);
+ return clone;
+}
+
+Vec3r
+WOEdge::getVec3r ()
+{
+ return Vec3r(_pbVertex->GetVertex() - _paVertex->GetVertex());
+}
+
+WOEdge * WOEdge::twin ()
+{
+ return GetOwner()->GetOtherOEdge(this);
+}
+
+WOEdge *
+WOEdge::getPrevOnFace()
+{
+ return _pbFace->GetPrevOEdge(this);
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* WEdge */
+ /* */
+ /* */
+ /**********************************/
+
+WEdge::WEdge(WEdge& iBrother)
+{
+ _paOEdge = NULL;
+ _pbOEdge = NULL;
+ WOEdge *aoedge = iBrother.GetaOEdge();
+ WOEdge *boedge = iBrother.GetbOEdge();
+ userdata = NULL;
+
+ if(NULL != aoedge)
+ //_paOEdge = new WOEdge(*aoedge);
+ _paOEdge = aoedge->dupplicate();
+ if(NULL != boedge)
+ //_pbOEdge = new WOEdge(*boedge);
+ _pbOEdge = boedge->dupplicate();
+
+ _nOEdges = iBrother.GetNumberOfOEdges();
+ _Id = iBrother.GetId();
+ iBrother.userdata = new edgedata;
+ ((edgedata*)(iBrother.userdata))->_copy = this;
+}
+
+WEdge * WEdge::dupplicate()
+{
+ WEdge *clone = new WEdge(*this);
+ return clone;
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* WFace */
+ /* */
+ /* */
+ /**********************************/
+
+
+WFace::WFace(WFace& iBrother)
+{
+ _OEdgeList = iBrother.GetEdgeList();
+ _Normal = iBrother.GetNormal();
+ _VerticesNormals = iBrother._VerticesNormals;
+ _VerticesTexCoords = iBrother._VerticesTexCoords;
+ _Id = iBrother.GetId();
+ _MaterialIndex = iBrother._MaterialIndex;
+ userdata = NULL;
+ iBrother.userdata = new facedata;
+ ((facedata*)(iBrother.userdata))->_copy = this;
+}
+
+WFace * WFace::dupplicate()
+{
+ WFace * clone = new WFace(*this);
+ return clone;
+}
+
+const Material& WFace::material() {
+ return getShape()->material(_MaterialIndex);
+}
+
+WOEdge * WFace::MakeEdge(WVertex *v1, WVertex *v2)
+{
+ // First check whether the same oriented edge already exists
+ // or not:
+ vector<WEdge *>& v1Edges = v1->GetEdges();
+ for(vector<WEdge*>::iterator it1=v1Edges.begin(), end=v1Edges.end();
+ it1!=end;
+ it1++)
+ {
+
+ WEdge *we=(*it1);
+
+ WOEdge *woea = we->GetaOEdge();
+
+ if((woea->GetaVertex() == v1) && (woea->GetbVertex() == v2))
+ //if((*it1)->GetbVertex() == v2)
+ {
+ // The oriented edge already exists
+ cerr << "Warning: edge " << v1->GetId() << " - " << v2->GetId() << " appears twice, correcting" << endl;
+ // Adds the edge to the face
+ //AddEdge((*it1)->GetaOEdge());
+ AddEdge(woea);
+ (*it1)->SetNumberOfOEdges((*it1)->GetNumberOfOEdges()+1);
+ //sets these vertices as border:
+ v1->SetBorder(true);
+ v2->SetBorder(true);
+ //return (*it1)->GetaOEdge();
+ return woea;
+ }
+
+ WOEdge *woeb = we->GetbOEdge();
+ if((woeb != 0) && (woeb->GetaVertex() == v1) && (woeb->GetbVertex() == v2))
+
+ //if((*it1)->GetbVertex() == v2)
+
+ {
+ // The oriented edge already exists
+ cerr << "Warning: edge " << v1->GetId() << " - " << v2->GetId() << " appears twice, correcting" << endl;
+ // Adds the edge to the face
+ //AddEdge((*it1)->GetaOEdge());
+ AddEdge(woeb);
+ (*it1)->SetNumberOfOEdges((*it1)->GetNumberOfOEdges()+1);
+ //sets these vertices as border:
+ v1->SetBorder(true);
+ v2->SetBorder(true);
+ //return (*it1)->GetaOEdge();
+ return woeb;
+ }
+ }
+
+ // the oriented edge we're about to build
+ WOEdge *pOEdge = new WOEdge;
+
+ WEdge * edge; // The edge containing the oriented edge.
+
+ // checks whether this edge already exists or not
+ // If it exists, it points outward v2
+
+ bool exist = false;
+ WOEdge *pInvertEdge = NULL; // The inverted edge if it exists
+ vector<WEdge *>& v2Edges = v2->GetEdges();
+ vector<WEdge *>::iterator it;
+ for(it=v2Edges.begin(); it!=v2Edges.end(); it++)
+ {
+ if((*it)->GetbVertex() == v1)
+ {
+ // The invert edge already exists
+ exist = true;
+ pInvertEdge = (*it)->GetaOEdge();
+ break;
+ }
+ }
+
+ //DEBUG:
+
+
+ if(true == exist) // The invert edge already exists
+ {
+ // Retrieves the corresponding edge
+ edge = pInvertEdge->GetOwner();
+
+ // Sets the a Face (retrieved from pInvertEdge
+ pOEdge->SetaFace(pInvertEdge->GetbFace());
+
+ // Updates the invert edge:
+ pInvertEdge->SetaFace(this);
+ }
+ else // The invert edge does not exist yet
+ {
+ // we must create a new edge
+ //edge = new WEdge;
+ edge = instanciateEdge();
+
+ // updates the a,b vertex edges list:
+ v1->AddEdge(edge);
+ v2->AddEdge(edge);
+
+ }
+
+ pOEdge->SetOwner(edge);
+ // Add the vertices:
+ pOEdge->SetaVertex(v1);
+ pOEdge->SetbVertex(v2);
+
+ // Debug:
+ if(v1->GetId() == v2->GetId())
+ cerr << "Warning: edge " << this << " null with vertex " << v1->GetId() << endl;
+
+ edge->AddOEdge(pOEdge);
+ //edge->SetNumberOfOEdges(edge->GetNumberOfOEdges()+1);
+
+ // Add this face (the b face)
+ pOEdge->SetbFace(this);
+
+ // Adds the edge to the face
+ AddEdge(pOEdge);
+
+ return pOEdge;
+}
+
+
+bool
+WFace::getOppositeEdge (const WVertex *v, WOEdge* &e)
+{
+ if (_OEdgeList.size()!=3) return false;
+
+ vector<WOEdge *>::iterator it;
+ e=NULL;
+ for(it=_OEdgeList.begin(); it!=_OEdgeList.end(); it++)
+ if ((*it)->GetaVertex()==v) e=*it;
+ if (!e) return false;
+ e=NULL;
+ for(it=_OEdgeList.begin(); it!=_OEdgeList.end(); it++)
+ if (((*it)->GetaVertex()!=v) && ((*it)->GetbVertex()!=v)) e=*it;
+ if (!e) return false;
+ else return true;
+}
+
+real
+WFace::getArea ()
+{
+ vector<WOEdge *>::iterator it;
+ Vec3r origin=(*(_OEdgeList.begin()))->GetaVertex()->GetVertex();
+ it=_OEdgeList.begin();
+ real a=0;
+ for (it=it++; it!=_OEdgeList.end(); it++) {
+ Vec3r v1=Vec3r((*it)->GetaVertex()->GetVertex() - origin);
+ Vec3r v2=Vec3r((*it)->GetbVertex()->GetVertex() - origin);
+ a += (v1 ^ v2).norm() / 2.0;
+ }
+ return a;
+}
+
+
+WOEdge*
+WFace::GetPrevOEdge(WOEdge* iOEdge)
+ {
+ vector<WOEdge*>::iterator woe,woend, woefirst;
+ woefirst = _OEdgeList.begin();
+ woend=_OEdgeList.end();
+ WOEdge *prev =*woefirst;
+ woe=woefirst;
+ woe++;
+ for(;
+ woe!=woend;
+ woe++)
+ {
+ if((*woe) == iOEdge)
+ return prev;
+ prev= *woe;
+ }
+ // We left the loop. That means that the first
+ // OEdge was the good one:
+ if((*woefirst)==iOEdge)
+ return prev;
+
+ return NULL;
+ }
+
+WShape * WFace::getShape()
+{
+ return GetVertex(0)->shape();
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* WShape */
+ /* */
+ /* */
+ /**********************************/
+
+
+LIB_WINGED_EDGE_EXPORT
+unsigned WShape::_SceneCurrentId = 0;
+
+WShape * WShape::dupplicate()
+{
+ WShape *clone = new WShape(*this);
+ return clone;
+}
+
+WShape::WShape(WShape& iBrother)
+{
+ _Id = iBrother.GetId();
+ _Materials = iBrother._Materials;
+ _meanEdgeSize = iBrother._meanEdgeSize;
+ iBrother.bbox(_min, _max);
+ vector<WVertex*>& vertexList = iBrother.GetVertexList();
+ vector<WVertex*>::iterator v=vertexList.begin(), vend=vertexList.end();
+ for(;
+ v!=vend;
+ v++)
+ {
+ //WVertex *newVertex = new WVertex(*(*v));
+ WVertex *newVertex = (*v)->dupplicate();
+
+ newVertex->SetShape(this);
+ AddVertex(newVertex);
+ }
+
+ vector<WEdge*>& edgeList = iBrother.GetEdgeList();
+ vector<WEdge*>::iterator e=edgeList.begin(), eend=edgeList.end();
+ for(;
+ e!=eend;
+ e++)
+ {
+ //WEdge *newEdge = new WEdge(*(*e));
+ WEdge *newEdge = (*e)->dupplicate();
+ AddEdge(newEdge);
+ }
+
+ vector<WFace*>& faceList = iBrother.GetFaceList();
+ vector<WFace*>::iterator f=faceList.begin(), fend=faceList.end();
+ for(;
+ f!=fend;
+ f++)
+ {
+ //WFace *newFace = new WFace(*(*f));
+ WFace *newFace = (*f)->dupplicate();
+ AddFace(newFace);
+ }
+
+ // update all pointed addresses thanks to the newly created objects:
+ vend=_VertexList.end();
+ for(v=_VertexList.begin();
+ v!=vend;
+ v++)
+ {
+ const vector<WEdge*>& vedgeList = (*v)->GetEdges();
+ vector<WEdge*> newvedgelist;
+ unsigned int i;
+ for(i=0; i<vedgeList.size(); i++)
+ {
+ WEdge *current = vedgeList[i];
+ edgedata * currentvedata = (edgedata*)current->userdata;
+ newvedgelist.push_back(currentvedata->_copy);
+ }
+ (*v)->SetEdges(newvedgelist);
+ }
+
+ eend = _EdgeList.end();
+ for(e=_EdgeList.begin();
+ e!=eend;
+ e++)
+ {
+ // update aOedge:
+ WOEdge *aoEdge = (*e)->GetaOEdge();
+ aoEdge->SetaVertex(((vertexdata*)(aoEdge->GetaVertex()->userdata))->_copy);
+ aoEdge->SetbVertex(((vertexdata*)(aoEdge->GetbVertex()->userdata))->_copy);
+ if(NULL != aoEdge->GetaFace())
+ aoEdge->SetaFace(((facedata*)(aoEdge->GetaFace()->userdata))->_copy);
+ aoEdge->SetbFace(((facedata*)(aoEdge->GetbFace()->userdata))->_copy);
+ aoEdge->SetOwner(((edgedata*)(aoEdge->GetOwner()->userdata))->_copy);
+ // update bOedge:
+
+ WOEdge *boEdge = (*e)->GetbOEdge();
+ if(boEdge != 0)
+ {
+ boEdge->SetaVertex(((vertexdata*)(boEdge->GetaVertex()->userdata))->_copy);
+ boEdge->SetbVertex(((vertexdata*)(boEdge->GetbVertex()->userdata))->_copy);
+ if(NULL != boEdge->GetaFace())
+ boEdge->SetaFace(((facedata*)(boEdge->GetaFace()->userdata))->_copy);
+ boEdge->SetbFace(((facedata*)(boEdge->GetbFace()->userdata))->_copy);
+ boEdge->SetOwner(((edgedata*)(boEdge->GetOwner()->userdata))->_copy);
+ }
+ }
+
+ fend = _FaceList.end();
+ for(f=_FaceList.begin();
+ f!=fend;
+ f++)
+ {
+ unsigned i;
+ const vector<WOEdge*>& oedgeList = (*f)->GetEdgeList();
+ vector<WOEdge*> newoedgelist;
+
+ unsigned n = oedgeList.size();
+ for(i=0; i<n; i++)
+ {
+ WOEdge *current = oedgeList[i];
+ oedgedata * currentoedata = (oedgedata*)current->userdata;
+ newoedgelist.push_back(currentoedata->_copy);
+ //oedgeList[i] = currentoedata->_copy;
+ //oedgeList[i] = ((oedgedata*)(oedgeList[i]->userdata))->_copy;
+ }
+ (*f)->SetEdgeList(newoedgelist);
+ }
+
+ // Free all memory (arghh!)
+ // Vertex
+ vend = iBrother.GetVertexList().end();
+ for(v=iBrother.GetVertexList().begin();
+ v!=vend;
+ v++)
+ {
+ delete (vertexdata*)((*v)->userdata);
+ (*v)->userdata = NULL;
+ }
+
+ // Edges and OEdges:
+ eend = iBrother.GetEdgeList().end();
+ for(e=iBrother.GetEdgeList().begin();
+ e!=eend;
+ e++)
+ {
+ delete (edgedata*)((*e)->userdata);
+ (*e)->userdata = NULL;
+ // OEdge a :
+ delete (oedgedata*)((*e)->GetaOEdge()->userdata);
+ (*e)->GetaOEdge()->userdata = NULL;
+ // OEdge b:
+ WOEdge* oedgeb = (*e)->GetbOEdge();
+ if(NULL != oedgeb)
+ {
+ delete (oedgedata*)(oedgeb->userdata);
+ oedgeb->userdata = NULL;
+ }
+ }
+ // Faces
+ fend = iBrother.GetFaceList().end();
+ for(f=iBrother.GetFaceList().begin();
+ f!=fend;
+ f++)
+ {
+ delete (facedata*)((*f)->userdata);
+ (*f)->userdata = NULL;
+ }
+}
+
+WFace* WShape::MakeFace(vector<WVertex*>& iVertexList, unsigned iMaterial)
+{
+ // allocate the new face
+ WFace *face = instanciateFace();
+
+ return MakeFace(iVertexList, iMaterial, face);
+}
+
+WFace * WShape::MakeFace(vector<WVertex*>& iVertexList, vector<Vec3r>& iNormalsList, vector<Vec2r>& iTexCoordsList, unsigned iMaterial)
+{
+ // allocate the new face
+ WFace *face = MakeFace(iVertexList, iMaterial);
+
+ if(0 == face)
+
+ return 0;
+
+ // set the list of per-vertex normals
+ face->SetNormalList(iNormalsList);
+ // set the list of per-vertex tex coords
+ face->SetTexCoordsList(iTexCoordsList);
+
+ return face;
+}
+
+WFace* WShape::MakeFace(vector<WVertex*>& iVertexList, unsigned iMaterial, WFace *face)
+{
+
+ int id = _FaceList.size();
+
+ face->SetMaterialIndex(iMaterial);
+
+ // Check whether we have a degenerated face:
+
+ // LET'S HACK IT FOR THE TRIANGLE CASE:
+
+ if(3 == iVertexList.size())
+
+ {
+
+ if((iVertexList[0] == iVertexList[1])
+
+ || (iVertexList[0] == iVertexList[2])
+
+ || (iVertexList[2] == iVertexList[1]))
+
+ {
+
+ cerr << "Warning: degenerated triangle detected, correcting" << endl;
+ return 0;
+
+ }
+
+ }
+ // vertex pointers used to build each edge
+ vector<WVertex*>::iterator va, vb, it;
+
+ va = iVertexList.begin();
+ vb = va;
+ for(; va != iVertexList.end(); va = vb)
+ {
+ vb++;
+ // Adds va to the vertex list:
+ //face->AddVertex(*va);
+
+ WOEdge * oedge;
+ if(*va == iVertexList.back())
+ oedge = face->MakeEdge(*va, iVertexList.front()); //for the last (closing) edge
+ else
+ oedge = face->MakeEdge(*va, *vb);
+
+
+ if(oedge == 0)
+ return 0;
+
+
+ WEdge *edge = oedge->GetOwner();
+ if(1 == edge->GetNumberOfOEdges())
+ {
+ // means that we just created a new edge and that we must add it to the
+ // shape's edges list
+ edge->SetId(_EdgeList.size());
+ AddEdge(edge);
+ // compute the mean edge value:
+ _meanEdgeSize += edge->GetaOEdge()->getVec3r().norm();
+ }
+ }
+
+ // compute the face normal (v1v2 ^ v1v3)
+ WVertex *v1, *v2, *v3;
+ it = iVertexList.begin();
+ v1 = *it;
+ it++;
+ v2 = *it;
+ it++;
+ v3 = *it;
+
+ Vec3r vector1(v2->GetVertex()-v1->GetVertex());
+ Vec3r vector2(v3->GetVertex()-v1->GetVertex());
+
+ Vec3r normal(vector1 ^ vector2);
+ normal.normalize();
+ face->SetNormal(normal);
+
+ // Add the face to the shape's faces list:
+ face->SetId(id);
+ AddFace(face);
+
+ return face;
+}
diff --git a/source/blender/freestyle/intern/winged_edge/WEdge.h b/source/blender/freestyle/intern/winged_edge/WEdge.h
new file mode 100755
index 00000000000..2369caf4566
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WEdge.h
@@ -0,0 +1,952 @@
+//
+// Filename : WEdge.h
+// Author(s) : Stephane Grabli
+// Purpose : Classes to define a Winged Edge data structure.
+// Date of creation : 18/02/2002
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef WEDGE_H
+# define WEDGE_H
+
+# include <vector>
+# include <iterator>
+# include "../system/FreestyleConfig.h"
+# include "../geometry/Geom.h"
+# include "../scene_graph/Material.h"
+
+using namespace std;
+using namespace Geometry;
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* WVertex */
+ /* */
+ /* */
+ /**********************************/
+
+
+class WOEdge;
+class WEdge;
+class WShape;
+class WFace;
+class LIB_WINGED_EDGE_EXPORT WVertex
+{
+protected:
+ int _Id; // an identificator
+ Vec3r _Vertex;
+ vector<WEdge*> _EdgeList;
+ WShape * _Shape; // the shape to which the vertex belongs
+ bool _Smooth; // flag to indicate whether the Vertex belongs to a smooth edge or not
+ int _Border; // 1 -> border, 0 -> no border, -1 -> not set
+
+public:
+ void * userdata; // designed to store specific user data
+ inline WVertex(const Vec3r &v) {_Id = 0; _Vertex = v; userdata = NULL; _Shape = NULL;_Smooth=true;_Border=-1;}
+ /*! Copy constructor */
+ WVertex(WVertex& iBrother);
+ virtual WVertex * dupplicate();
+ virtual ~WVertex() {}
+
+ /*! accessors */
+ inline Vec3r& GetVertex() {return _Vertex;}
+ inline vector<WEdge*>& GetEdges() {return _EdgeList;}
+ inline int GetId() {return _Id;}
+ inline WShape * shape() const {return _Shape;}
+ inline bool isSmooth() const {return _Smooth;}
+ bool isBoundary();
+
+ /*! modifiers */
+ inline void SetVertex(const Vec3r& v) {_Vertex = v;}
+ inline void SetEdges(const vector<WEdge *>& iEdgeList) {_EdgeList = iEdgeList;}
+ inline void SetId(int id) {_Id = id;}
+ inline void SetShape(WShape *iShape) {_Shape = iShape;}
+ inline void SetSmooth(bool b) {_Smooth = b;}
+ inline void SetBorder(bool b) {if(b) _Border= 1; else _Border = 0;}
+
+ /*! Adds an edge to the edges list */
+ void AddEdge(WEdge *iEdge) ;
+
+ virtual void ResetUserData() {userdata = 0;}
+
+
+
+public:
+
+
+
+ /*! Iterator to iterate over a vertex incoming edges in the CCW order*/
+# if defined(__GNUC__) && (__GNUC__ < 3)
+ class incoming_edge_iterator : public input_iterator<WOEdge*,ptrdiff_t>
+# else
+ class LIB_WINGED_EDGE_EXPORT incoming_edge_iterator : public iterator<input_iterator_tag, WOEdge*,ptrdiff_t>
+# endif
+ {
+ private:
+ WVertex *_vertex;
+ //
+ WOEdge *_begin;
+ WOEdge *_current;
+
+ public:
+# if defined(__GNUC__) && (__GNUC__ < 3)
+ inline incoming_edge_iterator() : input_iterator<WOEdge*,ptrdiff_t>() {}
+# else
+ inline incoming_edge_iterator() : iterator<input_iterator_tag, WOEdge*,ptrdiff_t>() {}
+# endif
+
+ protected:
+ friend class WVertex;
+ inline incoming_edge_iterator(
+ WVertex *iVertex,
+ WOEdge * iBegin,
+ WOEdge * iCurrent)
+# if defined(__GNUC__) && (__GNUC__ < 3)
+ : input_iterator<WOEdge*,ptrdiff_t>()
+# else
+ : iterator<input_iterator_tag, WOEdge*,ptrdiff_t>()
+# endif
+ {
+ _vertex = iVertex;
+ _begin = iBegin;
+ _current = iCurrent;
+ }
+
+ public:
+ inline incoming_edge_iterator(const incoming_edge_iterator& iBrother)
+# if defined(__GNUC__) && (__GNUC__ < 3)
+ : input_iterator<WOEdge*,ptrdiff_t>(iBrother)
+# else
+ : iterator<input_iterator_tag, WOEdge*,ptrdiff_t>(iBrother)
+# endif
+ {
+ _vertex = iBrother._vertex;
+ _begin = iBrother._begin;
+ _current = iBrother._current;
+ }
+
+ public:
+ // operators
+ virtual incoming_edge_iterator& operator++() // operator corresponding to ++i
+ {
+ increment();
+ return *this;
+ }
+ virtual incoming_edge_iterator operator++(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ incoming_edge_iterator tmp = *this; // C'est pour cela qu'on stocke la valeur
+ increment(); // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const incoming_edge_iterator& b) const
+ {
+ return ((_current) != (b._current));
+ }
+
+ virtual bool operator==(const incoming_edge_iterator& b) const
+ {
+ return ((_current)== (b._current));
+ }
+
+ // dereferencing
+ virtual WOEdge* operator*();
+ //virtual WOEdge** operator->();
+ protected:
+ virtual void increment();
+ };
+
+
+ /*! Iterator to iterate over a vertex faces in the CCW order */
+# if defined(__GNUC__) && (__GNUC__ < 3)
+ class face_iterator : public input_iterator<WFace*,ptrdiff_t>
+# else
+ class LIB_WINGED_EDGE_EXPORT face_iterator : public iterator<input_iterator_tag, WFace*,ptrdiff_t>
+# endif
+ {
+ private:
+ incoming_edge_iterator _edge_it;
+
+ public:
+# if defined(__GNUC__) && (__GNUC__ < 3)
+ inline face_iterator() : input_iterator<WFace*,ptrdiff_t>() {}
+# else
+ inline face_iterator() : iterator<input_iterator_tag, WFace*,ptrdiff_t>() {}
+# endif
+
+ protected:
+ friend class WVertex;
+ inline face_iterator(
+ incoming_edge_iterator it)
+# if defined(__GNUC__) && (__GNUC__ < 3)
+ : input_iterator<WFace*,ptrdiff_t>()
+# else
+ : iterator<input_iterator_tag, WFace*,ptrdiff_t>()
+# endif
+ {
+ _edge_it = it;
+ }
+
+ public:
+ inline face_iterator(const face_iterator& iBrother)
+# if defined(__GNUC__) && (__GNUC__ < 3)
+ : input_iterator<WFace*,ptrdiff_t>(iBrother)
+# else
+ : iterator<input_iterator_tag, WFace*,ptrdiff_t>(iBrother)
+# endif
+ {
+ _edge_it = iBrother._edge_it;
+ }
+
+ public:
+ // operators
+ virtual face_iterator& operator++() // operator corresponding to ++i
+ {
+ increment();
+ return *this;
+ }
+ virtual face_iterator operator++(int) // opérateur correspondant à i++
+ { // c.a.d qui renvoie la valeur *puis* incrémente.
+ face_iterator tmp = *this; // C'est pour cela qu'on stocke la valeur
+ increment(); // dans un temporaire.
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const face_iterator& b) const
+ {
+ return ((_edge_it) != (b._edge_it));
+ }
+
+ virtual bool operator==(const face_iterator& b) const
+ {
+ return ((_edge_it)== (b._edge_it));
+ }
+
+ // dereferencing
+ virtual WFace* operator*();
+ //virtual WOEdge** operator->();
+ protected:
+ inline void increment(){
+ ++_edge_it;
+ }
+ };
+
+public:
+ /*! iterators access */
+ virtual incoming_edge_iterator incoming_edges_begin();
+ virtual incoming_edge_iterator incoming_edges_end() ;
+
+ virtual face_iterator faces_begin() {
+ return face_iterator(incoming_edges_begin());
+ }
+ virtual face_iterator faces_end() {
+ return face_iterator(incoming_edges_end());
+ }
+};
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* WOEdge */
+ /* */
+ /* */
+ /**********************************/
+class WFace;
+class WEdge;
+
+class LIB_WINGED_EDGE_EXPORT WOEdge
+{
+protected:
+ // WOEdge *_paCWEdge; // edge reached when traveling clockwise on aFace from the edge
+ // WOEdge *_pbCWEdge; // edge reached when traveling clockwise on bFace from the edge
+ // WOEdge *_paCCWEdge; // edge reached when traveling counterclockwise on aFace from the edge
+ // WOEdge *_pbCCWEdge; // edge reached when traveling counterclockwise on bFace from the edge
+ WVertex *_paVertex; // starting vertex
+ WVertex *_pbVertex; // ending vertex
+ WFace *_paFace; // when following the edge, face on the right
+ WFace *_pbFace; // when following the edge, face on the left
+ WEdge *_pOwner; // Edge
+
+public:
+ void *userdata;
+ inline WOEdge()
+ {
+ // _paCWEdge = NULL;
+ // _pbCWEdge = NULL;
+ // _paCCWEdge = NULL;
+ // _pbCCWEdge = NULL;
+ _paVertex = NULL;
+ _pbVertex = NULL;
+ _paFace = NULL;
+ _pbFace = NULL;
+ _pOwner = NULL;
+ userdata = NULL;
+ }
+
+ /*! copy constructor */
+ WOEdge(WOEdge& iBrother);
+ virtual WOEdge * dupplicate();
+
+ /*! accessors */
+ // inline WOEdge *GetaCWEdge() {return _paCWEdge;}
+ // inline WOEdge *GetbCWEdge() {return _pbCWEdge;}
+ // inline WOEdge *GetaCCWEdge() {return _paCCWEdge;}
+ // inline WOEdge *GetbCCWEdge() {return _pbCCWEdge;}
+ inline WVertex *GetaVertex() {return _paVertex;}
+ inline WVertex *GetbVertex() {return _pbVertex;}
+ inline WFace *GetaFace() {return _paFace;}
+ inline WFace *GetbFace() {return _pbFace;}
+ inline WEdge *GetOwner() {return _pOwner;}
+
+
+ /*! modifiers */
+ // inline void SetaCWEdge(WOEdge *pe) {_paCWEdge = pe;}
+ // inline void SetbCWEdge(WOEdge *pe) {_pbCWEdge = pe;}
+ // inline void SetaCCWEdge(WOEdge *pe) {_paCCWEdge = pe;}
+ // inline void SetbCCCWEdge(WOEdge *pe) {_pbCCWEdge = pe;}
+ inline void SetaVertex(WVertex *pv) {_paVertex = pv;}
+ inline void SetbVertex(WVertex *pv) {_pbVertex = pv;}
+ inline void SetaFace(WFace *pf) {_paFace = pf;}
+ inline void SetbFace(WFace *pf) {_pbFace = pf;}
+ inline void SetOwner(WEdge *pe) {_pOwner = pe;}
+
+ /*! Retrieves the list of edges in CW order */
+ inline void RetrieveCWOrderedEdges(vector<WEdge*>& oEdges);
+ /*! returns the vector between the two vertices */
+ Vec3r getVec3r ();
+ WOEdge * twin ();
+ WOEdge * getPrevOnFace();
+ virtual void ResetUserData() {userdata = 0;}
+};
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* WEdge */
+ /* */
+ /* */
+ /**********************************/
+
+class LIB_WINGED_EDGE_EXPORT WEdge
+{
+protected:
+ WOEdge *_paOEdge; // first oriented edge
+ WOEdge *_pbOEdge; // second oriented edge
+ int _nOEdges; // number of oriented edges associated with this edge. (1 means border edge)
+ int _Id; // Identifier for the edge
+
+public:
+ void * userdata; // designed to store specific user data
+ inline WEdge()
+ {
+ _paOEdge = NULL;
+ _pbOEdge = NULL;
+ _nOEdges = 0;
+ userdata = NULL;
+ }
+
+ inline WEdge(WOEdge *iOEdge)
+ {
+ _paOEdge = iOEdge;
+ _pbOEdge = NULL;
+ _nOEdges = 1;
+ userdata = NULL;
+ }
+
+ inline WEdge(WOEdge *iaOEdge, WOEdge *ibOEdge)
+ {
+ _paOEdge = iaOEdge;
+ _pbOEdge = ibOEdge;
+ _nOEdges = 2;
+ userdata = NULL;
+ }
+
+ /*! Copy constructor */
+ WEdge(WEdge& iBrother);
+ virtual WEdge * dupplicate();
+
+ virtual ~WEdge()
+ {
+ if(NULL != _paOEdge)
+ {
+ delete _paOEdge;
+ _paOEdge = NULL;
+ }
+
+ if(NULL != _pbOEdge)
+ {
+ delete _pbOEdge;
+ _pbOEdge = NULL;
+ }
+ }
+
+ /*! checks whether two WEdge have a common vertex.
+ * Returns a pointer on the common vertex if it exists,
+ * NULL otherwise.
+ */
+ static inline WVertex* CommonVertex(WEdge *iEdge1, WEdge* iEdge2)
+ {
+ if((NULL == iEdge1) || (NULL == iEdge2))
+ return NULL;
+
+ WVertex *wv1 = iEdge1->GetaOEdge()->GetaVertex();
+ WVertex *wv2 = iEdge1->GetaOEdge()->GetbVertex();
+ WVertex *wv3 = iEdge2->GetaOEdge()->GetaVertex();
+ WVertex *wv4 = iEdge2->GetaOEdge()->GetbVertex();
+
+ if((wv1 == wv3) || (wv1 == wv4))
+ {
+ return wv1;
+ }
+ else if((wv2 == wv3) || (wv2 == wv4))
+ {
+ return wv2;
+ }
+
+ return NULL;
+ }
+ /*! accessors */
+ inline WOEdge * GetaOEdge() {return _paOEdge;}
+ inline WOEdge * GetbOEdge() {return _pbOEdge;}
+ inline int GetNumberOfOEdges() {return _nOEdges;}
+ inline int GetId() {return _Id;}
+ inline WVertex * GetaVertex() {return _paOEdge->GetaVertex();}
+ inline WVertex * GetbVertex() {return _paOEdge->GetbVertex();}
+ inline WFace * GetaFace() {return _paOEdge->GetaFace();}
+ inline WFace * GetbFace() {return _paOEdge->GetbFace();}
+ inline WOEdge* GetOtherOEdge(WOEdge* iOEdge)
+ {
+ if(iOEdge == _paOEdge)
+ return _pbOEdge;
+ else
+ return _paOEdge;
+ }
+
+ /*! modifiers */
+ inline void SetaOEdge(WOEdge *iEdge) {_paOEdge = iEdge;}
+ inline void SetbOEdge(WOEdge *iEdge) {_pbOEdge = iEdge;}
+ inline void AddOEdge(WOEdge *iEdge)
+ {
+ if(NULL == _paOEdge)
+ {
+ _paOEdge = iEdge;
+ _nOEdges++;
+ return;
+ }
+ if(NULL == _pbOEdge)
+ {
+ _pbOEdge = iEdge;
+ _nOEdges++;
+ return;
+ }
+ }
+ inline void SetNumberOfOEdges(int n) {_nOEdges = n;}
+ inline void SetId(int id) {_Id = id;}
+ virtual void ResetUserData() {userdata = 0;}
+};
+
+ /**********************************/
+ /* */
+ /* */
+ /* WFace */
+ /* */
+ /* */
+ /**********************************/
+
+
+class LIB_WINGED_EDGE_EXPORT WFace
+{
+protected:
+ vector<WOEdge *> _OEdgeList; // list of oriented edges of bording the face
+ Vec3r _Normal; // normal to the face
+ vector<Vec3r> _VerticesNormals; // in case there is a normal per vertex.
+ // The normal number i corresponds to the
+ // aVertex of the oedge number i, for that face
+ vector<Vec2r> _VerticesTexCoords;
+
+ int _Id;
+ unsigned _MaterialIndex;
+
+public:
+ void *userdata;
+ inline WFace() {userdata = NULL;_MaterialIndex = 0;}
+ /*! copy constructor */
+ WFace(WFace& iBrother);
+ virtual WFace * dupplicate();
+ virtual ~WFace() {}
+
+ /*! accessors */
+ inline const vector<WOEdge*>& GetEdgeList() {return _OEdgeList;}
+ inline WOEdge * GetOEdge(int i) {return _OEdgeList[i];}
+ inline Vec3r& GetNormal() {return _Normal;}
+ inline int GetId() {return _Id;}
+ inline unsigned materialIndex() const {return _MaterialIndex;}
+ const Material& material() ;
+
+ /*! The vertex of index i corresponds to the a vertex
+ * of the edge of index i
+ */
+ inline WVertex* GetVertex(unsigned int index)
+ {
+ // if(index >= _OEdgeList.size())
+ // return NULL;
+ return _OEdgeList[index]->GetaVertex();
+ }
+ /*! returns the index at which iVertex is stored in the
+ * array.
+ * returns -1 if iVertex doesn't belong to the face.
+ */
+ inline int GetIndex(WVertex *iVertex){
+ int index = 0;
+ for(vector<WOEdge*>::iterator woe=_OEdgeList.begin(), woend=_OEdgeList.end();
+ woe!=woend;
+ woe++){
+ if((*woe)->GetaVertex() == iVertex)
+ return index;
+ ++index;
+ }
+ return -1;
+ }
+ inline void RetrieveVertexList(vector<WVertex*>& oVertices)
+ {
+ for(vector<WOEdge*>::iterator woe=_OEdgeList.begin(), woend=_OEdgeList.end();
+ woe!=woend;
+ woe++)
+ {
+ oVertices.push_back((*woe)->GetaVertex());
+ }
+ }
+ inline void RetrieveBorderFaces(vector<const WFace*>& oWFaces)
+ {
+ for(vector<WOEdge*>::iterator woe=_OEdgeList.begin(), woend=_OEdgeList.end();
+ woe!=woend;
+ woe++)
+ {
+ WFace *af;
+ if(NULL != (af = (*woe)->GetaFace()))
+ oWFaces.push_back(af);
+ }
+ }
+ inline WFace * GetBordingFace(int index)
+ {
+ // if(index >= _OEdgeList.size())
+ // return 0;
+ return _OEdgeList[index]->GetaFace();
+ }
+ inline WFace * GetBordingFace(WOEdge *iOEdge)
+ {
+ return iOEdge->GetaFace();
+ }
+ inline vector<Vec3r>& GetPerVertexNormals()
+ {
+ return _VerticesNormals;
+ }
+ inline vector<Vec2r>& GetPerVertexTexCoords()
+ {
+ return _VerticesTexCoords;
+ }
+ /*! Returns the normal of the vertex of index index */
+ inline Vec3r& GetVertexNormal(int index)
+ {
+ return _VerticesNormals[index];
+ }
+ /*! Returns the tex coords of the vertex of index index */
+ inline Vec2r& GetVertexTexCoords(int index)
+ {
+ return _VerticesTexCoords[index];
+ }
+ /*! Returns the normal of the vertex iVertex for that face */
+ inline Vec3r& GetVertexNormal(WVertex *iVertex)
+ {
+ int i = 0;
+ int index = 0;
+ for(vector<WOEdge*>::const_iterator woe=_OEdgeList.begin(), woend=_OEdgeList.end();
+ woe!=woend;
+ woe++)
+ {
+ if((*woe)->GetaVertex() == iVertex)
+ {
+ index = i;
+ break;
+ }
+ ++i;
+ }
+
+ return _VerticesNormals[index];
+ }
+ inline WOEdge* GetNextOEdge(WOEdge* iOEdge)
+ {
+ bool found = false;
+ vector<WOEdge*>::iterator woe,woend, woefirst;
+ woefirst = _OEdgeList.begin();
+ for(woe=woefirst,woend=_OEdgeList.end();
+ woe!=woend;
+ woe++)
+ {
+ if(true == found)
+ return (*woe);
+
+ if((*woe) == iOEdge)
+ {
+ found = true;
+ }
+ }
+
+ // We left the loop. That means that the first
+ // OEdge was the good one:
+ if(found)
+ return (*woefirst);
+
+ return NULL;
+ }
+ WOEdge* GetPrevOEdge(WOEdge* iOEdge);
+
+ inline int numberOfEdges() const { return _OEdgeList.size();}
+ inline int numberOfVertices() const { return _OEdgeList.size();}
+ /*! Returns true if the face has one ot its edge which is a border
+ * edge
+ */
+ inline bool isBorder() const
+ {
+ for(vector<WOEdge*>::const_iterator woe=_OEdgeList.begin(), woeend=_OEdgeList.end();
+ woe!=woeend;
+ ++woe)
+ {
+ if((*woe)->GetOwner()->GetbOEdge() == 0)
+ return true;
+ }
+ return false;
+ }
+ /*! modifiers */
+ inline void SetEdgeList(const vector<WOEdge*>& iEdgeList) {_OEdgeList = iEdgeList;}
+ inline void SetNormal(const Vec3r& iNormal) {_Normal = iNormal;}
+ inline void SetNormalList(const vector<Vec3r>& iNormalsList) {_VerticesNormals = iNormalsList;}
+ inline void SetTexCoordsList(const vector<Vec2r>& iTexCoordsList) {_VerticesTexCoords = iTexCoordsList;}
+ inline void SetId(int id) {_Id = id;}
+ inline void SetMaterialIndex(unsigned iMaterialIndex) {_MaterialIndex = iMaterialIndex;}
+
+ /*! designed to build a specialized WEdge
+ * for use in MakeEdge
+ */
+ virtual WEdge * instanciateEdge() const {return new WEdge;}
+
+ /*! Builds an oriented edge
+ * Returns the built edge.
+ * v1, v2
+ * Vertices at the edge's extremities
+ * The edge is oriented from v1 to v2.
+ */
+ virtual WOEdge * MakeEdge(WVertex *v1, WVertex *v2);
+
+ /*! Adds an edge to the edges list */
+ inline void AddEdge(WOEdge *iEdge) {_OEdgeList.push_back(iEdge);}
+
+ /*! For triangles, returns the edge opposite to the vertex in e.
+ returns flase if the face is not a triangle or if the vertex is not found*/
+ bool getOppositeEdge (const WVertex *v, WOEdge* &e);
+
+ /*! compute the area of the face */
+ real getArea ();
+
+ WShape * getShape() ;
+ virtual void ResetUserData() {userdata = 0;}
+};
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* WShape */
+ /* */
+ /* */
+ /**********************************/
+
+
+class LIB_WINGED_EDGE_EXPORT WShape
+{
+protected:
+ vector<WVertex*> _VertexList;
+ vector<WEdge*> _EdgeList;
+ vector<WFace*> _FaceList;
+ int _Id;
+ static unsigned _SceneCurrentId;
+ Vec3r _min;
+ Vec3r _max;
+ vector<Material> _Materials;
+ real _meanEdgeSize;
+
+public:
+ inline WShape() {_meanEdgeSize = 0;_Id = _SceneCurrentId; _SceneCurrentId++;}
+ /*! copy constructor */
+ WShape(WShape& iBrother);
+ virtual WShape * dupplicate();
+ virtual ~WShape()
+ {
+ if(_EdgeList.size() != 0)
+ {
+ vector<WEdge *>::iterator e;
+ for(e=_EdgeList.begin(); e!=_EdgeList.end(); e++)
+ {
+ delete (*e);
+ }
+ _EdgeList.clear();
+ }
+
+ if(_VertexList.size() != 0)
+ {
+ vector<WVertex *>::iterator v;
+ for(v=_VertexList.begin(); v!=_VertexList.end(); v++)
+ {
+ delete (*v);
+ }
+ _VertexList.clear();
+ }
+
+ if(_FaceList.size() != 0)
+ {
+ vector<WFace *>::iterator f;
+ for(f=_FaceList.begin(); f!=_FaceList.end(); f++)
+ {
+ delete (*f);
+ }
+ _FaceList.clear();
+ }
+ }
+
+ /*! accessors */
+ inline vector<WEdge *>& GetEdgeList() {return _EdgeList;}
+ inline vector<WVertex*>& GetVertexList() {return _VertexList;}
+ inline vector<WFace*>& GetFaceList() {return _FaceList;}
+ inline unsigned GetId() {return _Id;}
+ inline void bbox(Vec3r& min, Vec3r& max) {min=_min; max=_max;}
+ inline const Material& material(unsigned i) const {return _Materials[i];}
+ inline const vector<Material>& materials() const {return _Materials;}
+ inline const real getMeanEdgeSize() const {return _meanEdgeSize;}
+ /*! modifiers */
+ static inline void SetCurrentId(const unsigned id) { _SceneCurrentId = id; }
+ inline void SetEdgeList(const vector<WEdge*>& iEdgeList) {_EdgeList = iEdgeList;}
+ inline void SetVertexList(const vector<WVertex*>& iVertexList) {_VertexList = iVertexList;}
+ inline void SetFaceList(const vector<WFace*>& iFaceList) {_FaceList = iFaceList;}
+ inline void SetId(int id) {_Id = id;}
+ inline void SetBBox(const Vec3r& min, const Vec3r& max) {_min = min; _max=max;}
+ inline void SetMaterial(const Material& material, unsigned i) {_Materials[i]=material;}
+ inline void SetMaterials(const vector<Material>& iMaterials) {_Materials = iMaterials;}
+
+ /*! designed to build a specialized WFace
+ * for use in MakeFace
+ */
+ virtual WFace * instanciateFace() const {return new WFace;}
+
+ /*! adds a new face to the shape
+ * returns the built face.
+ * iVertexList
+ * List of face's vertices. These vertices are
+ * not added to the WShape vertex list; they are
+ * supposed to be already stored when calling MakeFace.
+ * The order in which the vertices are stored in the list
+ * determines the face's edges orientation and (so) the
+ * face orientation.
+ * iMaterialIndex
+ * The material index for this face
+ */
+ virtual WFace * MakeFace(vector<WVertex*>& iVertexList, unsigned iMaterialIndex);
+
+ /*! adds a new face to the shape. The difference with
+ * the previous method is that this one is designed
+ * to build a WingedEdge structure for which there are
+ * per vertex normals, opposed to per face normals.
+ * returns the built face.
+ * iVertexList
+ * List of face's vertices. These vertices are
+ * not added to the WShape vertex list; they are
+ * supposed to be already stored when calling MakeFace.
+ * The order in which the vertices are stored in the list
+ * determines the face's edges orientation and (so) the
+ * face orientation.
+ * iMaterialIndex
+ * The materialIndex for this face
+ * iNormalsList
+ * The list of normals, iNormalsList[i] corresponding to the
+ * normal of the vertex iVertexList[i] for that face.
+ * iTexCoordsList
+ * The list of tex coords, iTexCoordsList[i] corresponding to the
+ * normal of the vertex iVertexList[i] for that face.
+ */
+ virtual WFace * MakeFace(vector<WVertex*>& iVertexList, vector<Vec3r>& iNormalsList, vector<Vec2r>& iTexCoordsList, unsigned iMaterialIndex);
+
+ inline void AddEdge(WEdge *iEdge) {_EdgeList.push_back(iEdge);}
+ inline void AddFace(WFace* iFace) {_FaceList.push_back(iFace);}
+ inline void AddVertex(WVertex *iVertex) {iVertex->SetShape(this); _VertexList.push_back(iVertex);}
+
+ inline void ResetUserData()
+ {
+ for(vector<WVertex*>::iterator v=_VertexList.begin(),vend=_VertexList.end();
+ v!=vend;
+ v++)
+ {
+ (*v)->ResetUserData();
+ }
+
+ for(vector<WEdge*>::iterator e=_EdgeList.begin(),eend=_EdgeList.end();
+ e!=eend;
+ e++)
+ {
+ (*e)->ResetUserData();
+ // manages WOEdge:
+ WOEdge *oe = (*e)->GetaOEdge();
+ if(oe != NULL)
+ oe->ResetUserData();
+ oe = (*e)->GetbOEdge();
+ if(oe != NULL)
+ oe->ResetUserData();
+ }
+
+ for(vector<WFace*>::iterator f=_FaceList.begin(),fend=_FaceList.end();
+ f!=fend;
+ f++)
+ {
+ (*f)->ResetUserData();
+ }
+
+ }
+
+ inline void ComputeBBox()
+ {
+ _min = _VertexList[0]->GetVertex();
+ _max = _VertexList[0]->GetVertex();
+
+ Vec3r v;
+ for(vector<WVertex*>::iterator wv=_VertexList.begin(), wvend=_VertexList.end();
+ wv!=wvend;
+ wv++)
+ {
+ for(unsigned int i=0; i<3; i++)
+ {
+ v = (*wv)->GetVertex();
+ if(v[i] < _min[i])
+ _min[i] = v[i];
+ if(v[i] > _max[i])
+ _max[i] = v[i];
+ }
+ }
+ }
+
+ inline real ComputeMeanEdgeSize(){
+ _meanEdgeSize = _meanEdgeSize/(_EdgeList.size());
+ return _meanEdgeSize;
+ }
+
+protected:
+ /*! Builds the face passed as argument (which as already been allocated)
+ * iVertexList
+ * List of face's vertices. These vertices are
+ * not added to the WShape vertex list; they are
+ * supposed to be already stored when calling MakeFace.
+ * The order in which the vertices are stored in the list
+ * determines the face's edges orientation and (so) the
+ * face orientation.
+ * iMaterialIndex
+ * The material index for this face
+ * face
+ * The Face that is filled in
+ */
+ virtual WFace * MakeFace(vector<WVertex*>& iVertexList, unsigned iMaterialIndex, WFace *face);
+};
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* WingedEdge */
+ /* */
+ /* */
+ /**********************************/
+
+class WingedEdge {
+
+ public:
+
+ WingedEdge() {}
+
+ ~WingedEdge() {
+ clear();
+ }
+
+ void clear() {
+ for (vector<WShape*>::iterator it = _wshapes.begin();
+ it != _wshapes.end();
+ it++)
+ delete *it;
+ _wshapes.clear();
+ }
+
+ void addWShape(WShape* wshape) {
+ _wshapes.push_back(wshape);
+ }
+
+ vector<WShape*>& getWShapes() {
+ return _wshapes;
+ }
+
+ private:
+
+ vector<WShape*> _wshapes;
+};
+
+
+
+/*
+
+ #############################################
+ #############################################
+ #############################################
+ ###### ######
+ ###### I M P L E M E N T A T I O N ######
+ ###### ######
+ #############################################
+ #############################################
+ #############################################
+
+*/
+/* for inline functions */
+void WOEdge::RetrieveCWOrderedEdges(vector<WEdge*>& oEdges)
+{
+
+ WOEdge *currentOEdge = this;
+ do
+ {
+ WOEdge* nextOEdge = currentOEdge->GetbFace()->GetNextOEdge(currentOEdge);
+ oEdges.push_back(nextOEdge->GetOwner());
+ currentOEdge = nextOEdge->GetOwner()->GetOtherOEdge(nextOEdge);
+
+ } while((currentOEdge != NULL) && (currentOEdge->GetOwner() != GetOwner()));
+}
+
+#endif // WEDGE_H
diff --git a/source/blender/freestyle/intern/winged_edge/WFillGrid.cpp b/source/blender/freestyle/intern/winged_edge/WFillGrid.cpp
new file mode 100755
index 00000000000..7d0a2d3c561
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WFillGrid.cpp
@@ -0,0 +1,60 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "WEdge.h"
+#include "WFillGrid.h"
+
+void WFillGrid::fillGrid() {
+ if (!_winged_edge || !_grid)
+ return;
+
+ vector<WShape*> wshapes = _winged_edge->getWShapes();
+ vector<WVertex*> fvertices;
+ vector<Vec3r> vectors;
+ vector<WFace*> faces;
+
+ for (vector<WShape*>::const_iterator it = wshapes.begin();
+ it != wshapes.end();
+ it++) {
+ faces = (*it)->GetFaceList();
+
+ for (vector<WFace*>::const_iterator f = faces.begin();
+ f != faces.end();
+ f++) {
+ (*f)->RetrieveVertexList(fvertices);
+
+ for (vector<WVertex*>::const_iterator wv = fvertices.begin();
+ wv != fvertices.end();
+ wv++)
+ vectors.push_back(Vec3r((*wv)->GetVertex()));
+
+ // occluder will be deleted by the grid
+ Polygon3r *occluder =
+ new Polygon3r(vectors, (*f)->GetNormal());
+ occluder->setId(_polygon_id++);
+ occluder->userdata = (void*)(*f);
+ _grid->insertOccluder(occluder);
+ vectors.clear();
+ fvertices.clear();
+ }
+ faces.clear();
+ }
+}
diff --git a/source/blender/freestyle/intern/winged_edge/WFillGrid.h b/source/blender/freestyle/intern/winged_edge/WFillGrid.h
new file mode 100755
index 00000000000..2ebbc2f359a
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WFillGrid.h
@@ -0,0 +1,80 @@
+//
+// Filename : WFillGrid.h
+// Author(s) : Stephane Grabli
+// Emmanuel Turquin
+// Purpose : Class to fill in a grid from a SceneGraph
+// (uses only the WingedEdge structures)
+// Date of creation : 03/05/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef W_FILL_GRID_H
+# define W_FILL_GRID_H
+
+# include "../geometry/Grid.h"
+# include "../geometry/Polygon.h"
+# include "WEdge.h"
+
+class LIB_WINGED_EDGE_EXPORT WFillGrid
+{
+public:
+
+ inline WFillGrid(Grid* grid = 0, WingedEdge* winged_edge = 0) {
+ _winged_edge = winged_edge;
+ _grid = grid;
+ _polygon_id = 0;
+ }
+
+ virtual ~WFillGrid() {}
+
+ void fillGrid();
+
+ /*! Accessors */
+ WingedEdge* getWingedEdge() {
+ return _winged_edge;
+ }
+
+ Grid* getGrid() {
+ return _grid;
+ }
+
+ /*! Modifiers */
+ void setWingedEdge(WingedEdge* winged_edge) {
+ if (winged_edge)
+ _winged_edge = winged_edge;
+ }
+
+ void setGrid(Grid* grid) {
+ if (grid)
+ _grid = grid;
+ }
+
+private:
+
+ Grid* _grid;
+ WingedEdge* _winged_edge;
+ unsigned _polygon_id;
+};
+
+#endif // WS_FILL_GRID_H
diff --git a/source/blender/freestyle/intern/winged_edge/WSFillGrid.cpp b/source/blender/freestyle/intern/winged_edge/WSFillGrid.cpp
new file mode 100755
index 00000000000..cf3734b488e
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WSFillGrid.cpp
@@ -0,0 +1,60 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "WSEdge.h"
+#include "WSFillGrid.h"
+
+void WSFillGrid::fillGrid() {
+ if (!_winged_edge || !_grid)
+ return;
+
+ vector<WShape*> wshapes = _winged_edge->getWShapes();
+ vector<WVertex*> fvertices;
+ vector<Vec3r> vectors;
+ vector<WFace*> faces;
+
+ for (vector<WShape*>::const_iterator it = wshapes.begin();
+ it != wshapes.end();
+ it++) {
+ faces = (*it)->GetFaceList();
+
+ for (vector<WFace*>::const_iterator f = faces.begin();
+ f != faces.end();
+ f++) {
+ (*f)->RetrieveVertexList(fvertices);
+
+ for (vector<WVertex*>::const_iterator wv = fvertices.begin();
+ wv != fvertices.end();
+ wv++)
+ vectors.push_back(Vec3r((*wv)->GetVertex()));
+
+ // occluder will be deleted by the grid
+ Polygon3r *occluder =
+ new Polygon3r(vectors, (*f)->GetNormal());
+ occluder->setId(_polygon_id++);
+ occluder->userdata = (void*)(*f);
+ _grid->insertOccluder(occluder);
+ vectors.clear();
+ fvertices.clear();
+ }
+ faces.clear();
+ }
+}
diff --git a/source/blender/freestyle/intern/winged_edge/WSFillGrid.h b/source/blender/freestyle/intern/winged_edge/WSFillGrid.h
new file mode 100755
index 00000000000..976fdca8e46
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WSFillGrid.h
@@ -0,0 +1,79 @@
+//
+// Filename : WSFillGrid.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to fill in a grid from a SceneGraph
+// (uses only the WingedEdge structures)
+// Date of creation : 03/05/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef WS_FILL_GRID_H
+# define WS_FILL_GRID_H
+
+# include "Grid.h"
+# include "Polygon.h"
+# include "WEdge.h"
+
+class LIB_WINGED_EDGE_EXPORT WSFillGrid
+{
+public:
+
+ inline WSFillGrid(Grid* grid = 0, WingedEdge* winged_edge = 0) {
+ _winged_edge = winged_edge;
+ _grid = grid;
+ _polygon_id = 0;
+ }
+
+ virtual ~WSFillGrid() {}
+
+ void fillGrid();
+
+ /*! Accessors */
+ WingedEdge* getWingedEdge() {
+ return _winged_edge;
+ }
+
+ Grid* getGrid() {
+ return _grid;
+ }
+
+ /*! Modifiers */
+ void setWingedEdge(WingedEdge* winged_edge) {
+ if (winged_edge)
+ _winged_edge = winged_edge;
+ }
+
+ void setGrid(Grid* grid) {
+ if (grid)
+ _grid = grid;
+ }
+
+private:
+
+ Grid* _grid;
+ WingedEdge* _winged_edge;
+ unsigned _polygon_id;
+};
+
+#endif // WS_FILL_GRID_H
diff --git a/source/blender/freestyle/intern/winged_edge/WXEdge.cpp b/source/blender/freestyle/intern/winged_edge/WXEdge.cpp
new file mode 100755
index 00000000000..115a4f61789
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WXEdge.cpp
@@ -0,0 +1,296 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "WXEdge.h"
+
+ /**********************************/
+ /* */
+ /* */
+ /* WXFace */
+ /* */
+ /* */
+ /**********************************/
+
+unsigned int WXFaceLayer::Get0VertexIndex() const {
+ int i = 0;
+ int nEdges = _pWXFace->numberOfEdges();
+ for(i=0; i<nEdges; ++i){
+ if(_DotP[i] == 0){
+ return i;
+ }
+ }
+ return -1;
+}
+unsigned int WXFaceLayer::GetSmoothEdgeIndex() const{
+ int i = 0;
+ int nEdges = _pWXFace->numberOfEdges();
+ for(i=0; i<nEdges; ++i){
+ if((_DotP[i] == 0) && (_DotP[(i+1)%nEdges] == 0)){
+ return i;
+ }
+ }
+ return -1;
+}
+
+void WXFaceLayer::RetrieveCuspEdgesIndices(vector<int>& oCuspEdges){
+ int i = 0;
+ int nEdges = _pWXFace->numberOfEdges();
+ for(i=0; i<nEdges; ++i){
+ if(_DotP[i]*_DotP[(i+1)%nEdges] < 0){
+ // we got one
+ oCuspEdges.push_back(i);
+ }
+ }
+}
+
+WXSmoothEdge* WXFaceLayer::BuildSmoothEdge(){
+ // if the smooth edge has already been
+ // built: exit
+ if(0 != _pSmoothEdge)
+ return _pSmoothEdge;
+ real ta, tb;
+ WOEdge *woea(0), *woeb(0);
+ bool ok = false;
+ vector<int> cuspEdgesIndices;
+ int indexStart, indexEnd;
+ unsigned nedges = _pWXFace->numberOfEdges();
+ if(_nNullDotP == nedges){
+ _pSmoothEdge = 0;
+ return _pSmoothEdge;
+ }
+ if((_nPosDotP != 0) && (_nPosDotP != _DotP.size()) && (_nNullDotP == 0)){
+ // that means that we have a smooth edge that starts from
+ // an edge and ends at an edge
+ //-----------------------------
+ // We retrieve the 2 edges for which we have
+ // opposite signs for each extremity
+ RetrieveCuspEdgesIndices(cuspEdgesIndices);
+ if(cuspEdgesIndices.size() != 2) // we necessarly have 2 cusp edges
+ return 0;
+
+ // let us determine which cusp edge corresponds to the starting:
+ // We can do that because we defined that
+ // a silhouette edge had the back facing part on its right.
+ // So if the WOEdge woea is such that woea[0].dotp > 0 and
+ // woea[1].dotp < 0, it is the starting edge.
+ //-------------------------------------------
+
+ if(_DotP[cuspEdgesIndices[0]] > 0){
+ woea = _pWXFace->GetOEdge(cuspEdgesIndices[0]);
+ woeb = _pWXFace->GetOEdge(cuspEdgesIndices[1]);
+ indexStart = cuspEdgesIndices[0];
+ indexEnd = cuspEdgesIndices[1];
+ }else{
+ woea = _pWXFace->GetOEdge(cuspEdgesIndices[1]);
+ woeb = _pWXFace->GetOEdge(cuspEdgesIndices[0]);
+ indexStart = cuspEdgesIndices[1];
+ indexEnd = cuspEdgesIndices[0];
+ }
+
+ // Compute the interpolation:
+ ta = _DotP[indexStart]/(_DotP[indexStart]-_DotP[(indexStart+1)%nedges]);
+ tb = _DotP[indexEnd]/(_DotP[indexEnd]-_DotP[(indexEnd+1)%nedges]);
+ ok = true;
+ }else if(_nNullDotP == 1){
+ // that means that we have exactly one of the
+ // 2 extremities of our silhouette edge is
+ // a vertex of the mesh
+ if((_nPosDotP == 2) || (_nPosDotP == 0)){
+ _pSmoothEdge = 0;
+ return _pSmoothEdge;
+ }
+ RetrieveCuspEdgesIndices(cuspEdgesIndices);
+ // We should have only one EdgeCusp:
+ if(cuspEdgesIndices.size() != 1){
+ cout << "Warning in BuildSmoothEdge: weird WXFace configuration" << endl;
+ _pSmoothEdge = 0;
+ return 0;
+ }
+ unsigned index0 = Get0VertexIndex(); // retrieve the 0 vertex index
+ unsigned nedges = _pWXFace->numberOfEdges();
+ if(_DotP[cuspEdgesIndices[0]] > 0){
+ woea = _pWXFace->GetOEdge(cuspEdgesIndices[0]);
+ woeb = _pWXFace->GetOEdge(index0);
+ indexStart = cuspEdgesIndices[0];
+ ta = _DotP[indexStart]/(_DotP[indexStart]-_DotP[(indexStart+1)%nedges]);
+ tb = 0.0;
+ }else{
+ woea = _pWXFace->GetOEdge(index0);
+ woeb = _pWXFace->GetOEdge(cuspEdgesIndices[0]);
+ indexEnd = cuspEdgesIndices[0];
+ ta = 0.0;
+ tb = _DotP[indexEnd]/(_DotP[indexEnd]-_DotP[(indexEnd+1)%nedges]);
+ }
+ ok = true;
+ }else if(_nNullDotP == 2){
+ // that means that the silhouette edge
+ // is an edge of the mesh
+ int index = GetSmoothEdgeIndex();
+ if(!_pWXFace->front()) {// is it in the right order ?
+ // the order of the WOEdge index is wrong
+ woea = _pWXFace->GetOEdge((index+1)%nedges);
+ woeb = _pWXFace->GetOEdge((index-1)%nedges);
+ ta = 0;
+ tb = 1;
+ ok = true;
+ }else{
+ // here it's not good, our edge is a single point -> skip that face
+ ok = false;
+ // the order of the WOEdge index is good
+ // woea = _pWXFace->GetOEdge((index-1)%nedges);
+ // woeb = _pWXFace->GetOEdge((index+1)%nedges);
+ // ta = 1;
+ // tb = 0;
+ }
+ }
+ if(ok){
+ _pSmoothEdge = new WXSmoothEdge;
+ _pSmoothEdge->SetWOeA(woea);
+ _pSmoothEdge->SetWOeB(woeb);
+ _pSmoothEdge->SetTa(ta);
+ _pSmoothEdge->SetTb(tb);
+ if(_Nature & Nature::SILHOUETTE){
+ if(_nNullDotP != 2){
+ if(_DotP[_ClosestPointIndex] + 0.01 > 0)
+ _pSmoothEdge->SetFront(true);
+ else
+ _pSmoothEdge->SetFront(false);
+ }
+ }
+ }
+
+ // check bording edges to see if they have different dotp values
+ // in bording faces.
+ // for(int i=0; i<numberOfEdges(); i++)
+ // {
+ // WSFace * bface = (WSFace*)GetBordingFace(i);
+ // if(bface != 0)
+ // {
+ // if((front())^(bface->front())) // fA->front XOR fB->front (true if one is 0 and the other is 1)
+ // {
+ // // that means that the edge i of the face is
+ // // a silhouette edge
+ // // TESTER D'ABORD SI LE EXACTSILHOUETTEEDGE N'A PAS
+ // // ETE CONSTRUIT SUR L'AUTRE FACE.(1 suffit)
+ // if(0 != ((WSExactFace*)bface)->exactSilhouetteEdge())
+ // {
+ // // that means that this silhouette edge has already been built
+ // return ((WSExactFace*)bface)->exactSilhouetteEdge();
+ // }
+ // // Else we must build it
+ // WOEdge *woea, *woeb;
+ // real ta, tb;
+ // if(!front()) // is it in the right order ?
+ // {
+ // // the order of the WOEdge index is wrong
+ // woea = _OEdgeList[(i+1)%numberOfEdges()];
+ // if(0 == i)
+ // woeb = _OEdgeList[numberOfEdges()-1];
+ // else
+ // woeb = _OEdgeList[(i-1)];
+ // ta = 0;
+ // tb = 1;
+ // }
+ // else
+ // {
+ // // the order of the WOEdge index is good
+ // if(0 == i)
+ // woea = _OEdgeList[numberOfEdges()-1];
+ // else
+ // woea = _OEdgeList[(i-1)];
+ // woeb = _OEdgeList[(i+1)%numberOfEdges()];
+ // ta = 1;
+ // tb = 0;
+ // }
+ //
+ // _pSmoothEdge = new ExactSilhouetteEdge(ExactSilhouetteEdge::VERTEX_VERTEX);
+ // _pSmoothEdge->SetWOeA(woea);
+ // _pSmoothEdge->SetWOeA(woeb);
+ // _pSmoothEdge->SetTa(ta);
+ // _pSmoothEdge->SetTb(tb);
+ //
+ // return _pSmoothEdge;
+ // }
+ // }
+ //}
+ return _pSmoothEdge;
+}
+
+
+void WXFace::ComputeCenter()
+{
+ vector<WVertex*> iVertexList;
+ RetrieveVertexList(iVertexList);
+ Vec3r center;
+ for(vector<WVertex*>::iterator wv=iVertexList.begin(),wvend=iVertexList.end();
+ wv!=wvend;
+ wv++)
+ {
+ center += (*wv)->GetVertex();
+ }
+ center /= (real)iVertexList.size();
+ SetCenter(center);
+}
+
+ /**********************************/
+ /* */
+ /* */
+ /* WXShape */
+ /* */
+ /* */
+ /**********************************/
+
+
+WFace* WXShape::MakeFace(vector<WVertex*>& iVertexList, unsigned iMaterialIndex)
+{
+ WFace *face = WShape::MakeFace(iVertexList, iMaterialIndex);
+ if(0 == face)
+ return 0;
+
+ Vec3r center;
+ for(vector<WVertex*>::iterator wv=iVertexList.begin(),wvend=iVertexList.end();
+ wv!=wvend;
+ wv++)
+ {
+ center += (*wv)->GetVertex();
+ }
+ center /= (real)iVertexList.size();
+ ((WXFace*)face)->SetCenter(center);
+
+ return face;
+}
+
+WFace * WXShape::MakeFace(vector<WVertex*>& iVertexList, vector<Vec3r>& iNormalsList, vector<Vec2r>& iTexCoordsList, unsigned iMaterialIndex)
+{
+ WFace *face = WShape::MakeFace(iVertexList, iNormalsList, iTexCoordsList, iMaterialIndex);
+
+ // Vec3r center;
+ // for(vector<WVertex*>::iterator wv=iVertexList.begin(),wvend=iVertexList.end();
+ // wv!=wvend;
+ // wv++)
+ // {
+ // center += (*wv)->GetVertex();
+ // }
+ // center /= (real)iVertexList.size();
+ // ((WSFace*)face)->SetCenter(center);
+
+ return face;
+}
+
diff --git a/source/blender/freestyle/intern/winged_edge/WXEdge.h b/source/blender/freestyle/intern/winged_edge/WXEdge.h
new file mode 100755
index 00000000000..beacb1a9ca9
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WXEdge.h
@@ -0,0 +1,582 @@
+//
+// Filename : WXEdge.h
+// Author(s) : Stephane Grabli
+// Purpose : Classes to define an Extended Winged Edge data structure.
+// Date of creation : 26/10/2003
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef WXEDGE_H
+# define WXEDGE_H
+
+# include "WEdge.h"
+# include "Nature.h"
+# include "Curvature.h"
+
+typedef Nature::EdgeNature WXNature;
+
+ /**********************************/
+ /* */
+ /* */
+ /* WXVertex */
+ /* */
+ /* */
+ /**********************************/
+
+class WXVertex : public WVertex
+{
+private:
+ // Curvature info
+ CurvatureInfo *_curvatures;
+
+public:
+ inline WXVertex(const Vec3r &v)
+ : WVertex(v)
+ {_curvatures = 0;}
+ /*! Copy constructor */
+ WXVertex(WXVertex& iBrother)
+ : WVertex(iBrother)
+ {_curvatures = new CurvatureInfo(*iBrother._curvatures);}
+ virtual WVertex * dupplicate()
+ {
+ WXVertex *clone = new WXVertex(*this);
+ return clone;
+ }
+ virtual ~WXVertex() {if(_curvatures) delete _curvatures;}
+ virtual void Reset() {if(_curvatures) _curvatures->Kr = 0.0;}
+ inline void setCurvatures(CurvatureInfo *ci) {_curvatures = ci;}
+
+ inline bool isFeature();
+ inline CurvatureInfo* curvatures() {return _curvatures;}
+
+};
+
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* WXEdge */
+ /* */
+ /* */
+ /**********************************/
+class WXEdge : public WEdge
+{
+private:
+ WXNature _nature; // flag to indicate whether the edge is a silhouette edge or not
+ int _order; // 0: the order doesn't matter. 1: the order is the orginal one. -1: the order is not good
+ bool _front; // a front facing edge is an edge for which the bording face which is the nearest
+ // from the viewpoint is front. A back facing edge is the opposite.
+
+public:
+ inline WXEdge()
+ : WEdge(){
+ _nature = Nature::NO_FEATURE;
+ _front = false;
+ _order=0;
+ }
+
+ inline WXEdge(WOEdge *iOEdge)
+ : WEdge(iOEdge)
+ { _nature = Nature::NO_FEATURE;_front = false;_order=0;}
+
+ inline WXEdge(WOEdge *iaOEdge, WOEdge *ibOEdge)
+ : WEdge(iaOEdge, ibOEdge)
+ { _nature = Nature::NO_FEATURE;_front = false;_order=0;}
+
+ /*! Copy constructor */
+ inline WXEdge(WXEdge& iBrother)
+ : WEdge(iBrother)
+ {_nature = iBrother.nature();_front = iBrother._front;_order = iBrother._order;}
+ virtual WEdge * dupplicate()
+ {
+ WXEdge *clone = new WXEdge(*this);
+ return clone;
+ }
+
+ virtual ~WXEdge()
+ {}
+
+ virtual void Reset(){
+ _nature = _nature & ~Nature::SILHOUETTE;
+ _nature = _nature & ~Nature::SUGGESTIVE_CONTOUR;
+ }
+
+ /*! accessors */
+ inline WXNature nature() {return _nature;}
+ inline bool front() {return _front;}
+ inline int order() const {return _order;}
+
+ /*! modifiers */
+ inline void SetFront(bool iFront) {_front = iFront;}
+ inline void SetNature(WXNature iNature) {_nature = iNature;}
+ inline void AddNature(WXNature iNature) {_nature = _nature|iNature;}
+ inline void SetOrder(int i) {_order = i;}
+
+};
+
+ /**********************************/
+ /* */
+ /* */
+ /* WXFace */
+ /* */
+ /* */
+ /**********************************/
+
+/*! Class to store a smooth edge (i.e Hertzman & Zorin smooth silhouette edges) */
+class WXSmoothEdge{
+public:
+ typedef enum{
+ EDGE_EDGE,
+ VERTEX_EDGE,
+ EDGE_VERTEX
+ } Configuration;
+
+ WOEdge *_woea; // Oriented edge from which the silhouette edge starts
+ WOEdge *_woeb; // Oriented edge where the silhouette edge ends
+ real _ta; // The silhouette starting point's coordinates are : _woea[0]+ta*(_woea[1]-_woea[0])
+ real _tb; // The silhouette ending point's coordinates are : _woeb[0]+ta*(_woeb[1]-_woeb[0])
+ bool _front;
+ Configuration _config;
+
+ WXSmoothEdge(){
+ _woea = 0;
+ _woeb = 0;
+ _ta = 0;
+ _tb = 0;
+ _front = false;
+ _config = EDGE_EDGE;
+ }
+ WXSmoothEdge(const WXSmoothEdge& iBrother){
+ _woea = iBrother._woea;
+ _woeb = iBrother._woeb;
+ _ta = iBrother._ta;
+ _tb = iBrother._tb;
+ _config = iBrother._config;
+ _front = iBrother._front;
+ }
+ ~WXSmoothEdge() {}
+
+ inline WOEdge * woea() {return _woea;}
+ inline WOEdge * woeb() {return _woeb;}
+ inline real ta() const {return _ta;}
+ inline real tb() const {return _tb;}
+ inline bool front() const {return _front;}
+ inline Configuration configuration() const {return _config;}
+
+ /*! modifiers */
+ inline void SetWOeA(WOEdge *iwoea) {_woea = iwoea;}
+ inline void SetWOeB(WOEdge *iwoeb) {_woeb = iwoeb;}
+ inline void SetTa(real ta) {_ta = ta;}
+ inline void SetTb(real tb) {_tb = tb;}
+ inline void SetFront(bool iFront) {_front = iFront;}
+ inline void SetConfiguration(Configuration iConf) {_config = iConf;}
+
+};
+/* Class to store a value per vertex and a smooth edge.
+ * The WXFace stores a list of these
+ */
+class WXFace;
+class LIB_WINGED_EDGE_EXPORT WXFaceLayer{
+public:
+ void * userdata;
+ WXFace * _pWXFace;
+ vector<real> _DotP;// in case of silhouette: the values obtained when computing the normal-view direction
+ // dot product. _DotP[i] is this value for the vertex i for that
+ // face.
+ WXSmoothEdge * _pSmoothEdge;
+ WXNature _Nature;
+
+ //tmp values
+ unsigned _nPosDotP; // count the number of positive dot products for vertices.
+ // if this number is != 0 and !=_DotP.size() -> it is a silhouette fac
+
+ unsigned _nNullDotP; // count the number of null dot products for vertices.
+ unsigned _ClosestPointIndex;
+ bool _viewDependant;
+
+ WXFaceLayer(WXFace *iFace, WXNature iNature, bool viewDependant){
+ _pWXFace = iFace;
+ _pSmoothEdge = 0;
+ _nPosDotP = 0;
+ _nNullDotP=0;
+ _Nature = iNature;
+ _viewDependant = viewDependant;
+ userdata = 0;
+ }
+ WXFaceLayer(const WXFaceLayer& iBrother){
+ _pWXFace = iBrother._pWXFace;
+ _pSmoothEdge = 0;
+ _DotP = iBrother._DotP;
+ _nPosDotP = iBrother._nPosDotP;
+ _nNullDotP = iBrother._nNullDotP;
+ _Nature = iBrother._Nature;
+ if(0 != iBrother._pSmoothEdge)
+ {
+ _pSmoothEdge = new WXSmoothEdge(*(iBrother._pSmoothEdge));
+ }
+ _viewDependant = iBrother._viewDependant;
+ userdata = 0;
+ }
+ virtual ~WXFaceLayer() {
+ if(!_DotP.empty())
+ _DotP.clear();
+ if(0 != _pSmoothEdge){
+ delete _pSmoothEdge;
+ _pSmoothEdge = 0;
+ }
+ }
+ inline const real dotP(int i) const {return _DotP[i];}
+ inline unsigned nPosDotP() const {return _nPosDotP;}
+ inline unsigned nNullDotP() const {return _nNullDotP;}
+ inline int closestPointIndex() const {return _ClosestPointIndex;}
+ inline Nature::EdgeNature nature() const {return _Nature;}
+ inline bool hasSmoothEdge() const {if(_pSmoothEdge) return true; return false;}
+ inline WXFace * getFace() {return _pWXFace;}
+ inline WXSmoothEdge * getSmoothEdge() {return _pSmoothEdge;}
+ inline bool isViewDependant() const {return _viewDependant;}
+ inline void SetClosestPointIndex(int iIndex) {_ClosestPointIndex = iIndex;}
+
+ inline void removeSmoothEdge() {
+ if(!_DotP.empty())
+ _DotP.clear();
+ if (_pSmoothEdge) {
+ delete _pSmoothEdge;
+ _pSmoothEdge = 0;
+ }
+ }
+
+ /*! If one of the face layer vertex has a DotP equal
+ * to 0, this method returns the vertex where it happens
+ */
+ unsigned int Get0VertexIndex() const ;
+
+ /*! In case one of the edge of the triangle
+ * is a smooth edge, this method
+ * allows to retrieve the concerned edge
+ */
+ unsigned int GetSmoothEdgeIndex() const;
+ /*! retrieves the edges of the triangle for which
+ * the signs are different (a null value is not considered) for the dotp
+ * values at each edge extrimity
+ */
+ void RetrieveCuspEdgesIndices(vector<int>& oCuspEdges);
+ WXSmoothEdge * BuildSmoothEdge();
+ inline void SetDotP(const vector<real>& iDotP) {_DotP = iDotP;}
+ inline void PushDotP(real iDotP) {
+ _DotP.push_back(iDotP);
+ if(iDotP > 0)
+ ++_nPosDotP;
+ if(iDotP == 0)
+ ++_nNullDotP;
+ }
+ inline void ReplaceDotP(unsigned int index, real newDotP){
+ _DotP[index] = newDotP;
+ updateDotPInfos();
+ }
+ inline void updateDotPInfos() {
+ for(vector<real>::iterator d=_DotP.begin(), dend=_DotP.end();
+ d!=dend;
+ ++d){
+ _nPosDotP = 0;
+ _nNullDotP = 0;
+ if((*d) > 0)
+ ++_nPosDotP;
+ if((*d) == 0)
+ ++_nNullDotP;
+ }
+ }
+};
+
+
+class WXFace : public WFace
+{
+protected:
+ Vec3r _center; // center of the face
+ real _Z; // distance from viewpoint to the center of the face
+ bool _front; // flag to tell whether the face is front facing or back facing
+ real _dotp; // value obtained when computing the normal-viewpoint dot product
+
+ vector<WXFaceLayer*> _SmoothLayers; // The data needed to store one or several smooth edges that traverse the face
+public:
+ inline WXFace() : WFace() {_Z=0.0;_front = false;}
+ /*! Copy constructor */
+ WXFace(WXFace& iBrother)
+ : WFace(iBrother)
+ {
+ _center = iBrother.center();
+ _Z = iBrother.Z();
+ _front = iBrother.front();
+ for(vector<WXFaceLayer*>::iterator wxf = iBrother._SmoothLayers.begin(), wxfend = iBrother._SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ _SmoothLayers.push_back(new WXFaceLayer(**wxf));
+ }
+ }
+ virtual WFace * dupplicate()
+ {
+ WXFace * clone = new WXFace(*this);
+ return clone;
+ }
+
+ virtual ~WXFace() {
+ if(!_SmoothLayers.empty()){
+ for(vector<WXFaceLayer*>::iterator wxf = _SmoothLayers.begin(), wxfend = _SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ delete (*wxf);
+ }
+ _SmoothLayers.clear();
+ }
+ }
+
+ /*! designed to build a specialized WEdge
+ * for use in MakeEdge
+ */
+ virtual WEdge * instanciateEdge() const {return new WXEdge;}
+
+ /*! accessors */
+ inline Vec3r& center() {return _center;}
+ inline real Z() {return _Z;}
+ inline bool front() {return _front;}
+ inline real dotp() {return _dotp;}
+ inline bool hasSmoothEdges() const {
+ for(vector<WXFaceLayer*>::const_iterator wxf = _SmoothLayers.begin(), wxfend = _SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ if( ((*wxf)->hasSmoothEdge())){
+ return true;
+ }
+ }
+ return false;
+ }
+ vector<WXFaceLayer*>& getSmoothLayers() {return _SmoothLayers;}
+ /*! retrieve the smooth edges that match the Nature given as argument */
+ void retrieveSmoothEdges(WXNature iNature, vector<WXSmoothEdge*>& oSmoothEdges){
+ for(vector<WXFaceLayer*>::iterator wxf = _SmoothLayers.begin(), wxfend = _SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ if( ((*wxf)->hasSmoothEdge()) && ((*wxf)->_Nature & iNature) ){
+ oSmoothEdges.push_back((*wxf)->_pSmoothEdge);
+ }
+ }
+ }
+ void retrieveSmoothEdgesLayers(WXNature iNature, vector<WXFaceLayer*>& oSmoothEdgesLayers){
+ for(vector<WXFaceLayer*>::iterator wxf = _SmoothLayers.begin(), wxfend = _SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ if( ((*wxf)->hasSmoothEdge()) && ((*wxf)->_Nature & iNature) ){
+ oSmoothEdgesLayers.push_back((*wxf));
+ }
+ }
+ }
+ void retrieveSmoothLayers(WXNature iNature, vector<WXFaceLayer*>& oSmoothLayers){
+ for(vector<WXFaceLayer*>::iterator wxf = _SmoothLayers.begin(), wxfend = _SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ if((*wxf)->_Nature & iNature){
+ oSmoothLayers.push_back(*wxf);
+ }
+ }
+ }
+ /*! modifiers */
+ inline void SetCenter(const Vec3r& iCenter) {_center = iCenter;}
+ void ComputeCenter();
+ inline void SetZ(real z) {_Z = z;}
+ inline void SetFront(bool iFront) {_front = iFront;}
+ inline void SetDotP(real iDotP)
+ {
+ _dotp = iDotP;
+ if(_dotp > 0)
+ _front = true;
+ else
+ _front = false;
+ }
+ inline void AddSmoothLayer(WXFaceLayer * iLayer){
+ _SmoothLayers.push_back(iLayer);
+ }
+ inline void Reset() {
+ vector<WXFaceLayer*> layersToKeep;
+ for(vector<WXFaceLayer*>::iterator wxf = _SmoothLayers.begin(), wxfend = _SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ if((*wxf)->isViewDependant())
+ delete (*wxf);
+ else
+ layersToKeep.push_back(*wxf);
+ }
+ _SmoothLayers = layersToKeep;
+ }
+ /*! Clears everything */
+ inline void Clear() {
+ for(vector<WXFaceLayer*>::iterator wxf = _SmoothLayers.begin(), wxfend = _SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ delete (*wxf);
+ }
+ _SmoothLayers.clear();
+ }
+ virtual void ResetUserData() {
+ WFace::ResetUserData();
+ for(vector<WXFaceLayer*>::iterator wxf = _SmoothLayers.begin(), wxfend = _SmoothLayers.end();
+ wxf != wxfend;
+ ++wxf){
+ (*wxf)->userdata = 0;
+ }
+ }
+};
+
+
+ /**********************************/
+ /* */
+ /* */
+ /* WXShape */
+ /* */
+ /* */
+ /**********************************/
+
+
+class WXShape : public WShape
+{
+public:
+ typedef WXShape type_name;
+protected:
+ bool _computeViewIndependant; // flag to indicate whether the view independant stuff must be computed or not
+public:
+ inline WXShape() : WShape() {_computeViewIndependant = true;}
+ /*! copy constructor */
+ inline WXShape(WXShape& iBrother)
+ :WShape(iBrother)
+ {
+ _computeViewIndependant = iBrother._computeViewIndependant;
+ }
+ virtual WShape * dupplicate()
+ {
+ WXShape *clone = new WXShape(*this);
+ return clone;
+ }
+
+ virtual ~WXShape()
+ {
+ }
+
+ inline bool getComputeViewIndependantFlag() const {return _computeViewIndependant;}
+ inline void setComputeViewIndependantFlag(bool iFlag) {_computeViewIndependant = iFlag;}
+
+ /*! designed to build a specialized WFace
+ * for use in MakeFace
+ */
+ virtual WFace * instanciateFace() const {return new WXFace;}
+
+ /*! adds a new face to the shape
+ * returns the built face.
+ * iVertexList
+ * List of face's vertices. These vertices are
+ * not added to the WShape vertex list; they are
+ * supposed to be already stored when calling MakeFace.
+ * The order in which the vertices are stored in the list
+ * determines the face's edges orientation and (so) the
+ * face orientation.
+ */
+ virtual WFace * MakeFace(vector<WVertex*>& iVertexList, unsigned iMaterialIndex);
+
+ /*! adds a new face to the shape. The difference with
+ * the previous method is that this one is designed
+ * to build a WingedEdge structure for which there are
+ * per vertex normals, opposed to per face normals.
+ * returns the built face.
+ * iVertexList
+ * List of face's vertices. These vertices are
+ * not added to the WShape vertex list; they are
+ * supposed to be already stored when calling MakeFace.
+ * The order in which the vertices are stored in the list
+ * determines the face's edges orientation and (so) the
+ * face orientation.
+ * iNormalsList
+ * The list of normals, iNormalsList[i] corresponding to the
+ * normal of the vertex iVertexList[i] for that face.
+ * iTexCoordsList
+ * The list of tex coords, iTexCoordsList[i] corresponding to the
+ * normal of the vertex iVertexList[i] for that face.
+ */
+ virtual WFace * MakeFace(vector<WVertex*>& iVertexList, vector<Vec3r>& iNormalsList, vector<Vec2r>& iTexCoordsList, unsigned iMaterialIndex);
+
+ /*! Reset all edges and vertices flags (which might
+ * have been set up on a previous pass)
+ */
+ virtual void Reset(){
+ // Reset Edges
+ vector<WEdge*>& wedges = GetEdgeList();
+ for(vector<WEdge*>::iterator we=wedges.begin(),weend=wedges.end();
+ we!=weend;
+ we++){
+ ((WXEdge*)(*we))->Reset();
+ }
+
+ //Reset faces:
+ vector<WFace*>& wfaces = GetFaceList();
+ for(vector<WFace*>::iterator wf=wfaces.begin(),wfend=wfaces.end();
+ wf!=wfend;
+ wf++){
+ ((WXFace*)(*wf))->Reset();
+ }
+ }
+ /*! accessors */
+};
+
+/*
+
+ #############################################
+ #############################################
+ #############################################
+ ###### ######
+ ###### I M P L E M E N T A T I O N ######
+ ###### ######
+ #############################################
+ #############################################
+ #############################################
+
+*/
+/* for inline functions */
+
+bool WXVertex::isFeature()
+{
+ int counter = 0;
+ vector<WEdge*>& vedges = GetEdges();
+ for(vector<WEdge*>::iterator ve=vedges.begin(), vend=vedges.end();
+ ve!=vend;
+ ve++)
+ {
+ if(((WXEdge*)(*ve))->nature() != Nature::NO_FEATURE)
+ counter++;
+ }
+
+ if((counter == 1) || (counter > 2))
+ return true;
+
+ return false;
+}
+
+
+#endif
diff --git a/source/blender/freestyle/intern/winged_edge/WXEdgeBuilder.cpp b/source/blender/freestyle/intern/winged_edge/WXEdgeBuilder.cpp
new file mode 100755
index 00000000000..534c6e323a9
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WXEdgeBuilder.cpp
@@ -0,0 +1,43 @@
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "WXEdgeBuilder.h"
+#include "WXEdge.h"
+
+void WXEdgeBuilder::visitIndexedFaceSet(IndexedFaceSet& ifs)
+{
+ WXShape *shape = new WXShape;
+ buildWShape(*shape, ifs);
+ shape->SetId(ifs.getId().getFirst());
+ //ifs.SetId(shape->GetId());
+}
+
+void WXEdgeBuilder::buildWVertices(WShape& shape,
+ const real *vertices,
+ unsigned vsize) {
+ WXVertex *vertex;
+ for (unsigned i = 0; i < vsize; i += 3) {
+ vertex = new WXVertex(Vec3r(vertices[i],
+ vertices[i + 1],
+ vertices[i + 2]));
+ vertex->SetId(i / 3);
+ shape.AddVertex(vertex);
+ }
+}
diff --git a/source/blender/freestyle/intern/winged_edge/WXEdgeBuilder.h b/source/blender/freestyle/intern/winged_edge/WXEdgeBuilder.h
new file mode 100755
index 00000000000..b646d66a285
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WXEdgeBuilder.h
@@ -0,0 +1,51 @@
+#ifndef WXEDGEBUILDER_H
+# define WXEDGEBUILDER_H
+
+//
+// Filename : WSBuilder.h
+// Author(s) : Stephane Grabli
+// Purpose : Class inherited from WingedEdgeBuilder and
+// designed to build a WX (WingedEdge + extended info(silhouette etc...))
+// structure from a polygonal model
+// Date of creation : 28/05/03
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+# include "WingedEdgeBuilder.h"
+# include "../scene_graph/IndexedFaceSet.h"
+
+class LIB_WINGED_EDGE_EXPORT WXEdgeBuilder : public WingedEdgeBuilder
+{
+public:
+ WXEdgeBuilder() : WingedEdgeBuilder() {}
+ virtual ~WXEdgeBuilder() {}
+ VISIT_DECL(IndexedFaceSet)
+
+protected:
+ virtual void buildWVertices(WShape& shape,
+ const real *vertices,
+ unsigned vsize);
+};
+
+#endif // WXEDGEBUILDER_H
diff --git a/source/blender/freestyle/intern/winged_edge/WingedEdgeBuilder.cpp b/source/blender/freestyle/intern/winged_edge/WingedEdgeBuilder.cpp
new file mode 100755
index 00000000000..98e7c269248
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WingedEdgeBuilder.cpp
@@ -0,0 +1,362 @@
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "../geometry/GeomUtils.h"
+#include "../scene_graph/NodeShape.h"
+#include "WingedEdgeBuilder.h"
+#include <set>
+using namespace std;
+
+void WingedEdgeBuilder::visitIndexedFaceSet(IndexedFaceSet& ifs) {
+ WShape *shape = new WShape;
+ buildWShape(*shape, ifs);
+ shape->SetId(ifs.getId().getFirst());
+ //ifs.SetId(shape->GetId());
+}
+
+void WingedEdgeBuilder::visitNodeShape(NodeShape& ns) {
+ //Sets the current material to iShapeode->material:
+ _current_material = &(ns.material());
+}
+
+void WingedEdgeBuilder::visitNodeTransform(NodeTransform& tn) {
+ if(!_current_matrix) {
+ _current_matrix = new Matrix44r(tn.matrix());
+ return;
+ }
+
+ _matrices_stack.push_back(_current_matrix);
+ Matrix44r *new_matrix = new Matrix44r(*_current_matrix * tn.matrix());
+ _current_matrix = new_matrix;
+}
+
+void WingedEdgeBuilder::visitNodeTransformAfter(NodeTransform&) {
+ if(_current_matrix)
+ delete _current_matrix;
+
+ if(_matrices_stack.empty()) {
+ _current_matrix = NULL;
+ return;
+ }
+
+ _current_matrix = _matrices_stack.back();
+ _matrices_stack.pop_back();
+}
+
+void WingedEdgeBuilder::buildWShape(WShape& shape, IndexedFaceSet& ifs) {
+ unsigned vsize = ifs.vsize();
+ unsigned nsize = ifs.nsize();
+ unsigned tsize = ifs.tsize();
+
+ const real* vertices = ifs.vertices();
+ const real* normals = ifs.normals();
+ const real* texCoords = ifs.texCoords();
+
+ real* new_vertices;
+ real* new_normals;
+
+ new_vertices = new real[vsize];
+ new_normals = new real[nsize];
+
+ // transform coordinates from local to world system
+ if(_current_matrix) {
+ transformVertices(vertices, vsize, *_current_matrix, new_vertices);
+ transformNormals(normals, nsize, *_current_matrix, new_normals);
+ }
+ else {
+ memcpy(new_vertices, vertices, vsize * sizeof(*new_vertices));
+ memcpy(new_normals, normals, nsize * sizeof(*new_normals));
+ }
+
+ const IndexedFaceSet::TRIANGLES_STYLE* faceStyle = ifs.trianglesStyle();
+
+ vector<Material> materials;
+ if(ifs.msize()){
+ const Material*const* mats = ifs.materials();
+ for(unsigned i=0; i<ifs.msize(); ++i)
+ materials.push_back(*(mats[i]));
+ shape.SetMaterials(materials);
+ }
+
+ // const Material * mat = (ifs.material());
+ // if (mat)
+ // shape.SetMaterial(*mat);
+ // else if(_current_material)
+ // shape.SetMaterial(*_current_material);
+
+ // sets the current WShape to shape
+ _current_wshape = &shape;
+
+ // create a WVertex for each vertex
+ buildWVertices(shape, new_vertices, vsize);
+
+ const unsigned* vindices = ifs.vindices();
+ const unsigned* nindices = ifs.nindices();
+ const unsigned* tindices = 0;
+ if(ifs.tsize()){
+ tindices = ifs.tindices();
+ }
+
+ const unsigned *mindices = 0;
+ if(ifs.msize())
+ mindices = ifs.mindices();
+ const unsigned* numVertexPerFace = ifs.numVertexPerFaces();
+ const unsigned numfaces = ifs.numFaces();
+
+ for (unsigned index = 0; index < numfaces; index++) {
+ switch(faceStyle[index]) {
+ case IndexedFaceSet::TRIANGLE_STRIP:
+ buildTriangleStrip(new_vertices,
+ new_normals,
+ materials,
+ texCoords,
+ vindices,
+ nindices,
+ mindices,
+ tindices,
+ numVertexPerFace[index]);
+ break;
+ case IndexedFaceSet::TRIANGLE_FAN:
+ buildTriangleFan(new_vertices,
+ new_normals,
+ materials,
+ texCoords,
+ vindices,
+ nindices,
+ mindices,
+ tindices,
+ numVertexPerFace[index]);
+ break;
+ case IndexedFaceSet::TRIANGLES:
+ buildTriangles(new_vertices,
+ new_normals,
+ materials,
+ texCoords,
+ vindices,
+ nindices,
+ mindices,
+ tindices,
+ numVertexPerFace[index]);
+ break;
+ }
+ vindices += numVertexPerFace[index];
+ nindices += numVertexPerFace[index];
+ if(mindices)
+ mindices += numVertexPerFace[index];
+ if(tindices)
+ tindices += numVertexPerFace[index];
+ }
+
+ delete[] new_vertices;
+ delete[] new_normals;
+
+ // compute bbox
+ shape.ComputeBBox();
+ // compute mean edge size:
+ shape.ComputeMeanEdgeSize();
+
+ // Parse the built winged-edge shape to update post-flags
+ set<Vec3r> normalsSet;
+ vector<WVertex*>& wvertices = shape.GetVertexList();
+ for(vector<WVertex*>::iterator wv=wvertices.begin(), wvend=wvertices.end();
+ wv!=wvend;
+ ++wv){
+ if((*wv)->isBoundary())
+ continue;
+ normalsSet.clear();
+ WVertex::face_iterator fit = (*wv)->faces_begin();
+ WVertex::face_iterator fitend = (*wv)->faces_end();
+ while(fit!=fitend){
+ WFace *face = *fit;
+ normalsSet.insert(face->GetVertexNormal(*wv));
+ if(normalsSet.size()!=1){
+ break;
+ }
+ ++fit;
+ }
+ if(normalsSet.size()!=1){
+ (*wv)->SetSmooth(false);
+ }
+ }
+ // Adds the new WShape to the WingedEdge structure
+ _winged_edge->addWShape(&shape);
+}
+
+void WingedEdgeBuilder::buildWVertices(WShape& shape,
+ const real *vertices,
+ unsigned vsize) {
+ WVertex *vertex;
+ for (unsigned i = 0; i < vsize; i += 3) {
+ vertex = new WVertex(Vec3r(vertices[i],
+ vertices[i + 1],
+ vertices[i + 2]));
+ vertex->SetId(i / 3);
+ shape.AddVertex(vertex);
+ }
+}
+
+void WingedEdgeBuilder::buildTriangleStrip( const real *vertices,
+ const real *normals,
+ vector<Material>& iMaterials,
+ const real *texCoords,
+ const unsigned *vindices,
+ const unsigned *nindices,
+ const unsigned *mindices,
+ const unsigned *tindices,
+ const unsigned nvertices) {
+ unsigned nDoneVertices = 2; // number of vertices already treated
+ unsigned nTriangle = 0; // number of the triangle currently being treated
+ //int nVertex = 0; // vertex number
+
+ WShape* currentShape = _current_wshape; // the current shape being built
+ vector<WVertex *> triangleVertices;
+ vector<Vec3r> triangleNormals;
+ vector<Vec2r> triangleTexCoords;
+
+ while(nDoneVertices < nvertices)
+ {
+ //clear the vertices list:
+ triangleVertices.clear();
+ //Then rebuild it:
+ if(0 == nTriangle%2) // if nTriangle is even
+ {
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[nTriangle]/3]);
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[nTriangle+1]/3]);
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[nTriangle+2]/3]);
+
+ triangleNormals.push_back(Vec3r(normals[nindices[nTriangle]],normals[nindices[nTriangle]+1], normals[nindices[nTriangle]+2]));
+ triangleNormals.push_back(Vec3r(normals[nindices[nTriangle+1]],normals[nindices[nTriangle+1]+1],normals[nindices[nTriangle+1]+2]));
+ triangleNormals.push_back(Vec3r(normals[nindices[nTriangle+2]], normals[nindices[nTriangle+2]+1], normals[nindices[nTriangle+2]+2]));
+
+ if(texCoords){
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[nTriangle]],texCoords[tindices[nTriangle]+1]));
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[nTriangle+1]],texCoords[tindices[nTriangle+1]+1]));
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[nTriangle+2]], texCoords[tindices[nTriangle+2]+1]));
+ }
+ }
+ else // if nTriangle is odd
+ {
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[nTriangle]/3]);
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[nTriangle+2]/3]);
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[nTriangle+1]/3]);
+
+ triangleNormals.push_back(Vec3r(normals[nindices[nTriangle]],normals[nindices[nTriangle]+1], normals[nindices[nTriangle]+2]));
+ triangleNormals.push_back(Vec3r(normals[nindices[nTriangle+2]],normals[nindices[nTriangle+2]+1],normals[nindices[nTriangle+2]+2]));
+ triangleNormals.push_back(Vec3r(normals[nindices[nTriangle+1]], normals[nindices[nTriangle+1]+1], normals[nindices[nTriangle+1]+2]));
+
+ if(texCoords){
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[nTriangle]],texCoords[tindices[nTriangle]+1]));
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[nTriangle+2]],texCoords[tindices[nTriangle+2]+1]));
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[nTriangle+1]], texCoords[tindices[nTriangle+1]+1]));
+ }
+ }
+ if(mindices)
+ currentShape->MakeFace(triangleVertices, triangleNormals, triangleTexCoords, mindices[nTriangle/3]);
+ else
+ currentShape->MakeFace(triangleVertices, triangleNormals, triangleTexCoords, 0);
+ nDoneVertices++; // with a strip, each triangle is one vertex more
+ nTriangle++;
+ }
+}
+
+void WingedEdgeBuilder::buildTriangleFan( const real *vertices,
+ const real *normals,
+ vector<Material>& iMaterials,
+ const real *texCoords,
+ const unsigned *vindices,
+ const unsigned *nindices,
+ const unsigned *mindices,
+ const unsigned *tindices,
+ const unsigned nvertices) {
+ // Nothing to be done
+}
+
+void WingedEdgeBuilder::buildTriangles(const real *vertices,
+ const real *normals,
+ vector<Material>& iMaterials,
+ const real *texCoords,
+ const unsigned *vindices,
+ const unsigned *nindices,
+ const unsigned *mindices,
+ const unsigned *tindices,
+ const unsigned nvertices) {
+ WShape * currentShape = _current_wshape; // the current shape begin built
+ vector<WVertex *> triangleVertices;
+ vector<Vec3r> triangleNormals;
+ vector<Vec2r> triangleTexCoords;
+
+ // Each triplet of vertices is considered as an independent triangle
+ for(unsigned i = 0; i < nvertices / 3; i++)
+ {
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[3*i]/3]);
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[3*i+1]/3]);
+ triangleVertices.push_back(currentShape->GetVertexList()[vindices[3*i+2]/3]);
+
+ triangleNormals.push_back(Vec3r(normals[nindices[3*i]],normals[nindices[3*i]+1], normals[nindices[3*i]+2]));
+ triangleNormals.push_back(Vec3r(normals[nindices[3*i+1]],normals[nindices[3*i+1]+1],normals[nindices[3*i+1]+2]));
+ triangleNormals.push_back(Vec3r(normals[nindices[3*i+2]], normals[nindices[3*i+2]+1], normals[nindices[3*i+2]+2]));
+
+ if(texCoords){
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[3*i]],texCoords[tindices[3*i]+1]));
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[3*i+1]],texCoords[tindices[3*i+1]+1]));
+ triangleTexCoords.push_back(Vec2r(texCoords[tindices[3*i+2]], texCoords[tindices[3*i+2]+1]));
+ }
+ }
+ if(mindices)
+ currentShape->MakeFace(triangleVertices, triangleNormals, triangleTexCoords, mindices[0]);
+ else
+ currentShape->MakeFace(triangleVertices, triangleNormals, triangleTexCoords,0);
+
+}
+
+void WingedEdgeBuilder::transformVertices(const real *vertices,
+ unsigned vsize,
+ const Matrix44r& transform,
+ real *res) {
+ const real *v = vertices;
+ real *pv = res;
+
+ for (unsigned i = 0; i < vsize / 3; i++) {
+ HVec3r hv_tmp(v[0], v[1], v[2]);
+ HVec3r hv(transform * hv_tmp);
+ for (unsigned j = 0; j < 3; j++)
+ pv[j] = hv[j] / hv[3];
+ v += 3;
+ pv += 3;
+ }
+}
+
+void WingedEdgeBuilder::transformNormals(const real *normals,
+ unsigned nsize,
+ const Matrix44r& transform,
+ real* res) {
+ const real *n = normals;
+ real *pn = res;
+
+ for (unsigned i = 0; i < nsize / 3; i++) {
+ Vec3r hn(n[0], n[1], n[2]);
+ hn = GeomUtils::rotateVector(transform, hn);
+ for (unsigned j = 0; j < 3; j++)
+ pn[j] = hn[j];
+ n += 3;
+ pn += 3;
+ }
+}
diff --git a/source/blender/freestyle/intern/winged_edge/WingedEdgeBuilder.h b/source/blender/freestyle/intern/winged_edge/WingedEdgeBuilder.h
new file mode 100755
index 00000000000..fe033f2ea0b
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/WingedEdgeBuilder.h
@@ -0,0 +1,160 @@
+//
+// Filename : WingedEdgeBuilder.h
+// Author(s) : Stephane Grabli
+// Purpose : Class to render a WingedEdge data structure
+// from a polyhedral data structure organized in
+// nodes of a scene graph
+// Date of creation : 28/05/03
+//
+///////////////////////////////////////////////////////////////////////////////
+
+
+//
+// Copyright (C) : Please refer to the COPYRIGHT file distributed
+// with this source distribution.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef WINGED_EDGE_BUILDER_H
+# define WINGED_EDGE_BUILDER_H
+
+# include "../system/FreestyleConfig.h"
+# include "../scene_graph/SceneVisitor.h"
+# include "WEdge.h"
+# include "../scene_graph/IndexedFaceSet.h"
+# include "../scene_graph/NodeTransform.h"
+
+class LIB_WINGED_EDGE_EXPORT WingedEdgeBuilder : public SceneVisitor
+{
+ public:
+
+ inline WingedEdgeBuilder() : SceneVisitor() {
+ _current_wshape = NULL;
+ _current_material = NULL;
+ _current_matrix = NULL;
+ _winged_edge = new WingedEdge; // Not deleted by the destructor
+ }
+
+ virtual ~WingedEdgeBuilder() {
+ for (vector<Matrix44r*>::iterator it = _matrices_stack.begin();
+ it != _matrices_stack.end();
+ it++)
+ delete *it;
+ _matrices_stack.clear();
+ }
+
+ VISIT_DECL(IndexedFaceSet)
+ VISIT_DECL(NodeShape)
+ VISIT_DECL(NodeTransform)
+
+ virtual void visitNodeTransformAfter(NodeTransform&);
+
+ //
+ // Accessors
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ inline WingedEdge* getWingedEdge() {
+ return _winged_edge;
+ }
+
+ inline WShape* getCurrentWShape() {
+ return _current_wshape;
+ }
+
+ inline Material* getCurrentMaterial() {
+ return _current_material;
+ }
+
+ inline Matrix44r* getCurrentMatrix() {
+ return _current_matrix;
+ }
+
+ //
+ // Modifiers
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ inline void setCurrentWShape(WShape* wshape) {
+ _current_wshape = wshape;
+ }
+
+ inline void setCurrentMaterial(Material* mat) {
+ _current_material = mat;
+ }
+
+ // inline void setCurrentMatrix(Matrix44r* matrix) {
+ // _current_matrix = matrix;
+ // }
+
+ protected:
+
+ virtual void buildWShape(WShape& shape, IndexedFaceSet& ifs);
+ virtual void buildWVertices(WShape& shape,
+ const real *vertices,
+ unsigned vsize);
+
+ private:
+
+ void buildTriangleStrip(const real *vertices,
+ const real *normals,
+ vector<Material>& iMaterials,
+ const real *texCoords,
+ const unsigned *vindices,
+ const unsigned *nindices,
+ const unsigned *mindices,
+ const unsigned *tindices,
+ const unsigned nvertices);
+
+ void buildTriangleFan(const real *vertices,
+ const real *normals,
+ vector<Material>& iMaterials,
+ const real *texCoords,
+ const unsigned *vindices,
+ const unsigned *nindices,
+ const unsigned *mindices,
+ const unsigned *tindices,
+ const unsigned nvertices);
+
+ void buildTriangles(const real *vertices,
+ const real *normals,
+ vector<Material>& iMaterials,
+ const real *texCoords,
+ const unsigned *vindices,
+ const unsigned *nindices,
+ const unsigned *mindices,
+ const unsigned *tindices,
+ const unsigned nvertices);
+
+ void transformVertices(const real *vertices,
+ unsigned vsize,
+ const Matrix44r& transform,
+ real *res);
+
+ void transformNormals(const real *normals,
+ unsigned nsize,
+ const Matrix44r& transform,
+ real *res);
+
+ WShape* _current_wshape;
+ Material* _current_material;
+ WingedEdge* _winged_edge;
+ Matrix44r* _current_matrix;
+ vector<Matrix44r*> _matrices_stack;
+};
+
+#endif // WINGED_EDGE_BUILDER_H
diff --git a/source/blender/freestyle/intern/winged_edge/src.pri b/source/blender/freestyle/intern/winged_edge/src.pri
new file mode 100755
index 00000000000..9cf40633dcf
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/src.pri
@@ -0,0 +1,21 @@
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+WINGED_EDGE_DIR = ../winged_edge
+
+SOURCES *= $${WINGED_EDGE_DIR}/Curvature.cpp \
+ $${WINGED_EDGE_DIR}/WEdge.cpp \
+ $${WINGED_EDGE_DIR}/WFillGrid.cpp \
+ $${WINGED_EDGE_DIR}/WingedEdgeBuilder.cpp \
+ $${WINGED_EDGE_DIR}/WXEdgeBuilder.cpp \
+ $${WINGED_EDGE_DIR}/WXEdge.cpp
+
+HEADERS *= $${WINGED_EDGE_DIR}/Curvature.h \
+ $${WINGED_EDGE_DIR}/Nature.h \
+ $${WINGED_EDGE_DIR}/WEdge.h \
+ $${WINGED_EDGE_DIR}/WFillGrid.h \
+ $${WINGED_EDGE_DIR}/WingedEdgeBuilder.h \
+ $${WINGED_EDGE_DIR}/WXEdgeBuilder.h \
+ $${WINGED_EDGE_DIR}/WXEdge.h
diff --git a/source/blender/freestyle/intern/winged_edge/winged_edge.pro b/source/blender/freestyle/intern/winged_edge/winged_edge.pro
new file mode 100755
index 00000000000..e36d69454b6
--- /dev/null
+++ b/source/blender/freestyle/intern/winged_edge/winged_edge.pro
@@ -0,0 +1,84 @@
+# This file should be viewed as a -*- mode: Makefile -*-
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# W A R N I N G ! ! ! #
+# a u t h o r i z e d p e r s o n a l o n l y #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+include(../Config.pri)
+
+TEMPLATE = lib
+
+TARGET = $${LIB_WINGED_EDGE}
+VERSION = $${APPVERSION}
+TARGET_VERSION_EXT = $${APPVERSION_MAJ}.$${APPVERSION_MID}
+
+#
+# CONFIG
+#
+#######################################
+
+CONFIG *= dll
+
+#
+# DEFINES
+#
+#######################################
+
+win32:DEFINES *= MAKE_LIB_WINGED_EDGE_DLL
+
+#
+# INCLUDE PATH
+#
+#######################################
+
+#INCLUDEPATH *= ../geometry ../scene_graph ../system
+
+#
+# BUILD DIRECTORIES
+#
+#######################################
+
+BUILD_DIR = ../../build
+
+OBJECTS_DIR = $${BUILD_DIR}/$${REL_OBJECTS_DIR}
+!win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}/lib
+win32:DESTDIR = $${BUILD_DIR}/$${REL_DESTDIR}
+
+#
+# LIBS
+#
+#######################################
+
+win32:LIBS *= $${DESTDIR}/$${LIB_GEOMETRY}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SCENE_GRAPH}$${LIBVERSION}.lib \
+ $${DESTDIR}/$${LIB_SYSTEM}$${LIBVERSION}.lib
+!win32 {
+ lib_bundle {
+ LIBS += -F$${DESTDIR} -framework $${LIB_GEOMETRY} \
+ -framework $${LIB_SYSTEM} -framework $${LIB_SCENE_GRAPH}
+ } else {
+ LIBS += -L$${DESTDIR} -l$${LIB_GEOMETRY} -l$${LIB_SCENE_GRAPH} -l$${LIB_SYSTEM}
+ }
+}
+
+
+#
+# INSTALL
+#
+#######################################
+
+LIB_DIR = ../../lib
+# install library
+target.path = $$LIB_DIR
+# "make install" configuration options
+INSTALLS += target
+
+#
+# SOURCES & HEADERS
+#
+#######################################
+
+!static {
+ include(src.pri)
+}
diff --git a/source/blender/freestyle/style_modules/ChainingIterators.py b/source/blender/freestyle/style_modules/ChainingIterators.py
new file mode 100755
index 00000000000..60255c3d094
--- /dev/null
+++ b/source/blender/freestyle/style_modules/ChainingIterators.py
@@ -0,0 +1,731 @@
+#
+# Filename : ChainingIterators.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Chaining Iterators to be used with chaining operators
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+
+## the natural chaining iterator
+## It follows the edges of same nature following the topology of
+## objects with preseance on silhouettes, then borders,
+## then suggestive contours, then everything else. It doesn't chain the same ViewEdge twice
+## You can specify whether to stay in the selection or not.
+class pyChainSilhouetteIterator(ChainingIterator):
+ def __init__(self, stayInSelection=1):
+ ChainingIterator.__init__(self, stayInSelection, 1,None,1)
+ def getExactTypeName(self):
+ return "pyChainSilhouetteIterator"
+ def traverse(self, iter):
+ winner = None
+ it = AdjacencyIterator(iter)
+ nextVertex = self.getVertex()
+ if(nextVertex.getNature() & T_VERTEX != 0):
+ tvertex = nextVertex.castToTVertex()
+ mateVE = tvertex.mate(self.getCurrentEdge())
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getId() == mateVE.getId() ):
+ winner = ve
+ break
+ it.increment()
+ else:
+ ## case of NonTVertex
+ natures = [SILHOUETTE,BORDER,CREASE,SUGGESTIVE_CONTOUR,VALLEY,RIDGE]
+ for i in range(len(natures)):
+ currentNature = self.getCurrentEdge().getNature()
+ if(natures[i] & currentNature):
+ count=0
+ while(it.isEnd() == 0):
+ visitNext = 0
+ oNature = it.getObject().getNature()
+ if(oNature & natures[i] != 0):
+ if(natures[i] != oNature):
+ for j in range(i):
+ if(natures[j] & oNature != 0):
+ visitNext = 1
+ break
+ if(visitNext != 0):
+ break
+ count = count+1
+ winner = it.getObject()
+ it.increment()
+ if(count != 1):
+ winner = None
+ break
+ return winner
+
+## the natural chaining iterator
+## It follows the edges of same nature on the same
+## objects with preseance on silhouettes, then borders,
+## then suggestive contours, then everything else. It doesn't chain the same ViewEdge twice
+## You can specify whether to stay in the selection or not.
+## You can specify whether to chain iterate over edges that were
+## already visited or not.
+class pyChainSilhouetteGenericIterator(ChainingIterator):
+ def __init__(self, stayInSelection=1, stayInUnvisited=1):
+ ChainingIterator.__init__(self, stayInSelection, stayInUnvisited,None,1)
+ def getExactTypeName(self):
+ return "pyChainSilhouetteGenericIterator"
+ def traverse(self, iter):
+ winner = None
+ it = AdjacencyIterator(iter)
+ nextVertex = self.getVertex()
+ if(nextVertex.getNature() & T_VERTEX != 0):
+ tvertex = nextVertex.castToTVertex()
+ mateVE = tvertex.mate(self.getCurrentEdge())
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getId() == mateVE.getId() ):
+ winner = ve
+ break
+ it.increment()
+ else:
+ ## case of NonTVertex
+ natures = [SILHOUETTE,BORDER,CREASE,SUGGESTIVE_CONTOUR,VALLEY,RIDGE]
+ for i in range(len(natures)):
+ currentNature = self.getCurrentEdge().getNature()
+ if(natures[i] & currentNature):
+ count=0
+ while(it.isEnd() == 0):
+ visitNext = 0
+ oNature = it.getObject().getNature()
+ ve = it.getObject()
+ if(ve.getId() == self.getCurrentEdge().getId()):
+ it.increment()
+ continue
+ if(oNature & natures[i] != 0):
+ if(natures[i] != oNature):
+ for j in range(i):
+ if(natures[j] & oNature != 0):
+ visitNext = 1
+ break
+ if(visitNext != 0):
+ break
+ count = count+1
+ winner = ve
+ it.increment()
+ if(count != 1):
+ winner = None
+ break
+ return winner
+
+class pyExternalContourChainingIterator(ChainingIterator):
+ def __init__(self):
+ ChainingIterator.__init__(self, 0, 1,None,1)
+ self._isExternalContour = ExternalContourUP1D()
+
+ def getExactTypeName(self):
+ return "pyExternalContourIterator"
+
+ def init(self):
+ self._nEdges = 0
+ self._isInSelection = 1
+
+ def checkViewEdge(self, ve, orientation):
+ if(orientation != 0):
+ vertex = ve.B()
+ else:
+ vertex = ve.A()
+ it = AdjacencyIterator(vertex,1,1)
+ while(it.isEnd() == 0):
+ ave = it.getObject()
+ if(self._isExternalContour(ave)):
+ return 1
+ it.increment()
+ print "pyExternlContourChainingIterator : didn't find next edge"
+ return 0
+ def traverse(self, iter):
+ winner = None
+ it = AdjacencyIterator(iter)
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(self._isExternalContour(ve)):
+ if (ve.getTimeStamp() == GetTimeStampCF()):
+ winner = ve
+ it.increment()
+
+ self._nEdges = self._nEdges+1
+ if(winner == None):
+ orient = 1
+ it = AdjacencyIterator(iter)
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(it.isIncoming() != 0):
+ orient = 0
+ good = self.checkViewEdge(ve,orient)
+ if(good != 0):
+ winner = ve
+ it.increment()
+ return winner
+
+## the natural chaining iterator
+## with a sketchy multiple touch
+class pySketchyChainSilhouetteIterator(ChainingIterator):
+ def __init__(self, nRounds=3,stayInSelection=1):
+ ChainingIterator.__init__(self, stayInSelection, 0,None,1)
+ self._timeStamp = GetTimeStampCF()+nRounds
+ self._nRounds = nRounds
+ def getExactTypeName(self):
+ return "pySketchyChainSilhouetteIterator"
+ def init(self):
+ self._timeStamp = GetTimeStampCF()+self._nRounds
+ def traverse(self, iter):
+ winner = None
+ it = AdjacencyIterator(iter)
+ nextVertex = self.getVertex()
+ if(nextVertex.getNature() & T_VERTEX != 0):
+ tvertex = nextVertex.castToTVertex()
+ mateVE = tvertex.mate(self.getCurrentEdge())
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getId() == mateVE.getId() ):
+ winner = ve
+ break
+ it.increment()
+ else:
+ ## case of NonTVertex
+ natures = [SILHOUETTE,BORDER,CREASE,SUGGESTIVE_CONTOUR,VALLEY,RIDGE]
+ for i in range(len(natures)):
+ currentNature = self.getCurrentEdge().getNature()
+ if(natures[i] & currentNature):
+ count=0
+ while(it.isEnd() == 0):
+ visitNext = 0
+ oNature = it.getObject().getNature()
+ ve = it.getObject()
+ if(ve.getId() == self.getCurrentEdge().getId()):
+ it.increment()
+ continue
+ if(oNature & natures[i] != 0):
+ if(natures[i] != oNature):
+ for j in range(i):
+ if(natures[j] & oNature != 0):
+ visitNext = 1
+ break
+ if(visitNext != 0):
+ break
+ count = count+1
+ winner = ve
+ it.increment()
+ if(count != 1):
+ winner = None
+ break
+ if(winner == None):
+ winner = self.getCurrentEdge()
+ if(winner.getChainingTimeStamp() == self._timeStamp):
+ winner = None
+ return winner
+
+
+# Chaining iterator designed for sketchy style.
+# can chain several times the same ViewEdge
+# in order to produce multiple strokes per ViewEdge.
+class pySketchyChainingIterator(ChainingIterator):
+ def __init__(self, nRounds=3, stayInSelection=1):
+ ChainingIterator.__init__(self, stayInSelection, 0,None,1)
+ self._timeStamp = GetTimeStampCF()+nRounds
+ self._nRounds = nRounds
+ def getExactTypeName(self):
+ return "pySketchyChainingIterator"
+
+ def init(self):
+ self._timeStamp = GetTimeStampCF()+self._nRounds
+
+ def traverse(self, iter):
+ winner = None
+ it = AdjacencyIterator(iter)
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getId() == self.getCurrentEdge().getId()):
+ it.increment()
+ continue
+ winner = ve
+ it.increment()
+ if(winner == None):
+ winner = self.getCurrentEdge()
+ if(winner.getChainingTimeStamp() == self._timeStamp):
+ return None
+ return winner
+
+
+## Chaining iterator that fills small occlusions
+## percent
+## The max length of the occluded part
+## expressed in % of the total chain length
+class pyFillOcclusionsRelativeChainingIterator(ChainingIterator):
+ def __init__(self, percent):
+ ChainingIterator.__init__(self, 0, 1,None,1)
+ self._length = 0
+ self._percent = float(percent)
+ def getExactTypeName(self):
+ return "pyFillOcclusionsChainingIterator"
+ def init(self):
+ # each time we're evaluating a chain length
+ # we try to do it once. Thus we reinit
+ # the chain length here:
+ self._length = 0
+ def traverse(self, iter):
+ winner = None
+ winnerOrientation = 0
+ print self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond()
+ it = AdjacencyIterator(iter)
+ nextVertex = self.getVertex()
+ if(nextVertex.getNature() & T_VERTEX != 0):
+ tvertex = nextVertex.castToTVertex()
+ mateVE = tvertex.mate(self.getCurrentEdge())
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getId() == mateVE.getId() ):
+ winner = ve
+ if(it.isIncoming() == 0):
+ winnerOrientation = 1
+ else:
+ winnerOrientation = 0
+ break
+ it.increment()
+ else:
+ ## case of NonTVertex
+ natures = [SILHOUETTE,BORDER,CREASE,SUGGESTIVE_CONTOUR,VALLEY,RIDGE]
+ for nat in natures:
+ if(self.getCurrentEdge().getNature() & nat != 0):
+ count=0
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getNature() & nat != 0):
+ count = count+1
+ winner = ve
+ if(it.isIncoming() == 0):
+ winnerOrientation = 1
+ else:
+ winnerOrientation = 0
+ it.increment()
+ if(count != 1):
+ winner = None
+ break
+ if(winner != None):
+ # check whether this edge was part of the selection
+ if(winner.getTimeStamp() != GetTimeStampCF()):
+ #print "---", winner.getId().getFirst(), winner.getId().getSecond()
+ # if not, let's check whether it's short enough with
+ # respect to the chain made without staying in the selection
+ #------------------------------------------------------------
+ # Did we compute the prospective chain length already ?
+ if(self._length == 0):
+ #if not, let's do it
+ _it = pyChainSilhouetteGenericIterator(0,0)
+ _it.setBegin(winner)
+ _it.setCurrentEdge(winner)
+ _it.setOrientation(winnerOrientation)
+ _it.init()
+ while(_it.isEnd() == 0):
+ ve = _it.getObject()
+ #print "--------", ve.getId().getFirst(), ve.getId().getSecond()
+ self._length = self._length + ve.getLength2D()
+ _it.increment()
+ if(_it.isBegin() != 0):
+ break;
+ _it.setBegin(winner)
+ _it.setCurrentEdge(winner)
+ _it.setOrientation(winnerOrientation)
+ if(_it.isBegin() == 0):
+ _it.decrement()
+ while ((_it.isEnd() == 0) and (_it.isBegin() == 0)):
+ ve = _it.getObject()
+ #print "--------", ve.getId().getFirst(), ve.getId().getSecond()
+ self._length = self._length + ve.getLength2D()
+ _it.decrement()
+
+ # let's do the comparison:
+ # nw let's compute the length of this connex non selected part:
+ connexl = 0
+ _cit = pyChainSilhouetteGenericIterator(0,0)
+ _cit.setBegin(winner)
+ _cit.setCurrentEdge(winner)
+ _cit.setOrientation(winnerOrientation)
+ _cit.init()
+ while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())):
+ ve = _cit.getObject()
+ #print "-------- --------", ve.getId().getFirst(), ve.getId().getSecond()
+ connexl = connexl + ve.getLength2D()
+ _cit.increment()
+ if(connexl > self._percent * self._length):
+ winner = None
+ return winner
+
+## Chaining iterator that fills small occlusions
+## size
+## The max length of the occluded part
+## expressed in pixels
+class pyFillOcclusionsAbsoluteChainingIterator(ChainingIterator):
+ def __init__(self, length):
+ ChainingIterator.__init__(self, 0, 1,None,1)
+ self._length = float(length)
+ def getExactTypeName(self):
+ return "pySmallFillOcclusionsChainingIterator"
+ def traverse(self, iter):
+ winner = None
+ winnerOrientation = 0
+ #print self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond()
+ it = AdjacencyIterator(iter)
+ nextVertex = self.getVertex()
+ if(nextVertex.getNature() & T_VERTEX != 0):
+ tvertex = nextVertex.castToTVertex()
+ mateVE = tvertex.mate(self.getCurrentEdge())
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getId() == mateVE.getId() ):
+ winner = ve
+ if(it.isIncoming() == 0):
+ winnerOrientation = 1
+ else:
+ winnerOrientation = 0
+ break
+ it.increment()
+ else:
+ ## case of NonTVertex
+ natures = [SILHOUETTE,BORDER,CREASE,SUGGESTIVE_CONTOUR,VALLEY,RIDGE]
+ for nat in natures:
+ if(self.getCurrentEdge().getNature() & nat != 0):
+ count=0
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getNature() & nat != 0):
+ count = count+1
+ winner = ve
+ if(it.isIncoming() == 0):
+ winnerOrientation = 1
+ else:
+ winnerOrientation = 0
+ it.increment()
+ if(count != 1):
+ winner = None
+ break
+ if(winner != None):
+ # check whether this edge was part of the selection
+ if(winner.getTimeStamp() != GetTimeStampCF()):
+ #print "---", winner.getId().getFirst(), winner.getId().getSecond()
+ # nw let's compute the length of this connex non selected part:
+ connexl = 0
+ _cit = pyChainSilhouetteGenericIterator(0,0)
+ _cit.setBegin(winner)
+ _cit.setCurrentEdge(winner)
+ _cit.setOrientation(winnerOrientation)
+ _cit.init()
+ while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())):
+ ve = _cit.getObject()
+ #print "-------- --------", ve.getId().getFirst(), ve.getId().getSecond()
+ connexl = connexl + ve.getLength2D()
+ _cit.increment()
+ if(connexl > self._length):
+ winner = None
+ return winner
+
+
+## Chaining iterator that fills small occlusions
+## percent
+## The max length of the occluded part
+## expressed in % of the total chain length
+class pyFillOcclusionsAbsoluteAndRelativeChainingIterator(ChainingIterator):
+ def __init__(self, percent, l):
+ ChainingIterator.__init__(self, 0, 1,None,1)
+ self._length = 0
+ self._absLength = l
+ self._percent = float(percent)
+ def getExactTypeName(self):
+ return "pyFillOcclusionsChainingIterator"
+ def init(self):
+ # each time we're evaluating a chain length
+ # we try to do it once. Thus we reinit
+ # the chain length here:
+ self._length = 0
+ def traverse(self, iter):
+ winner = None
+ winnerOrientation = 0
+ print self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond()
+ it = AdjacencyIterator(iter)
+ nextVertex = self.getVertex()
+ if(nextVertex.getNature() & T_VERTEX != 0):
+ tvertex = nextVertex.castToTVertex()
+ mateVE = tvertex.mate(self.getCurrentEdge())
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getId() == mateVE.getId() ):
+ winner = ve
+ if(it.isIncoming() == 0):
+ winnerOrientation = 1
+ else:
+ winnerOrientation = 0
+ break
+ it.increment()
+ else:
+ ## case of NonTVertex
+ natures = [SILHOUETTE,BORDER,CREASE,SUGGESTIVE_CONTOUR,VALLEY,RIDGE]
+ for nat in natures:
+ if(self.getCurrentEdge().getNature() & nat != 0):
+ count=0
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getNature() & nat != 0):
+ count = count+1
+ winner = ve
+ if(it.isIncoming() == 0):
+ winnerOrientation = 1
+ else:
+ winnerOrientation = 0
+ it.increment()
+ if(count != 1):
+ winner = None
+ break
+ if(winner != None):
+ # check whether this edge was part of the selection
+ if(winner.getTimeStamp() != GetTimeStampCF()):
+ #print "---", winner.getId().getFirst(), winner.getId().getSecond()
+ # if not, let's check whether it's short enough with
+ # respect to the chain made without staying in the selection
+ #------------------------------------------------------------
+ # Did we compute the prospective chain length already ?
+ if(self._length == 0):
+ #if not, let's do it
+ _it = pyChainSilhouetteGenericIterator(0,0)
+ _it.setBegin(winner)
+ _it.setCurrentEdge(winner)
+ _it.setOrientation(winnerOrientation)
+ _it.init()
+ while(_it.isEnd() == 0):
+ ve = _it.getObject()
+ #print "--------", ve.getId().getFirst(), ve.getId().getSecond()
+ self._length = self._length + ve.getLength2D()
+ _it.increment()
+ if(_it.isBegin() != 0):
+ break;
+ _it.setBegin(winner)
+ _it.setCurrentEdge(winner)
+ _it.setOrientation(winnerOrientation)
+ if(_it.isBegin() == 0):
+ _it.decrement()
+ while ((_it.isEnd() == 0) and (_it.isBegin() == 0)):
+ ve = _it.getObject()
+ #print "--------", ve.getId().getFirst(), ve.getId().getSecond()
+ self._length = self._length + ve.getLength2D()
+ _it.decrement()
+
+ # let's do the comparison:
+ # nw let's compute the length of this connex non selected part:
+ connexl = 0
+ _cit = pyChainSilhouetteGenericIterator(0,0)
+ _cit.setBegin(winner)
+ _cit.setCurrentEdge(winner)
+ _cit.setOrientation(winnerOrientation)
+ _cit.init()
+ while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())):
+ ve = _cit.getObject()
+ #print "-------- --------", ve.getId().getFirst(), ve.getId().getSecond()
+ connexl = connexl + ve.getLength2D()
+ _cit.increment()
+ if((connexl > self._percent * self._length) or (connexl > self._absLength)):
+ winner = None
+ return winner
+
+## Chaining iterator that fills small occlusions without caring about the
+## actual selection
+## percent
+## The max length of the occluded part
+## expressed in % of the total chain length
+class pyFillQi0AbsoluteAndRelativeChainingIterator(ChainingIterator):
+ def __init__(self, percent, l):
+ ChainingIterator.__init__(self, 0, 1,None,1)
+ self._length = 0
+ self._absLength = l
+ self._percent = float(percent)
+ def getExactTypeName(self):
+ return "pyFillOcclusionsChainingIterator"
+ def init(self):
+ # each time we're evaluating a chain length
+ # we try to do it once. Thus we reinit
+ # the chain length here:
+ self._length = 0
+ def traverse(self, iter):
+ winner = None
+ winnerOrientation = 0
+ print self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond()
+ it = AdjacencyIterator(iter)
+ nextVertex = self.getVertex()
+ if(nextVertex.getNature() & T_VERTEX != 0):
+ tvertex = nextVertex.castToTVertex()
+ mateVE = tvertex.mate(self.getCurrentEdge())
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getId() == mateVE.getId() ):
+ winner = ve
+ if(it.isIncoming() == 0):
+ winnerOrientation = 1
+ else:
+ winnerOrientation = 0
+ break
+ it.increment()
+ else:
+ ## case of NonTVertex
+ natures = [SILHOUETTE,BORDER,CREASE,SUGGESTIVE_CONTOUR,VALLEY,RIDGE]
+ for nat in natures:
+ if(self.getCurrentEdge().getNature() & nat != 0):
+ count=0
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ if(ve.getNature() & nat != 0):
+ count = count+1
+ winner = ve
+ if(it.isIncoming() == 0):
+ winnerOrientation = 1
+ else:
+ winnerOrientation = 0
+ it.increment()
+ if(count != 1):
+ winner = None
+ break
+ if(winner != None):
+ # check whether this edge was part of the selection
+ if(winner.qi() != 0):
+ #print "---", winner.getId().getFirst(), winner.getId().getSecond()
+ # if not, let's check whether it's short enough with
+ # respect to the chain made without staying in the selection
+ #------------------------------------------------------------
+ # Did we compute the prospective chain length already ?
+ if(self._length == 0):
+ #if not, let's do it
+ _it = pyChainSilhouetteGenericIterator(0,0)
+ _it.setBegin(winner)
+ _it.setCurrentEdge(winner)
+ _it.setOrientation(winnerOrientation)
+ _it.init()
+ while(_it.isEnd() == 0):
+ ve = _it.getObject()
+ #print "--------", ve.getId().getFirst(), ve.getId().getSecond()
+ self._length = self._length + ve.getLength2D()
+ _it.increment()
+ if(_it.isBegin() != 0):
+ break;
+ _it.setBegin(winner)
+ _it.setCurrentEdge(winner)
+ _it.setOrientation(winnerOrientation)
+ if(_it.isBegin() == 0):
+ _it.decrement()
+ while ((_it.isEnd() == 0) and (_it.isBegin() == 0)):
+ ve = _it.getObject()
+ #print "--------", ve.getId().getFirst(), ve.getId().getSecond()
+ self._length = self._length + ve.getLength2D()
+ _it.decrement()
+
+ # let's do the comparison:
+ # nw let's compute the length of this connex non selected part:
+ connexl = 0
+ _cit = pyChainSilhouetteGenericIterator(0,0)
+ _cit.setBegin(winner)
+ _cit.setCurrentEdge(winner)
+ _cit.setOrientation(winnerOrientation)
+ _cit.init()
+ while((_cit.isEnd() == 0) and (_cit.getObject().qi() != 0)):
+ ve = _cit.getObject()
+ #print "-------- --------", ve.getId().getFirst(), ve.getId().getSecond()
+ connexl = connexl + ve.getLength2D()
+ _cit.increment()
+ if((connexl > self._percent * self._length) or (connexl > self._absLength)):
+ winner = None
+ return winner
+
+
+## the natural chaining iterator
+## It follows the edges of same nature on the same
+## objects with preseance on silhouettes, then borders,
+## then suggestive contours, then everything else. It doesn't chain the same ViewEdge twice
+## You can specify whether to stay in the selection or not.
+class pyNoIdChainSilhouetteIterator(ChainingIterator):
+ def __init__(self, stayInSelection=1):
+ ChainingIterator.__init__(self, stayInSelection, 1,None,1)
+ def getExactTypeName(self):
+ return "pyChainSilhouetteIterator"
+ def traverse(self, iter):
+ winner = None
+ it = AdjacencyIterator(iter)
+ nextVertex = self.getVertex()
+ if(nextVertex.getNature() & T_VERTEX != 0):
+ tvertex = nextVertex.castToTVertex()
+ mateVE = tvertex.mate(self.getCurrentEdge())
+ while(it.isEnd() == 0):
+ ve = it.getObject()
+ feB = self.getCurrentEdge().fedgeB()
+ feA = ve.fedgeA()
+ vB = feB.vertexB()
+ vA = feA.vertexA()
+ if vA.getId().getFirst() == vB.getId().getFirst():
+ winner = ve
+ break
+ feA = self.getCurrentEdge().fedgeA()
+ feB = ve.fedgeB()
+ vB = feB.vertexB()
+ vA = feA.vertexA()
+ if vA.getId().getFirst() == vB.getId().getFirst():
+ winner = ve
+ break
+ feA = self.getCurrentEdge().fedgeB()
+ feB = ve.fedgeB()
+ vB = feB.vertexB()
+ vA = feA.vertexB()
+ if vA.getId().getFirst() == vB.getId().getFirst():
+ winner = ve
+ break
+ feA = self.getCurrentEdge().fedgeA()
+ feB = ve.fedgeA()
+ vB = feB.vertexA()
+ vA = feA.vertexA()
+ if vA.getId().getFirst() == vB.getId().getFirst():
+ winner = ve
+ break
+ it.increment()
+ else:
+ ## case of NonTVertex
+ natures = [SILHOUETTE,BORDER,CREASE,SUGGESTIVE_CONTOUR,VALLEY,RIDGE]
+ for i in range(len(natures)):
+ currentNature = self.getCurrentEdge().getNature()
+ if(natures[i] & currentNature):
+ count=0
+ while(it.isEnd() == 0):
+ visitNext = 0
+ oNature = it.getObject().getNature()
+ if(oNature & natures[i] != 0):
+ if(natures[i] != oNature):
+ for j in range(i):
+ if(natures[j] & oNature != 0):
+ visitNext = 1
+ break
+ if(visitNext != 0):
+ break
+ count = count+1
+ winner = it.getObject()
+ it.increment()
+ if(count != 1):
+ winner = None
+ break
+ return winner
+
diff --git a/source/blender/freestyle/style_modules/Functions0D.py b/source/blender/freestyle/style_modules/Functions0D.py
new file mode 100755
index 00000000000..c1ba591c789
--- /dev/null
+++ b/source/blender/freestyle/style_modules/Functions0D.py
@@ -0,0 +1,81 @@
+from Freestyle import *
+
+
+class pyInverseCurvature2DAngleF0D(UnaryFunction0DDouble):
+ def getName(self):
+ return "InverseCurvature2DAngleF0D"
+
+ def __call__(self, inter):
+ func = Curvature2DAngleF0D()
+ c = func(inter)
+ return (3.1415 - c)
+
+class pyCurvilinearLengthF0D(UnaryFunction0DDouble):
+ def getName(self):
+ return "CurvilinearLengthF0D"
+
+ def __call__(self, inter):
+ i0d = inter.getObject()
+ s = i0d.getExactTypeName()
+ if (string.find(s, "CurvePoint") == -1):
+ print "CurvilinearLengthF0D: not implemented yet for %s" % (s)
+ return -1
+ cp = castToCurvePoint(i0d)
+ return cp.t2d()
+
+## estimate anisotropy of density
+class pyDensityAnisotropyF0D(UnaryFunction0DDouble):
+ def __init__(self,level):
+ UnaryFunction0DDouble.__init__(self)
+ self.IsoDensity = ReadCompleteViewMapPixelF0D(level)
+ self.d0Density = ReadSteerableViewMapPixelF0D(0, level)
+ self.d1Density = ReadSteerableViewMapPixelF0D(1, level)
+ self.d2Density = ReadSteerableViewMapPixelF0D(2, level)
+ self.d3Density = ReadSteerableViewMapPixelF0D(3, level)
+ def getName(self):
+ return "pyDensityAnisotropyF0D"
+ def __call__(self, inter):
+ c_iso = self.IsoDensity(inter)
+ c_0 = self.d0Density(inter)
+ c_1 = self.d1Density(inter)
+ c_2 = self.d2Density(inter)
+ c_3 = self.d3Density(inter)
+ cMax = max( max(c_0,c_1), max(c_2,c_3))
+ cMin = min( min(c_0,c_1), min(c_2,c_3))
+ if ( c_iso == 0 ):
+ v = 0
+ else:
+ v = (cMax-cMin)/c_iso
+ return (v)
+
+## Returns the gradient vector for a pixel
+## l
+## the level at which one wants to compute the gradient
+class pyViewMapGradientVectorF0D(UnaryFunction0DVec2f):
+ def __init__(self, l):
+ UnaryFunction0DVec2f.__init__(self)
+ self._l = l
+ self._step = pow(2,self._l)
+ def getName(self):
+ return "pyViewMapGradientVectorF0D"
+ def __call__(self, iter):
+ p = iter.getObject().getPoint2D()
+ gx = ReadCompleteViewMapPixelCF(self._l, int(p.x()+self._step), int(p.y()))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()))
+ gy = ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()+self._step))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()))
+ return Vec2f(gx, gy)
+
+class pyViewMapGradientNormF0D(UnaryFunction0DDouble):
+ def __init__(self, l):
+ UnaryFunction0DDouble.__init__(self)
+ self._l = l
+ self._step = pow(2,self._l)
+ def getName(self):
+ return "pyViewMapGradientNormF0D"
+ def __call__(self, iter):
+ p = iter.getObject().getPoint2D()
+ gx = ReadCompleteViewMapPixelCF(self._l, int(p.x()+self._step), int(p.y()))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()))
+ gy = ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()+self._step))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()))
+ grad = Vec2f(gx, gy)
+ return grad.norm()
+
+
diff --git a/source/blender/freestyle/style_modules/Functions1D.py b/source/blender/freestyle/style_modules/Functions1D.py
new file mode 100755
index 00000000000..e2505466aae
--- /dev/null
+++ b/source/blender/freestyle/style_modules/Functions1D.py
@@ -0,0 +1,45 @@
+from Freestyle import *
+from Functions0D import *
+import string
+
+class pyGetInverseProjectedZF1D(UnaryFunction1DDouble):
+ def getName(self):
+ return "pyGetInverseProjectedZF1D"
+
+ def __call__(self, inter):
+ func = GetProjectedZF1D()
+ z = func(inter)
+ return (1.0 - z)
+
+class pyGetSquareInverseProjectedZF1D(UnaryFunction1DDouble):
+ def getName(self):
+ return "pyGetInverseProjectedZF1D"
+
+ def __call__(self, inter):
+ func = GetProjectedZF1D()
+ z = func(inter)
+ return (1.0 - z*z)
+
+class pyDensityAnisotropyF1D(UnaryFunction1DDouble):
+ def __init__(self,level, integrationType=MEAN, sampling=2.0):
+ UnaryFunction1DDouble.__init__(self, integrationType)
+ self._func = pyDensityAnisotropyF0D(level)
+ self._integration = integrationType
+ self._sampling = sampling
+ def getName(self):
+ return "pyDensityAnisotropyF1D"
+ def __call__(self, inter):
+ v = integrateDouble(self._func, inter.pointsBegin(self._sampling), inter.pointsEnd(self._sampling), self._integration)
+ return v
+
+class pyViewMapGradientNormF1D(UnaryFunction1DDouble):
+ def __init__(self,l, integrationType, sampling=2.0):
+ UnaryFunction1DDouble.__init__(self, integrationType)
+ self._func = pyViewMapGradientNormF0D(l)
+ self._integration = integrationType
+ self._sampling = sampling
+ def getName(self):
+ return "pyViewMapGradientNormF1D"
+ def __call__(self, inter):
+ v = integrateDouble(self._func, inter.pointsBegin(self._sampling), inter.pointsEnd(self._sampling), self._integration)
+ return v
diff --git a/source/blender/freestyle/style_modules/PredicatesB1D.py b/source/blender/freestyle/style_modules/PredicatesB1D.py
new file mode 100755
index 00000000000..dfc895e8d9b
--- /dev/null
+++ b/source/blender/freestyle/style_modules/PredicatesB1D.py
@@ -0,0 +1,70 @@
+from Freestyle import *
+from Functions1D import *
+from random import *
+
+class pyZBP1D(BinaryPredicate1D):
+ def getName(self):
+ return "pyZBP1D"
+
+ def __call__(self, i1, i2):
+ func = GetZF1D()
+ return (func(i1) > func(i2))
+
+class pyZDiscontinuityBP1D(BinaryPredicate1D):
+ def __init__(self, iType = MEAN):
+ BinaryPredicate1D.__init__(self)
+ self._GetZDiscontinuity = ZDiscontinuityF1D(iType)
+
+ def getName(self):
+ return "pyZDiscontinuityBP1D"
+
+ def __call__(self, i1, i2):
+ return (self._GetZDiscontinuity(i1) > self._GetZDiscontinuity(i2))
+
+class pyLengthBP1D(BinaryPredicate1D):
+ def getName(self):
+ return "LengthBP1D"
+
+ def __call__(self, i1, i2):
+ return (i1.getLength2D() > i2.getLength2D())
+
+class pySilhouetteFirstBP1D(BinaryPredicate1D):
+ def getName(self):
+ return "SilhouetteFirstBP1D"
+
+ def __call__(self, inter1, inter2):
+ bpred = SameShapeIdBP1D()
+ if (bpred(inter1, inter2) != 1):
+ return 0
+ if (inter1.getNature() & SILHOUETTE):
+ return (inter2.getNature() & SILHOUETTE)
+ return (inter1.getNature() == inter2.getNature())
+
+class pyNatureBP1D(BinaryPredicate1D):
+ def getName(self):
+ return "NatureBP1D"
+
+ def __call__(self, inter1, inter2):
+ return (inter1.getNature() & inter2.getNature())
+
+class pyViewMapGradientNormBP1D(BinaryPredicate1D):
+ def __init__(self,l, sampling=2.0):
+ BinaryPredicate1D.__init__(self)
+ self._GetGradient = pyViewMapGradientNormF1D(l, MEAN)
+ def getName(self):
+ return "pyViewMapGradientNormBP1D"
+ def __call__(self, i1,i2):
+ print "compare gradient"
+ return (self._GetGradient(i1) > self._GetGradient(i2))
+
+class pyShuffleBP1D(BinaryPredicate1D):
+ def __init__(self):
+ BinaryPredicate1D.__init__(self)
+ seed(1)
+ def getName(self):
+ return "pyNearAndContourFirstBP1D"
+
+ def __call__(self, inter1, inter2):
+ r1 = uniform(0,1)
+ r2 = uniform(0,1)
+ return (r1<r2)
diff --git a/source/blender/freestyle/style_modules/PredicatesU0D.py b/source/blender/freestyle/style_modules/PredicatesU0D.py
new file mode 100755
index 00000000000..10c4b85a6cf
--- /dev/null
+++ b/source/blender/freestyle/style_modules/PredicatesU0D.py
@@ -0,0 +1,103 @@
+from Freestyle import *
+from Functions0D import *
+
+class pyHigherCurvature2DAngleUP0D(UnaryPredicate0D):
+ def __init__(self,a):
+ UnaryPredicate0D.__init__(self)
+ self._a = a
+
+ def getName(self):
+ return "HigherCurvature2DAngleUP0D"
+
+ def __call__(self, inter):
+ func = Curvature2DAngleF0D()
+ a = func(inter)
+ return ( a > self._a)
+
+class pyUEqualsUP0D(UnaryPredicate0D):
+ def __init__(self,u, w):
+ UnaryPredicate0D.__init__(self)
+ self._u = u
+ self._w = w
+
+ def getName(self):
+ return "UEqualsUP0D"
+
+ def __call__(self, inter):
+ func = pyCurvilinearLengthF0D()
+ u = func(inter)
+ return ( ( u > (self._u-self._w) ) and ( u < (self._u+self._w) ) )
+
+class pyVertexNatureUP0D(UnaryPredicate0D):
+ def __init__(self,nature):
+ UnaryPredicate0D.__init__(self)
+ self._nature = nature
+
+ def getName(self):
+ return "pyVertexNatureUP0D"
+
+ def __call__(self, inter):
+ v = inter.getObject()
+ nat = v.getNature()
+ if(nat & self._nature):
+ return 1;
+ return 0
+
+## check whether an Interface0DIterator
+## is a TVertex and is the one that is
+## hidden (inferred from the context)
+class pyBackTVertexUP0D(UnaryPredicate0D):
+ def __init__(self):
+ UnaryPredicate0D.__init__(self)
+ self._getQI = QuantitativeInvisibilityF0D()
+ def getName(self):
+ return "pyBackTVertexUP0D"
+ def __call__(self, iter):
+ v = iter.getObject()
+ nat = v.getNature()
+ if(nat & T_VERTEX == 0):
+ return 0
+ next = iter
+ if(next.isEnd()):
+ return 0
+ if(self._getQI(next) != 0):
+ return 1
+ return 0
+
+class pyParameterUP0DGoodOne(UnaryPredicate0D):
+ def __init__(self,pmin,pmax):
+ UnaryPredicate0D.__init__(self)
+ self._m = pmin
+ self._M = pmax
+ #self.getCurvilinearAbscissa = GetCurvilinearAbscissaF0D()
+
+ def getName(self):
+ return "pyCurvilinearAbscissaHigherThanUP0D"
+
+ def __call__(self, inter):
+ #s = self.getCurvilinearAbscissa(inter)
+ u = inter.u()
+ #print u
+ return ((u>=self._m) and (u<=self._M))
+
+class pyParameterUP0D(UnaryPredicate0D):
+ def __init__(self,pmin,pmax):
+ UnaryPredicate0D.__init__(self)
+ self._m = pmin
+ self._M = pmax
+ #self.getCurvilinearAbscissa = GetCurvilinearAbscissaF0D()
+
+ def getName(self):
+ return "pyCurvilinearAbscissaHigherThanUP0D"
+
+ def __call__(self, inter):
+ func = Curvature2DAngleF0D()
+ c = func(inter)
+ b1 = (c>0.1)
+ #s = self.getCurvilinearAbscissa(inter)
+ u = inter.u()
+ #print u
+ b = ((u>=self._m) and (u<=self._M))
+ return b and b1
+
+
diff --git a/source/blender/freestyle/style_modules/PredicatesU1D.py b/source/blender/freestyle/style_modules/PredicatesU1D.py
new file mode 100755
index 00000000000..18e9686f9df
--- /dev/null
+++ b/source/blender/freestyle/style_modules/PredicatesU1D.py
@@ -0,0 +1,381 @@
+from Freestyle import *
+from Functions1D import *
+
+count = 0
+class pyNFirstUP1D(UnaryPredicate1D):
+ def __init__(self, n):
+ UnaryPredicate1D.__init__(self)
+ self.__n = n
+ def __call__(self, inter):
+ global count
+ count = count + 1
+ if count <= self.__n:
+ return 1
+ return 0
+
+class pyHigherLengthUP1D(UnaryPredicate1D):
+ def __init__(self,l):
+ UnaryPredicate1D.__init__(self)
+ self._l = l
+
+ def getName(self):
+ return "HigherLengthUP1D"
+
+ def __call__(self, inter):
+ return (inter.getLength2D() > self._l)
+
+class pyNatureUP1D(UnaryPredicate1D):
+ def __init__(self,nature):
+ UnaryPredicate1D.__init__(self)
+ self._nature = nature
+ self._getNature = CurveNatureF1D()
+
+ def getName(self):
+ return "pyNatureUP1D"
+
+ def __call__(self, inter):
+ if(self._getNature(inter) & self._nature):
+ return 1
+ return 0
+
+class pyHigherNumberOfTurnsUP1D(UnaryPredicate1D):
+ def __init__(self,n,a):
+ UnaryPredicate1D.__init__(self)
+ self._n = n
+ self._a = a
+
+ def getName(self):
+ return "HigherNumberOfTurnsUP1D"
+
+ def __call__(self, inter):
+ count = 0
+ func = Curvature2DAngleF0D()
+ it = inter.verticesBegin()
+ while(it.isEnd() == 0):
+ if(func(it) > self._a):
+ count = count+1
+ if(count > self._n):
+ return 1
+ it.increment()
+ return 0
+
+class pyDensityUP1D(UnaryPredicate1D):
+ def __init__(self,wsize,threshold, integration = MEAN, sampling=2.0):
+ UnaryPredicate1D.__init__(self)
+ self._wsize = wsize
+ self._threshold = threshold
+ self._integration = integration
+ self._func = DensityF1D(self._wsize, self._integration, sampling)
+
+ def getName(self):
+ return "pyDensityUP1D"
+
+ def __call__(self, inter):
+ if(self._func(inter) < self._threshold):
+ return 1
+ return 0
+
+class pyLowSteerableViewMapDensityUP1D(UnaryPredicate1D):
+ def __init__(self,threshold, level,integration = MEAN):
+ UnaryPredicate1D.__init__(self)
+ self._threshold = threshold
+ self._level = level
+ self._integration = integration
+
+ def getName(self):
+ return "pyLowSteerableViewMapDensityUP1D"
+
+ def __call__(self, inter):
+ func = GetSteerableViewMapDensityF1D(self._level, self._integration)
+ v = func(inter)
+ print v
+ if(v < self._threshold):
+ return 1
+ return 0
+
+class pyLowDirectionalViewMapDensityUP1D(UnaryPredicate1D):
+ def __init__(self,threshold, orientation, level,integration = MEAN):
+ UnaryPredicate1D.__init__(self)
+ self._threshold = threshold
+ self._orientation = orientation
+ self._level = level
+ self._integration = integration
+
+ def getName(self):
+ return "pyLowDirectionalViewMapDensityUP1D"
+
+ def __call__(self, inter):
+ func = GetDirectionalViewMapDensityF1D(self._orientation, self._level, self._integration)
+ v = func(inter)
+ #print v
+ if(v < self._threshold):
+ return 1
+ return 0
+
+class pyHighSteerableViewMapDensityUP1D(UnaryPredicate1D):
+ def __init__(self,threshold, level,integration = MEAN):
+ UnaryPredicate1D.__init__(self)
+ self._threshold = threshold
+ self._level = level
+ self._integration = integration
+ self._func = GetSteerableViewMapDensityF1D(self._level, self._integration)
+ def getName(self):
+ return "pyHighSteerableViewMapDensityUP1D"
+
+ def __call__(self, inter):
+
+ v = self._func(inter)
+ if(v > self._threshold):
+ return 1
+ return 0
+
+class pyHighDirectionalViewMapDensityUP1D(UnaryPredicate1D):
+ def __init__(self,threshold, orientation, level,integration = MEAN, sampling=2.0):
+ UnaryPredicate1D.__init__(self)
+ self._threshold = threshold
+ self._orientation = orientation
+ self._level = level
+ self._integration = integration
+ self._sampling = sampling
+ def getName(self):
+ return "pyLowDirectionalViewMapDensityUP1D"
+
+ def __call__(self, inter):
+ func = GetDirectionalViewMapDensityF1D(self._orientation, self._level, self._integration, self._sampling)
+ v = func(inter)
+ if(v > self._threshold):
+ return 1
+ return 0
+
+class pyHighViewMapDensityUP1D(UnaryPredicate1D):
+ def __init__(self,threshold, level,integration = MEAN, sampling=2.0):
+ UnaryPredicate1D.__init__(self)
+ self._threshold = threshold
+ self._level = level
+ self._integration = integration
+ self._sampling = sampling
+ self._func = GetCompleteViewMapDensityF1D(self._level, self._integration, self._sampling) # 2.0 is the smpling
+
+ def getName(self):
+ return "pyHighViewMapDensityUP1D"
+
+ def __call__(self, inter):
+ #print "toto"
+ #print func.getName()
+ #print inter.getExactTypeName()
+ v= self._func(inter)
+ if(v > self._threshold):
+ return 1
+ return 0
+
+class pyDensityFunctorUP1D(UnaryPredicate1D):
+ def __init__(self,wsize,threshold, functor, funcmin=0.0, funcmax=1.0, integration = MEAN):
+ UnaryPredicate1D.__init__(self)
+ self._wsize = wsize
+ self._threshold = float(threshold)
+ self._functor = functor
+ self._funcmin = float(funcmin)
+ self._funcmax = float(funcmax)
+ self._integration = integration
+
+ def getName(self):
+ return "pyDensityFunctorUP1D"
+
+ def __call__(self, inter):
+ func = DensityF1D(self._wsize, self._integration)
+ res = self._functor(inter)
+ k = (res-self._funcmin)/(self._funcmax-self._funcmin)
+ if(func(inter) < self._threshold*k):
+ return 1
+ return 0
+
+class pyZSmallerUP1D(UnaryPredicate1D):
+ def __init__(self,z, integration=MEAN):
+ UnaryPredicate1D.__init__(self)
+ self._z = z
+ self._integration = integration
+ def getName(self):
+ return "pyZSmallerUP1D"
+
+ def __call__(self, inter):
+ func = GetProjectedZF1D(self._integration)
+ if(func(inter) < self._z):
+ return 1
+ return 0
+
+class pyIsOccludedByUP1D(UnaryPredicate1D):
+ def __init__(self,id):
+ UnaryPredicate1D.__init__(self)
+ self._id = id
+ def getName(self):
+ return "pyIsOccludedByUP1D"
+ def __call__(self, inter):
+ func = GetShapeF1D()
+ shapes = func(inter)
+ for s in shapes:
+ if(s.getId() == self._id):
+ return 0
+ it = inter.verticesBegin()
+ itlast = inter.verticesEnd()
+ itlast.decrement()
+ v = it.getObject()
+ vlast = itlast.getObject()
+ tvertex = v.castToTVertex()
+ if(tvertex != None):
+ #print "TVertex: [ ", tvertex.getId().getFirst(), ",", tvertex.getId().getSecond()," ]"
+ eit = tvertex.edgesBegin()
+ while(eit.isEnd() == 0):
+ ve = eit.getObject().first
+ if(ve.shape_id() == self._id):
+ return 1
+ #print "-------", ve.getId().getFirst(), "-", ve.getId().getSecond()
+ eit.increment()
+ tvertex = vlast.castToTVertex()
+ if(tvertex != None):
+ #print "TVertex: [ ", tvertex.getId().getFirst(), ",", tvertex.getId().getSecond()," ]"
+ eit = tvertex.edgesBegin()
+ while(eit.isEnd() == 0):
+ ve = eit.getObject().first
+ if(ve.shape_id() == self._id):
+ return 1
+ #print "-------", ve.getId().getFirst(), "-", ve.getId().getSecond()
+ eit.increment()
+ return 0
+
+class pyIsInOccludersListUP1D(UnaryPredicate1D):
+ def __init__(self,id):
+ UnaryPredicate1D.__init__(self)
+ self._id = id
+ def getName(self):
+ return "pyIsInOccludersListUP1D"
+ def __call__(self, inter):
+ func = GetOccludersF1D()
+ occluders = func(inter)
+ for a in occluders:
+ if(a.getId() == self._id):
+ return 1
+ return 0
+
+class pyIsOccludedByItselfUP1D(UnaryPredicate1D):
+ def __init__(self):
+ UnaryPredicate1D.__init__(self)
+ self.__func1 = GetOccludersF1D()
+ self.__func2 = GetShapeF1D()
+ def getName(self):
+ return "pyIsOccludedByItselfUP1D"
+ def __call__(self, inter):
+ lst1 = self.__func1(inter)
+ lst2 = self.__func2(inter)
+ for vs1 in lst1:
+ for vs2 in lst2:
+ if vs1.getId() == vs2.getId():
+ return 1
+ return 0
+
+class pyIsOccludedByIdListUP1D(UnaryPredicate1D):
+ def __init__(self, idlist):
+ UnaryPredicate1D.__init__(self)
+ self._idlist = idlist
+ self.__func1 = GetOccludersF1D()
+ def getName(self):
+ return "pyIsOccludedByIdListUP1D"
+ def __call__(self, inter):
+ lst1 = self.__func1(inter)
+ for vs1 in lst1:
+ for id in self._idlist:
+ if vs1.getId() == id:
+ return 1
+ return 0
+
+class pyShapeIdListUP1D(UnaryPredicate1D):
+ def __init__(self,idlist):
+ UnaryPredicate1D.__init__(self)
+ self._idlist = idlist
+ self._funcs = []
+ for id in idlist :
+ self._funcs.append(ShapeUP1D(id.getFirst(), id.getSecond()))
+
+ def getName(self):
+ return "pyShapeIdUP1D"
+ def __call__(self, inter):
+ for func in self._funcs :
+ if(func(inter) == 1) :
+ return 1
+ return 0
+
+## deprecated
+class pyShapeIdUP1D(UnaryPredicate1D):
+ def __init__(self,id):
+ UnaryPredicate1D.__init__(self)
+ self._id = id
+ def getName(self):
+ return "pyShapeIdUP1D"
+ def __call__(self, inter):
+ func = GetShapeF1D()
+ shapes = func(inter)
+ for a in shapes:
+ if(a.getId() == self._id):
+ return 1
+ return 0
+
+class pyHighDensityAnisotropyUP1D(UnaryPredicate1D):
+ def __init__(self,threshold, level, sampling=2.0):
+ UnaryPredicate1D.__init__(self)
+ self._l = threshold
+ self.func = pyDensityAnisotropyF1D(level, MEAN, sampling)
+ def getName(self):
+ return "pyHighDensityAnisotropyUP1D"
+ def __call__(self, inter):
+ return (self.func(inter) > self._l)
+
+class pyHighViewMapGradientNormUP1D(UnaryPredicate1D):
+ def __init__(self,threshold, l, sampling=2.0):
+ UnaryPredicate1D.__init__(self)
+ self._threshold = threshold
+ self._GetGradient = pyViewMapGradientNormF1D(l, MEAN)
+ def getName(self):
+ return "pyHighViewMapGradientNormUP1D"
+ def __call__(self, inter):
+ gn = self._GetGradient(inter)
+ #print gn
+ return (gn > self._threshold)
+
+class pyDensityVariableSigmaUP1D(UnaryPredicate1D):
+ def __init__(self,functor, sigmaMin,sigmaMax, lmin, lmax, tmin, tmax, integration = MEAN, sampling=2.0):
+ UnaryPredicate1D.__init__(self)
+ self._functor = functor
+ self._sigmaMin = float(sigmaMin)
+ self._sigmaMax = float(sigmaMax)
+ self._lmin = float(lmin)
+ self._lmax = float(lmax)
+ self._tmin = tmin
+ self._tmax = tmax
+ self._integration = integration
+ self._sampling = sampling
+
+ def getName(self):
+ return "pyDensityUP1D"
+
+ def __call__(self, inter):
+ sigma = (self._sigmaMax-self._sigmaMin)/(self._lmax-self._lmin)*(self._functor(inter)-self._lmin) + self._sigmaMin
+ t = (self._tmax-self._tmin)/(self._lmax-self._lmin)*(self._functor(inter)-self._lmin) + self._tmin
+ if(sigma<self._sigmaMin):
+ sigma = self._sigmaMin
+ self._func = DensityF1D(sigma, self._integration, self._sampling)
+ d = self._func(inter)
+ if(d<t):
+ return 1
+ return 0
+
+class pyClosedCurveUP1D(UnaryPredicate1D):
+ def __call__(self, inter):
+ it = inter.verticesBegin()
+ itlast = inter.verticesEnd()
+ itlast.decrement()
+ vlast = itlast.getObject()
+ v = it.getObject()
+ print v.getId().getFirst(), v.getId().getSecond()
+ print vlast.getId().getFirst(), vlast.getId().getSecond()
+ if(v.getId() == vlast.getId()):
+ return 1
+ return 0
diff --git a/source/blender/freestyle/style_modules/anisotropic_diffusion.py b/source/blender/freestyle/style_modules/anisotropic_diffusion.py
new file mode 100755
index 00000000000..f8b68ee51a6
--- /dev/null
+++ b/source/blender/freestyle/style_modules/anisotropic_diffusion.py
@@ -0,0 +1,75 @@
+#
+# Filename : anisotropic_diffusion.py
+# Author : Fredo Durand
+# Date : 12/08/2004
+# Purpose : Smoothes lines using an anisotropic diffusion scheme
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+from vector import *
+from PredicatesU0D import *
+from math import *
+
+## thickness modifiers
+
+normalInfo=Normal2DF0D()
+curvatureInfo=Curvature2DAngleF0D()
+
+def edgestopping(x, sigma):
+ return exp(- x*x/(2*sigma*sigma))
+
+class pyDiffusion2Shader(StrokeShader):
+ def __init__(self, lambda1, nbIter):
+ StrokeShader.__init__(self)
+ self._lambda = lambda1
+ self._nbIter = nbIter
+ def getName(self):
+ return "pyDiffusionShader"
+ def shade(self, stroke):
+ for i in range (1, self._nbIter):
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ v=it.getObject()
+ p1 = v.getPoint()
+ p2 = normalInfo(it.castToInterface0DIterator())*self._lambda*curvatureInfo(it.castToInterface0DIterator())
+ v.SetPoint(p1+p2)
+ it.increment()
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D())
+Operators.select( upred )
+bpred = TrueBP1D();
+Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(upred) )
+shaders_list = [
+ ConstantThicknessShader(4),
+ StrokeTextureShader("smoothAlpha.bmp", Stroke.OPAQUE_MEDIUM, 0),
+ SamplingShader(2),
+ pyDiffusion2Shader(-0.03, 30),
+ IncreasingColorShader(1.0,0.0,0.0,1, 0, 1, 0, 1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
+
+
+
diff --git a/source/blender/freestyle/style_modules/apriori_and_causal_density.py b/source/blender/freestyle/style_modules/apriori_and_causal_density.py
new file mode 100755
index 00000000000..e6bcf046bd0
--- /dev/null
+++ b/source/blender/freestyle/style_modules/apriori_and_causal_density.py
@@ -0,0 +1,45 @@
+#
+# Filename : apriori_and_causal_density.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Selects the lines with high a priori density and
+# subjects them to the causal density so as to avoid
+# cluttering
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+
+Operators.select(AndUP1D(QuantitativeInvisibilityUP1D(0), pyHighViewMapDensityUP1D(0.3,4) ) )
+bpred = TrueBP1D()
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), pyHighViewMapDensityUP1D(0.3,4))
+Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ ConstantThicknessShader(2),
+ ConstantColorShader(0.0, 0.0, 0.0,1)
+ ]
+Operators.create(pyDensityUP1D(1,0.1, MEAN), shaders_list)
diff --git a/source/blender/freestyle/style_modules/apriori_density.py b/source/blender/freestyle/style_modules/apriori_density.py
new file mode 100755
index 00000000000..77d41e7d04b
--- /dev/null
+++ b/source/blender/freestyle/style_modules/apriori_density.py
@@ -0,0 +1,43 @@
+#
+# Filename : apriori_density.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws lines having a high a priori density
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+
+Operators.select(AndUP1D(QuantitativeInvisibilityUP1D(0), pyHighViewMapDensityUP1D(0.1,5)))
+bpred = TrueBP1D()
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), pyHighViewMapDensityUP1D(0.0007,5))
+Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ ConstantThicknessShader(2),
+ ConstantColorShader(0.0, 0.0, 0.0,1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/backbone_stretcher.py b/source/blender/freestyle/style_modules/backbone_stretcher.py
new file mode 100755
index 00000000000..db17f2574ff
--- /dev/null
+++ b/source/blender/freestyle/style_modules/backbone_stretcher.py
@@ -0,0 +1,36 @@
+#
+# Filename : backbone_stretcher.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Stretches the geometry of visible lines
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [TextureAssignerShader(4), ConstantColorShader(0.5, 0.5, 0.5), BackboneStretcherShader(20)]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/blueprint_circles.py b/source/blender/freestyle/style_modules/blueprint_circles.py
new file mode 100755
index 00000000000..5eca00ff4ac
--- /dev/null
+++ b/source/blender/freestyle/style_modules/blueprint_circles.py
@@ -0,0 +1,46 @@
+#
+# Filename : blueprint_circles.py
+# Author : Emmanuel Turquin
+# Date : 04/08/2005
+# Purpose : Produces a blueprint using circular contour strokes
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D())
+bpred = SameShapeIdBP1D()
+Operators.select(upred)
+Operators.bidirectionalChain(ChainPredicateIterator(upred,bpred), NotUP1D(upred))
+Operators.select(pyHigherLengthUP1D(200))
+shaders_list = [
+ ConstantThicknessShader(5),
+ pyBluePrintCirclesShader(3),
+ pyPerlinNoise1DShader(0.1, 15, 8),
+ TextureAssignerShader(4),
+ IncreasingColorShader(0.8, 0.8, 0.3, 0.4, 0.3, 0.3, 0.3, 0.1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/blueprint_ellipses.py b/source/blender/freestyle/style_modules/blueprint_ellipses.py
new file mode 100755
index 00000000000..4e34310b3ca
--- /dev/null
+++ b/source/blender/freestyle/style_modules/blueprint_ellipses.py
@@ -0,0 +1,46 @@
+#
+# Filename : blueprint_ellipses.py
+# Author : Emmanuel Turquin
+# Date : 04/08/2005
+# Purpose : Produces a blueprint using elliptic contour strokes
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D())
+bpred = SameShapeIdBP1D()
+Operators.select(upred)
+Operators.bidirectionalChain(ChainPredicateIterator(upred,bpred), NotUP1D(upred))
+Operators.select(pyHigherLengthUP1D(200))
+shaders_list = [
+ ConstantThicknessShader(5),
+ pyBluePrintEllipsesShader(3),
+ pyPerlinNoise1DShader(0.1, 10, 8),
+ TextureAssignerShader(4),
+ IncreasingColorShader(0.6, 0.3, 0.3, 0.7, 0.3, 0.3, 0.3, 0.1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/blueprint_squares.py b/source/blender/freestyle/style_modules/blueprint_squares.py
new file mode 100755
index 00000000000..926f882456f
--- /dev/null
+++ b/source/blender/freestyle/style_modules/blueprint_squares.py
@@ -0,0 +1,45 @@
+# Filename : blueprint_squares.py
+# Author : Emmanuel Turquin
+# Date : 04/08/2005
+# Purpose : Produces a blueprint using square contour strokes
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D())
+bpred = SameShapeIdBP1D()
+Operators.select(upred)
+Operators.bidirectionalChain(ChainPredicateIterator(upred,bpred), NotUP1D(upred))
+Operators.select(pyHigherLengthUP1D(200))
+shaders_list = [
+ ConstantThicknessShader(8),
+ pyBluePrintSquaresShader(2, 20),
+ pyPerlinNoise1DShader(0.07, 10, 8),
+ TextureAssignerShader(4),
+ IncreasingColorShader(0.6, 0.3, 0.3, 0.7, 0.6, 0.3, 0.3, 0.3),
+ ConstantThicknessShader(4)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/cartoon.py b/source/blender/freestyle/style_modules/cartoon.py
new file mode 100755
index 00000000000..0c49f854f7d
--- /dev/null
+++ b/source/blender/freestyle/style_modules/cartoon.py
@@ -0,0 +1,42 @@
+#
+# Filename : cartoon.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws colored lines. The color is automatically
+# infered from each object's material in a cartoon-like
+# fashion.
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ BezierCurveShader(3),
+ ConstantThicknessShader(4),
+ pyMaterialColorShader(0.8)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/contour.py b/source/blender/freestyle/style_modules/contour.py
new file mode 100755
index 00000000000..b7c97064cae
--- /dev/null
+++ b/source/blender/freestyle/style_modules/contour.py
@@ -0,0 +1,42 @@
+#
+# Filename : contour.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws each object's visible contour
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+
+Operators.select(AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D() ) )
+bpred = SameShapeIdBP1D();
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ContourUP1D())
+Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ ConstantThicknessShader(5.0),
+ IncreasingColorShader(0.8,0,0,1,0.1,0,0,1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/curvature2d.py b/source/blender/freestyle/style_modules/curvature2d.py
new file mode 100755
index 00000000000..587c53071d0
--- /dev/null
+++ b/source/blender/freestyle/style_modules/curvature2d.py
@@ -0,0 +1,60 @@
+#
+# Filename : curvature2d.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : The stroke points are colored in gray levels and depending
+# on the 2d curvature value
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+
+class py2DCurvatureColorShader(StrokeShader):
+ def getName(self):
+ return "py2DCurvatureColorShader"
+
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ func = Curvature2DAngleF0D()
+ while it.isEnd() == 0:
+ it0D = it.castToInterface0DIterator()
+ sv = it.getObject()
+ att = sv.attribute()
+ c = func(it0D)
+ if (c<0):
+ print "negative 2D curvature"
+ color = 10.0 * c/3.1415
+ att.setColor(color,color,color);
+ it.increment()
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ StrokeTextureShader("smoothAlpha.bmp", Stroke.OPAQUE_MEDIUM, 0),
+ ConstantThicknessShader(5),
+ py2DCurvatureColorShader()
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/external_contour.py b/source/blender/freestyle/style_modules/external_contour.py
new file mode 100755
index 00000000000..ae49e18981e
--- /dev/null
+++ b/source/blender/freestyle/style_modules/external_contour.py
@@ -0,0 +1,43 @@
+#
+# Filename : external_contour.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws the external contour of the scene
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from ChainingIterators import *
+from shaders import *
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D())
+Operators.select(upred )
+bpred = TrueBP1D();
+Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(upred))
+shaders_list = [
+ ConstantThicknessShader(3),
+ ConstantColorShader(0.0, 0.0, 0.0,1)
+ ]
+Operators.create(TrueUP1D(), shaders_list) \ No newline at end of file
diff --git a/source/blender/freestyle/style_modules/external_contour_sketchy.py b/source/blender/freestyle/style_modules/external_contour_sketchy.py
new file mode 100755
index 00000000000..1c3ffe94e1b
--- /dev/null
+++ b/source/blender/freestyle/style_modules/external_contour_sketchy.py
@@ -0,0 +1,48 @@
+#
+# Filename : external_contour_sketchy.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws the external contour of the scene using a sketchy
+# chaining iterator (in particular each ViewEdge can be drawn
+# several times
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D())
+Operators.select(upred)
+Operators.bidirectionalChain(pySketchyChainingIterator(), NotUP1D(upred))
+shaders_list = [
+ SamplingShader(4),
+ SpatialNoiseShader(10, 150, 2, 1, 1),
+ IncreasingThicknessShader(4, 10),
+ SmoothingShader(400, 0.1, 0, 0.2, 0, 0, 0, 1),
+ IncreasingColorShader(1,0,0,1,0,1,0,1),
+ TextureAssignerShader(4)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/external_contour_smooth.py b/source/blender/freestyle/style_modules/external_contour_smooth.py
new file mode 100755
index 00000000000..59633a25063
--- /dev/null
+++ b/source/blender/freestyle/style_modules/external_contour_smooth.py
@@ -0,0 +1,44 @@
+#
+# Filename : external_contour_smooth.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws a smooth external contour
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+from ChainingIterators import *
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D())
+Operators.select(upred)
+bpred = TrueBP1D();
+Operators.bidirectionalChain(ChainPredicateIterator(upred, bpred), NotUP1D(upred))
+shaders_list = [
+ SamplingShader(2),
+ IncreasingThicknessShader(4,20),
+ IncreasingColorShader(1.0, 0.0, 0.5,1, 0.5,1, 0.3, 1),
+ SmoothingShader(100, 0.05, 0, 0.2, 0, 0, 0, 1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/extra-lines.sml b/source/blender/freestyle/style_modules/extra-lines.sml
new file mode 100755
index 00000000000..c63cd40945d
--- /dev/null
+++ b/source/blender/freestyle/style_modules/extra-lines.sml
@@ -0,0 +1,3 @@
+1suggestive.py
+1ridges.py
+1nor_suggestive_or_ridges.py
diff --git a/source/blender/freestyle/style_modules/haloing.py b/source/blender/freestyle/style_modules/haloing.py
new file mode 100755
index 00000000000..b64b2d967f7
--- /dev/null
+++ b/source/blender/freestyle/style_modules/haloing.py
@@ -0,0 +1,50 @@
+#
+# Filename : haloing.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : This style module selects the lines that
+# are connected (in the image) to a specific
+# object and trims them in order to produce
+# a haloing effect around the target shape
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesU1D import *
+from PredicatesB1D import *
+from shaders import *
+
+# id corresponds to the id of the target object
+# (accessed by SHIFT+click)
+id = Id(3,0)
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0) , pyIsOccludedByUP1D(id))
+Operators.select(upred)
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
+shaders_list = [
+ IncreasingThicknessShader(3, 5),
+ IncreasingColorShader(1,0,0, 1,0,1,0,1),
+ SamplingShader(1.0),
+ pyTVertexRemoverShader(),
+ TipRemoverShader(3.0)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/ignore_small_occlusions.py b/source/blender/freestyle/style_modules/ignore_small_occlusions.py
new file mode 100755
index 00000000000..98c318a3757
--- /dev/null
+++ b/source/blender/freestyle/style_modules/ignore_small_occlusions.py
@@ -0,0 +1,41 @@
+#
+# Filename : ignore_small_oclusions.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : The strokes are drawn through small occlusions
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+#Operators.bidirectionalChain(pyFillOcclusionsChainingIterator(0.1))
+Operators.bidirectionalChain(pyFillOcclusionsAbsoluteChainingIterator(12))
+shaders_list = [
+ SamplingShader(5.0),
+ ConstantThicknessShader(3),
+ ConstantColorShader(0.0,0.0,0.0),
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/invisible_lines.py b/source/blender/freestyle/style_modules/invisible_lines.py
new file mode 100755
index 00000000000..5cce741e91e
--- /dev/null
+++ b/source/blender/freestyle/style_modules/invisible_lines.py
@@ -0,0 +1,42 @@
+#
+# Filename : invisible_lines.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws all lines whose Quantitative Invisibility
+# is different from 0
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+upred = NotUP1D(QuantitativeInvisibilityUP1D(0))
+Operators.select(upred)
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
+shaders_list = [
+ SamplingShader(5.0),
+ ConstantThicknessShader(3.0),
+ ConstantColorShader(0.7,0.7,0.7)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/japanese_bigbrush.py b/source/blender/freestyle/style_modules/japanese_bigbrush.py
new file mode 100755
index 00000000000..e0985497e2c
--- /dev/null
+++ b/source/blender/freestyle/style_modules/japanese_bigbrush.py
@@ -0,0 +1,59 @@
+#
+# Filename : japanese_bigbrush.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Simulates a big brush fr oriental painting
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesU1D import *
+from PredicatesB1D import *
+from Functions0D import *
+from shaders import *
+
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(),NotUP1D(QuantitativeInvisibilityUP1D(0)))
+## Splits strokes at points of highest 2D curavture
+## when there are too many abrupt turns in it
+func = pyInverseCurvature2DAngleF0D()
+Operators.recursiveSplit(func, pyParameterUP0D(0.2,0.8), NotUP1D(pyHigherNumberOfTurnsUP1D(3, 0.5)), 2)
+## Keeps only long enough strokes
+Operators.select(pyHigherLengthUP1D(100))
+## Sorts so as to draw the longest strokes first
+## (this will be done using the causal density)
+Operators.sort(pyLengthBP1D())
+shaders_list = [
+ pySamplingShader(10),
+ BezierCurveShader(30),
+ SamplingShader(50),
+ pyNonLinearVaryingThicknessShader(4,25, 0.6),
+ TextureAssignerShader(6),
+ ConstantColorShader(0.2, 0.2, 0.2,1.0),
+ TipRemoverShader(10)
+ ]
+## Use the causal density to avoid cluttering
+Operators.create(pyDensityUP1D(8,0.4, MEAN), shaders_list)
+
+
diff --git a/source/blender/freestyle/style_modules/logical_operators.py b/source/blender/freestyle/style_modules/logical_operators.py
new file mode 100755
index 00000000000..63a0a9f9ed8
--- /dev/null
+++ b/source/blender/freestyle/style_modules/logical_operators.py
@@ -0,0 +1,36 @@
+from Freestyle import *
+
+class AndUP1D(UnaryPredicate1D):
+ def __init__(self, pred1, pred2):
+ UnaryPredicate1D.__init__(self)
+ self.__pred1 = pred1
+ self.__pred2 = pred2
+
+ def getName(self):
+ return "AndUP1D"
+
+ def __call__(self, inter):
+ return self.__pred1(inter) and self.__pred2(inter)
+
+class OrUP1D(UnaryPredicate1D):
+ def __init__(self, pred1, pred2):
+ UnaryPredicate1D.__init__(self)
+ self.__pred1 = pred1
+ self.__pred2 = pred2
+
+ def getName(self):
+ return "OrUP1D"
+
+ def __call__(self, inter):
+ return self.__pred1(inter) or self.__pred2(inter)
+
+class NotUP1D(UnaryPredicate1D):
+ def __init__(self, pred):
+ UnaryPredicate1D.__init__(self)
+ self.__pred = pred
+
+ def getName(self):
+ return "NotUP1D"
+
+ def __call__(self, inter):
+ return self.__pred(inter) == 0
diff --git a/source/blender/freestyle/style_modules/long_anisotropically_dense.py b/source/blender/freestyle/style_modules/long_anisotropically_dense.py
new file mode 100755
index 00000000000..4bfeedf257f
--- /dev/null
+++ b/source/blender/freestyle/style_modules/long_anisotropically_dense.py
@@ -0,0 +1,81 @@
+#
+# Filename : long_anisotropically_dense.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Selects the lines that are long and have a high anisotropic
+# a priori density and uses causal density
+# to draw without cluttering. Ideally, half of the
+# selected lines are culled using the causal density.
+#
+# ********************* WARNING *************************************
+# ******** The Directional a priori density maps must ******
+# ******** have been computed prior to using this style module ******
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesU1D import *
+from PredicatesU0D import *
+from PredicatesB1D import *
+from Functions0D import *
+from Functions1D import *
+from shaders import *
+
+## custom density predicate
+class pyDensityUP1D(UnaryPredicate1D):
+ def __init__(self,wsize,threshold, integration = MEAN, sampling=2.0):
+ UnaryPredicate1D.__init__(self)
+ self._wsize = wsize
+ self._threshold = threshold
+ self._integration = integration
+ self._func = DensityF1D(self._wsize, self._integration, sampling)
+ self._func2 = DensityF1D(self._wsize, MAX, sampling)
+
+ def getName(self):
+ return "pyDensityUP1D"
+
+ def __call__(self, inter):
+ c = self._func(inter)
+ m = self._func2(inter)
+ if(c < self._threshold):
+ return 1
+ if( m > 4* c ):
+ if ( c < 1.5*self._threshold ):
+ return 1
+ return 0
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(),NotUP1D(QuantitativeInvisibilityUP1D(0)))
+Operators.select(pyHigherLengthUP1D(40))
+## selects lines having a high anisotropic a priori density
+Operators.select(pyHighDensityAnisotropyUP1D(0.3,4))
+Operators.sort(pyLengthBP1D())
+shaders_list = [
+ SamplingShader(2.0),
+ ConstantThicknessShader(2),
+ ConstantColorShader(0.2,0.2,0.25,1),
+ ]
+## uniform culling
+Operators.create(pyDensityUP1D(3.0,2.0e-2, MEAN, 0.1), shaders_list)
+
+
diff --git a/source/blender/freestyle/style_modules/multiple_parameterization.py b/source/blender/freestyle/style_modules/multiple_parameterization.py
new file mode 100755
index 00000000000..ff04c5930c5
--- /dev/null
+++ b/source/blender/freestyle/style_modules/multiple_parameterization.py
@@ -0,0 +1,51 @@
+#
+# Filename : multiple_parameterization.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : The thickness and the color of the strokes vary continuously
+# independently from occlusions although only
+# visible lines are actually drawn. This is equivalent
+# to assigning the thickness using a parameterization covering
+# the complete silhouette (visible+invisible) and drawing
+# the strokes using a second parameterization that only
+# covers the visible portions.
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+## Chain following the same nature, but without the restriction
+## of staying inside the selection (0).
+Operators.bidirectionalChain(ChainSilhouetteIterator(0))
+shaders_list = [
+ SamplingShader(20),
+ IncreasingThicknessShader(1.5, 30),
+ ConstantColorShader(0.0,0.0,0.0),
+ IncreasingColorShader(1,0,0,1,0,1,0,1),
+ TextureAssignerShader(-1),
+ pyHLRShader() ## this shader draws only visible portions
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/nature.py b/source/blender/freestyle/style_modules/nature.py
new file mode 100755
index 00000000000..8cfd480ba3b
--- /dev/null
+++ b/source/blender/freestyle/style_modules/nature.py
@@ -0,0 +1,43 @@
+#
+# Filename : nature.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Uses the NatureUP1D predicate to select the lines
+# of a given type (among SILHOUETTE, CREASE, SUGGESTIVE_CONTOURS,
+# BORDERS).
+# The suggestive contours must have been enabled in the
+# options dialog to appear in the View Map.
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+
+Operators.select(pyNatureUP1D(SILHOUETTE))
+Operators.bidirectionalChain(ChainSilhouetteIterator(),NotUP1D( pyNatureUP1D( SILHOUETTE) ) )
+shaders_list = [
+ IncreasingThicknessShader(3, 10),
+ IncreasingColorShader(0.0,0.0,0.0, 1, 0.8,0,0,1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/near_lines.py b/source/blender/freestyle/style_modules/near_lines.py
new file mode 100755
index 00000000000..b132f6b5802
--- /dev/null
+++ b/source/blender/freestyle/style_modules/near_lines.py
@@ -0,0 +1,44 @@
+#
+# Filename : near_lines.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws the lines that are "closer" than a threshold
+# (between 0 and 1)
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), pyZSmallerUP1D(0.5, MEAN))
+Operators.select(upred)
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
+shaders_list = [
+ TextureAssignerShader(-1),
+ ConstantThicknessShader(5),
+ ConstantColorShader(0.0, 0.0, 0.0)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/occluded_by_specific_object.py b/source/blender/freestyle/style_modules/occluded_by_specific_object.py
new file mode 100755
index 00000000000..96f431c2c4e
--- /dev/null
+++ b/source/blender/freestyle/style_modules/occluded_by_specific_object.py
@@ -0,0 +1,45 @@
+#
+# Filename : occluded_by_specific_object.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws only the lines that are occluded by a given object
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesU1D import *
+from shaders import *
+
+## the id of the occluder (use SHIFT+click on the ViewMap to
+## retrieve ids)
+id = Id(3,0)
+upred = AndUP1D(NotUP1D(QuantitativeInvisibilityUP1D(0)),
+pyIsInOccludersListUP1D(id))
+Operators.select(upred)
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
+shaders_list = [
+ SamplingShader(5),
+ ConstantThicknessShader(3),
+ ConstantColorShader(0.3,0.3,0.3,1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/polygonalize.py b/source/blender/freestyle/style_modules/polygonalize.py
new file mode 100755
index 00000000000..81d47178404
--- /dev/null
+++ b/source/blender/freestyle/style_modules/polygonalize.py
@@ -0,0 +1,40 @@
+#
+# Filename : polygonalize.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Make the strokes more "polygonal"
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(),NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ SamplingShader(2.0),
+ ConstantThicknessShader(3),
+ ConstantColorShader(0.0,0.0,0.0),
+ PolygonalizationShader(8)
+ ]
+Operators.create(TrueUP1D(), shaders_list) \ No newline at end of file
diff --git a/source/blender/freestyle/style_modules/qi0.py b/source/blender/freestyle/style_modules/qi0.py
new file mode 100755
index 00000000000..f742b777738
--- /dev/null
+++ b/source/blender/freestyle/style_modules/qi0.py
@@ -0,0 +1,41 @@
+#
+# Filename : qi0.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws the visible lines (chaining follows same nature lines)
+# (most basic style module)
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ SamplingShader(5.0),
+ ConstantThicknessShader(4.0),
+ ConstantColorShader(0.0,0.0,0.0)
+ ]
+Operators.create(TrueUP1D(), shaders_list) \ No newline at end of file
diff --git a/source/blender/freestyle/style_modules/qi0_not_external_contour.py b/source/blender/freestyle/style_modules/qi0_not_external_contour.py
new file mode 100755
index 00000000000..047ab7e1a8e
--- /dev/null
+++ b/source/blender/freestyle/style_modules/qi0_not_external_contour.py
@@ -0,0 +1,43 @@
+#
+# Filename : qi0_not_external_contour.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws the visible lines (chaining follows same nature lines)
+# that do not belong to the external contour of the scene
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+
+upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D())
+Operators.select(upred)
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
+shaders_list = [
+ SamplingShader(4),
+ SpatialNoiseShader(4, 150, 2, 1, 1),
+ IncreasingThicknessShader(2, 5),
+ BackboneStretcherShader(20),
+ IncreasingColorShader(1,0,0,1,0,1,0,1),
+ TextureAssignerShader(4)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/qi1.py b/source/blender/freestyle/style_modules/qi1.py
new file mode 100755
index 00000000000..234d196f15e
--- /dev/null
+++ b/source/blender/freestyle/style_modules/qi1.py
@@ -0,0 +1,42 @@
+#
+# Filename : qi1.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws lines hidden by one surface.
+# *** Quantitative Invisibility must have been
+# enabled in the options dialog to use this style module ****
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(1))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(1)))
+shaders_list = [
+ SamplingShader(5.0),
+ ConstantThicknessShader(3),
+ ConstantColorShader(0.5,0.5,0.5, 1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/qi2.py b/source/blender/freestyle/style_modules/qi2.py
new file mode 100755
index 00000000000..8e45914c619
--- /dev/null
+++ b/source/blender/freestyle/style_modules/qi2.py
@@ -0,0 +1,42 @@
+#
+# Filename : qi2.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws lines hidden by two surfaces.
+# *** Quantitative Invisibility must have been
+# enabled in the options dialog to use this style module ****
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(2))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(2)))
+shaders_list = [
+ SamplingShader(10),
+ ConstantThicknessShader(1.5),
+ ConstantColorShader(0.7,0.7,0.7, 1)
+ ]
+Operators.create(TrueUP1D(), shaders_list) \ No newline at end of file
diff --git a/source/blender/freestyle/style_modules/sequentialsplit_sketchy.py b/source/blender/freestyle/style_modules/sequentialsplit_sketchy.py
new file mode 100755
index 00000000000..b33cd5d4043
--- /dev/null
+++ b/source/blender/freestyle/style_modules/sequentialsplit_sketchy.py
@@ -0,0 +1,68 @@
+#
+# Filename : sequentialsplit_sketchy.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Use the sequential split with two different
+# predicates to specify respectively the starting and
+# the stopping extremities for strokes
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesU1D import *
+from PredicatesU0D import *
+from Functions0D import *
+
+## Predicate to tell whether a TVertex
+## corresponds to a change from 0 to 1 or not.
+class pyBackTVertexUP0D(UnaryPredicate0D):
+ def __init__(self):
+ UnaryPredicate0D.__init__(self)
+ self._getQI = QuantitativeInvisibilityF0D()
+ def getName(self):
+ return "pyBackTVertexUP0D"
+ def __call__(self, iter):
+ v = iter.getObject()
+ nat = v.getNature()
+ if(nat & T_VERTEX == 0):
+ return 0
+ if(self._getQI(iter) != 0):
+ return 1
+ return 0
+
+
+upred = QuantitativeInvisibilityUP1D(0)
+Operators.select(upred)
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
+## starting and stopping predicates:
+start = pyVertexNatureUP0D(NON_T_VERTEX)
+stop = pyBackTVertexUP0D()
+Operators.sequentialSplit(start, stop, 10)
+shaders_list = [
+ SpatialNoiseShader(7, 120, 2, 1, 1),
+ IncreasingThicknessShader(5, 8),
+ ConstantColorShader(0.2, 0.2, 0.2, 1),
+ TextureAssignerShader(4)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
+
diff --git a/source/blender/freestyle/style_modules/shaders.py b/source/blender/freestyle/style_modules/shaders.py
new file mode 100755
index 00000000000..17ad31961d5
--- /dev/null
+++ b/source/blender/freestyle/style_modules/shaders.py
@@ -0,0 +1,1288 @@
+from Freestyle import *
+from PredicatesU0D import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from logical_operators import *
+from ChainingIterators import *
+from random import *
+from math import *
+from vector import *
+
+## thickness modifiers
+######################
+
+class pyDepthDiscontinuityThicknessShader(StrokeShader):
+ def __init__(self, min, max):
+ StrokeShader.__init__(self)
+ self.__min = float(min)
+ self.__max = float(max)
+ self.__func = ZDiscontinuityF0D()
+ def getName(self):
+ return "pyDepthDiscontinuityThicknessShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ z_min=0.0
+ z_max=1.0
+ a = (self.__max - self.__min)/(z_max-z_min)
+ b = (self.__min*z_max-self.__max*z_min)/(z_max-z_min)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ z = self.__func(it.castToInterface0DIterator())
+ thickness = a*z+b
+ it.getObject().attribute().setThickness(thickness, thickness)
+ it.increment()
+
+class pyConstantThicknessShader(StrokeShader):
+ def __init__(self, thickness):
+ StrokeShader.__init__(self)
+ self._thickness = thickness
+
+ def getName(self):
+ return "pyConstantThicknessShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ t = self._thickness/2.0
+ att.setThickness(t, t)
+ it.increment()
+
+class pyFXSThicknessShader(StrokeShader):
+ def __init__(self, thickness):
+ StrokeShader.__init__(self)
+ self._thickness = thickness
+
+ def getName(self):
+ return "pyFXSThicknessShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ t = self._thickness/2.0
+ att.setThickness(t, t)
+ it.increment()
+
+class pyFXSVaryingThicknessWithDensityShader(StrokeShader):
+ def __init__(self, wsize, threshold_min, threshold_max, thicknessMin, thicknessMax):
+ StrokeShader.__init__(self)
+ self.wsize= wsize
+ self.threshold_min= threshold_min
+ self.threshold_max= threshold_max
+ self._thicknessMin = thicknessMin
+ self._thicknessMax = thicknessMax
+
+ def getName(self):
+ return "pyVaryingThicknessWithDensityShader"
+ def shade(self, stroke):
+ n = stroke.strokeVerticesSize()
+ i = 0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ func = DensityF0D(self.wsize)
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ toto = it.castToInterface0DIterator()
+ c= func(toto)
+ if (c < self.threshold_min ):
+ c = self.threshold_min
+ if (c > self.threshold_max ):
+ c = self.threshold_max
+## t = (c - self.threshold_min)/(self.threshold_max - self.threshold_min)*(self._thicknessMax-self._thicknessMin) + self._thicknessMin
+ t = (self.threshold_max - c )/(self.threshold_max - self.threshold_min)*(self._thicknessMax-self._thicknessMin) + self._thicknessMin
+ att.setThickness(t/2.0, t/2.0)
+ i = i+1
+ it.increment()
+class pyIncreasingThicknessShader(StrokeShader):
+ def __init__(self, thicknessMin, thicknessMax):
+ StrokeShader.__init__(self)
+ self._thicknessMin = thicknessMin
+ self._thicknessMax = thicknessMax
+
+ def getName(self):
+ return "pyIncreasingThicknessShader"
+ def shade(self, stroke):
+ n = stroke.strokeVerticesSize()
+ i = 0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ c = float(i)/float(n)
+ if(i < float(n)/2.0):
+ t = (1.0 - c)*self._thicknessMin + c * self._thicknessMax
+ else:
+ t = (1.0 - c)*self._thicknessMax + c * self._thicknessMin
+ att.setThickness(t/2.0, t/2.0)
+ i = i+1
+ it.increment()
+
+class pyConstrainedIncreasingThicknessShader(StrokeShader):
+ def __init__(self, thicknessMin, thicknessMax, ratio):
+ StrokeShader.__init__(self)
+ self._thicknessMin = thicknessMin
+ self._thicknessMax = thicknessMax
+ self._ratio = ratio
+
+ def getName(self):
+ return "pyConstrainedIncreasingThicknessShader"
+ def shade(self, stroke):
+ slength = stroke.getLength2D()
+ tmp = self._ratio*slength
+ maxT = 0.0
+ if(tmp < self._thicknessMax):
+ maxT = tmp
+ else:
+ maxT = self._thicknessMax
+ n = stroke.strokeVerticesSize()
+ i = 0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ c = float(i)/float(n)
+ if(i < float(n)/2.0):
+ t = (1.0 - c)*self._thicknessMin + c * maxT
+ else:
+ t = (1.0 - c)*maxT + c * self._thicknessMin
+ att.setThickness(t/2.0, t/2.0)
+ if(i == n-1):
+ att.setThickness(self._thicknessMin/2.0, self._thicknessMin/2.0)
+ i = i+1
+ it.increment()
+
+class pyDecreasingThicknessShader(StrokeShader):
+ def __init__(self, thicknessMax, thicknessMin):
+ StrokeShader.__init__(self)
+ self._thicknessMin = thicknessMin
+ self._thicknessMax = thicknessMax
+
+ def getName(self):
+ return "pyDecreasingThicknessShader"
+ def shade(self, stroke):
+ l = stroke.getLength2D()
+ tMax = self._thicknessMax
+ if(self._thicknessMax > 0.33*l):
+ tMax = 0.33*l
+ tMin = self._thicknessMin
+ if(self._thicknessMin > 0.1*l):
+ tMin = 0.1*l
+ n = stroke.strokeVerticesSize()
+ i = 0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ c = float(i)/float(n)
+ t = (1.0 - c)*tMax +c*tMin
+ att.setThickness(t/2.0, t/2.0)
+ i = i+1
+ it.increment()
+
+def smoothC( a, exp ):
+ c = pow(float(a),exp)*pow(2.0,exp)
+ return c
+
+class pyNonLinearVaryingThicknessShader(StrokeShader):
+ def __init__(self, thicknessExtremity, thicknessMiddle, exponent):
+ StrokeShader.__init__(self)
+ self._thicknessMin = thicknessMiddle
+ self._thicknessMax = thicknessExtremity
+ self._exponent = exponent
+
+ def getName(self):
+ return "pyNonLinearVaryingThicknessShader"
+ def shade(self, stroke):
+ n = stroke.strokeVerticesSize()
+ i = 0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ if(i < float(n)/2.0):
+ c = float(i)/float(n)
+ else:
+ c = float(n-i)/float(n)
+ c = smoothC(c, self._exponent)
+ t = (1.0 - c)*self._thicknessMax + c * self._thicknessMin
+ att.setThickness(t/2.0, t/2.0)
+ i = i+1
+ it.increment()
+
+## Spherical linear interpolation (cos)
+class pySLERPThicknessShader(StrokeShader):
+ def __init__(self, thicknessMin, thicknessMax, omega=1.2):
+ StrokeShader.__init__(self)
+ self._thicknessMin = thicknessMin
+ self._thicknessMax = thicknessMax
+ self._omega = omega
+
+ def getName(self):
+ return "pySLERPThicknessShader"
+ def shade(self, stroke):
+ slength = stroke.getLength2D()
+ tmp = 0.33*slength
+ maxT = self._thicknessMax
+ if(tmp < self._thicknessMax):
+ maxT = tmp
+
+ n = stroke.strokeVerticesSize()
+ i = 0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ c = float(i)/float(n)
+ if(i < float(n)/2.0):
+ t = sin((1-c)*self._omega)/sinh(self._omega)*self._thicknessMin + sin(c*self._omega)/sinh(self._omega) * maxT
+ else:
+ t = sin((1-c)*self._omega)/sinh(self._omega)*maxT + sin(c*self._omega)/sinh(self._omega) * self._thicknessMin
+ att.setThickness(t/2.0, t/2.0)
+ i = i+1
+ it.increment()
+
+class pyTVertexThickenerShader(StrokeShader): ## FIXME
+ def __init__(self, a=1.5, n=3):
+ StrokeShader.__init__(self)
+ self._a = a
+ self._n = n
+
+ def getName(self):
+ return "pyTVertexThickenerShader"
+
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ predTVertex = pyVertexNatureUP0D(T_VERTEX)
+ while it.isEnd() == 0:
+ if(predTVertex(it) == 1):
+ it2 = StrokeVertexIterator(it)
+ it2.increment()
+ if not(it.isBegin() or it2.isEnd()):
+ it.increment()
+ continue
+ n = self._n
+ a = self._a
+ if(it.isBegin()):
+ it3 = StrokeVertexIterator(it)
+ count = 0
+ while (it3.isEnd() == 0 and count < n):
+ att = it3.getObject().attribute()
+ tr = att.getThicknessR();
+ tl = att.getThicknessL();
+ r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1
+ #r = (1.0-a)/float(n-1)*count + a
+ att.setThickness(r*tr, r*tl)
+ it3.increment()
+ count = count + 1
+ if(it2.isEnd()):
+ it4 = StrokeVertexIterator(it)
+ count = 0
+ while (it4.isBegin() == 0 and count < n):
+ att = it4.getObject().attribute()
+ tr = att.getThicknessR();
+ tl = att.getThicknessL();
+ r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1
+ #r = (1.0-a)/float(n-1)*count + a
+ att.setThickness(r*tr, r*tl)
+ it4.decrement()
+ count = count + 1
+ if ((it4.isBegin() == 1)):
+ att = it4.getObject().attribute()
+ tr = att.getThicknessR();
+ tl = att.getThicknessL();
+ r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1
+ #r = (1.0-a)/float(n-1)*count + a
+ att.setThickness(r*tr, r*tl)
+ it.increment()
+
+class pyImportance2DThicknessShader(StrokeShader):
+ def __init__(self, x, y, w, kmin, kmax):
+ StrokeShader.__init__(self)
+ self._x = x
+ self._y = y
+ self._w = float(w)
+ self._kmin = float(kmin)
+ self._kmax = float(kmax)
+
+ def getName(self):
+ return "pyImportanceThicknessShader"
+ def shade(self, stroke):
+ origin = Vec2(self._x, self._y)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ v = it.getObject()
+ p = Vec2(v.getProjectedX(), v.getProjectedY())
+ d = (p-origin).length()
+ if(d>self._w):
+ k = self._kmin
+ else:
+ k = (self._kmax*(self._w-d) + self._kmin*d)/self._w
+ att = v.attribute()
+ tr = att.getThicknessR()
+ tl = att.getThicknessL()
+ att.setThickness(k*tr/2.0, k*tl/2.0)
+ it.increment()
+
+class pyImportance3DThicknessShader(StrokeShader):
+ def __init__(self, x, y, z, w, kmin, kmax):
+ StrokeShader.__init__(self)
+ self._x = x
+ self._y = y
+ self._z = z
+ self._w = float(w)
+ self._kmin = float(kmin)
+ self._kmax = float(kmax)
+
+ def getName(self):
+ return "pyImportance3DThicknessShader"
+ def shade(self, stroke):
+ origin = Vec3(self._x, self._y, self._z)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ v = it.getObject()
+ p = Vec3(v.getX(), v.getY(), v.getZ())
+ d = (p-origin).length()
+ if(d>self._w):
+ k = self._kmin
+ else:
+ k = (self._kmax*(self._w-d) + self._kmin*d)/self._w
+ att = v.attribute()
+ tr = att.getThicknessR()
+ tl = att.getThicknessL()
+ att.setThickness(k*tr/2.0, k*tl/2.0)
+ it.increment()
+
+class pyZDependingThicknessShader(StrokeShader):
+ def __init__(self, min, max):
+ StrokeShader.__init__(self)
+ self.__min = min
+ self.__max = max
+ self.__func = GetProjectedZF0D()
+ def getName(self):
+ return "pyZDependingThicknessShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ z_min = 1
+ z_max = 0
+ while it.isEnd() == 0:
+ z = self.__func(it.castToInterface0DIterator())
+ if z < z_min:
+ z_min = z
+ elif z > z_max:
+ z_max = z
+ it.increment()
+ z_diff = 1 / (z_max - z_min)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ z = (self.__func(it.castToInterface0DIterator()) - z_min) * z_diff
+ thickness = (1 - z) * self.__max + z * self.__min
+ it.getObject().attribute().setThickness(thickness, thickness)
+ it.increment()
+
+
+## color modifiers
+##################
+
+class pyConstantColorShader(StrokeShader):
+ def __init__(self,r,g,b, a = 1):
+ StrokeShader.__init__(self)
+ self._r = r
+ self._g = g
+ self._b = b
+ self._a = a
+ def getName(self):
+ return "pyConstantColorShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ att.setColor(self._r, self._g, self._b)
+ att.setAlpha(self._a)
+ it.increment()
+
+#c1->c2
+class pyIncreasingColorShader(StrokeShader):
+ def __init__(self,r1,g1,b1,a1, r2,g2,b2,a2):
+ StrokeShader.__init__(self)
+ self._c1 = [r1,g1,b1,a1]
+ self._c2 = [r2,g2,b2,a2]
+ def getName(self):
+ return "pyIncreasingColorShader"
+ def shade(self, stroke):
+ n = stroke.strokeVerticesSize() - 1
+ inc = 0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ c = float(inc)/float(n)
+
+ att.setColor( (1-c)*self._c1[0] + c*self._c2[0],
+ (1-c)*self._c1[1] + c*self._c2[1],
+ (1-c)*self._c1[2] + c*self._c2[2],)
+ att.setAlpha((1-c)*self._c1[3] + c*self._c2[3],)
+ inc = inc+1
+ it.increment()
+
+# c1->c2->c1
+class pyInterpolateColorShader(StrokeShader):
+ def __init__(self,r1,g1,b1,a1, r2,g2,b2,a2):
+ StrokeShader.__init__(self)
+ self._c1 = [r1,g1,b1,a1]
+ self._c2 = [r2,g2,b2,a2]
+ def getName(self):
+ return "pyInterpolateColorShader"
+ def shade(self, stroke):
+ n = stroke.strokeVerticesSize() - 1
+ inc = 0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ u = float(inc)/float(n)
+ c = 1-2*(fabs(u-0.5))
+ att.setColor( (1-c)*self._c1[0] + c*self._c2[0],
+ (1-c)*self._c1[1] + c*self._c2[1],
+ (1-c)*self._c1[2] + c*self._c2[2],)
+ att.setAlpha((1-c)*self._c1[3] + c*self._c2[3],)
+ inc = inc+1
+ it.increment()
+
+class pyMaterialColorShader(StrokeShader):
+ def __init__(self, threshold=50):
+ StrokeShader.__init__(self)
+ self._threshold = threshold
+
+ def getName(self):
+ return "pyMaterialColorShader"
+
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ func = MaterialF0D()
+ xn = 0.312713
+ yn = 0.329016
+ Yn = 1.0
+ un = 4.* xn/ ( -2.*xn + 12.*yn + 3. )
+ vn= 9.* yn/ ( -2.*xn + 12.*yn +3. )
+ while it.isEnd() == 0:
+ toto = it.castToInterface0DIterator()
+ mat = func(toto)
+
+ r = mat.diffuseR()
+ g = mat.diffuseG()
+ b = mat.diffuseB()
+
+ X = 0.412453*r + 0.35758 *g + 0.180423*b
+ Y = 0.212671*r + 0.71516 *g + 0.072169*b
+ Z = 0.019334*r + 0.119193*g + 0.950227*b
+
+ if((X == 0) and (Y == 0) and (Z == 0)):
+ X = 0.01
+ Y = 0.01
+ Z = 0.01
+ u = 4.*X / (X + 15.*Y + 3.*Z)
+ v = 9.*Y / (X + 15.*Y + 3.*Z)
+
+ L= 116. * math.pow((Y/Yn),(1./3.)) -16
+ U = 13. * L * (u - un)
+ V = 13. * L * (v - vn)
+
+ if (L > self._threshold):
+ L = L/1.3
+ U = U+10
+ else:
+ L = L +2.5*(100-L)/5.
+ U = U/3.0
+ V = V/3.0
+ u = U / (13. * L) + un
+ v = V / (13. * L) + vn
+
+ Y = Yn * math.pow( ((L+16.)/116.), 3.)
+ X = -9. * Y * u / ((u - 4.)* v - u * v)
+ Z = (9. * Y - 15*v*Y - v*X) /( 3. * v)
+
+ r = 3.240479 * X - 1.53715 * Y - 0.498535 * Z
+ g = -0.969256 * X + 1.875991 * Y + 0.041556 * Z
+ b = 0.055648 * X - 0.204043 * Y + 1.057311 * Z
+
+ att = it.getObject().attribute()
+ att.setColor(r, g, b)
+ it.increment()
+
+class pyRandomColorShader(StrokeShader):
+ def getName(self):
+ return "pyRandomColorShader"
+ def __init__(self, s=1):
+ StrokeShader.__init__(self)
+ seed(s)
+ def shade(self, stroke):
+ ## pick a random color
+ c0 = float(uniform(15,75))/100.0
+ c1 = float(uniform(15,75))/100.0
+ c2 = float(uniform(15,75))/100.0
+ print c0, c1, c2
+ it = stroke.strokeVerticesBegin()
+ while(it.isEnd() == 0):
+ it.getObject().attribute().setColor(c0,c1,c2)
+ it.increment()
+
+class py2DCurvatureColorShader(StrokeShader):
+ def getName(self):
+ return "py2DCurvatureColorShader"
+
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ func = Curvature2DAngleF0D()
+ while it.isEnd() == 0:
+ toto = it.castToInterface0DIterator()
+ sv = it.getObject()
+ att = sv.attribute()
+ c = func(toto)
+ if (c<0):
+ print "negative 2D curvature"
+ color = 10.0 * c/3.1415
+ print color
+ att.setColor(color,color,color);
+ it.increment()
+
+class pyTimeColorShader(StrokeShader):
+ def __init__(self, step=0.01):
+ StrokeShader.__init__(self)
+ self._t = 0
+ self._step = step
+ def shade(self, stroke):
+ c = self._t*1.0
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ att = it.getObject().attribute()
+ att.setColor(c,c,c)
+ it.increment()
+ self._t = self._t+self._step
+
+## geometry modifiers
+
+class pySamplingShader(StrokeShader):
+ def __init__(self, sampling):
+ StrokeShader.__init__(self)
+ self._sampling = sampling
+ def getName(self):
+ return "pySamplingShader"
+ def shade(self, stroke):
+ stroke.Resample(float(self._sampling))
+
+class pyBackboneStretcherShader(StrokeShader):
+ def __init__(self, l):
+ StrokeShader.__init__(self)
+ self._l = l
+ def getName(self):
+ return "pyBackboneStretcherShader"
+ def shade(self, stroke):
+ it0 = stroke.strokeVerticesBegin()
+ it1 = StrokeVertexIterator(it0)
+ it1.increment()
+ itn = stroke.strokeVerticesEnd()
+ itn.decrement()
+ itn_1 = StrokeVertexIterator(itn)
+ itn_1.decrement()
+ v0 = it0.getObject()
+ v1 = it1.getObject()
+ vn_1 = itn_1.getObject()
+ vn = itn.getObject()
+ p0 = Vec2f(v0.getProjectedX(), v0.getProjectedY())
+ pn = Vec2f(vn.getProjectedX(), vn.getProjectedY())
+ p1 = Vec2f(v1.getProjectedX(), v1.getProjectedY())
+ pn_1 = Vec2f(vn_1.getProjectedX(), vn_1.getProjectedY())
+ d1 = p0-p1
+ d1 = d1/d1.norm()
+ dn = pn-pn_1
+ dn = dn/dn.norm()
+ newFirst = p0+d1*float(self._l)
+ newLast = pn+dn*float(self._l)
+ v0.SetPoint(newFirst)
+ vn.SetPoint(newLast)
+
+class pyLengthDependingBackboneStretcherShader(StrokeShader):
+ def __init__(self, l):
+ StrokeShader.__init__(self)
+ self._l = l
+ def getName(self):
+ return "pyBackboneStretcherShader"
+ def shade(self, stroke):
+ l = stroke.getLength2D()
+ stretch = self._l*l
+ it0 = stroke.strokeVerticesBegin()
+ it1 = StrokeVertexIterator(it0)
+ it1.increment()
+ itn = stroke.strokeVerticesEnd()
+ itn.decrement()
+ itn_1 = StrokeVertexIterator(itn)
+ itn_1.decrement()
+ v0 = it0.getObject()
+ v1 = it1.getObject()
+ vn_1 = itn_1.getObject()
+ vn = itn.getObject()
+ p0 = Vec2f(v0.getProjectedX(), v0.getProjectedY())
+ pn = Vec2f(vn.getProjectedX(), vn.getProjectedY())
+ p1 = Vec2f(v1.getProjectedX(), v1.getProjectedY())
+ pn_1 = Vec2f(vn_1.getProjectedX(), vn_1.getProjectedY())
+ d1 = p0-p1
+ d1 = d1/d1.norm()
+ dn = pn-pn_1
+ dn = dn/dn.norm()
+ newFirst = p0+d1*float(stretch)
+ newLast = pn+dn*float(stretch)
+ v0.SetPoint(newFirst)
+ vn.SetPoint(newLast)
+
+
+## Shader to replace a stroke by its corresponding tangent
+class pyGuidingLineShader(StrokeShader):
+ def getName(self):
+ return "pyGuidingLineShader"
+ ## shading method
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin() ## get the first vertex
+ itlast = stroke.strokeVerticesEnd() ##
+ itlast.decrement() ## get the last one
+ t = itlast.getObject().getPoint() - it.getObject().getPoint() ## tangent direction
+ itmiddle = StrokeVertexIterator(it) ##
+ while(itmiddle.getObject().u()<0.5): ## look for the stroke middle vertex
+ itmiddle.increment() ##
+ it = StrokeVertexIterator(itmiddle)
+ it.increment()
+ while(it.isEnd() == 0): ## position all the vertices along the tangent for the right part
+ it.getObject().SetPoint(itmiddle.getObject().getPoint() \
+ +t*(it.getObject().u()-itmiddle.getObject().u()))
+ it.increment()
+ it = StrokeVertexIterator(itmiddle)
+ it.decrement()
+ while(it.isBegin() == 0): ## position all the vertices along the tangent for the left part
+ it.getObject().SetPoint(itmiddle.getObject().getPoint() \
+ -t*(itmiddle.getObject().u()-it.getObject().u()))
+ it.decrement()
+ it.getObject().SetPoint(itmiddle.getObject().getPoint()-t*(itmiddle.getObject().u())) ## first vertex
+
+
+class pyBackboneStretcherNoCuspShader(StrokeShader):
+ def __init__(self, l):
+ StrokeShader.__init__(self)
+ self._l = l
+ def getName(self):
+ return "pyBackboneStretcherNoCuspShader"
+ def shade(self, stroke):
+ it0 = stroke.strokeVerticesBegin()
+ it1 = StrokeVertexIterator(it0)
+ it1.increment()
+ itn = stroke.strokeVerticesEnd()
+ itn.decrement()
+ itn_1 = StrokeVertexIterator(itn)
+ itn_1.decrement()
+ v0 = it0.getObject()
+ v1 = it1.getObject()
+ if((v0.getNature() & CUSP == 0) and (v1.getNature() & CUSP == 0)):
+ p0 = v0.getPoint()
+ p1 = v1.getPoint()
+ d1 = p0-p1
+ d1 = d1/d1.norm()
+ newFirst = p0+d1*float(self._l)
+ v0.SetPoint(newFirst)
+ vn_1 = itn_1.getObject()
+ vn = itn.getObject()
+ if((vn.getNature() & CUSP == 0) and (vn_1.getNature() & CUSP == 0)):
+ pn = vn.getPoint()
+ pn_1 = vn_1.getPoint()
+ dn = pn-pn_1
+ dn = dn/dn.norm()
+ newLast = pn+dn*float(self._l)
+ vn.SetPoint(newLast)
+
+normalInfo=Normal2DF0D()
+curvatureInfo=Curvature2DAngleF0D()
+
+def edgestopping(x, sigma):
+ return exp(- x*x/(2*sigma*sigma))
+
+class pyDiffusion2Shader(StrokeShader):
+ def __init__(self, lambda1, nbIter):
+ StrokeShader.__init__(self)
+ self._lambda = lambda1
+ self._nbIter = nbIter
+ self._normalInfo = Normal2DF0D()
+ self._curvatureInfo = Curvature2DAngleF0D()
+ def getName(self):
+ return "pyDiffusionShader"
+ def shade(self, stroke):
+ for i in range (1, self._nbIter):
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ v=it.getObject()
+ p1 = v.getPoint()
+ p2 = self._normalInfo(it.castToInterface0DIterator())*self._lambda*self._curvatureInfo(it.castToInterface0DIterator())
+ v.SetPoint(p1+p2)
+ it.increment()
+
+class pyTipRemoverShader(StrokeShader):
+ def __init__(self, l):
+ StrokeShader.__init__(self)
+ self._l = l
+ def getName(self):
+ return "pyTipRemoverShader"
+ def shade(self, stroke):
+ originalSize = stroke.strokeVerticesSize()
+ if(originalSize<4):
+ return
+ verticesToRemove = []
+ oldAttributes = []
+ it = stroke.strokeVerticesBegin()
+ while(it.isEnd() == 0):
+ v = it.getObject()
+ if((v.curvilinearAbscissa() < self._l) or (v.strokeLength()-v.curvilinearAbscissa() < self._l)):
+ verticesToRemove.append(v)
+ oldAttributes.append(StrokeAttribute(v.attribute()))
+ it.increment()
+ if(originalSize-len(verticesToRemove) < 2):
+ return
+ for sv in verticesToRemove:
+ stroke.RemoveVertex(sv)
+ stroke.Resample(originalSize)
+ if(stroke.strokeVerticesSize() != originalSize):
+ print "pyTipRemover: Warning: resampling problem"
+ it = stroke.strokeVerticesBegin()
+ for a in oldAttributes:
+ if(it.isEnd() == 1):
+ break
+ v = it.getObject()
+ v.SetAttribute(a)
+ it.increment()
+
+class pyTVertexRemoverShader(StrokeShader):
+ def getName(self):
+ return "pyTVertexRemoverShader"
+ def shade(self, stroke):
+ if(stroke.strokeVerticesSize() <= 3 ):
+ return
+ predTVertex = pyVertexNatureUP0D(T_VERTEX)
+ it = stroke.strokeVerticesBegin()
+ itlast = stroke.strokeVerticesEnd()
+ itlast.decrement()
+ if(predTVertex(it) == 1):
+ stroke.RemoveVertex(it.getObject())
+ if(predTVertex(itlast) == 1):
+ stroke.RemoveVertex(itlast.getObject())
+
+class pyExtremitiesOrientationShader(StrokeShader):
+ def __init__(self, x1,y1,x2=0,y2=0):
+ StrokeShader.__init__(self)
+ self._v1 = Vec2(x1,y1)
+ self._v2 = Vec2(x2,y2)
+ def getName(self):
+ return "pyExtremitiesOrientationShader"
+ def shade(self, stroke):
+ print self._v1.x(),self._v1.y()
+ stroke.SetBeginningOrientation(self._v1.x(),self._v1.y())
+ stroke.SetEndingOrientation(self._v2.x(),self._v2.y())
+
+class pyHLRShader(StrokeShader):
+ def getName(self):
+ return "pyHLRShader"
+ def shade(self, stroke):
+ originalSize = stroke.strokeVerticesSize()
+ if(originalSize<4):
+ return
+ it = stroke.strokeVerticesBegin()
+ invisible = 0
+ it2 = StrokeVertexIterator(it)
+ it2.increment()
+ fe = getFEdge(it.getObject(), it2.getObject())
+ if(fe.qi() != 0):
+ invisible = 1
+ while(it2.isEnd() == 0):
+ v = it.getObject()
+ vnext = it2.getObject()
+ if(v.getNature() & VIEW_VERTEX):
+ #if(v.getNature() & T_VERTEX):
+ fe = getFEdge(v,vnext)
+ qi = fe.qi()
+ if(qi != 0):
+ invisible = 1
+ else:
+ invisible = 0
+ if(invisible == 1):
+ v.attribute().SetVisible(0)
+ it.increment()
+ it2.increment()
+
+class pyTVertexOrientationShader(StrokeShader):
+ def __init__(self):
+ StrokeShader.__init__(self)
+ self._Get2dDirection = Orientation2DF1D()
+ def getName(self):
+ return "pyTVertexOrientationShader"
+ ## finds the TVertex orientation from the TVertex and
+ ## the previous or next edge
+ def findOrientation(self, tv, ve):
+ mateVE = tv.mate(ve)
+ if((ve.qi() != 0) or (mateVE.qi() != 0)):
+ ait = AdjacencyIterator(tv,1,0)
+ winner = None
+ incoming = 1
+ while(ait.isEnd() == 0):
+ ave = ait.getObject()
+ if((ave.getId() != ve.getId()) and (ave.getId() != mateVE.getId())):
+ winner = ait.getObject()
+ if(ait.isIncoming() == 0):
+ incoming = 0
+ break
+ ait.increment()
+ if(winner != None):
+ if(incoming != 0):
+ direction = self._Get2dDirection(winner.fedgeB())
+ else:
+ direction = self._Get2dDirection(winner.fedgeA())
+ return direction
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ it2 = StrokeVertexIterator(it)
+ it2.increment()
+ ## case where the first vertex is a TVertex
+ v = it.getObject()
+ if(v.getNature() & T_VERTEX):
+ tv = v.castToTVertex()
+ ve = getFEdge(v, it2.getObject()).viewedge()
+ if(tv != None):
+ dir = self.findOrientation(tv, ve)
+ #print dir.x(), dir.y()
+ v.attribute().setAttributeVec2f("orientation", dir)
+ while(it2.isEnd() == 0):
+ vprevious = it.getObject()
+ v = it2.getObject()
+ if(v.getNature() & T_VERTEX):
+ tv = v.castToTVertex()
+ ve = getFEdge(vprevious, v).viewedge()
+ if(tv != None):
+ dir = self.findOrientation(tv, ve)
+ #print dir.x(), dir.y()
+ v.attribute().setAttributeVec2f("orientation", dir)
+ it.increment()
+ it2.increment()
+ ## case where the last vertex is a TVertex
+ v = it.getObject()
+ if(v.getNature() & T_VERTEX):
+ itPrevious = StrokeVertexIterator(it)
+ itPrevious.decrement()
+ tv = v.castToTVertex()
+ ve = getFEdge(itPrevious.getObject(), v).viewedge()
+ if(tv != None):
+ dir = self.findOrientation(tv, ve)
+ #print dir.x(), dir.y()
+ v.attribute().setAttributeVec2f("orientation", dir)
+
+class pySinusDisplacementShader(StrokeShader):
+ def __init__(self, f, a):
+ StrokeShader.__init__(self)
+ self._f = f
+ self._a = a
+ self._getNormal = Normal2DF0D()
+
+ def getName(self):
+ return "pySinusDisplacementShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ v = it.getObject()
+ #print self._getNormal.getName()
+ n = self._getNormal(it.castToInterface0DIterator())
+ p = v.getPoint()
+ u = v.u()
+ a = self._a*(1-2*(fabs(u-0.5)))
+ n = n*a*cos(self._f*u*6.28)
+ #print n.x(), n.y()
+ v.SetPoint(p+n)
+ #v.SetPoint(v.getPoint()+n*a*cos(f*v.u()))
+ it.increment()
+
+class pyPerlinNoise1DShader(StrokeShader):
+ def __init__(self, freq = 10, amp = 10, oct = 4):
+ StrokeShader.__init__(self)
+ self.__noise = Noise()
+ self.__freq = freq
+ self.__amp = amp
+ self.__oct = oct
+ def getName(self):
+ return "pyPerlinNoise1DShader"
+ def shade(self, stroke):
+ i = randint(0, 50)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ v = it.getObject()
+ nres = self.__noise.turbulence1(i, self.__freq, self.__amp, self.__oct)
+ v.SetPoint(v.getProjectedX() + nres, v.getProjectedY() + nres)
+ i = i+1
+ it.increment()
+
+class pyPerlinNoise2DShader(StrokeShader):
+ def __init__(self, freq = 10, amp = 10, oct = 4):
+ StrokeShader.__init__(self)
+ self.__noise = Noise()
+ self.__freq = freq
+ self.__amp = amp
+ self.__oct = oct
+ def getName(self):
+ return "pyPerlinNoise2DShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ v = it.getObject()
+ vec = Vec2f(v.getProjectedX(), v.getProjectedY())
+ nres = self.__noise.turbulence2(vec, self.__freq, self.__amp, self.__oct)
+ v.SetPoint(v.getProjectedX() + nres, v.getProjectedY() + nres)
+ it.increment()
+
+class pyBluePrintCirclesShader(StrokeShader):
+ def __init__(self, turns = 1):
+ StrokeShader.__init__(self)
+ self.__turns = turns
+ def getName(self):
+ return "pyBluePrintCirclesShader"
+ def shade(self, stroke):
+ p_min = Vec2f(10000, 10000)
+ p_max = Vec2f(0, 0)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ p = it.getObject().getPoint()
+ if (p.x() < p_min.x()):
+ p_min.setX(p.x())
+ if (p.x() > p_max.x()):
+ p_max.setX(p.x())
+ if (p.y() < p_min.y()):
+ p_min.setY(p.y())
+ if (p.y() > p_max.y()):
+ p_max.setY(p.y())
+ it.increment()
+ stroke.Resample(32 * self.__turns)
+ sv_nb = stroke.strokeVerticesSize()
+# print "min :", p_min.x(), p_min.y() # DEBUG
+# print "mean :", p_sum.x(), p_sum.y() # DEBUG
+# print "max :", p_max.x(), p_max.y() # DEBUG
+# print "----------------------" # DEBUG
+#######################################################
+ sv_nb = sv_nb / self.__turns
+ center = (p_min + p_max) / 2
+ radius = (center.x() - p_min.x() + center.y() - p_min.y()) / 2
+ p_new = Vec2f()
+#######################################################
+ it = stroke.strokeVerticesBegin()
+ for j in range(self.__turns):
+ radius = radius + randint(-3, 3)
+ center_x = center.x() + randint(-5, 5)
+ center_y = center.y() + randint(-5, 5)
+ center.setX(center_x)
+ center.setY(center_y)
+ i = 0
+ while i < sv_nb:
+ p_new.setX(center.x() + radius * cos(2 * pi * float(i) / float(sv_nb - 1)))
+ p_new.setY(center.y() + radius * sin(2 * pi * float(i) / float(sv_nb - 1)))
+ it.getObject().SetPoint(p_new.x(), p_new.y())
+ i = i + 1
+ it.increment()
+ while it.isEnd() == 0:
+ stroke.RemoveVertex(it.getObject())
+ it.increment()
+
+
+class pyBluePrintEllipsesShader(StrokeShader):
+ def __init__(self, turns = 1):
+ StrokeShader.__init__(self)
+ self.__turns = turns
+ def getName(self):
+ return "pyBluePrintEllipsesShader"
+ def shade(self, stroke):
+ p_min = Vec2f(10000, 10000)
+ p_max = Vec2f(0, 0)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ p = it.getObject().getPoint()
+ if (p.x() < p_min.x()):
+ p_min.setX(p.x())
+ if (p.x() > p_max.x()):
+ p_max.setX(p.x())
+ if (p.y() < p_min.y()):
+ p_min.setY(p.y())
+ if (p.y() > p_max.y()):
+ p_max.setY(p.y())
+ it.increment()
+ stroke.Resample(32 * self.__turns)
+ sv_nb = stroke.strokeVerticesSize()
+# print "min :", p_min.x(), p_min.y() # DEBUG
+# print "mean :", p_sum.x(), p_sum.y() # DEBUG
+# print "max :", p_max.x(), p_max.y() # DEBUG
+# print "----------------------" # DEBUG
+#######################################################
+ sv_nb = sv_nb / self.__turns
+ center = (p_min + p_max) / 2
+ radius_x = center.x() - p_min.x()
+ radius_y = center.y() - p_min.y()
+ p_new = Vec2f()
+#######################################################
+ it = stroke.strokeVerticesBegin()
+ for j in range(self.__turns):
+ radius_x = radius_x + randint(-3, 3)
+ radius_y = radius_y + randint(-3, 3)
+ center_x = center.x() + randint(-5, 5)
+ center_y = center.y() + randint(-5, 5)
+ center.setX(center_x)
+ center.setY(center_y)
+ i = 0
+ while i < sv_nb:
+ p_new.setX(center.x() + radius_x * cos(2 * pi * float(i) / float(sv_nb - 1)))
+ p_new.setY(center.y() + radius_y * sin(2 * pi * float(i) / float(sv_nb - 1)))
+ it.getObject().SetPoint(p_new.x(), p_new.y())
+ i = i + 1
+ it.increment()
+ while it.isEnd() == 0:
+ stroke.RemoveVertex(it.getObject())
+ it.increment()
+
+
+class pyBluePrintSquaresShader(StrokeShader):
+ def __init__(self, turns = 1, bb_len = 10):
+ StrokeShader.__init__(self)
+ self.__turns = turns
+ self.__bb_len = bb_len
+ def getName(self):
+ return "pyBluePrintSquaresShader"
+ def shade(self, stroke):
+ p_min = Vec2f(10000, 10000)
+ p_max = Vec2f(0, 0)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ p = it.getObject().getPoint()
+ if (p.x() < p_min.x()):
+ p_min.setX(p.x())
+ if (p.x() > p_max.x()):
+ p_max.setX(p.x())
+ if (p.y() < p_min.y()):
+ p_min.setY(p.y())
+ if (p.y() > p_max.y()):
+ p_max.setY(p.y())
+ it.increment()
+ stroke.Resample(32 * self.__turns)
+ sv_nb = stroke.strokeVerticesSize()
+#######################################################
+ sv_nb = sv_nb / self.__turns
+ first = sv_nb / 4
+ second = 2 * first
+ third = 3 * first
+ fourth = sv_nb
+ vec_first = Vec2f(p_max.x() - p_min.x() + 2 * self.__bb_len, 0)
+ vec_second = Vec2f(0, p_max.y() - p_min.y() + 2 * self.__bb_len)
+ vec_third = vec_first * -1
+ vec_fourth = vec_second * -1
+ p_first = Vec2f(p_min.x() - self.__bb_len, p_min.y())
+ p_second = Vec2f(p_max.x(), p_min.y() - self.__bb_len)
+ p_third = Vec2f(p_max.x() + self.__bb_len, p_max.y())
+ p_fourth = Vec2f(p_min.x(), p_max.y() + self.__bb_len)
+#######################################################
+ it = stroke.strokeVerticesBegin()
+ visible = 1
+ for j in range(self.__turns):
+ i = 0
+ while i < sv_nb:
+ if i < first:
+ p_new = p_first + vec_first * float(i)/float(first - 1)
+ if i == first - 1:
+ visible = 0
+ elif i < second:
+ p_new = p_second + vec_second * float(i - first)/float(second - first - 1)
+ if i == second - 1:
+ visible = 0
+ elif i < third:
+ p_new = p_third + vec_third * float(i - second)/float(third - second - 1)
+ if i == third - 1:
+ visible = 0
+ else:
+ p_new = p_fourth + vec_fourth * float(i - third)/float(fourth - third - 1)
+ if i == fourth - 1:
+ visible = 0
+ it.getObject().SetPoint(p_new.x(), p_new.y())
+ it.getObject().attribute().SetVisible(visible)
+ if visible == 0:
+ visible = 1
+ i = i + 1
+ it.increment()
+ while it.isEnd() == 0:
+ stroke.RemoveVertex(it.getObject())
+ it.increment()
+
+
+class pyBluePrintDirectedSquaresShader(StrokeShader):
+ def __init__(self, turns = 1, bb_len = 10, mult = 1):
+ StrokeShader.__init__(self)
+ self.__mult = mult
+ self.__turns = turns
+ self.__bb_len = 1 + float(bb_len) / 100
+ def getName(self):
+ return "pyBluePrintDirectedSquaresShader"
+ def shade(self, stroke):
+ stroke.Resample(32 * self.__turns)
+ p_mean = Vec2f(0, 0)
+ p_min = Vec2f(10000, 10000)
+ p_max = Vec2f(0, 0)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ p = it.getObject().getPoint()
+ p_mean = p_mean + p
+## if (p.x() < p_min.x()):
+## p_min.setX(p.x())
+## if (p.x() > p_max.x()):
+## p_max.setX(p.x())
+## if (p.y() < p_min.y()):
+## p_min.setY(p.y())
+## if (p.y() > p_max.y()):
+## p_max.setY(p.y())
+ it.increment()
+ sv_nb = stroke.strokeVerticesSize()
+ p_mean = p_mean / sv_nb
+ p_var_xx = 0
+ p_var_yy = 0
+ p_var_xy = 0
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ p = it.getObject().getPoint()
+ p_var_xx = p_var_xx + pow(p.x() - p_mean.x(), 2)
+ p_var_yy = p_var_yy + pow(p.y() - p_mean.y(), 2)
+ p_var_xy = p_var_xy + (p.x() - p_mean.x()) * (p.y() - p_mean.y())
+ it.increment()
+ p_var_xx = p_var_xx / sv_nb
+ p_var_yy = p_var_yy / sv_nb
+ p_var_xy = p_var_xy / sv_nb
+## print p_var_xx, p_var_yy, p_var_xy
+ trace = p_var_xx + p_var_yy
+ det = p_var_xx * p_var_yy - p_var_xy * p_var_xy
+ sqrt_coeff = sqrt(trace * trace - 4 * det)
+ lambda1 = (trace + sqrt_coeff) / 2
+ lambda2 = (trace - sqrt_coeff) / 2
+## print lambda1, lambda2
+ theta = atan(2 * p_var_xy / (p_var_xx - p_var_yy)) / 2
+## print theta
+ if p_var_yy > p_var_xx:
+ e1 = Vec2f(cos(theta + pi / 2), sin(theta + pi / 2)) * sqrt(lambda1) * self.__mult
+ e2 = Vec2f(cos(theta + pi), sin(theta + pi)) * sqrt(lambda2) * self.__mult
+ else:
+ e1 = Vec2f(cos(theta), sin(theta)) * sqrt(lambda1) * self.__mult
+ e2 = Vec2f(cos(theta + pi / 2), sin(theta + pi / 2)) * sqrt(lambda2) * self.__mult
+#######################################################
+ sv_nb = sv_nb / self.__turns
+ first = sv_nb / 4
+ second = 2 * first
+ third = 3 * first
+ fourth = sv_nb
+ bb_len1 = self.__bb_len
+ bb_len2 = 1 + (bb_len1 - 1) * sqrt(lambda1 / lambda2)
+ p_first = p_mean - e1 - e2 * bb_len2
+ p_second = p_mean - e1 * bb_len1 + e2
+ p_third = p_mean + e1 + e2 * bb_len2
+ p_fourth = p_mean + e1 * bb_len1 - e2
+ vec_first = e2 * bb_len2 * 2
+ vec_second = e1 * bb_len1 * 2
+ vec_third = vec_first * -1
+ vec_fourth = vec_second * -1
+#######################################################
+ it = stroke.strokeVerticesBegin()
+ visible = 1
+ for j in range(self.__turns):
+ i = 0
+ while i < sv_nb:
+ if i < first:
+ p_new = p_first + vec_first * float(i)/float(first - 1)
+ if i == first - 1:
+ visible = 0
+ elif i < second:
+ p_new = p_second + vec_second * float(i - first)/float(second - first - 1)
+ if i == second - 1:
+ visible = 0
+ elif i < third:
+ p_new = p_third + vec_third * float(i - second)/float(third - second - 1)
+ if i == third - 1:
+ visible = 0
+ else:
+ p_new = p_fourth + vec_fourth * float(i - third)/float(fourth - third - 1)
+ if i == fourth - 1:
+ visible = 0
+ it.getObject().SetPoint(p_new.x(), p_new.y())
+ it.getObject().attribute().SetVisible(visible)
+ if visible == 0:
+ visible = 1
+ i = i + 1
+ it.increment()
+ while it.isEnd() == 0:
+ stroke.RemoveVertex(it.getObject())
+ it.increment()
+
+class pyModulateAlphaShader(StrokeShader):
+ def __init__(self, min = 0, max = 1):
+ StrokeShader.__init__(self)
+ self.__min = min
+ self.__max = max
+ def getName(self):
+ return "pyModulateAlphaShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ alpha = it.getObject().attribute().getAlpha()
+ p = it.getObject().getPoint()
+ alpha = alpha * p.y() / 400
+ if alpha < self.__min:
+ alpha = self.__min
+ elif alpha > self.__max:
+ alpha = self.__max
+ it.getObject().attribute().setAlpha(alpha)
+ it.increment()
+
+
+## various
+class pyDummyShader(StrokeShader):
+ def getName(self):
+ return "pyDummyShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ it_end = stroke.strokeVerticesEnd()
+ while it.isEnd() == 0:
+ toto = it.castToInterface0DIterator()
+ att = it.getObject().attribute()
+ att.setColor(0.3, 0.4, 0.4)
+ att.setThickness(0, 5)
+ it.increment()
+
+class pyDebugShader(StrokeShader):
+ def getName(self):
+ return "pyDebugShader"
+
+ def shade(self, stroke):
+ fe = GetSelectedFEdgeCF()
+ id1=fe.vertexA().getId()
+ id2=fe.vertexB().getId()
+ #print id1.getFirst(), id1.getSecond()
+ #print id2.getFirst(), id2.getSecond()
+ it = stroke.strokeVerticesBegin()
+ found = 0
+ foundfirst = 0
+ foundsecond = 0
+ while it.isEnd() == 0:
+ cp = it.getObject()
+ if((cp.A().getId() == id1) or (cp.B().getId() == id1)):
+ foundfirst = 1
+ if((cp.A().getId() == id2) or (cp.B().getId() == id2)):
+ foundsecond = 1
+ if((foundfirst != 0) and (foundsecond != 0)):
+ found = 1
+ break
+ it.increment()
+ if(found != 0):
+ print "The selected Stroke id is: ", stroke.getId().getFirst(), stroke.getId().getSecond()
+
diff --git a/source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py b/source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py
new file mode 100755
index 00000000000..69e6f11751d
--- /dev/null
+++ b/source/blender/freestyle/style_modules/sketchy_multiple_parameterization.py
@@ -0,0 +1,48 @@
+#
+# Filename : sketchy_multiple_parameterization.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Builds sketchy strokes whose topology relies on a
+# parameterization that covers the complete lines (visible+invisible)
+# whereas only the visible portions are actually drawn
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+## 0: don't restrict to selection
+Operators.bidirectionalChain(pySketchyChainSilhouetteIterator(3,0))
+shaders_list = [
+ SamplingShader(2),
+ SpatialNoiseShader(15, 120, 2, 1, 1),
+ IncreasingThicknessShader(5, 30),
+ SmoothingShader(100, 0.05, 0, 0.2, 0, 0, 0, 1),
+ IncreasingColorShader(0,0.2,0,1,0.2,0.7,0.2,1),
+ TextureAssignerShader(6),
+ pyHLRShader()
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/sketchy_topology_broken.py b/source/blender/freestyle/style_modules/sketchy_topology_broken.py
new file mode 100755
index 00000000000..c1cefedfad2
--- /dev/null
+++ b/source/blender/freestyle/style_modules/sketchy_topology_broken.py
@@ -0,0 +1,89 @@
+#
+# Filename : sketchy_topology_broken.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : The topology of the strokes is, first, built
+# independantly from the 3D topology of objects,
+# and, second, so as to chain several times the same ViewEdge.
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+## Backbone stretcher that leaves cusps intact to avoid cracks
+class pyBackboneStretcherNoCuspShader(StrokeShader):
+ def __init__(self, l):
+ StrokeShader.__init__(self)
+ self._l = l
+ def getName(self):
+ return "pyBackboneStretcherNoCuspShader"
+ def shade(self, stroke):
+ it0 = stroke.strokeVerticesBegin()
+ it1 = StrokeVertexIterator(it0)
+ it1.increment()
+ itn = stroke.strokeVerticesEnd()
+ itn.decrement()
+ itn_1 = StrokeVertexIterator(itn)
+ itn_1.decrement()
+ v0 = it0.getObject()
+ v1 = it1.getObject()
+ if((v0.getNature() & CUSP == 0) and (v1.getNature() & CUSP == 0)):
+ p0 = v0.getPoint()
+ p1 = v1.getPoint()
+ d1 = p0-p1
+ d1 = d1/d1.norm()
+ newFirst = p0+d1*float(self._l)
+ v0.SetPoint(newFirst)
+ else:
+ print "got a v0 cusp"
+ vn_1 = itn_1.getObject()
+ vn = itn.getObject()
+ if((vn.getNature() & CUSP == 0) and (vn_1.getNature() & CUSP == 0)):
+ pn = vn.getPoint()
+ pn_1 = vn_1.getPoint()
+ dn = pn-pn_1
+ dn = dn/dn.norm()
+ newLast = pn+dn*float(self._l)
+ vn.SetPoint(newLast)
+ else:
+ print "got a vn cusp"
+
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+## Chain 3 times each ViewEdge indpendantly from the
+## initial objects topology
+Operators.bidirectionalChain(pySketchyChainingIterator(3))
+shaders_list = [
+ SamplingShader(4),
+ SpatialNoiseShader(6, 120, 2, 1, 1),
+ IncreasingThicknessShader(4, 10),
+ SmoothingShader(100, 0.1, 0, 0.2, 0, 0, 0, 1),
+ pyBackboneStretcherNoCuspShader(20),
+ #ConstantColorShader(0.0,0.0,0.0)
+ IncreasingColorShader(0.2,0.2,0.2,1,0.5,0.5,0.5,1),
+ #IncreasingColorShader(1,0,0,1,0,1,0,1),
+ TextureAssignerShader(4)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/sketchy_topology_preserved.py b/source/blender/freestyle/style_modules/sketchy_topology_preserved.py
new file mode 100755
index 00000000000..bc56a272bd5
--- /dev/null
+++ b/source/blender/freestyle/style_modules/sketchy_topology_preserved.py
@@ -0,0 +1,49 @@
+#
+# Filename : sketchy_topology_preserved.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : The topology of the strokes is built
+# so as to chain several times the same ViewEdge.
+# The topology of the objects is preserved
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from PredicatesU1D import *
+from shaders import *
+
+upred = QuantitativeInvisibilityUP1D(0)
+Operators.select(upred)
+Operators.bidirectionalChain(pySketchyChainSilhouetteIterator(3,1))
+shaders_list = [
+ SamplingShader(4),
+ SpatialNoiseShader(20, 220, 2, 1, 1),
+ IncreasingThicknessShader(4, 8),
+ SmoothingShader(300, 0.05, 0, 0.2, 0, 0, 0, 0.5),
+ ConstantColorShader(0.6,0.2,0.0),
+ TextureAssignerShader(4),
+ ]
+
+Operators.create(TrueUP1D(), shaders_list)
+
diff --git a/source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py b/source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py
new file mode 100755
index 00000000000..0f42080292b
--- /dev/null
+++ b/source/blender/freestyle/style_modules/split_at_highest_2d_curvatures.py
@@ -0,0 +1,40 @@
+#
+# Filename : split_at_highest_2d_curvature.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws the visible lines (chaining follows same nature lines)
+# (most basic style module)
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesU1D import *
+from Functions0D import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+func = pyInverseCurvature2DAngleF0D()
+Operators.recursiveSplit(func, pyParameterUP0D(0.4,0.6), NotUP1D(pyHigherLengthUP1D(100)), 2)
+shaders_list = [ConstantThicknessShader(10), IncreasingColorShader(1,0,0,1,0,1,0,1), TextureAssignerShader(3)]
+Operators.create(TrueUP1D(), shaders_list)
+
diff --git a/source/blender/freestyle/style_modules/split_at_tvertices.py b/source/blender/freestyle/style_modules/split_at_tvertices.py
new file mode 100755
index 00000000000..dde586fd1f0
--- /dev/null
+++ b/source/blender/freestyle/style_modules/split_at_tvertices.py
@@ -0,0 +1,42 @@
+#
+# Filename : split_at_tvertices.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws strokes that starts and stops at Tvertices (visible or not)
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesU1D import *
+from PredicatesU0D import *
+from Functions0D import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+start = pyVertexNatureUP0D(T_VERTEX)
+## use the same predicate to decide where to start and where to stop
+## the strokes:
+Operators.sequentialSplit(start, start, 10)
+shaders_list = [ConstantThicknessShader(5), IncreasingColorShader(1,0,0,1,0,1,0,1), TextureAssignerShader(3)]
+Operators.create(TrueUP1D(), shaders_list)
+
diff --git a/source/blender/freestyle/style_modules/stroke_texture.py b/source/blender/freestyle/style_modules/stroke_texture.py
new file mode 100755
index 00000000000..d6c753bf9e6
--- /dev/null
+++ b/source/blender/freestyle/style_modules/stroke_texture.py
@@ -0,0 +1,43 @@
+#
+# Filename : stroke_texture.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws textured strokes (illustrate the StrokeTextureShader shader)
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+from ChainingIterators import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ SamplingShader(3),
+ BezierCurveShader(4),
+ StrokeTextureShader("washbrushAlpha.bmp", Stroke.DRY_MEDIUM, 1),
+ ConstantThicknessShader(40),
+ ConstantColorShader(0,0,0,1),
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/suggestive.py b/source/blender/freestyle/style_modules/suggestive.py
new file mode 100755
index 00000000000..99a419ca23f
--- /dev/null
+++ b/source/blender/freestyle/style_modules/suggestive.py
@@ -0,0 +1,43 @@
+#
+# Filename : suggestive.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Draws the suggestive contours.
+# ***** The suggestive contours must be enabled
+# in the options dialog *****
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from PredicatesU1D import *
+from shaders import *
+
+upred = AndUP1D(pyNatureUP1D(SUGGESTIVE_CONTOUR), QuantitativeInvisibilityUP1D(0))
+Operators.select(upred)
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
+shaders_list = [
+ IncreasingThicknessShader(1, 3),
+ ConstantColorShader(0.2,0.2,0.2, 1)
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py b/source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py
new file mode 100755
index 00000000000..06687fd9a00
--- /dev/null
+++ b/source/blender/freestyle/style_modules/thickness_fof_depth_discontinuity.py
@@ -0,0 +1,62 @@
+#
+# Filename : thickness_fof_depth_discontinuity.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Assigns to strokes a thickness that depends on the depth discontinuity
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+class pyDepthDiscontinuityThicknessShader(StrokeShader):
+ def __init__(self, min, max):
+ StrokeShader.__init__(self)
+ self.__min = float(min)
+ self.__max = float(max)
+ self.__func = ZDiscontinuityF0D()
+ def getName(self):
+ return "pyDepthDiscontinuityThicknessShader"
+ def shade(self, stroke):
+ it = stroke.strokeVerticesBegin()
+ z_min=0.0
+ z_max=1.0
+ a = (self.__max - self.__min)/(z_max-z_min)
+ b = (self.__min*z_max-self.__max*z_min)/(z_max-z_min)
+ it = stroke.strokeVerticesBegin()
+ while it.isEnd() == 0:
+ z = self.__func(it.castToInterface0DIterator())
+ thickness = a*z+b
+ it.getObject().attribute().setThickness(thickness, thickness)
+ it.increment()
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ SamplingShader(1),
+ ConstantThicknessShader(3),
+ ConstantColorShader(0.0,0.0,0.0),
+ pyDepthDiscontinuityThicknessShader(0.8, 6)
+ ]
+Operators.create(TrueUP1D(), shaders_list) \ No newline at end of file
diff --git a/source/blender/freestyle/style_modules/tipremover.py b/source/blender/freestyle/style_modules/tipremover.py
new file mode 100755
index 00000000000..b87eb7a573a
--- /dev/null
+++ b/source/blender/freestyle/style_modules/tipremover.py
@@ -0,0 +1,42 @@
+#
+# Filename : tipremover.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Removes strokes extremities
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+
+from Freestyle import *
+from logical_operators import *
+from ChainingIterators import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ SamplingShader(5),
+ ConstantThicknessShader(3),
+ ConstantColorShader(0,0,0),
+ TipRemoverShader(20)
+ ]
+Operators.create(TrueUP1D(), shaders_list) \ No newline at end of file
diff --git a/source/blender/freestyle/style_modules/tvertex_remover.py b/source/blender/freestyle/style_modules/tvertex_remover.py
new file mode 100755
index 00000000000..b55754381f7
--- /dev/null
+++ b/source/blender/freestyle/style_modules/tvertex_remover.py
@@ -0,0 +1,42 @@
+#
+# Filename : tvertex_remover.py
+# Author : Stephane Grabli
+# Date : 04/08/2005
+# Purpose : Removes TVertices
+#
+#############################################################################
+#
+# Copyright (C) : Please refer to the COPYRIGHT file distributed
+# with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#############################################################################
+
+
+from Freestyle import *
+from logical_operators import *
+from PredicatesB1D import *
+from shaders import *
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(QuantitativeInvisibilityUP1D(0)))
+shaders_list = [
+ IncreasingThicknessShader(3, 5),
+ ConstantColorShader(0.2,0.2,0.2, 1),
+ SamplingShader(10.0),
+ pyTVertexRemoverShader()
+ ]
+Operators.create(TrueUP1D(), shaders_list)
diff --git a/source/blender/freestyle/style_modules/uniformpruning_zsort.py b/source/blender/freestyle/style_modules/uniformpruning_zsort.py
new file mode 100755
index 00000000000..7e719417af0
--- /dev/null
+++ b/source/blender/freestyle/style_modules/uniformpruning_zsort.py
@@ -0,0 +1,40 @@
+from Freestyle import *
+from logical_operators import *
+from PredicatesU1D import *
+from PredicatesU0D import *
+from PredicatesB1D import *
+from Functions0D import *
+from Functions1D import *
+from shaders import *
+
+class pyDensityUP1D(UnaryPredicate1D):
+ def __init__(self,wsize,threshold, integration = MEAN, sampling=2.0):
+ UnaryPredicate1D.__init__(self)
+ self._wsize = wsize
+ self._threshold = threshold
+ self._integration = integration
+ self._func = DensityF1D(self._wsize, self._integration, sampling)
+
+ def getName(self):
+ return "pyDensityUP1D"
+
+ def __call__(self, inter):
+ d = self._func(inter)
+ print "For Chain ", inter.getId().getFirst(), inter.getId().getSecond(), "density is ", d
+ if(d < self._threshold):
+ return 1
+ return 0
+
+Operators.select(QuantitativeInvisibilityUP1D(0))
+Operators.bidirectionalChain(ChainSilhouetteIterator())
+#Operators.sequentialSplit(pyVertexNatureUP0D(VIEW_VERTEX), 2)
+Operators.sort(pyZBP1D())
+shaders_list = [
+ StrokeTextureShader("smoothAlpha.bmp", Stroke.OPAQUE_MEDIUM, 0),
+ ConstantThicknessShader(3),
+ SamplingShader(5.0),
+ ConstantColorShader(0,0,0,1)
+ ]
+Operators.create(pyDensityUP1D(2,0.05, MEAN,4), shaders_list)
+#Operators.create(pyDensityFunctorUP1D(8,0.03, pyGetInverseProjectedZF1D(), 0,1, MEAN), shaders_list)
+
diff --git a/source/blender/freestyle/style_modules/vector.py b/source/blender/freestyle/style_modules/vector.py
new file mode 100755
index 00000000000..039f262546b
--- /dev/null
+++ b/source/blender/freestyle/style_modules/vector.py
@@ -0,0 +1,241 @@
+# This module defines 3d geometrical vectors with the standard
+# operations on them.
+#
+# Written by: Konrad Hinsen
+# Last revision: 1996-1-26
+#
+
+"""This module defines three-dimensional geometrical vectors. Vectors support
+the usual mathematical operations (v1, v2: vectors, s: scalar):
+ v1+v2 addition
+ v1-v2 subtraction
+ v1*v2 scalar product
+ s*v1 multiplication with a scalar
+ v1/s division by a scalar
+ v1.cross(v2) cross product
+ v1.length() length
+ v1.normal() normal vector in direction of v1
+ v1.angle(v2) angle between two vectors
+ v1.x(), v1[0] first element
+ v1.y(), v1[1] second element
+ v1.z(), v1[2] third element
+
+The module offers the following items for export:
+ Vec3D(x,y,z) the constructor for vectors
+ isVector(x) a type check function
+ ex, ey, ez unit vectors along the x-, y-, and z-axes (predefined constants)
+
+Note: vector elements can be any kind of numbers on which the operations
+addition, subtraction, multiplication, division, comparison, sqrt, and acos
+are defined. Integer elements are treated as floating point elements.
+"""
+
+import math, types
+
+class Vec3:
+
+ isVec3 = 1
+
+ def __init__(self, x=0., y=0., z=0.):
+ self.data = [x,y,z]
+
+ def __repr__(self):
+ return 'Vec3(%s,%s,%s)' % (`self.data[0]`,\
+ `self.data[1]`,`self.data[2]`)
+
+ def __str__(self):
+ return `self.data`
+
+ def __add__(self, other):
+ return Vec3(self.data[0]+other.data[0],\
+ self.data[1]+other.data[1],self.data[2]+other.data[2])
+ __radd__ = __add__
+
+ def __neg__(self):
+ return Vec3(-self.data[0], -self.data[1], -self.data[2])
+
+ def __sub__(self, other):
+ return Vec3(self.data[0]-other.data[0],\
+ self.data[1]-other.data[1],self.data[2]-other.data[2])
+
+ def __rsub__(self, other):
+ return Vec3(other.data[0]-self.data[0],\
+ other.data[1]-self.data[1],other.data[2]-self.data[2])
+
+ def __mul__(self, other):
+ if isVec3(other):
+ return reduce(lambda a,b: a+b,
+ map(lambda a,b: a*b, self.data, other.data))
+ else:
+ return Vec3(self.data[0]*other, self.data[1]*other,
+ self.data[2]*other)
+
+ def __rmul__(self, other):
+ if isVec3(other):
+ return reduce(lambda a,b: a+b,
+ map(lambda a,b: a*b, self.data, other.data))
+ else:
+ return Vec3(other*self.data[0], other*self.data[1],
+ other*self.data[2])
+
+ def __div__(self, other):
+ if isVec3(other):
+ raise TypeError, "Can't divide by a vector"
+ else:
+ return Vec3(_div(self.data[0],other), _div(self.data[1],other),
+ _div(self.data[2],other))
+
+ def __rdiv__(self, other):
+ raise TypeError, "Can't divide by a vector"
+
+ def __cmp__(self, other):
+ return cmp(self.data[0],other.data[0]) \
+ or cmp(self.data[1],other.data[1]) \
+ or cmp(self.data[2],other.data[2])
+
+ def __getitem__(self, index):
+ return self.data[index]
+
+ def x(self):
+ return self.data[0]
+ def y(self):
+ return self.data[1]
+ def z(self):
+ return self.data[2]
+
+ def length(self):
+ return math.sqrt(self*self)
+
+ def normal(self):
+ len = self.length()
+ if len == 0:
+ raise ZeroDivisionError, "Can't normalize a zero-length vector"
+ return self/len
+
+ def cross(self, other):
+ if not isVec3(other):
+ raise TypeError, "Cross product with non-vector"
+ return Vec3(self.data[1]*other.data[2]-self.data[2]*other.data[1],
+ self.data[2]*other.data[0]-self.data[0]*other.data[2],
+ self.data[0]*other.data[1]-self.data[1]*other.data[0])
+
+ def angle(self, other):
+ if not isVec3(other):
+ raise TypeError, "Angle between vector and non-vector"
+ cosa = (self*other)/(self.length()*other.length())
+ cosa = max(-1.,min(1.,cosa))
+ return math.acos(cosa)
+
+
+class Vec2:
+
+ isVec2 = 1
+
+ def __init__(self, x=0., y=0.):
+ self.data = [x,y]
+
+ def __repr__(self):
+ return 'Vec2(%s,%s,%s)' % (`self.data[0]`,\
+ `self.data[1]`)
+
+ def __str__(self):
+ return `self.data`
+
+ def __add__(self, other):
+ return Vec2(self.data[0]+other.data[0],\
+ self.data[1]+other.data[1])
+ __radd__ = __add__
+
+ def __neg__(self):
+ return Vec2(-self.data[0], -self.data[1])
+
+ def __sub__(self, other):
+ return Vec2(self.data[0]-other.data[0],\
+ self.data[1]-other.data[1])
+
+ def __rsub__(self, other):
+ return Vec2(other.data[0]-self.data[0],\
+ other.data[1]-self.data[1])
+
+ def __mul__(self, other):
+ if isVec2(other):
+ return reduce(lambda a,b: a+b,
+ map(lambda a,b: a*b, self.data, other.data))
+ else:
+ return Vec2(self.data[0]*other, self.data[1]*other)
+
+ def __rmul__(self, other):
+ if isVec2(other):
+ return reduce(lambda a,b: a+b,
+ map(lambda a,b: a*b, self.data, other.data))
+ else:
+ return Vec2(other*self.data[0], other*self.data[1])
+
+ def __div__(self, other):
+ if isVec2(other):
+ raise TypeError, "Can't divide by a vector"
+ else:
+ return Vec2(_div(self.data[0],other), _div(self.data[1],other))
+
+ def __rdiv__(self, other):
+ raise TypeError, "Can't divide by a vector"
+
+ def __cmp__(self, other):
+ return cmp(self.data[0],other.data[0]) \
+ or cmp(self.data[1],other.data[1])
+
+ def __getitem__(self, index):
+ return self.data[index]
+
+ def x(self):
+ return self.data[0]
+ def y(self):
+ return self.data[1]
+
+ def length(self):
+ return math.sqrt(self*self)
+
+ def normal(self):
+ len = self.length()
+ if len == 0:
+ raise ZeroDivisionError, "Can't normalize a zero-length vector"
+ return self/len
+
+ #def cross(self, other):
+# if not isVec2(other):
+# raise TypeError, "Cross product with non-vector"
+# return Vec2(self.data[1]*other.data[2]-self.data[2]*other.data[1],
+# self.data[2]*other.data[0]-self.data[0]*other.data[2],
+# self.data[0]*other.data[1]-self.data[1]*other.data[0])
+
+ def angle(self, other):
+ if not isVec2(other):
+ raise TypeError, "Angle between vector and non-vector"
+ cosa = (self*other)/(self.length()*other.length())
+ cosa = max(-1.,min(1.,cosa))
+ return math.acos(cosa)
+
+
+
+# Type check
+
+def isVec3(x):
+ return hasattr(x,'isVec3')
+
+def isVec2(x):
+ return hasattr(x,'isVec2')
+
+# "Correct" division for arbitrary number types
+
+def _div(a,b):
+ if type(a) == types.IntType and type(b) == types.IntType:
+ return float(a)/float(b)
+ else:
+ return a/b
+
+
+# Some useful constants
+
+ex = Vec3(1.,0.,0.)
+ey = Vec3(0.,1.,0.)
+ez = Vec3(0.,0.,1.)
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index b59908fef39..8f94c2cec3d 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -180,7 +180,7 @@ static void openexr_header_compression(Header *header, int compression)
static short imb_save_openexr_half(struct ImBuf *ibuf, char *name, int flags)
{
- int channels = ibuf->channels;
+
int width = ibuf->x;
int height = ibuf->y;
int write_zbuf = (flags & IB_zbuffloat) && ibuf->zbuf_float != NULL; // summarize
@@ -194,7 +194,7 @@ static short imb_save_openexr_half(struct ImBuf *ibuf, char *name, int flags)
header.channels().insert ("R", Channel (HALF));
header.channels().insert ("G", Channel (HALF));
header.channels().insert ("B", Channel (HALF));
- if (ibuf->depth==32 && channels >= 4)
+ if (ibuf->depth==32)
header.channels().insert ("A", Channel (HALF));
if (write_zbuf) // z we do as float always
header.channels().insert ("Z", Channel (FLOAT));
@@ -207,29 +207,29 @@ static short imb_save_openexr_half(struct ImBuf *ibuf, char *name, int flags)
RGBAZ *to = pixels;
int xstride= sizeof (RGBAZ);
int ystride= xstride*width;
-
+
/* indicate used buffers */
frameBuffer.insert ("R", Slice (HALF, (char *) &pixels[0].r, xstride, ystride));
frameBuffer.insert ("G", Slice (HALF, (char *) &pixels[0].g, xstride, ystride));
frameBuffer.insert ("B", Slice (HALF, (char *) &pixels[0].b, xstride, ystride));
- if (ibuf->depth==32 && channels >= 4)
+ if (ibuf->depth==32)
frameBuffer.insert ("A", Slice (HALF, (char *) &pixels[0].a, xstride, ystride));
if (write_zbuf)
- frameBuffer.insert ("Z", Slice (FLOAT, (char *)(ibuf->zbuf_float + (height-1)*width),
+ frameBuffer.insert ("Z", Slice (FLOAT, (char *) ibuf->zbuf_float + 4*(height-1)*width,
sizeof(float), sizeof(float) * -width));
if(ibuf->rect_float) {
float *from;
for (int i = ibuf->y-1; i >= 0; i--)
{
- from= ibuf->rect_float + channels*i*width;
+ from= ibuf->rect_float + 4*i*width;
for (int j = ibuf->x; j > 0; j--)
{
to->r = from[0];
- to->g = (channels >= 2)? from[1]: from[0];
- to->b = (channels >= 3)? from[2]: from[0];
- to->a = (channels >= 4)? from[3]: from[0];
+ to->g = from[1];
+ to->b = from[2];
+ to->a = from[3];
to++; from += 4;
}
}
@@ -239,14 +239,14 @@ static short imb_save_openexr_half(struct ImBuf *ibuf, char *name, int flags)
for (int i = ibuf->y-1; i >= 0; i--)
{
- from= (unsigned char *)ibuf->rect + channels*i*width;
+ from= (unsigned char *)(ibuf->rect + i*width);
for (int j = ibuf->x; j > 0; j--)
{
to->r = (float)(from[0])/255.0;
- to->g = (float)((channels >= 2)? from[1]: from[0])/255.0;
- to->b = (float)((channels >= 3)? from[2]: from[0])/255.0;
- to->a = (float)((channels >= 4)? from[3]: from[0])/255.0;
+ to->g = (float)(from[1])/255.0;
+ to->b = (float)(from[2])/255.0;
+ to->a = (float)(from[3])/255.0;
to++; from += 4;
}
}
@@ -272,7 +272,7 @@ static short imb_save_openexr_half(struct ImBuf *ibuf, char *name, int flags)
static short imb_save_openexr_float(struct ImBuf *ibuf, char *name, int flags)
{
- int channels = ibuf->channels;
+
int width = ibuf->x;
int height = ibuf->y;
int write_zbuf = (flags & IB_zbuffloat) && ibuf->zbuf_float != NULL; // summarize
@@ -286,29 +286,24 @@ static short imb_save_openexr_float(struct ImBuf *ibuf, char *name, int flags)
header.channels().insert ("R", Channel (FLOAT));
header.channels().insert ("G", Channel (FLOAT));
header.channels().insert ("B", Channel (FLOAT));
- if (ibuf->depth==32 && channels >= 4)
+ if (ibuf->depth==32)
header.channels().insert ("A", Channel (FLOAT));
if (write_zbuf)
header.channels().insert ("Z", Channel (FLOAT));
FrameBuffer frameBuffer;
OutputFile *file = new OutputFile(name, header);
- int xstride = sizeof(float) * channels;
+ float *first= ibuf->rect_float + 4*(height-1)*width;
+ int xstride = sizeof(float) * 4;
int ystride = - xstride*width;
- float *rect[4] = {NULL, NULL, NULL, NULL};
-
- rect[0]= ibuf->rect_float + channels*(height-1)*width;
- rect[1]= (channels >= 2)? rect[0]+1: rect[0];
- rect[2]= (channels >= 3)? rect[0]+2: rect[0];
- rect[3]= (channels >= 4)? rect[0]+3: rect[0];
-
- frameBuffer.insert ("R", Slice (FLOAT, (char *)rect[0], xstride, ystride));
- frameBuffer.insert ("G", Slice (FLOAT, (char *)rect[1], xstride, ystride));
- frameBuffer.insert ("B", Slice (FLOAT, (char *)rect[2], xstride, ystride));
- if (ibuf->depth==32 && channels >= 4)
- frameBuffer.insert ("A", Slice (FLOAT, (char *)rect[3], xstride, ystride));
+
+ frameBuffer.insert ("R", Slice (FLOAT, (char *) first, xstride, ystride));
+ frameBuffer.insert ("G", Slice (FLOAT, (char *) (first+1), xstride, ystride));
+ frameBuffer.insert ("B", Slice (FLOAT, (char *) (first+2), xstride, ystride));
+ if (ibuf->depth==32)
+ frameBuffer.insert ("A", Slice (FLOAT, (char *) (first+3), xstride, ystride));
if (write_zbuf)
- frameBuffer.insert ("Z", Slice (FLOAT, (char *) (ibuf->zbuf_float + (height-1)*width),
+ frameBuffer.insert ("Z", Slice (FLOAT, (char *) ibuf->zbuf_float + 4*(height-1)*width,
sizeof(float), sizeof(float) * -width));
file->setFrameBuffer (frameBuffer);
file->writePixels (height);
diff --git a/source/blender/imbuf/intern/radiance_hdr.c b/source/blender/imbuf/intern/radiance_hdr.c
index b4e384ada72..ec630427745 100644
--- a/source/blender/imbuf/intern/radiance_hdr.c
+++ b/source/blender/imbuf/intern/radiance_hdr.c
@@ -251,7 +251,7 @@ struct ImBuf *imb_loadhdr(unsigned char *mem, int size, int flags)
}
/* ImBuf write */
-static int fwritecolrs(FILE* file, int width, int channels, unsigned char* ibufscan, float* fpscan)
+static int fwritecolrs(FILE* file, int width, unsigned char* ibufscan, float* fpscan)
{
int x, i, j, beg, c2, cnt=0;
fCOLOR fcol;
@@ -266,16 +266,16 @@ static int fwritecolrs(FILE* file, int width, int channels, unsigned char* ibufs
for (i=0;i<width;i++) {
if (fpscan) {
fcol[RED] = fpscan[j];
- fcol[GRN] = (channels >= 2)? fpscan[j+1]: fpscan[j];
- fcol[BLU] = (channels >= 3)? fpscan[j+2]: fpscan[j];
+ fcol[GRN] = fpscan[j+1];
+ fcol[BLU] = fpscan[j+2];
} else {
fcol[RED] = (float)ibufscan[j] / 255.f;
- fcol[GRN] = (float)((channels >= 2)? ibufscan[j+1]: ibufscan[j]) / 255.f;
- fcol[BLU] = (float)((channels >= 3)? ibufscan[j+2]: ibufscan[j]) / 255.f;
+ fcol[GRN] = (float)ibufscan[j+1] / 255.f;
+ fcol[BLU] = (float)ibufscan[j+2] /255.f;
}
FLOAT2RGBE(fcol, rgbe);
copy_rgbe(rgbe, rgbe_scan[i]);
- j+=channels;
+ j+=4;
}
if ((width < MINELEN) | (width > MAXELEN)) { /* OOBs, write out flat */
@@ -348,18 +348,18 @@ short imb_savehdr(struct ImBuf *ibuf, char *name, int flags)
writeHeader(file, width, height);
if(ibuf->rect)
- cp= (unsigned char *)ibuf->rect + ibuf->channels*(height-1)*width;
+ cp= (unsigned char *)(ibuf->rect + (height-1)*width);
if(ibuf->rect_float)
- fp= ibuf->rect_float + ibuf->channels*(height-1)*width;
+ fp= ibuf->rect_float + 4*(height-1)*width;
for (y=height-1;y>=0;y--) {
- if (fwritecolrs(file, width, ibuf->channels, cp, fp) < 0) {
+ if (fwritecolrs(file, width, cp, fp) < 0) {
fclose(file);
printf("HDR write error\n");
return 0;
}
- if(cp) cp-= ibuf->channels*width;
- if(fp) fp-= ibuf->channels*width;
+ if(cp) cp-= 4*width;
+ if(fp) fp-= 4*width;
}
fclose(file);
diff --git a/source/blender/imbuf/intern/readimage.c b/source/blender/imbuf/intern/readimage.c
index 566df53a25e..881fddc1bb2 100644
--- a/source/blender/imbuf/intern/readimage.c
+++ b/source/blender/imbuf/intern/readimage.c
@@ -31,9 +31,6 @@
#ifdef WIN32
#include <io.h>
-#include <stddef.h>
-#include <sys/types.h>
-#include "mmap_win.h"
#endif
#include "BLI_blenlib.h"
@@ -232,7 +229,7 @@ struct ImBuf *IMB_loadifffile(int file, int flags) {
size = BLI_filesize(file);
-#if defined(AMIGA) || defined(__BeOS)
+#if defined(AMIGA) || defined(__BeOS) || defined(WIN32)
mem= (int *)malloc(size);
if (mem==0) {
printf("Out of mem\n");
diff --git a/source/blender/makesdna/intern/CMakeLists.txt b/source/blender/makesdna/intern/CMakeLists.txt
index a85f561da92..d4b222f3644 100644
--- a/source/blender/makesdna/intern/CMakeLists.txt
+++ b/source/blender/makesdna/intern/CMakeLists.txt
@@ -24,7 +24,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-SET(SRC makesdna.c ../../../../intern/guardedalloc/intern/mallocn.c ../../../../intern/guardedalloc/intern/mmap_win.c)
+SET(SRC makesdna.c ../../../../intern/guardedalloc/intern/mallocn.c)
INCLUDE_DIRECTORIES(../../../../intern/guardedalloc ..)
diff --git a/source/blender/makesdna/intern/SConscript b/source/blender/makesdna/intern/SConscript
index 512e6817666..574e289d3a9 100644
--- a/source/blender/makesdna/intern/SConscript
+++ b/source/blender/makesdna/intern/SConscript
@@ -8,7 +8,6 @@ defines = []
root_build_dir=env['BF_BUILDDIR']
source_files = ['makesdna.c']
-header_files = env.Glob('../*.h')
makesdna_tool = env.Copy()
dna = env.Copy()
@@ -37,7 +36,6 @@ else:
dna_dict = dna.Dictionary()
dna.Depends ('dna.c', makesdna)
-dna.Depends ('dna.c', header_files)
if env['OURPLATFORM'] != 'linuxcross':
dna.Command ('dna.c', '', root_build_dir+os.sep+"makesdna $TARGET")
else:
diff --git a/source/blender/python/BPY_extern.h b/source/blender/python/BPY_extern.h
index f6a27b80733..41e8004e25b 100644
--- a/source/blender/python/BPY_extern.h
+++ b/source/blender/python/BPY_extern.h
@@ -84,8 +84,7 @@ extern "C" {
void init_syspath( int first_time );
void syspath_append( char *dir );
void BPY_rebuild_syspath( void );
- int BPY_path_update( void );
-
+
int BPY_Err_getLinenumber( void );
const char *BPY_Err_getFilename( void );
diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c
index ffdb593767a..4e271db69de 100644
--- a/source/blender/python/BPY_interface.c
+++ b/source/blender/python/BPY_interface.c
@@ -462,16 +462,6 @@ void BPY_rebuild_syspath( void )
PyGILState_Release(gilstate);
}
-int BPY_path_update( void )
-{
- BPyMenu_RemoveAllEntries(); /* free old data */
- BPY_rebuild_syspath();
- if (BPyMenu_Init(1) == -1) { /* re-eval scripts registration in menus */
- return 0;
- }
- return 1;
-}
-
/****************************************************************************
* Description: This function finishes Python initialization in Blender.
@@ -639,13 +629,11 @@ int BPY_txt_do_python_Text( struct Text *text )
if( !strcmp( script->id.name + 2, text->id.name + 2 ) ) {
/* if this text is already a running script,
* just move to it: */
- if (!G.background) {
- SpaceScript *sc;
- newspace( curarea, SPACE_SCRIPT );
- sc = curarea->spacedata.first;
- sc->script = script;
- return 1;
- }
+ SpaceScript *sc;
+ newspace( curarea, SPACE_SCRIPT );
+ sc = curarea->spacedata.first;
+ sc->script = script;
+ return 1;
}
script = script->id.next;
}
@@ -945,12 +933,10 @@ int BPY_run_script(Script *script)
/* special case: called from the menu in the Scripts window
* we have to change sc->script pointer, since it'll be freed here.*/
- if (!G.background) {
- if( curarea->spacetype == SPACE_SCRIPT ) {
- SpaceScript *sc = curarea->spacedata.first;
- sc->script = G.main->script.first; /* can be null, which is ok ... */
- /* ... meaning no other script is running right now. */
- }
+ if( curarea->spacetype == SPACE_SCRIPT ) {
+ SpaceScript *sc = curarea->spacedata.first;
+ sc->script = G.main->script.first; /* can be null, which is ok ... */
+ /* ... meaning no other script is running right now. */
}
}
diff --git a/source/blender/python/api2_2x/Node.c b/source/blender/python/api2_2x/Node.c
index 24df6de66cc..1d420c5e4cb 100644
--- a/source/blender/python/api2_2x/Node.c
+++ b/source/blender/python/api2_2x/Node.c
@@ -1108,153 +1108,91 @@ static PyObject *Node_GetInputMap(BPy_Node *self) {
#define REFRACT_D 36
#define STRAND_D 37
-/* MACRO time: defining shi getters */
-
-/* a couple checks that we can redefine to nothing for a tiny performance
- * gain */
-
-#define SHI_CHECK_SHI\
- if (!self->shi)\
- return EXPP_ReturnPyObjError(PyExc_RuntimeError,\
- "no shade input data!");
-
-#define SHI_CHECK_OB\
- if (!ob)\
- return EXPP_ReturnPyObjError(PyExc_RuntimeError,\
- "couldn't create vector object!");
-
-/* for shi getters: */
-
-#define SHI_GETATTR_f(name, var)\
-static PyObject *ShadeInput_get##name(BPy_ShadeInput *self, void *unused)\
-{\
- PyObject *ob = NULL;\
-\
- SHI_CHECK_SHI\
-\
- ob = PyFloat_FromDouble((double)(self->shi->var));\
-\
- SHI_CHECK_OB\
-\
- return ob;\
-}
-
-#define SHI_GETATTR_fvec(name, var, len)\
-static PyObject *ShadeInput_get##name(BPy_ShadeInput *self, void *unused)\
-{\
- PyObject *ob = NULL;\
-\
- SHI_CHECK_SHI\
-\
- ob = newVectorObject(self->shi->var, len, Py_NEW);\
-\
- SHI_CHECK_OB\
-\
- return ob;\
-}
-
-#define SHI_GETATTR_2fvec(name, v1, v2, len)\
-static PyObject *ShadeInput_get##name(BPy_ShadeInput *self, void *unused)\
-{\
- PyObject *ob = NULL;\
- PyObject *tuple = NULL;\
-\
- SHI_CHECK_SHI\
-\
- tuple = PyTuple_New(2);\
-\
- ob = newVectorObject(self->shi->v1, len, Py_NEW);\
- PyTuple_SET_ITEM(tuple, 0, ob);\
-\
- ob = newVectorObject(self->shi->v2, len, Py_NEW);\
- PyTuple_SET_ITEM(tuple, 1, ob);\
-\
- return tuple;\
-}
-
-#define SHI_GETATTR_3f(name, v1, v2, v3)\
-static PyObject *ShadeInput_get##name(BPy_ShadeInput *self, void *unused)\
-{\
- PyObject *ob = NULL;\
- float vec[3];\
-\
- SHI_CHECK_SHI\
-\
- vec[0] = self->shi->v1;\
- vec[1] = self->shi->v2;\
- vec[2] = self->shi->v3;\
-\
- ob = newVectorObject(vec, 3, Py_NEW);\
-\
- SHI_CHECK_OB\
-\
- return ob;\
-}
-
-/* float */
-
-SHI_GETATTR_f(Ambient, amb);
-SHI_GETATTR_f(Emit, emit);
-SHI_GETATTR_f(Strand, strandco);
-SHI_GETATTR_f(Stress, stress);
-
-/* 3 float vars */
-
-SHI_GETATTR_3f(Color, r, g, b)
-SHI_GETATTR_3f(ColorSpecular, specr, specg, specb)
-SHI_GETATTR_3f(ColorMirror, mirr, mirg, mirb)
-SHI_GETATTR_3f(ColorAmbient, ambr, ambg, ambb)
-
-/* float vector */
-
-SHI_GETATTR_fvec(SurfaceViewVector, view, 3)
-SHI_GETATTR_fvec(SurfaceNormal, facenor, 3)
-SHI_GETATTR_fvec(ViewNormal, vn, 3)
-SHI_GETATTR_fvec(TextureGlobal, gl, 3)
-SHI_GETATTR_fvec(Texture, lo, 3)
-SHI_GETATTR_fvec(Displace, displace, 3)
-SHI_GETATTR_fvec(Tangent, tang, 3)
-
-/* two float vectors */
-
-SHI_GETATTR_2fvec(SurfaceD, dxco, dyco, 3)
-SHI_GETATTR_2fvec(TextureD, dxlo, dylo, 3)
-SHI_GETATTR_2fvec(TextureGlobalD, dxgl, dygl, 3)
-SHI_GETATTR_2fvec(ReflectionD, dxref, dyref, 3)
-SHI_GETATTR_2fvec(NormalD, dxno, dyno, 3)
-SHI_GETATTR_2fvec(StickyD, dxsticky, dysticky, 3)
-SHI_GETATTR_2fvec(RefractD, dxrefract, dyrefract, 3)
-
-/* single cases (for now), not macros: */
-
-static PyObject *ShadeInput_getPixel(BPy_ShadeInput *self, void *unused)
-{
- PyObject *ob = NULL;
-
- SHI_CHECK_SHI
-
- ob = Py_BuildValue("(ii)", self->shi->xs, self->shi->ys);
-
- SHI_CHECK_OB
-
- return ob;
-}
-
-static PyObject *ShadeInput_getStrandD(BPy_ShadeInput *self, void *unused)
-{
- PyObject *ob = NULL;
- float vec[2];
-
- SHI_CHECK_SHI
-
- vec[0] = self->shi->dxstrand;
- vec[1] = self->shi->dystrand;
-
- ob = newVectorObject(vec, 2, Py_NEW);
-
- SHI_CHECK_OB
+static PyObject *ShadeInput_getAttribute(BPy_ShadeInput *self, void *type) {
+ PyObject *obj = NULL;
+ if(self->shi) {
+ switch(GET_INT_FROM_POINTER(type)) {
+ case SURFACEVIEWVECTOR:
+ obj = Py_BuildValue("(fff)", self->shi->view[0], self->shi->view[1], self->shi->view[2]);
+ break;
+ case VIEWNORMAL:
+ obj = Py_BuildValue("(fff)", self->shi->vn[0], self->shi->vn[1], self->shi->vn[2]);
+ break;
+ case SURFACENORMAL:
+ obj = Py_BuildValue("(fff)", self->shi->facenor[0], self->shi->facenor[1], self->shi->facenor[2]);
+ break;
+ case GLOBALTEXTURE:
+ obj = Py_BuildValue("(fff)", self->shi->gl[0], self->shi->gl[1], self->shi->gl[2]);
+ break;
+ case TEXTURE:
+ obj = Py_BuildValue("(fff)", self->shi->lo[0], self->shi->lo[1], self->shi->lo[2]);
+ break;
+ case PIXEL:
+ obj = Py_BuildValue("(ii)", self->shi->xs, self->shi->ys);
+ break;
+ case COLOR:
+ obj = Py_BuildValue("(fff)", self->shi->r, self->shi->g, self->shi->b);
+ break;
+ case SPECULAR_COLOR:
+ obj = Py_BuildValue("(fff)", self->shi->specr, self->shi->specg, self->shi->specb);
+ break;
+ case MIRROR_COLOR:
+ obj = Py_BuildValue("(fff)", self->shi->mirr, self->shi->mirg, self->shi->mirb);
+ break;
+ case AMBIENT_COLOR:
+ obj = Py_BuildValue("(fff)", self->shi->ambr, self->shi->ambg, self->shi->ambb);
+ break;
+ case AMBIENT:
+ obj = PyFloat_FromDouble((double)(self->shi->amb));
+ break;
+ case EMIT:
+ obj = PyFloat_FromDouble((double)(self->shi->emit));
+ break;
+ case DISPLACE:
+ obj = Py_BuildValue("(fff)", self->shi->displace[0], self->shi->displace[1], self->shi->displace[2]);
+ break;
+ case STRAND:
+ obj = PyFloat_FromDouble((double)(self->shi->strandco));
+ break;
+ case STRESS:
+ obj = PyFloat_FromDouble((double)(self->shi->stress));
+ break;
+ case TANGENT:
+ obj = Py_BuildValue("(fff)", self->shi->tang[0], self->shi->tang[1], self->shi->tang[2]);
+ break;
+ case SURFACE_D:
+ obj = Py_BuildValue("(fff)(fff)", self->shi->dxco[0], self->shi->dxco[1], self->shi->dxco[2], self->shi->dyco[0], self->shi->dyco[1], self->shi->dyco[2]);
+ break;
+ case TEXTURE_D:
+ obj = Py_BuildValue("(fff)(fff)", self->shi->dxlo[0], self->shi->dxlo[1], self->shi->dxlo[2], self->shi->dylo[0], self->shi->dylo[1], self->shi->dylo[2]);
+ break;
+ case GLOBALTEXTURE_D:
+ obj = Py_BuildValue("(fff)(fff)", self->shi->dxgl[0], self->shi->dxgl[1], self->shi->dxgl[2], self->shi->dygl[0], self->shi->dygl[1], self->shi->dygl[2]);
+ break;
+ case REFLECTION_D:
+ obj = Py_BuildValue("(fff)(fff)", self->shi->dxref[0], self->shi->dxref[1], self->shi->dxref[2], self->shi->dyref[0], self->shi->dyref[1], self->shi->dyref[2]);
+ break;
+ case NORMAL_D:
+ obj = Py_BuildValue("(fff)(fff)", self->shi->dxno[0], self->shi->dxno[1], self->shi->dxno[2], self->shi->dyno[0], self->shi->dyno[1], self->shi->dyno[2]);
+ break;
+ case STICKY_D:
+ obj = Py_BuildValue("(fff)(fff)", self->shi->dxsticky[0], self->shi->dxsticky[1], self->shi->dxsticky[2], self->shi->dysticky[0], self->shi->dysticky[1], self->shi->dysticky[2]);
+ break;
+ case REFRACT_D:
+ obj = Py_BuildValue("(fff)(fff)", self->shi->dxrefract[0], self->shi->dxrefract[1], self->shi->dxrefract[2], self->shi->dyrefract[0], self->shi->dyrefract[1], self->shi->dyrefract[2]);
+ break;
+ case STRAND_D:
+ obj = Py_BuildValue("(ff)", self->shi->dxstrand, self->shi->dystrand);
+ break;
+ default:
+ break;
+ }
+ }
- return ob;
+ if(!obj) {
+ Py_RETURN_NONE;
+ }
+ return obj;
}
static BPy_SockMap *Node_CreateOutputMap(bNode *node, bNodeStack **stack) {
@@ -1316,77 +1254,101 @@ static PyGetSetDef BPy_Node_getseters[] = {
static PyGetSetDef BPy_ShadeInput_getseters[] = {
{"texture",
- (getter)ShadeInput_getTexture, (setter)NULL,
- "Get the current texture coordinate (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the current texture coordinate (tuple)",
+ (void*)TEXTURE},
{"textureGlobal",
- (getter)ShadeInput_getTextureGlobal, (setter)NULL,
- "Get the current global texture coordinate (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the current global texture coordinate (tuple)",
+ (void*)GLOBALTEXTURE},
{"surfaceNormal",
- (getter)ShadeInput_getSurfaceNormal, (setter)NULL,
- "Get the current surface normal (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the current surface normal (tuple)",
+ (void*)SURFACENORMAL},
{"viewNormal",
- (getter)ShadeInput_getViewNormal, (setter)NULL,
- "Get the current view normal (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the current view normal (tuple)",
+ (void*)VIEWNORMAL},
{"surfaceViewVector",
- (getter)ShadeInput_getSurfaceViewVector, (setter)NULL,
- "Get the vector pointing to the viewpoint from the point being shaded (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the vector pointing to the viewpoint from the point being shaded (tuple)",
+ (void*)SURFACEVIEWVECTOR},
{"pixel",
- (getter)ShadeInput_getPixel, (setter)NULL,
- "Get the x,y-coordinate for the pixel rendered (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the x,y-coordinate for the pixel rendered (tuple)",
+ (void*)PIXEL},
{"color",
- (getter)ShadeInput_getColor, (setter)NULL,
- "Get the color for the point being shaded (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the color for the point being shaded (tuple)",
+ (void*)COLOR},
{"specularColor",
- (getter)ShadeInput_getColorSpecular, (setter)NULL,
- "Get the specular color for the point being shaded (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the specular color for the point being shaded (tuple)",
+ (void*)SPECULAR_COLOR},
{"mirrorColor",
- (getter)ShadeInput_getColorMirror, (setter)NULL,
- "Get the mirror color for the point being shaded (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the mirror color for the point being shaded (tuple)",
+ (void*)MIRROR_COLOR},
{"ambientColor",
- (getter)ShadeInput_getColorAmbient, (setter)NULL,
- "Get the ambient color for the point being shaded (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the ambient color for the point being shaded (tuple)",
+ (void*)AMBIENT_COLOR},
{"ambient",
- (getter)ShadeInput_getAmbient, (setter)NULL,
- "Get the ambient factor for the point being shaded (float)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the ambient factor for the point being shaded (float)",
+ (void*)AMBIENT},
{"emit",
- (getter)ShadeInput_getEmit, (setter)NULL,
- "Get the emit factor for the point being shaded (float)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the emit factor for the point being shaded (float)",
+ (void*)EMIT},
{"displace",
- (getter)ShadeInput_getDisplace, (setter)NULL,
- "Get the displace vector for the point being shaded (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the displace vector for the point being shaded (tuple)",
+ (void*)DISPLACE},
{"strand",
- (getter)ShadeInput_getStrand, (setter)NULL,
- "Get the strand factor(float)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the strand factor(float)",
+ (void*)STRAND},
{"stress",
- (getter)ShadeInput_getStress, (setter)NULL,
- "Get the stress factor(float)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the stress factor(float)",
+ (void*)STRESS},
{"tangent",
- (getter)ShadeInput_getTangent, (setter)NULL,
- "Get the tangent vector (3-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the tangent vector (tuple)",
+ (void*)TANGENT},
{"surfaceD",
- (getter)ShadeInput_getSurfaceD, (setter)NULL,
- "Get the surface d (tuple with pair of 3-vectors)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the surface d (tuple of tuples)",
+ (void*)SURFACE_D},
{"textureD",
- (getter)ShadeInput_getTextureD, (setter)NULL,
- "Get the texture d (tuple with pair of 3-vectors)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the texture d (tuple of tuples)",
+ (void*)TEXTURE_D},
{"textureGlobalD",
- (getter)ShadeInput_getTextureGlobalD, (setter)NULL,
- "Get the global texture d (tuple with pair of 3-vectors)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the global texture d (tuple of tuples)",
+ (void*)GLOBALTEXTURE_D},
{"reflectionD",
- (getter)ShadeInput_getReflectionD, (setter)NULL,
- "Get the reflection d (tuple with pair of 3-vectors)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the reflection d (tuple of tuples)",
+ (void*)REFLECTION_D},
{"normalD",
- (getter)ShadeInput_getNormalD, (setter)NULL,
- "Get the normal d (tuple with pair of 3-vectors)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the normal d (tuple of tuples)",
+ (void*)NORMAL_D},
{"stickyD",
- (getter)ShadeInput_getStickyD, (setter)NULL,
- "Get the sticky d (tuple with pair of 3-vectors)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the sticky d (tuple of tuples)",
+ (void*)STICKY_D},
{"refractD",
- (getter)ShadeInput_getRefractD, (setter)NULL,
- "Get the refract d (tuple with pair of 3-vectors)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the refract d (tuple of tuples)",
+ (void*)REFRACT_D},
{"strandD",
- (getter)ShadeInput_getStrandD, (setter)NULL,
- "Get the strand d (2-vector)", NULL},
+ (getter)ShadeInput_getAttribute, (setter)NULL,
+ "Get the strand d (tuple)",
+ (void*)STRAND_D},
{NULL,NULL,NULL,NULL,NULL} /* Sentinel */
};
@@ -1532,7 +1494,7 @@ PyTypeObject ShadeInput_Type = {
/*** Attribute descriptor and subclassing stuff ***/
NULL, /*BPy_Node_methods,*/ /* struct PyMethodDef *tp_methods; */
NULL, /* struct PyMemberDef *tp_members; */
- BPy_ShadeInput_getseters, /* struct PyGetSetDef *tp_getset; */
+ BPy_ShadeInput_getseters, /* struct PyGetSetDef *tp_getset; */
NULL, /* struct _typeobject *tp_base; */
NULL, /* PyObject *tp_dict; */
NULL, /* descrgetfunc tp_descr_get; */
diff --git a/source/blender/python/api2_2x/doc/API_related.py b/source/blender/python/api2_2x/doc/API_related.py
index 4e29f95e76d..87b29e7f524 100644
--- a/source/blender/python/api2_2x/doc/API_related.py
+++ b/source/blender/python/api2_2x/doc/API_related.py
@@ -351,8 +351,8 @@ Introduction:
expected format for each url entry is e.g.
"Author's site, http://www.somewhere.com". The first part, before the
comma (','), is used as the button's tooltip. There are two preset
- options: "blender" and "blenderartists.org", which link to the Python forums at
- blender.org and blenderartists.org, respectively.
+ options: "blender" and "elysiun", which link to the Python forums at
+ blender.org and elysiun.com, respectively.
- __email__ (optional, type: string or list of strings):
- Equivalent to __url__, but opens the user's default email client. You
@@ -369,7 +369,7 @@ Introduction:
__author__ = 'Mr. Author'
__version__ = '1.0 2005/01/01'
__url__ = ["Author's site, http://somewhere.com",
- "Support forum, http://somewhere.com/forum/", "blender", "blenderartists.org"]
+ "Support forum, http://somewhere.com/forum/", "blender", "elysiun"]
__email__ = ["Mr. Author, mrauthor:somewhere*com", "scripts"]
__bpydoc__ = \"\"\"\\
This script does this and that.
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c
index 6aee1d2a883..7ffed72329e 100644
--- a/source/blender/render/intern/source/rayshade.c
+++ b/source/blender/render/intern/source/rayshade.c
@@ -117,7 +117,7 @@ void makeraytree(Render *re)
VlakRen *vlr= NULL;
float min[3], max[3], co1[3], co2[3], co3[3], co4[3];
double lasttime= PIL_check_seconds_timer();
- int v, totv = 0, totface = 0;
+ int v, totface = 0;
INIT_MINMAX(min, max);
@@ -175,7 +175,7 @@ void makeraytree(Render *re)
if(re->excludeob && obr->ob == re->excludeob)
continue;
- for(v=0; v<obr->totvlak; v++, totv++) {
+ for(v=0; v<obr->totvlak; v++) {
if((v & 255)==0) {
double time= PIL_check_seconds_timer();
@@ -184,7 +184,7 @@ void makeraytree(Render *re)
break;
if(time-lasttime>1.0f) {
char str[32];
- sprintf(str, "Filling Octree: %d", totv);
+ sprintf(str, "Filling Octree: %d", v);
re->i.infostr= str;
re->stats_draw(&re->i);
re->i.infostr= NULL;
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 9357a060f62..8956359b784 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -319,27 +319,22 @@ static void halo_tile(RenderPart *pa, RenderLayer *rl)
static void lamphalo_tile(RenderPart *pa, RenderLayer *rl)
{
- RenderLayer *rlpp[RE_MAX_OSA];
ShadeInput shi;
- float *pass;
- float fac, col[4];
+ float *pass= rl->rectf;
+ float fac;
long *rd= pa->rectdaps;
- int *rz= pa->rectz;
- int x, y, sample, totsample, fullsample, od;
+ int x, y, *rz= pa->rectz;
- totsample= get_sample_layers(pa, rl, rlpp);
- fullsample= (totsample > 1);
-
shade_input_initialize(&shi, pa, rl, 0); /* this zero's ShadeInput for us */
- for(od=0, y=pa->disprect.ymin; y<pa->disprect.ymax; y++) {
- for(x=pa->disprect.xmin; x<pa->disprect.xmax; x++, rz++, od++) {
+ for(y=pa->disprect.ymin; y<pa->disprect.ymax; y++) {
+ for(x=pa->disprect.xmin; x<pa->disprect.xmax; x++, rz++, pass+=4) {
calc_view_vector(shi.view, x, y);
if(rd && *rd) {
PixStr *ps= (PixStr *)*rd;
- int count, totsamp= 0, mask= 0;
+ int samp, totsamp= 0;
while(ps) {
if(R.r.mode & R_ORTHO)
@@ -347,64 +342,15 @@ static void lamphalo_tile(RenderPart *pa, RenderLayer *rl)
else
calc_renderco_zbuf(shi.co, shi.view, ps->z);
- totsamp+= count= count_mask(ps->mask);
- mask |= ps->mask;
-
- col[0]= col[1]= col[2]= col[3]= 0.0f;
- renderspothalo(&shi, col, 1.0f);
-
- if(fullsample) {
- for(sample=0; sample<totsample; sample++) {
- if(ps->mask & (1 << sample)) {
- pass= rlpp[sample]->rectf + od*4;
- pass[0]+= col[0];
- pass[1]+= col[1];
- pass[2]+= col[2];
- pass[3]+= col[3];
- if(pass[3]>1.0f) pass[3]= 1.0f;
- }
- }
- }
- else {
- fac= ((float)count)/(float)R.osa;
- pass= rl->rectf + od*4;
- pass[0]+= fac*col[0];
- pass[1]+= fac*col[1];
- pass[2]+= fac*col[2];
- pass[3]+= fac*col[3];
- if(pass[3]>1.0f) pass[3]= 1.0f;
- }
-
+ totsamp+= samp= count_mask(ps->mask);
+ fac= ((float)samp)/(float)R.osa;
+ renderspothalo(&shi, pass, fac);
ps= ps->next;
}
-
if(totsamp<R.osa) {
+ fac= ((float)R.osa-totsamp)/(float)R.osa;
shi.co[2]= 0.0f;
-
- col[0]= col[1]= col[2]= col[3]= 0.0f;
- renderspothalo(&shi, col, 1.0f);
-
- if(fullsample) {
- for(sample=0; sample<totsample; sample++) {
- if(!(mask & (1 << sample))) {
- pass= rlpp[sample]->rectf + od*4;
- pass[0]+= col[0];
- pass[1]+= col[1];
- pass[2]+= col[2];
- pass[3]+= col[3];
- if(pass[3]>1.0f) pass[3]= 1.0f;
- }
- }
- }
- else {
- fac= ((float)R.osa-totsamp)/(float)R.osa;
- pass= rl->rectf + od*4;
- pass[0]+= fac*col[0];
- pass[1]+= fac*col[1];
- pass[2]+= fac*col[2];
- pass[3]+= fac*col[3];
- if(pass[3]>1.0f) pass[3]= 1.0f;
- }
+ renderspothalo(&shi, pass, fac);
}
}
else {
@@ -413,17 +359,7 @@ static void lamphalo_tile(RenderPart *pa, RenderLayer *rl)
else
calc_renderco_zbuf(shi.co, shi.view, *rz);
- col[0]= col[1]= col[2]= col[3]= 0.0f;
- renderspothalo(&shi, col, 1.0f);
-
- for(sample=0; sample<totsample; sample++) {
- pass= rlpp[sample]->rectf + od*4;
- pass[0]+= col[0];
- pass[1]+= col[1];
- pass[2]+= col[2];
- pass[3]+= col[3];
- if(pass[3]>1.0f) pass[3]= 1.0f;
- }
+ renderspothalo(&shi, pass, 1.0f);
}
if(rd) rd++;
@@ -1430,8 +1366,19 @@ static void shade_sample_sss(ShadeSample *ssamp, Material *mat, ObjectInstanceRe
/* texture blending */
texfac= shi->mat->sss_texfac;
- alpha= shr.combined[3];
+ alpha= shr.col[3];
*area *= alpha;
+
+ if(texfac == 0.0f) {
+ if(shr.col[0]!=0.0f) color[0] *= alpha/shr.col[0];
+ if(shr.col[1]!=0.0f) color[1] *= alpha/shr.col[1];
+ if(shr.col[2]!=0.0f) color[2] *= alpha/shr.col[2];
+ }
+ else if(texfac != 1.0f && (alpha > FLT_EPSILON)) {
+ if(shr.col[0]!=0.0f) color[0] *= alpha*pow(shr.col[0]/alpha, texfac)/shr.col[0];
+ if(shr.col[1]!=0.0f) color[1] *= alpha*pow(shr.col[1]/alpha, texfac)/shr.col[1];
+ if(shr.col[2]!=0.0f) color[2] *= alpha*pow(shr.col[2]/alpha, texfac)/shr.col[2];
+ }
}
static void zbufshade_sss_free(RenderPart *pa)
diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c
index 0928042729a..aa4c7ae4f11 100644
--- a/source/blender/render/intern/source/shadeoutput.c
+++ b/source/blender/render/intern/source/shadeoutput.c
@@ -1240,7 +1240,6 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
else {
Crossf(cross, lv, vn);
Crossf(vnor, cross, vn);
- Normalize(vnor);
}
if(ma->strand_surfnor > 0.0f) {
@@ -1258,7 +1257,6 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
float cross[3];
Crossf(cross, lv, shi->tang);
Crossf(vnor, cross, shi->tang);
- Normalize(vnor);
vnor[0]= -vnor[0];vnor[1]= -vnor[1];vnor[2]= -vnor[2];
vn= vnor;
}
@@ -1556,24 +1554,6 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
shr->col[1]= shi->g*shi->alpha;
shr->col[2]= shi->b*shi->alpha;
shr->col[3]= shi->alpha;
-
- if((ma->sss_flag & MA_DIFF_SSS) && !has_sss_tree(&R, ma)) {
- if(ma->sss_texfac == 0.0f) {
- shi->r= shi->g= shi->b= shi->alpha= 1.0f;
- shr->col[0]= shr->col[1]= shr->col[2]= shr->col[3]= 1.0f;
- }
- else {
- shi->r= pow(shi->r, ma->sss_texfac);
- shi->g= pow(shi->g, ma->sss_texfac);
- shi->b= pow(shi->b, ma->sss_texfac);
- shi->alpha= pow(shi->alpha, ma->sss_texfac);
-
- shr->col[0]= pow(shr->col[0], ma->sss_texfac);
- shr->col[1]= pow(shr->col[1], ma->sss_texfac);
- shr->col[2]= pow(shr->col[2], ma->sss_texfac);
- shr->col[3]= pow(shr->col[3], ma->sss_texfac);
- }
- }
}
if(ma->mode & MA_SHLESS) {
@@ -1640,31 +1620,29 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
if (shr->shad[2] < 0) shr->shad[2] = 0;
if(ma->sss_flag & MA_DIFF_SSS) {
- float sss[3], col[3], invalpha, texfac= ma->sss_texfac;
+ float sss[3], col[3], alpha, invalpha, texfac= ma->sss_texfac;
/* this will return false in the preprocess stage */
if(sample_sss(&R, ma, shi->co, sss)) {
- invalpha= (shr->col[3] > FLT_EPSILON)? 1.0f/shr->col[3]: 1.0f;
+ alpha= shr->col[3];
+ invalpha= (alpha > FLT_EPSILON)? 1.0f/alpha: 1.0f;
if(texfac==0.0f) {
VECCOPY(col, shr->col);
- VecMulf(col, invalpha);
}
else if(texfac==1.0f) {
col[0]= col[1]= col[2]= 1.0f;
- VecMulf(col, invalpha);
}
else {
VECCOPY(col, shr->col);
- VecMulf(col, invalpha);
- col[0]= pow(col[0], 1.0f-texfac);
- col[1]= pow(col[1], 1.0f-texfac);
- col[2]= pow(col[2], 1.0f-texfac);
+ col[0]= alpha*pow(col[0]*invalpha, 1.0f-texfac);
+ col[1]= alpha*pow(col[1]*invalpha, 1.0f-texfac);
+ col[2]= alpha*pow(col[2]*invalpha, 1.0f-texfac);
}
- shr->diff[0]= sss[0]*col[0];
- shr->diff[1]= sss[1]*col[1];
- shr->diff[2]= sss[2]*col[2];
+ shr->diff[0]= sss[0]*col[0]*invalpha;
+ shr->diff[1]= sss[1]*col[1]*invalpha;
+ shr->diff[2]= sss[2]*col[2]*invalpha;
if(shi->combinedflag & SCE_PASS_SHADOW) {
shr->shad[0]= shr->diff[0];
diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c
index c71caa082e7..0e21c39fd4b 100644
--- a/source/blender/src/buttons_object.c
+++ b/source/blender/src/buttons_object.c
@@ -2130,6 +2130,7 @@ void pointcache_bake(PTCacheID *pid, int startframe)
BKE_ptcache_id_time(pid, 0.0f, &cstart, &cend, NULL);
cache->flag &= ~PTCACHE_BAKING;
+
BKE_ptcache_id_reset(pid, PTCACHE_RESET_OUTDATED);
}
else {
@@ -2512,18 +2513,15 @@ static uiBlock *add_groupmenu(void *arg_unused)
uiDefBut(block, BUTM, B_NOP, "ADD NEW", 0, 20, 160, 19, NULL, 0.0, 0.0, 1, -1, "");
for(group= G.main->group.first; group; group= group->id.next, index++) {
+ if(group->id.lib) strcpy(str, "L ");
+ else strcpy(str, " ");
+ strcat(str, group->id.name+2);
+ uiDefBut(block, BUTM, B_NOP, str, xco*160, -20*yco, 160, 19, NULL, 0.0, 0.0, 1, index, "");
- /*if(group->id.lib) strcpy(str, "L ");*/ /* we cant allow adding objects inside linked groups, it wont be saved anyway */
- if(group->id.lib==0) {
- strcpy(str, " ");
- strcat(str, group->id.name+2);
- uiDefBut(block, BUTM, B_NOP, str, xco*160, -20*yco, 160, 19, NULL, 0.0, 0.0, 1, index, "");
-
- yco++;
- if(yco>24) {
- yco= 0;
- xco++;
- }
+ yco++;
+ if(yco>24) {
+ yco= 0;
+ xco++;
}
}
@@ -2592,25 +2590,21 @@ static void object_panel_object(Object *ob)
xco= 160;
uiBlockBeginAlign(block);
- uiSetButLock(GET_INT_FROM_POINTER(group->id.lib), ERROR_LIBDATA_MESSAGE); /* We cant actually use this button */
but = uiDefBut(block, TEX, B_IDNAME, "GR:", 10, 120-yco, 150, 20, group->id.name+2, 0.0, 21.0, 0, 0, "Displays Group name. Click to change.");
uiButSetFunc(but, test_idbutton_cb, group->id.name, NULL);
- uiClearButLock();
if(group->id.lib) {
but= uiDefIconBut(block, BUT, B_NOP, ICON_PARLIB, 160, 120-yco, 20, 20, NULL, 0.0, 0.0, 0.0, 0.0, "Make Group local");
uiButSetFunc(but, group_local, group, NULL);
xco= 180;
- } else { /* cant remove objects from linked groups */
- but = uiDefIconBut(block, BUT, B_NOP, VICON_X, xco, 120-yco, 20, 20, NULL, 0.0, 0.0, 0.0, 0.0, "Remove Group membership");
- uiButSetFunc(but, group_ob_rem, group, ob);
}
+ but = uiDefIconBut(block, BUT, B_NOP, VICON_X, xco, 120-yco, 20, 20, NULL, 0.0, 0.0, 0.0, 0.0, "Remove Group membership");
+ uiButSetFunc(but, group_ob_rem, group, ob);
yco+= 20;
xco= 10;
/* layers */
- uiSetButLock(GET_INT_FROM_POINTER(group->id.lib), ERROR_LIBDATA_MESSAGE);
uiBlockBeginAlign(block);
for(a=0; a<5; a++)
uiDefButBitI(block, TOG, 1<<a, REDRAWVIEW3D, "", (short)(xco+a*(dx/2)), 120-yco, (short)(dx/2), (short)(dy/2), (int *)&(group->layer), 0, 0, 0, 0, "");
@@ -2625,8 +2619,7 @@ static void object_panel_object(Object *ob)
uiDefButBitI(block, TOG, 1<<(a+10), REDRAWVIEW3D, "", (short)(xco+a*(dx/2)), 105-yco, (short)(dx/2), (short)(dy/2), (int *)&(group->layer), 0, 0, 0, 0, "");
uiBlockEndAlign(block);
- uiClearButLock();
-
+
yco+= 40;
}
}
diff --git a/source/blender/src/drawipo.c b/source/blender/src/drawipo.c
index 552e87a57d1..521e3ebd981 100644
--- a/source/blender/src/drawipo.c
+++ b/source/blender/src/drawipo.c
@@ -1851,17 +1851,11 @@ static void ipo_editvertex_buts(uiBlock *block, SpaceIpo *si, float min, float m
void do_ipobuts(unsigned short event)
{
- Object *ob;
+ Object *ob= OBACT;
EditIpo *ei;
if(G.sipo->from==NULL) return;
- /* use G.sipo->from (which should be an object) so that pinning ipo's will still work ok */
- if(GS(G.sipo->from->name) == ID_OB)
- ob= (Object *)(G.sipo->from);
- else
- ob= OBACT;
-
switch(event) {
case B_IPO_REDR:
ei= get_active_editipo();
diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c
index 4029e031b63..721fae8512f 100644
--- a/source/blender/src/editobject.c
+++ b/source/blender/src/editobject.c
@@ -4816,7 +4816,6 @@ void make_local(int mode)
Base *base;
Object *ob;
bActionStrip *strip;
- ParticleSystem *psys;
Material *ma, ***matarar;
Lamp *la;
Curve *cu;
@@ -4903,9 +4902,6 @@ void make_local(int mode)
make_local_armature ((bArmature *)id);
break;
}
-
- for(psys=ob->particlesystem.first; psys; psys=psys->next)
- make_local_particlesettings(psys->part);
}
id= (ID *)ob->ipo;
if(id && id->lib) make_local_ipo(ob->ipo);
@@ -4913,10 +4909,11 @@ void make_local(int mode)
id= (ID *)ob->action;
if(id && id->lib) make_local_action(ob->action);
- for(strip=ob->nlastrips.first; strip; strip=strip->next) {
+ for (strip=ob->nlastrips.first; strip; strip=strip->next) {
if(strip->act && strip->act->id.lib)
make_local_action(strip->act);
}
+
}
base= base->next;
}
diff --git a/source/blender/src/filesel.c b/source/blender/src/filesel.c
index bfff2f10ab6..3d5e39fe942 100644
--- a/source/blender/src/filesel.c
+++ b/source/blender/src/filesel.c
@@ -1441,16 +1441,6 @@ static void filesel_execute(SpaceFile *sfile)
return;
}
-#ifdef WIN32
- if ( (sfile->type!=FILE_LOADLIB) && (sfile->type!=FILE_MAIN) ) {
- if (!check_file_chars(sfile->file)) {
- error("You have illegal characters in the filename. Check console for more info.");
- printf("Characters '*?:|\"<>\\/' are illegal in a filename.\n");
- return;
- }
- }
-#endif
-
filesel_prevspace();
if(sfile->type==FILE_LOADLIB) {
diff --git a/source/blender/src/header_script.c b/source/blender/src/header_script.c
index 3c96e1692bf..f0a042f27c0 100644
--- a/source/blender/src/header_script.c
+++ b/source/blender/src/header_script.c
@@ -112,9 +112,9 @@ static void do_script_scriptsmenu(void *arg, int event)
/* these are no defines, easier this way, the codes are in the function below */
switch(event) {
case 0: /* update menus */
- if (BPY_path_update()==0) {
- error("Invalid scripts dir: check console");
- }
+ BPyMenu_RemoveAllEntries();
+ BPY_rebuild_syspath();
+ if (BPyMenu_Init(1) == -1) error("Invalid scripts dir: check console");
break;
}
diff --git a/source/blender/src/headerbuttons.c b/source/blender/src/headerbuttons.c
index 81ad135f514..035468d89c0 100644
--- a/source/blender/src/headerbuttons.c
+++ b/source/blender/src/headerbuttons.c
@@ -545,9 +545,9 @@ static void filesel_u_pythondir(char *name)
allqueue(REDRAWALL, 0);
/* act on the change */
- if (BPY_path_update()==0) {
- error("Invalid scripts dir: check console");
- }
+ BPyMenu_RemoveAllEntries();
+ BPY_rebuild_syspath();
+ if (BPyMenu_Init(1) == -1) error("Invalid scripts dir: check console");
}
static void filesel_u_sounddir(char *name)
@@ -1527,7 +1527,9 @@ void do_global_buttons(unsigned short event)
case B_PYMENUEVAL: /* is button from space.c *info* */
waitcursor( 1 ); /* can take some time */
- if (BPY_path_update() == 0) { /* re-eval scripts registration in menus */
+ BPyMenu_RemoveAllEntries(); /* free old data */
+ BPY_rebuild_syspath();
+ if (BPyMenu_Init(1) == -1) { /* re-eval scripts registration in menus */
waitcursor( 0 );
error("Invalid scripts dir: check console");
}
diff --git a/source/blender/src/splash.jpg.c b/source/blender/src/splash.jpg.c
index c1ca8b575e6..440f4f763e6 100644
--- a/source/blender/src/splash.jpg.c
+++ b/source/blender/src/splash.jpg.c
@@ -1,2483 +1,2281 @@
/* DataToC output of file <splash_jpg> */
-int datatoc_splash_jpg_size= 79258;
+int datatoc_splash_jpg_size= 72804;
char datatoc_splash_jpg[]= {
-255,216,255,224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 1, 0, 72, 0, 72, 0, 0,255,225, 0, 22, 69,120,
-105,102, 0, 0, 77, 77, 0, 42, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0,255,219, 0, 67, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2,
- 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,255,219, 0, 67, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,255,192, 0, 17,
- 8, 1, 15, 1,245, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1,255,196, 0, 31, 0, 0, 1, 3, 5, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 7, 10, 3, 5, 6, 8, 9, 2, 1, 11,255,196, 0,103, 16, 0, 1, 3, 3, 2, 4, 3, 4, 6, 4, 7,
- 11, 5, 9, 13, 9, 1, 2, 3, 4, 5, 6, 17, 0, 7, 8, 18, 33, 49, 19, 65, 81, 9, 20, 34, 97, 10, 21,113,129,145,240, 35,
- 50,161,193, 22, 23, 24, 66,177,209,225, 25, 26, 36, 40, 51, 56, 73, 82, 98,232,241, 72,104,105,136,168, 41, 52, 57, 67, 84, 88,
-120,150,178, 37, 38, 68, 83, 87,115,130,135,147,152,181,200,210, 54, 89, 99,114,146,184,213,214,215,255,196, 0, 29, 1, 0, 0,
- 6, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 5, 6, 7, 1, 4, 8, 9,255,196, 0, 80, 17, 0, 2, 1,
- 2, 4, 4, 3, 4, 6, 7, 5, 7, 0, 7, 9, 0, 1, 2, 3, 4, 17, 0, 5, 18, 33, 6, 19, 49, 65, 7, 34, 81, 20, 97,113,
-240, 8, 35, 50,129,161,209, 21, 66, 82,145,177,193,210, 36, 51, 98,162,225, 9, 67, 83, 84,114,130,241, 52, 56, 68, 85,116,148,
-211, 22, 23, 24,115,131,146,147,180,181,255,218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0,159,198,150,150,150,134, 6, 22,
-150,150,190,100,122,143,199, 67, 3, 31,116,203,220, 60, 68,108,181,171,123, 70,219,170,254,224,209, 41,183,140,167, 25,101, 20,
-135,189,241, 73,101,249, 28,165,136,243,170, 77, 69, 84, 74,116,149,133,163,149,185, 15,180,226,185,211,132,158, 97,151,159, 35,
-212,126, 35, 92,108,227, 63,131, 43,145, 85,251,143,120, 54,213, 18,235,236, 86, 37,191, 87,185,237,148,243, 72,170, 67,146,224,
- 11,147, 81,162,128, 57,167, 69, 42, 5, 75,143,213,230,242, 75, 94, 34, 50,148, 86,158, 42,113, 39, 27,112,159, 14, 38,119,193,
- 60, 55, 23, 19,212, 81,204,173, 89, 4,134, 67, 34,209,128,198, 87,130, 56,138,188,146, 2, 0,242,151, 49,169, 50,114,101, 1,
-128,179,188, 40,225,158, 7,226,222, 37,108,143,142, 56,150,110, 23,166,172,133,150,142,120,196, 98, 54,173, 44,162, 36,158, 73,
- 85,146, 56,200, 44,124,193, 4,140, 4,124,232,139, 41, 61,145,109,196, 58,132,173,181, 37,104, 80,200, 82, 72, 32,131,243, 26,
-247,174, 11,240,211,199, 61,219,180,206, 66,179, 55, 36, 79,186,108,118, 29, 68, 54,166, 58, 92,122,228,181,217, 65, 13, 22,219,
- 47, 30,106,157, 61,174, 95,242, 14, 16,243, 97, 37, 45, 44,128,150,181,219,219, 46,247,181,247, 6,129, 2,231,180, 43, 48,171,
-148,106,139, 65,216,211, 33, 58, 29, 65,232, 57,219,113, 63,172,203,233, 86, 66,219, 88, 74,208,160, 66,146, 14,147,240,211,197,
-174, 19,241, 67, 46, 53, 25, 37, 79,179,102,180,202, 13, 86, 95, 49, 2,166,156,244, 38,219, 9, 97,213,178,207, 29,212,220, 7,
- 17,201,120,194,158, 38,248, 69,197,190, 22,102, 66,159, 60,166,246,156,166,165,136,165,204, 33, 4,210,212,142,160, 95,115, 12,
-218,119,104, 36,179, 11, 18,134, 72,237, 33,202,244,180,180,181,103,226,173,194,210,210,210,208,192,194,210,210,210,208,192,194,
-210,210,210,208,192,194,210,210,210,208,192,194,210,210,210,208,192,194,210,210,210,208,192,194,210,210,210,208,192,194,210,210,
-215, 13,125,163,254,220, 13,158,224,130,240,159,178,214, 5,156,238,249,111,173, 45,150, 21,116, 81,219,173,155,110,200,219,199,
- 39,194, 98,116, 8,215, 53,192,138,116,167,170,213,245, 68,151, 17,255, 0,171, 32,177,132, 50,233, 76,186,132, 39,249, 26, 91,
-214, 67,195,217,207, 19,102, 9,149,228,116, 47, 95, 90,224,177, 85, 42,161, 80, 16, 11,200,238, 85, 35, 64, 72, 5,157,128,185,
- 10, 46,204, 1, 98,226, 46, 38,200,248, 79, 45,124,219,136, 51, 20,203,104, 81,130, 6, 96,204,206,237,114,169, 28,104, 26, 73,
- 28,128, 78,148, 86, 58, 85,152,128,170,196,119, 43, 75, 80,124, 63, 73,159,141,131, 84, 83,195,103, 56, 94, 20, 82,242,212,138,
-127,240,103,117, 13, 77, 44, 20,171,195,105, 85,127,227,115,194, 91,193,101, 37, 75, 16,146, 20, 1, 1,180,147,204, 58,247,192,
- 39,183,219,102,184,168,189,173,253,156,222,171, 32,236, 38,233,221, 18,227,210,109, 58,154,110, 6,238, 13,182,188,107,111,132,
-162, 53, 29,138,204,184,113, 36,218,181,233,114, 84, 26,131, 10, 91, 82, 88,144,233, 68,118,234,107,152,244,120,206,205,115,175,
- 7,248,243, 35,161,151, 49,169,202, 86,166,150,157, 75,200,105,230,142,102,141, 64,185,102,140, 17, 33, 10, 55, 98,138,225, 64,
- 44,108,160,156, 64,178, 47, 27,188, 58,226, 12,194, 28,174,151, 57,106, 90,186,150, 9, 16,169,134, 72, 82, 71, 38,202,171, 35,
- 3, 26,179, 27, 5, 18, 50, 22, 36, 42,130,196, 12, 72, 35, 75, 94, 80,180,173, 41, 90, 8, 82, 84, 1, 73, 29, 65, 7,204, 29,
-122,213, 97,139,107, 11, 75, 75, 94, 29,117,182, 91,113,231,156, 67, 76,180,133, 56,235,174, 41, 40,109,182,208,146,165,184,226,
-212, 64, 66, 2, 65, 36,147,128, 6, 78,134, 6, 61,233,107,140, 28, 63,123, 94,236,238, 39,253,160,119,151, 9,219, 61,108,210,
- 43,219, 63,103, 88,247, 29, 77,157,231, 77, 86, 91,178,239, 43,178,215,171, 80,169,213, 69,219, 84,214,227,166, 57,178,252,106,
-195,236,197,150, 92,117, 83,126,173,247,214, 23,238,178, 89, 3,231,181,219,218,129,127,123, 56, 15, 15,137,177,182,194,209,220,
-115,188,169,221, 85, 85, 13,213, 86,172,210,254,165,254, 47, 78,219,136, 94,225,245, 74, 79,188,123,199,240,222, 95,139,226,126,
-167,184,183,201,250,202,212,182, 30, 7,226,105,179,220,183,134,191, 71,242,179,156,218, 1, 81, 12, 50, 72,136,121, 70, 41, 38,
- 5,203, 48, 17,183, 46, 39, 37, 28,171,130, 52,149, 12,109,136, 92,222, 32,240,164, 60, 61,154,241, 87,233, 46,118, 69,147, 78,
-105,167,158, 56,228,145,121,162,104,160, 34, 48,170, 90, 84,230,202,138, 36,140, 50, 48, 58,149,138,139,227,180, 26, 90,134, 23,
-247,207,155,251,255, 0,155, 30,209,127,235, 93,227,255, 0,232,210,254,249,243,127,127,243, 99,218, 47,253,107,188,127,253, 26,
-152,127,247, 29,226, 55,254,233,139,255, 0,155,166,255, 0,234, 98, 19,255, 0,226, 11,194,239,253,245, 55,255, 0, 37, 87,255,
- 0,210,196,207,116,181,166,252, 3,241, 57, 89,226,255, 0,133,157,171,223,235,138,219,165,218, 85,203,250,153, 89,157, 81,183,
-232,178,101,204,165,211,157,166, 93, 53,202, 3,109,195,147, 56,120,175, 33,108, 82,154,113, 69,125, 66,221, 80, 29, 0,214,228,
-106,172,174,163,168,203,171,107, 50,250,180, 17,213, 80, 75, 36, 50,168, 33,128,146, 39, 40,224, 48, 36, 16, 25, 72,184, 36, 30,
-160,219, 22,246, 95, 93, 77,154, 80, 80,230, 84,110,100,163,204, 97,138,120,152,130,165,163,153, 22, 68, 37, 88, 6, 82, 85,129,
- 32,128, 71, 66, 47,133,165,165,165,173, 92,110, 97,105,105,105,104, 96, 97,105,105,105,104, 96, 97,105,105,105,104, 96, 97,105,
-105,105,104, 96, 97,105,105,105,104, 96, 97,105,105,105,104, 96, 97,105,105,105,104, 96, 97,105,105,105,104, 96, 97,105,105,107,
- 3,168,110, 45, 6, 60,249,116,122, 75, 21,123,182,183, 5,239,118,155, 75,181, 41,174, 85, 12, 9, 92,174,168,197,170, 85,150,
-166,169,212,105, 67,194, 32,183, 54,108,117,130,164,229, 32, 40, 29, 12, 12,103,154, 90,104,166,239, 21, 38,143, 91,167,219,119,
- 13,169,123,209, 43,245,152, 83, 39,208,233, 9,165, 83, 46,121,213,134, 41,225,159,126, 83, 12, 88,181,170,177,130,134,188, 97,
-151, 38,251,171, 42,228, 95, 35,139,228, 86, 47,143, 95, 53, 54,130,157,111,109,119, 6, 76, 70,208, 28,118, 91, 44, 90, 40, 45,
-183,221,106, 77, 58, 85,222,220,217, 43, 74,114, 75,108,197,113,213, 99,149,182,214,178, 18, 70, 6, 28, 29, 45, 88,232, 23, 37,
- 18,231,136,236,202, 36,244, 76,110, 60,135, 33,205, 97, 77,191, 18,125, 54,115, 56, 47, 83,234,212,201,141, 55, 38,149, 80, 64,
- 82, 10,216,146,211, 78,164, 45, 36,160, 5, 2,111,154, 24, 24, 90, 90, 90, 90, 24, 24, 90, 90, 90, 90, 24, 24, 99,120,143,168,
-110,117, 51,103,174,233, 91, 65, 29,201, 23,200,138,203,116,255, 0,119,109,167,170, 12, 69,114, 67,104,169, 72,165, 50,240, 40,
-118,166,136, 69,226,200, 32,144,175,137, 0,184, 17,174, 20, 60,223, 25, 18, 95,121,199,215,190,238, 72, 83,138, 83,202, 92,139,
-187,156,186,165, 18,178,175,210,126,183, 54,117, 36,133, 36, 40, 16,160, 8, 61, 8, 35, 32,253,218,208,158, 40, 56,198,176, 54,
- 85,185,246,165,163, 22,151,119,238,105, 66,153, 92, 54,212,151,168,214,187,171, 78, 67,245,249, 12, 43,244,179, 83,148,148,194,
-109, 65,206,185,121,108,167,148, 47,157, 60,116,224,190, 27,204, 99,139,140, 56,175,196,124,203,131,114,188,170, 14, 66,193, 75,
- 56, 17, 77, 38,167,144,114, 96,182,185, 42,165,190,146, 16, 51, 50, 70,132,233, 84,102,199, 72,120, 15,198,220, 77,151, 75, 55,
- 7,112,151,134,185,103, 26,102,153,172,252,246,158,170, 2,101,134, 61, 49,198,121,211,223, 68,116,145, 17,172, 23,210,170,242,
- 53,139, 51,170,227,143,215, 53,223,196,133,153,238,191,194,219,167,117,237,195, 59,196,247, 52,214,107,151, 20, 5,201, 13, 99,
-196, 83, 45,200,148,149, 45, 41, 42, 0,144, 49,147,140,231, 88,195, 91,199,188,114, 93,109,134, 55, 39,112,100, 60,226,194, 90,
-101,171,158,186,235,142, 44,159,133, 40,109, 50,201, 90,179,216, 0, 78,177,155,198,244,186,247, 18,225,151,114, 93,181,137,181,
-218,221, 69,209,207, 34, 82,202,131,105, 39, 13, 68,134,194,112,136,145, 17,156, 33,166,210,148, 36,118, 25, 36,157,221,188, 47,
- 45,145,246,104,112,186,239, 19, 59,221, 70, 93,217,123,214,159,133, 73,179,173, 8,106,140,213,106,227,187, 42,177, 94,153, 78,
-181,233, 18, 37,182,177, 72,167,177, 22, 51,207,212,167,150,214, 25,110, 59,132, 37,229,170, 52,119,121, 7,194,159, 15,120,203,
-198,222, 60,159,134,248, 23,136, 51,106,108,146, 23, 75,212, 85,212,201, 45, 66,164,141,162, 37, 49,195, 36, 81, 52,243,178,187,
- 44, 97,214, 56,145, 92,188,204,177,150,110,196,241,107,196,110, 10,240, 51,128, 32,226,126, 62,225,252,162,167, 58,153, 28,251,
- 61, 37, 52,112,211, 51, 70,161,230, 97, 36,209,203, 42,211,192,172,138,210, 20,105, 37,118,141, 82, 21,105, 2,174,163, 72,218,
-189,222,170,162, 69,126, 85,135,123,206, 76,183, 23, 46, 77, 77,218, 13, 81,227, 33,199,137, 91,146, 29,120,199, 37,106, 82,148,
- 73, 81,238, 73, 58,203,118, 91,127, 55, 47,135,155,149,114,173,233, 18, 19, 1,201, 8, 23, 5,159, 86, 18, 27,166,212,210,217,
-229, 80,122, 50,192, 84, 10,130, 81,144,135,219, 1,196,246, 80, 91,101, 77,171,150, 85, 47,164,143,198, 35,151, 97,170, 81,118,
-183, 97,169, 54,130, 37,133,179,102, 61,111, 92, 53, 14,120, 40, 95,195, 22, 93,192,171,133,185, 46, 62,166,176, 22,235, 65,161,
-204, 74,144,218, 6, 18, 59,121,195,151, 16, 59, 31,237,121,225,250,232,188,108,251, 74, 62,216,241, 35,181,232,138,205,221,106,
- 37,246,165,173,185,210, 97,201,126,152,244, 42,139,108,182,186,213,159, 85, 16,103, 34, 50,222,109, 50, 33,200,136,182, 92, 7,
-194, 14,201,234,207, 16,126,128,222, 38,248, 71,147,143, 16,120, 59,138,106, 38,207, 50,127,174,217,162, 46,210, 29,204,124,216,
-156,104,105,141,227, 9, 42, 77, 79, 51,176,134, 89, 64,146,237,200,222, 28,127,180, 43,194,191, 25, 51,195,225,207, 24,112,181,
- 60, 89, 30,113,245, 32, 50,202, 17, 98, 29, 36, 17, 76,191, 88,176,139, 72,205, 19,193, 81, 10, 35, 77, 20, 76, 99, 32,118, 27,
- 96,248,137,177,183,250,218, 21,123,106, 66,161,213,225, 37,166,235,214,228,213,160, 84,232,242,156, 78, 64,113, 41, 56,147, 13,
-101, 43,240,159, 71,192,224, 65, 7,149,105, 90, 19,106,226, 39,139,222, 29,184, 78,110,198,145,196, 38,229, 82,246,206, 6,226,
-214, 42, 20, 27, 86,171, 91,137, 84, 93, 38, 85, 78,151, 17,153,211, 89,157, 82,131, 5,214,105, 13,162, 43,237,171,196,148,182,
- 91, 86, 72, 74,138,129, 26,224,102,199,110,133,115, 99,247, 86,135,116,199, 84,134, 26,129, 81,250,170,231,166, 5,148, 9,180,
-119, 95, 17,234,144,223,108, 28, 41,230,185, 75,173,103, 33, 47,197, 65,236, 8, 56,167,210,118,170,198,173,240,251,194, 53, 82,
- 35,168,126, 52,237,202,189, 36,178,235,106, 10,109,214,222,179,169,238, 54,226, 20, 58, 41, 37, 10, 4, 31, 67,171, 87,232,151,
-199,112,248,245, 61, 22, 67,196,119,203,243,234, 9,141, 61,127,179,133, 66,234,105,230,150, 10,168,209,213,213, 57,175, 11,164,
-177,216,133,120,223, 78,133,116, 11, 85,125, 48,120, 26,127,163,229, 30, 99,196, 92, 52, 23, 49,200,107, 97, 90,156,188, 84,150,
-112,140, 42, 96,138,162,146, 87, 70, 70,147,148,147, 35,197, 32, 96, 89, 36,143, 86,182, 71, 38, 80,214, 61,247,102,238,101,169,
- 68,190,118,250,231,162, 94, 86,117,203, 5,186,157, 2,229,183,106, 17,170,180, 90,196, 7, 74,146,220,186,125, 66, 35,138,110,
- 83, 5, 72, 80,230, 66,136,202, 72,238, 8,214, 89,168, 64,112,175,237,189,221,253,134,225,159,102,120,123,225,163,133,105,251,
-189, 82,218,155, 26, 53, 58,249,186, 43,172, 93, 53, 88,104,168, 59, 62,163, 61,244, 83, 40, 54, 52,101, 57, 18,156,216,146, 0,
-149, 42, 82, 84,242,185,200,142,216, 71, 50,250, 53,193,103,210, 48,176, 55,151,114, 45,253,161,226,123,106,154,216,235,138,230,
-171,179,111,210,175,154, 45,102, 69, 70,198, 98,189, 45,246,226, 66,166, 92,208, 43, 49,218,153,107, 54,228,197,120, 94,244,183,
-101, 50,219,175, 32, 72, 17,218, 11,121, 61, 57,156,120, 63,198,153,119,233, 74,154,108,168,214, 80, 80, 73, 45,180,205, 3,212,
-154,116,102,229,204,244,233, 33,144,107,140, 7,210, 20,181,143,217, 29,185,103, 35,241,187,128,243, 63,209, 20,149, 89,184,162,
-204,179, 40,225, 7, 84, 53, 9, 74, 42, 93, 19,153, 2, 84,188, 98, 35,203,145,140,122,139,232,184,251,102,226,253,250,171,113,
- 37,195,245, 6,251,107,107,171, 91,211,182, 52,173,200,122,165, 79,163, 51, 98,207,189,104, 17,110,183,106,213,101, 50,154, 93,
- 53, 20, 39,167, 9, 42,157, 33, 82, 99,134, 90, 13,243,184, 95, 72, 64, 60,195, 47, 80, 32,128, 65, 4, 17,144, 71, 98, 53, 2,
-158, 50, 84,211,191, 72, 26,128,243, 1, 10, 14,113, 65,195,147,232, 82, 80,159,137,193, 34,193, 91, 78,246,248,156, 5, 45,144,
-174,224,164, 16,122, 13,118, 87,143, 15,111, 68, 62, 31,247, 89,238, 25,120, 83,218,134, 55,231,120,232,117, 24,214,189,203, 90,
-170, 59, 86,145,107, 83,239, 39, 22, 24,122,204,183,168, 86,222, 39,222, 53,230, 36, 56,219, 82, 84,212,136,236,177, 41, 11,138,
-145, 33,196, 56, 91, 91, 48,240,167, 51,118,225, 88,120,116,201,154,212,103,249,106,102, 51,243, 57,112,197, 76,172, 19, 86,169,
- 89,130, 8,193,123, 6, 98, 25,182, 0, 19,182, 17,203, 60, 97,202,145, 56,190,163,137,196,121, 61, 47, 14,230,178,101,148,252,
-190,100,210,213,186,151,211,162, 37, 82,237, 35, 4,185, 84, 5, 84, 92,179, 1,190, 36,133,165,168,139,220,190,218,255, 0,106,
-111, 13,237, 80,239,190, 41,184, 29,183,169, 27, 89, 90,168, 69,138,228,225, 66,187,237, 23, 16,167,193,117, 20,246, 46, 35, 90,
-169, 70,163, 85,156,101, 14,120, 77, 84, 34,149,172,182,172, 54, 74, 84, 7, 85, 46,223,109,143, 13, 22,231, 5,182, 47, 26,148,
-171,102,247,187,237, 43,183,112,233,251, 83, 88,178, 40,166,138,205,225,100, 95, 50, 40, 85,218,228,250, 85,194,221, 66,123,108,
-120, 76, 51, 65,115,145,214,150,161, 37,154,132, 89, 13, 39,195,116,242,177,215,248,105,197,180, 35, 47,120,168,226,205,105,243,
- 57,189,158, 25,168,170, 33,169,137,167,177, 60,146,241,185, 8,246, 6,193,244,130, 65, 0,146, 8,196,131, 46,241, 91,131, 43,
-206,100,147, 87, 77,147,212,229, 48,251, 76,240,215,211, 79, 73, 50,211,220, 14,112,142, 68, 5,227,187, 45,202,106, 32, 16, 72,
- 0,223, 29,148,210,212, 92,183, 35,233, 31,162,243,160,209,233,124, 25,112,161,184,187,163,185, 51, 34, 63, 58,227,131,120, 83,
-170,147,233,118,147, 44,202,113,150,152,250,163,111,196,153,119, 10,221,142, 27,116,188,153, 48,153, 96,159, 12,248,202, 37, 72,
-198,248, 54,250, 69,151,109,251,190,214,214,200,241,107,178, 86,230,220,166,238,185, 96,217,113, 46,235, 45, 87, 21, 53,219, 86,
-231,169,204, 77, 62,159, 26,239,181,110,153, 50, 30, 76, 37,212, 94,142,195,174,178,251, 78, 69, 46,135, 23, 29,196,133, 99,108,
-248, 71,199,171, 65, 85, 94,249, 46,143, 99, 86,119,128,205, 7,180,136,210,247,113, 0,144,200, 87, 98, 84, 91, 83,129,116, 86,
- 4, 95, 68,120,211,225,211,102, 52,121,116,121,233,147,219,157, 99,142,160, 83,212,123, 33,145,237,166, 51, 80, 99, 17,134,243,
- 0,198,250, 99, 38,210, 50,144,109, 43, 29,120,113,198,217,109,199,157, 90, 91,105,164, 45,199, 28, 89, 9, 67,109,161, 37, 75,
- 90,212,122, 37, 33, 32,146,124,128,215, 14,253,164,222,219,221,157,224, 86,233, 59, 61,101,218, 15,111, 86,249, 34,155, 14,165,
- 92,161, 49, 88, 69, 18,210,176, 89,169,199,110,101, 41,155,170,176,220,103,222,151, 90,126, 19,172,190,154,124, 86,130,209, 30,
- 75, 79, 63, 37,143, 17,182,220,230, 77,175,244,142, 56,132,142,220,122,222,253,112, 91,245, 86,205, 92,140,191, 79, 85,221,100,
- 38,245,165, 74,102, 61, 69,151, 99,183, 46,153, 83,187,226,187, 77,174,184,128,224, 80,100, 59, 27,198, 13,148,165,214,201,230,
- 8,229, 94, 22,113,190,113,150, 83,230,244,153, 69,168,170,198,168,121,147, 65, 20,147,169, 23, 6, 24,228,145, 93,245, 13,211,
- 97,172, 88,173,193, 4,175,156,120,191,192, 25, 38,109, 81,146,214,231,119,174,163, 58,103,229, 65, 81, 52, 84,237,123, 17, 52,
-177, 70,232,133, 78,207,185,229,155,135,210, 65, 2, 71,219, 95,199,191, 8,187,217,187,147,118, 59,104, 55,194,208,220,189,198,
-166,208,234, 87, 13, 70,153,102, 59, 46,189, 76,133, 76,164,205,137, 79,158,183,238, 88, 81, 85, 78, 18, 91,151, 54, 58, 11, 41,
-148,167, 73, 89, 33, 4, 37, 68,109,254,160, 19,244,127,110,123,126,214,227,115,113,175, 26,237, 82, 45, 14,212,183,182, 43,113,
- 46, 74,213,102,160,164,196,131, 73,183,233, 85,139,126,167, 62,165, 57,121, 34, 52, 86, 32, 48,235,174, 30,161, 9,104,247,198,
-186,103,185, 63, 72, 83,125,183,147,120, 38,237, 23,179,215,133,198,183, 45,182,164, 77, 98,145,112,222, 16,174, 10,229,197,113,
-192,167, 58, 82,245,199, 30,212,183,230, 68,102,215,162, 45, 1, 42, 11,168, 75,116,161,181,165, 79,248, 14, 57,225, 53, 36,226,
- 95, 8,115, 26, 94, 38,172,201,120,104, 61, 93, 6, 89, 75, 4,245, 53,117,114,195, 4, 81, 25, 67,146,100,145,185,104,163,202,
- 74,160,212,224, 2, 73, 32, 18, 34,220, 41,227, 94, 89, 89,194,148, 57,247, 21,178, 81,102, 57,181,101, 69, 61, 45, 29, 20, 83,
-212, 77, 48,132,160, 2, 56,151,153, 35,155,184, 12,231, 66, 18, 85, 64, 4,128,101,135,165,168,156,219,158,223, 30, 44,184,114,
-221, 75,123,111,253,161,252, 36, 55,183,244, 42,247,131, 37,117,235, 78,155, 93,160, 92, 80,232,239,201, 68,119,171,244,186,109,
-102,169, 54,159,121,211,227, 40, 44, 58,212, 57,113,220,230, 73, 71,139,226, 0,218,186, 89,198, 87,182,211,135, 30, 14,235, 27,
- 75, 6,163,102,223, 59,171, 70,222, 93,176,167,238,197,161,117, 88, 18, 40, 31, 82,200,182,106,181, 25,180,248, 5, 70,177, 61,
-135,125,225,126,226,183, 10,124, 49,200,151, 18,149,128,224, 82, 83, 20,171,240,211,140,105,171,114,250, 40,178,177,152,182,106,
-143, 37, 52,148,179, 67, 60, 19,172, 66,242, 24,230, 71,208, 74, 13,202,146, 26,219,128, 70,248,152,209,120,173,192,245,116, 57,
-149,124,217,177,202,215, 39,120,227,171,138,178, 9,169,234, 41,218, 83,166, 46,100, 14,156,192, 28,236, 25, 67, 45,246, 36, 29,
-177,217,173,112,163,112,253,133, 28, 55, 95,188,105,212,248,162,173,202,171,215,108,187,186,163, 93,190, 47,125,152,175,202,157,
- 87,160,214,183, 90,175, 85,141, 82,118,228,122,179, 46,114,165,201,181,228, 73,126,179, 50,101, 17,245, 57, 25,115, 93,105,180,
- 56, 41, 5,116,160,202,240,191,237,190,220,158, 50,248,231,219, 77,158,218, 29,130,147,111,112,189, 93,145,119,193,184,247, 10,
-229,165,214,170, 87,151,189,209,182,206,237,185,233,142,205,168,210,100,170,143,106, 52,237,203, 71,166, 71,110, 59,134, 83,174,
-180,249, 30, 48,117,228, 33,185, 31,161, 92,200, 74,187,115, 37, 42,199,166, 64, 58, 74,170, 30, 49,240,218,181,169, 26,169,242,
- 74,252,226,140, 25, 82, 41, 81,156, 65, 43,200,129, 36, 40, 91,149, 48,104,217,133,136,150, 59,130, 25, 75, 17,133,169, 38,224,
-127, 20,232, 22,181,105, 35,207,242,236,146,184,136,164,154, 23, 84, 53, 16,164,110, 94, 33, 32, 83, 44, 44,178,170,155,131, 20,
-182, 33,149,130,131,134,126,151,176,123, 71, 74,180, 27,176,226,237,253,162,205,158,136,126,226, 45,102,173,218, 59, 86,224,136,
- 80, 27, 49, 69, 13,184, 98, 40,143,200, 0,228, 13,114,224, 99, 24,212, 4,189,180, 92, 57,109,223, 10,156,122, 93,182,174,205,
-192,141,105,218,119, 45,169,102,238,133, 50,218,161,145, 14,159,102,213,171,255, 0, 88, 69,169,211,168,140,199,193,165, 66, 53,
-106, 19,243,227,176,217, 74, 34,138,178, 89,140,150,163, 54,195, 77,254,136, 21, 90,173, 54,133, 75,169, 86,235, 51,225,210,168,
-244,120, 19, 42,149, 90,165, 66, 67, 81, 32, 83,105,180,248,238, 75,157, 62,108,183,214,148, 70,136,204, 86, 93,113,199, 22,160,
-132, 33,181, 41, 68, 0, 78,191, 57, 62, 35,175,107,151,218,161,237, 50,184, 37,109,235, 50,196, 29,229,220,202, 77,141,183,190,
- 43, 14,184,170, 30,215, 90, 80,163, 80, 97,220,243, 97, 43, 10,140,219,118,133, 14,117,126,160,198, 73,109,217, 50,144,146,162,
- 19,155, 39,192, 39,174,139, 62,226, 12,218,122,167,135, 34,160,161,145,235, 29,217,140, 69,217,213,208,184, 38,197,194, 71, 52,
-154,236, 88, 42,184,189,156,131, 86,125, 35,211, 47,155,135,120,111, 38,167,164, 73,184,135, 50,204, 35,142,133, 17, 84, 74, 17,
- 81,146, 64,132, 0, 66, 51,201, 4,122, 1, 10, 89,144,218,233,113, 61,206, 11,119, 14,189,187, 28, 40,240,239,185, 23, 75,138,
-118,228,190,118, 83,107,110,250,243,171, 32,173,202,197,203, 99,208,235, 85, 53,168,134,209,146,102,205,124,159,129, 61, 79,234,
-167,176,217,253, 55, 59, 75,100,210,182,231,110,237, 11, 38,133, 20, 65,162,218,246,245, 30,223,164, 66, 7,152, 68,165, 81,169,
-241,233,212,232,193, 88, 25, 13,196,142,210,123, 15,213,211,141,170, 34,178, 72,102,172,170,154,158, 62, 77, 60,178, 59, 34,126,
-202, 51, 18,171,255, 0,106,144, 62,236,116, 69, 12, 83,193, 69, 71, 5, 76,188,250,152, 98,141, 36,127,219,117, 64, 29,191,238,
- 96, 79,223,133,168,165,123,119,125,170,238,209, 91,175,240, 39,195,117,192,235,151, 29, 77, 14, 81,120,135,190, 40, 15,243,187,
- 74,135, 49, 41,105,123, 57,111, 76,138,162,181,214,165, 33,194, 46, 23, 26, 41, 49,152, 90, 40,225, 78, 63, 38,166,204, 61,237,
-246,205,251, 82,224,240, 79,182,174,108,238,209, 85,161,203,226,135,116, 40,142,253, 82,227, 78, 37,255, 0,226,146,206,156,167,
-161,191,184, 53, 54, 18, 8, 53,247,252, 41,108, 80, 99, 56, 82, 61,229,165,212,159, 75,177,161, 8,147,185, 93,236,136,246, 94,
-213,106,214,149,199,198,255, 0, 17,212,217,179,238, 10,173,173,115,221, 27, 61, 64,185, 22,228,217,136, 85, 70,147, 62,106,247,
- 98,229, 19,146,183,100,220, 18,214,234,221,164,120,203, 82,154,110, 66,170,174, 5,201,122, 11,177,110, 14, 3,225,236,179,135,
-178,212,241, 23,140, 33,215, 71, 11,133,202,168,154,193,235,170,175,228,151, 73,191,212,196,192,178,146, 8, 37, 76,132, 21, 68,
- 89,105, 31, 17,120,151, 54,226,108,214, 79, 12, 56, 34,126, 93,116,209,151,206, 43,214,229, 40, 41, 45,231,132, 50,145,245,242,
-169, 10,202, 8, 32, 50,196, 8,105, 29,161,210,223,163,211,255, 0,132, 11,255, 0,169, 75,243,255, 0,199,236,141,116, 43,233,
- 74,255, 0,148,224, 99,255, 0,154,226, 91,255, 0,107, 96, 53,207, 95,163,211,255, 0,132, 11,255, 0,169, 75,243,255, 0,199,
-236,141,116, 43,233, 74,255, 0,148,224, 99,255, 0,154,226, 91,255, 0,107, 96, 53,106,102,159,250,197,112,231,255, 0, 5, 39,
-255, 0,208,175,197, 59,147,255, 0,234,195,197, 95,252,124,127,255, 0,161,150,227,167,222,201,206, 30,246, 78,244,224, 27,134,
-234,253,209,181,155,125, 93,172,206,219,232,206,205,170, 85,108,219,118,161, 80,150,239,214, 85, 36,151,101, 76,151, 78, 91,146,
- 29,229, 74, 71, 50,212, 78, 0,235,174,142,127, 36,254, 28,127,249, 20,218,239,253, 65,181,127,255, 0, 21,168, 67,236,206,242,
-251,107,106, 27, 11,183,118,135, 14,118,230,248,218,123, 35, 96,219, 49,169,246,138,246,239,108,225, 81, 63,132, 20,246, 12,185,
- 95, 92,181,113, 85,232,203,170, 93,234,124,188,224,255, 0, 4,146,236, 21, 45,180,166, 60,100, 57,144,172,147,102,189,184,158,
-209,254, 22,247, 41, 54,175, 17, 19,170,123,167, 72,160, 84, 35,193,188,246,187,121,108,216, 86,109,253, 75, 99,149,165,201, 68,
- 43,134, 21, 2, 5, 86,143, 93, 49, 75,106,105, 85, 86,234, 49,190, 62,117, 68, 87,136, 87,168, 78,113,225, 63, 21,230,217,158,
-127, 91,147,241, 53, 5,117, 75, 84,212,207,236, 81, 87, 72,103, 68,121,153,145, 24, 4,229,164,150,101, 82,174,202,138,219,115,
- 58, 98,193,200,252,101,224,252,151, 41,225,202, 12,239,133, 51, 44,186,145, 41,105, 96,246,233,178,248,197, 59,201, 28, 17,171,
-186,157,124,201, 35,186,179, 6, 68,121, 25, 70,174, 95,164,237,173, 75, 62,218,177,233, 17,168, 22,157, 22,153,111,209, 33, 37,
-105,135, 73,163,193,139, 77,167, 68, 67,142,173,231, 17, 26, 20, 54,144,211, 9, 83,206, 56,178, 16,144, 10,156, 82,143, 82, 78,
-178, 93, 49, 28, 53,113, 19,183, 28, 85,108,189,139,190,123, 87, 80,118,125,159,125,210, 5, 74, 19,114,219,105,138,157, 46, 99,
- 18, 31,167,214, 40, 85,152,204,188,226, 34,214, 96, 85,226, 78,135, 45,180, 56,227,105,126, 18,252, 55, 93,108,161,197, 62,250,
-231,250,168,106, 41,170,106, 41,234,227,104,170,224,119, 73, 85,193, 14,178, 43, 21,117,112,119, 12, 24, 16,215,222,247,190, 58,
- 70,146,122, 90,170, 74,106,154, 41, 18,106, 58,136,209,225,120,200, 40,209, 58,134,141,144,141,138, 50,144, 84,141,172, 69,176,
-180,180,180,180,134, 54, 48,180,180,180,180, 48, 48,180,180,181,192,111,104, 5,251,125, 80, 56,143,220,198, 45,253,213,169, 89,
- 9,183, 54,167,110,238, 27,118, 11,123,151,122, 90, 50,220,172,139,138,158,153, 72,178, 45,251,125,102, 37,197,116, 63, 9, 82,
- 82,182, 38, 6, 89, 68,111, 26, 95,138, 30,142,216, 47, 57, 30, 78,249,221, 99, 81,164,226, 6, 84, 47,168,169,111,215, 68,181,
-129, 7,171,130, 78,246, 0,236, 78,216,215,169,168, 20,209,243, 10,234, 23,181,175,110,196,255, 0, 44,119,231, 75, 81,244,103,
-138, 29,229,219,186,190,226, 38,204,169, 55,100, 67,220,238, 34,247, 45,250,213,217,125, 65,164,205,147,104,206,165,216,118, 61,
- 94,129,106,212, 95,186,100,197,162, 91,207, 73,151, 86,156,153, 30, 59,169, 82,141, 53,244,196,109,181, 55,135,114,241,198,191,
- 22, 21,107, 15,123,247, 58, 21,239,182, 80, 41,252, 61,195,225,246, 85, 90,221,164,217,177,110, 10,125,254,238,232, 42, 29, 18,
-168, 34,221, 38,172, 62,174,129,245,162, 36,204, 82,163, 52,225, 82,101,134, 98,190,203,109, 37,110, 59,183, 5,230, 62, 70, 90,
-152, 57,114,114,192, 44,206, 14,169, 36, 72,144, 16,168,246,213, 43,132, 6,228, 91,204,218, 84,223, 8, 12,198, 29,193, 70,184,
-191, 64, 58, 0, 88,157,200,232,162,231,111,112,185,199,119, 52,181, 31,219,163,138, 13,215,187,247, 63,109,175,153, 87,125, 18,
-185,126,217, 23,151, 19, 82,104,252, 60,211, 45,201, 52,233,150, 71,240, 34,193,174,162,217,167,220,143,211,222, 93, 66,233,145,
- 84,147, 75,108,134,220, 72,230,113,130,136,203, 97, 74,115,194,187,218, 60,116,241, 71, 94,159,183, 22,253, 63,112, 54,166,175,
- 63,117,119, 39,104,237,104,115,229, 80,109,233,245, 11, 49,235,225,117,154,109,106,149, 86,182, 45, 90,232,117,138, 91, 85, 35,
- 79, 91,126,254,228,106,167, 37, 61,109,158, 66,226,214,144,220, 23,153, 8,213,214,162, 27,132,212,225,139,174,147,174, 69, 33,
- 78,131,172, 1, 25,109,118, 10,194,252,179, 32, 1,136, 25,140, 58,136, 42,221,108, 45, 99,125,129,245,219,115,107,117, 29,237,
-142,245,233,107,147,209,223,222, 43, 46,151,189,123,171, 87,168, 91,247, 45,193, 96,238,236,107, 86,163,184, 18,175, 13,204,135,
- 26,223, 51,155,219,155,122,229,185,225,109, 4,121,171,160, 11, 66,149, 6,229,173, 86, 75, 18,101,144,211, 81, 94, 47, 30, 86,
-130,245,116,153,197,253,205,104,175,125,224,212,119, 98,196,186,104,182, 78,217,238,236,253,159,220, 25, 80,109,250, 84, 61,204,
-189,109, 75,111,110,106,180, 88,240, 28,129, 37, 16, 46,122,140, 59,158,240,173,209,164, 71,165, 4,181, 37,202, 9,253, 10, 30,
- 67,199, 90, 31,253,157,169,144,255, 0,100,153, 42,109, 96,108, 24, 93,173, 25, 33,108, 27, 96, 37, 66, 3,232,144,141, 71,151,
-101, 98, 20,246,180, 31,222, 41, 75,252, 58,110, 5,250,122, 30,151, 3,109,247, 24,234,110,150,185,121,125,113, 27,190,246,141,
- 14,226,220,138, 85,122,149, 95,137, 79,221, 29,192,219, 42, 86,219,187,104, 69,247, 57, 66,135,195,181,213,186,212,122,171,149,
-122,104, 85, 74, 93, 76, 92,212, 56,173,120, 13,169,182, 94,140,242,153, 95,134,178, 36,161,188,127,125,171, 86,214,225,238, 11,
- 22,199, 16, 84,107,178,163,121, 39,108,124, 29,207, 68,141,169,183,108, 72,233,163,237,245,233, 92,170,211,106, 53,186,204, 89,
- 52,202, 39, 35,139,138,182, 99, 49, 2,101, 90, 83, 81,212,194,240,184,239, 73, 25,143,134,171, 36, 66,194,104,254,198,161,110,
- 97, 23, 14,138,202,199, 64, 11,164, 54,162,119, 6,214, 93, 86, 98,161,171, 35, 6,218, 79, 91,118,238, 9, 4, 11,239,126,158,
-238,246,218,253,134,210,215, 23,168,252, 66,238,173,122,152,237,253, 54,243, 85,110,231,171, 76,225,138,243,161,236,203, 18,102,
-193,102,123,213,219, 34,129, 34,173, 62,218,133, 2,172,137,173,218,242, 46,180,203,140,244, 86, 80,236, 39,101,213,208,220,211,
- 33,228,132,186,236, 80,248,135,221,139,146,237,218,187, 18,214,222,123,102,243,129,185, 51,246,200,220,219,133,110,217,182,220,
-151, 54,246,175,118, 89, 27,207,114,220, 59,126,196, 88,238, 61, 5,154,162,127,128,148, 71,161,179, 83, 67,181, 56, 13,161,255,
- 0,172, 27,152,151,144, 18,105,120, 98,178, 37,118, 51,199,104,151, 83,147,204, 1,108,138,237,184, 67,125, 33,173,125,181, 16,
- 66,106,107,129,133,173,141,136, 1, 79,155,167, 77,247, 32,119,239,248,119,182, 58,147,171, 69,118,187, 74,182,233,114,107, 21,
-153,105,135, 2, 47,132,149,185,225,188,251,206,189, 33,212, 71,139, 18, 28, 72,205,173,217,211,223,148,235, 45, 49, 29,148, 45,
-231,222,121, 13, 52,133,184,180,164,182, 60, 63, 94, 23, 13,249,180,118,173,203,117,202,141, 58,225,125,219,146,149, 84,168, 68,
-134,221, 57,154,140,139,106,235,174,219, 34,165,238, 12,168,183, 13,217, 13, 81,219,121,198,219,253, 26, 28,125, 73,108, 37, 1,
- 41, 13, 62,232,111,214,218, 88, 87, 53,221, 90,189,235,241,103, 84, 54,214, 35,223,192,237,191,166,243,212, 43,146,234,168,162,
-210,230,214,174, 85,210,219,108, 4, 84, 20,139,146, 5, 54, 10,228, 56,219,108, 55,239, 43,109,212,137,238, 41, 44, 50,192,240,
-207, 45, 59, 88,201, 19,178, 27,116,186,146, 13,137,182,215, 29, 72, 27,117,198,210,176,101, 86, 29, 24, 3,251,247,199,221,233,
-222,106,181,159, 75,167, 84,174,234, 93, 66,210,177,231, 69,184,235,115,168,180, 74,161,155,188,183, 37,187,104, 81,151, 91,175,
- 70,163, 80, 40,200, 81,166, 32, 83, 84,169, 82,149, 18, 91,178,216,139, 78, 83, 11,126,159, 42,107, 42,103,136,187,179,237, 34,
-226,147,119,235, 63,197,223, 8,251,124,189,158,219,184, 97, 16, 40,176,233,212,196, 92,251,157, 84,166,150,212,167,102,185, 76,
-180, 34, 77,106,221,117,114, 22, 2, 25,135, 45, 15, 52,181, 45,110,204,125, 71,175,108,182, 23,109,174,187,130,169, 84,222,157,
-223,125,186,149,249,123, 65,247,101,210, 60,100,212,104, 54, 69,155, 36, 7,224,237,133,176,149, 2,203,148,166,146,166,158,173,
-205,109, 3,235,170,160, 43, 86, 98, 69,134,211, 59, 51,104,216,150, 77,129, 77,110,141, 99, 90, 54,213,159, 74,109, 41, 66,105,
-246,205, 18,155, 68,137,132,126,169, 91, 20,232,205,165,197,117, 57, 82,129, 81, 36,146, 73, 39, 78,217,109, 94, 95,150, 60,146,
- 85, 80,254,145,169, 22,208, 11, 40,141, 58,223, 82,180,114, 93,186, 91, 96, 71, 98,164, 27,234,212,195, 81, 80, 21, 35,159,217,
-227,223, 81, 0,150, 61, 45, 98, 25,108, 58,223,168,247, 17,136,175,109,165,111,136, 46, 22,110, 90,253,251,188, 55,190,238, 65,
-226, 39,118,227, 73, 22,188, 43,214,173, 93, 15,170,216,230,151, 29, 53, 11,198, 13, 89,199, 26,118,108,119, 24,169, 38,135, 69,
- 37,232,207,174, 19,213,119,127,239, 68, 64,213, 43,151,138,189,231,148,233, 93,203,191,247,220,103, 10,148,232,142,246,226, 85,
-105, 32, 96,149, 21, 51, 79,141, 84,100, 37, 35,175, 68, 55,129,142,128,107,190, 92, 81,109,158,214,113, 35, 67,184,108,237,202,
-102, 60, 43, 2,198,163,212, 42,247, 21,248,211, 49,155,173, 80, 37,183,202,252,118,173,218,155,209,221, 83, 79,170,117, 53,160,
-227, 77, 36,169,228, 67,121, 32,178,242,233,207, 57,194,234, 71, 15,220, 39, 90, 75,109,193, 77,191,119, 2,124, 94, 96,220,151,
-161,219,182,108,103,243,144, 18,185, 21,119,174, 89,106,100,163, 0,129,224,171,201, 60,131, 83,252,135, 54,165,204,160,150,105,
- 50,197,106,184,152, 41, 60,176,194,223,170, 17,180, 5, 22, 29, 67, 58,155,146,119,189,240,193, 93, 73, 45, 59,170, 45, 73,228,
-176,184, 26,172,111,176, 36,139,220,223,181,129,216, 91,107, 91, 29, 21,246,100,113, 47,186, 91,235,125,110, 4, 59,162, 92, 75,
-222,214,164, 89,244,136,116,189,196,146,195,109, 87,221, 69, 6,164,227, 77, 68,157, 83,101,164,170,228,142,252,250,245, 93,166,
- 94,150, 12,132,127, 7, 30, 90, 93,113,183, 73, 87,102,245,197, 62, 8,247, 59,106,118,179,113, 23,103, 90,182, 36, 75, 2, 30,
-235, 85,168,116, 25, 13,199,172,212,107, 14, 87, 43,209,216,152,205,189, 33,239,126, 9,109,170,147,105,114, 75, 75, 16,216,138,
-219,177, 93, 46, 62,219,134, 27, 74, 71,107, 53, 4,226,104,132,121,180,197, 40,197, 20,114, 5,101, 80, 0, 13,113,230,112, 20,
-149, 23,107,139, 2,109,109,247,185, 47,153,107, 22,165, 75,205,206,101,184, 39,115,107,116, 27,128,122, 88,239,235,233,133,165,
-165,165,168,254, 55,240,180, 29, 66,161, 2,147, 6, 93, 78,169, 50, 45, 58,157, 2, 59,178,166,206,154,251,113,162, 68,140,194,
- 11,143, 72,147, 33,229, 4,178,202, 80,149, 21, 41, 68, 0, 6, 73,209,154,212,158, 53,182,250,255, 0,220,189,141,169,219,187,
-118,235,139,169,181, 89,166,213,106,148,134,158, 12, 59,113, 81, 32, 51, 52,201,162,180,181, 16,149, 58,102, 59, 6, 74, 80,165,
- 0,225,167, 6,243,149, 0, 88,184,159, 52,173,201, 56,123, 58,205,242,220,170, 76,242,191, 45,166,150,104,105, 34,254,242,162,
- 68, 66,203, 18,216, 19,118, 35,162,171, 57, 23, 8,172,214, 82,253,194,249, 85, 14,121,196, 89, 38, 79,153,230,209,228, 89,126,
-101, 83, 12, 51, 86, 75,253,221, 60,114, 56, 87,149,174, 85,108,160,245,102, 84, 6,197,221, 86,236, 52,131,138, 95,104, 4,186,
-199,214, 54, 22,197, 77,122, 13, 40,151,161,213,183, 5, 41, 91, 51,234, 13,245,109,214,109,116, 44, 5, 64,138,174,191,225,138,
- 1,245,164,254,133, 45,116,112,232,102,217,108,157,245,187,134,183, 88,166,198,146,138, 37, 30, 21, 78,171, 88,184,102, 54,243,
-205,188,244, 72,207, 77,118, 44,101, 40,243, 79,168,186,180, 97, 88, 36, 32,185,206,226,129, 32, 43,100, 54, 19,129,203,238,248,
-173,181, 55,114, 41,115,173, 91,118, 27,233,241,105,111,225,154,189, 85, 72, 80,230,100,242, 40,251,132, 63, 37, 44,159, 21, 64,
-225,180,167, 62, 34,123,107,102,109,165,171,100,219,108, 91, 52,106, 68, 40,116,214, 97, 24, 34, 35, 12, 33,184,233,142,182,203,
-107,104, 54, 7, 80,164,169, 92,196,228,168,168,149, 18, 73, 58,227, 46, 26,240,155,196, 15, 27,243,131,198,254, 48,212, 79,148,
-100,169,175,216,178,205, 50, 64,197, 79,217, 84,129,142,186, 74, 91,129,173,223,251, 93, 72, 91,234, 0,172,216,237, 78, 38,241,
-115,195,223, 3, 50, 97,192,254, 13, 83, 65,156,103,114, 20, 53,217,166,164,168, 64, 71,218,103,168, 81,162,174,168,169,109, 8,
-159,217, 41, 75, 17,164,144,208,226, 44, 52,185, 13,195,169,211,165,188,142,118, 98,207,137, 33,212, 30,203,109,137, 13,184,226,
- 8,249,165, 36,125,250,127,189,191, 59, 1,126,241, 15,193, 94,202,238,238,208,211,167, 93,244,109,151,184,170,119,101,215, 68,
-161,176,236,233,235,179,175, 10, 4, 24,142, 93, 76, 66,140, 20,185, 76,211, 95,167, 69, 50, 66, 18,165,179, 30,166,244,130, 3,
- 76, 60,164,211,226,127,101, 42, 59, 29,186,181,187,117,109, 62,187,118,168,251,213,155, 78,162,182,200,106, 93, 34, 91,202, 95,
-186,135, 57, 66, 85, 38, 43,203, 84,119, 64,193,253, 26, 87,128,151, 18, 75,183,195, 79, 26, 53,221,151,166,139, 34,240,164,187,
-122,109,226,148,224,141, 17, 46,182,154,189, 13,183,212,165, 72,102, 2,165, 31, 10,109, 61, 74, 90,213,238,238,148, 4, 41,106,
- 40,113, 41, 37, 5,151,232,189,226,236,127, 70,191, 20,115,188,175,140,233,189,135,151, 83, 26, 73, 43,163, 50, 69, 61, 47, 62,
- 45, 50,104, 12,254,207, 83, 5, 76,154, 39,141, 95, 65, 49, 74, 20,198,204,234,241,244,170,240,114, 79,164,247,132,249, 46, 99,
-193,117, 94,220, 37,165,149,227,137, 29, 21,229,130,168,211,204, 26, 46, 97, 84,246,154, 89,233,163,215, 79, 35, 71,204, 2, 88,
-139, 9, 21, 81,160, 87,169,110,253, 27, 78, 31,247, 14,201, 78,246,241, 53,120, 64,159,107,237,173,207,108, 82,237,139, 90, 69,
- 85,167,160,179,114, 68,163, 76,149, 92,175,220,241,144,248, 79,137, 70,138, 26,139, 29,153, 56, 45,188,228,137, 73,109, 71,193,
- 94,122, 95, 89,143,236,147,185,110, 37,110, 61,103,134,205,190,118,245,118, 71,214, 47,186,246,201, 80, 28,168, 63, 81,230,241,
- 76,135,214,152, 94,233, 38,103,139,215,198,113, 69,124,221,121,181,134,239,223, 25, 43,190,109,119, 54,195,105,109,159,226,243,
-110, 28, 97, 16,106, 24, 17,153,172,214,169,236, 0,134,169,158, 5, 63,244, 20,106, 55, 34, 82, 21, 29,165, 56,167, 82, 2, 22,
-180,183,204,210,189, 25,241,187,233,237,225,100,220, 3,152, 80,112,253, 92, 57,166, 99,153, 70,182,130, 10,152,234,164,119, 86,
- 89, 18, 33,201, 5, 97, 70,145, 87,153, 52,237, 25, 88,195,132,133,228, 42, 7,154, 94, 3,127,179,211,197,122, 79, 17,114,220,
-207,136,233,166,203, 50,220,174, 70,250,249,233,164,165,141, 17,213,163,121,155,158,193,230,117,141,219,151, 5, 58,200, 30, 82,
-133,230, 72,149,201,211,219,222,171, 18,185,121,221,181,168, 8, 8,131, 86,185,107,149, 40,105, 74,121, 64,139, 58,167, 42, 76,
-127,132,143,135,244, 78, 35,167,207, 77, 71,183,193, 83,207, 4, 92, 7,166,161,226,120,232,185,171,137, 62, 46,121,194, 5,131,
- 73,240, 82,160,174,160,134, 66, 7,221,173,145,216,173,173,169,238,230,227,208,109,120,108, 60,170,120,148,204,234,252,180, 33,
- 69,184,116,136,238,161, 82, 57,156, 72,194, 30,120,132,178,214,123,173,224,113,202,149, 17,210, 31,105, 23,179, 6, 31,180, 15,
-107, 54,119,111,211,186, 82,118,157, 59, 83,112, 85,238, 6, 95,131,103, 71,187, 17, 86, 21,122, 52,122, 72,130, 99,187,113, 83,
-133, 57, 44,166, 58, 86,149,165, 78,133, 5, 20, 20, 12, 5,107,144,127,217,239, 11,228,156,117,155,248,159,196, 50, 53, 6, 69,
- 81, 49,167, 14, 35,118, 89, 36,209, 81, 36,238,145,198, 25,217, 98,121, 98,141, 74,171, 13, 82, 58,223,200,246,236,191,246,140,
-186,241, 7,135,185, 87,133,124, 53, 18,230, 60, 67, 79, 0,168, 49,153, 35, 86,142, 62,101, 52,112, 70,242, 72,200,138,210,199,
- 20,210,176,118, 83,166, 56,218,223, 88,151,102,125,130,112,118, 42,169,192, 62,220,155, 3,248, 58,253,211, 14, 69,121,189,216,
-141, 20,197,250,250, 61,248,229,122,168, 93,114,229,109, 39,197, 75,206, 82, 17, 78, 84, 37, 57,240,170, 2, 88, 75, 71, 8, 80,
- 17,173,246,250, 13,156, 87,180, 78,224,103,100, 28,162, 63, 88,110,202,179, 25,220,245,218, 78, 69,118, 49,221,175,121,170, 25,
-141,184,237, 53, 69,181,220, 41,161, 42,215, 76,222, 83,227, 38, 98, 92, 68,140, 74, 75,192,117, 38,227,250, 54,119,189,161, 79,
-164, 73,216, 46, 46,110,123, 78,180,253, 25,154,101,232,154,149, 18,165, 73,135, 95,154,143, 16, 72,168,192,114,215,185, 18,237,
- 62, 19,168, 82, 1,129, 35,223, 2, 20,149, 45, 50,202, 86, 27, 67,243,193,111,209,227,219,173,146,220,107,127,118,119,231,112,
-164,239, 85,205,109, 84,218,174, 81,173,207,169, 81, 69,178, 35, 87, 35, 60,153, 16,234,149,118, 37,204,149, 42,232,125,153, 9,
- 75,205, 33,229,199,142, 93, 0,191, 29,240,156, 31, 80, 50,110, 36,240,255, 0,133,248,167,136,120,250,159,140,167,206,102,204,
-197, 81,139, 47, 20,147,199, 51, 60,242, 9, 52, 75, 52,159, 86,209,161, 80, 35, 44, 16, 5,210,199,204,186, 91,202,188,243,133,
-252, 73,226,222, 17,225,159, 14,106,120, 26,159, 34,131, 42, 52,130,108,204,214,211, 75, 2,165, 60, 92,190,100, 48, 71,245,171,
- 35,134, 38, 64,165,201,109,106, 60,175,173,120,101,186,226,227, 30,216,222, 31,145,113,169,212,222, 13,238, 7, 6,204,215,213,
- 43,196, 18, 19,114,181,106,109,123, 85, 19, 47,197,202,132,164,212,146,231,141,205,215,196, 74,201,235,211, 90,121,178,118,150,
-251, 86,248,244,118,209,176, 55, 14,149,181, 28, 67, 63,187,123,137, 77,165, 94, 87,124,150,160,183, 79,191, 68,251,137,138,172,
- 71,101, 79,167,202, 75, 85,121,111,253, 99, 25,144,182,148,167, 95,150,150,144,124, 71, 18, 12,191, 55,139,216,145, 27,114,184,
-246,164,241,181, 23,126,103,210, 85, 77,220,141,186,220, 36,237,202,118,242, 36,168,229, 86, 2,232,107, 69, 32, 92,230,240,109,
- 65,169, 66,136,128, 94,247, 2,166,125,229, 68, 33,194,145,159,188,127,251, 8,246,135,139,155,230, 86,246,237,181,237, 81,216,
-221,230,170,248, 18,174,153,244,186, 83, 85,171, 78,238,170, 68,109,180, 49, 90,169, 81, 81, 50, 35,244,171,136,165,166,146,236,
-232,146,128,119,194, 75,143, 69,117,254,103, 75,214, 91,226,215, 8, 67, 22, 85,150,205, 86, 35,138,175, 35,134,138,121,205, 36,
-147, 69, 73, 85, 26,176,229,203, 3,162,251, 69, 57,230, 48, 97, 30,180,109, 10,167,202,197,149,139, 52,240,103,141,106, 37,205,
-243, 72,104,140,147, 80,241, 4,245,244,244,226,182, 40, 37,173,163,149,163, 60,200,170, 35,145,189,154,161,121, 42, 80,203,203,
-117,214,204, 6,181, 8,220,174,226, 71,130,207,107,101, 91,105,167,218,220, 83,113,207,179,208,246,122,238,169,208,173,233,177,
-183, 54,243,164,208,173,170,181,102,101, 69,135,109,234, 98,103,201,178, 88, 45,207, 85, 69,134,150,209, 67,168, 82, 61,221, 78,
-173, 73,109,181,173, 58,117,197, 87, 1,155,253,192,167,179,178,235,160,238,229,199,101,215,173,141,200,226,147,102,174,107, 61,
- 22, 93, 90,117, 86, 35,117, 8, 59,103,187,240,170,243,222, 92,168, 76,160, 38, 69, 61,202, 40,109,109,115,248,137,137,146,174,
- 80,141,116,161,143,163,193,196, 46,228,213,168, 20,254, 34,120,219,187,111,155, 38,221,113,180,211,233, 77,199,185,174, 25,241,
- 97,167, 8,114, 37, 29,203,202,228,122, 53,190,165, 48, 57, 82,234, 35,200, 8, 29, 60, 21,142,154,234,183, 19,126,200,187, 31,
-124, 56, 36,218,238, 11,108,125,198,175,109,125,165,181, 87,181, 22,242,163, 87, 39,211,158,220,106,188,245,210,168,215, 85, 46,
- 68, 42,129,170,215,224,171,196,147, 34,233,147, 37,110,182,234, 91,105, 81,195, 44, 70,109,146,148, 54,214,158, 34,228,185, 53,
- 87, 15, 81, 71,196,212, 85,249,107, 87, 71, 81, 94,180, 57, 43, 81, 65, 18, 68, 85,227,149, 89,109, 43, 77,170, 53, 86, 9, 12,
-154,144,144, 89, 2,128,238,210,120, 95,158,231,148,156, 75,152, 73,194,149,249,118,106,153,124,148,217,123,102, 25,242,215, 84,
- 77, 36,193,146, 72,157, 90,240,164, 26,100,118, 66,243, 71,165,192, 96,175,172,152,216,127,163,207,182, 54, 85, 63,129, 26, 5,
-213, 18,131, 1,186,245,225,121, 94,117, 27,146,168, 35, 51,239,213,105, 84,250,195,212,170,127,190, 73, 8, 11,121,152,244,248,
-205, 54,202, 20, 74, 90, 10, 95, 32, 5,107, 39,133, 62,218,203,122,129,108,123, 96,109,245,210, 41,177,105,109,213,209,195,221,
-118,176, 97,180,134, 12,218,147,149, 56,208,159,168, 62, 91, 3,158, 81,133, 78,134,130,179,241, 17, 25, 57, 61, 53, 47, 47,103,
-175, 7, 75,224,115,135,139,127, 97,141,234,237,254,138, 5, 74,189, 81, 77,202,253, 13,187,113,201,102,185, 84,122,164,166,141,
- 41,170,164,208,194, 90, 47,114, 3,239, 11, 42, 8,230, 56,206, 53,160, 92,119,251, 21,218,227, 43,139,138, 79, 20,201,223,169,
-214, 59,244,232, 27,125, 4,217,141,109,212,106,251, 11, 22, 36,247, 38,120,191, 94,185,121,196, 82, 76,164, 44, 39,151,221, 15,
-128, 83,205,151,129,228, 17,110, 24,227,108,134,131,196,238, 46,226, 60,195, 51,120,242,140,217, 51, 4,134,110, 92,238, 92, 77,
- 42, 52, 0,198,177,153, 20,104, 81, 96,232, 2, 5, 0,233,176, 24,151,241,111, 0,241, 22, 99,225, 63, 5,112,190, 91,148,164,
-153,214, 76,249,107,207, 8,150,157, 4,109, 4, 46,181, 12, 36,105, 22, 38, 58,216,234, 40,236, 92,177, 35, 85,201,196, 94,166,
-255, 0, 4,227,251,102,171,138,226,141, 80,145,106,127, 43,106,227,151,155,183,111,130, 40, 41,134,253,197, 45,203,106, 77,100,
-206, 72,103,248, 45,250, 74, 26,201, 88, 17,189,203,148,159,208,106,118,219,255, 0, 77,225,202, 23, 11,155,155, 59,120,151,101,
-141,146,115,108, 43,142,220,242,235, 79, 83, 77, 2, 85,186,237, 13,231, 25, 76, 37,173, 94, 28,153, 78, 35,192,250,189, 49,242,
-243,146, 21, 28, 67, 5,242,214,185,225,237, 10,246, 37,236,223, 28, 51,160,110, 93, 50,230,159,180,155,231, 14,139, 6,141, 84,
-188,169, 20,168,245,170, 53,231, 14,149, 20, 69,166, 34,238,183, 93,151, 24,202,168, 48,195,108,176,204,230, 36,178,250, 35, 54,
-134, 94, 76,166,217,142,134,185,163, 99,253, 27,221,214,159, 80,165, 91,187,205,197,181,110,187,181,116,121, 33,246,109, 11, 90,
-155, 92, 73,125,180,171, 33,152,105,184, 43,142,194,160,169, 67,169,117,184,146, 84,156, 20,165, 25, 60,195,123, 59,206,248, 23,
-142, 41, 56, 79, 52,204, 56,182,110, 23,174,225,202,104,160,154,140, 82, 79, 49, 38, 34,167, 93, 35,197,104,209,156,173,149,152,
-146, 20, 70, 93, 84,165,153,191, 32,200, 60, 65,240,254,183,140,178,156,183,130,224,226,234, 14, 40,171,154,162, 10,227, 91, 4,
- 0, 9,129, 81, 29,108,114,131, 35,162, 6,187,162,128, 11, 25, 66, 51,137, 46,188, 20,224,130, 37,122,161,107,241,207, 22,205,
- 68,229,213,151,193,189,253, 34, 59,113,121,149, 53, 84, 40, 55,206,223, 79,185,147,150,134, 72, 22,172,106,177,123, 29, 60, 36,
- 57,159,135, 58,112,125,151, 27,107,197,206,231,238,109,253, 66,224,219,124,109,173,154,220,132, 90,144,164, 85,209, 87,159, 18,
- 13, 86,231,182,219,170,182,183,153,164,123,205, 6,114,159,102, 44,244,195,114, 64,108, 32,164, 58,218,149,148,246,148,183, 0,
- 30,195,186,103, 4, 59,219, 95,221, 41, 91,210,238,236, 81,174, 43, 18,191, 97, 78,179,235, 27,115, 6,133, 5,234,101,126, 92,
- 7,229, 25,178,149,117,212, 19, 61,159,118,131,224,173,133,199, 8,117, 50, 23,206,113,240,235, 95,184,128,250, 57, 52, 5,238,
- 92,237,211,224,251,126,238,109,132,155, 34,168,253, 90,157,107, 61, 18,125, 66, 21,175, 38, 90,150,227,236,218, 87, 93, 26,179,
- 18,165, 71,166,165, 75, 33,152,239, 9,107,109, 10, 40, 18,121, 2, 82, 39,213,158, 45,112, 93,125,119, 19,229,145,230,113,193,
- 73,155,199, 76,244,245,181, 20, 18,212,211,115,163, 69, 71,134,162,150, 72,214, 70, 81,203, 66,172, 80,165,217,219, 82,178,174,
-170,226,135,193,142, 59,203,114,254, 18,205,101,202,100,158,183, 36,150,174, 58,154, 26, 92,198, 42, 74,174, 68,178, 51,199, 61,
- 45, 92, 82, 52,106,228, 72,225,215,152, 30,200,138, 85,149,155, 79, 63,120,152,246,113,123, 73,247,246,235,219,109,167,226,139,
-140,141,138,188,175,178,213,122,187,181,118, 29,241,126, 64,166,221,115, 99, 73, 93, 54,159,112, 78,182, 41,145,237, 56,210,106,
- 13, 56,228,106,115,110, 33, 60,254, 41,132, 84,218, 23,238,207, 41,173, 31,246,169,108, 70,229,240,207, 70,224,147, 98,119,114,
-163, 71,170,222,187,125,195,213,118,150,252,234, 12,137, 18,233, 70,139, 43,118,239, 89,244, 56,177,164,203, 97,167, 29, 12, 68,
-146, 91, 60,200, 72, 79, 32, 74, 71, 40, 26,238, 94,204,253, 30, 26,228,253,212,164,238,167, 22,156, 77, 94,219,207, 82,164, 79,
-131, 56,192,167, 63, 93,167, 79,170,174,154,224,118, 27, 85, 91,234,181, 93,149, 83, 76, 20,173, 8, 10,106, 34, 99, 59,203,144,
-220,182,137,206,183, 63,218, 81,236,103,137,199,254,225,237,141,254,141,242,159,182, 63,197,206,219,177,183,108, 80,227,216, 76,
- 93,200,157, 30, 61,114,165, 89,102,162,106, 82,110,248, 10,142,176,154,138,153, 45, 22,157,230, 12, 37,207, 23, 42, 41,211, 54,
- 91,226,118, 67,149,113, 15, 14, 82, 84,113, 37, 61,110, 65,151, 37, 76,179, 61, 46, 80,244,112, 67, 83, 36, 82,198,139, 2, 70,
- 26, 87, 71,230,182,191,169, 81,168, 7, 46,218,138,163,238,105,225, 55, 17,103, 28, 53,197, 21,180,220, 43, 85, 67,196,121,172,
-148,176,195, 29,102,117, 29,117, 68,244,145,205, 12,142,213, 15, 41, 72, 99,120,249, 43,203,250,242,218, 47, 24,141,116,134,125,
-234,246,125,236,206,223,237,103, 9,155, 11, 64,179,173,250,125, 38, 3, 59, 97,100,212, 92, 17,163, 54,202,230, 85,234,214,237,
- 54,167, 88,172, 76, 82, 19,151,234, 82,234, 82,100, 72,125,213,100,173,199,207,100,132,164,111, 48, 24, 24, 29,135, 65,166,203,
-102,236, 37,237,126,216, 88,187,122,185,202,169,155, 50,212,183,173,113, 82, 83, 9,138,169,233,160, 82, 33,210,147, 53, 81,146,
-234,196,117, 58,152,129,101,176,181,132, 21,242,133, 40, 12,150, 11,143, 78, 49,236,142, 6, 56,109,189,119,206,237,247,106,133,
- 98, 35, 63, 80,109,189,164,235,165,183,175,125,198,171, 71,147,252, 28,183,209,200,180,173, 16, 18,168,242, 38, 84, 93, 65,230,
-143, 77,165,203,121,176,183, 80,219, 78,115,121,134,183, 63,207, 30, 26, 53,122,250,236,222,165,132, 99,114,242,188,210, 27, 18,
- 91,123,146,215, 98,214,176,185,107, 0,113,212, 98,122, 30, 27,225,232,231,174,100,203,178,252,150,145, 76,135, 96,145, 71, 12,
- 64, 48, 1,118,178,133,178,170,222,230,193, 65, 36, 12,113, 23,233, 10,251, 69,127,139,219, 56,240, 51,180,149,207, 14,246,220,
- 58, 76, 90,158,253,213,105,238,225,251,107,110,170, 45,166, 69, 35,111,195,236,175,154, 61, 90,224, 64, 68,138,131,100,165, 72,
-161,165,182, 28,109,216,245,192,166,197,250, 63, 62,207,199, 44, 27, 45,238, 46,247, 46,142,166,111, 45,207,164, 38, 30,218,192,
-168, 71, 90, 31,183,118,209,231,218,148, 43,105,105,228, 15, 10,125,126, 68,104,146, 26, 88, 10, 34,147, 18, 26,217,112, 38,161,
- 37,189,113, 27,217,255, 0,195, 62,227,251, 81,184,218,174,223,155,197, 50,161,115,219, 13, 92,234,221, 61,253,186, 37, 37,214,
-218,174, 63, 83,168,185, 34,149, 99, 68, 49,148,129, 0, 85, 37, 71,114, 43, 76, 50,166,145, 6,141, 74,151,238,188,134, 52,102,
-151,250, 18,218,182,237, 58,213,161,211,168,148,168,145,160,194,167,196,143, 18, 60, 88,140,183, 30, 52,118, 35,180,150,153,143,
- 29,134, 82, 16,203, 8,109, 41, 74, 16,144, 18,148,164, 37, 32, 0, 53,117,113,253,101, 39, 0,112,165, 23,134, 89, 44,193,243,
- 42,197, 90,140,226,116,234,236,225, 88, 67,126,160, 61,151,202,108, 86,153, 34, 86,213,206,123,208,254, 27, 80,214,248,145,198,
- 53,254, 44,103,208, 52,121, 85, 11, 61, 54, 73, 76,251,132, 68, 44,166,123,116, 38, 59,183,152, 92, 53, 84,146,178,149,228, 32,
- 25, 10, 82, 18,144,148,140, 4,128, 0,244, 3,160,215, 62, 61,164, 30,208, 29,190,246,125,108, 68,221,193,174,166, 21,195,185,
-183, 74,103,208,246,111,110, 92,144, 91,126,238,186,153,142,218,156,168, 84,144,203,169,118, 61,155, 75, 18,162, 72,171, 73, 65,
- 65, 8,121,152,108,172, 76,155, 21, 42,223,186,157, 78,157, 69,167, 84, 43, 21,138,132, 42, 77, 34,147, 10, 85, 74,169, 84,169,
- 74, 98, 13, 58,155, 78,130,195,146,166,207,159, 54, 83,137,106, 28, 38, 99, 52,235,142,186,226,146,134,208,218,150,181, 4,130,
- 71, 9,184,174,225,239,128,223,109, 5,235,103,196,178,120,186,133, 90,187,118, 26,145,116,193, 93,191,180, 87, 53,159, 80,147,
- 34,153,115,212,232,158,253, 88,147, 10,183, 72,146,245, 74,148,212,218, 52, 38,155,157, 7,154, 22,102, 37, 42,117, 74,117,156,
-212,252, 35, 69,149,207,156, 82,213,241, 20, 21, 13,195, 52, 45,174,178, 72, 34,146, 64,163, 75, 24,163,145,145, 78,133,154, 64,
-177,177,184,109, 37,180,144, 64, 34,228,227, 92,195, 55,166,201, 42,232,248, 98,122,101,226,188,193,116, 80,199, 81, 52, 81, 22,
- 98,202, 37,146, 53,145,135, 49,160,137,154, 69, 91, 50,235, 85, 12, 10,155, 24,223,112, 43, 69,217,158, 45,184,165,187,120,165,
-246,138,241, 35,182,116,170,123, 23, 91,119, 61, 74,223,220,203,198,221,164,212,247, 82,240, 90,154,145, 18, 4,155,122, 83,169,
- 76, 13,179,165,195,106, 27, 94,232,150, 88,134,243,109, 69,164,194,109, 80,163,204,105,153,125,220, 94,209,127,103,156, 61,184,
-186,232, 52, 94, 47, 56,125,117,247,237, 26,244, 24,113, 99,110, 45,186, 93,145, 37,234, 60,166, 35,176,203,104,151,241, 45, 78,
- 41, 9, 74, 64,234, 84, 0,215, 43,127,189,146,225,251,255, 0,151,141,236,252,108, 47,255, 0,212,117, 98,186, 62,141, 70,193,
- 80,109,171,134,184,206,250,111, 75,206,209,168,117,106,171, 77, 58,108, 79, 9,215, 41,240, 31,150,134,220,228,180,193,240,212,
-166, 64, 56, 32,224,156, 28,234,227,226,156,231,194,238, 48,205, 41, 42,234,248,179, 49,165,167,161, 88,226,165,164,134,136, 37,
- 61, 52,107,164,104,141, 76,102,218,138,130,204,119, 54, 10, 44,136,138, 40,222, 15,200,252, 93,224,124,162,178,142,139,131, 50,
-202,202,154,247,146,106,202,201,235,245,213, 85, 72,218,137,121, 92, 72, 47,160, 51, 4, 81,176,187, 49,187,187,179,241,151,216,
-125,188,123, 87,177,188,108,155,223,120,111,251, 87,109,173, 15,226,150,243,164,127, 8,239, 10,196, 74, 37, 35,235, 57,181,155,
- 69,248,144, 61,246,107,137, 71,189, 56,212, 57, 74, 66, 51,149, 6, 20, 64,192, 58,156, 37,241,179, 92, 40,241,203,106,237, 46,
-225,220,246,214,221,239,165,175,107, 85,218,191,118,150,241,196,122,245, 54, 52,165,184,202, 93,157, 69,169, 68,120, 38,161, 71,
-146,245, 54, 31,189, 67,112,189, 2,106,233, 81,140,168,239, 42, 43, 5,184, 0,123, 51,184, 59,180,120,227,226, 73,123, 35,122,
- 92,215, 45,167, 72,254, 47,238, 75,185, 21, 91, 80,210,133, 79,223,104,181, 43,126, 19, 17,149,245,197, 62, 75, 62,234,182,234,
-239, 21,254,143,159,153,164,114,168, 12,131,250, 11,240,185,177,214,207, 9,155, 29,181,187, 7, 78,186,100,213, 41,118,141, 53,
- 54,133,175, 62,230,151, 77, 98,183, 95,122, 59, 21, 90,234,227,165,168,172,176,212,202,144,167,198,170, 72, 83,113,218, 4, 70,
-167, 60,241, 64,109,167, 22, 49,227,201,203,105, 56,158,154,191, 47,204,234, 97,226,113, 20, 74,241,160, 40,145,211,114,230, 28,
-196,153, 44,218,218,229, 29,117,125,130,110, 45,140,253, 29, 23, 52,173,225, 42,188,187, 50,202,105,103,225, 38,158,102, 73,100,
- 43, 36,146, 85,137, 41,207, 41,224,123,174,133, 0, 58, 57, 91,243, 2,216,220, 12, 63,180,219,118,145, 74,138,212, 72,144,152,
- 67, 77, 33, 40, 72, 13,164, 97, 41, 24, 0, 0, 58, 12, 1,168,214,125, 36,238, 26, 44,170,175, 15, 59,113,196,205, 42,137, 14,
- 22,224,216, 59,137, 73,176,171, 53,136,200, 98, 51,213, 75, 2,242,167, 86,221, 76, 42,145, 5, 42,168, 46, 29,213, 78,163, 42,
- 16, 60,230, 50, 42,243,249, 18, 18,251,170, 18,111, 4, 30,160,228,122,141, 71, 19,233, 42,111, 69,183,107,112,145,182,219, 37,
-239,241,156,189,119, 91,118,169,119, 3, 20,143, 17,179, 37,155, 43,111,169, 53,105, 85,170,210,208, 57,148,210, 5,199, 87,180,
-163, 53,144,128,239,189,200, 40, 89,247,119, 16,170,219,194,167,174, 95, 16,120, 99,216, 11, 9, 94,160, 7,211,125,224, 42,220,
-240,214,234,188,157,100,223,109,175,219, 22,175,140, 41,151,191,134,156, 91,250, 68, 41,133, 41,137,143, 85,182,168, 14,158,207,
-166,253, 27,157,160, 45,183,222,221,240,212,253, 25, 45,199,171,212,118,115,136, 29,176,151, 33,247,169, 54,142,229, 80,110,122,
- 75,110,168, 41,184,138,190, 45,181, 67,159, 26, 49, 42, 42, 67, 62, 61,152,135,139,120, 8, 14, 76, 91,137,202,221,112,234, 82,
- 58,139,207,209,155,219, 90,149, 31, 99,247,187,115,230, 71,118, 60, 91,231,115,160,208,105,106,117,183, 80, 38,192,177,109,214,
- 20,185,241,212,165,114,187, 24,213,110,170,156,110,100,164, 31, 22,152,242, 20,163,202, 2,101, 13,163,120,178,105,219,196, 78,
- 41, 52,214,229,243,208, 27,116,230, 8, 34, 19,125,252,208,250,189,247,193, 60, 25, 90,149,240,199,132, 5, 93,249,190,206,228,
- 95,175, 40,212, 76, 97,251,185, 38, 61, 63,225,181,182,194,210,210,210,213,119,139, 59, 11, 75, 75, 75, 67, 3, 11, 86,231,168,
-244,137, 50,219,159, 34,151, 78,126,123, 74,105,109, 77,122, 12,103,101,180,182, 20, 20,202,155,146,182,138,208,164, 40, 2,146,
- 20, 10, 72,200,193,213,199, 75, 89, 4,141,193,177,247, 96, 98,222,186, 77, 45,198,165,199,114,155, 79,113,137,239,123,196,230,
- 87, 14, 50,154,153, 32, 41, 11, 15,203,109, 77,226, 67,220,237,182,121,150, 10,178,128,115,144, 52,195, 92,219,245,176,182,149,
-122,185,103,220,245, 58,117, 38,177, 14,165, 62,137, 88,166,205,183,100,165, 18, 94,180,182,226, 54,233, 43,153,126,224, 91,159,
- 5,155, 45,232,238,197, 88, 82,208,167,241, 10, 62,100,128,214,182, 39, 90,175,186,220, 34,237,174,239, 92, 87,189,203,114,202,
-174,179, 62,249,180,173,155, 70,114, 96, 73, 97,182,233,177,104, 55, 4, 90,205, 74,117, 39,196, 97, 70, 44,234,189, 58,155, 70,
-165,212,213,146,151,233,244,134, 89,229, 24, 36,239,229,230,133,166, 97,152,203, 44,112, 21,216,197, 98,193,245, 40, 4,130, 13,
-194,173,216,141,137,210, 0, 32,219, 9, 75,204, 10, 12, 42,165,129,253,111, 75, 29,135,199, 97,247,227,225,226,159,135, 84, 56,
-170,163,213, 95,119,172, 38, 13,219, 88,247,105, 22,125, 85,171,145, 66,203,155, 66,162,214, 18,136,138,166,123,195,149, 5, 46,
-227,166, 8,173,167, 43,148,194,220,113,158,102,153,112,164,250, 39, 17,220, 62, 92, 21, 58, 93, 58,145, 81,141, 34,185, 94,151,
- 97,212,226,211,133,167, 80,106,170,170,149,249,112,215, 45,203,118, 92,198, 28,166,133,197,168, 51, 86,164, 85,125,241,199,121,
- 87, 1,181,165,233, 10,109, 15,161, 74,182,220, 60, 32,109,125,201,123,215, 47,185,174, 86, 27,170, 87, 55, 43,109, 55, 45,216,
-204, 61, 29, 48, 33,205,219,106, 84,138, 75, 84, 24, 49,212,193, 12, 91,213, 70,167, 84,156,170,176, 58,201,118,122,151,204, 20,
-134,139,116,232, 92, 31,109,165,187,120,209,239,138, 92,218,235, 53,202, 30,226,110,142,227, 66,113, 79, 68,117,145, 63,115,169,
-177,233,206, 81,214,211,177,136, 85, 10,144,168, 20,183,233, 12,118,138,245, 57, 11,202,185,222, 14, 56,145,195,220,178, 86,106,
-161, 46,139,128, 74,144, 27, 78,161, 30,201,246, 67,125, 94,175,251,237,109,176,143,246,189, 67,202,133,111,239,189,175,107,245,
-235,111, 53,190,235,247,192,151, 23, 20,214,213,149,120,238,245,161,112, 90,149, 90,123,118, 93,223,110,218,116,155,146, 37, 34,
-165, 34,213,175, 92, 87,142,216, 91,119,181, 10, 5,199, 93,102, 0, 98,139, 83,155, 86,172,154, 91, 40,230,144, 74,145, 17, 79,
-169,147, 50, 58, 23,100,166,241,143,176,110, 91,118,252,155,150, 60,202,122, 85,111, 48,244,196,211,236,186,197,114,218,166, 92,
-206, 88,209,239, 59,138,199,163,207,137, 73, 87,214, 85,120,214,244,153,202, 90, 88,103,194,117, 48,100, 69, 14, 42, 91,110,197,
- 77,226,167,194, 53, 62,224,168,214,164, 92,187,177,184,117,202, 93,207, 86,176,238,171,166,132,252, 75, 34, 52, 75,138,247,219,
-171, 22,218,178,232, 23,101, 70,124, 75, 81, 19, 90,146,100, 90,180,154,171,241, 99, 73, 98, 19,149, 8,201,195, 8,139,207, 29,
-204, 89,174, 3, 54,230, 28, 89, 84,218, 93,213,112, 83,169, 85, 8, 13,183, 62, 50,109,173,179,153, 84,126,170,109,166, 45,137,
-213, 38,111, 9,246, 59,149,202,124, 73, 44,199, 68,199, 96,199,169,183, 24, 77, 91,133, 9, 76, 55, 93,134,181,227, 28, 52, 99,
- 65, 52,210, 44,161, 35,212, 99, 50, 88,176,141, 85,236, 90, 50, 67, 23,214,214,210, 86,214,179,139,144, 10, 77,101,201, 85, 4,
- 92,245,183, 75,220,116, 61,133,133,239,123,246, 56,201,110, 78, 45, 54,210,143, 71,187, 69, 26,206,190,106, 23,221,159, 10,239,
-174, 77,176,164,109,229,114,157, 93,162,200,181,109, 26, 5,194,253,122,230, 66,160, 17,111,208,220,164,222, 86,170, 68,245, 41,
- 75, 91, 85,192,134, 91,117,109,188,218, 1,107,139,222, 30, 41,208,160, 38,182,212,154, 96, 81, 98, 34,164, 83,236,138,173, 86,
-132,229,233, 73,143, 2, 77, 86,210,160,202,167, 82,150,229,102,224,167, 57, 85,155,240,177, 28,130,105,117, 4, 48,181,191, 26,
- 67, 73,200,239, 78, 20,232,247, 93,227,184,151,181, 59,113,239,187, 58,175,186, 16,107, 20, 59,177, 20, 6,109, 25, 81, 38, 91,
- 85,235, 26,194,177,234,148, 36, 49,113, 91, 83, 67, 13,174, 54,221, 80,228,162, 75,124,147, 24,118, 76,180,176,251,104,120,114,
- 97, 71,129, 29,185,102, 75,134,157,116, 87,233,212,215,107,237,221,142,192,102,217,219, 23,234, 46,220,107,153, 26,125, 70, 66,
-175, 41, 86, 50,235,200,165, 73,156,220,169, 11,130,138,162, 26, 67,243,150, 16, 68, 68,166, 32,196, 67,134,204, 81,243,102,154,
- 55, 96, 25,172, 90,225,180,141, 75,126, 89, 22, 86,190,141,141,197,203, 50,155, 12, 6,246,205, 70,202,164, 3,177,176,251,143,
-218,190,227,175,167, 96,112,231, 92,188, 65,108,253,156,237, 21, 85,234, 37,205, 77,117, 54,204, 75,162,127,188,109,197,114, 52,
-173,190,178,220,185,255, 0,131,148,235,130,242,141, 38,152,219,246,149, 21,117,198, 37, 41,160,227, 97,192,213, 50, 76,191, 5,
- 44,199,113,212,227,232,226,211,100, 21, 21,169,244,186, 61,249, 82, 97,202,109,126,252,241,169,187, 81,118,165, 40,183,173,245,
- 24,119, 77,250, 28,149, 70,101, 47, 81,162,201,144, 35, 61, 61,165, 56, 94,122, 73,102, 57,144,174,112,155,149,235,194,253, 54,
-254,147, 62, 77,127,114,247, 1, 75,185,109,201,150, 53,252,136,169,180, 27, 69,243,183,234,190,107,183,181, 30,208,169,151,173,
-119, 21, 76,139, 79, 23, 21, 86,150,196,154,122,162,203,114,155, 49,212, 72,121,217, 74, 76,164, 52,251,165,194,237,235, 26,209,
-179,173,109,147,172, 76,141, 81,133,182, 87,238,208, 87, 46,106,213,219, 71,163, 71,122,208,188,167,211, 39,166, 53,106,131, 47,
-109,107,104,172, 50,153,222,250,242,158,167, 46,147, 80, 97,184,166, 59, 47,172,204, 15, 66, 37, 60, 57, 12,220,152,228,168,144,
- 77, 35, 16,197,159, 68,106,161, 88,234,102,104,191,104, 88, 1,114, 84,173,192,114,193,114,237, 84,161,152, 32, 33, 64,176, 2,
-228,155,141,128, 13,233,248,131,216, 12,110,107,245,216,236,216,210,174,155,102, 19, 51, 24,254, 12, 74,185,104,144, 74,126,174,
-102,127,139, 76,118,175, 5,151, 65,108,123,159,142,181,183,206, 74,121,146, 94, 82,148, 50, 14,180,215,116,165,219,144, 32,213,
-182,215,234, 10, 53,122,167, 42,135, 42,149,118,221,213, 70,214,169, 21,107,134,188,202,229, 86,106, 18, 4, 96,219,174,148,212,
- 36,135,144,147, 32, 54,202,144, 24,109,164, 55, 29,160,157,199,135,107, 57, 22,193,139,100,166,162,160,236,107, 61,139, 88, 85,
-154, 99,195, 80,113,154, 42,105, 34,162,212,101, 58,174, 69,115, 39,197, 74, 10,206, 14, 19,204,123,235,144, 59,209, 19,116,167,
- 75,115,110,234, 52,115,107,213, 46,219,210,159, 99,220,151,204, 58,236, 73,212,214, 41,117,135,213, 18,124,250, 47,142,152,243,
- 99,207,171, 72, 8,129, 8,201,140,219, 77, 59, 90,111,154, 74,212,166,148,189, 76,174, 26,121,106,106, 29,239, 34, 68, 9, 80,
-110, 46, 9,181,201,219,183, 91,237,190,248, 60,236,234,136, 7,148,183, 95,203, 29, 10,217,141,236,135,113,237,133,155, 34,137,
-104, 94, 55, 7,131, 64,143, 79,110,109, 18,136,236,138, 4,185, 20, 96,229, 38, 91, 17,174, 7,228, 6, 36,186,204,216, 18, 99,
-188,239, 63, 35,146, 34,186,166, 84,235, 74,109,197,229,117,203,231,113,228, 81, 38, 76, 27,115, 80,181,169, 66, 35,130,109, 86,
-161, 91,167,203,170,192,109,238,102,132,198,233, 52, 53, 63, 33,184, 44,146,133,204,125, 1, 82, 99, 70,241, 95,139, 22, 83,173,
- 37,181,115,182,167,188,183, 37,129, 6,159,182,219, 79, 95,118,221,177,236,232, 45,208,224,166,152,212, 39, 19, 54, 68, 95,130,
- 92,184,146,164, 69, 83,145,233,254, 40, 83,113,195,107, 72,113,182, 68,151, 7,140,251,152,109,170, 91,157,184,213,165,133, 85,
- 47,171,178,127, 33,230, 75,114,171,213, 23, 35,250,156,199, 84,159, 15,147, 25,200, 41,229,229,200, 61, 52,228,156, 45, 83, 33,
- 46,213, 9, 12,109,184,184, 98,214, 61, 46, 54,177,183, 93,246,239,141,118,204, 17,118,208, 89,135, 93,192, 23,247,125,248,187,
-241, 61,191, 16,171, 20,120, 91, 43,100, 59, 38, 45, 50,223,155,227,110,163,143,165,182,103,212,183, 14, 41,104,204,160,206,247,
- 98, 91,122,157, 79, 90, 99, 41,149, 50,183, 97,190,216,132,184, 46, 57, 2, 52, 39,156,210, 5, 41, 40, 66,220, 89, 66, 27,109,
- 42, 90,220, 95,192,219,105, 72,202,150,226,212,112,218, 7, 82, 73, 32, 0, 59,247,214,204, 79,218,105, 60, 77, 67,171,238, 54,
-206,186,245, 31,112, 40,173, 83,169, 53,218, 12, 24,116,183,153,221, 11,113,130,220, 51,122, 91, 76, 85, 22,150, 26, 76, 26,164,
-146,195, 50, 28, 10, 83,241,203,235,111,199,134,228, 45,102,150, 23,179, 43,113,174,103,163, 78,220,186,172, 10, 83, 3,192,117,
-104,185,234,127,195, 25,237, 41, 32,164,174, 53,175, 72, 83, 84,104,143,114, 21,146,164,150,212, 20,190,185,198, 4,179, 46,173,
-203, 50,156,190, 58,121,100, 74, 87,131,103, 86, 97,169,159, 98, 92, 0, 11,184,125,138,176, 91,105, 32,109,107, 6,154,136,106,
-106,106, 25,213, 76,161,250, 16, 54, 3,176, 36,216, 2, 58, 17,126,183, 62,252, 48, 60, 43,109,125, 79,127,119,214,218,118,158,
-185, 44,218, 22,100,195, 85, 21,152, 78,173,176, 24,129, 33,164,215, 46, 72, 51, 89, 87,232,220,113,192,221, 34,148,242, 50,174,
-121,115,101, 55,205, 29,104,115, 82, 78,211, 25,177, 59, 3,102,236, 21,187, 50,139,108,185, 46,165, 62,173, 33,153, 53,170,245,
- 73, 17,145, 54,114,162,180, 89,135, 17,150,162,180,148, 67,165,176,133, 61,224,176, 57,202, 21, 37,197, 41,197,149,100, 62,122,
-131,113, 6,106,185,165, 96,104,175,236,208, 11, 33, 34,197,137,182,166, 35,168,189,128, 0,244, 85, 23,220,156, 61, 80,210,154,
-104,136,127,239, 28,220,251,189, 7,243, 39,212,156, 45, 45, 45, 45, 48,227,119, 11, 95, 8, 4, 16, 70, 65,232, 65,215,221, 45,
- 12, 12, 83, 67, 45, 53,146,219,104, 65, 61,202, 82, 1, 63,128,213, 77, 45, 45, 12, 12, 51,123,215,177,246, 78,250, 90,142,219,
- 55,132, 15, 17, 77,169, 82, 41, 53, 88,229, 45, 85, 40,211,185, 57, 19, 46,159, 36,164,248,107,198, 2,208,160,166,221, 72,229,
-113, 10, 24,199, 21, 55, 95,128,189,229,176,101,201,126,218,136,213,251, 65, 75,139, 49,164, 82,249, 99, 86, 27,103, 36,161, 50,
-233, 82, 22, 57,221, 9,192,203, 14, 59,205,140,242,163, 60,162, 65,250,242,180, 33,192, 82,180,165, 96,247, 10, 0,143,219,170,
-147,196,127, 5, 56, 23,196,226,149, 89,229, 28,148,121,204, 74, 17, 43,169, 25, 98,168,208, 62,202, 73,169, 94, 41,209,127, 84,
- 75, 27, 50, 11,136,217, 1, 55,183,188, 54,241,191,143, 60, 47, 87,165,200,171, 99,172,201,165,114,239, 65, 86,173, 45, 54,179,
-246,158, 61, 46,146,192,237,250,198, 41, 21, 92,216,200,174, 64,180, 88,213,177,251,198,219,222, 2,182,186,252, 11, 10,228,255,
- 0,246, 90,178, 91,207,151,233,189,211,147, 31, 62,108,117,239,167,207,108,248, 36,222, 91,238,100,115, 87,165,127, 3,105, 10,
-113, 62, 60,170,176,241,106, 37,172,142,111,119,166, 48,172,135, 49,156,120,203,100, 12,103,174, 48,100, 58,105,148,245, 30, 99,
- 13,130,123,231,195, 26, 33,168,236, 50, 48,211, 77,182, 63,217, 72, 31,208, 53, 83,100,223, 67,239, 15,232,107, 82,167, 52,206,
-115, 28,238,154, 50, 15,179,179, 69, 4,111, 99,246,100,120, 99, 18,149, 61,249,111, 17,244, 97,139,115, 58,250, 99,248,133, 95,
- 67, 37, 46, 85,146,229,217, 29, 76,128,143,104, 85,150,162, 68,184,251, 81,164,210, 24,131, 14,220,200,229, 95,240,156,107,150,
-193,112,227,103,236,125, 9,184, 52,136,161,218,131,220,143, 84,106,146,130, 29,168, 84,101, 37, 56, 15, 74,120, 32, 14, 80, 10,
-130, 27, 64, 13,182, 9, 8, 72,201, 39,100,244,180,181,212,185, 94, 87,151,100,153,125, 38, 85,148,209, 71,151,101,180, 40, 35,
-134, 24,148, 36,113,160,232, 21, 70,221,110, 73,234,204, 75, 49, 36,147,142, 85,205,115, 92,203, 59,204,106,243,108,222,182, 76,
-199, 50,175,115, 36,211,204,197,228,145,207, 82,204,119,233, 96, 7, 69, 80, 21, 64, 0, 0,180,180,180,181,191,134,252, 45, 45,
- 45, 45, 12, 12, 45, 45, 45, 45, 12, 12, 45, 45, 45, 45, 12, 12, 45, 45, 45, 45, 12, 12,104, 15, 16,151, 95, 24, 54,239, 17,123,
- 83,103,109, 12, 84,212, 54, 75,118, 69,182, 47, 27,216,219,148, 90,131,187, 24,189,180,184,101, 92,219,132, 23, 42, 76, 82, 37,
-139,234,202,151, 77,160,210,125,241,138,135,213,181, 58,116,137,140,248, 9, 90, 64,231,117, 43,136,239,106,117,199, 89,185,105,
-117, 10, 52,219, 42, 68,189,220,218,235, 50,177, 79,135,177,151,213,106,118,216, 64,186,248,146,182,109, 10,197, 94,196,168,220,
- 27, 33, 79,182,247, 3,109, 33,236,132,171,166,163, 88,171, 53,117,221,106,132,229, 62, 29, 72,212, 41,241, 36, 73,106, 28,131,
- 84,132, 47, 28,201, 10,199,108,140,227, 84, 76, 88,197, 69, 69,150,202,143,115,203,215,203,250,134,165, 20, 60, 69, 77, 73, 4,
-113, 75,195,212, 85,111, 18,196, 57,143, 18,150,102,142, 70, 98,238, 24, 50,182,184,244, 70,234, 2,130, 99, 89, 13,218, 73,249,
-209, 44,195,134, 42,235,106, 36,154, 46, 37,175,163,142, 87,148,152,210,102, 8,171, 36,106,161, 35, 42,200,203,203,148, 73, 42,
- 49, 44, 87,154,209,139, 36,116,252,158, 18,111, 54,228,113,174,250,120,178,217,207,122,222, 77,206,102,216,218,235, 50,169,182,
-183,141, 11, 96,170,118,165,187, 86,174, 81, 46, 93,174,102,187,109,151, 87,181,116,241,125,223,117,200,235,187,229, 59, 34,206,
-174, 87,232,109, 83,149, 52, 24,150,188,232,144,226,189,121,221,222, 37,189,160,182,229,237,191,208,108, 59, 58,250,169,203,183,
-173,190, 38,157,179,108,216,155, 3, 85,170, 88,180,107, 78,206,216,154,213,197,195,166,226,216,251,164,154, 35,177,247, 99,117,
- 46, 45,225,139,109,211,166, 90,113,234, 19,223, 67, 85,233,113, 87,111, 66, 52,228,205,149,220, 51, 22, 58,149,204, 89, 65, 80,
- 24, 4,167,168, 30,131,211, 95, 12, 72,196,133, 22, 91, 42, 29, 1,229, 25, 3,211, 75,197,197, 20,136,176,163,240,229, 36,235,
- 18,176, 33,145, 44,210, 60, 84,241,180,133, 86, 48,170, 73,131,152, 2, 42,144,206,124,197, 76,130, 93,105,120, 70,177,218,103,
-143,138, 43, 96,121, 93, 72, 43, 36,132,172,105, 45, 76,169, 24,102,149,157,128, 21, 28,178,100,103, 82,136, 60,129,132, 70, 29,
- 28,224,214,249,226, 54,181, 83,222,219, 55,136, 39, 43, 85,241,100, 94,246,107, 27,119,127, 86,246,245,141,190,145,120, 91, 23,
-102,204,109,181,247, 91,109,168,212,184, 17,169,213,150, 40,215,245,201,118,208,253,234, 19, 64,161,116, 5, 67,154,165,207,141,
- 37, 70, 41, 62,217,106,175, 29, 60,104,113, 79, 93,164, 80,248, 84,226,128,108,102,199,212,235,214, 38,211,193,135,178, 27,169,
- 46,147,113, 46, 44,255, 0,115,185,183, 61, 15,199,182, 20,196,245, 87, 38,211,216, 92, 23,154, 60,130,143, 6,156,148,254,148,
-200,113,217,206, 33,150,155, 57, 67,105, 73,237,144, 49,211,211, 67,187, 77,128,242,138,221,136,195,139, 61,212,180, 5, 19,247,
-157,111,240,175, 28,175, 11,103,243,113, 12, 25, 5, 53, 85, 91, 66,177, 70,164,152,227,133,180, 34, 75, 44,105, 26,133, 87,155,
- 75, 19,164, 5, 65, 35,170, 0,166,216,110,227, 15, 15,159,139,248,110, 14, 25,168,226, 74,186, 58, 36,153,165,149,192, 89,101,
-157, 4,143, 36, 48,202,242,146,204,144,234, 80, 53, 18,206, 99,141,156,150, 92,126,116,252, 63,207,246,190,240,179,111, 84, 45,
-109,128,218, 78, 44,118,210,133, 86,172, 61, 95,169,195,163,240,195,113, 77,114,125, 93,248,145, 32,174,108,185,213,189,175,149,
- 33,245,136,112, 98,182,132,169,210,134,210,214, 16,148,229, 89,216, 95,229,123,244,129, 63,242,126, 52, 63,251,173,204,255, 0,
-254, 61,169,231,253, 81, 76,255, 0,200, 99,127,246, 73,254,173, 47,170, 41,159,249, 12,111,254,201, 63,213,169,173, 79,140,244,
-149,147,203, 85, 89,225,206, 77, 85, 85, 49,212,242, 73, 10,188,142,118,221,157,162, 44,199,110,164,147,211,211, 16, 58, 95, 2,
-107,104,105,226,164,162,241, 71, 60,163,164,128,105, 72,162,157,227,141, 23,246, 81, 18, 80,170, 58,236, 0, 27,226, 37,155,115,
-253,212,126, 49,125,153,188,113,237,174,247,198,222,153, 59,193, 46,175, 96, 72,219,250, 22,228,109,202,182,202,225,187,172,138,
- 21, 82,137,114,222,246,157,180,203,246,205, 29, 85, 20,205,129, 74,154,216, 8, 67,198, 83,220,180,197, 40, 34, 90,211,174,108,
-123, 29, 56, 93,226,149, 28,122,109, 85,237, 78,219,189,198,219,219,123,106,234,245,201,187,145,114,220,214,181,114,217,129, 10,
-149, 34,223,173, 81,102, 90, 18, 69,110, 36,113, 58,173, 81,126, 98, 97,251,154, 2,223,101, 46, 57, 49, 77,165, 17, 22,226, 63,
- 64, 22, 96,195,143,159, 6, 51, 45,115, 12, 43,145, 0,100,124,245, 69,170, 85, 61,151,140,134,162, 50,135,137, 36,184,148, 36,
- 40,147,243,198,154,161,241,114,174,151, 42,226,204,162,135,135, 40,168,169, 56,157,157,130, 68,186, 35,166,230,211, 71, 75, 40,
- 72,213, 66, 72,165, 35, 14,129,130,132,145,152,182,181, 58,112,239, 63,130,212, 85,153,191, 6,103, 85,252, 79, 95, 95, 91,194,
- 43, 26,151,149,181,201, 87,201,170,146,174, 18,242,179, 23,141,131,202, 81,202,150, 47, 18,162,175, 45,134,178, 91, 28,254, 11,
- 94, 39,235,248,104,231,255, 0,249,185, 70,127,110,177,109,192,143, 34, 93,135,122,196,136,195,210,165, 74,180,238, 40,241,163,
- 71,105,111, 72,145, 33,234, 68,198,217, 97,134, 91, 73, 83,175, 45,197, 37, 41, 74, 65, 82,148,160, 0, 36,235, 46,210, 35, 32,
-131,216,244, 58,169, 35,115, 27,163,129,114,132, 31,220,111,139,166, 68, 18, 35,161, 54, 14, 8,253,226,216,132, 15,176,167,134,
-142, 35,182,159,142,131,114,110,159, 15,251,217,182,150,232,218, 43,214,152,107,251,129,181, 87,213,153, 69,250,202, 85,110,207,
-118, 45, 59,235, 91,142,131, 25,143,127,113,168,178, 84,219, 62, 39,136,180,199,112,165, 36, 33, 68,117, 47,219,205,195, 55, 28,
-251,238, 54, 30,243,225,142, 29, 70,225,177,182, 89, 85,139,166,109,187, 96,220, 82, 40,155,167, 77,220,121,146, 24,110, 13,239,
- 72,138,151, 99, 46,172,220, 26, 44, 70, 24,129,245,108,167, 42,145,159,169,206, 83,113, 11, 78,151, 83, 34,132,192,132,135, 60,
-100,198,101, 46,147,146,224, 64, 11,207,219,162, 84,132,172, 20,173, 41, 82, 79,112,160, 8, 63,113,213,149,152,120,159,153, 87,
-113,173, 39, 27,140,170,149, 43,105, 34, 16,136, 36, 15, 44, 37,116, 73, 27, 19,114,172, 24,164,140, 1, 7,202,108,119,232,106,
-156,179,194, 76,171, 47,224, 42,222, 1,108,226,174, 74, 26,217,140,230,162, 50,144,206,175,174, 41, 20, 11, 43,161, 85,120,148,
-144, 65,212, 46, 54,216,136, 25,208, 61,170, 30,218,237,168,164, 39,110,107,112,119, 42,161, 86,167,180,154,124, 73,123,145,195,
-123,147,175,152, 73, 79, 52,102, 82,236,185, 86,131, 14,213,229, 7, 80,172, 61, 80,106, 99,238,173, 39,196,113,206,163, 77,149,
-151,192,119,180,211,218, 97,189, 44,110, 46,255, 0, 64,220,170, 74,107, 38, 36, 90,246,237,239,133, 26, 85,175, 26,139,111, 48,
-234,221,106,157,101, 88, 47,198,128,235,144, 71,143, 49,200,112, 41, 20,248,116,144,252,135, 28,117,248,190, 58,222, 95,232, 6,
-237, 2,142,250,185,220,129, 29, 74,245,240,211,253, 90, 50, 61, 62, 20, 79,251,222, 43, 45, 99,205, 8, 0,254, 56,212,132,120,
-202,153,122,212, 79,195, 92, 13,149,240,246,109, 84,165, 90,170, 40,213,156,106,234, 81, 86, 56,128,223,205,165,153,208,176, 5,
-209,237, 99, 26, 62, 5,190,100,244,176,113, 87,136, 57,191, 19,100,212,110,174,148,114,202,202,135, 79, 64,238,210,202, 78,215,
- 82,200,169, 32, 82, 66, 58, 94,248,215,190, 20,248,114,178,184, 89,217, 43, 15,102, 44, 56, 70, 37,191,100,208,163,210,163, 45,
-222, 85, 76,168, 74, 82,220,153, 87,173, 84,156, 72, 1,218,172,250,188,153,211, 37, 41, 41, 74, 21, 34,123,133,180, 33, 28,168,
- 78,200,105,105,106,151,168,168,158,174,121,234,170,101,105,234, 42, 93,164,145,216,221,157,220,150,102, 98,119, 44,204, 73, 39,
-185, 56,189,233,169,169,232,233,169,232,233, 97, 90,122, 90, 84, 88,227,141, 5,149, 35, 69, 10,136,160,108, 21, 84, 0, 7, 96,
- 48,180,180,180,180,142, 23,194,210,210,210,208,192,194,210,210,210,208,192,194,210,210,210,208,192,194,210,210,210,208,192,194,
-210,210,210,208,192,194,210,210,210,208,192,194,210,210,210,208,192,194,214, 53,117,217,246,213,239, 67,171,219,183, 69, 34, 21,
- 94,149, 91,165, 79,163, 84, 24,146,195,107,113,112, 42,113, 93,135, 45,182, 95, 41,231,142,178,203,206,114,173, 5, 42, 66,136,
- 82, 72, 80, 7, 89, 46,150,178, 24,169, 5, 77,136,238, 48, 8, 7, 98, 46, 49,196,171,235,133,221,241,219,202,252,170, 5, 5,
-186,133,255, 0,110, 54,227,142, 91,183, 24,180, 43, 87, 5, 89,218, 66,156, 34, 28, 91,130,109, 22,174,210, 93,171,176,128, 27,
-113,199, 24,105,215,249, 3,170, 47, 40,169,247, 49, 56,124, 52,111,189,235, 81,137, 67,173, 91, 85,184,244, 57,175, 52,212,250,
-127,240, 58,177,105,211,231, 52,181, 0, 89,174,220, 21,122,163,202, 77, 11,186,164,199, 97, 13, 46, 66, 17,224,173,197,178,183,
- 24,123,188, 58, 90,146,167, 20, 85,172, 74,141, 2, 59,168,182,162, 91,115,107, 92,168, 54,223,184,232,119,216, 13,176,222,114,
-248,203, 92, 57, 11,126,155,126, 7,249,225,157,217,141,156,160,236,245,178,138, 85, 60, 53, 50,183, 53, 12, 57, 94,173,134, 82,
-202,230,190,210, 57, 90,139, 21,176, 63,193,105, 44, 36,169, 17,217, 29, 0, 37,106,202,214,163,167,139, 75, 75, 81,233,166,150,
-162, 87,154,103, 50, 73, 33,185, 39,231, 96, 58, 0, 54, 3, 97,182, 55,149, 85, 20, 42,139, 42,244,194,210,210,210,210, 88, 54,
- 22,150,150,150,134, 6, 32,111,253,251,111,253, 25,127,246,206,255, 0,117, 13, 84, 31, 77,167, 61,189,153,157,251,127,142,111,
-251,168,234, 6,201, 25, 61, 71, 79,216,116, 66, 7, 92,227,160,237,253, 29,191, 61,180,202,213,149, 2,195, 94,231,220,191,150,
- 52,249,178,126,215,224, 63, 44, 79, 25, 63, 77,151, 39,255, 0, 6,119,218,127,150,103,111,251, 41,107,223,247,236, 95,244,103,
-255, 0,219, 47,253,212,245, 4, 4, 2, 7, 95, 63, 47,223,170,169, 25, 61,186,122,250, 31, 81,243,210,126,219, 83,255, 0, 19,
-240, 95,203, 24,230,201,127,181,183,192, 98,119,163,233,176,103, 24,246,104, 30,163,167,248,229,121,231, 24,255, 0, 53, 62,250,
-168, 62,154,225, 35,175,179, 71, 31, 47,229,149,254,234,154,130, 42, 65,207, 67,215,212,255, 0, 96,209, 9,238, 1, 57,207, 66,
-113,249,198,136,213,245, 67, 97, 37,143,253, 43,249, 99, 60,217, 45,187,126, 3,242,196,238, 7,211, 87,201,199,247, 52,251,255,
- 0,207, 39,240,255, 0,146,174,190,171,233,171,114,130,127,185,167,159,151,242,200,255, 0,117, 93, 65, 69, 9,235,159,151, 79,
-207,231,190,171, 4,115, 15,151,207,215,229,233,211, 26, 76,230, 21,118, 63, 93,254, 85,254,156, 37,237, 18,245,215,248, 15,203,
- 19,165, 79,211, 89, 73, 4,159,102,170, 83,233,158, 50,135,207,254,106,191, 45, 18,215,211, 80,241, 19,205,253,205, 94, 80,123,
-127,142, 62,115,255, 0,101,109, 65, 56, 67,100,168, 18,128,163,223,185,239,242, 25,237,223, 87, 54,211,203,202, 0, 0,118, 29,
- 49,229,158,131,238,210,103, 49,173, 22,250,254,191,225, 79,233,198, 13, 68,189,155,240, 31,150, 39, 74,159,166,146, 79,127,102,
-191, 47,111,249, 99,122,255, 0,213, 99, 85, 71,211, 69,207,250, 54, 71, 94,199,249, 98,244,199,175,249,172,106, 11,137, 0,145,
-159, 63, 79,199,240,209, 41, 7,203, 0,118, 57,237,143, 77, 96,230, 85,191,241,191,202,159,211,140,123, 76,223,183,248, 15,203,
- 19,158,254,253, 11,254,141,175,251, 98,127,186,206,189,143,166,127,144, 15,247, 54,241,159,249,225,255, 0,186,214,160,208,144,
- 8,234,123,244,199,237,253,218, 36, 39, 29,124,250,119, 29,189,116,145,205, 43,199,251,255, 0,242, 39,187,252, 56,199,180,205,
-109,218,196,123,135,229,137,201,143,166,116, 79,250, 55, 15,111,252,240,187,127,217,107, 94,199,211, 56, 39,191,179,119, 29, 51,
-254,120, 95,111,127,241, 91,233,219, 80,111, 66,135,111, 60,254, 7, 24,209, 8,238,125, 72,239,223, 31,119,231,182,138,115, 90,
-253,254,190,214,255, 0, 10,127, 78, 11,237, 51,116, 50, 88,250,233, 31,150, 39, 26, 62,153,166,112, 71,179,131, 57,237,142, 48,
- 63,221,115, 94,135,211, 49, 57, 0,251, 55,241,156,227,252,112, 51,219,254,171,154,131,194, 82, 70, 48, 64,232, 51,143, 33,242,
-252, 52, 66, 49,158,191, 96,244,255, 0,142,136,115,108,195,114, 42, 46, 7,248, 19,250, 48, 95,107,159,246,255, 0, 5,252,177,
- 56, 65,244,203, 15,159,179,135, 31,245,191,207,255, 0,149,221,122,254,252,175,166,127,185,197,246,143,229,127,219,211,254, 75,
-218,132, 10,112, 10,114,160, 9, 29, 7,168, 61,127,167, 94,243,144, 72,238,122,100,244,207,207, 69,253, 47,152,255, 0,204,127,
-146, 63,233,198, 13, 93, 64,255, 0,121,248, 47,229,137,189,127,126, 89,255, 0, 71, 16,255, 0,239,127,229,235,254,107,186, 95,
-223,150,127,209,197,255, 0,107,255, 0,247, 93,212, 32,130, 70, 78, 83,156,121,142,227,167, 97,235,175,129, 39, 36, 96,158,227,
-228, 15,174,116, 63, 75,230, 63,243, 31,228, 79,233,198, 61,174,163,175, 50,254,235, 47,229,137,191,255, 0,126, 86,112, 79,247,
- 56,187, 99, 63,227,127,235,216,255, 0,154,238,144,250,101,100,228, 15,103, 9,200, 56,255, 0, 59,241,143,159, 95,228,189,168,
- 65, 28, 19,201,158,160, 12,125,189, 71, 93,124,228, 56, 61, 58,142,199,215,215, 67,244,190, 96,127,246,143,242, 39,244,227, 34,
-170,163,188,157, 61,195,242,196,224, 26,250,101, 42,117,105, 66,125,155,238,173, 74, 90, 16,134,216,226,229,114, 31,117,110, 45,
- 45,180,204,120,237,112,184, 87, 34, 67,142,173, 8,109,180, 2,183, 28,113, 40, 64, 42, 80, 26,145,125,139,237, 28,187,106,123,
-107, 97, 92,219,161,195,163, 59, 99,184,215, 61,173, 2,228,186,182,189,141,220, 55,106,172, 25, 85, 68,137, 81,173,154,141,204,
-118,206,154,106, 53,248,244,231,225,154,131,105,167, 50,136,178,214,252, 70,220,146, 35,151,215,249,251,123, 18,120, 79,167,111,
-111, 18,114,247,186,251,163, 49, 85,218,222, 24,163,210,111, 53,194,156,128,245, 62,228,222, 74,163,175, 29,169,183,157, 96,172,
- 9,108, 83,222,131, 80,184,101, 52,174,132,209, 41,225, 89, 75,196, 25,105, 85,110, 39,101, 73,126,161, 41,197,174, 75,239,169,
-114,139,171,241, 63,239,176,162,251,170, 86,121,157, 65, 89,113, 67, 7, 35,169, 4, 18,115, 82,113,247,137,217,238, 79, 87, 22,
- 91,147,230, 34, 26,136,198,185,156, 69, 79, 33, 23,221, 80, 44,145, 56, 6,222, 98,116,157,153,122,110, 71, 99,125, 27, 60, 13,
-161,241, 3, 47,175,226,174, 50,162,122,236,146, 71, 48, 81, 64, 36,150, 14,107, 70,214,150,114,244,239, 20,133,117,222, 36, 93,
- 65,110,172, 77,203, 45,186,186,215,180, 61,151,139, 72, 78,210, 40, 56,230, 50,147,125, 47,149, 37, 77,151, 65,231,254, 5, 97,
- 72, 9,229,201,242,231, 29, 51,240,235, 38,139,199, 80,146,160,145,181,193, 5,104, 75,168,255, 0,223,202, 78, 90, 39,195, 82,
-214, 13,164, 11,120,116,164, 96,142,161, 65, 94,120,215, 37, 97,212,227,199,149, 78, 9,151, 17,105,146, 42, 43,109,228,184,158,
- 66,150,152, 96,162, 49, 81, 60,133,229, 15, 16,124, 93, 73, 25,192,198,117,127,135,119,198,133, 85,181,154, 92,152,232, 50, 28,
-186,224, 45, 77,133,168,134,145, 77,106,160,134,156, 25,228,241,210,136, 43, 91,107, 60,205,168,199, 90, 80, 50,188, 26,248,120,
-191,199, 91,223, 62,222,224, 91,217,168,122, 27,111,255, 0,163,123,205,183,183,173,183,183, 70,215,125, 26,252, 47,211,253,139,
-131,216, 17, 28,143,189,110,104,215, 17,164,174,118, 53,123,111, 17, 95, 80, 78,224,219, 29,102,143,198,144,125,124,131,109, 74,
- 72, 74, 85,145,120,165,105,198, 84,135, 7, 50,109,142,133, 46,164,167, 31,102,112, 78, 53,145,195,226,200, 74,117, 13, 42,195,
- 67, 36,164, 41,197, 27,185, 11, 13, 21, 41, 73,194,147,252, 30, 10, 94, 8, 28,197, 41, 32, 5,103, 39,166,121,115, 2,240,167,
- 70, 20, 80,180,187,134,229,185, 73,145, 29,134,150,242,101, 73,157, 30, 64, 97,134,152, 42,230,117,245, 61, 19,152,140,164, 39,
- 42, 42, 1, 32,105,211,165, 85, 16,235,177,228, 37,200,205, 55, 48,170, 47,130,211,169,144,168,175,186,194,157, 76, 57, 13,129,
-240,203, 11,104,243,140, 39,147,168, 74, 84, 64,202,195,197,222, 56, 99,182,126, 45,113,183,178,209,131, 98, 7, 66,105,253,247,
-233,115,110,128, 3,138,247, 55,240, 35,129, 40,195, 21,225,118,129, 72,107, 19, 85, 94,119, 82,194,219,213, 27,146,171,175, 96,
- 71,152,124, 11,113,237, 58,246,213,110,191,179,158,220,176, 55, 74, 7, 3, 3,126,182, 34,238,121,155,106,229,220,202, 87, 17,
- 78, 89, 19,118,199,113,165,190,239,212,246,205,239,105,183,176,245,193, 6,220,171, 67, 74, 62,167,174,138,129,141, 46,106, 28,
-166,201,143, 6, 89,138,153,124,121, 63, 76,188,131,211,217,192, 8,233,212,113,129,228,124,255, 0,205,115,211, 93,240,187,108,
- 11, 23,121, 44, 27,215,104,183, 62,212,167,238, 22,218,110, 61,183, 91,177,239,203, 66,160,208, 85, 46,224,160, 85, 98, 2,253,
- 61,213,161,121,131, 48, 56,162,244, 73, 72, 34, 68, 57,212,248,242,227, 45,183,153,109, 73,252,231,120,230,246,106,239,183, 6,
- 60, 82, 94,220, 62, 83,108,205,193,221, 91, 81,182, 13,241,179, 87,213,187,104,220, 55, 36,155,231,104,106,242,164, 10, 21, 78,
-166,154, 13, 41,239, 10,232,165,186,219,212,154,235,124,169,228,168,210, 87, 32, 1, 30,100,114,171, 79,131, 60, 72,204,115,136,
- 37,165,205, 43, 2, 87, 83,141, 66, 67, 28, 72,146,161, 61,172,129, 53,165,192,178,216, 50, 16, 84, 54,151,115,201,126, 41,240,
- 67,240,133, 90, 87,229,108, 70, 77, 84,193, 66, 19,169,160,115,246, 86,238, 90, 66,143,111, 41,114, 72,109,181, 29, 64, 44,156,
-255, 0,191, 47,234, 71,247, 56, 71, 65,159,243,192,245,237,255, 0, 37,221,124,254,252,192,255, 0,251,184, 58,127,233,129,251,
-191,146,230,161, 89, 94,176, 47,187, 81,114, 17,117,216,247,149,174, 99,171,195,147,252, 35,181,171,244, 20,198,115,152,128,219,
-235,171,211, 88, 13, 56, 84, 8, 9, 81, 4,144, 64, 7, 88,123, 74, 75,159, 19, 69, 14,164, 21, 0,180, 45, 46, 36, 20,146, 20,
- 9,109, 68, 2, 15,124,246,212,249, 51,218,185, 55,142,181, 92,123,132,103,248, 46, 42, 15,110,150,246, 51, 0,111,208,133,191,
-238,181,241, 56, 81,244,203,137,239,236,225,192, 29,201,226,255, 0,215,254,171,186,248,126,153,120, 29, 15,179,135,175,203,139,
-254,159,143,242, 93,212, 32, 71,158, 48, 9,235,223,204,253,191,118,188,167, 39,161,193,199, 83,242, 36,159,221,165,127, 75,230,
- 63,243, 31,228, 79,233,193,189,170,162,223,222,111,255, 0, 72,252,177, 56, 1,244,203,201, 56, 30,206, 14,191,250, 95,255, 0,
-186,238,190, 43,233,152, 4,128,127,185,195,159, 80, 56,191,234, 62,223,241, 93,212, 32,142,124,128,239,248,116,243,251,245,224,
- 2, 84,115,211, 3,186,122,117, 63,111,200,157, 15,210,249,143,252,199,249, 19,250,113,159,106,159,254, 39,224, 63, 44, 78, 11,
-251,242,241,128,127,185,197,247,127, 43,254,191,183,133,221, 47,239,203,198, 79,253,206, 35,129,231,252,175,186,125,255, 0,226,
-187,211, 80,130, 66, 58,149, 12,115,116, 4,159, 63,159,111,206, 53,240,167,226,206, 58,142,135, 29,189, 58,232,126,151,204,127,
-230, 63,200,159,211,129,237,117, 31,183,248, 47,229,137,190, 15,166, 96, 9, 35,251,156, 36, 99,204,241,125,223,236,255, 0, 21,
-237,123, 31, 76,184, 28,127,220,226,239,156,127,141,247,167,127,249, 47,106, 16, 24,207,151,108,247,244,199, 92,126,124,181,244,
-117,192,232, 61, 63,183,166,135,233,124,199,254, 99,252,145,255, 0, 78, 49,237, 85, 23, 31, 89,248, 47,229,137,191,143,166, 88,
- 79,250, 56,122,245,233,252,175,255, 0,163,252, 87,122,235,233,250,101,100,119,246,112,227, 63,243,191,235,248,127, 37,221, 66,
- 19, 3,190, 50, 71, 94,159,213,159,150,190,247, 32,249,119,193, 25,253,190, 93,244, 63, 75,230, 63,243, 31,228,143,250,112, 61,
-170,163,254, 39,224,191,150, 38,238,126,153,113, 31,232,224, 56,245,254, 87,248,253,159,201,119,166,169, 43,233,153, 17,254,141,
-252,140,227, 63,203, 3, 30, 93,255, 0,205,115, 80,137, 32,156,156, 0, 51,142,224,117,245, 61,123,245,213, 5, 32, 17,128, 51,
-158,253,127, 63,145,172,254,151,204, 44,127,180,111,255, 0, 68,127,211,140,251, 84,255, 0,183,248, 15,203, 19,121, 63, 76,212,
-130,113,236,221, 39, 7, 31,231,129,248,255, 0,201,111, 95, 15,211, 55, 35,183,179,120, 30,153,255, 0, 60, 47,217,254,107,125,
-245, 7,245,128, 51,129,133,119,198, 14, 62,255, 0, 77, 10,172,140,244, 29,122,244,245, 31,111,111,237,209,151, 54,175,239, 83,
-123,255, 0,129, 63,167, 25,246,169,251,191,224, 63, 44, 78, 33, 95, 76,228,167,253, 27,185, 30,191,203, 11,253,214,245, 72,253,
- 51,220, 28,127,115,115, 63,245,194,255, 0,117,175, 77, 65,216,247,233,128,113,149, 30,227, 30,127,111,150,188, 16,112,114, 0,
-207, 92, 14,248,249,244,232, 59,232,227, 53,175, 32, 30,127, 95,240,167,244,224,235, 81, 49, 23, 50,126, 3,242,196,226, 85,244,
-208, 57,127,209,181,145,235,252,176,255, 0,221,103, 84,207,211, 67, 35,253, 27, 63,135, 24,191,238,177,168, 57, 45, 35, 56,193,
-193, 29,252,191, 31, 95,234,208,235, 73, 57,230, 30,125,255, 0,163, 74, 46,103, 90,127,223,127,149, 63,167, 0,212,205,183,155,
-175,184,126, 88,156,137,250,105, 24,200,254,230,199,108, 99,252,113,123,255, 0,217, 99, 84,213,244,210,249,127,209,175,159,250,
-227,126,239,228,175,168, 52, 41, 61, 72, 62, 89,255, 0,142,168, 41, 56, 62,164,103, 31,126, 58,232,227, 50,173,255, 0,141,127,
-251, 83,250,113,145, 81, 41,232,255, 0,128,252,177, 57,179,244,211,113,219,217,173,147,233,252,177,255, 0,221, 95, 94, 15,211,
- 80,198,127,238,106,246,242,254, 88,253,127,254,213,181, 6, 5,142,164,147,229,220,116,200,251, 71, 97,211, 84,150, 6, 51,159,
-179,211,246,104,227, 48,172,218,243, 94,253,244,175,244,227, 62,209, 55,237,254, 3,242,196,231,207,211, 85, 32,103,251,154,121,
-199,252,242,113,255, 0,229, 87, 84,149,244,214, 72,255, 0, 70,150, 71,254,153, 61,191,236,169,168, 45,169, 56,237,219,247,143,
- 95,191, 67, 44,117, 35, 3,175, 92,104,195, 48,171,190,242,237,255, 0, 74,254, 88, 56,158, 75,253,187,253,195,221,238,196,233,
-215,244,215,249, 15,254, 13, 12,143, 95,229,149,251,191,146,159,174,168, 31,166,202, 57,185, 71,179, 56,159, 60,255, 0, 44,190,
-159,179,133, 62,250,130,147,205,243,116, 35,207,203,167,159, 76,103,203,250,244, 42,153, 60,221,200, 3,183,150, 62,206,158,154,
- 88, 86,212,216,125,109,255, 0,237, 95,203, 6,231, 73,183,159,240, 24,157,183,247,236,196,140,143,102,104,199,110,188,102,224,
-231,211, 31,201, 71, 94, 15,211,105,229,239,236,204,199,253,115,191,221, 71, 80, 71, 82, 0,206, 51,208,227,167, 94,222,154, 25,
-105, 72, 7, 35,174,124,242,122,252,243,246,104,235, 89, 57, 27,203,191,192,126, 88,199, 58, 77,183,189,253,195, 19,188,254,253,
-183,254,140,191,251,103,127,186,134,150,160,120, 80, 60,142, 63,111,239,210,209,253,170,163,254, 39,224,191,150, 13,205,147,246,
-191, 1,249, 99,234, 65, 0, 3,249,235,162,146, 15, 64,123,244, 31,156,106,138, 70, 79,203,207,243,246,232,132, 12,159,179,175,
-223,157,105, 22,185,191, 75,116,194,120,174, 1, 61,189,113,249,249,106,176, 0, 96,121,121,254,253, 83, 70,122,244,200, 36, 12,
-231,183,231, 58,174,144, 14,115,158,131, 61, 52, 76, 12,123, 74, 74, 73,234, 49,249,252, 52, 66, 7, 76,250,254,204,106,130, 50,
- 71, 92,224,158,153,235,223,231,231,253,154, 41,180,246, 7,203,169,252,253,186, 65,141,205,241,131,176,191,166, 43,163, 29,135,
-197,143, 79,159,217,162,144,140,142,131, 3,207,237,253,231, 84, 17,208,244, 3,175,125, 20,140,253,223,191, 68, 98, 69,192,194,
- 36, 91,248,227,210, 7, 98, 79, 83,230,122,244,253,253,180, 72,193, 3,207,211,167,159,110,218,164,145,147,246,117,209, 9,237,
-140,128, 1,200,251, 71,223,219, 73, 49,185,233,108, 99, 21, 18, 0,193,193,235,223, 61,241,233,162, 83,140, 14,157, 60,134,124,
-191,118,168,164,115, 31,219,247,116,237,162, 80,158,163,167, 65,235,162,147, 97,115,219, 4,244, 23,177,255, 0,199,207,250, 98,
-170, 64,242, 3,229,162, 82, 9,192,249,119,249,252,245,118,183, 45,171,130,238,172, 83,173,203, 86,135, 85,184,238, 26,180,164,
-196,164, 80,104, 52,233,117,122,213, 90, 99,129,106, 68, 58,109, 46,158,203,143,206,146,164,161,100, 33,180, 40,242,182,165, 16,
- 2, 73,213,222,187, 99, 94,182,156,151, 98, 93, 54,117,215,108, 74, 96,148, 63, 30,227,182,235,180, 39, 90, 90, 78, 20, 28, 77,
- 82,158,215, 41,230, 7, 90,109, 60, 43, 32,137,165, 81, 43, 11,133, 36,106,181,237,123,117,183,107,224,250, 36,229,180,162, 54,
- 49, 41,179, 56, 83,164, 27, 94,197,173,164, 27, 88,218,247,182,248,198, 80,144,123,128, 8,207, 65,220,156,249,122,157, 86, 70,
- 62, 33,143,179,215,239,252, 63,110,188, 32, 18, 50,217, 14, 1,220,161, 73,115,211,185, 65, 56,237,162, 27, 73, 86, 58,128,125,
- 7,127, 95, 61,101,136,223,126,191,127,195, 26,250,131, 11,131,127,120,239,138,168, 73, 56,233,212, 12, 30,190, 64,234,179,125,
- 79,108,128, 65, 3,191,221,251, 53,245, 40,236, 58,103,190,122,253,191,187, 85,144,140, 43,169, 3,207,228,114, 15, 95,217,164,
-240, 49, 84, 39, 42,193,232, 59,129,129,148,140,118,207,225,175, 74,108,245, 4,242,143, 47, 81,233,175,160,149,103, 24, 10,245,
- 30, 99,243,231,175, 67,174, 2,178, 51,230, 48,123,121,159,195,246,235, 24,199,195,174, 40,165, 56,206, 85,212,156,142,157,254,
-204,246,215,148,164, 2, 50,163,223,238,235,242,243, 58,172,224,201, 29,122,122,142,157, 51,140,159,151, 93, 92,168,148, 58,189,
-195, 84,167, 81, 40,116,202,141,102,177, 88,152,213, 58,145, 73,165, 65,153, 85,171, 85,170, 18, 20, 16,196, 10, 77, 42, 3, 46,
- 72,169,206, 90,136, 8,101,134,214,226,179,209, 58,195, 50,162,150,118, 10,171,185, 39, 96, 48, 91,133, 2,231, 97,181,254, 54,
-183,239,197,153, 93,240, 57, 64, 30,106, 3,174, 51,128, 61, 53,233, 88, 67, 69,215, 84, 27,101, 56,241, 29, 89, 8,105, 40,238,
-165, 21,172,129,140,103, 82, 39,224,247,232,242,113, 5,186, 44,209,175,126, 45,110,120,252, 41,109,245, 65, 45, 76, 98,212,168,
-192,137,115,111,205,126, 34,210,167, 80,219, 22, 95,189, 38, 13,132,167, 80,143,133, 85,151,221,152, 18,178, 69, 47,152, 99, 82,
- 25,217,126, 4,125,158,220, 32, 70,111,248,177,225,226,214,187,174,202, 84,112,204,221,208,222,132,198,220,171,212,205,121,104,
- 12, 72,241,238, 54,151, 77,163,211,164, 45, 56,103,220,169,241,154,109, 74,229, 79, 82, 64,134,103, 28,115,148,101,101,145, 24,
-213,204,187, 89, 14,215,247,144, 9,248, 27, 91,212,226,216,224,191, 5,184,251,142, 12,111,150,229, 38,134,142, 80, 8,158,164,
- 20, 4, 18, 0,100,140,217,216, 94,195,204, 99,185,176, 23, 36, 3,170,254,203, 46, 26, 46, 77,165,224, 39,102,233,180,203, 98,
-123, 55, 94,240,135,247,210,247,144,229, 50, 82, 28,149, 42,249, 17,191,130, 80, 39,169,184,229, 79,197,133, 96,194,183,154,100,
-100, 99,197,117, 73, 37, 43, 81, 86,234, 87,236,203,238,132,204, 33, 46,221,170, 32,138,139, 45, 45,243, 6, 98, 99, 20,165,137,
-143,123,195,179, 60, 34, 27, 65,240,249, 15, 57, 79, 42,214, 17,130, 72, 35, 99,155,223, 42,234,221,136,202,101,194,143, 66,171,
-184,105,112,211, 76, 5,132,211,101,181, 28,123,180,100, 71, 82, 83,238,168, 82, 80,227, 9, 67, 73, 8, 14, 54,132, 97,180, 20,
-130, 37, 39,125, 42,234,171,170,153, 34,124,151,131,206,170, 19, 32, 54, 57,101,207,141,200,137,172, 48, 57,190, 37, 8,222, 27,
-165, 60,170, 39, 42, 9, 10,109, 42, 35,158,243, 89,104,243,106,250,186,249, 38,156,203, 86,236,231,104,202,139,157,149, 87, 85,
-236, 1, 10,190,110,130,198,230,248,244,231,129,168,248,183,129,184,107, 38,225,202, 14, 30,163,155, 47,200,105, 99, 77, 38, 89,
-121,146,114,215, 68,146, 59, 8,236,178, 22, 87,121, 1, 82, 69,181, 95, 73, 7, 26, 81, 90,169, 61, 79,168,208,167,204, 91, 44,
-184,170,148,168, 83, 66, 11,141, 70,124, 78,167, 84, 35, 51, 29,198, 66,130, 11, 8,121,168,165, 36,146,181, 41, 14, 44, 21, 40,
-224, 88,100, 92,178, 84,252, 41, 12, 58,134,169,236,223, 20, 56, 17, 31, 91,158, 31,213,209,106, 45, 85,162,212, 38, 53,239, 67,
-159,220,194,222,100,171, 9, 37, 41,111, 45,133, 37,120,214,238,238, 21,145,110,110,237, 53,104,141, 18,147, 65,187,160,213,226,
- 84,226, 75, 44, 52,154, 77, 70,163,111,200,247,152,240,235,208,227,114,167,192,113, 14, 20, 25, 44,164, 59, 28,191,226, 56,135,
-145,206,141,115, 74,240, 69, 70,139, 58,226, 93, 94,157, 42,151, 38,217,171,209,163,191, 18, 75, 72, 91,241,167,211,107,148, 86,
-235, 13,120,141,225, 15,143,117,147,200,218,176,158,118,242,164,158, 78,241, 42,202,121,105,230, 69, 46, 37,138, 83,229, 96, 54,
- 39, 96, 53, 11, 27, 48,191,217, 61,150,247, 32, 99,163,184, 11, 53,202,248,178,154, 72,228,131,244,126,105, 66,170,147,211, 72,
-202,218, 17,229, 26, 94, 18, 8, 15, 27, 23,116, 14,187, 34, 6, 89, 17, 67,170, 54,206, 82,238,185,177,160,198, 76,229,153, 13,
-208,110, 74, 4,198,235, 44, 56,149,128, 69,106, 35, 41,155, 33, 8,201, 46, 37,233,173,153, 1,226, 91, 60,203, 41, 39,176,223,
-221,171,219,215,238, 40,178, 42,213,233, 10,163,209,233,181, 8,142, 38,114, 84,251,110,185, 54, 35,209, 31, 13,197, 91,138, 79,
-143,206,150,212, 57,242,124, 38,229, 16, 84, 73,240,213,204, 75, 50,143, 87,173, 84,164, 89, 20,181,168, 46,225,151, 26,159, 71,
-109, 65, 14,184,229,111,223,226,166, 53, 41,224,179,148, 64,114, 79,132, 90,113, 73,200,104,184,146,174,118,146, 79,101,175,201,
-205,219,204,155,102,128,180, 26,125, 18, 28,150, 98,195,105, 10, 14, 85, 92,139, 49, 44, 74,113, 69,160, 66,149, 34, 98, 36, 58,
- 20, 83,202,178,235,104, 56, 3, 26,125,225,170,120,167,231,215, 85,141,112,211,105, 68, 66,108, 25,200, 98, 1, 35,204, 2,129,
-118, 32,139,221, 73,211,171, 88,164, 60,112,168,124,170,167, 38,200,178,103, 72, 51, 44,237,231,149,166, 81,253,213, 50, 10, 79,
-172, 10, 67, 42,201, 44,175, 42,128,126,168, 90, 67,176, 82, 27, 44,157,124, 91, 86,163,172,210, 40,209, 33, 66,112,182,149, 48,
-228,143, 4,186,243,202,144,134,136, 71, 50, 71, 59,195,196, 43,253, 81,128,121,143, 54, 9,213, 9,123,191, 49,153,245, 55, 35,
-206,109,168,116,233,113, 41,236,173,165,115,203,126,108,150, 24,126, 66, 34,165,149,164, 32, 41,215,163,182,233, 78, 22,166,155,
- 90,143, 48,108,145,165, 85, 75,154, 37, 70,161, 46,164,219,243,155,165,183, 95,162, 83, 41,204,184,183, 31,120, 38, 3,190, 45,
-101,232,203,231, 40, 76,115, 83, 50,127, 74, 20,164,143,112, 40,242, 9, 31, 98, 92, 79, 79,129, 78,140,203, 11,121,138,245, 72,
-215,101,185, 49,196, 39,158, 19, 18, 21, 36,165,158, 84,115,163,196,105,234,116,116, 44,252, 60,143,172,114,249,234,105,237,243,
-234, 88,226,151,149, 96, 84, 34, 93, 22,215, 29,128, 4, 3,181,141,183,216,168,177,185,166,163,240,166,136, 67, 12,245,145, 53,
- 84,238, 0,153,166,177, 96,204, 18, 87, 55,144,155,186, 70,146, 43, 45,216,107,212, 1, 59, 91,122,169, 91,167, 70,186,227,184,
-197,203, 10,131, 87,163,189, 10, 69, 85,214,171,148, 90, 69,113,166, 35, 70, 56,136,137, 81,234,204,184,151,100,173,214,164,200,
-104, 6,254, 24,254, 26,193, 30, 33,214,177,238,127, 2, 62,206, 30, 34,208,151,119,167,131, 14, 31,170, 51,171, 76, 70,150,170,
-189, 2,208,133,100, 93, 16,152,156,135, 92, 15,166,232,176, 13, 54, 74,101,165,135, 57,220, 33, 69, 97,249, 39,169,192, 0, 26,
- 93,210, 95,153, 46,142,195, 48,212,207,240,138, 76,170,188,247,144, 86,212,166, 41,209, 88, 17,109,147,200,217,240, 91,113,230,
- 10, 86,128,162,166, 98,165, 96, 97,201, 9, 78,178,250, 69, 65,249,177,152,150,228,245, 53, 78,141,239,234,159, 40,211,220,125,
-234,189,102,123,128,204,166,210,121, 79, 70,152, 89, 40,114, 90,121,185, 11, 65,166,199,232,221,121,189,200,179, 42,152, 93, 92,
- 75,230,181,135,235, 18,204, 69,152,107,221, 75, 2, 72,234, 69,174, 46, 14, 32, 60, 65,225, 38, 67, 80,102,246,156,185, 96,142,
- 64,186, 65, 26,216, 43, 6, 40, 6,149,221,157,212, 46,150, 93, 69, 68,110,116,131, 41,199, 40, 55,231,232,175,112, 39,186, 52,
-233,149,158, 27,247,143,120, 56,116,174,173,153, 18, 34,210,174, 57,144,247,130,194,102, 74,185,149, 26, 52,200, 23, 10,162, 86,
- 96,176, 86,182,130,146,213, 93,197,161,183, 1, 8, 39,149, 38, 53, 60,110,123, 1,189,162, 92, 20, 64,171,222, 82,246,226, 47,
- 16,123, 65, 75, 15, 72,127,116,120,126, 77, 82,239, 20,202,115, 40, 46,174,117,219,183,111, 65, 69,126,215, 97, 8,232,243,169,
-139, 58, 27, 74, 74,185,166,114,142, 99,250, 18,209, 46,181,183,224, 68,113,102, 52,106,107,177, 37,200, 76, 89,105,113,113,218,
- 56,118, 12, 55,101, 50, 10,230, 23, 86, 85, 37,215,208, 22,167,192, 67, 77,169, 69,206,125,108,205,177,123,137, 81,132,228, 77,
-240,230, 79,154,105,244,170, 68,172, 70,170, 45, 44,243, 23,229,205,128,165,133,198, 42, 67,110, 60,176,176,144,220, 86,155, 75,
-156,175,184, 82, 37,249,111, 22, 85, 64,218, 42, 36, 46,150,235,171, 86,247,176,186,185, 5,172, 47,228,140,198, 46, 44, 72,234,
-121,147,139, 60, 39, 92,176,153,168,117, 68,140,198,218, 71,144, 3, 98,138, 64,212,159,103, 84,140,214, 0, 32, 12, 28,131,124,
-126, 50,105,198, 21,146, 20, 2,150,143,132,228, 7, 26, 81,109,214,212, 65,248, 92, 74,194,146,164,156, 20,169, 37, 42, 0,131,
-165,219,161,234, 58, 18, 58,228,124,254, 71, 95,166,111,180,163,216, 17,194, 7, 31,240,238, 45,193,218,248,212,110, 26,248,173,
-144,137, 82,206,229, 89, 52, 54, 25,176,183, 2,186,219, 40,113, 49,183,135,111,169, 74,106, 53, 73,215,223,228, 75,245,122,111,
-187,214,152, 50, 20,235,206, 84, 2, 61,217,127,158,255, 0, 24,156, 20,241, 33,192,134,239,206,217, 30, 38, 54,238,125,139,118,
-182,211,245, 43,118,166,211,159, 90,217,123,137,109, 53, 37,113,155,187,182,234,235,101,180,177,115, 80,148,226, 64,116, 0,220,
-200, 46,171,221,234, 49, 34, 72, 30, 25,177,178,252,214,159, 48,137, 36,141,135,159,161, 6,234, 78,231, 77,251, 48, 0,221, 90,
-199,202,197,117, 32,214,105,170,234, 26,172,186, 65, 29, 84,101, 65, 54, 87,177, 10,215, 32, 13,141,138,150,236, 14,199,245, 75,
-111,141, 87,232, 7, 78,223, 46,186,240,164,147,156, 28, 3,215, 4,145,249,235,175, 68,129,142,189, 7, 76, 99,191,151,125, 32,
- 65, 39, 61, 71, 76, 36,140,103,167,252,116,233,141, 78,248,166, 18, 9,199, 92,122,143, 95,234,239,175,161, 36,250,244,200, 30,
- 93,115,158,191,142,170,121,127,171,248,116,215,196,144, 1,202,147,156,231,167, 92,228,232, 96,111,143,129, 56, 33, 89,201, 25,
-230,243,242,215,164,117, 4,143,135, 25, 61,115,251, 63, 29,125,233,140,254,206,216,252,245,215,209,215,246, 12, 1,220,121,253,
-253, 52, 48, 58,123,176,136,207, 68,245,233,231,142,164,103,246,106,130,219,198, 9,242, 61, 70,124,244, 78, 14, 58,140,121, 2,
- 70, 49,246,252,191,175, 84,207,110,131, 39,246,103, 63,212,127,167, 88, 6,255, 0, 17,140,224, 37,160,224,249,103,215,184,207,
-168,252,247,208,170, 64, 0,231, 36, 18,123,250,252,190, 90,184, 57,205,158,184, 61, 58,231,190,125, 58,121,245,208,238, 32,242,
-231, 4,117,232, 58,231,175,203,236,214, 65,232,122, 99, 32,158,221, 78, 45,197, 1, 39, 32,245, 29, 49,158,152,199,174,188, 20,
-231, 36, 28,121, 28,159,179,207,240,209, 42, 73,234, 20, 7, 79,245,123,146,126,126, 67,174,168,242, 12, 40,100, 99,166, 0,243,
-235,158,231, 75,169,184,235,131,168, 34,219,109,243,243,111,195, 3, 40, 3,212,147,129,248,125,186,160, 70, 70, 63, 35, 70, 41,
- 35, 56, 30,153, 63, 44, 13, 12,180,144, 73, 3,167,246,126,206,186, 81, 79,108, 24,216,116, 23,254, 71, 0,184, 0, 32,116,206,
-122,159,217,215, 31,158,154,162,160, 78, 58,100,103,175,175,221,163, 20,147,230, 7,221,216,158,250, 25, 89,201,230, 56, 39,183,
-207,211, 31,119,244,105, 92, 1,208, 95,113,129, 22,128,114, 64,199,200,249,250,140,104,117, 35,166, 6, 1,239,246,103,200,244,
-209,138,206, 65, 56,207,160,242,208,199,169,200,207, 95, 92, 14,221, 63,118,149, 7,160, 39,167,207, 95,158,248, 54, 5, 87, 76,
-228,103, 25,253,159,187, 66,172,116,206, 15, 78,216,253,164,244,237,211, 70,172,100,142,152,235,220, 30,253,124,255, 0, 62,122,
- 25,196,228,156,100, 1,208,227,182, 79,228,104,248, 50,250, 91,127, 92, 91,215,128,112, 14, 73, 39,167,161, 29,123,232,115,223,
-168,235,158,191,184,104,199, 19,144, 83,211, 62,126,189, 61, 63, 13, 12, 80, 70, 78,114,125, 15,225,223, 58, 89,122, 97, 81,107,
- 3,210,216, 29,105,243, 25,206,133, 90, 72, 39,183,153,251, 62,223,150,116,105, 25,251,186,250,103,228,126, 90, 25,105,206, 73,
-200, 62,126,125, 59,253,250, 85, 79, 91,157,176, 69,216,144,119,183,250, 96, 34, 48,113,165,175,107, 73, 39, 35,175,224, 52,180,
-174, 15,113,220,216,227,234, 49,143,233,209, 40, 24, 3,231,215,243,247,106,128,198, 6, 1, 31, 35,223, 85,211,204, 59,128, 49,
-233,223, 61, 58,233, 18,118, 3,231,221,140,226,178, 60,250,253,223,191, 85,209,220,253,157,189,127, 63,191, 84, 81,143, 33,215,
-204,234,178, 6,122,231,177,237,249,242,254,173, 16,157,137,190, 6, 8, 78,112,112, 70, 7,124,143,196,244,243,233,162, 27,234,
-126,239,234,213, 4,125,189,188,191,126,189, 18, 64, 86, 14, 8, 30,125, 1,207,244,255, 0,102,181,216,133,193, 78,224,142,199,
- 7, 54,115,211, 61, 62,206,158,126, 99, 69,164, 14,128, 16,123, 15,151,236,213,189,146,233, 74, 78, 19,142,153,251,112, 63,171,
- 71, 55,223,162,122,140, 28,224,246,249,233, 34,215,194, 71,174, 43,165, 61, 65, 57,232,123, 99,191,167,237,209, 9, 0,142,169,
-249,103, 39,175,175,217,170, 64, 18, 71,145,233,231,230,123,231,229,170,232,200, 36,116, 29,135,203,168,243, 62,103,182,176, 73,
- 61,123, 96,167, 21,209,156, 1,208, 14,195,241,243,249,104,148, 3,216,156,228,224,103,250,117, 65,160, 72, 29, 58, 3,231,163,
- 16, 58,231,175,203,211,211, 73,191,175,207,108, 99,107,145,181,206, 58,159,236,114,180, 36,215,120,223,178,238,166, 92,121,134,
- 54,178,207,191,175,249, 50,154, 42, 65,101,248,212, 39,104, 52,196,151, 17,213,181, 46,101, 96,132,144, 65,248, 62,103, 82,170,
-147,119, 79,171, 52, 99,214, 12, 27,130, 56,200, 92, 43,154,147, 73,175,197,113, 32,149, 96,181, 85,136,238, 83,215,166,114, 61,
-117, 30,111, 98, 93, 13, 12,206,226,110,249, 80, 74, 93,129,102,217,118,147, 11, 61, 22,147, 89,172,205,170, 73, 66, 84, 58,128,
-180, 66,104, 17,242,215,110, 85, 89, 62, 34, 74, 78, 18,162, 18,178, 78, 2, 72, 24,243,252, 53,207,158, 33,214, 52,188, 67, 60,
- 91,218,146, 56,163, 6,254,160, 73,191,190,242, 16, 55,233,143, 67,190,140,252, 57, 24,240,222, 10,185, 97, 89, 6,113, 87, 87,
- 57, 12, 1, 4, 44,130,152, 2, 8,181,138,211,143,223,140, 91,113,184, 80,224,223,122, 90,127,248,197,225,195,111,141, 78, 74,
- 74, 28,185,236, 6,100,109,189,210,202,149,255, 0,194, 25,155,109, 45,182, 30,116, 14,184,114, 58,193, 35, 36, 29,114,235,126,
- 61,136,232,153, 30,101,195,194, 78,234, 11,142, 74, 18,167, 81,180, 59,192,184, 84, 27,145,224,126, 38,225,219, 27,129, 13, 41,
-129, 85,124,254,171,109, 79,106, 42,220, 56, 5,240, 78, 79, 93,141,126, 51,110,161,151, 93, 72, 82,213,250, 21,147,128,162,159,
-242,172,156,116, 75,192, 96,143,245,128,214,109,101, 34,179,125, 87, 98,219,150,188, 73,117, 58,171,235, 8, 75,113, 88,113,228,
-190,130,160,148, 6,130, 7,194,176,163,212,158,137, 41,207,108,226, 37, 67,197, 89,254, 85, 44,107, 65, 92,242,128,109,202,127,
-172,140,251,130, 53,244,131,234,154, 77,174, 21,133,241,105,113, 79,128,254, 26,113,109, 13, 76,249,182, 65, 22, 83, 80, 16,177,
-174,164, 11, 73, 52,123,127,120,210, 70,162, 57,108,123, 78,146,165,250,169,223, 16,133,191,246,226,251,218,171,186,173, 97,110,
- 77,165,112,216,183,165, 5,229, 49, 86,182,110,106,115,212,202,172, 69, 5, 40, 7, 80,219,163,150,100, 37,129,150,164, 48,167,
- 88,117, 63, 19,110, 40, 29, 97,233,193,243, 24, 29,250,143,184,116,215,232,143,190, 62,204, 45,147,226, 95,110, 34,219, 28, 90,
- 85,225, 64,173,211, 34, 4,217, 87, 45, 7,192,123,116,108, 57, 14, 35,197, 13,193,172,182,131,239, 52,194,172,248,180,249,101,
-232,171,201,194, 80,172, 40,106, 85,157,236, 48,246, 94, 89, 49, 96, 11,150,111, 16, 59,185, 80, 43, 83, 18, 93,168,222, 84,251,
- 54,159, 41,214,155,241, 92, 81,129, 64,166,133,196, 36,117, 74, 67,170,207,108,116,206,173,202, 63, 17, 40,214,142, 55,205,233,
- 13, 21,112,217,227, 87,141,135,185,128, 46, 29, 67,117,210,202, 74,244,212,246,213,142, 20,207,126,143,124, 95, 14,119, 61, 31,
- 6,200, 56,195, 36, 55,104,107, 68,114, 83, 2, 59,199, 46,168,204, 70, 69,177,250,200,100,120,157,124,223, 84, 73,137, 96,225,
-130, 70,121, 22, 8,237,202,133, 96,250, 28,227, 72,168, 32, 0, 58,146,113,140, 31, 63,151,222, 53, 61,230,125,146,190,201, 76,
- 62,208,225,254,252, 87,128,217,112,248,251,193,118,173,197, 4, 39,152,242,173, 11, 29,115,211, 32,117,193,211, 69,186, 94,193,
-159,103, 5,247, 75, 55, 6,222,220,187,247,177,170,142,168,178, 84,212, 27,150,141,124,210, 39, 70, 74,144,228,182,226,199,187,
-233,222, 60, 23, 11, 1,196, 7, 82,242,195,107,113, 42,240,151,142, 83,177, 77,226, 46, 75, 83, 47, 41, 81,193,177, 55,242,216,
- 0, 46, 73,185, 22,183,223,238,190, 25,235,190,143,254, 42,229,177,123, 69, 87, 14,170,171, 21, 80, 22,161, 11, 51, 57, 1, 84,
- 2,160, 93,137, 3,114, 63,142, 35, 1,192, 79,179,155,127,248,252,190,165,208,246,210,151, 26,220,219,219, 90, 68, 49,185,187,
-209,119,179, 45,157,189,219,184,210,112,227,112,228, 57, 29, 33,219,162,244,145, 27,153, 80, 40, 80, 57,165, 61,128,236,151, 33,
-196, 10,146, 38,173,194, 71, 5, 92, 32,251, 61,109,198,127,137, 11, 71,248,111,187,134, 47,186, 92,156, 68, 95,208,233,213, 77,
-203,169,188,166,210,220,230, 45,176,210, 20,198,221, 91, 60,222, 42,147, 78,163,161, 14,132, 16,169, 50,102, 40, 41,100,251, 2,
- 70,221,108,222,222,208,118, 35,135,219, 98,141,182,187, 99,183, 80,221, 22,253,169, 5,240, 28,175,120,202,109,117, 43,158,224,
-172,168, 42, 69,193,113,212,166, 35,154,109, 86, 73,117,239,122, 88, 75,220,172, 22,219, 70, 15, 39,112, 35,202,153, 34,108, 9,
- 83, 16,228,242,167, 30,167,205, 67,209,101, 60,247, 40, 75,203,132,133,184, 16,103,115, 6,213,204,193,117,183,249,130, 73, 35,
- 5, 53, 87, 20,120,131, 91,154, 84, 73, 73, 68,198,158,137, 73, 10, 65,221,198,214,239,181,250,134,185,234, 8, 61,113,217, 30,
- 12,253, 20, 41, 50,184,169,243,158, 45,133,115, 76,244, 44,114,114,236, 90, 10,109,118,101, 69, 7,109, 69,110, 68,166,247, 32,
-244, 91, 5,122, 46, 93,207,151,112,185, 82, 84,201,237, 85,196,152,174,184, 88,241, 23,239,197, 8,146,129,239,112,210,195,217,
-143, 82, 97,220,134,151,240, 7,148,160,230, 82, 64, 42,108, 46, 11,170, 52,200,142, 42,108,229, 75,154, 25, 10,128,251,176,220,
- 69, 62,231,164,248,160, 73,129, 34, 43, 32,148, 79,109,191, 21,101,149, 97,198,164, 54, 36, 52,149, 5,184, 19, 97,136,251,117,
-212, 9,207, 47,222, 75, 83,204, 70,166,198,109, 84,203,178,149, 49, 96, 25, 28,237,178,132,166, 28, 66,181,167, 45,188,144, 84,
-217, 47, 45,181,163,161,199,231,178,168,238, 61, 67,174,165, 50, 30, 68,210,138,101, 69, 41, 66,226,214, 24,154,175, 18, 68, 23,
- 25,200, 16, 43,237, 53,206, 89, 40, 41,101,229, 18,227, 11, 67,153,107, 85,228,149, 94,103,214, 88,177,181,218,251, 49,190,198,
-219, 19,126,194,199,107,117, 59, 14,220,202, 56,115, 41,161,100,166,134, 46, 65,164,220,199, 24, 80,202, 6,149, 99, 29,208, 93,
- 86,200,179, 38,148,109, 12,205,160, 36,107, 36, 87,151,170,161,165, 46,223,113,167,151, 78,170, 42, 43,148,218,139,143,133, 60,
-212,244, 50,100,136,203,150,242,135,136,250, 60, 22,164,198,112,144,183, 19, 29, 76, 58,165, 45, 0,185,112,131, 94,118, 83,239,
- 68, 41,110,145, 84,110, 85, 61, 77, 75,109,178, 94,166,215,169,104, 8, 67,209,226,188, 8,118, 28,136,175, 69,146,129,147,227,
-180,167,144,130,160, 73, 24,237, 74,148, 41,180,184,241,225,200,118,224,181,231, 71,136, 98, 84,161,159, 30,183,110, 75,101,207,
-122,101,135, 67,139, 34,171, 78, 67,173,161, 72,116, 98, 92, 85,128,204,132, 60,193,241, 18, 44,199,101, 84, 85,252, 43,112,177,
- 42, 84, 4, 52, 95, 52,245, 4,179, 84,167,160, 46, 60,163,202, 84, 82,137,173,158,119, 35, 43, 36, 50,180, 41,160, 2, 22, 0,
- 48,114,196,178,177, 80, 55,211,178,238, 64,223,114,118,234, 70,226,196,234,190,160,112,250, 40,232,234, 98, 13, 29,180, 72, 74,
-135, 58,129, 51,142, 88, 77,113,191,149, 76,133, 66, 76,142, 54, 49,137, 46,240,201,115,180,187,121,113,159,112,167, 74,168,126,
-134,164, 39, 75, 21,246,192, 76,150, 24,152,101, 59, 6,160, 22,251,164, 23, 22, 86, 34,169, 37, 64, 41, 77,186,215,114,156,150,
- 43,139, 43, 97,169, 85,218,101,105,162, 25, 69,219,106, 92, 52,234,159, 51,106,114, 59,213,187, 98, 11,114, 96,186,162,129,133,
- 58,105, 47, 71, 91,228,165, 74,112,210, 83,241, 18,146, 11,135,106,214, 98, 78,172, 73,102, 43,177,164, 67,184,105,116,249, 76,
-184,164, 4, 42, 59,240, 23,245, 98,155,113,151,208, 49, 37,216,174, 66, 88, 82,250, 45,200,200,202,137, 72, 26,161,196, 82,249,
- 44,237,191,114,123, 77,202,228,191, 13, 50,108,176,183, 27, 75,109,213, 41, 83,161, 73, 7, 42, 42, 37,230,219,111,224, 71, 41,
- 82,129, 72, 56, 26, 82,178,211, 80,176, 96,117, 33, 87, 27,130, 65, 15,123,139,250, 43, 17,247,133,176, 59,154,251, 35,230,229,
- 30, 34,101,181, 84,209,154,121,115, 5,168,137,162, 38,222, 89,169,228,145, 35,177, 23,211, 13, 74, 42,128,222, 98,209, 33, 93,
-247, 45,207, 13,114,155,103,122, 54,250,161, 33,214, 94,250,215,234,202,139,111,115, 54,235, 9,117,115, 33, 84, 25,247,117,161,
- 36,186, 75,171,142,226, 92, 32,132,169, 8,234, 2,250,244,178,232,151, 46, 85, 85, 97, 46,180,218,152,141, 41,185, 10, 82,146,
-133, 56, 87, 49,135, 28, 75,206, 54,128, 82,149,182,149,114,148,252, 73, 40, 42, 25, 63,173,202,173,165,149,245, 27, 59,105, 37,
-133,198,106, 75, 46,199, 11,153,201,226, 56,179, 68,204,101, 51,206,133, 4,148,184,138,122, 64,229,229,233,145,221, 56, 61, 81,
-185, 75, 51, 27,159, 80,109, 41,125,186,148, 24,239, 53, 37,180,135, 92,106, 52,136,171,113, 78,165, 68,140, 37, 16,223, 89, 4,
-156,167,195, 25, 30,171,240,236,165,105,234,169,128, 26,161,150,226,251, 18, 25,116,220,216,131,250,167,125,192, 39,222,113, 12,
-241,161, 4,252, 89,144,102,166, 63, 45, 69, 19,211,173,192, 32, 52, 53, 5, 73,183,217, 0,172,167, 96,196,253, 93,251,227, 89,
-170,116,137,115, 41,150,180, 88,239, 52,228,155,128,190,219,171,105, 45,132, 20, 84,125,242,101,110, 97,109,192, 60, 15, 6, 4,
-169, 41, 7,205,101, 42, 4, 30,100,235, 48, 98,100,183,170,109, 55, 77,129, 26, 53, 90, 77, 38,159, 64,165, 69,109,165, 59, 30,
- 52,118, 31, 90,205,199, 80, 1,144, 68, 88,139, 74, 3, 44,182, 0,117, 80,218,100,243, 23, 20, 81,245,170, 20,128,229,191, 57,
-231, 18,227,180,170, 21, 94, 83,170,231,105, 13,211, 41, 41,129, 19,194, 45,180, 74, 72,152,162,162,165,171, 24, 90,155, 91,121,
- 64, 1, 10,190, 89,208,106, 49,147, 38,123,140,190, 42,215, 59,205, 63, 4, 41, 77, 7,232,116,248, 77, 39,221, 90,229, 3, 45,
- 60,220, 25, 11,121, 77,164,169,180,203,154, 2,178,180,171, 50, 56, 55,242,106, 47,163,123,251,137,182,215, 39,127,128, 23, 32,
-147,183, 70, 90,252,198, 22,163,102,103,142,115, 15, 52,168, 39, 72, 47, 37, 68,133,131, 88,139,196,145, 68,178, 49, 42, 54, 4,
- 38,158,106, 17,126,147, 14,157, 74,146,213, 34,214,106,160, 3,145, 23, 72, 93, 65,214,154,147, 60, 45,214,208,171,150,181,227,
- 40,145, 58,176,135, 20, 0, 88, 40, 71,191, 85, 50,133, 16,199, 40,204,233,149,217, 16, 81, 74,106,213,167,196, 41,166, 68, 93,
- 61,218,202,202,222,163, 83, 36,180,202,163, 63,224, 83, 73, 82,235, 51,209, 30, 63, 41, 12,169, 45,248,223, 4,213,169, 74, 90,
- 53,128,211,101, 42, 82,164, 55,109,135, 89,147, 41, 74,163,196,152,181, 2,229, 14,132,196,169,105,114, 84,194,235, 37, 15,213,
-165,203, 74,222,142,144, 8, 75,184,116,146, 25,235,123, 77,126, 53, 26,159, 50,222,163, 82, 34, 87,170,209, 34,199,165,211, 98,
-196,145, 42, 52, 27, 97,182,148, 76,169,143,206,119,244, 45, 5, 21,254,145, 74, 46, 58,167, 16,167, 2, 71, 51,139,214,220,104,
- 21,172, 65, 37,238, 69,201, 58,119, 82, 55, 23, 34,254, 81,127, 40,177, 82, 54, 23, 48,154,250, 57, 42, 21,105,164,129,171,170,
- 20,141, 98, 87, 0,144,254, 73, 38,170, 44,234,129, 19, 88,176,146, 78, 89, 34,103,179,171,162, 77,157, 81,164,143,123,163, 8,
- 73,114, 60, 56, 14, 56, 25,153, 92, 82, 27, 64,113,230,129,159,116,212,234,141,165, 30, 35,232,150,149, 34, 26,138, 67, 35,195,
-229,195, 64,160,161,215,163,214,229, 61,114,193,118, 3, 18,169,144,234,116,244, 83,105,213, 73,128, 42,170,162,244,180, 53, 84,
-173, 73,139, 52,114,195,114, 72, 17,209, 13, 46,130, 91, 66,252, 80,144,164,132,233,150,102,139, 89,170,162, 58, 42, 11,109, 2,
-156,194, 86,221, 33,181,251,181, 38, 42,218, 67, 77,174, 97,127,153, 78,214, 92, 14, 2,191, 29,239, 13,182, 62, 55, 80,210, 57,
-121,206,113, 74,153, 54,127,189, 8,203, 67,140,225,184,143, 85,220,123,222,211, 87,121,197,162, 59, 80,232,138, 96,225,196, 37,
-231, 93,231,158,158,124,173,226,166, 18,183, 1,113, 59,104,206, 7,217,212,166,214, 54, 39,125,193,177,184,189,190,201, 2,219,
-129,115,109, 36, 64,115,202, 58,106,133,145,131,199, 51,172,111, 27,220,150, 84, 18, 57, 32,181,236, 38,119,102,187, 2,172,173,
-245,138,161,227,115, 42,109, 53,183, 89,113,151,211, 75,165,167, 49, 32,171,220, 30, 90, 20,243,205, 83,164, 33,100, 75, 87,189,
-190,190,121, 21, 18,250, 71, 48, 94, 91,105, 75, 43,121, 74,230,229, 45,103, 23,124, 32,112,213,237, 11,217, 74,166,193,241, 37,
-103,179,117, 80, 93,247,138,133,163,115, 83, 94, 17,183, 11,108, 46,100,165,216,113, 47, 43, 30,236, 12, 41,116, 27,141,183,211,
-202, 18,144,184,181, 22,208, 98,204,139, 46, 18,220,104,135, 30,225, 76, 56, 81,105,212,133, 48, 41,180,229, 70,162,206,126, 38,
- 92, 98,148,206, 66,164,193,166,164, 45,105,171,200, 68,140,120,203, 37, 97, 47, 60,174,114,244,144, 80, 29,171, 42,165, 30,155,
- 49, 51, 37,181, 81, 79,132, 15,185,196,151,151,234,114, 30, 44,248, 41,113,104, 4,248,238,184,148,190,180,184, 74,188, 52,182,
- 16,234,154, 81, 58,124,203,115, 9,169, 39, 2, 57, 12,104,246, 82,172, 26,204,163, 72, 34,253, 44, 52, 92, 91,236,149, 12,133,
-109,183, 62,241,103, 9, 69, 81, 77, 83, 52,208,150, 44, 27, 66,145,121, 36, 63,181, 37,206,204,250,129, 61,116,169,212, 89,131,
- 43,201,249,104,123, 74,253,155,155,225,236,203,226, 10,102,204,110,202, 63,132, 86,125,198,138,149,127,100,183,134,155, 1,112,
-237,173,219,177,225,202, 67, 75,152,211, 60,203, 77, 6,247,167,123,204, 54,107,180, 85,184,167, 33, 62,251,114, 35,170, 69, 54,
- 84, 73, 46,115,200, 36,167, 25,234, 60,137, 61, 71,217,242,198,191, 92,191,104, 95, 2, 27, 99,237, 47,225, 82,247,225,235,116,
-208,197, 6,191, 47, 55, 54,209,110, 43, 17, 27,149, 84,218, 45,211,165,197,120, 90,215,101, 56,171, 11,149, 13, 70, 66,225,214,
- 96,115,165, 21, 26, 85, 74, 92, 66,166,214,227, 79, 55,249, 64,239, 46,206,238, 55, 15,155,187,185,155, 17,187,212, 5, 91, 27,
-163,180, 55,157,106,194,190,104,165,101,216,241,171,116, 57, 30, 18,166,211, 37, 16, 5, 70,131, 54, 18,226, 79,167, 74, 70, 81,
- 42, 5, 78, 52,132, 18, 28, 26,183,178,186,229,171,129, 84, 73,169,212,119, 35, 85,129, 0,134,181,188,202, 72, 5,128,210,110,
-164,121,139, 34,115,126, 99,150,201,150, 78,208,177,215, 21,236,173,125, 91,218,250, 75,126,181,187, 55,113,190,246, 44, 91, 95,
-135,148,129,156,147,147,205,212, 31,144,244, 3, 58,243,202,158,132, 96,121,118,234, 51,223,167,152,213, 84,132,144, 83,212,144,
-122,231,250, 71, 93,121,229, 7,168,206, 61, 58,103,231,212,233,216,126,242, 48,223,133,202,123,243, 12,118,207,203,183,111, 61,
- 32, 14,126, 17,140, 14,161, 90,245,202, 0,199,235, 2,114, 60,191,110,190, 5, 15,139, 57,201, 32,114,253,216,239,161,239,192,
-233,108,123, 39,162,135, 78,189, 62,195,246,249,106,136, 10, 78,112, 73, 80, 61,113,230, 62, 64,254,122,234,166, 18, 83,202,122,
-103,184,207, 81,130, 49,223,236,215,174, 80, 6, 9,201,199, 47,111, 46,189, 71,203, 89,192, 63, 27, 96, 53, 1,149, 31, 49,140,
-143,183,211, 84, 10,122,103,152,159, 49,204,115,211,229,233,253,186, 57,109,140, 0, 0, 42, 35,161, 61,188,137,207,221,161, 86,
- 58,145,216,118,198, 58,231, 30, 93,116, 48, 63,158, 1,112, 96,228,246, 63,119,203, 84, 21,220, 28,101, 35,160,235,242,245, 31,
-102,138, 90, 22,121, 72,232, 51,231,247,231,247,104,117, 39, 61, 58, 2, 59, 96,249,104,234, 64,191,160,198, 65, 55,247,255, 0,
- 60, 14,160, 50, 60,137, 24,206, 58,103,203, 61, 58,234,146,135,124,156,121, 99,160, 31, 51,219,236,252,116, 73,206, 49,128, 51,
-231,231,251,123,106,130,209,216,142,152, 32,159, 63,195, 75, 14,184, 84, 94,215, 29, 79,250, 96, 55, 19,215, 9, 7,190, 79,166,
-113,212,157, 10,180,231,174, 51,219, 30,163,230, 61,124,245,112, 94, 8, 35, 56,199,150, 58,254, 63, 97,208,174, 36,246, 79, 78,
-132,250,231,203,175,160,237,165,148,155, 11,141,240, 1, 23,176,233,128,148,158,253,122,158,192,247,206,126,126, 93,116, 42,219,
- 61,126, 33,142,248, 29,128,238, 64,251,180, 98,130, 72,235,144,115,140, 99, 39,215, 61,190, 90, 29,105, 56, 32,252,142,124,190,
-223,195, 58, 58,223,238,254, 95, 39, 6,192,106, 72, 24,199,207,169,245, 30, 90,160,176, 6, 79, 92,227,183,145,249,118,249,104,
-165,167, 61,148, 78, 62, 93,254,239, 93, 12,179,220, 30,157, 60,198,115,242,249,127,110,150,193,148,246,192, 42, 80,207, 64,115,
-230, 7, 95,188,250,119,213, 21, 12,100, 99, 63,179,231,162,150,129,220, 12,103, 57, 35,191,246,104,101, 2, 7, 81,158,249, 35,
-174,127,183, 74, 39,124, 40,187,129,129,212, 62, 68,122,250,125,199, 84, 23,140,143, 92,117,213,117, 19,215,184, 4,231,175, 66,
- 79,245,106,130,251,142,158, 93,255, 0,118,149, 29,122, 95, 24, 34,198,227,107,126,239,159,158,216, 20,140, 18, 59,227, 75, 95,
- 85,250,199, 75, 75, 13,192, 56, 53,129,222,221,113,224, 31, 34, 70,125, 6,170,115,117, 4, 36,146,112,146, 71,252, 62, 67, 84,
- 57, 57,156, 74,190, 46,131,167,126,189, 72,198, 14,138, 73, 72, 0,249,103,174,123,247,243,198,181,201, 39,189,191, 44, 27,238,
-190, 43,164,129,129,211, 63,236,245,233,243, 58, 32, 97, 35, 36,140, 31, 65,231,246,249,232,100,242,133, 16, 14, 78, 58,158,157,
- 7,144, 58, 37, 4, 36, 28,167,155, 7,168,239,223,182,147, 44,119, 29,113,140, 86, 9, 88, 80, 33, 67,148,142,189, 58,147,229,
-223,183,125, 16, 27, 14, 36, 37, 73,206, 14, 71,113,233,215, 84,146,114, 59, 96,121,126,113,162,219, 33, 61, 20,122,227,203, 61,
-135,228,105, 51,107,111,211, 4, 38,221, 6,253,190,126, 24,172,132,132,167, 25,192, 31, 46,167,238,209,141,168,114,132,252,186,
- 31, 95,234, 58, 17, 41, 24, 32,168,146,115,128, 59,159,179,174,138,108, 18,115,203,216, 12,131,215, 0,103,174,144,194, 71,174,
- 42,227,160,207, 92,117,206, 62,223, 33,242,209, 40,194,176, 79, 64,124,186,245, 61,190,239,236,213, 16, 1, 81, 29, 64,242,237,
-249,245,209, 45,130, 6, 1,237,228,113,147,251, 59,104, 99, 7,241,193, 13,224,100, 14,158,159,183, 68, 33,125,121,112,122,103,
- 36,117, 25,207,111,219,170, 8,237,156, 12,250,116,207,217,159, 61,101, 86,165,169,113,222,213,218, 85,175,104,208,234,151, 29,
-199, 92,154,205, 58,143, 67,162, 64,145, 83,170,213,103, 62,174, 86,162,193,129, 17,181, 57, 37,226, 79, 92, 12, 36, 30,101, 16,
-144, 78,144,150, 68,141, 93,157,130, 34,110, 73, 54, 0, 1,212,158,192, 96, 14,194,219,159, 78,228,237, 97,234, 73,216,119, 56,
-239, 95,177,184, 52,198,205,241, 34,250, 82,145, 37,219,203,111,154,116,243, 97, 74,140,138, 52,229,161, 36,121, 36, 56,165, 99,
- 62,127,102,186,125, 58,178,168,165,224,240,108,180,227,106, 45,243,168,133, 3,219,224, 41,253, 99,156, 28,124,181,130,123, 43,
- 61,153,123,231,176,246, 46,230, 76,226, 66, 69, 19,109, 99,238,172,123,102, 85,189,105, 61, 82,102,161,115, 83, 77, 53, 47, 41,
-114,110, 56,241, 22, 91,166,201, 83, 79, 37, 41, 96, 41, 78, 35, 7,156,131,211, 91,183,187, 60, 21, 87,216,164,202,171,216, 55,
- 44, 43,172,211, 80,185, 34,157, 13,254, 73,133,108,167,153, 73,110, 58,212,124, 76,167,200,119,206,185,175,140,211,219,115,250,
-250,186,121,150,106, 87, 41,102, 86, 4,217, 99, 69, 62, 95,180, 64, 96, 69,237, 98, 6,161,177, 7, 30,160,125, 30, 51, 92,167,
- 42,240,231,133, 50, 92,240,205,148,102, 10, 42, 3,172,240, 74,138,188,202,201,222, 50,206,202, 2,106, 70, 70,243, 90,193,183,
-223, 26, 33, 89,187, 38, 56,211,173, 73, 82, 68,134, 29,100, 33,180, 43,195,241,146,165,129, 30,115, 42, 79, 82,234, 84, 82, 20,
- 61, 53,220,158, 22,104,113,246,115, 98,169, 87, 66,163,180,230,226,223, 48,159,157,245,162,217,109,215,233, 84,130, 15,134,212,
- 53,167, 42, 99,197, 78, 84,181,167,226,199, 98, 53, 30, 10,163,245, 54,234,111,196,144,202,209, 82,166, 75, 80,109,137, 72, 83,
- 78, 49, 38, 59,153,147, 79,146,210,250,165,126, 35,100, 96,227, 24,215,127,118,138,242,164,110, 62,192,109,157,106,149, 47, 30,
-229, 76, 54,197, 89, 17,150, 68,186,101, 86, 23, 51,106, 97,104, 7, 45,130, 23,217, 88,202,117, 28,118, 20, 81, 23,136,105,153,
-198,204, 58,139,149,189,143,111, 45,236, 65,254, 3, 29, 5,199,185,104,158, 14, 29,203,164, 80,217,101, 77, 86,170,133, 93,209,
-180,199,170, 20, 96, 14,241,187, 6, 37,127, 93,148, 45,136,181,242,106,229,223, 42,176, 31,122, 91,235, 11,114, 43,173, 63, 43,
-152,169,199,159,143,135,153, 45,243, 30,101,243,182,162,159,187,215, 88,194,171,109, 42, 52, 22,155,105,229, 73,168, 62, 22,203,
-206, 5, 45,198,219, 49,203, 37, 62, 31, 54,124, 70,223, 9,248,135, 92, 47,174,172,242, 97, 74,133, 54,150,235,136, 92,152,237,
- 58,252, 89, 13, 45, 92,139, 46, 50,219,136, 74, 20, 9,248, 28, 41, 32,143, 62,190,122,188, 83, 18,164, 54,242,101, 71, 65,114,
- 44, 22,132, 53, 40,114,187, 30, 75,239, 23, 82, 65, 72,234,224, 65, 70,125,121,117, 30, 87, 45,172,129,168,158,155,237,126,135,
-115,211,189,187,236, 62, 56,127,142,130,130,138,154, 49, 79, 24,120,134,234,170,193,123,180, 96, 91,169, 10, 66, 18, 15,151, 77,
-128, 4,226,231, 71,140,106,110,203,144, 95, 44, 50,131, 42, 92,249, 46, 56,161,202,196, 32,136,201,141, 24, 96, 36,190,183,201,
-194, 51,149, 21, 28,117,214,187,111,102,251,181, 33,243,106, 81,228, 61, 14, 37, 33, 97,130,251, 50, 21, 30, 63, 51,105,194,152,
- 98,106,148, 82, 95, 81,200, 60,195,245,138,142, 20, 14, 19,125,222, 75,250, 78,218,216,238,219,180,169,142, 42,187, 85,231,169,
-204, 91,107,109, 14,183, 50,106, 86,182, 24,105,167,112,133,173,168,202, 43, 80,230, 79,199, 45, 56, 33, 67, 58,228,228,187,229,
-250,132,217, 47, 75, 67,178, 96, 58,242, 83, 61,164, 56,226,208,226,208,181,175,198,125, 46,167,157, 35,226,117, 68, 43,152, 40,
- 32, 32, 40,140,101,246, 58, 73, 18,147,146,135, 76,211,128,242,145,107,170,177,186,198, 9,237,250,205,184,185,216,218,219,233,
-112,238, 72, 56,183, 63,169,204,229, 28,252,143,135,165, 49, 82, 40, 35,235,170, 18,203, 36,204,173, 96,202,132, 24, 98, 13,183,
-146, 66,118, 56,218,122,181,245, 81,114,145, 37,110, 60,103,198, 97,207,125,165, 84, 31, 79,131, 90,163,190,219, 97, 10,108, 48,
- 26, 9,169, 66, 90, 80,227, 47,128, 80,181, 33,204,169, 42, 79, 34,145,144, 27,238, 36,202, 77, 46, 61, 71,146,158, 91, 77, 34,
- 80,129, 80,121,196,192,149, 37,107, 67,234,250,134,230,105, 96,211,223,104,169, 92,205,169, 77, 58,128, 83,145,140, 41, 90,141,
- 75,174,173, 77,251,204, 9, 44,170,156,220,176,219,244,224,164,200,165, 79,117,183, 20,184,138, 75,160,173,218,100,118, 89, 33,
- 75, 40,230, 73, 95, 94, 82, 7, 38,179,218,117,105, 35,154,151, 61,164,211, 34, 50,180, 74,121,186,147,237,205,163, 21, 60,162,
- 29,110, 35,204,164, 37,216,238, 48,180,134,146,248, 5,180,189,243,232,211, 62, 92,169,112,162,228, 27,221,109,123,121,123, 16,
-109,110,225, 46, 44,215,186, 62,199,161,242,220,190,156, 36,113,114, 47,203,109,107,162,234,192,145,231, 26, 47,177,110,190, 75,
- 27, 13, 65,145,137, 24,220,138, 82,100, 86,167, 67, 85, 85, 5,217, 21, 54, 83, 26,153, 91,143, 41, 84,218,173, 77,175, 19,157,
- 16,100, 78,167,184,142,105,169, 96,169, 46,243, 41,104,121,178, 22,223, 34,202,155, 23,250,140,137, 20,138,148,138,125, 82, 20,
-234,253, 56, 69,122, 35,244,247, 86,135, 43,244,199,152,112, 33,197, 60,228, 96,159,173,226,132, 50, 84,121,113, 53,165,176,135,
- 82,167, 71,194, 53,242, 20, 11,121, 84,166, 35,198,155, 38, 4, 37,169, 19, 41,142,209, 42, 19,225,165,233, 62, 34, 25,142,226,
- 80, 30,113, 17,157, 66,149,252,196,164, 18,216, 82, 84,115,167, 38,148,205,126,152,227, 49, 97,220, 38,171, 81, 86, 91, 68, 26,
-187, 13,248, 14, 69, 97, 62, 35,143,138,156,112, 22,101, 41, 15, 18, 22,226, 10,194,136,230,230,233,134,127, 42, 6, 37,206,199,
-117,101, 43,181,186,143,180, 75, 2,110, 73, 96, 5,128,176, 42, 44,157, 77, 28, 1,181, 71, 86,166, 56,195,160,133,227,150, 34,
- 10, 48, 60,200,165, 70,147,146,168,163,204, 71, 45, 85,148, 2,193, 25,163,195,167,111,214, 86,203,172,196,137, 45,186,155,174,
-161, 10,167, 73,203, 62,227, 94,136,211,232, 33,202,160, 82,127,192,238, 54, 24, 88, 10,120, 37, 1,208,149, 43,151,151,153,182,
-170,166, 34,105,117, 25,181, 40,161, 79,194,159, 53, 78,221,148, 2,130,244,202, 62, 11,173,203,168,196,140,210,177,239,188,139,
- 79,188, 52,148,143, 25, 25,113,159,210,140,171, 8,167, 26, 85, 94, 65,131, 35,235, 11,102,226,130, 87, 49,132, 48,166, 27,155,
- 34,167, 24, 20, 49, 81,133, 37, 81,151, 26,170, 90,112, 31, 21,124,188,252,170, 13,201, 72, 73,201,204,105,149, 74,157, 57,200,
-147,110, 38,154,139, 18, 67,205,195,153,115, 70,104, 51, 79,155, 83, 70, 23, 21, 85, 85, 0,161, 70,146,242,249, 2, 78, 76,126,
-101,128,219,173,128,148,235, 34, 80,196, 0,231, 83, 92, 1,220, 90,204, 10,145,112, 0,185, 42, 1, 2,236,108, 45, 99,136,197,
-109, 57,134, 90,147, 78, 60,243,173,165,136,149, 15, 48,189,215,148, 86,241,202,190, 93, 81,152,134,165,148, 13, 11,202,242, 35,
-169,110,248,110,177, 16, 67, 42,158,104,128,170, 20,215, 22,194,141,110,142,176,131, 25,131,225, 54, 11,133, 84,196,180, 99,164,
- 18, 82,252, 36, 58, 2, 73, 90,181,243,137,137,169, 94,219, 91, 8,140,165,159, 30,241,143, 84, 66,139,156,202,240, 96,192, 62,
- 18,156, 82,206,124, 78, 89,140,129,203,241, 21, 30, 76, 19,163,109,106, 99,148,203,129,215,161, 22,149, 70,170, 36, 45,108,171,
- 31,224, 53, 5,243, 58,217,101,215, 79,193, 25, 79,185, 33, 32, 39, 1,165,190, 66, 50,135, 15, 45,187,123,227, 46,167, 87,178,
- 45,198, 26,115,194,143, 66,171,214,144, 26, 91,156,200,171, 26,148,118, 84,145, 31,151, 10, 8,167,198, 11, 4, 31,135,197,207,
-235, 37, 39, 74,201, 56, 20,179, 48,220, 2,160, 89,137, 27, 48,218,251, 92,218,224, 27,108,182,181,237,189, 90,213,112,199,197,
-185, 37, 66, 63, 50, 26, 82,245, 33,186, 21, 2, 41, 29,149,214,224, 41, 89,127, 85, 64, 0,155,129,164,168,195,121,106,210,157,
- 49, 16,180, 67,123,221,105, 23,132,151, 98,143, 8,133,181, 9,233, 2,160,114,132,149, 41,152,202, 77, 80, 0,122, 20,224,133,
-140, 19,174,145,216, 85, 22,174,139, 58,117, 20,167,255, 0,116, 45,215,218,183, 92,253, 48,116, 59, 66,168, 71,135, 84,162,201,
- 91,137, 33, 46,115, 83,165, 76,101, 96,101, 41, 92, 44,103,200,106,117,145,110,169,112,231, 15, 1,196,123,195, 84,153, 12,178,
- 20,148, 41, 94, 28, 38,226,200,119,157,100,120, 95,165,138, 1,112,228,146,114,114,161,173,186,219, 8, 70,145, 86,150,137, 9,
- 45, 70,158,138, 76, 55,148,216, 65,109, 45,150, 86,152,239,128, 57, 65, 12, 75,229,234,122,225,213,148,244,209,114,119,104,171,
- 4,128,125, 92,254, 87,191, 96,110,192,158,223,104, 2,109,189,142,214,189,197,123,226,102,115, 14,101,151,130,175,170,167, 41,
-126,116, 54, 59,220, 24,181, 41, 23,243, 93, 94, 65, 97,177,125, 39,160, 56,182, 92, 20, 69, 77,185,225,210,208,218, 12,121,177,
-214,245,101,132,175,147, 20,200,207,169, 77, 67, 12,161, 64,187,239, 14, 55, 24, 58, 82,112,164,176,232,229, 32,231, 94, 29, 77,
- 69,138,133, 70, 29, 29,163, 30,174,236, 24, 12, 74,171,176,182, 29, 93, 18,157, 80, 46,135, 10, 99,172, 22,209, 86,126, 34, 28,
-247, 86, 74,249, 90, 42, 50,212,149, 37,164,133, 61,149, 74, 50, 96,174,108,231,227,148, 73,104, 70, 98, 34, 90,232,251,142, 52,
-174, 65, 30, 63, 46, 28,230,126, 90,201,119, 25, 60,138,113, 64,225,189, 82,183,173,152,148,155,102,178,203,203, 68,215,166, 72,
-114,183, 95,156,227,173,149, 84,171, 51, 30, 74, 27, 67, 12,173, 36, 52,203, 81,219,102, 60, 68,130,144,203,109,165, 36,133,120,
-138,212,193, 31, 77,212,144, 72, 34,198,251, 27,245, 44, 15,154,214, 6,230,224,239,182,149, 3, 21, 18,113, 76, 43, 65, 3, 50,
-137,214, 49, 12, 40,135,117,121, 29,209,158, 71,223, 75, 42, 46,136,204,108, 8,145,132, 74,193,144, 72, 75, 74,213, 54, 21, 45,
- 76, 91,246,218, 94,139, 17,193, 28, 86, 29, 14, 46,115,208,212,249, 67, 77, 64,167, 72,144, 20,185,149,135,226,180,158,101,145,
-202,195, 40, 83,141,144,227,200, 2,245, 21,216, 52, 92,248, 96, 70,161, 83,252,103, 98,197,145, 15,156,115, 78,109, 49, 66,157,
-109, 1,110,205,152,167, 16,175,119, 65,203,206,130,172,229, 69, 42, 23, 85,184,213, 38,116,122, 77, 49, 30,243,112, 48,191,122,
-156,175, 0,120, 52,218,131,205, 97, 18,106, 83,146,149, 4,194, 76, 0,146, 91, 88,241,164,101, 41,109,188,184, 10,126, 34,216,
- 84, 0,137,213,234,155,149, 73,236,160, 76, 76,164,176,212,104,116,198,150,183, 7,131, 18, 42, 93,229,167,198,253, 69, 23,214,
- 76,149,151, 57, 71,195,200,157,109, 69, 33, 82,243, 60,133,180,234,176,248,250,244,211,107, 91,226, 72,211,167,112,188,181,209,
- 76,160,213,204,197,106, 0, 96, 24,179, 79, 82,204, 72, 51,121,144,128, 10,249, 98,149,218,225, 28,149, 89, 27,152,205, 94,144,
-220,249, 80,209, 79,171, 70, 91, 20,181,184,135, 92,141, 50, 72, 14, 84, 76,118, 19, 36, 34,177, 25,151, 21,138,119,187,114, 19,
- 21, 68, 12,117,150,149,132,150,213,150, 54, 98,220,136, 16,188,119,163, 67,101, 5,113,196,105, 72,165,185, 82,119,197, 5,126,
-248,228,114,219,144,233,141, 70, 67,104,106, 56, 82,124, 82, 79,136,218, 88, 9,105, 88,156,247,222,169, 82,227,191, 45,232,212,
-218, 11, 78, 71, 98, 59,143,161,113, 39, 84, 75, 46,153, 13, 76,172, 45,229,243, 37,135, 29,104,251,180, 52,101,110, 6,210,236,
-148,169, 74, 12,138,140, 74,153, 50, 51,206, 33,177, 76,164,162, 59, 73,171, 73, 72,104, 78,168,197,125,231,124, 63, 6, 48,109,
-102,142,200, 60,234, 28,229, 82, 93, 7,244,104,105, 39, 91,241,105,141, 99, 37,254,169,195, 11, 90,214,220,144, 53, 30,151,233,
-216, 2, 62,226,207, 81, 79, 37, 64, 53, 1,150,150,100,144,129,164,144,145, 57, 33,117, 0, 73,102,157,197,144,162,146,201,229,
-185, 91, 7,133,199,163,200,101, 79,198,131, 70,106, 76,183, 83, 33, 17, 40,212,166, 60, 24,241,189,234, 27,101,247,106, 85,121,
- 13, 51,138, 77, 9,190, 85, 34, 58,146,217, 82,185,213,225,182,227,202,108, 33,244,163, 51, 30,132, 13,122,179, 61, 46,206,167,
-178,218,106, 21, 83, 17,198,105,113, 16,255, 0,130,203, 84,152, 48,121,220,112, 58, 60, 70,144,219, 72, 14,202,154,226, 91, 75,
-137,117,229,164, 37,133,166, 84,233, 54,205, 18,152, 42, 78, 72, 74,100, 38,109, 70,157, 75,167,176,101,215,110,185, 45,168,183,
- 26, 21, 45,132, 58, 22,233, 81, 25, 47, 73, 45, 70,101, 9, 42,121,228, 37, 28,165,217,183, 32,206,171, 85,105,149,250,165, 82,
-149, 14, 75, 94, 12,218, 69,174,167, 26, 93, 42,136,182,199, 51,171,157, 33,213,135,234, 53, 63, 17,100,187, 57, 41,104, 33, 40,
- 8,142,218, 24, 74,121,221,169, 86, 22, 72,193,212,205, 96,202, 46, 67, 48,184, 22, 31,101,130,133,184, 4, 88, 49, 35, 72,181,
-216, 86, 28, 81, 1,116,150, 73, 25,169,242,225,205, 66,229, 73,146,164,163,105,104,209,130,181,131, 0, 76,135, 75, 68,143,118,
-149,228,145, 98,129, 95,138, 36,233,202,152,138,141, 93,169,141, 69, 80, 30,227, 5,244, 43,222, 82,165, 36,243, 74,171,176,208,
- 41,106,160,226,222, 82, 83, 28,169, 98, 40, 10, 73, 90,220,201, 68, 52,254,150,111, 2,144,225,187,179,158,209,187, 10,132,211,
- 79,213,165, 82,118, 15,137, 25, 20,246,210,148, 75, 91,140,190,246,200, 95,117, 36, 32,115, 57, 41, 10,102,175,109,202,146,122,
- 41, 18,232,108, 40,225,134,134,166, 17, 71,172, 75,173,183,254, 28,202,224,136, 19,125,223,220,189,237,247, 37, 21,179, 37,214,
- 81, 80,121,191, 1, 45, 16,166,130, 31,105, 33,106, 75, 76,149, 56,163,206,177,200,205,113,141,195,133, 51,141, 78, 12,248,147,
-225,150,176,148, 59, 23,119,182,166,230,182,237, 57, 15, 97,150,105,151,140, 70, 87, 85,176,107,200, 50, 27,253, 3,177,111, 58,
- 93,191, 49,181, 28, 41, 2, 57, 60,193, 74,200,158,100,149,102, 22,210,191, 88,166,198,203,123,107, 2,250, 84, 17,179, 17,170,
- 37, 36, 88, 6, 45,176, 1,135, 60,241, 94, 80,210,197, 55, 50, 52,167,146, 27, 38,149,177,141,119,250,189, 44, 46, 13,254,219,
- 16,222,117, 4,220,220,223,242, 16, 41, 10, 0,121,103, 35, 29, 63, 35,174,144, 0,146,129,231,232,122,252,251,246,242,213,103,
-105,213, 58, 52,201,244, 90,252, 69,192,174,208,170, 53, 26, 21,114, 3,128,135, 96, 86,232,211, 30,166, 85,233,238,115, 96,133,
-177, 82,139, 41,165,103,205,147,175, 33, 3, 57, 79,194, 14, 78,124,199,203,236,212,253, 72, 96, 25, 78,160, 70,198,251, 27,216,
-220, 31, 76, 83,251,247, 22, 56,241,142, 65,215,160,207, 76,143, 35,229,243,210, 78, 79,144, 72, 39,250,186,145,142,218,250, 74,
-136, 25,198,115,208,129,220,124,245,247, 36,146,124,191,217,244,236,126,205,103,127,191, 3, 30, 72,200,230,229,206, 58,121, 15,
-199,215,251,117,236, 5, 31,245, 72,242, 7,190, 62,223, 76,233,114,133,144,114,164,245,198, 7, 65,219,215,238,215,190, 92,127,
- 56,224,103, 31, 47,191,211, 67,221,233,129,138, 43, 71,124,156, 15,196, 14,221,186,244,208,171, 3, 3,191,166, 64,201,249,119,
-249,234,232,212, 41,147, 22,132, 71,105, 74, 46,186,134, 91, 32, 16, 29,125,194, 18,211, 12,249,188,250,213,209, 40, 72, 43, 89,
- 56, 72, 39,166,186, 71,195,191,178, 43,142,110, 36, 99,196,171,219, 27, 61, 83,178,237, 25, 97,151, 26,188,247, 98, 90, 54,206,
-131, 38, 59,229, 63,225, 52,182,171,241,205, 66,178,148, 52,175, 16,166, 60, 5,115, 36, 97, 43,202,147,157,121,171, 41,169,236,
- 37,148, 43, 55, 69,234,199,224,162,228,159,112,198,205, 37, 29, 93,124,188,138, 26, 89, 43, 38, 29, 86, 36,103, 32,122,182,144,
-116,143,123, 88,123,241,204, 5,140,156, 36,231, 29,252,135,224,124,251,232,117, 0, 14, 70, 1, 7, 7,183,159,203,207,166,117,
-177,124, 80,240,223,126,112,157,189,183,214,195,110,107, 49,211,119,216, 53, 54, 96,207,155, 77, 84,151,104,213,200,115,224,199,
-169,209,174, 75,118, 76,184,204,185, 50,223,157, 79,148,219,177,157,113,166,212, 74, 28, 66,144, 20,218,181,174,203,234, 48, 7,
-159, 79, 94,255, 0,111, 83,141,108, 83,203, 28,200,146,198,218,163,144, 2, 58,142,190,160,216,223,220, 69,240,155,199, 36, 18,
-203, 12,200, 98,158, 22,100,116, 59, 50,178,157, 44,164, 14,132, 16, 65,247,140, 12,160, 58, 18,122, 12,253,253, 63,179, 67,171,
-168,200, 61, 58,140,249,227,207,167,231,182,138, 63,173,208, 17,223,167,203, 25,201,252, 53, 69, 64, 1,142,253,115,246, 15, 67,
-173,144,108, 65,244,198, 70,227,125,199,254, 48, 26,129,245, 28,189,186,140,125,224,250,245,208,171,192,201, 25, 7,255, 0,104,
-122,103, 69,184, 70, 72, 57, 0, 30,195, 29,124,186,126, 31,179, 66, 47, 62,163, 30,158,121,249,116,210,202, 73, 23, 56, 0,108,
- 61, 54,192,202,193,193,193, 4,247,206,116, 58,199,159,175, 67,233,162, 87,235,229,140,122, 96,250,252,244, 58,129,201,200,200,
-251,113,131,219, 56,209,199,198,216, 54, 6, 88, 0,100, 39,175,203,167,231,251, 52, 43,131, 39, 36, 2, 64,236, 58,254, 63, 61,
- 22,231, 76,100,244,201,251, 60,134,132, 80, 30,188,221,127,104,193,245,251, 52,170,155,223,107, 91, 25, 22,223, 2, 44, 12, 18,
- 70, 49,219,212,117,237,161, 87,243,234, 15,111, 44, 31, 92,249,249,232,197,140,103,249,222,127,105,251, 6,133,115, 24,236,123,
-246,244,239,223,229,165,147, 10,139, 27,123,190,126,126,252, 12,188,246,199, 76,103, 62,152,254,142,154, 13,206,249,201, 78, 51,
-156,140,231,211, 31, 46,250, 49,194, 2,122,244,243,207,151, 79, 93, 90,212,167,148,162, 20, 50,159, 34,158,248, 35,184,244,210,
-152, 2,247, 55,232, 48, 59,171, 82, 85,220,156,231,177,199, 79,179, 75, 84,137, 89, 82,129, 64,192, 61, 9,238,125,123,157, 45,
- 11,159, 92,102,195,211, 7, 1,145,228, 49,230,115,215,175,153,251,245, 85, 41,199, 65,212,158,255, 0,159, 77, 82, 78,114, 7,
-145,207, 79, 35,223,203,237, 26, 37, 0,231, 61, 49,231,219,242, 53,130, 1,198,113, 85,164, 37, 39, 24, 29, 70, 51,230,123,121,
-232,129,156,245, 31, 8, 29,193,235,233,231,223,190,169,163, 29,176, 58,117, 7, 26,244,121,242, 2, 82, 20, 60,250,224,142,189,
-251,246,210, 76, 0,248,223, 3, 5, 39, 29, 51,146, 59,252,240,123,103,174,138, 64,206, 8, 35, 31,183,240,208,109, 54, 70, 78,
- 78, 73,235,147,144, 6, 78, 6, 51,215, 70,163, 57,233,142,157,199,203,229,162, 27,218,255, 0,203,124, 17,187,155,224,134,240,
-161,156,231,174, 64,235,211, 29, 63,164,104,132,168,143, 60, 14,199, 24,243,245,249,127, 86,168,160, 96,103,207,203,243,246,141,
- 16,132,224,228,245, 7,174, 63,160,231,215, 73, 16, 5,253,223, 39, 9, 28, 86, 71,127, 62,223,143,231, 58, 44, 1,220,122, 99,
-160,192,252, 52, 58, 82, 7,219,143,207,238,213, 86,242,162, 60,134,112, 57,142, 0,243, 42, 62,128, 12,232,167, 5, 97,182,231,
-108,101, 54,149,175, 93,188,238, 42, 37,171,108, 82,103,215,174, 43,142,169, 10,139, 68,162,210,216, 92,170,133, 82,169, 80,121,
- 49,225, 64,134,195, 96,151, 31,113,229,164,118,194, 70, 84, 72, 0,157, 78, 55,217,195,236,235,180, 56, 5,219,136,183,189,229,
- 6,143,114,241,101,120,210,144,245,197,112,186,195, 83, 99,109,101, 38,115, 41,113, 22, 77,152,167, 82, 66, 42, 9, 66,147,245,
-132,212, 0,227,174,130,132,144,210, 64, 58, 65,236, 48,224, 78,145,183,150, 91, 28,115,238,229, 25, 47, 93, 23, 10,101,211,120,
-127,163, 84,163,165, 73,163,211, 57, 87, 30,165,184, 46, 48,226, 73, 76,201, 4, 45,184,107, 35, 40,101, 37,105, 33, 78,103, 93,
-206,171,207,168, 77,158,242,214,234,165,120,206, 45,240,239, 57, 83,188,203, 36,252, 62,157, 9,239,170, 51,196, 46, 48,105, 37,
-147, 42,160,151, 76, 16,146, 37, 96,109,169,129, 27, 92,118, 83,208,119, 32,181,143,145,135,112,125, 25,188, 13,143, 54, 16,113,
-223, 19, 82,137, 17,172,244, 16, 72, 60,170,157,125,165,213,191, 93,246, 49,126,194, 16,247,212,254, 92,102,175, 95,155, 82, 46,
-162,100,151,208,236,151, 84, 86,135,157, 83,143, 45, 96,146, 94,142,181, 28,149, 31,231, 39, 61,245, 66,141,115,205,137, 57,175,
- 1,247, 75, 76, 35,195, 76,148, 41, 72,125, 46, 37, 67,149, 50, 80, 63, 89,178,122,100,246, 29,245,245,218, 59,147,164, 45, 78,
- 62,215, 50,202,148,134,101,254,133,244, 62,145,140,180,188,124, 11, 56,232, 71, 67,171, 83,148,233, 49,170, 13,190,247,248, 44,
-245,182, 90,104, 56,144,150, 39, 33, 63, 10,154,125, 67,225,241, 20,158,202,245,193,243,213, 56,106, 88,146,193,203,105,235,239,
- 59, 19,191,201,199,127,158, 23,202,218,157,233,146, 24,236, 81,136, 80, 46, 1, 43,107,143, 46,174,130,197,183, 3,169,212, 47,
-102, 23,138, 45,142,166,222, 16, 42, 27,183,108,211, 81, 10,232,163, 70,247,155,186,155, 13,174, 83, 92,132, 0, 8,170,165,134,
-192, 6,115, 39, 5,106, 72,203,136, 86, 73,233,166,207,131,205,208,115,108,174, 89,118,133,206,234,163,216, 59,146,166, 20,169,
- 42, 82,136,161, 93, 77,252, 49, 42, 33, 4,225,182,215,204,148,185,216, 20,171, 61,198,186, 27,110,114,132,166, 53, 69,148, 59,
- 30, 90, 23, 25,101,236,171,154, 43,201,240,223,133, 36, 17,241, 35,145, 74,229, 39,161,215, 63,238,253,167,145,106,238,109,193,
-110,177, 27,154,158,103,166,165, 71,109,208, 75, 65,135,207,188, 66,117,149,227,252,159, 41,228,233,219, 3, 75,181, 66,188,109,
- 27,157, 72,221, 61,223,199, 99,123,219,220, 65,219,108, 51,192, 88,210, 85,228, 53,174, 76,116,104, 30,157,201,185,229, 35, 0,
- 2, 19,125,224,147, 75, 37,239,101, 33, 13,213, 69,250,103,114, 80, 10,102,173, 46, 58,164,199,113,180,212,163,184,159,141, 18,
- 38,180,144, 27,150,219,136,255, 0, 40,194,218,193,244,234, 52, 13, 53,152, 76, 85,228, 75,126, 75,175, 83,218,112,212,170, 11,
-111, 28,170,135, 77,132,169, 78,242,115, 15,209,175, 45,242,143,153,236,117,227, 97,231, 85,171,148, 38,109,155,155,154, 91, 20,
-248,232,126,139, 84, 87,199, 38, 34, 85,134,223,163, 74, 82,186,185, 28, 40,126,141, 95,205, 7, 30, 67, 69,110,125, 33,219, 19,
-109,119, 58,172, 90, 66, 93,116, 66,166,211,214,225, 63,160,250,214, 82, 3,169, 64,233,241,150, 27,112, 39,168, 3,155, 62, 88,
- 58,244,144,243,106,233,148, 11,197, 35,128,123,129,109,205,246,238, 6,199,184,235,108, 71, 42,184,155,216,242,188,198,154,162,
- 95,237,180,208,232,140, 11, 90, 66,236,136,172,189,245, 3,160,145,212, 16,122,249, 73,227,159, 17,187,137, 50,231,190,101, 63,
- 18,112,228,140,252,162,176, 30, 62, 10,228, 73, 82,164, 22, 95, 72, 63, 2, 91, 10, 66, 22,112, 8, 82, 66,185,126, 28, 29, 79,
-145, 81, 80,168, 42, 68,213, 63, 12, 37,188, 63, 45,130,209,128,132,156,150, 26, 75,203, 73, 74,254, 39, 10,138, 92, 67,124,164,
-229, 42, 25, 25,186,221,245, 35, 87,185, 43, 18,155, 90,227, 77,126,164,251,143, 7,129,118, 51,188,178, 11,120,144,148,242,135,
- 91,232, 71, 50, 10, 92, 36, 36, 39,211, 88,139,213,131, 77,117,196,212, 27, 16,219, 83,220,225,196,169, 47,211,101,161, 71,194,
- 11, 92,133, 4,174, 9, 66,203,105,113,183,145,240,248,193,124,202,108,130, 38, 34, 59,179, 29,137,125,253,230,246, 63,127,165,
-250, 13,186, 11,218,248,225,108,186, 60,159, 36,202,104, 33, 80,239, 79, 18, 6,232, 36, 44,108,206, 88,216,171,134,102, 58,137,
-189,193,232,183,182, 51,138,107,197,167, 35,145, 32,194, 75,137, 45,162,170,204,129, 26, 59,172, 0, 57, 16,250, 88, 42, 67,173,
-168, 44,132, 33, 97,105, 81, 89,194,193,192, 15, 21,183, 34, 93,189, 17,133,173,196,213, 88,150,133,188,239, 51, 44,199,149, 29,
- 45,142, 86,210, 82,135, 2, 38, 68,112,144,144,148,168, 41, 39, 32,133, 0, 2, 89,200, 80,154,117,109,186,212,100,199,139, 80,
-101, 13, 33,216, 78,199,114, 51,238, 37, 74, 91, 78,189, 27,148,178,231, 80,164,172,130, 9, 41,201,238, 14,179,250, 11, 83,227,
-182,194,154,145, 2,161, 25,212,187, 44,196, 66,213, 18,124,111, 5,107,100,166, 20,148,169,198,211, 12,115,175,153, 42, 74, 80,
- 70, 78, 78, 51,166,186,192,172,178, 6,109,136,220,117,189,189,227,117,177, 30,160, 27,119,233,139, 14,158,162, 39,142, 0,101,
- 66, 93,128, 10,247, 70,216,130,108,214,176, 96,108, 65,243, 95,175,187, 27, 7,111,210, 27,168,182,211,116,199,151, 78, 75,232,
-110, 83,209,169,177, 26,125, 10,125, 72, 91,143,187, 34, 34,142, 34,172, 0,129,128,132, 45, 73, 72, 9, 43, 56, 80,206,163,202,
-184,216,125,223, 26,158,154,225, 56, 80,114,142,180, 69,150,162,178,150,227, 46, 61, 62,106,200, 76,129,146, 74, 91,146, 28, 87,
- 54, 67,121, 73,211, 37, 69,159, 9, 83, 19, 42,175, 34,171, 13,106, 74,227,154,156, 84,200, 79,185,120,108,229,135, 25,169, 81,
-213,250, 96,176,134,208,128, 65, 64,248,130,145,141, 58,116, 74,219,236,148,159,175, 97, 86, 33,180,182, 20, 87, 17,108,199,169,
-180,216, 91,106, 47, 79,130,128, 61,245,230,208,113,204,207, 34,215,156,148,247,212, 94,170, 25,163,109,148, 76,140, 5,245, 41,
-218,254,142, 8,213,107,116, 44, 47, 97,229, 55,198,205, 75, 85, 29, 71,255, 0, 73, 68, 85, 96,178,164,159,111, 98,202,179, 71,
-229, 98, 69,134,130,202, 77,238, 0, 83, 96,239, 82,107, 84,106,164,152,205,214, 16,245, 17, 75,247,101, 22, 43, 1,232, 83,105,
-203,136,165, 50,229, 98, 34,151,202, 17,226, 61,202,145,202,178, 48,162,146,142,250,216,251,105,128,186, 36,170,100,211, 22, 67,
- 77,176,209,122, 60,214,153,145, 30,167, 10, 65,240,214,164,164,158, 79, 13, 73, 45,115, 37,224,181, 33,120, 81,230, 79, 42,131,
- 59, 69, 16,106,201,139, 50, 64,129, 87,142,243,161,150,146, 80,211,168, 90, 71,134,148, 54,236, 25, 3,150, 43,129, 5,101,229,
- 41, 92,199,162, 51,130,112,245,208,236,136, 14, 52, 88,165, 63, 50,139, 34, 51,197,246, 98, 51,239, 14, 83,216, 91,139,113,121,
- 76, 73,110,172, 58,223, 48, 72, 13,160,134,135,112,144, 6,154,194, 70, 23,117,229,143,129,216,236, 71, 80, 47, 96,118,184, 4,
-222,231,114, 6, 41,222, 44,205,105, 4, 73, 28,205, 45, 7, 45,193,177,250,212,141,149,187, 31, 44,137,107,144,124,172,109,102,
-184,117, 1,243, 59, 82,158,154, 90, 88,167,200,142,181,210,164,169,181, 70, 81, 89,144,237, 61,164, 97, 8,142, 95, 89, 89,114,
-156,227,128, 6,143, 58,148,202,185,146,172,161, 73, 41, 58,230,163,187, 82,190,163,190,164, 15,240, 15,170, 97, 12,245, 79, 47,
-184,169, 46, 41,174,193, 14,169,111,140,231,161, 40,198,122,227, 89, 5, 18, 3,176,154,143, 6,166,202, 9, 1, 73,143, 61,174,
-116,199,117, 99, 11,126, 47,134, 18, 84,193,229, 10, 37, 10, 37,180,225, 64, 40, 28, 13,100,168,166,120,245,217, 15,133,120,168,
-146,220, 87,219, 46, 28,171, 6, 52,112,158,128,225, 60,175, 70, 87,197,205,140, 40, 16,112, 64,214, 42,193, 90,101, 10,126,211,
-169,184,233,123, 31,188,110, 72,220, 3,125,207, 67,138, 55, 49,206,155,219,234, 42,132,129,216,197, 32, 46, 15,145,195, 50, 2,
-235,191, 86, 80, 85,250, 18, 70,227, 86,166, 57,149,157,109,178,148,183,224, 71, 1,183, 35,200,142,217, 40, 25, 72,109,212,201,
- 82,185, 20,122,144,165,158,100,158,128,171, 25,198, 50,253,209, 40,136, 75,137, 56, 90, 16,244,102,139,216, 60,229, 92,174, 20,
-160, 14,224, 59,241,225, 62,105,200,244,214, 51,107,195,108,165,151, 16,146, 22, 20,133, 20, 2, 74, 64,121, 60,138, 65, 87, 76,
- 96,117,207,114, 8,243, 3, 79, 5, 53,182,146, 64, 57,193,111,145, 35,178, 84, 80,226, 28,232,165,126,162,177,219, 31,234, 19,
-220,105,223, 44,132,121, 88,223, 77,198,253,250,119, 62,253,247,252,113, 75,113, 30,119, 60,175, 32, 4,249,186,239,191, 91,252,
- 54,176,222,214,184,191,174, 50, 89, 20,195, 81,143, 72,144,180,173, 79,134, 84,226,176, 3,206, 10,131, 10, 49,156,120,149, 12,
-182, 3, 33,100, 31, 37,188, 73,238, 14,172, 46, 81, 36,215,106, 78,136, 82, 13, 46,159, 29,244,173,218,140, 98, 3,147, 86,130,
-148, 42,159, 79,101,212,148,184, 90, 82, 9,117,242, 64, 39,157,182, 86, 64, 39, 89,163,142, 4,210, 26,113,106,112, 18,169,104,
-109, 13,148, 32,151, 20,219, 9, 95, 85,156,163, 43, 88, 5, 64, 16, 3,157, 50, 73,215,199, 43, 45, 65, 83,113, 91, 14,161,136,
-145, 25, 84,196,198, 1,231, 22, 91, 74, 20,150,219,107, 33, 42,116,156, 18,165, 16, 57, 84, 58,142,131, 82, 86,141,140,129, 80,
- 14, 99, 42, 29,250, 93,128, 39, 98, 55,238, 64,233, 99,214,219, 98,176,130,186,186, 61, 66,153, 3,200, 12,138,151, 0,172,107,
-174,228,216,130, 24,139,170,168, 32,128, 73,218,246, 35, 9,159, 71,167,209,161,120, 20,248,236,194,134,100,203, 91,178, 29, 95,
-186,251,203,202, 90, 28,149, 81,118, 76,215,143,188, 39,196, 74,202,151, 33, 97, 35,155,151,196, 40, 72,195, 37, 84,174, 73,169,
- 84,154,106,129, 77, 18,105, 49, 10,229, 68,157, 80,241,218,102,167, 32,224, 55, 84, 90, 25,111,222,102,198, 15, 5,251,154, 64,
-109, 11,229, 46,180,231, 39, 33, 15,133, 74, 59,117,246,189,234,168,242, 95,136,212,199, 36,199,182,218,105,167,105,241,249, 74,
-146,211,181,151, 92, 73, 53, 87, 2,149,206,150, 9, 76, 54,221, 64, 80,109,197, 32, 43, 88,189, 94,149, 6, 43,205,191, 86,230,
-247,217,135,221,162,211,216,142,170,140,185,124,205,173, 45, 70,131, 10, 58,124,106,140,226, 75,124,160, 0,202, 50, 8, 82, 18,
- 57,198,220, 72,224,134,210, 45,176,191, 96,122, 95,208, 6,189,206,219,216, 29,247,196,207, 33,174,134,153,155,219, 85,171,171,
-156, 48,220,187, 89,207, 83, 96, 67, 75, 32, 91,221,193, 17, 45,216,175, 48, 50,178,224, 84, 74, 44,154,236,184,109, 72,113,234,
-237,116,165,197,177, 54, 82,143,185,194,138,164,184,249, 16,105,241,143, 44,103,208,121, 50,164,146,226,240,182,220,119, 4,235,
- 37,164, 65,153, 92, 80,137,106, 70,139, 82,125,151,164,197,155, 93,168,123,196,123, 46,150,251, 8,240,252, 17,238, 40, 42,185,
-170,222, 34,155, 80,141, 16,150, 88,230, 75,114,101, 51,130,141,103,113,118,222, 84,228,199,126,232, 95,240,106,136, 16,215,189,
-218, 86,235,201, 53,185, 52,220,146, 81,114, 92,236, 97, 49, 90,112,128, 36,194,166, 1,146,181, 52,236,199,138, 84, 53,147, 85,
-149, 73,182, 92,129, 6,223,109, 81,169,207,198,147, 79,163, 83, 41,232, 5, 82, 81, 29,145,152,108,180,165, 54, 91,134,211,156,
-200,113,210, 18,218, 3,193,103,153, 99, 39,101,145,165, 85,144, 39, 49,211,208,128,187,218,251,146, 58, 53,134,171, 94,215, 4,
- 88,173,147,175,226,120,170,103,246,122, 6, 21,149, 44, 27, 66,168,189, 44, 37, 67, 23, 6, 68, 33, 36, 54, 58,210, 58,127,236,
-202,171,173,165,149, 12,145, 11, 77, 10,223,167, 90, 47,203,153, 93,154, 39,203,117,178,229, 86,225,153, 22, 43, 10, 90,217, 97,
-108,173,148, 73,109,194,197, 34,138,149,128, 98,176,158, 86, 18,160,180, 32,169,197, 18,171,243, 12, 71,188, 39, 42,174,205, 61,
- 18, 45, 72,169, 45, 52,144,181, 82, 30,158,238, 86,184,179,219,134,160,218,163, 82,146,160,225,109, 14, 58,219,178, 20, 76,135,
-249, 18, 91,109, 56,227,176, 25,153, 75,137, 81,185,166,184,212, 78, 68,193,165, 81, 33, 56, 20,195, 85, 39, 10, 11, 82,165, 48,
-193, 47, 87,234,137,240,209,202,128,158, 72,168, 70, 91, 66, 74,214,240,187,209,162, 25,147, 29,241, 80,243, 20, 40, 45,185, 21,
-234,107,146, 57,170,243,146,235,172,178,227, 19,125,225,132, 36,196, 91,197, 42, 68,112,151, 28, 82, 94, 80,113,210, 62, 13, 58,
-210,106, 66,183, 75, 35, 17,168,117, 97,109,198,228, 16,111,212,237,190,224, 90,197,113, 23,172,103,117,158,190, 74,182,147, 48,
- 80, 99,105, 64,211, 10, 1,101,209, 78,168, 99, 38,107,105,141, 52, 17, 20, 68,221,110,162, 55, 14,212, 81, 18,171, 73, 69, 54,
-151, 80,170,193,183,229,135,231, 85, 42,149, 41, 47, 79,143, 80,247, 20, 52,203, 16, 98,229,240,126,168,115,170, 31,125, 39,149,
-208,202, 26, 10, 40,231,230,113,232, 15, 68,139, 87,166, 53, 26, 60,198, 94,122, 51, 68, 71,148,250,148, 25,103, 63,162, 83,229,
- 41, 41, 99, 37, 69, 44,160, 37, 60,201,103,152,129,206, 20, 27,135, 43, 8,141, 22,153, 2,220,110, 28,171,174,170,134, 89,142,
-153,169, 66, 35,209, 88,108,174, 57,126, 80,125, 99,220, 96,135, 91,113, 92,141,161, 33,199, 27, 75,101, 92,216, 34,241, 2, 53,
- 62,152,134,101, 34,161, 49,233,206,169,137,117, 56,178,156, 90,231, 45,245,190, 29,112,130,215,199,159, 17, 9,113, 10, 64, 72,
-240,130, 80, 82, 83,212, 76,105, 31,217,222, 25, 64,230,104, 8,110,162,224, 1,102,223, 85,193, 99,246,172,183, 96, 73,103, 47,
-101, 81, 84,230, 84,205, 52, 18,164,134, 72,163,156,202, 35,140,221,164,118, 98, 85,165,150,214,109, 39, 74,162, 72,246, 71,229,
- 5, 65, 26,139,159,203,207,219, 83,176,204,240,223,237, 79,227, 35,111, 41,204, 69,139, 67,175,238, 80,222, 59, 98, 36, 38,195,
-113,161,208,183,162,149, 7,112,132, 52,182,144, 3,101,170,213,102,182,215, 40,232,148,176,158,221,135, 48, 73, 36,100, 96, 99,
-184, 61,250,246,212,159, 62,150, 45,137, 6,222,246,135,108,254,224, 66, 67,137,123,117, 56, 94,183,220,168,135, 22,209, 74,230,
- 88, 87,181,215, 66,109,109,161,180, 2,209, 52,250,172, 0,176,165, 45, 68,165, 61, 64, 1, 34, 48, 64,228, 21, 18, 15,251, 56,
-236,115,211, 86, 37, 3,171, 82, 68, 23,236, 70, 90, 53,182,195, 76,108,209,131,111, 66, 22,227,189,136,190,247,199, 60,230, 49,
-152,171,170, 80,253,162,193,143,184,200,162, 66, 62,237, 86,255, 0, 76,120, 41,206, 48,160,113,145,142,217,207,150, 15,125,123,
- 0,227,148, 14, 92,116, 63,209,247,244,215,220, 39, 25, 35,191, 83,230, 71,159,125, 87,109,178,242,146,134, 70, 92, 87, 96,172,
- 36, 4,128, 84,165, 45, 71,162, 80, 0, 36,146,112, 0,201,233,173,195,210,228,218,223,187, 26, 93,174,118,199,134, 90,117,213,
- 33,166,208,167, 28, 90,185, 80,132, 2,165, 40,158,192, 1,174,165,240, 33,236,163,226, 11,141,133,195,187,161,181, 31,108, 54,
- 57,185,170,102,161,188,215,148, 9, 46,210, 42,138,140,234, 81, 54,157,182,214,243, 78, 53, 39,113, 42,232,234,133, 62,203,140,
- 81,226,186,164,251,205, 65, 68, 45,141,111,127,178,155,217, 11, 7,117,232,244, 30, 38,184,174,161,203,107,103,231,248, 21,109,
-173,218, 73,190,241, 78,168,239, 51, 13,168,169,155,182,242,228, 90, 36, 81,246,136,186,131,238,144,210, 90,151,113,134,203,171,
- 91, 20,149, 36,203,150,181, 2, 36, 72,241, 41,180,202,125, 62, 5, 42,149, 74,131, 14,149, 68,162, 82,162, 70,166,209,168,180,
-168,109, 37,152, 52,202, 93, 50, 19, 72, 98,155, 79, 98, 58, 66, 90, 97,150,208,219,105, 24, 66, 83,166, 25,243, 9, 42, 36, 48,
-211, 63, 42, 59,216,200, 44, 75, 90,215, 17,131,112, 7, 91,187, 2, 54,178,171, 92,178, 89,124, 43,192, 18,102, 49, 69,153,103,
- 74,240,208,200, 3, 69, 2,157, 18, 76,166,196, 60,141,179, 69, 19, 15,178, 22,210, 56, 58,131, 70,186, 89,244,203,132,143,102,
- 23, 8,220, 37,199,165,207,176,182,222, 37,237,184,240,218, 71,188,239, 38,234, 68,167,221, 55,203,178, 8, 5,199,104, 48,157,
-143,245,101,141, 16,184, 57,155,143, 75,138,210,217, 36,230, 83,228,243,158,151, 69,160,187, 49,126, 36,133, 58,235,129, 35, 46,
- 60, 86,226,143, 94,131,153, 68,246, 24, 3,200,118,213,202,135, 74,248, 27, 28,132,168,164, 41, 71, 3, 60,167,178,137,239,204,
-123, 15, 64, 52,232,211,232,248, 74, 64, 64, 35, 29, 71,146, 73,235,146,113,212, 96,254,205,107, 90, 40, 75,114,198,159, 86, 38,
-236,109,251, 76, 73, 38,219,253,162,109,208, 91, 22,226, 81, 83,208,192,148,180,116,233, 71, 78,189, 18, 53, 84, 94,219,144,182,
-187, 30,236,110,205,212,155,226, 36,191, 73,131,133,184, 14,237,254,198,241,107, 70,166, 37,170,205, 10,172,246,199,238, 12,230,
- 90, 72, 51,232,213, 6,101, 92, 59,127, 50,122,210, 50,227,241,167, 51, 87,134,218,213,158, 86,166, 6,193, 0, 1,168,116,169,
- 41, 33, 39,204,245,237,215, 39,203,251,117,250, 82,251,111,182,226,159,122,123, 47,248,158, 68,212,183,205,103,209,237,109,192,
-166, 56,164,149,248, 53, 59, 98,234,166, 45,165,183,223,145, 74, 98,100,132,103,253, 85,145,219, 95,154,217, 61, 0, 4, 2, 74,
-134, 8, 61, 7, 49,198, 52,227,147, 73,255, 0,165, 66, 15,216,112,195,220, 36, 0,159,222,225,201,223,169,197, 33,199,180,137,
- 77,196, 45, 34, 0, 5,116, 17, 74, 69,250,190,167,136,155,109, 98,194, 32,222,246, 36,247,192,206,116, 56, 35,174, 1,207,238,
-253,186, 25, 65, 61,243,212,246,243, 7, 26, 53,192, 0,199, 55, 83,220,158,189,254, 95,142,132, 88, 87, 83,128, 65,237,142,152,
-192,193, 56,199,174,159,241, 15,192, 46, 18, 50, 66,124,241,246,227,185,249,232, 98, 58,147,216,252,251, 39,236, 30, 90, 53,207,
- 47,191, 65, 58, 65,207,175,110,189,250, 16, 14, 52,178,244, 30,252, 20,218,254,159,207,182, 5,112,227, 39,190, 51,142,131, 31,
-120,199, 78,154, 17, 68,242,243, 31,159, 40,251,126,126,154, 37, 72, 61,249,137,198,122,121,118,238,122,245,213, 5,161, 68,100,
- 16,191, 34,124,135,231,247,232,227,183,207,254, 48,111,134, 5, 42, 36, 16, 71,124,114,231,182, 61,126,122, 29, 68,103, 25,234,
- 1,232, 6, 0,235,229,162, 84,147,145,215,246,116, 0,106,130,240, 62,121,237,229,142,217,251,124,180,162,141,133,183, 31, 63,
- 61,177,144, 1, 62,151,192,138, 73, 25,229, 57,201, 57,255, 0,103,240,208,221,251,232,197, 2, 50, 70, 0,235,156, 30,227, 61,
- 50, 61,116, 50,192, 29,129,245, 39,203,236,252,116,170,117,249,219, 10, 40, 4,116,183,200,197,185,230,249,199, 41, 42,198, 70,
- 82, 58,103, 25,238, 71,150,116, 51,141,184, 1,235,202, 2,112,144, 0, 36,143,159,167,158,174, 42, 0, 30,132,158,249,207,174,
-132,121,178,164,158, 85,169, 7, 39, 24,254,119,219,234, 51,165,176,110,158,235,226,222, 82,148,255, 0,148, 36,147,212, 99,211,
-208,244,239,165,175, 69,181,182, 0, 82,148,225, 61, 73,192,233,242,239,165,161, 99,233,140,227,210, 7, 92,249, 15,233,252,157,
- 20,130, 49,129,223,185,251,245, 65, 32,224, 12,117,234, 63, 19,255, 0, 13, 86, 64,238,124,199, 76,122,104, 96, 96,148,167, 3,
-175, 66,127, 28,126,227,253, 90,168,210, 0,200, 56, 61,207, 79,158, 58,231,243,223, 84,210, 73,233,142,131,166,126,239,219,162,
- 91, 73, 57,233,223,215,207,166,147,112, 55, 61,255, 0,241,129,143, 96,121,224,159,199,161,251,180, 91, 63, 23,113,203,215, 25,
-238,123, 13, 83,109, 35,160,235,215,175,223,141, 18,148,131,208,116,233,158,223,102,147,193, 77,141,238,118,193, 72, 79,216,122,
-118,249,250,227,203,207, 85,146, 1, 56, 61, 61, 49,251, 7,109, 14,216,230,198,125, 50,122, 99, 68,160, 2, 64,198,125, 63,225,
-164, 90,192,144, 62,122, 97, 28, 86, 29, 14, 58,140,121,159, 62,158,186,218,174, 11,120,121,159,197, 23, 18,123, 87,179,145,130,
-147, 79,185,110, 40,206,220,178, 66, 73, 76, 27, 74,150,164,207,184,229,172,143,213, 6,158,202,219, 7,253,105, 35, 90,172, 1,
-206,113,144, 59,143,159,245,234, 71,254,193,173,178, 98,146,141,245,226, 34,165, 22, 63,188, 82,169,144,118,234,211,150,250, 66,
-158, 98, 93, 83, 19,235,142, 70,200,253, 26,253,223,221, 91, 42, 24, 61,198,152, 56,151, 50, 57, 86, 77, 91, 84,173,166, 80,186,
- 80,142,161,155,107,143,122,130, 91,254,220, 76, 56, 7,134, 79, 24,113,142, 65,195,218, 75, 67, 95, 58,243,173,255, 0, 2, 48,
-101,152, 92,116,213, 26, 20, 7,179, 48,196,149,103,214, 45,203,102,139, 77,179,109,136,172, 83,237,139, 54,149, 2,215,182,224,
- 65, 9,106, 37, 62,145, 72,142,136, 76,165, 49,147,211, 5, 45,100,145,212,231, 39, 86,118,235, 42,143,200,227, 47, 37,210,234,
- 18, 24, 83,124,167, 5,120, 37, 7, 39,169, 39, 31,142,154, 22,235,241,228,173,213, 7, 98,188,149,229,164,178,233,228, 89, 82,
-186, 30,101,122, 21,107, 39,167, 33,181,182,204, 85, 70,113,109, 7, 2,195,161,204,169,167, 50, 20, 18,130, 15,196, 61, 53,201,
- 85,114,187,206,236,205,119,148,147,111,221,239,252,122, 91,240,246,231,132, 50, 26, 12,191, 43,166,165,142, 30, 84, 80,168, 93,
- 32, 13, 58, 85, 84,105,177,176, 1,109,176, 91, 3,211, 99,135,136,196,145, 38, 52,105,210, 76,121, 79,186, 10, 76,117,169, 45,
-200, 65, 31,170,160, 65,233,140,104,132,199, 66,144,161, 62, 50,221,107,148,150,150,164,248,168,109, 67, 33, 74, 86, 6, 71,200,
-131,160, 41,209,224, 56, 99,202,116, 72, 15, 50,217, 66,222,125, 75, 64,192, 24, 0,163,205, 35,215,229,172,162, 35,108, 56,218,
-125,222,104, 97,121,193, 42, 81,113, 50, 18,162, 73, 1,181,118, 3, 58, 69,199,148,148, 66,227,107,244,216,237,190,219,127, 28,
- 18,170, 83, 9, 43,230,178, 30,161, 74, 4,185, 54, 11,164,181,128, 27, 95, 77,200, 59,139, 97, 81,169,202,247,134,228, 67, 90,
- 39, 71, 36, 55, 34, 19,199, 15, 6,193, 24, 91, 89,234,160, 7,109, 86,220,221,191, 69, 90, 85,181,115, 68, 96, 46, 68, 6,140,
- 7,138,147,149,150, 82,160,166,208,188,140,168, 39, 39, 25,242,233,167, 58,137, 71,166,201,142,194,201,142,212,216,196, 6,229,
- 50,121, 11,153, 61, 65, 3,161,199,207, 78,207,240,125,201,244,162,195,141,165,106, 65, 67,236,188,216,248, 92, 90, 48, 74, 84,
- 7, 98, 83,144,126,221,106,152,228,100,145, 44, 64,101, 22,223,184,183, 79,141,173,235, 98,111,138,187,136,120,137, 99,171,130,
-101, 58, 30, 38,100,109, 86, 82,202,195, 78,228, 88, 56, 32,141,236,172, 58, 16,109,124, 91,182, 90,193,101,183,152, 82, 35,165,
- 30,248,200,113, 65, 41, 9, 79,140, 82, 57,198, 49,211,152,245,251, 78,155,223,104, 77, 33,251, 91,135,122,140,200,202, 44, 42,
- 69,199, 77,109, 75, 9, 39,197,247,120, 85, 7, 27,105,208, 6, 86,128,176,147,145,219,151, 56, 58,220,141,174,167, 53, 29,232,
-216, 70, 58, 14,152,232,133,143,214, 72, 31,205, 26, 97,253,170,148,143, 23,133, 86,229, 70, 46,101,187,202, 15, 56,105, 57, 89,
- 75,148,154,162, 84, 79, 78,191,171,143, 92,159, 93, 75, 50, 90,104,205, 42,203,166,242, 70,111,241,189,135,243,239,235,142,124,
-204,184,154,105,248,255, 0, 33,161,119,211, 75, 85, 83, 4,100,118,176,147, 86,254,237,133,254, 24,136, 5, 65,227, 38, 82,145,
-202,226, 39, 41,110,184,151,185,156,241, 27, 46, 17,149,180,210, 23,200,250, 75,169,109, 32, 45, 42, 64,235,207,202,174,244,225,
- 84,213, 6, 69, 67,223,225,189, 84,158,167,131,113,207,129, 29,150,216,138, 80,148,182,153,212,240,151, 19, 0,248,133,126,240,
-180,243,120,152, 79,110,128, 7, 61,166, 95, 74, 93, 83,147, 93,247,105, 92,175, 73,101,190, 69, 71,105, 74,202,153, 10,108,130,
-212,142,100,163, 40, 88,230, 36,130,160, 83,202, 52, 77, 26, 68,232,229, 30, 27, 79,123,184, 37, 79,205,166,196,101, 85,116,182,
- 73, 71, 35,108, 72, 90, 68,166,220, 46, 4, 56,180, 23, 84,209, 5, 97, 7, 3,149,225,214,234,123,129,216,253,221,239,113,176,
- 23, 3,174,219, 95,167,161,116,245, 3,200,177,221,159,162,132,176, 97,182,229, 73, 27,128, 53, 11,223,179, 1,176, 39, 14, 61,
-179,110, 49, 87, 92,138,164, 73,146,233,178,165,150, 16,227, 84, 69, 42, 50, 94,109, 10, 71, 71, 96,168, 22, 37,159,133,105, 75,
-193, 9, 83,132,168, 41, 95, 14,158, 74, 45, 26,235,147, 34, 76,184,244,134,171, 40,104,204, 83,146, 41,175, 68,162, 76,140, 26,
-117, 76,161, 51,233,207, 31, 0,115,161,149,165, 62, 10,135, 57, 87,234, 12,157, 54,148,138,123, 5, 81,133,159, 38,108, 39, 22,
-195,242,231, 68, 66,152,157, 2, 68,128,208, 83,174, 57, 5,247, 3,144, 18,140,142,105, 41, 91,107, 89, 89, 79,134, 84,158,109,
-108,157,156,170,253, 2, 24,110, 77, 1, 74, 65,106, 28,151,106, 52, 57, 77,206,132,236,118,255, 0, 72,150,159,167,169, 41,148,
-219,202,116, 37,124,170,241, 18,165, 16, 50, 10,136,212,110,190, 89, 0,102, 91, 57, 54, 10,173, 96,125, 45,246,150,247,176,217,
- 88,139,245,185,184,195,137,205,164,100, 34,153, 99,169,146, 43, 14, 92,202, 82, 66,118,230,106, 62, 73, 25, 71, 75,134,111, 41,
- 23, 70, 4, 1,238,148,138, 91, 79,179, 2,163, 42,161,107, 43,221,217,145, 13, 23, 52, 5,211, 28, 76,196,148,190, 35,243,188,
-223,129, 37,188,163,195,105,198, 94, 1,193,212, 37, 68,105,199,141,108,212,103, 60,153,146,233, 80,100,164, 73,113, 42,158,134,
-163,128, 66,210,128,223, 59,193,178, 90, 87, 40, 29, 82, 74,185, 79, 84,231,174,179,235, 33,170, 93, 82, 77, 65,154,147, 17, 46,
- 76,178,176, 41, 85, 40,140, 45,104,144,248, 64, 74, 13, 62,115,105,115, 41,101, 46,164,185,225,171,144, 31,132,142,153,120,104,
-155, 91,103, 58,196,127,118,165, 59,108,201,150,211, 50,140,139, 86,167, 83,165,188,209, 10, 66, 17, 17,112, 22,243,140, 60, 16,
- 72, 81,231, 97,105,115,147,153, 93,245, 22,146,172,134,180,138,209, 72, 58,244, 55,189,174, 71,217, 35,212,143, 54,251,139, 30,
-173,181,252,117, 14, 86,239, 28,240, 77, 72,225, 81,117, 42, 44,182, 50, 45,220,171, 22,130, 84,251, 42, 72, 28,237, 90, 65, 85,
- 58, 66,227, 1,178,236,216, 17,129,148,194,170,116,121,146, 79,188, 38, 93, 38, 95,133, 10, 82,217, 78, 91, 18, 24,229,114, 60,
-196,167,194, 87,134, 28,105, 10,115,149, 65, 71, 7, 26,218,107,126,109, 90, 10,162,154,132,152, 21, 33, 32, 55,133, 48,201,165,
-212, 26, 80, 33, 63, 20,102,159,113,167,222, 82, 65, 82,130, 11,105, 73, 39,225,199, 46,172,180, 45,177,175,198,113,230,233,151,
-117, 62,124, 98,178,148,183, 92,183,144,196,137, 9, 81,248,202,103, 82, 28, 65,109, 73,194,146, 20, 24,229, 74,149,158, 83,170,
-151,157, 90, 22,218, 91,117,139,187,113, 17, 73,181,172,155, 85,134,101,215,110,181,213, 99,253, 77, 72, 98, 68,134,161, 70, 15,
-171,149, 18, 12,199,165, 63, 30, 59, 44, 48,211,146,228, 58,240, 75, 8,112,149, 16,164, 80,243, 60,247, 50, 62,199,125,199,193,
- 73, 23,219, 99,125,143, 82, 0,239, 80,241, 39, 21, 71,196,149,209, 83, 82,212,174,107, 81, 80,226, 56,226, 80,230,162, 70,147,
-234,226,138, 33, 50, 71, 80,238,238, 21, 99,138, 13,122,152,170,128,194,195, 15, 28,122,147,162, 40,105,244, 58,132, 37,223, 18,
- 3,231,194,234,242, 86, 28,114, 59,165, 43, 30, 26,249,214,164,228,128,219,188,202,202,185,192,213,242, 37, 81,151, 30,143, 37,
-197, 57,226, 48, 3, 43, 43, 9, 11, 44,184,174,102,157, 83, 95,206, 90, 22, 66, 70, 64,200, 86,124,137, 13, 21,189,112, 82, 46,
- 11,114,151,114, 91,117,216,119, 21,175,113, 83, 33, 86,232,117,120,238,174, 76,106,173, 26, 82, 67,145,101, 66,125,192, 11,141,
- 45, 4,130,146,128,164, 41, 37,183, 57, 92, 66,210, 3,147,114,251,147,205, 46, 54, 83,202,178, 2, 20,226, 80,132,161, 96,169,
- 73, 10, 36,120,173,129,204,140,147,204, 20, 64,198, 59,150,162, 37,117, 42, 5,134,194,253,108, 65,216,110,125, 71, 75, 11,250,
- 92,139, 85, 45, 11, 75, 83, 85, 72,209,180, 51,196,206,140,172, 25, 25, 24, 29, 14,146, 35, 0,209,184, 32,134, 82, 46, 24, 18,
- 55, 26, 78,240, 90,213, 31,208,130, 86, 9, 4, 18,130, 72, 73,229, 80, 42,230,108,126,177,199, 46,112, 65, 25,207, 93, 58,209,
- 39,130, 16,145,159,214, 81, 60,157, 65,194, 72, 0,114,156,158,128, 96, 14,165, 71, 30,128,234, 46,217,220,212,153,116,202,237,
-193,112,215,105,214,197,177,108, 64,126,171, 91,175,213, 37,166, 53, 46,151, 79,136, 18,100, 76,145, 41, 67,244, 76, 39, 45,163,
-148, 5, 41,199, 22,134,154, 11, 82,210,147,121,177, 56,210,225,140,221, 20,202, 80,185, 43,180,231, 43, 85, 4,209,236,251,142,
-240,181,165,219, 54,109,110,224,123,244, 52,198,233,213,121,111, 56,150,164,191, 39, 34, 8,154,220, 70,223,145,203,133,133,114,
- 37, 82, 44,159, 40,174,158,140, 87,178, 8,168, 83,237, 72, 72, 38,202, 69,200, 91,220,219, 97,125,133,250,145,136, 77,103, 11,
-113, 14, 98,249,179,100,188, 59, 93,159, 12,160, 94,161,169,105,165,154, 56,137, 78, 96, 87,150, 53,100, 83,203, 28,198, 91,150,
- 88,129,148,174,133, 36,110,229,114, 79,128,205, 58,148,133, 31, 26, 20,100, 59, 45, 60,196,132,212, 39, 20,202,122, 50, 84, 70,
- 84, 27, 10,142,218,188,129,109, 73,206, 70, 5,137,201, 14, 46, 63, 35,110,172, 30, 98,236,137, 60,136, 43, 66,208, 65, 73, 5,
-196,225,111,114,171,166, 73,229, 9, 25,193, 3, 88, 95,215,200,158,183, 30, 67,206, 41, 43,116,248,202,117,107,231, 82,249,143,
- 62, 86,165,101, 75, 43, 42,230, 4, 2, 9, 87, 55,198, 14,178, 38, 92, 98, 67, 32, 20,251,201, 8, 88,240, 16,146,164, 41, 67,
-178,192, 65,194,147,145,216,231, 10,198,125,116,226,139,237, 51,153,109,101,216, 45,137,176, 85, 0, 40, 38,219,249, 64,243, 91,
-246,186, 2, 70, 32,113, 80,251, 44, 81, 44,131, 83,130, 89,141,129,187, 49,212,196,131,181,139, 18, 64, 38,192, 90,228,140, 52,
- 23, 71, 18,155, 27,182,247,133, 23,109,175,221,230,219,141,180,184,238, 72,209,228,209,169,247,213,194,220, 10,181, 86, 20,201,
- 78, 65,135, 62, 60,103,163,251,172, 38, 37, 75,102, 75, 81,164,214, 36, 66,142,250,153, 91,141,169,214,146, 84,119, 30,147, 66,
-165, 80,195,147, 41,232, 38,166,235,108, 25,149,121, 74, 76,250,173, 65, 50, 26, 67,141,184, 37,252, 94, 36, 34,194,208,182,218,
-140, 81, 20,180, 82, 89, 10,109, 73, 89,131, 15,180, 99,113, 31,190,120,217,226,105,247, 21, 37, 48,237,189,193,122,201,132,220,
-231, 27, 90,216,183,172, 58, 52, 11, 98, 37, 40,182,149, 41, 9,140,210,225,202, 12,167,155,149,105,150,162,177,158,154,222,143,
-101, 55,180,158,109,129,120, 91, 92, 38,241, 1,118, 84,165,108,197,201, 83,133, 67,218, 59,194,177, 84,117, 3,105,238, 58,130,
-145, 22,145,102,215, 42, 78,168,190, 54,130,167, 53,198, 99,180,128,239,129, 65,155, 33,153, 40, 74, 41,207, 76, 66, 18,163,204,
- 18,106,169,105,103,136, 44,113,146,169, 37,205,135,152, 11, 55, 64, 21,137,251, 98,218, 65, 1,129, 26,156,119,103,137,223, 65,
- 12,230,155,192,222, 23,241, 67,129,120,142,163, 57,207,166,202,105,115, 92,243, 34,120, 80,201, 36, 83,210, 71, 89, 57,203, 94,
- 45, 47, 81, 37, 18,146,173, 69, 62,179, 89,161,231,164,145, 39, 16,209, 79, 40,202,229,206,203, 50, 92,167,210,208,107, 18,249,
- 17,239,226, 44,119,234, 17,224,182,163,206,183, 36, 8,104, 87,141, 37, 68, 5, 37,149,169, 33,190,156,196,116, 73, 21, 52,233,
- 79,123,195,137,167, 34,158,186,130, 89,101,234,213, 77, 81,234, 87, 35, 64,168, 41,152,136,167, 35, 45,198,233,144,132,186,180,
-161,158,159,161, 42, 57,214,118,211,109, 82,144, 99,162, 60,122,107, 81,146,184,210, 98, 6,209, 25, 12,173,165,168, 41,185, 13,
-180,145,149,165,224,224, 89, 57, 61,193, 61, 53,141, 63,114, 33,233, 11, 85, 22, 2,170, 6, 42, 84,212,185, 46,120, 80,168,201,
-117, 77,148,182, 88,156,160,181, 73,125, 4,163, 41,105, 11, 32, 40,146,226, 20, 64,212,177, 40,249,104,218,136, 93, 29, 1,247,
-238, 71,235, 92,237,232, 58, 18, 54,181,252,231,165,168, 98,130, 44,186,134,201, 24, 5,166,121, 54, 99,112, 87, 94,233, 10,130,
-202,186, 81,249,136, 78,144,193,201, 44, 84,122, 5, 38, 28, 86,234,113,156,144,169,205,161,212, 57, 82,170,201, 76,201, 45, 60,
-163,153,137,113,197,182,159,113,143,202,130, 20,219, 0, 33, 33, 33, 36,173, 0,232, 37,215, 92,148,250,153,181,195,113, 24,204,
- 83,252, 40,144,178,220,218,116,212, 96,205, 77,188,203,169,196,146,181,168, 6,221,112, 41,150,139,220,205,165, 69, 32,139, 44,
-136,107,113,106,122,179, 49,215,100, 48,241,113, 20,248,234,113,186,107, 6, 70, 20,166,155,136, 28,230,125, 10, 89, 0,151, 66,
-148,164,164,149, 30,184, 24,253,199,122, 66,165, 47,234,152,208, 81, 88,170, 60,133,169,134,151, 37, 17, 89,142,182,144,160,195,
-138,116, 16,184,175,115,146, 26,228, 35,152, 2,144, 10, 70,182, 97, 64, 14,163,229,113,223,173,246,245,220,141,236, 46,119,233,
-208,144,112,239, 75,150, 79, 93, 50,162,150,205,103,109, 68,106,254,230, 52,186,181,201,144,170,200,168, 55, 28,194,177, 0, 89,
- 74, 58, 49,195,130,197, 46,151, 71,143, 89,156,136, 50, 16,226,147,239, 45,220,146,230, 75, 91,181, 22,228,134, 85, 46, 53, 65,
- 42,116,169,215, 27, 81,116, 21,143,136, 56,176, 83,223, 69,209,101,194,118,104,120,212,188,105, 41,116,182,242, 25, 83,206,149,
- 54,218,214,160,181,186,242,194,131,168,108,182, 83,205,250,200,108, 3,147,240,233,134,126, 83,142,181, 21,235,160,213, 20,137,
-105,109,136,245, 1, 33,149, 69,131, 86, 73, 74,228,162, 18,225, 47,194, 98, 66,176,143,133,208, 29, 73, 36,133, 44,128, 52,237,
- 91, 17,157, 91,145, 84,244,169,143,180,227, 68, 21, 75,109,133,243, 33,111,129, 20, 74,114, 56,241, 39,182, 84,174, 82, 70, 20,
-165,173, 69, 57,239,167,120,101, 42,241,198, 6,146, 55,181,138,219,126,164, 14,187, 16, 5,245, 16, 5,201, 45,115,133, 51, 76,
-165,169, 40,229,154,170,189,170,102,150,227, 88, 37,145,130, 42,169, 88,221,140,154,183, 83,169, 71, 40, 43,236,138, 6,155,195,
-227,233,107,174,155, 39,136,190, 10, 30, 97,107,118,164, 56,127,220, 70,158,146,160, 16,217,132,155,246,143,200,210,154, 35,155,
-222, 4,191,120, 37, 71, 9, 82, 86, 10, 64,235,168,152,132,228, 28,164,164, 19,215,231,143, 77, 73,155,233, 79, 95,204, 87,248,
-240,217,189,185, 66,217,147, 47,105,120,111,164,154,148,182,157, 83,138,126, 70,226,221,245,186,220, 86,150,133,146, 80,148, 83,
-104,144,212,158,249, 18,186,147,129,168,234,237,246,223,222, 27,165,119,219,150, 21,133,110, 86,174,219,186,237,172, 68,160, 91,
-118,213,189, 79,122,169, 91,174, 86, 39, 44, 34, 53, 58,153, 1,128, 75,239, 43,226, 82,212, 74, 91,101,180, 45,231,150,219, 72,
- 90,211, 98,229, 79,202,203,150, 89, 92, 34,171, 76, 88,147,176, 28,199, 55,185,216, 11,111,185,252, 49,198, 60, 76,139,250,126,
-189, 32, 28,197,102,132, 46,145,114,196,195, 16, 0, 0, 1, 44, 73,181,128, 4,182,214, 7,108, 96,193, 42, 89, 72, 66,114, 71,
-100,165, 36,149, 99,176, 0,119, 58,237,167,177,211,217,215, 3,138,221,197,169,239, 54,241,210, 85, 43,135, 45,155,171,194, 77,
-122,148,248, 83,108,110,166,227, 37, 13, 84,169, 27, 94,149,140, 21,219,145, 99, 42, 44,251,145, 77,156,169,135,162, 82,185,144,
-185,207, 4,246, 39,129,175,163,187,181, 22, 69, 46,141,184, 92,116,214,164,223, 87,121,101,186,140,141,132,177,171,110,211,108,
- 90, 17, 41, 14, 34,153,125,223, 20,181,162,117,229, 60, 3,201, 42, 45, 53,216, 84,224,161,200,151,229, 4,149, 43,177, 76, 91,
- 27,113,181,244, 24,150, 14,210, 88, 54,166,216,237,189,188,185, 31, 81,216,214, 37, 26, 21, 6,221,166, 25,110,243, 75,144,204,
- 24,141,132,174,107,238,225,201, 18, 29, 43,126, 67,129, 42,121,215, 23,130, 27,243, 44,205,164,167, 43, 26, 24,161, 39,118, 99,
-165,220,118, 10,191,105, 84,157,152,182,150,181,202,117, 86, 19,158, 18,240,238,182,106,218, 90,236,242, 5,138,150, 59, 56,166,
- 62,103,145,133,180, 9, 71,217, 84,185, 12,200, 75, 22,182,135, 80, 11, 12,100, 74,154,169,242,176,132, 54,203,109, 54,195, 44,
- 71,140,203, 81,226, 70,137, 29,164,179, 10, 4, 72,236,165, 45,195,134,212,102, 91, 75,109,182,148,182,219, 76,161, 8, 74, 80,
- 18,144,232, 90,112, 2,249, 93,117, 25, 66,146,209, 71, 66, 22,162,163,134,241,211,245,150,177,159,152, 58,106,104,113, 92, 82,
-188, 39, 22, 57,159,117,107,144,172,114,134,208,144, 20,235, 77,249,242, 37, 62, 27, 96,249,156,159,144,217, 59, 62,158, 23, 33,
-162,160,146, 26, 67, 60,168,236,129, 33,209,134,130,134, 48, 2, 26, 35, 31, 51,211, 77,180, 46,116, 52,199,224, 54,176, 30,128,
- 14,214, 29,134,219,219, 98, 14, 47,113, 78, 21, 72, 3, 87,123,254,238,135,222,126,240, 59, 91, 14,157, 22,158, 26,105,164,172,
- 5,168, 4,243,159,213,231,121,125,145,208, 99, 30, 93, 60,129,211,139, 26, 35,109, 54, 49,133, 17,220, 16, 79, 83,232, 60,250,
-246, 31,187, 86,138,100, 68,165, 73, 8,229, 81,142, 64, 42, 86,112,183, 22,144, 21,130, 15, 85, 36, 19,242, 28,218,203,218, 78,
- 49,240,169, 41, 70, 66, 74,122,165, 68,142,170,207,160, 57, 72,251,254, 88,216, 14, 90,230,251, 15,244,249,254,125, 48,211, 87,
-166, 54,210, 5,205,133,251,123,192,239,235,247, 3,211, 99,142, 83,123,105,234,144, 40, 62,204, 78, 45,213, 56,172, 10,158,223,
-193,161, 68,109,166,214,234,222,168,213,110,106, 44,120, 49,210,219,105,230, 42, 83,161,103,253,144,131,228, 53,249,148, 74,163,
- 86, 33,178, 31,157, 73,168, 68, 97, 73, 37, 15, 75,136,244,102,150,130,114, 10, 29,117,176,149,119,242, 39, 7,166,117,250,228,
-239, 21, 54,139,113, 81,162, 91, 21,234, 77, 58,187, 2,167, 53,185, 83, 41, 53,168, 81, 42,144, 36, 71,167, 16,227,102, 68, 9,
-141, 45,167,146, 37,173,178,146,164,171, 5, 25,232, 70,154, 39,182,131,105, 43,148,145, 68,173,237, 86,217, 86,168,230, 58,226,
-138, 93, 86,195,181,102,211,147, 24,131,204,194, 99,191, 75, 41,109,188, 19,219,175, 94,132, 30,186,205, 29,108,244,181, 21, 13,
- 12,113,200,178,104, 7, 83, 48, 55, 91,237,178,176,177,213,114,119, 55,218,198,215,196, 43,137,120, 6,163,136,230,167,205,151,
- 49, 90, 53, 72, 22, 32,134, 2,250,180,203, 43,106, 45,205, 75, 41, 46, 64,178,159,179,125,239,183,228,250,227,101, 60,188,224,
-140,142,128,244,207,144,199,168,198, 48,126,122, 21,192, 0, 3,155, 35, 57,233,215,215,166,191, 65, 78, 47,125,129,220, 19,241,
- 21, 2,167, 90,218,170, 35,252, 48,110, 99,233,144,252, 74,205,131, 29,202,134,222,212,103,172, 18,132, 92, 59,119, 53,242,134,
- 99, 45,220,115, 59, 76,122, 43,169, 25, 41,109, 88,229, 48,230,227,131,217,183,196,255, 0, 1,119, 35,112,119,146,205, 19,108,
- 74,180,247, 33,217,251,193,104,151,171, 59,105,118,144,165,248, 44, 49, 88, 13, 5,219,245,162,132,229, 84,234,138, 35,202, 73,
-200,108, 58,145,204,100,244,217,164, 82,178,199, 50, 26,105, 9, 0, 92,221, 24,250, 43,250,158,193,130,177,236,164, 11,226,164,
-206,184, 91, 56,200, 65,146,174, 1, 45, 32,219,159, 17, 47, 24,222,195, 93,194,188,123,216, 93,212, 33, 36, 42,187, 28,115,229,
-210,158,163,169, 24, 62, 96,119,253,255, 0,215,160,212, 66,187,167, 24,232, 58,249,116,198, 49,219,174,141,117, 3,152,133,229,
- 39, 56, 41,199, 80,122,227, 65,120, 97,165,169, 73,201, 43,238, 14, 79, 41,235,146, 61, 52,244, 14,192, 1,182, 35,160, 31, 92,
- 14,231, 32, 73, 74,186,231,203, 24,251,137,244,208,101, 3,148, 32, 40,165, 57,236, 60,201,209,133, 63, 26,186,168,231,201, 71,
-225, 29,187,121, 13, 81, 86, 50,122, 16,115,246, 12,124,177,163,142,222,236,103, 3, 40, 3,211, 29,186, 30,189,241,215, 57,208,
-203, 24, 36, 15, 67,140,252,199,207,203, 69, 47,208,103,166,115,229,147,129,215, 62,186, 25, 64,244,230, 29,124,143,175,113,215,
-212,233, 85,189,129,245,235,243,240,198, 69,172,126,125, 48, 42,129,193, 30,127,147,161, 85,246,156, 17,215,204, 2, 8,199,217,
-162,148, 58,146, 20,122,103,207,167,159, 83,161, 92, 42,235,233,230, 71,159, 95,232,210,139,215,173,176,170,143, 95,157,176, 50,
-206, 15, 76, 31, 80, 71,224,126,220,104, 85,168,227, 28,189,125, 61,126,206,154, 37,100,103, 3,200,156,244,243,249,232,117,227,
- 57,235,233,242,251,180,182, 50,126, 54, 56, 25, 99,175,159, 81,231,229,242,210,215,178,172,119,200,244,198, 14,127, 31, 61, 45,
- 40, 47, 97,229,191,200,255, 0, 79,155,224,126, 56,162,144, 64, 30,191,143,158,170,163, 62,125,137,232,115,220,250,106,159,236,
-213, 69, 35,156,131,204, 71,166, 63, 63,156,233, 54,219,160,220, 99, 35,227,108, 20,131,208, 14,228,121, 99,231,251,116, 80, 56,
- 35,184,249,250,104, 22, 57,146, 8, 81,234, 59, 31, 80, 60,243,247,232,209,216,117,207,207, 68,223, 77,200,244,254, 88, 24, 45,
- 24,207, 92,231,203, 69, 35,207,183,239,208,173,124,207, 92,126,127,118,138, 64,232, 79,221,249,252,249,105, 44, 16,142,190,251,
- 15,145,130, 80, 58,103,215,250,244, 66, 49,140,129,215,212,247,207,245,106,146, 48, 57, 79,150, 7,252,116, 64,193,232, 49,223,
- 31, 97,210, 44, 79, 91,236,127,211,253, 48,153,183, 97,138,128, 40, 5,103,208,224,119,235,169,123,123, 41,104,112,173, 78, 2,
-173,121, 73,134,167,220,191,111,139,158,183, 80,116, 97, 14, 1, 26, 65,131, 29, 41,199,146, 91,142, 0, 58,136,106, 65,193, 4,
-140,224,156,227,211,175, 77, 75,111,217,163,113,199,172,240, 9,183,233,105,231,146,187, 86,241,187, 45,249,133,131,143, 9,213,
- 78,114, 75, 97,196,121, 2,219,168, 32,158,224,244,213,121,226, 65,147,244, 28, 33, 13,148,206,186,191,254, 57, 45,142,131,250,
- 49, 71, 12,158, 42,209,137,118,101,162,169, 41,214,225,249,148,226,226,196, 27,233, 45,211,181,251, 99,118,128, 83,114,214,210,
-153,146,220,116,144,235,125, 10,212,129,205,144, 20,161,156,249,105,224,180,100,161, 50, 35, 25,130, 74, 80, 57, 85,206, 20,176,
- 26,230,198, 22,164, 30,253,198,153, 40,181, 49,238,232, 92,122,195, 47, 73, 82,210,211, 81,100, 39,149,110,184,178, 82,218, 1,
- 61,252,180,248,219,242,107, 80,222,162, 71,155, 77, 98,169, 61,192,124,102, 35, 56,130, 91,108,254,170, 94, 72,254,110, 58,245,
-215, 54,213, 70,193,217,152,217,148,130,111,182,219,117,233,112,127, 28,123, 9,151,215,172, 84,113,194,236,164,181,215,237,232,
-114,116,222,246,144, 11,142,228,222,194,248,216, 58, 84,210,135, 89,145,227, 49, 81,108,184, 26, 12,189,132,132,180,123, 21,146,
- 58,249,103, 78, 29, 49,216,145,157, 46,202,141, 0, 50,165, 99,153,162,151, 0, 10,255, 0, 80, 14,216,207, 93, 55, 22,253, 58,
-116,249, 14,180,186, 68,194,162,227,110, 41, 40,100, 22,154, 72,236,208, 41,238, 63,167, 78,237, 50,222,105,197, 50,210,160,203,
- 5, 43,248,209,238,139, 82, 16,172,254,170, 84, 6, 15, 64,123,246,209, 97,137,100, 58,121,100, 21, 38,219,129,125,253,251,159,
-203,124, 66, 51,202,138, 53, 13,169,202,221,119, 10,203,112,189, 71,216, 96, 1, 27,139,233,177,239,124, 60, 54,123, 86,252,196,
-161, 45,162, 50,155,229, 7,170, 74, 10,129,238, 6, 71,112,116,252,211,104,240,209, 29, 41,140,174, 68, 20,228, 53,207,204,217,
- 24,234, 19,232,174,250,105,109, 74, 83,112,209, 24, 57, 24, 70, 14, 44, 8,200,152, 24,136,167,206,112,124, 36,200, 90, 75,189,
- 71,243,115,233,167,174,148,195,204, 73,247,101,182,182, 20,172, 18,219,237, 41, 33, 67,200,161, 67,203,168,237,167,136,114,230,
-101,187, 11,252, 13,192,191, 66,125,255, 0,150, 57,147,139,234,195, 84,202, 96,169,114,138, 75, 0,206, 26,224,108, 77,134,219,
-119, 54,216,237,113,131,109,233, 2,149, 48,165, 68,165, 30, 38, 65, 7,177,206, 58, 19,172, 11,142,250,104,187,248, 72,189,156,
-100,243,201,160,212,173,234,211, 33, 37, 75, 0, 55, 52,196,120,156,116, 8,228,153,212,158,131, 26,214,142, 52, 56,200,162,240,
-178,104,182,149, 18,205,170,110, 30,239, 93,144, 68,251,106,214,167,179, 37,200,145,162, 56,240,138,204,250,159,186, 52,167, 29,
- 74,229, 97, 13,180,210, 74,150, 65,201, 72, 25,215, 24,110,255, 0,109,214,236, 89,181,169,123, 63,196,206,212,209,225,216,219,
-139, 33, 54,133,121,152,140,200,163, 86,236,207,172, 95, 67, 44,213, 92, 50, 29, 90, 28,247, 39,220,142,243,241,228,161, 37,109,
- 48,160, 22,133, 16,160,237,150,210, 77, 74, 30, 57, 24, 4,148, 29, 42, 55,123,122,233, 0,155, 3,252,176,190, 77,224,151, 30,
-113,173, 21, 7, 27,228,116, 52,241,195,151,149,172,136, 84,213,193, 77, 53, 92, 16, 72,162, 73, 41,163,149,129,100, 44, 12,107,
- 36,134, 56,222, 75, 34,185, 39, 28,240,171, 81, 92, 18,235, 15,189, 50, 83, 15,182,251,205,242,193, 1,135, 11,172,188,227,129,
-215, 90,116, 41, 15,167,152, 55,128,160,127, 87,190,113,171,197,186,251, 84,199, 27,110,231, 91, 11, 8,109,105,102,164,211,204,
-152, 75, 4,120,205, 50,166, 93, 67,142, 51, 33,194, 84,147,146,190, 85, 0, 82,178, 59,103,187,207, 96, 84,168,155,135, 92,164,
-148,251,168,139, 80,118, 74,101, 49,206,195,115, 26, 83,165,196,200, 97,164,164,165, 44,172,160, 41, 39, 56, 83,110, 36,144, 0,
-213, 45,183,165,251,180,225, 57,214, 41,211,231, 46, 59,134, 32,155, 57,137, 75, 47, 56,165, 48,251,207, 7, 20,216, 97,211,207,
- 28, 22,210,121,212,147,204,148,242,228,105,122,137, 21, 98, 46,198,247, 22, 0, 1,112,118, 0, 3,218,222,150,216,220,157,247,
-199, 91,101, 89,173, 61, 78, 87, 77, 84, 36, 38, 42,136, 21,215, 65,180,182, 96, 28, 89,154,203,123,157,181, 30,246, 5,126,214,
- 30, 11, 94,207,114,229,117,201,237, 69,164,202,120,197,143, 54, 85, 82,157, 37,183,147, 22, 59,235,108, 65,134,165, 70,194,224,
- 61,226, 33, 45,144,231, 55, 47,196,226,209,149,116,219,107, 39,110,107,207,161,154, 43, 53, 69,192,105,220, 59, 45, 51,224, 51,
- 86, 64,151,226,135,152,104,200, 64, 67,211, 90, 7, 24, 74, 94, 41,111, 9,230, 0,233,156,176,182,201, 77,169, 18,170,137,115,
-223, 42,193,152,112, 99, 91,243,158,143, 35,199, 74,144,226, 36, 74,147, 13,192,137,144, 80,224, 4,151, 2,137, 82,194, 64, 37,
- 56, 27,217,102, 90,215,133, 41, 49, 27,133, 84, 98,165, 57,224,159,142,189, 5,146, 26,113, 35,153,236,152,138,109, 46,169, 69,
- 25, 87,137,133,140,117, 36, 18, 53, 10,175,145,203, 5,138, 80,109,208, 48, 59, 17, 96, 8,190,160,123,246, 0,108, 20, 27, 91,
- 12, 57,247, 17, 10,106,116,134,130,190,154, 78, 89, 80,156,196, 87, 1,193, 91, 30, 97, 18,163,152,205,238,197, 65, 6,218, 88,
- 22,108, 90,237,237,189,152,234,185, 95,164, 89,245,210,228,149, 56,245, 82,107, 53, 74,100,246, 35, 52,164,165,243, 25, 77,135,
-115,204,242, 70,121, 29, 74,177,211,148, 96, 43, 79, 29,187, 98, 95,172, 58,106, 17,164, 80, 67, 45, 56, 12, 74,109, 70,100,217,
-240, 85, 24,171,153, 44, 69,113,113, 82,236, 53, 20, 4,149, 21, 41, 69, 5, 39, 41, 86, 6,179,123,118,157, 92,141, 29, 16,156,
-183,161,203,117,169, 45, 41, 85, 8,181, 70, 27,109, 47,173,212,248,236, 71,106, 84, 99,132,175, 36, 36,133,242,100,225, 68, 4,
-141, 58,241, 37,169, 36,181, 81,162,206,163,163,196, 75,109,173,245,177, 34, 3, 69, 39,152,189,239,177, 10,146,225, 89, 79,232,
-208,128, 73,194,129, 72, 61,117,169, 79, 70,103, 39,152, 2,179,118,234, 61,230,215,211,210,196,129, 98, 64, 29,141,241, 79,103,
-220,101,153, 30,114, 70,144, 85, 43, 2, 13,228, 73, 14,130, 64, 58, 33,230, 2,133,252,192,233,140, 21,185, 0,130, 72,108,110,
-143, 14,191, 8,188, 39,209, 80,234, 30, 65,115,252, 6,171, 17,212, 71, 73, 7,149, 40, 68,198,155,113,192, 74, 65, 61,137, 39,
-175,124,235,131,126,216,205,247,152,111,141,190,225,194,146,243,176,233,118,141, 10,155,186,215,228, 17, 33,165,138,133,245,119,
- 54,244,107, 38, 20,208,210,212, 86,213, 50,201, 6, 83, 77, 44,254,130, 77,220,242,193, 10, 9, 34, 68, 98,167, 69,113,239,115,
- 98,162,209,150,227,169,100,164, 50,250, 30,142,153, 10, 67,104, 47,161,113,185,149,250,217,193,234, 7,124,117, 58,132,167,180,
- 11,114,157,191, 56,207,226,110,235, 91,220,193,123,191,119, 82,161,167, 35, 13,210,109, 57,205,218, 52,134, 80,174, 65,250, 54,
-233,246,252,102,210, 48, 48,150,250,247, 58,147, 81,229,101, 16,136,212, 49,107,111,110,151,247,223,215,107,145,238, 29,206, 45,
- 63,161,246, 88,153,247,139,149,156, 79,155,208, 8,233,184, 47, 46,150,174, 32,203, 38,147, 89, 80,241, 82,211,189,164,119, 95,
- 36, 18,213,200,157, 74, 75, 28,114, 11, 50,130, 59,157,236,172,221, 24,215,231, 13, 23, 37,147, 81,118, 25,168,236,189,253, 46,
-152,218, 93,144,151,101, 53,102,223,141,191,116, 91,190, 19,107, 28,209, 97, 71,172, 69,186,152, 65,253, 80,165, 4,167, 7, 26,
-218,107,158,228,161,191, 61,218,125, 49, 94,245, 40,172, 37,210,202,148, 67, 42, 11,229, 81,117,224, 57, 60,114, 15, 92, 2,160,
-149, 14,100,228,234, 49,124, 2,239,229, 79,110, 55,233,155, 77,234,234,233,116, 45,237,130,141,181,173,200,114, 66, 99, 70,106,
-181, 46,104,159, 98, 79,117,194,147,225, 52,221,203, 17,152,171,112, 17,134,171,110,142, 96, 9,204,138,108,186, 50,226,248, 65,
-230, 94, 18,210,234,138,218,116, 40, 56,144,201,253, 42,228, 2,144, 82,232,125, 39,155,155,185, 24,199,163, 70,113, 75, 61, 53,
- 66,211, 24,192,102, 80,250,173,177, 4,158,128,236,109,107, 27,244,244, 55,216,120,245,195,212, 92, 51,226,119, 20,241, 60, 83,
- 51,208,241, 68,223,164, 41, 96, 4,170, 44,179, 42,251,111, 53,134,197,189,176, 77, 41,141,108,170,146,160, 98, 5,181, 97, 28,
- 75,220,181, 26, 38,200,211,104,247, 69, 74,235,183,182,170,177,190,251, 65, 11,117,110,107, 14,159, 10,179,117, 91,182, 75,207,
-220, 78,183, 82,133, 14,168, 4, 79,171,216,186,153,183, 21, 41, 82,210, 98, 36, 41, 9,115, 46,170, 58, 78,196,185,236,244,224,
-218,187,107, 59,115,220,156, 71,239,126,228,237,173, 2,138,187,170,107, 84,230, 45, 75, 86, 5,193, 65,109,135,229, 52,252, 91,
-142,223,106, 82,213, 70,114, 67,192,198,106, 35, 40,154,243,242, 91,140,151, 91,112,244,112,233,245, 17, 14, 44,120,174, 52,203,
-140, 76,104,179, 45,183, 16,135, 25,122, 52,130,142,120,210,155,117, 36, 60,203,137, 64, 5,181,165, 73, 88, 7, 57,232, 53,131,
-111, 20,122,181,183,183, 23,101,181,105,248, 52,138, 5, 74, 76, 74,251,148,250,116, 97, 1, 16,222,167, 60,106, 47, 70,165, 53,
- 21, 77,181, 6,159, 41,244,182,244,150, 67,100, 56,236,116,184, 10, 10,220, 42, 89, 95, 56,135, 46,142, 10, 39,138, 88, 81,180,
-202, 38, 14, 74,164,134,226, 72,138, 50,168,146, 61,200, 73, 86, 72,223,161, 85,177,213, 91,112,255, 0,139,220, 97, 77, 6, 89,
-195,156, 53,196, 21, 60, 22,207,152, 77, 60,242,208,138, 52, 21, 75, 82,148,144,150,121, 38,162,154,174,158,178, 4,129,185,117,
- 52,245, 41,169, 36, 80, 81, 94, 4,118, 96,232,187,243,188, 52, 58, 53,183, 22,179,113, 84,169, 53,196, 81,160,251,245, 41,201,
- 62,244,245, 37, 30, 24, 17,105,181, 9, 10,121,208,245, 77,152, 9,140,153, 37,110, 58,225,146,151,148,235,139,112, 41,106,217,
-189,151,227, 46,253,131,118,219,180,250,252,122,125,201, 79,118,165, 17,114,150,164, 24,178,216,166,197,117, 15,212, 36, 41,109,
-252, 46,145, 13,149,146, 84,156, 16,146,163,211, 58,229, 18,107,239, 62,242,147, 37,199, 31, 91,206,242,186,241,117,192,165, 58,
-115,211, 39,155,149,210,121, 78, 15,117, 43,161,198,175,245,237,208,133,180,123, 77,185, 27,181, 83,195,175,211, 41, 12,109,245,
-155, 17,197,165, 15, 85, 55, 47,117, 95, 93,149,109, 82, 48,149,164,169,198,162, 73,174, 84, 86, 89,234,134,109,247, 20,190, 92,
-115, 20, 34,161,174,138,166, 35, 73, 52,177, 73, 35, 11, 42,177, 35,177,251, 38,224,129,110,227,176,216, 3,139, 63, 49,225,124,
-159, 58,137,168,171, 50,122, 67, 83,155,200,176,199,104,150, 37, 89,170,228, 17, 68, 21,129,214,136, 36,145, 64, 37,137, 84, 80,
- 88,147,124,113, 55,116,247, 70, 69,253,187,251,165,124,248,206, 6,183, 3,113, 47,219,205,230,124,103, 29,108, 53,115, 87, 43,
- 21, 40,234, 47,172,146,232, 75, 18, 90, 9, 39, 39, 13, 39, 9,232, 14,172, 14,214,153,120, 48,183, 78, 92,152, 57,157, 10, 37,
- 43,109,167, 26, 13,184,150,207, 80,131,206,176,172, 30,169, 9, 5, 24, 32,105,155,145, 77,159, 79,177, 55,214,248,122, 99,102,
- 14,214,238, 37, 54,195,167, 33,244, 45,181,207,144,221, 5,213,204, 44, 21, 16,151,138, 88,241,164,244, 32,167,198, 64, 82, 64,
- 41,200, 53, 27,141, 40,118,147, 76, 15, 45,169, 62, 12, 25,243, 2, 86, 20,234, 16,197, 62, 19, 65,165,164,117,229,247,167,138,
- 73, 61, 22,177,202, 7, 66, 69,171, 7, 12,211, 48,141, 68, 97,196, 42, 34,118,176,243,125, 68, 82, 27,237,230, 26,101, 64, 77,
-183, 59, 94,221,125, 38,200,188, 76,203,114,202, 54,165,142, 67, 20,116, 65, 22, 8,217,183, 68, 90,250,204,182, 21, 7,236,171,
- 60,153,116,228, 2, 70,148, 58,202,134,186, 15,209, 95,217,213,187,149,126, 36, 56, 44,216,253,206,187,174, 26,157,110,227,126,
-218,126,193,186,149,240,199, 84,155,163,109, 39,191,101, 84, 39,204,125,144, 23, 80,149, 50,149, 75,163, 76,121,231, 85,202,227,
-245, 23,148, 15, 58,213,173,192,169,181, 57,184,233, 69, 62, 75, 17,217,117,148, 54, 25,157, 8, 41, 77,184, 20, 57, 18, 85, 21,
-196, 40, 55,148, 36,167, 33,106,235,158,185, 26,226,103,176,146,232,171, 73,224,105,202, 90,107, 52,248, 49, 97,111,182,232,183,
- 25,185,145,221,148,239,233,169,118, 36,151, 91, 74,223,144,136,236, 44, 74, 46, 41, 40,108,169, 68,173,101, 73,230, 86,187, 41,
- 49,154,218,209,205, 42,173, 52, 52,180,165, 74, 68, 70, 98, 69,116,182, 9, 42, 83, 15,150, 84, 82,172,173, 43,228, 0,100, 3,
-231,140,166,170, 86,154, 21,107,179,160, 10, 88,238,110,160,139,147,114, 77,254, 59,238,122,227,195,207, 25,248,114,151,135,188,
-100,241, 27, 44,203,158, 10, 60,158,155, 59,204, 26,142,156, 69,166, 56,105,158,169,228,130, 24,163, 88,121, 65, 97,137,146, 53,
- 32,147,100, 5,141,201,182, 5, 94, 69,230, 10, 94,145, 46,158,251, 79, 45,104,148,212, 6, 23, 14, 74,219,229, 12, 45,182, 36,
- 58,225, 37,149, 97, 25,231, 83,121, 7,151,152,115,103, 88,171,145,168,116,244,134, 97,194,115,222,240,219,142,210,234,106,145,
- 26, 99, 65,211,209,246,222,146, 74,159,116, 16, 64, 41,113, 93,130, 80,224, 61, 53,146,220, 18, 42,169, 71,189, 65,175, 23,224,
- 43,196,110,100,138,180, 52, 73,141, 20,132,150,219,121,201, 49,146,211,140, 32,184, 66, 20, 84, 8, 65, 74, 73,198,117,138, 87,
- 28,148,234,162, 34,187, 74,117,192,134,195,141, 85,221,124,204,165, 74, 66, 64, 8,106, 33,105, 1,113,212,225, 81, 86, 31, 66,
- 49,205,221, 67, 11,214,189,142,171, 48,185,237,109,186,218,221,251, 94,219,220,117, 0,118,198,190, 89,205,228, 83,161,104,226,
-136,234,212,180,224,194,199, 64, 4, 7,140,136,249,140,128,157,144,137, 21, 72,107,233, 54, 57, 45, 21,111, 50,239,128,212,167,
-155,106, 99,237, 53, 50, 5, 82, 58,170,112,130, 22,133,248,114,226,201, 82, 20, 84,194, 84,162, 75, 79,133, 20,150,202,144,180,
-144, 70,158,219, 70,151, 29,231,155,118, 60,104,204, 22, 63,193,222,142,151, 20,169, 10,146,203,194, 58,208,195,190, 63,232,220,
- 83,255, 0, 26, 27, 64, 12,165, 9, 10,230, 9, 32,105,148,162, 91,141, 33,248, 83, 89,126, 99, 48,230,182, 20,180,198,150,244,
-129, 79,113, 60,188,170,101,153,170,115,222, 32,173, 37, 93,149,240, 99,149,124,169, 9, 89,109,184,249,226, 98, 31, 5,220, 21,
-239,191, 17, 15,200,136,155,150,213,178,166,210,246,246, 59, 73,141, 4, 86, 55, 54,239,228,181,236, 42, 83, 8, 90,185, 31,124,
-220, 21, 40,178,202, 18,149,144,213, 45,220,101, 41, 86,157,232,209,181,169, 10,100,111, 40, 23, 59,177, 54,181,129, 23, 4,146,
- 58, 1,212,220, 92, 98, 11,198,117,212,212,212,243, 58,213, 20, 77, 12,210, 54,146, 52,132, 30,109, 96, 29,244,170,155,187, 57,
- 42, 0, 96,197, 77,204, 4,253,172,219,203, 47,139, 95,105,175, 18,183,101,176,204,138,245, 61,141,200,141,179, 22, 18, 41, 9,
- 93, 86, 93,102,147,182,162, 46,222,210,152,166, 51, 24, 19, 62,108,219,142, 29, 80,176,134,211,151, 87, 57, 0, 2, 78, 76,168,
-189,147, 30,205, 59,119,129,141,189,137,185,219,145, 71,167,212,120,177,191,168, 72,110,225,150,239,131, 57,157,155,182, 42,104,
-109,241,183, 54,188,132,130,150,171,238,183,225,154,253, 69,162, 22,251,224,192,105, 98, 36,114, 29,230,127,176,159,128, 53, 76,
-144,190, 60,247,198,152,229, 94,166,106,149, 39, 54, 34, 21,106, 58, 84, 43, 87,116,135,159, 77,209,188,211,162, 60,140, 58,227,
- 18,159,150,197, 29,103, 9, 19, 37, 74,154,140,150,153, 34, 80,232,121,231, 86, 94,194,151,206, 84,165,229, 89, 83,132,156,149,
-100,255, 0, 59,169,238,117, 52,214,174,144,192, 15,246,106, 75, 42,129,210, 73, 19,102,115,254, 20, 96,116, 95,171,221,172, 52,
-163, 53, 11,192,252, 48,106,170,102,226,204,206, 29, 53, 57,147,188,180,145, 48,254,234, 41, 9,101,148,237, 96,238,166,209,126,
-196, 86, 97,188,158, 91,213,199, 90, 49,104, 79,128,238, 30,144,121, 9, 61,192,192,201, 10,245,242,251,181,174, 71,196,148,241,
-192, 74,219,247,143, 25,101,101, 88, 83,109,158,100, 32,143,231,159, 20,183,140,231,245,116,231,222,179, 3,236,178,194, 18,160,
-158, 67,240,159,214,231, 63, 8,200,245,230, 7,246,107, 16,183,233,171,125,220,148, 41, 94, 26,193, 82, 72, 56, 30, 24, 42, 25,
- 7,182, 93, 82,127,254,159,144,211, 69, 97,106,138,152,227, 83,176,254, 38,222,238,150,252, 15, 81,139, 78, 53, 68, 46, 72,176,
- 83,107,124, 58,253,247,191,243,198,113,108,211, 19,227,169,194,215, 63,134,203, 99, 5, 93, 27,101,146, 22,246, 14, 62, 37, 45,
-242, 7,255, 0, 71, 91, 55,104, 83,196, 88,200, 91,141, 21, 62,226,125,225,196,142,201,144,233, 1,182,178,161,208, 1,200, 7,
-158, 18,112, 52,218,218, 20, 34, 11, 72, 82, 48,167, 29, 66, 86,162, 9, 37,168,227,198,115, 36,249,169,100, 15,158,126,122,216,
- 74, 93, 56,165,176,160, 48, 80,160,230, 79, 96,234,193,228, 24,207, 80,150,250,245,243, 58,216,145,194,132,133, 59,122,123,247,
-233,252, 61, 58,123,176,171,188,113,197,169,205,134,223,126,214, 23,251,250,216,250, 19,223, 23,184, 45, 45, 45,164,250,130,146,
- 81,130,165, 58, 79,198,161,205,211,205, 71, 39, 29,135,217,171,242, 82,161,202,146, 14, 66, 64, 79, 92, 18,112, 18,132, 16, 7,
- 82, 71,151,110,167,174, 79, 64,225, 49,204, 6, 74,148, 8,194, 60,151,142,203, 80, 0,244,206, 50, 62, 95,110,173, 87,197, 93,
- 84, 74, 17, 76,101,242,212,170,171, 93, 62,154, 51,254, 77,126, 25, 50,166, 56,148,245, 8,102, 57, 81, 78, 59,184,180, 13, 2,
-252,184,139,157,194,142,158,167,111,226,127,215, 17,237, 18, 87, 87, 69, 75, 8, 13, 45, 67,233, 30,130,251,146,127,194,160, 22,
-111, 64, 9,233,134, 94,191, 60,214,174, 57,178,155, 80, 92, 88,138,250,178, 34,146, 73, 75,205,197, 89,247,133,181,215,245, 87,
- 40,172, 41, 93,185, 91, 30, 93,117,113,101,178,148, 36, 20,167, 60,185, 33, 32,115,124,125,242,123, 32, 17,235,228, 58,103, 58,
- 6,155, 5, 49,217, 1, 3, 41, 72, 72, 43, 80,202,251,124, 13,167, 57,231,230, 87,116,142,188,202,202,181,122,119,157,164,242,
-182,128, 48,114, 74,210, 29, 82,148,174,231,149, 4, 14,112,122, 96,156, 36, 12,232, 82,130, 20, 22,181,207, 83,241,235,252,127,
-134, 38,117,241,198,136,144, 66, 60,145, 40, 65,126,182, 80, 5,205,187,158,167,191,125,177,107,145,209, 56, 56, 42,192, 31, 7,
- 50,136, 81, 39,245,114, 6,113,145,215,212,143, 62,186,109,183, 18,195,178,183, 58,203,185,118,235,114, 45, 74, 13,245, 98, 93,
-244,185, 20,123,178,204,185,224,179, 84,161,215, 41,210,208, 90, 83, 50,227,188,143,209,202, 66, 15, 51, 50, 26, 45,202,140,234,
- 80,244,119, 91, 90, 65, 46, 20,133,132,149, 18,121, 66, 82,146,158,167,227, 3, 9, 11,231,233,205,133, 28,116,233,240,231,231,
-171, 4,167,130,146, 70,115,130, 7, 41,230, 1,190, 97,133,140,168,119,230, 25, 87, 47,167, 66,115,128,228,164, 50,233, 32, 21,
- 35,161, 23, 7,226, 15, 81,234, 45,238,196, 78,170, 0,218,129, 93, 72,247, 12, 8, 22, 32,141,193, 7, 98, 10,220, 16,110, 45,
-112,118,216,254,127, 62,215,111,101, 5,107,129, 75,173,157,208,218,223,173, 46,126, 22, 47,170,217,166,219, 21, 73,139,114,161,
- 95,218,219,154, 98, 29,148,206,220,223, 83, 66, 63,194, 24, 91, 77,191,245, 45, 81, 88, 76,246, 99,150, 29,196,198,148, 28,226,
- 11,202,192,207,250,185,206, 65,252, 7,207,183,227,175,213, 99,121,118,187,111,119,183,109,239,125,163,221, 75,114, 53,215,183,
- 27,137, 66,147,110, 93,212, 9, 73, 66,132,168, 18, 70, 89,155, 1,197, 28,211,235,208,230, 33,137,116,249, 72, 41, 92,105,113,
-154, 90, 84, 7, 50, 85,249,178,113,225,194, 13,235,193, 55, 17,215,238,197, 93,238,191, 80,167, 82,159, 69,111,111,238,242,201,
-110, 45,251,182,117,197,186,245,165,117,196,233,203,239, 75,138,218,226,212, 26, 24, 84,122,141, 58, 75, 74, 74, 64, 71, 51,238,
- 85, 86,192,138, 57,152,176,223,150,204,110, 72, 29, 81,137,234,203,216,159, 51, 46,237,118, 86, 99, 65,113,143, 12,174, 75, 50,
-215, 81, 41, 25,101, 83,105, 43,215,145, 46,237,160, 27,127,116,226,230, 50,126,201, 86, 67, 97,203,213,166, 30, 57, 89, 86, 50,
- 57, 63, 91, 35,175,110,154,250,115,156,144,122,249,254,255, 0,158,190,132, 99,161, 63, 14, 7, 46, 51,204,122,121,244,234,117,
-245, 72,229, 29, 50,113,234,114, 6,127,226, 52,254, 46,118,196, 36, 11, 11,116,192,142, 40,231,160, 24, 29,207,175,231,166,135,
- 82,137,238, 64,232,124,241,143,179, 68, 44, 19,211, 24,237,156, 99,160,245, 31,126, 52, 50,128,235,212,121,128, 78, 49,215,207,
-246,105, 68, 59, 91,211, 6,181,253,109,251,240, 59,128, 1,240,171,174,122,121,121,246,207,159,246,104,101,244,200,243, 35,246,
- 1,147,162, 21,140, 28,140,254,113,161,148,112, 8,235,215, 56,237,248,125,154, 85,112,176,189,136, 39, 3,168, 0, 15,145, 62,
- 99,204,143, 35,249,242,208,203,229,235,235,211,242,126,225,162, 87,140,117,249,224,122,159,158,135, 88,233,231,247,118,251,254,
-237, 44, 58,142,248,193,237,183, 67,243,247, 96, 69, 12, 31,183,175,217,165,175,171,198,113,140,126,255, 0,187,241,210,210,202,
- 77,133,197,207,221,131, 99,202,112, 72, 7,242,117, 92, 15, 35,128, 60,190, 67,250,245, 69, 3, 39,236, 25,209, 40,239,246, 15,
-207,219,164,143,175,174, 6, 42,164,124, 64, 14,131,166, 15,207,236,243,242,209, 35,215, 56,198, 62,220,124,191, 62,122,164,143,
- 51,208,255, 0, 72,235,253, 31,213,170,160,100,227, 56,233,145,243,252,254,237, 17,175,109,186,223, 3, 4,160,140,231, 62, 93,
-207, 79, 77, 22,130, 49,143, 63,233,251, 52, 26, 72, 30, 64,143,179,183,217,162, 1, 74,146, 72, 61, 65,252,115,142,159,159, 93,
- 35,140, 48,184,235,108, 20,140, 18, 1,239,158,135,203,239,209,169, 7,166, 14, 79,145,253,186, 1,158,132, 17,149, 14,196, 19,
-140,124,243,251,180,122, 72, 79, 76,145,211,160,233,147,164, 9, 36,220,225, 54, 29,199,206,216, 33, 4,224,142,153, 29, 85,219,
-183,166,164, 73,236,110,220, 31,173,246,111,125,182,170, 68,175, 13,251,106,189, 68,191,169,177,199,196,183, 33, 84,227, 24, 21,
- 2,134,250,229, 41,151, 17, 57, 35, 63,229, 6,117, 29,198,252,179,144,122, 1,230, 79,219,211, 93, 44,246, 85,110,228, 13,175,
-226,214,210,164,215,229, 24,246,198,234,192,168,237,157, 95,227,228,108, 75,174, 32, 59,111,188,224, 39, 4, 38,172,195,104, 4,
-246,247,157, 70,120,186,135,219,242, 26,232,130,234,146, 37,230, 46,215,221, 14,166,255, 0, 32, 97,247,226,198,240,131,136,227,
-225, 95, 18, 56, 87, 54,157,180, 83,123, 64,167,148,237, 97, 29, 72, 48,220,223,107, 43,186, 57,255, 0,166,248,146, 36, 30,101,
-188, 76,200, 92,160,148,190,196,228, 14, 82,218,114, 10, 92, 8,242, 87, 93,108,205,136,136, 94, 60,105,208,170, 83, 26,151, 9,
-191, 29, 82,222, 74,157, 92,231, 64, 7,195, 90, 79, 64,192,244,244, 26,103, 63,131,149,104,117, 26,148, 68,184,195,109, 83,228,
-173,134,209, 44, 2,226,202, 22, 82, 16,178, 79,234,114,242,159,179, 79,213,149, 33,113, 88, 77, 61,112, 27,121,229,248,106,149,
- 58, 39, 41,101,148, 19,213, 63, 32, 79, 66, 62,237,115, 51,211,150,121, 6,155,219,175, 91,109,181,133,253,226,219,123,241,235,
- 75,241, 11, 79, 76,188,137, 11, 48, 93,149, 89,118, 13,107,151, 89, 1,176, 11,212, 3, 98, 79, 75,219, 27, 67,183,181, 74,244,
-214,231, 56,229, 74,158,135, 38, 41, 14, 18,160,166,156, 74, 16,156, 36, 32,118, 65, 62,159,191, 89,190,241,113, 11,110,112,191,
-176,215,206,245, 95, 6, 20,202, 61,145, 74, 92,138,101, 45, 18,130,100, 92,247, 68,212,150, 40,116, 70,185,198, 84, 94,156,164,
-120,132, 3,202,211,110, 40,118,198,137,219,165, 83,139, 76,133, 80, 28, 90,114,210,212,240,109, 10,241, 74, 15, 76,167,253, 94,
-159,126,117,202, 47,164, 21, 92,174, 69,225,135,102, 32,209,169,178,160, 90,181,125,216,152,229,206,180, 71, 8,142,167,224, 81,
- 11,148,102, 36,173,177,132,143, 17,201, 42, 66, 85,208,148,156,117, 26,113,203,168, 3, 58,157, 54,103, 33,125,118, 36, 94,196,
-237,222,227,213,182,195, 70, 89, 79, 69,197, 92, 91,144,112,245,125, 61,168, 43,234, 1,157,252,177,147, 20, 49, 60,207, 26,149,
- 58,245, 75, 28, 77, 18,149, 55, 93, 87, 27,139,227,130,123,191,198,175, 16, 27,247,184, 53, 45,208,191,119, 70,231, 85, 90,163,
- 41,199,233,180,154, 61,106,117, 46,133,107,211, 84,247, 52, 26, 77, 22,153, 17,228, 34, 20,118, 27, 40, 72, 87, 47, 57, 41, 37,
-106, 42, 36,235,167, 28, 15,251,109,119,107, 98,106,116,123, 7,136,169,179,119,107,102, 31,113,136, 72,172, 74, 90,101,223,214,
- 83, 75, 33,180, 78,165,212, 93, 60,213,120,109,143,137,113,159, 82,138,146,217, 13,173, 11,198,163,142,186,235,108,188,164,169,
-213,165,121, 56, 0,143,231, 19,148, 16, 58,242,145,159, 46,186, 6,109,204,220, 84,151,229, 73, 75, 76,165, 69, 13,186,181,124,
- 13,149,252, 65,167, 20,122, 32, 43,175, 41, 61, 51,208, 28,156, 25, 60, 92, 63, 80, 37, 67, 1, 49, 19,208,129,189,141,182,255,
- 0, 21,246,184, 55, 7,184, 56,236,142, 32,151,195,140,255, 0,133,223,133,248,147,134,104, 42, 50, 10, 88,196,113,162,172,112,
-123, 24, 69,210,178, 83, 74,129,100,164,145, 7,247,111, 27, 39, 75, 54,164, 44,167,244, 98,220,125,244,218,109,207,181, 44, 93,
-211,218,219,134,218,187, 42, 87, 53, 36, 51, 69,220, 10, 51, 17,100, 76, 69,191, 35,149,215, 40, 82,159,113, 5,234, 52,228, 57,
-209,198, 86, 27,121,151, 16,161,243, 44, 38,219,240, 59,195,109,247,187, 50,119,219,118,236,200,251,153,118, 75,170, 65,173, 67,
-182,174,118,154,153,103,210,171, 16,188, 32,197, 90, 69, 61,192, 77,102, 97, 83, 13, 41, 94, 54, 91, 36,117, 74,129, 58,135, 95,
- 6,188,107,223,252, 45,110, 43, 52,233, 52,170,149,203, 96,222, 20,101,215, 83,103, 60,250,190,174,187,227,193, 5,199, 38, 91,
-143, 44,148,196,174,178,208,123,149, 72,234,165, 37, 41, 87, 50, 84, 70,166, 95,193, 71, 19,251, 57,196,190,221, 82,183, 35,102,
-111, 8,119, 37, 13,224,211, 21,170, 59,206,165,155,154,207,170,129,201, 34,143,114, 82,138,185,226,186,219,193, 72, 75,184,240,
-221, 9,202, 85,215, 26,134,231,185, 70,123, 75,158, 38,105, 42,145, 71,202, 88,163,146, 50, 90, 29, 18, 16,197, 88, 92,133,119,
-146, 38,219,245,140,108,190,102, 70, 11,198, 92, 75,194, 16,120, 95, 13,105,224,204,246,176, 46,111, 21, 85, 20,213, 74,239, 79,
- 89,200,142, 74,121, 30,138,165, 99, 8,209,242, 82,106, 70, 89, 32,229,195, 52, 53, 48, 77, 24, 84,168, 68, 26,105,237, 7,217,
- 19, 64,220,153,215, 20, 88,210,156,133, 88,145, 38,124, 79,119,101, 69,163, 18,166,128,243,109, 37, 40, 1, 44,161,169, 41,117,
-174,100,245, 74, 25, 74, 0, 3, 3, 90, 51, 69,177,226,173,138, 60,234,204,122, 85, 38,221,129, 41, 51,103,211,161,176, 94,110,
- 91,208,250,114, 84,204,148,115, 56,210,150,121,194, 65, 70, 22, 18, 73, 35, 82, 72,226, 42,210,160,110,117,160,197,162,168,115,
- 29,188,213, 74,168, 86, 45, 9, 77, 65,126, 76, 10,156,120,126, 17,171,208,229, 78,105, 60,176,167,150, 84,151,226,161,194, 60,
-101, 71,113,182,200, 89, 26,226, 82, 54,226, 82, 43,245, 56, 55, 19,146,165, 82,168,173,189, 53,234,122,121,219,167,174, 92, 53,
- 21,161,215,162,173,172, 60,148, 33, 24, 82, 73, 88,113, 92,185,201,201, 27,117,108,244,241,194, 26, 80, 4,200,175,177, 5,212,
-177, 33,144,129,246, 88,144, 74,234,211,113,184,242,225,135,128,248,146,174,159, 42,143, 44,172,115, 72,249,120, 15, 20,146, 35,
- 63, 50,152, 72,218, 26, 20, 93,164,179,172,144,173,201, 8,234, 67,105,179, 12, 29,182,244,136,190,236,139,162, 43,211, 44,218,
- 8,144,234,232,245, 56, 11, 17,235, 21,134,156,116,152, 20,134, 80,176,164, 56,209, 72, 43,143,200,135, 22,133,101, 74,113, 57,
-214,238,237,187,251,130,203, 76, 67,151, 72,167, 84, 98,133,170, 91,213, 42,148,233, 12, 76,138,192, 82,148,219,210, 68,113,202,
-170,138,219,193, 89, 73, 67,106, 72, 42, 40,200,248,181,222,133, 7,252, 38, 61, 94,168,236, 48,218, 34,198,106,222,121,215, 12,
- 42, 5,177, 73, 72,109,202,131, 44, 54,165, 4,166,172,236,131,241, 5,128, 23,219,155,149, 1, 39,109, 54,169, 47,214,159,141,
- 78, 48, 42, 53, 11, 73,106,126, 99,142,173,244,196,145,119,169,196,182,166,100,201, 84,167, 3,137,162,161,194, 72,100, 6,202,
-154, 9, 82,143,134, 60, 50,195, 58,115, 25,121,138, 2, 2, 5,250,155,236, 2,134,216,220, 95,168,238, 13,133,186, 73,115,220,
-216,213, 80, 74,207, 75, 13, 76, 72,128,234,144,106, 49, 40, 80,161, 99,149, 74, 52,149, 4,141,198,181, 87,112,116,142, 90,187,
-151,130,212,169,221, 85,192, 81, 71,162, 69,143, 17,233,177, 66,234,213,121,210, 29,109,249,104, 83,136, 47,211, 99,197,142,149,
- 42, 58, 27, 13,132,100,161, 42, 4, 36, 14,234,214,192, 82,168,207, 6,100, 72,146,243,115, 36,115, 37,223,120, 83, 66, 40,134,
-150,151,200,182,225, 67,103,224,109,191, 19,152,143,214, 95, 97,205,166,202,221,175,203,122,100, 42,117, 14, 27, 48, 96, 45,217,
-109,187, 93,144,132, 73,164,149, 65, 11,113,200,212, 8,170, 80, 21,149,224, 37, 41,120,242, 70, 10, 10, 9, 83,160, 99, 78, 43,
-116,232,146, 18,162,237, 86,169, 54, 43, 79, 52,133, 63, 42,172,182,163, 42, 83,190, 32,120,165,166, 16,210, 27, 75, 65, 69,178,
- 18,158, 64,162, 82, 50, 81,157,111, 81, 68, 21,129, 8, 22,227,101,189,237,123,109,114, 1,185,236,109,232, 47,107,226,137,226,
-141, 77, 41, 30,203, 30, 87, 20,158, 96,168, 26,121,138, 19,111,172,118,118,179, 18,159,221,137, 20, 88,110,150, 85,193, 53, 73,
-145,226,170, 46,101,196, 76,164,184, 28,240, 12,134,153, 95, 43, 10, 74,155, 46,181,207,144,121,194, 7, 62, 9, 82,143, 47,108,
-234, 4, 62,210, 58, 72,219,158, 58,184,155,183, 37, 40,183, 29,237,225,189,234, 44, 58, 57,127,200,220,181, 35,117,198, 37, 8,
- 56,229,118,159, 89, 74,128,242, 87, 67,131,157, 78,142,170,138, 83,209,158, 69, 30, 52, 6,160, 54,228,136,114, 46, 38, 99, 50,
-181,206,146,133,248, 78, 67,166, 72,113, 37, 82, 16,149,149, 37,199,134, 91, 66,242, 26, 11, 88, 90,147, 16,207,164, 3,178,234,
-161,113, 5,183,251,173, 73,167,134,104, 59,189, 97,210,168, 85, 9, 52,211,200,236, 43,223,109,162, 38,218,168,185, 41,231, 21,
-137, 21, 23,168, 70,202,152,128, 87,226, 56, 92, 95,235,114,171, 51, 28,157, 98,150,190, 8,100,110, 92, 83,221, 79,199, 69,239,
-185,177,177, 27, 15,128,189,142, 45, 63,163,127, 17,212,112,127, 20,113, 29, 53, 38,185,106,243,156,177,196, 81, 58,133,230,212,
- 82, 85, 83, 84, 44,108,169,172,160, 52,166,171, 97,169,163, 3, 91,114,200, 24,226, 4,154,196,244,219,106,220, 88, 18, 36,123,
-230,213,238,117, 58,151,184,116,120,110,184,212,168,118,117, 66, 76, 20,196,186,144,180, 43,157,136,145,234, 12,197, 91,146, 81,
-132, 70,114, 83, 75, 43, 75,110,100, 74,151,217,207,198,213, 39,137, 54,238, 61,133,221, 10,180, 42,127, 21,123, 72,167,219,169,
-193,146,168,241, 90,223,139, 2, 44,118,170, 52, 45,207,178, 66, 74, 81, 80,184, 88,183,166,211,141,199, 76,103,157,106, 33, 53,
-232,129,216,210,102,162, 20, 59,161,215,121,234, 81, 43, 84, 91,170,177,103,222,204, 45,171, 98,241,138,155,114,161, 89, 69, 74,
-148,180, 59, 78,143, 92,122,151, 17,151, 83,112, 82,132, 69,184,196,200,129,133, 59, 38, 25,125,133,176,243,141,180,149,244, 87,
-132,222, 13,248,140,184, 47,203, 39,113,120,121,171,199,191,238, 93,185, 98, 53,251,111, 91,251, 99, 85,166,215,175, 87, 41,240,
- 42,241,155,165,214,182,154, 47,191, 41, 91,145,104,211,234, 42, 83, 92,148,103, 83, 85,163,199,117, 84,250,197, 33,136,225, 97,
-185,206,113,194,121,109,101, 27, 45,125, 80,163,171, 2, 95, 99, 38, 41,121,134,115,162, 78, 66,144,133, 38,141,138,205,202, 84,
-102,150,120,231,139,150,134, 90,104,163,158, 75,196,249,142,105,226,180,212, 89,118, 93,165,163,138,170,138, 74,220,202, 74,236,
-184,209, 80,208,200,239, 65, 46, 97, 87, 27,213, 71, 85, 72,252,182,203, 23, 53,133,225,134, 42, 12,195, 41,170,210,211, 69,154,
-203, 85,150,205,166,227,165, 61, 6, 5, 54, 97, 74,156, 18,227, 69,110, 35,140,180,165,169,249, 82,156, 67, 13, 71,138,218, 85,
-241,185,226,184,218, 91, 31, 9, 82,214, 50,122,244, 11,114,111, 27,114,131,182,251,199, 34,255, 0,136,154, 45,247,176,245, 58,
- 22,218,111, 22,216,181, 81,143, 85,184, 45,221,195,188, 89,183,161, 89, 20, 42,100,159,117, 96, 92,148,187,141,187,194,223,118,
-133, 84,102, 59,113,170, 72,126, 72,105, 41,114, 12,164, 55, 75, 99,119,122,224,174, 51,245, 7, 19,219, 89,112,112,215,186,220,
- 60,220,144,175, 61,215, 77,193,108, 87,174,237,159,151,101,211,226, 77,189, 33,110,173,151, 93,162, 70,144,154,221,142, 81, 76,
-164, 63, 80,165, 60,241,153, 77, 68,215, 72,114,100, 8,147, 31,135,146,113, 71,183, 59,103, 34, 92, 13,253,110,235,173,110,165,
-205,184,176,173,202,147,143,193,221, 91, 86, 92, 45,209,191,156,186,104, 59,129,181, 86,205,199,245, 20,121, 48,102,109,181,175,
-123,214, 32, 86,104, 82, 40,181, 28,208,209, 13, 52, 53,191, 38,135, 86,101,109,214, 19, 84,229,188, 53, 74,207,159,161,161,167,
-175,150, 56, 86,121,140,113,211, 67,100, 55, 51,107,101,157, 73,146, 72,180,145, 11, 42,168,147,153,162,197,146,162,201, 56,112,
-210,113,141, 46, 79,196, 20,245, 18, 53, 58,173, 84, 67, 46, 95,106,106,245, 73, 41,170, 2,208,207, 24, 52,245, 80, 86, 80, 37,
- 72,165,150,158,114, 90,122,170, 9,135,212,151, 87,227, 20,104, 45, 87, 24, 85, 86,218,241, 42,148, 71,110, 43,170,211, 76,212,
- 52,150,132,106,245,151,114, 85,109, 11,162,129, 84,104,168,251,149,106,157,112,209, 42,113,229, 48,188, 58,218,227,142,108, 33,
- 77,169, 90, 21,237, 94,168,222, 22,133,223,195,254,202, 10, 93, 82, 93,177,180, 43,183,183,154,236,164, 81, 20,153,146, 98,238,
-125,229, 73,129, 91,163,213,175,116, 52,191, 22, 53, 66, 29,188,253,173, 71,167, 81, 57, 76,150,133,213, 81,149, 33, 81,220,148,
-211, 74,150,182,225,218, 92, 50,112,247,195,165,153, 77,165, 90,219,117, 99, 91,150, 60, 43,174,244,174,223, 49,109, 27,134,228,
-218,202,205,255, 0,107,212,149, 18,116,251,243,114,104,207,201,168, 51,121, 72,220, 7,211, 38,169, 13,184,115,170,215,251,244,
-217,244, 88,238, 70,155, 37,169, 49,121, 20,212, 93,185,118,222,225, 46,203,225,223, 98,183, 23,120,253,160,252,116, 84, 55,118,
-117,213,191, 91,223, 72,247, 69,219,219,105,184, 23,221, 98, 20,254, 44,230,237,204, 42,236,138,109, 42, 84,217,212,251,153,118,
- 17,144, 93, 52,138,101,143, 85,175,174, 58,252, 58,125, 67, 79,254, 28, 54, 93,153,214,174,113, 79, 20,121,133, 44, 97,185,112,
- 9,150,105,100, 73, 41, 86, 94, 92, 38, 35, 21,167, 43, 81, 29, 57,169,144, 44, 20,142, 37,170,101,154, 49, 70,106,111,238, 14,
-168,151,137,248,115,244,207, 19,210,215,101,116,144,212,140,186,131, 48,134,146, 36,164,139, 59,164,121,107,219, 53,204, 26,181,
-229,163,139, 38,160,162,201,235, 36,205,169, 85,235,234,125,154,190, 36,140, 9,162,154, 90, 72,169,213, 45,253,208,118,151, 97,
- 90, 91,181, 38, 13,167,103, 94,215,213,102,231,174, 55, 49,215, 31,172,238, 77,247, 17,216,119, 14,228, 45, 49,233,233, 9, 77,
- 46, 21, 66, 69,159, 70, 41,134,135, 99,193,140,211, 84,180,200,231,102, 82,155, 18,155, 83,131,120, 85,111,219,154, 3, 50,105,
-148,169, 19,160,193,160,214,170,113,194,103,214, 98,211,229,168,183, 62,159, 72, 66,178, 89,147, 84, 14,152,173,252, 45,248, 13,
- 54,178, 84,149,147,169,133,123, 64,189,146, 86,255, 0, 13,187,109,182,187,145, 64,219,248,219,185, 14,215,178,234,116, 13,218,
-222, 42,148,217, 2, 53, 42,184,204, 22,226,237,117,131, 14,206,132,240,114,194,225,222,157, 83, 53,138,149,106,161, 29, 14, 73,
-171, 86, 42,171,153, 89,124,169,230,121, 34,177,182, 91, 65,116,111, 46,243,196,218,253,171,247,251,206,183,116,213,106,146,228,
-110, 45, 77,182, 89,136,139,118, 28,148,197,186,119, 9, 54,243, 47, 6,109,107, 54,152,143, 26, 45, 38, 35,139,255, 0, 5,141,
- 9, 78,190, 85, 41,232,140,170,115, 83, 86,212,245, 25,140, 21,212, 63,162,231,161,141, 36,125, 43,202,166, 45, 35,172,211, 73,
- 10, 63,152,169, 40,176, 6,149,220,186,195,120,162,104,238, 34,191,184, 15, 62,224,252,219,132,178,206, 51,225,190, 45, 60, 75,
-193,102,174,190, 55,168,174,180,249,164,116,185,109, 52,249, 86, 93, 75,153, 84,195, 32,246,103,141,107, 43,115,158, 82,101,249,
- 74,150,205,227,150,183, 49,167,173,118,253, 35, 52,143, 98,189, 5, 54,159,179,243,109, 77,101, 98, 4,221,196,190,119, 71,112,
- 90,102,181, 21, 8,139, 91,164,212,174, 88,182,196, 10,140, 85, 56, 18,219,240,220,254, 9,200, 41,115, 33, 74,231, 82,146,146,
-218,155, 42,234,187,209, 27,163,184,237, 90, 72,168, 42,130,200,240,165, 64,143, 38, 82,158,160,173, 74, 13, 9, 84,182,157,124,
- 46, 93, 57, 73, 90, 10,152, 73, 43,100,172, 41,160,180,115, 32, 49, 27, 9, 77,177,109, 93,139,217,139, 99,111,227, 72,143,183,
-214,214,217,218,118,173,163, 6,173,153, 19, 88,131,108,210, 99,208,101, 65,174,135, 83,148,212,157,159, 79,150,244,181, 20,148,
-123,204,229, 43,177, 57,114,208,124, 17, 57,202, 83, 14,170, 36, 5,137, 85, 10, 36,185, 75, 84, 55, 96,202, 71, 42,132,120,171,
-113,106,241,219,116,146,219,173, 15, 11,186, 85,148,168,114,194,132,136,200,173, 31,158, 54, 80, 65, 3,168, 34,224,129,232, 65,
-213,184,220,116, 23,199, 0,113,150,101, 55, 20,241,127, 20,113, 19,235,165, 25,245,125, 85, 67,198,196,108,179, 84,182,152,185,
-133,129, 73,145, 89, 34, 14,220,203, 72, 8,103,229,150, 86,247, 81,110, 91, 49,167, 78,161,215, 37,212,219,113,213,165,218, 85,
- 69,240,244, 26,132, 54,129, 11, 49,228,181, 29, 46, 66,168,140,245, 75,156,193,124,161,183, 27, 28,201, 86,190, 81,155,125,104,
-135, 34, 12,114,220,121, 41, 40, 98,157, 53,228,170, 35,114, 20,230, 86,221, 26, 80,200,167, 40,169,103,158, 59,169, 8,202,112,
-128,131,144, 60,211,163, 71,152,183,230, 83,229,191, 4,133,169,153, 76,134,179, 60,198, 89,109,232, 14,212,225, 62, 86,221, 65,
- 13,185,148,165,196,101, 78, 32,243, 37,209,130, 19,153,208,146,134, 81, 41, 19, 11, 49,214, 86, 24,121,165,178,165, 69,168, 40,
- 31,135, 1, 64,169, 46,149, 41, 36, 40,254,144, 5, 36,146,188,100, 38,134, 48, 25,152,141,172, 46, 77,136,220, 27,250,141,253,
-222,226,122,130,193, 89, 80, 41,169,164,139, 72,146, 84, 43,112,200, 85,236, 84, 40, 87, 84, 1, 94,219, 21,144, 93,244,155, 22,
- 69,101,209,125,183,168,209, 97,190,250,204, 70,152, 5, 64,200,140,166,150,203,176, 87,241,151, 94,136,160,178,134,218, 89,230,
- 82,128,202,114,162,164,100, 2, 53, 28,111,107, 60, 59,251,143, 63,104, 23, 11,126,205,170, 3, 53,106, 46,201,109,173, 53, 27,
-255, 0,189,117,166,249,216,137, 90,147, 49, 18,105,172,202, 66,146,174, 71, 98, 81, 45,102,106, 49, 24, 42,193, 53,155,189,229,
-160, 5,197, 73,215,123, 47,141,211, 98,142,167,173,155, 89,193, 42,229, 25,106, 76,148,165, 47, 71,180, 91,112, 5,120,181, 23,
- 14, 83, 34,182, 58,174, 44, 18,162,180, 43,149,249, 92,173,165, 40,113,184,160,218,118,243, 51,158,189,219,161, 64, 93,228,170,
- 58,109,137, 55, 99,177,210,229,194,253,186,103, 61, 86, 93, 46, 69, 85,196,248,174,194, 85, 90, 68,169, 42, 65, 86, 20,243,235,
- 89,234,113,167, 76,190, 73, 36,154, 36, 66, 2,174,204,196,216,168, 96, 86,235, 97,187,142,171,113,179, 0, 79, 96, 43, 78, 39,
-200,167,207,168, 64,172,169, 48,195, 60,176,243, 35, 59,153,169,213,129,145, 9,184, 40,178,128, 35,189,201,120,217,238, 72, 33,
-152, 74, 45,191,110,218, 20, 10, 5,159,104, 82,163, 80,109, 43, 50,145, 78,182,173,138, 20, 36, 37,152,116,202, 37, 38, 58, 33,
- 65,136,219,104, 24, 24, 97,176,165, 43,186,214,165, 45, 89, 82,137,214, 66,192, 44, 56, 50, 64, 66,255, 0, 84,246, 74, 22,174,
-188,167,230, 79,109,121, 92,114, 87,226,132,243, 5, 16,162,145,156, 45, 62, 69, 56,238,161,231,246,106,239, 2, 58, 29,109,109,
-140, 45, 4,158,231,170, 65, 29, 58, 31, 49,251,181, 41, 93,150,200, 52, 42,216, 5,236,161, 64, 0, 1,233,167,107, 95,107, 15,
-118, 6,132,133, 20,133,242, 45,129, 0, 88, 1,181,128, 29, 5,187, 14,150,219,160,198, 15, 92,140,185,115,138, 64, 42, 71,192,
- 48, 51,148,245, 42, 81, 7,237,199,237,198,179, 75, 74,130,162,174,110, 64,124, 66, 48,124,213,215,155,149, 64,142,249, 35,240,
-215,148, 83, 60, 73,124,161, 36,156,132,103,190,121, 71, 64,125,124,254,243,173,128,177,237,177,134,150,166,134, 7, 42,186,224,
-143, 44, 12,121, 14,154, 67,202,160,201,111, 49,218,255, 0, 63,127,239,196,120,213, 0, 90,237,117,185, 55,251,239,238,249,252,
- 47,182,197,185,224,181,226,148, 36, 57,202,148, 5,148,228,167,152, 5, 58, 79, 79, 76, 14,157,180,226, 8,126,236,203,104,229,
- 60,234, 39, 41, 0,168,144,160, 20,178, 64, 31,173,203,129,242,206,178,138, 93, 27,145,148, 5, 35,225, 35, 39, 61,212, 7,196,
- 78, 60,251, 1,143, 61,123,145, 19,153, 69, 69, 4, 41,106, 8, 66, 83,212,227, 32, 37, 32,103,190, 59,159, 85,124,134,144,177,
-221,137,249,239,127,225,134,106,140,228, 77, 49,141, 79,213,198,127,211,243, 54,237,139, 84,118, 89,109, 14, 61, 41,212, 70,139,
- 13,135, 37,204,148,176, 18,212,104,172, 36,184,227,206, 40,246,108, 37, 56,249,146, 7,158,181,250,179, 86,126,239,172,200,171,
-165,165, 49, 78,105, 40,133, 70,101,239,129, 48, 41,109,171,225, 88, 0,126,146, 83,234,203,139, 61, 57, 66,130,124,177,167, 30,
-243,170, 10,151, 53,173, 13,126, 37, 62, 51,173,185, 94,117, 25,228,155, 49,165, 7, 24,164,151, 19,254, 82, 35, 74, 8, 47, 36,
-116, 83,129, 32,146, 1, 26,196,209, 13,152,192,120,189, 72, 36,248,109,160, 56, 2,128, 5, 63,163, 79, 92,103, 3, 39,160,236,
- 58,233, 61, 70,161,194,166,241, 70,119, 63,180,195,227,217,127, 22,248, 41,196,175,135,160, 90, 56,228,204, 39, 66,107,106,150,
-209, 41, 6,241,194,108, 75, 91, 99,174, 91, 3,191,217,140, 1,191, 54, 69,192, 76, 50, 27,111, 13, 54, 73, 64, 9, 75,139, 82,
-155, 0, 43,169, 44,128, 9, 62, 93, 64,193, 61,206,129,152, 95, 41, 82,138,208, 22, 65, 72, 12,164, 32,165, 0, 36,148,163,152,
-144,217,234,147,145,223, 36,228, 96, 13, 93,159, 83,174,103,149, 32, 40,182,126, 55, 51,206,132,145,201,240,161, 7, 35, 62, 99,
- 32,129,158,249,214, 55, 45,212, 37, 96, 41, 41,120,167,152, 0,148, 0,129,149,167, 39,148,225, 32,224,247, 61, 71,166,116,224,
-158, 91,109,185, 27,219,231,253,127,117,240,237, 35,179,146, 77,153,143,253,199,183,115,176,223,225,139, 75,238,163,147,144, 21,
- 40, 96,142,116,142,164,165, 71,170,222, 82,187, 31,136, 4,140,243, 1,229,215, 88,252,183, 65, 72, 11, 82, 74,126, 16, 8, 28,
-184, 82, 72, 9, 66, 86,188, 18, 18,124,176, 62,100,224,157, 92, 39, 56,224, 82,146, 23,204,162,174, 95, 9, 9, 79, 55, 83,240,
- 40,169, 64,252, 33, 36,252, 92,160,245,192,214, 45, 49,208,142,112, 21,241,171,170, 65, 78, 85,128, 50, 82, 74,129,229, 60,160,
-143,187,169,234, 53,176,135,175,112, 15,243, 31,187,175,201,195, 45, 82, 13,247,235,252, 62,255, 0,187,182,253,175,139, 84,247,
- 82,160,163,130, 9, 39, 36,167,159,175,196, 10,138, 66,176, 19,215,191,145, 57, 25,215, 6, 61,188, 92, 35, 69,226, 19,132,201,
- 91,199,110, 82,195,187,161,195, 10,102, 93,241, 28,140,192,126,125,115,105,170, 47, 48,214,226,219,142,184,128, 86,242, 33, 44,
-195,173,196, 64,207, 34,224, 76,242,116,235,186,178,222, 24, 37, 41, 81,237,144, 82,160, 20, 48, 84, 0, 3,162,199, 82, 58,245,
- 31,127, 70,250,191, 79,164,215, 96, 84, 40, 85,216,173, 79,160,215, 96, 84, 40, 53,232, 14,182,151, 35,203,161,214, 98, 61, 73,
-173, 66,121,165,116,117,135,105,115,166, 54, 71,126, 85,224, 28,246,216, 14,203,105, 35, 63, 89, 25, 12,191, 17, 98, 47,238, 61,
- 15,184,145,176, 59,197,243, 92,186, 44,214,138,175, 46,156,218, 42,180, 41,114, 7,145,137, 5, 36,183,172,110, 22, 65,210,229,
-109,238,199,229,128, 82, 2,137,239,143, 49,212, 31,152,199,126,154,248,172,145,219,166, 51,147,251,191, 13, 61,188, 74,237, 67,
-251, 7,196, 22,245,108,212,198, 21, 21, 91,103,185, 87,117,161, 21,133,168,173, 72,164, 83, 42,242, 5, 1, 65, 71,170,194,232,
- 46, 83, 92, 10,235,144,230,114,115,146,198,169,106, 88, 4, 43,155,166, 71, 76,119,245, 30,186,153,211,202,179,197, 12,202,124,
-178,168, 97,235, 98, 1,254,120,230,119,142, 72,157,226,149,116, 75, 17, 42,227,209,212,233,101,251,152, 17,138, 46, 16, 70, 51,
-235,156, 28, 99,251,116, 42,177,142,195,148,103, 30,125,187,147,243,213,117,168, 30,224, 12,142,248,206, 79,217,161, 87,208, 31,
- 60,156,126,255, 0,221,173,192, 44, 0,244,192, 29,190, 56, 29, 89,193,233,255, 0, 14,253, 52, 34,142,113,223,207,184, 3,240,
-209,107,237,223, 29, 71,231,243,233,161,156, 32, 2, 51,147,231,142,191, 62,154, 85, 7,124, 42, 44,119,192,171, 35,203, 63,126,
-113,231,228,117, 69,125,179,147,255, 0, 31, 93, 87, 95, 55,158, 49,229,249,245,208,235,199,207, 62, 94,159,126,149, 2,228, 99,
- 29, 0, 3,231,255, 0, 24, 21,103,175,216, 49,159, 93, 45, 37,254,183,221,211, 75, 74,139,128, 0, 31,142, 13,143,168,198, 79,
-124,227,238,199, 79,219,162,145,140,118,235,230,113,251,254,205, 8,223, 83,147,145,208,244,251,241,215, 69, 35,177,235,231,219,
-247,232,141,107, 47,108, 12, 18,142,199,167,223,235,249,253,250,169,158,221,250,124,254,126, 94,154,164,140,245,233,211,215,247,
-124,245,237, 36, 40,144, 15, 99,131,223,161,210, 78, 54,248, 96, 99,223,140,142,249, 24, 0,103, 25,202, 78,139,108,149,129,212,
- 0,124,241,215,168,233,211,239,253,154, 16,180, 1, 56, 0, 36,228,159, 79, 44,147,243,254,189, 86,109, 65, 36, 14,184,198, 2,
-143,203,212,253,218, 64,155,117,192,193,237, 39,151, 3,175, 66,123,119, 63, 63,144,209, 8, 95, 51,137, 73, 78, 57,115,241, 30,
-221, 60,178,126,122, 8, 60,140,148,130, 85,216,224,117, 87,159,124,253,167,240,209, 63, 11,137,248,186, 28,252, 35,168,207,219,
-248,233, 22,234,113,131,235,243,233,139,187, 64, 43,162,136, 63, 49,147,235,233,247,106,247, 70,169,212,104, 85, 90,117,110,145,
- 41,200, 53, 90, 68,248,117, 58, 92,198,148, 80,236, 90,141, 62, 75, 82,225, 74,109, 67,170, 84,137, 44,180,175,184,141, 88,152,
- 10,229, 79, 96, 48, 57,177,219, 35,167, 79,219,162,211,156, 40,118, 30, 71,184,249,245,242,233,162,144, 24, 21, 97,112,118, 32,
-239,132, 15,196,169, 30,155, 16, 71,112, 71, 67,137,193,240,233,185, 20, 62, 44,120,124,219, 61,240,167, 76, 71,191, 84,105,140,
- 81, 55, 14,155, 5, 64, 73,165,223,148, 54,155,135, 89,139, 53, 8, 57,103,197,121,191, 25, 25,253,100, 72, 65, 4,131,173,161,
-180,210,245, 40,183, 10, 44, 52,248, 14,171,153,247, 36, 40,150,208,211,100, 16,181,171,201, 93, 7, 79, 83,168,161,123, 40,248,
-226,137,194,214,237,191, 97,110, 76,199, 6,196,111, 20,202,117, 42,239,113,106, 82,155,179,174, 82, 83, 18,135,123,178,146,127,
- 69, 25, 42,113, 12, 78,199,254, 43,149,211,158, 67,169,140, 46,220,104,182,207,128,184,210,104, 79,178,197, 70,159, 80,128,226,
- 36, 70,171, 65,146,132,189, 18, 92,121, 77,168,165,248,174, 52,182,212, 10, 73, 7,155, 84, 39, 16,240,233,203,115, 25, 99, 88,
-201,130, 67,170, 35,216,169, 61, 47,220,173,244,155,247,243, 17,102, 24,239,143, 11, 60, 80,110, 39,225,218, 88,107,103, 15,152,
-229,170,144,213, 33, 98, 60,234, 0, 89,236, 55, 34,117, 93, 98,219,115, 3,198, 8,209,135, 82,196,175,212,218,113,133,198, 84,
-117, 38, 71, 32, 67, 78,101, 4,182,142,157, 7,255, 0, 22,125,124,255, 0, 13,121,226,147, 97,169,220,100,236, 45,251,195,253,
-214, 96, 83, 89,184, 96, 55, 58,221,184,156, 71,138, 45,139,210,151,207, 34,220,169,161, 93,196,113, 36,248, 82,113,221,137, 11,
-244,198,172,116, 62,102,100,181, 29,160, 61,231,149, 60,142, 99,224,101,164,246, 3, 29,128, 25,233,173,128,164, 74, 18, 99,198,
- 73,116,183, 25,181,114, 60,178, 57, 76,151, 16, 50,162,162, 14,124, 60,129,246,235, 82,158, 2,165,118,210,203, 98, 45,216,245,
-190,219, 94,253, 7,223,139, 66,108,214,122, 57,232,179, 76,177, 18,150,182,141,214,104,102,243, 49, 73, 35, 33,209,244,220,171,
-217,133,180,176,210,230,225,188,151,199,230,211,196, 86,208,238, 55, 15,155,153,121,237, 22,231, 81,100,219,215,221,143, 82,149,
- 79,168, 71,125,106,110, 52,230, 88, 90,132,122,157, 46,106,128, 76,202,124,136,220,143, 71,121, 63, 11,141,186,146, 8, 36,141,
-107, 90,238,137,210, 99,242, 84,194, 39,208,228,243, 69,156,165,101, 50, 16,209, 35,156,184, 17,212, 56,158,138, 66,198, 72,229,
- 26,253, 19,125,160,126,206, 29,169,246,133, 88,112,226,214,219,129,100,111, 5,191, 18, 68, 91, 19,116,219,132, 28,148,220, 38,
-208,181, 53, 65,186, 99,180, 66,170,182,233,119, 30, 25, 39,198,138, 86,165, 50,121, 74,144, 97, 29,196,223,179,219,138,238, 14,
-171, 85, 42, 30,238,109, 69,202,253,158,137,146, 26,165, 95,150,229, 61,202,229,149, 91,134,219,133, 41,155, 18,173, 13,165, 6,
- 91, 82, 48,172, 57,202,180,231, 5, 26,179,178, 42,250, 57,225, 72,106,149, 86,169, 74,233, 44,116,220, 29,175, 27,118,123,216,
-133,216,130, 59,142,146,250,158, 42,173,226,215, 74,204,190,189,178,218,167,133,214,182,141,111, 32, 18,142,242, 68,219, 84,208,
-202,162, 69,119,250,199, 68, 58, 38, 17,181,158, 86, 98,205, 98,245,184,155,179,246,190,133,117, 81, 43,212, 69,205, 93,107,111,
-171,201,247,180,220, 22,125, 75,170,221,143, 77,172, 67, 70, 41, 51,212, 66,147,225, 62,180,195,146,121,152,117, 41, 82,145,153,
- 39,123, 14, 56,116,186,118,163,136, 57,119,139, 91,231,181, 82,105,117, 56,211, 85,187, 59, 81, 50,174,154, 46,225, 86, 41,142,
-178,236, 71, 96, 81, 44, 39,154, 15, 79,169,138,138,154,146,169,140,169,198,154,240,202,146,121, 8,214,156,123, 19,246,162,147,
-184,219,245,181,214,173, 74,157,114, 91,212, 68, 94,177, 46, 9, 87,209,164, 82, 35,166,152,213, 40, 26,147,148,152, 53,249, 12,
-182,135,161, 77, 92,118,163,188,212,150,221, 87, 43,171, 72, 10, 95, 41,212,194,248,217,224, 59, 96,239,203,211,110,184,157,163,
-220,219,119,195,142,224,236,189, 90, 53,199,112,238,141,180,213, 54,131, 86,184,173, 90, 80,241,158,162,204,105,137, 44, 68,247,
-146,216,120, 38, 83,136, 82,185, 95, 91,106, 14, 36,132,105, 42,177, 85, 95, 69,196, 84,180,235, 13, 45, 13, 59, 8,229, 63, 84,
-100,153,228, 44,254,209,101,229, 8,180, 29, 45, 34, 57,120,102, 98,238, 84, 54,248,177,115, 46, 32,224,110, 24,171,225,142, 26,
-226,122,217,198,119,199, 25, 21, 76,116,245,242, 71, 93, 93, 67,144, 67, 83, 72,217,122,208,154, 38,146,170, 74,254,122,137, 97,
-203,171, 80,123,126, 86, 13, 50,114,230,134, 52, 43,104,160,110, 52,106,229, 82,239,218, 10,165,197, 42,143, 92,155,112, 63, 79,
-182,109,170,172, 86, 42, 53, 42,212, 72,110,166, 83, 17, 83, 38, 18,137,166,133, 50,164,172, 60, 85,240,145,228,123, 92,248,153,
-225, 90,117,139, 14,223,186,217,144,212,184,247, 13, 37,217,245,234, 50, 30, 68,154,188, 47,118, 5,245,153, 13, 36, 5, 84,225,
-248, 64, 45,114, 16,133, 4,120, 5,183,210,145,135, 23,170, 17,120,166,246,122,210,239, 8,251,245, 73,221, 42,108,202,125, 54,
- 85,110, 12,136,116, 25,110, 42,164,252,181,186,183, 36, 84,100, 71,157,200,243,176,212,251, 97, 40,154,128, 27, 80, 87, 42, 0,
- 73,215, 28,248,248,246,138,238,223, 31, 27,209,100, 13,189,190,175, 61,174,217, 13,133,184,168,247,110,220, 46,215,168, 72,182,
- 43, 50,175, 26, 23,136,134,174, 58,133, 66, 41, 14,213, 96, 61,144,143,113,148, 85, 17,198,121,155,117,149,165, 68, 30, 78,240,
-151, 41,171,203,168,248,214,139,140,242,218,147, 61, 39, 46,146,154,176, 74, 94, 58,115, 70,238,237,110,102,210,194,237, 49, 74,
-101,167,176,152,106,242, 71,253,233, 17,120, 7,226,111,137,188, 85,195,180,126, 29,112,252,188, 55,150, 71, 72,245, 89,147,103,
-144, 54, 91, 11,230, 13, 18, 65,236,212,236,144, 84, 78,202,220,184,170, 37,144,199, 57,137, 21,156, 76,199,149, 3,245, 94,101,
-153, 14, 91, 11,118,106, 60, 38, 42, 50, 98,248, 52,232,255, 0,224, 76,210,169,176,210, 23, 58, 67, 75, 75,170,196,215, 65, 90,
- 66,200, 82,134, 70, 57,121,122,190,116, 74, 93, 58,224,113, 52,104,137,117, 22,180, 38, 41,236, 84,166,201,117,250,127,189,196,
-138,202,165, 63, 77,135, 61,213, 5, 70,128,166,194, 12,199, 18,144,165,140,160, 16,130,179,166,155,101, 55,170,133,187,214,166,
-214,220, 55, 67, 20, 74, 22,231,223,150, 76, 91,182, 85,181, 1,133, 66,160,215,231,197,159, 82,164,204,170, 90, 80,221, 39,244,
- 42,118,154,185, 47,211,155, 89,114, 42,164,175,221,144,228, 84, 39,195,216, 74,124, 72,107, 67,204, 60,133,205, 66,221, 76,153,
-140,248,200,105, 21,106,162,212,144,195,107,125, 39,244,116,228, 20,254,149, 32,124, 73, 74, 16, 82,160,149, 5, 73,200, 40,225,
- 8, 33,133,138,157,182, 82, 3, 95, 73,181,137,216,116,212, 13,238,110, 49, 90,230,167, 55,225,188,207, 50,225,188,237,100,164,
-205,114, 10,186,138,102, 10, 67, 66,181, 20,181, 15, 75, 52,145, 56, 33,102, 11, 36, 14,177,206, 9, 14, 84, 59, 29,188,174, 84,
- 59,173,112, 93,143, 85,131, 21,160,229,114, 44, 58, 45,153, 66, 12, 7, 27,139, 74, 91,136,101,170,139,205, 35,148, 83,216, 89,
-109, 47,175,160, 45,198, 97,150, 17,149, 40,129,153,191, 33,138, 45, 46, 76, 10,157, 73, 53,234,220,249, 45, 83,233,211, 28,109,
- 44, 82,226, 34,114,131, 18, 43, 40,129, 31,153, 48, 97, 70, 47, 36,186,181,120,174, 58,242, 82,209, 95, 50,212, 18,208, 73, 83,
- 80, 80,204,199,127,194, 85, 21,242, 79,187, 56,168,170,169,212,221,108, 50, 91,138,234,193,240,227,178,130, 24,101, 57,229,108,
- 41, 75, 86, 74, 20, 9,139,172, 74,165, 58,245,126,172,220, 89,142, 26,131,177,226,196,130, 86,202, 30,125,154,122,189,198,155,
- 17,167, 0, 8,166,198,149,239, 78, 60,238, 79,139,135, 31, 80, 75,139, 70,183,210, 72,208, 37,152, 14,131,107,157,246,216,129,
-183, 77,134,221,141,183, 54,195, 12,185,100, 85,145,194,212,139,125, 68,121, 69,150, 73, 36, 70, 28,168,213,141,221, 80, 38,242,
-239,121, 25,155,153,118, 55,137,194,174, 84, 41,148, 85,183, 64,162,120, 21, 9, 84,184, 49,145, 29, 46, 45, 79, 64,165, 64,110,
- 50,132,154,165, 69,214,148, 82,194,220, 74,138,147, 28,101,231,150,232,192, 66, 9, 86,185, 17,237, 36,216, 24,156, 79,108, 45,
- 91,106,157,145, 17,119,146,170, 52,251,163,110,235,115,214,150, 35,192,191,179, 38, 60, 55, 42, 47,160, 19, 2,219,168,211, 29,
-118,157, 56,164, 20, 50,202,227,203, 3,158, 10, 73,232,220,233,143,193,167,180,203, 82, 67,210, 37,192,145, 88,170, 20, 52,150,
-230, 54,253, 90,120,113, 41,119,149, 69, 38,115,235, 1, 12,182, 7,193, 25, 9, 82,185,130, 82,117,175,119,139, 85,218,217,157,
-245,121, 66, 42,143,213, 32,176,154,170,185, 28,143, 69, 75, 2,115,178,106, 74,141,250,175, 22, 25,108,248, 12, 35, 8, 91,142,
- 54,181,252, 5,122, 88,213,203, 28,145, 75, 78,229, 37,167, 97, 34,183,236,148, 33,148,223, 96, 69,197,183,176, 63,102,214,216,
- 58,240,190, 68,114,250,243,152, 23, 19,199, 8,114,242, 72, 72,231, 22,188,108,205,176,101,137,213,157,138,160, 37,149,131,121,
-245, 2, 96,171,183, 20,137,123, 31,191,149, 91, 47,123,232, 85, 27, 62, 93, 6,181, 34,220,190,237,155,214,132,186,220, 88,179,
-217,150,220, 71,128,149, 75,125,138,149,169, 90, 75,203, 96,211,110, 42, 91,143,176,165,184,194,229,195,126, 59,201,121, 83,127,
-216,175,102,198,192,241,189,192, 78,211, 93,151,173, 66,131, 11,121,110, 27,122,109, 78,202,226,103,134,152,244,170, 29,255, 0,
-106, 75, 77, 80,127, 7,147,118,200,183,170, 81,169, 27,137,124, 65,102, 20, 38,171, 53, 4, 24,110,205,241, 18,226,164,123,227,
- 13,202,211, 37,186,124, 33,108, 79, 16, 66,211,103,113,182,182,139,118, 84,173, 7,156,166,216,183, 99,192, 67,187, 32,202, 95,
- 52,202,236,231,238, 88,201, 46,213,173,214,193, 83,203,133, 49, 50, 99,173,245,243, 52,203, 11,115,159, 93, 2,225, 42,126,233,
-240,185,105, 84,108, 74, 45, 95,108, 43, 59, 35, 69, 97,250,141, 10,138,230,217, 90,251, 48,139, 9,233, 47,173, 83,167, 92, 23,
-133,177, 85, 69, 46,182,212,244, 48,183, 86,228,216,112,223, 43,138, 95,241, 29,230,228, 19,170, 78, 41,201,115, 12,218,154,183,
- 54,203,228, 66,244,207, 79, 57, 83,174, 48,118,211, 36,113,139, 51,236,182,144,200,197,209, 89, 4, 74, 66, 18,100,220, 71,196,
- 25,253, 47,135,176,101, 60, 41,197, 99, 32,207,114, 92,228,102, 52,138,194,116,168,154, 25, 34,146, 41,169,214,165, 68,180,176,
-199, 36,210, 6,122, 3, 28, 20,213, 45, 28,143, 83, 37, 84,238, 34,143, 74,120, 89,225,111,121,247,111,121,238, 89,155,225,184,
-220, 82,237,142,251,112,146,253, 17,207,229,239, 14,200,188, 40,150,199, 16, 91, 53,100,203,106,223,161,219, 59,177,105,238, 28,
- 8,141,191,184, 84,122,123,188,237, 86, 66, 93,102,187, 65,135, 61,155,146,157, 54, 68,117, 85,170, 29, 5,246,132,237, 76,171,
- 94,215,181, 54,235,103,182,227, 99,237,219, 50,147,100,221,151,117,186,253, 38,155, 38,143,114, 90, 87, 4,106,212, 53,220,242,
-118,242,194,180,160,179, 75,166, 81, 39, 84,235,112, 68,217,140, 61,226, 50,212,247, 22, 89,118, 35, 77,235, 83,184,202,246,199,
-112,111, 70,219,122,181, 6,171,108, 65,226,231,125,105,213,122,204, 75, 11,108,236, 27,130,252,141,176,118,155, 98, 2, 33,193,
-175,238,213,251, 13, 81, 98,223, 52,197,206, 75,206,187, 71,165, 38,170,196,168,241,155,138, 85, 9,111, 46, 98, 52, 47,111,189,
-188,183, 37,209,109, 10,103, 17, 22, 2,110,109,194,146,227,138,131,118,219,246,163,116, 11, 98,132,235,103, 52,122, 75,118,253,
-157, 38, 77, 80, 90, 17,210,101,178,248,116,206,118, 75, 83,212, 28,101,175, 1,149,162, 45,226,190, 70,185,231, 0,203,149,228,
-121,123,231,153,198,105, 91, 28,230, 88, 16, 36,112,211, 70,154,212, 24, 39,149,165, 18, 74,198, 72, 89, 35,105,100, 12, 41,231,
-158,112, 57,145,137,231, 10,100, 94, 51,241, 87, 23,112,111, 30,211,112, 52,153, 38, 73,225,242, 10, 90,124,155, 50,146, 42,116,
- 99, 45, 52,112,243,178,218,153, 12, 21, 85, 52,171, 42,205, 88,212,181,201, 75,149,209, 37, 91, 81,100,148, 51, 81, 75, 49, 50,
- 6,217,173,183,155,188, 84,118,173,158, 32,172,235, 87,118, 54,166,179,183,149,203,134,222,225,242, 30,215, 80,233, 54,151,241,
-165,100,213,106,245,122,156,138,221,227, 2,160,150, 46, 42,164,235,130,161, 57, 86,251,132, 51, 77,169, 64,173,174,167, 38, 59,
- 85, 4, 56, 26, 3,109,118,123,135, 41,252, 96,110,135, 23,245,109,254,221,189,165,168,219,173, 91,123, 97, 87,216,251,190,175,
-183,219, 85, 99,219,212,155,126,209,183,217,137,183, 10,131, 66,169, 76,169,205,176,225, 70,165,194, 83,180,116,125, 88,219,175,
-148,178,243,175,199, 75,173, 59, 29, 61,249,246,206,238, 94,228,237, 61,211,181,155,117, 97, 50,205, 62,247,110,151, 14,183,114,
- 57, 71,149,102, 55,111,211, 40,145,161,125, 74,213, 25, 54,141,222,227,180,202,188,130,169, 82, 23, 30,151, 57,136, 16,218, 83,
-108, 72, 50, 38, 25, 64,114, 67,110, 47,253,229,176,174, 10,205,199,103,238,253,237, 99, 85,238,119,154,122,231,157, 75,174,215,
- 74,238, 7, 25, 46,152,207,214,220,157, 58, 73,170, 74,109, 18, 30, 75,110,190, 29,121,180, 44,165, 42, 9,232, 21,240,162,151,
- 56,225, 46, 16,143, 36,205,178, 88,214,186,130,176,206,181, 50,212,206, 37,168,141, 97,228, 37, 63, 46, 9,201, 90, 37, 96,103,
-142, 25,155, 74,243, 26,157, 97,150, 33,237, 83,203,114,127,162,199,141,220, 86,188, 75, 85,151,241,125, 31, 2,167, 23,193, 83,
-150, 54, 91, 79, 78,166,152,101, 85,109, 75, 81, 85, 61, 59, 60, 98,150,158,166,174,122, 58, 72, 42,106,150,136,102, 51,123, 10,
- 85,205,152, 73, 43, 44, 16,206,123,218, 61,196,127, 12, 59,235,177, 53, 46, 29,169, 86,189, 55,136,234,109,215, 88,166, 26,197,
- 38, 53,233,116,109,198,223, 91,198,222, 80,171,209,234,119, 5,221, 67,164, 25,151, 10, 5, 85,136, 33,154, 93, 49, 37, 18, 15,
-233,100,202, 97,150,139,131,132,251, 87,179,251, 79,179,194,224,147,101,216,244,202, 5, 90,229,159, 17,119,149,211, 72,110, 69,
- 46,248,110,163, 29,217, 43,129, 66,171, 79,122,116,167, 35, 90, 76, 72,147, 37,216,236, 37,215, 98,203,117,126,245, 45, 50,100,
-114,186,222,133,219, 60, 77,113, 16,220,102, 29,123,136, 11,214,170, 86,194,217,230,148,229, 46, 98, 20,211,128,115, 50,125,254,
-146,190,100,228,116,200, 4, 30,163, 7,187,151, 72,226,234,249,165, 72,105,119,173, 54,145,119,199, 91,105,138, 42,209,169,240,
-173,203,214, 44,100,188,211,178, 16,205,110,152,208,135,112, 48,176,215,197, 10,171, 13,109,124, 69,109,200, 97, 95, 24,214,226,
-126, 46,204,248,131, 53,169,253, 34,207, 26, 53,144, 71, 4, 79, 21, 56, 17,133, 22,229,150,231, 57, 26, 1, 47, 34,187, 2, 44,
- 52,198,170,139, 50,202,126,130,126, 47,120,111,192,109,194,252, 57,154,229,220, 65,148, 9,205,116,180,137,154,214, 10,186,170,
-162, 10,137,109, 91, 69, 71,150,198,235, 25, 10, 22, 25,169,163,100, 69,105,125,166,116, 70,126,237,240,173,188,242,233, 18,100,
-237, 93,235, 42, 60,202,109,114, 92,138,190,220,221,209,196,104,148,181, 76, 74, 16,170,157,149, 92,105,110,132,210, 43,242, 74,
- 19, 42,158,164,115,198,158,234, 36, 48,143, 6, 66,144,210,247,177, 85,202,124, 85, 41, 50, 23,238,234, 96,171,220, 84,131,201,
- 81,167,186,242, 66,220,103,194,112,116,136,167, 49,204,218,135, 38,114,149, 36,142, 82,142, 24,109,205,249,100,111,109,188,154,
-141,169, 87,121,132, 69,149, 25,154,133, 12, 70,102, 35,244,170,162,202,228,211,227,215,160,171,156, 70, 90,220,109,197,198,112,
- 60, 25,150,134, 86, 98, 60,242,193, 74, 54, 70, 21,203,185,137, 49, 41,209, 55, 38,242,181,228,211, 26, 17,157,129, 46,114, 42,
-180,121, 76,135,128,240,207,214,112,156,148,134, 86, 18, 75, 79, 49, 33, 50,163,165,120,248,146, 57, 73,105,106,159,147, 26, 7,
- 37, 20,121, 74,249,129, 29,199, 81,176, 38,192,147,176,176, 11,229, 39, 28,113,196, 92, 57, 81,148,103, 21,249,110,121, 69, 46,
- 69,155, 81,200,201, 87, 73, 60,114, 67, 44, 19, 46,155,235,139, 65,117, 46,165, 73, 11, 30,131,175, 80,250,185, 64,199, 74,170,
-247,117,187,111, 83,215, 94,171,203,137, 65,135, 79, 67,143,174,161,207, 41, 13, 62,140, 15, 16, 83, 24,105,167, 37, 84, 28, 81,
- 82,130,227, 69,105,245, 45, 71, 41, 66,191, 91, 76,133, 87,124,171,187,130, 29,167,217, 76,213,237,251,106, 66,189,205,119,162,
- 28, 98, 37,199, 86,142, 16,162,185, 54,235, 12, 41,106,181,161,242, 45, 99,199,119,154,162, 48, 80, 81, 16,158,154,182,205, 62,
-117, 86,178,221, 66,238,151, 81,166,214,156, 82,227, 66,168, 73,171, 77,171,198,152, 82,188,180,236, 27,145,222, 95,115, 36,148,
-242, 70, 81,136,160, 29, 56, 67,138, 29, 54, 42,202,179,153,139, 37,154,143, 44,138, 93, 90,115, 13,179, 42, 84, 55, 84,228, 58,
-130,154, 32,177, 34,167, 76,116,248, 83,164,158, 85, 21, 58, 66, 29,194,202, 84,242,134, 53,191, 74, 37,168,148, 34, 92,139,239,
-126,187,219,125,133,150,228,146, 47, 98, 55,179, 1,136, 86,103, 62, 91, 69, 8, 36,153,106, 8, 60,182,111, 58, 40,216,157, 54,
- 98, 36, 0,234,243,171, 58, 3,101,229,106,179, 43,139,104, 91, 70, 44,120,176,217, 45, 59, 21,146,164, 50,232, 71, 43,133,111,
-117, 90,230,100,144,252,149, 40,149, 41,210, 74,150,181, 21, 44,149,171, 39, 97,160,209,196, 74, 98,138,211,204, 1,101, 39, 41,
-232,160, 84, 80, 91, 86,122, 5,117,207,217,171, 93,167, 74,230,109,190,118,227,151, 50, 18, 67, 73, 80,101,207,212, 10, 45,182,
-190,169, 65, 32, 16, 14, 72, 61, 50,113,157, 59,206,211,128,167,184,215,134, 84,218,139, 67, 9,202,136, 9, 81,207,134, 79,235,
- 28, 17,243,252,113,169,165, 53, 56,166, 68,176, 35, 72, 23,245, 29, 5,183,191, 78,155,254, 24,174,234,171, 13, 76,138,146,157,
-228,111, 49,216, 94,228,111,219,173,201, 22,181,250,250,130,207, 61, 76, 83, 78,129,201,136,206, 30,102,214, 63,241, 74, 61,219,
- 81,242, 79, 81,141, 92, 33, 83, 11, 11, 43, 74, 70, 79,235,128, 48,146,159, 95,183, 89,187, 48, 16,248,113,190, 78,100,130, 82,
-160,176, 65, 32, 28, 5, 99,215,168,252, 53, 65,216,162, 34,146,199,235, 39, 31, 2,200,193,233,215,144,231, 79, 81,206,164,117,
-233,252,125,253,240,213, 89,206, 82,241,176,243, 14,190,132,117, 7,227,110,189,143, 94,183,197,134,155, 9, 14, 77, 73, 35,160,
-115, 31,105,236,123,140,118,214,207,217,208, 91, 67, 45, 2, 19,212, 36, 12, 14,163,212,156,142,135,247,233,135,163, 69, 10,155,
-158, 95,135,196,200, 0,103, 57,200,252,115,173,138,183, 84,150, 18,214, 79, 47, 42, 82, 64,200,200,192, 25, 63, 34, 51,173,102,
-107,129,181,255, 0,158, 33, 53,234,201, 4,224,108,194,246,251,207,207,175,124, 57,232,109,180, 51,202, 72,248,130,113,142,248,
- 78, 0, 31, 35,235,246,233,191,188, 42,206, 66,108,193,167,132,253,103, 41,181, 0, 71,255, 0, 2,140,174,134, 73, 35,245, 92,
- 39, 33, 30,121,235,229,171,141, 90,228,106, 11, 32, 52, 80,236,183, 73, 12, 70, 4,229, 74, 7, 30, 43,152, 63, 3, 41, 29, 84,
-123, 28,224,100,235, 5, 13,173,197, 57, 46, 67,138,125,249, 46,120,146, 95, 88,253,117,156, 97, 40, 39,245, 91, 0,225, 35,176,
- 29,180,142,179, 80,220,168,205,149,126,211, 15,223,164, 16,122,250,158,195,208,145,134,108,155, 45,116,149,107,106,210,241, 41,
-186,161,255, 0,120,194,221, 71,236, 47,127,218, 35, 79, 77, 86,176, 66,163, 8,205,225,197, 43, 56, 37,105, 65, 56, 36,252, 75,
- 82,212,174,171,112,149, 28,156,245,207, 93, 15, 45,216,241, 57,146, 57, 27, 56,200, 72,192, 89, 78, 15, 85,168,159,128, 99, 39,
-226, 63, 33,223, 89, 20,167,114,130, 10,130, 80, 72,248, 26, 31, 30, 65, 0, 16,165, 3,208,231,174, 61, 61, 53,129,212,188, 52,
- 7, 20, 82,214, 78, 74,148,226,186,164,228, 18, 84,181,103, 36,244,238,122, 30,157, 53,185, 26, 44,106,170,160, 1,238,236, 54,
-253,214,249,247,206,169,100,122,153, 25,234, 36,251, 71,160,233,212,122,216,124,236,119,197,146,116,196, 43,156, 23, 20,234,176,
- 66, 83, 24, 44, 50, 18, 79, 66,235,132,167,159, 61, 50, 50, 18, 9,206, 15, 83,172, 58,116,165, 37, 64, 4,182,218, 73,199, 59,
-139, 10, 82, 73, 66,186, 33, 13, 30, 94, 96,174,108,228,231,168,198,123,139,140,202,131, 79, 30, 70,148,227,238, 33, 74, 65,102,
- 43, 97,196, 54,147,211,226, 81, 41, 74,129, 0,103,226, 56,236, 70, 51,172, 78,114,228,243, 5, 43,193,100,115,243, 36,120,134,
- 75,201,194,128, 42, 71, 54, 17,204, 60,206, 74,114,122, 18,116,112,214,210, 59,223,241,219,240,190,226,251,116,251,158,201,176,
- 10, 23, 73, 61,143, 95,141,182, 61, 58, 16,167,226,118,197, 23,220, 24, 42, 82,202,147,250, 50,234,130,146,217, 45, 36,168,133,
- 45, 94, 71,175,197,215,174, 49,223,174,177,233, 50,208, 66,131,105, 61,214, 66, 64, 78,114, 64, 32,244, 61, 27, 42, 36,100, 30,
- 80, 0, 29,250,232,185,104, 66, 49, 33,199, 21,150,220, 43, 66,158, 90,158, 9, 94, 72,229, 74, 84,180,165, 36,173, 63,234,146,
-156,146, 6,173,114, 20, 80,180,165, 72, 80,112, 20,145,206,164, 41, 92,139, 1, 96,182,144,172, 56,130, 20, 14, 50, 0, 39, 56,
-233,141, 46,141, 98, 54,244,254, 95, 29,247,198,133, 76, 90,206,166, 58,175,233,178,237, 97,238,254, 93,189,215,178,204, 42, 33,
- 93, 64, 42,248,136, 81, 57,235,147,209, 95,205, 61, 51,156,117,229,239,140,107, 16,158, 7, 42,147,206, 74,138, 85,241,171,148,
- 17,140, 96,145,216, 96, 12,125,253, 6,178,233, 89, 1, 42, 89, 0,224,140, 40, 16,146,179,204,164, 55,201,216, 60,158,153, 29,
-114, 59,100,118,197,106, 10,207, 40, 35,170, 73,230, 36,114,149,103,155,161, 9, 87, 86,241,147,231,213, 88,193, 58, 92, 49,218,
-223,135,110,159,187,221,238,253,216,103,145, 0, 34,219,123,186,124,143,147,136, 13,251,114,237,134,237,143,105, 46,242, 73, 13,
- 22,133,233,109,109,125,248,227,197, 1, 40,126, 69,118,199,166,197,148,182,249, 0,241, 0,122,146,174,101, 31,136,168,158, 98,
- 78,117,200,194,180,168,126,137,101, 88,239,233,246,107,183,127, 72, 24,180,175,104, 99,158, 27,161,215, 19,195,254,205, 37,246,
-129,255, 0, 34,180,195,184,124, 52,148, 17,150,202,152, 45,175,169,201, 11, 7, 0, 99, 92, 70, 83,105,199, 81,140,246,229,242,
-249, 29, 75,178,155,181, 13, 41, 59,217,109,211,176, 36,116,235,219,242,199, 51,241, 50, 44,124, 69,158, 34,159, 47,181,212, 31,
-255, 0,116,172,199,247, 18,113, 76,168, 40,116, 72, 29, 62, 47, 63,188,117,208,235, 35, 24,207, 92,244,254,221, 86, 40, 35, 62,
-152,207, 95,232,251,116, 51,133, 67,168, 78, 71, 81,243,251,244,236, 6,194,221, 48,206,160, 29,173,211,161,253,216,162,179,229,
-143,191,211,175,217,170, 11, 0,227,176,245,245,199,175,207,160, 58,244,188,254,177,201, 82,124,188,177,231,246, 29, 81, 39, 39,
- 58, 93, 70,194,221, 63,158, 20, 24,164,230, 60,136,232, 72,244, 39,183,109, 12,178, 9, 61,242, 59,122, 30,223,214,116, 74,241,
-130, 73, 3, 7,167,246,245,213,189,240,234,136,240,212,148, 97, 95, 22, 70, 74,128,236, 58,249,233, 68,235,140, 3,126,155,227,
-193, 36,156,254,113,165,175, 10, 63,237, 99,238,206,116,180,125, 62,182,191,207,191, 25,199,180,146, 15, 65,159,151,174,171,165,
- 93,142, 58,142,227, 61, 70,135, 31,120,254,145,251,117, 92, 96,245, 30,127, 46,250, 37,188,191, 15,195,231,231,124, 12, 86,241,
- 19,156,117,235,231,142,159,126,136,111, 10,193, 74,187, 28, 99, 24,201, 62,191,136,252, 53, 65, 9, 0,131,220,244,251, 58,232,
-164,225, 61,178, 7, 94,221,254,236,246,210, 76, 24,139,124,252,223, 25,219,239,197, 69,160,168,119,233,221, 93, 78, 6, 49,216,
-125,186, 33,164,115, 36, 40,247, 29, 66, 71,160,233,235,170, 64,133, 15,207,113,215, 69, 36,242,224,244,244, 35,208,105, 34, 0,
- 39,190, 49,143,104,101, 42,238, 57, 85,215,168,198, 72,251,188,244,123,104, 72, 72, 24,201, 79, 78,191,187,166,132, 65, 39,226,
- 72, 25,244, 39,167,152,251,180, 90, 22,144, 1, 87,195,147,231,252,236,250,124,244,153, 23,216,158,159,233,140, 17,124, 28,214,
- 58,114,244, 24, 61, 62, 93,191,167, 70, 32, 12,103, 39,230, 60,137,199, 94,154, 13,178, 23,215,168, 29,253, 59, 99,250,245, 93,
- 11, 73, 95, 47,114, 62,127,102,127,103,150,147,194, 39,221,190, 13,108,129,145,140,228, 16,160, 70, 82,164,158,133, 36,121,130,
- 9,200,212,133,253,149, 30,214, 40,187, 66,197,191,195, 39, 20,245,169, 15,236,235,143,162, 14,220,110,140,213,189, 54,163,181,
-211,100,184, 17, 30,135,114, 58,162,165,203,177,148,226,240,211,164,149, 65,206, 21,150, 70, 83, 30,118,242, 14,122,121,126,206,
-218, 33, 39, 37, 68,227,168,229, 32,128, 82, 65,232, 65, 7,184, 56,237,231,157, 55,102, 89,109, 54,103, 78,208, 84, 37,251,171,
- 11,106, 86,236, 71,240, 32,236, 71, 81,211, 14,249, 22,123,153,112,230, 99, 22,103,149,205,202,158, 63, 43, 43, 92,199, 44,100,
-130,209, 74,160,141, 72,214, 29,195, 41, 1,144,171, 0, 71,233,189, 78,163,199,149, 6, 5,118,137, 50,159, 88,161, 86, 97,179,
- 50,145,112,209,228,179, 81,164,214, 32,202, 66, 93,106,101, 62,161, 25, 74,109,214,150,210,146, 82, 66,186,115,105,198,165,210,
-220, 45, 54,156, 0,210, 18,130, 16,156,144,132,160,130,113,234,163,215, 63,102,191, 63,142, 13, 61,168,188, 90,112, 88, 35, 91,
-187,121,119,179,119,109,106,165, 54,185,123, 83,184, 1,218,213,172,195, 74,112, 25, 31,193,231,222,112,191,110, 58,164, 21,224,
- 48,176,215, 49, 7,195,198,117, 59, 45,161,226,130,149,124,109,157,131,126, 59,105, 34, 25,190,109, 42, 53,196,184,241, 30, 15,
-198,138,237, 78, 35, 82, 31,140,211,167,245,219, 66,220, 41, 7,190, 19,170,167, 56,203,165,200,101,140, 85,149,104,230,213,203,
-101,189,155, 78,155,220,117, 82, 3, 46,198,227,123, 43,181,137,199, 98,248,121,226, 4, 60,107, 28,144, 81,211, 52, 25,134, 94,
-168,243,195, 33, 13,165, 88,233, 15, 20,151, 2, 68,212, 8, 23, 84,117,184,212,128, 27,157,174,166,211,138,218,110, 68,166,202,
- 12,226,136,177,129,232,166,216, 72,248,148, 83,159,213, 41, 3, 58,199,247,101,136,115, 44,202,189,191, 58, 53, 62,165, 75,147,
- 13,232,255, 0, 85, 84,225, 70,168,193,124, 22,212, 1, 92, 57,109,173, 42, 25,207, 92,107, 7, 94,247, 82,222, 44,120, 49, 37,
- 54,166,153, 62, 27, 97,162,180,183,147,212, 19,228,122,244,251, 53,166, 60, 82,241,139, 69,219,203, 98, 69, 54,140,180, 86,247,
- 30,234,150,139, 66,201,183, 25,149, 29,233,234,185, 42,196, 70,134,169,113,219, 89,247, 70,154, 91,161,107, 46,114,242,132,100,
-244,206,153,205, 97,168, 2,158, 4, 44,100,219,125,135, 64, 78,228,219,222, 73,244,222,221,174, 76,131, 35,204,179,124,218,130,
-135, 45,164, 51, 85,202,227, 76,106, 62,206,255, 0,109,219,126, 90, 70,190,103,145,136, 84, 93, 78, 72, 23,191, 48,247,123,113,
- 54,107, 98,106,146,105, 9,180, 41, 21,123,162,141, 80,151, 62,153,110, 91,228, 81,105,212,218,178,156,241, 34, 77,169, 72,130,
-226, 75, 2, 57,229, 90, 91, 71, 95, 19, 25, 61, 49,174,102,239,183, 16, 27,245,196,245, 64, 82,110,171,182,181, 46,217, 96, 6,
- 35,218,212,137, 51, 32,219,108,198,105, 92,201, 85, 69,199, 30, 6,166,164,128, 10,220,112,144, 72,251, 53,214,202, 31,178,178,
-163,118, 58,154,214,227,110,196,250,141,229, 94, 90,234,215, 82,232,240, 89,168, 70,166, 84,170, 4,190,168, 41,121,249, 0, 76,
- 90, 29,119,151, 56, 9,248, 73, 25,214,146,202,219, 91, 51,104,184,161,111,104, 55, 2,101, 83,114, 54,198,194,191,169, 77,110,
- 68,221,177,164, 63, 85,175,214,237, 88,241,211, 82,147, 76,141, 78,128, 22, 91, 87,142,150, 98,205, 74, 85,132,248,171,248,142,
- 53,173,150, 83, 84, 83,203, 81, 44,142,139,160, 27, 2,160,233, 3,114,117, 16, 12,141,127, 70, 80, 9, 35,125,241,233,239,130,
- 41,224, 38,103, 13,117, 54, 67,153,205,226, 87, 28,112,190, 95, 45,125, 92,210, 83, 86,187,242,226, 42,178,174, 80,149,113,165,
- 44, 65,229,100,134, 4,141,150,122,141, 81, 51, 73,162,237, 30,168,196,225,210,109,131,180,183,158,251, 93,182,173, 90, 77,131,
- 96, 89,181, 75,242,173, 86, 98, 49,102, 9,183, 41, 18, 99, 82,213, 61,169,147, 28,108, 26,115,213,233,208, 41,241,139, 73, 89,
-155, 50, 88, 98, 57, 82,144,225, 71, 44,173,110, 47,174,107,174,254, 98, 13, 58,249, 85, 6,131, 87,171, 39,220, 44,241,181,244,
-153,180,166, 32, 5,149,154,122, 42,162,227, 19, 75,165,128, 71,188, 56,178,174,115,204, 82,145,128, 36, 3,237,235,223,234,222,
-215,112, 55,182,219, 31, 86, 98, 61,181,187,220,112, 95,208,183,126,253,180, 97, 54,220, 21,109,191, 13,155, 89, 33,113, 54, 95,
-106,218,165, 50, 18, 40,148,150,231,154,107,198, 55, 42, 67,242, 41,179, 93,113, 42,113, 74, 86,162, 97,177, 48,209, 39,113,161,
- 58, 64, 13,211,225, 75,148, 51,140, 36,165,190, 84,143,159, 65,171, 75,135,178,168,107,242, 90,172,214,180, 51, 59,234, 16,134,
- 17,190,133, 64, 20, 55,158, 54, 2, 70,146,225,136, 0,174,157, 43, 97,185,243, 63,233, 63,244,231,241, 66,159,196,102,225, 15,
- 14, 51, 37,224,188,143,132, 9,142,161,114,156,207, 55,165,122,154,211,180,201, 83, 95,148,230, 89,116,181,212,212,192, 8,224,
- 5,150, 25,142,186,190, 84,124,245,138, 25,117,109,141,230,157,201,225, 47, 99,174,184,147, 81, 37,251, 42,185,185, 27,109,239,
-116,234,109, 66,219,122, 4,155, 82,247,170, 85, 97,120, 77, 63, 82,121,198, 42, 45, 83,110,106, 65,247,182, 36,165, 14,184,226,
-150,194, 25, 9,113, 3,110,182,151,139,125,212,183,132,104, 23,139,113, 55, 18,137, 24, 33, 42,171,202,150,138, 77,231, 10, 58,
- 80,148, 41,215,106,105,101,113,238, 23, 2, 0,109, 6, 99, 41,127,224, 0,190, 84,115,174, 89,251, 50,110,182,111,109,161,226,
- 3,101, 36, 58,211,149,138, 21, 94,218,222,203, 78, 35,202, 81, 46, 82,231,199, 69,129,126,193,167,180, 63, 93,214,103,194,179,
-170, 50, 48, 15, 42,103, 21,168, 17,147,174,130,217,182, 49, 51,154, 91,177,188,102,144,164, 58, 35,144,191,242,169, 25, 99,159,
-148,124, 72, 7,226,207, 80, 49,207,131,216, 83, 92, 69, 69, 29, 6, 99, 95, 73, 34,235, 8,250,148,236, 9, 14, 17,197,138,133,
- 2,215,210,116,217,110,164, 91, 97,105,119,134, 62, 33,208,248,151,225,118, 89,196, 28, 81, 28, 85,249,213, 91,213,189, 89, 99,
- 36,143,237,143, 83, 41,169,117,146, 89,165,169, 6,105,139, 75,170, 73,228,145,245,134,150, 73, 9, 44,122, 97,110,111,221,149,
-120, 67,165,189, 58,161, 34,214,201,105,134,233, 55,148, 69, 83, 11, 50,221, 90, 92, 68, 40,213, 72,110,200,135, 46, 73, 41,108,
-171, 14,167,245, 84,130, 65,200,211,166, 94,171, 84,102, 51, 47,194,143, 89,131, 9, 5,184,240,105, 85, 40,147,218, 74,222, 40,
- 89, 97,227, 2, 67,137, 97, 78,252, 5,254,110, 85,114,132, 39, 9, 72, 32,233, 93, 14,201,122, 65,143, 22,156,212, 69, 86,100,
- 46, 44,135, 38, 57,135, 33,219,180,231, 22,234, 83, 60,161,192, 10,170,170, 8,144, 33,178, 71,233, 29, 30,242,191,208,181,133,
-191,182,125,129, 22,137, 24,184,219, 16,105,244,122,116,229, 24,172,196,140,227, 51,106, 82, 37,172, 0, 92,153,226, 37,249,213,
- 57, 83, 22,165, 18,225, 82,222,113, 69, 74, 9, 71,234, 68, 9,208,198,209, 94,219,218,228, 15, 83,112, 65,184, 62,227,110,189,
-109,178,169, 62, 83, 5,218,149,249, 37,181, 42,198, 87, 89, 80,199,253,217, 86, 70, 70, 98,204, 20,146, 89,197,201,101, 22,230,
- 59,242, 41,215, 69, 77, 73,128,236, 67, 18, 58,167,154,138,231, 60, 4,102,158,150, 80, 82,130,218,157,115, 45,198,101,174, 84,
-165, 1, 68,114, 52,130,156, 99, 89, 45, 34,212,134,228, 73, 16,146,227,205,181, 1,201, 78, 77,171, 38, 42,218,143,227,144, 4,
-201, 12,201,115, 36, 71, 12, 32,165, 43, 3,226,248,212,144, 10,146, 53,126,180,172,233, 73,154,154,212,168,202, 93,197, 80, 97,
-136,104,140,211,242,100,192,162,196,109,194,166, 41,208,221,148,163,201,135, 23,227, 62,232, 78, 95,127, 36, 0,218, 27, 1,238,
-160, 90,138,170,136,112, 34,196,122,116, 24,179, 26, 97,224,201, 66,151, 91,158, 22,121, 26, 8,112, 2,184,136,155,133, 28, 30,
- 89, 15, 32, 1,204,132,117,220,138, 25,100, 69,141, 33, 42, 95,185,185, 36,108, 64,216, 41, 3,125, 76,119, 96, 54,234,214, 58,
- 53,249,220, 11, 78,232,142,144,194,128, 23,101, 1, 6,175,214, 62,103,112,219,249, 82,197, 84,238,108, 17,110, 52,139,118, 47,
- 29,184,225,215,110, 42,187,173,184,204,207, 72, 80, 85,167,183,182, 36, 9,173, 70,184,111,106,192, 66,170,116,219,106,146,227,
-200, 80,164, 50,235, 10, 77, 66,191, 84,117, 10,106,153, 79,228, 73,241, 36,174, 36,119,184, 21,190, 59,243,185,156, 69, 84,159,
-170,238, 77,125,233,212, 64,224,114,153, 96, 80,157,149, 74,219, 91,113,168,200, 9,139, 79,161,218,173,191,225,204,247,118,130,
- 18,103,207, 18,106, 18, 92, 10,125,231,194,214, 80,151,139,218, 61,196, 11, 91,199,196,197,237, 22,149, 81, 84,157,189,217,229,
-191,180,182, 2, 88, 11, 17,100, 68,160,212, 84,221,239,112,178,210, 9,241,102,214,111,225, 52,151, 48, 84,168,148,168, 76,161,
- 74,109,180,160,115,231,137,235,103,118, 56,127,147,104,217, 55,156,251,107,111,175,235,178,220,141,117, 86,109, 75,154,123,113,
-238, 29,183,163, 87, 2, 87,106,211,239, 74, 50,150,145, 64,189,234,148,231, 29,158,154, 36,149,174,165, 75,167,166, 52,138,188,
- 24,138,159, 21,133,236, 83,112,252,185,180,169, 8,169, 20,176,234, 0, 18, 88, 7,176, 39, 89,211,114,119, 4, 70,189, 44,161,
-148, 22,190,159, 75,188, 43,225,207, 12,190,140,158, 22,229, 62, 49,120,177, 11,207,199,124, 79, 74, 43, 96,166,138,138, 92,199,
- 54,166,167,120, 99,153, 50,252,166,134, 37,121,162,150, 40, 36,137,243,154,231,228, 65, 75, 44,172,185,141,117, 61, 12, 49,202,
- 64,184,109,119,103,132,181, 74,129, 79,134,194,135, 43,190,237, 21,191, 29,100, 96, 37, 40,117, 73, 82, 99, 35, 32,124, 88, 42,
- 63,170, 53,226,221,219, 54,154,144,210,159,144,184,110,188,191, 9,111, 50,130,176,158,110, 80, 84,251,171,202,128, 1, 93, 73,
-229, 25, 56, 37, 0,140,233,155,215,238,236,178, 81,245, 6,230,196,184, 38, 72,117,114,146,204, 10,157, 18,124,222, 68, 55,238,
-229, 13,192, 85, 62, 51,171,139,134,207, 35, 41,140,233,231,202,146,147,144,117, 96,166,239,230,251, 91, 78,170, 52,187,154,100,
-238, 69,175,198,143, 95,161, 83,106, 18,154,101, 79,165,231,152,117,164, 67,133, 45,134,212, 82, 91,194,156, 5, 45, 44,164, 2,
- 66, 84,155, 34,147,133,243, 36,165, 20,116,217,188, 35,151,238,126, 97, 4,254,177,125, 68,239,211, 82,223,173,172, 0, 24,167,
-179, 47,246,170,125, 30,232,243,104, 31,139,124, 24,227,142, 30,161,169,102,142,147, 50,172,203, 50,121, 41,229, 42, 69,218, 3,
- 30,118,241,202, 0,243,200, 41, 94,165,129, 22, 42, 88,227,163,116,203, 17, 8,185, 93,183,106,208,252, 38,221, 75,239, 69, 82,
-148,212, 98,226, 86,217,118, 44,165,167, 9, 65,101,223, 60,148,144,181, 96,168, 43, 0,252,174, 91,214,181,183, 10,117, 86,179,
- 50,153, 73,166, 83,194,214,252,233, 83,209, 26, 43, 44,162, 64,140,219,206, 58,234,210,112,235,191, 11, 64,100, 44,244, 4,168,
-145,172,123, 98,119,186,189,184,148,118,141, 70,148,197, 50,191,111,207, 66,201,167,161,249, 52,249,241, 42,212,229, 7,204, 15,
-126, 66, 92,110, 3,140,161, 73,118, 19,202, 81, 97,108,148,161,199, 27, 91, 78,107, 86,119,238,216,221, 43,230,252,250,182, 13,
- 58,183, 46,147, 70, 13, 38, 4, 56,116,185,179,162, 69, 46,180,223,141, 81,142,184,140, 41,147, 41,114, 84,242, 75,171, 82, 84,
-194, 91, 72,230, 64, 90,214,181, 33,200,201,170, 43, 89, 94,208, 24,128, 15,166, 66, 20,216, 3,112,111, 96, 88,110, 78,159,118,
-155,220, 99,160, 60, 98,250, 99,112,207,134,255, 0, 71, 46, 29,250, 64,120, 83,195, 50,248,169,148,241,245, 69, 30, 93,144,193,
- 67, 79, 83, 28, 82,215, 85,189,122,153,115, 32,105,154,178,134, 26,105,168,101,163,146,156,211,189, 75,102,130, 44,173, 68,114,
- 77,207, 71,110, 15, 18, 59, 61, 18,251,183, 45,234,180,107,233,187, 1,250,171, 17,238,235,214,213,164, 83,170,247, 53, 22,146,
-247, 59,114, 43, 22,149,141, 85,159, 17,119,100,134, 63, 68,234,163,187, 34, 18,164, 53,206,152,138,117,244,161,183, 58,193, 87,
-225, 15,135,235,154,206,165, 93,187, 71,198, 37,215,186, 16,174, 74, 84,106,197,183,252, 7,217, 27,135,115, 66,233,111,133,248,
- 82,110, 88, 27,108,185, 18, 44, 98,226,138,217, 76, 74,176, 98,168,211,208, 31, 14, 67,113, 0, 40,199,138, 77, 58,219,219, 50,
-244,105,201,133,114, 94, 12, 56,227, 82,225, 41,246,106, 20,107,126, 74, 1, 10, 21,105,145, 29, 83, 87, 29,105,183,135, 90, 99,
- 14, 24,108,168,230,161, 33,210,145, 21,121,134,197,241,157,196,167, 13,119,204,187,239,101,247, 94,228,180,103, 85, 93, 74,238,
-122, 27,239, 11,130,196,190, 89, 74, 3, 65,139,247,111,234,106, 52,187,152, 37,129,200,203,193,152,211, 98, 54, 3,112,101,197,
-108, 4,133,235, 56, 58, 10,228, 87,202, 71,178,152,134,242, 75,119, 19, 27,222,225, 88,150, 31,254, 96, 54, 34,214,141,213,129,
- 30, 77, 63,251, 74,190,146, 28, 63,196,245, 21, 94, 41,241, 81, 90,138,137,238,120,103,135,232,114, 90, 51,145,166,250,161,204,
- 42,243, 28,191, 56,115, 80,172, 17, 36,201,106, 30,171, 49,165, 99, 58,215,215,101, 85,180,199, 46,155,165, 84,250,206,231,112,
-167,186, 84,202,229, 58, 84, 41,147,169,133,248,238,197,175, 91,119, 93, 18,221,187,232,146, 84,224,168,218,183,125,171,122, 80,
-169,146, 69, 62, 91, 77,165,197, 50,182,199,186,202, 90, 37,197,125,153, 76,161,221, 73, 67,102,161,181,186, 27, 75, 97,238,133,
-149, 75,174, 53,111,223, 86,211, 87,109, 54,213,185, 35, 77,146,237, 17,137, 14,200,167, 84,169, 77, 86, 23, 24,190,212,104, 85,
- 56,114,217, 98, 72, 75,241,159,101,166,228, 0, 16,240, 9,226,206,213,123,125,246,154,253,183, 26,179,248,203,225,125,202,139,
- 46,178,168,179,235,251,104,229, 22,255, 0,179,166, 52, 82,164, 41,247,246,211,115,158,110,161, 69,150,180,149,143, 14,155, 84,
-150,134,210,172, 54,180,249,236,206,213,123, 69, 61,143,214,236,216, 85,123,123,115, 55,238,195,166,195,122, 53,197, 19,108, 46,
- 26, 79, 16, 44,236,253, 26,226,128,250,223,131, 85,141,183, 84,234,188,232,106,173,199, 90,212, 89,142,137, 15, 83, 81,144,125,
-209,101, 40,228,141, 47, 10,102,180,149, 86,154,156, 24, 92, 29,108,129,135,154,226,204, 2, 44,137,115,111, 54,226,254, 93,182,
- 24,147,120,185,244,188,240,119,233, 7,195,249, 54,103, 93, 17,224,159, 17,114, 33,203,106,209, 45, 37, 92,121,173, 8, 71, 34,
-150,170, 58,150,200,101,166,150, 41,220, 61, 44,139, 5, 76,112,171,213, 71, 20,136, 39, 4,118, 6, 29,186,134,194, 27,148,195,
-193, 62, 44, 68,187, 21,106,102, 84, 30, 70, 85,205,142, 80,158, 87,201, 81, 7,153,192, 0,192, 80, 64,211,149, 66,165,180,203,
-136, 67,104,240, 27, 90,130,130, 17,226, 37,166,148,162, 1, 67, 73, 94, 66, 83,252,227,140, 39, 39,160,215, 35, 46,223,110, 95,
-179,178,219,105,233,244,219,195,120, 47,233,139, 89,112, 67,182,118,102,191, 77,247,149, 21,115, 41,196,213,175, 41,244,200,241,
- 80, 85,142,139,201,194,137, 9,207, 77,115,159,136,255, 0,164,222,229,137, 30,163, 15,134,190, 13,228, 85,153, 9, 87,213, 91,
-165,191, 87,204,167, 45, 40,174, 45, 76,182,204,169, 86, 14,216,198,101,228,255, 0,133,202,109,178,212,219,137,132, 41,194,148,
-158, 96,180,131, 37,202,248,118,182, 90,133,138, 42,118,185,221,117,133, 75,133, 32, 29,216,168,185,189,236, 14,163,109,129, 0,
-219,143,243, 63, 16,184, 90,150, 55,105,115,232, 42,165, 31,169, 77, 42,212,177, 32, 14,130, 18,226,224, 0, 53, 57, 0,216,238,
- 55,196,195, 45, 68, 22,211,205,146,176,133, 54,151, 20,132, 15,133,229,231,144, 40,224, 37, 5, 65, 39,151,155,148, 18,158,152,
-235,167, 48, 77, 75,205,166, 35, 10,241, 36,158, 64,164, 52, 60, 79, 9, 9,207, 48, 83,160,114,149,103,148, 96,103,182, 73,215,
-230, 7, 43,219,203,237, 79,157,190,246,230,253, 61,196,180,212, 75,181, 94,156,213, 51,101,233,182,221, 22,223,225,210, 69, 2,
-168,227, 11,169,218,181,125,167,162,176,212,122,212, 25, 8,142,218,126,176,154,244,170,211, 68, 7, 88,168,182,234, 82,177,213,
-203,167,233, 12,113,211,199,133,235,182,188, 54,240, 99,176,227,101,238,251,254, 37, 46,135, 81,183,246,214,113,190,247, 95,112,
- 47, 39, 98, 37,203,129, 54,157,199, 86,136,195, 22, 53,140,193,106, 91,252,225,149,204, 98, 19, 75,118, 84,180,165, 7, 18,169,
-178, 74,170, 69, 51, 56, 73,209, 23, 81,210,224, 42,219,115,204, 50, 5,109, 34,219,149, 87, 3,115,219, 16, 36,241, 71, 32,204,
- 22, 85,167,138,163,219, 12,129, 32,128, 37,228,152,177, 1,116, 88,216, 92,246,107, 17,218,230,195, 19,125,171, 92,246,205, 30,
- 90, 32, 84,171,244,168,149, 5, 16, 61,205, 83, 89,247,180,147,216, 56,218, 23,148,121,247,198,178,122,125, 22, 5,114, 40,154,
-138,154, 22,210,134, 80, 99,180,183,112, 79,162,136, 1, 95,118,123,235,152,220, 17,123, 63,247, 3,103,237, 26, 77,219,197, 85,
-255, 0, 51,114,119,174,160,202, 42, 21, 90, 12, 74,180,170,149,181,104,202,120, 37,197,211,222,171, 73, 81,114,229,171,182,181,
- 40, 63, 37, 88,100,184,149,120, 41,228,194,143, 75,153,101, 48,185, 91,107,153,134,155, 1, 8,109,165, 41, 41, 74, 64, 1, 32,
- 4,224, 99, 3, 80,103, 78, 51,204,101,157,185,180, 57, 21, 10,146, 34, 81, 20,149, 19,184,236,206, 95,148,177,131,216,104, 15,
-110,168,167,108, 60,209,182,123, 57,246,138,169,146,133, 91,117,142, 38,105,152,127,215, 43, 89, 24,145,251, 10, 7,241,197, 84,
-154,117, 14, 91, 72, 18,147, 35, 46,114, 97,104, 83,107, 42, 39, 25, 0,249,254,115,167, 66, 11,229, 77,120,141, 0,191,209, 21,
- 33, 25,229,241, 84, 82, 74, 83,146, 59,103, 90,221, 94, 77, 82,101,118,154,148,130,244, 86,221,202,228,255, 0, 60, 39,160,229,
- 89,254,119,200,247,211,203, 6,164, 88,105,150, 65,236,148,131,147,213, 56, 24,206, 62,221, 45,195,237,153,206, 43,169, 51,119,
- 73,100,164,125, 34, 72,211, 64, 97, 96,110, 1,191, 81,243,214,210, 12,210,138, 24, 41, 40,102, 89, 57,178,213, 33,105, 1, 32,
-244, 32,111, 96, 45,125,246,219,221,139,140, 97, 48, 58,236,154,131, 46,153, 46,146, 87,204,146, 82,132, 15,242,109, 36,167,167,
-132, 6, 59,119,206,190,200,170,100,132,160, 21, 41, 56, 1, 36,134,210,133,100,156,114,158,195,191,225,170,166,170,211,105,248,
-149,212,255, 0, 59, 56, 36,156,100, 15, 64,113,246,235, 24,171,213,226, 60, 10,142, 60, 84,244, 75,137,232,164,103,245, 65, 82,
- 71, 80, 58,100,117, 7, 79,209, 82,242,147, 69, 59,116,245, 27,159, 93,250,111,240,235,241,195,116, 85,144, 77, 56, 50,195,229,
- 27,121,122, 40, 22, 2,202,123, 1,254, 33,247,226,229, 38, 74,212,210,138,159, 75, 96, 2, 2, 89, 3,156,146, 72,192, 46,118,
-242,234, 6,176,138,131,208,130,143, 59,105,144,180,243, 97,114, 84,183, 74, 71,117, 30, 85,124, 41, 72, 32,103,160,201,234, 15,
- 82, 53,100,169,214,165, 52,218,131, 78,182, 91, 7, 5,229,115, 43, 41, 62,101, 9,253, 85, 99, 29,115,128,122, 16, 53,132, 78,
-168,190,250,242,169,137, 87, 33, 4, 48, 26, 80,111, 0, 28,172,132,175,226, 56, 4,128,162, 71,159, 77, 32,237, 34, 54,153, 1,
- 86, 59,239,247,110, 15,243,248,219,221, 40,164,162, 89, 84,201, 21, 66,136,191,195,112,122,116, 32, 11,143,131, 90,221, 78,196,
- 28, 93,170, 53, 86,220, 45,182,214,121,193, 56, 75, 24,202, 63,156,175,242,120, 8, 79,194, 49,147,208,172,140,107, 28,144,185,
- 14,165,196,243, 54,128,227,107, 95, 40, 1,247,148, 10, 82,160,148, 36,114,161,156, 18,146,126, 53, 99, 7,225,193, 26, 21,201,
-165,223,209,170, 87, 43, 69,196,145,224,199,109, 32, 21,142, 84, 37, 68,147,135, 50, 73, 61, 7,235, 99, 61,180, 42,150, 9, 83,
-110, 45,199,193, 66,138, 91, 83,156,173,178, 57, 84,149, 20,132, 36, 4, 47, 4,158,234, 33, 74, 7,212,107, 34, 85, 36, 91,174,
-195,111,187, 14, 2, 4,136, 88, 88, 50,239,114, 9,216,252, 64,239,107,131,210,253,111, 96,106,135, 9,241, 91, 90,152,154,224,
- 81, 10,117,183, 66,150,132,132, 32,132,199, 90, 18, 18,211, 62, 25,202,136,229, 86, 80, 71, 55, 78,180, 86,211,138, 90,218,109,
-210,132,173, 42, 40,195, 97,226,160,188,146,149, 61,202, 17, 24,252, 7, 4,147,128,148,146,114,179,143,162, 72, 66, 20, 93, 82,
- 91, 32,243,151, 0, 13,184,226,121, 87,250, 54,210,216, 3, 57, 40,248,112, 84, 48,188,119,233,112,142, 86,234, 29, 75,124,173,
-161,158,235,112,133, 50, 75,156,174, 56,246, 66,135, 48, 3, 10, 10, 0,128, 64, 10, 4, 29,108, 70,250,118,191,227,252,183,237,
-110,134,223,125,175,163, 80,140,221,139, 15, 94,194,214,251,186,251,205,239,140,110,108, 82,150,189,228, 33,212, 54,225, 10,142,
- 29,108, 40,168, 1,209, 40, 65, 63, 3, 28,169, 5, 42,200,193, 95, 80, 71,124, 14,168, 18,210, 86, 21,203,202, 82,160, 8, 0,
-169, 41, 24, 9, 81, 60,184, 87,196,165,224, 12, 28, 28,231,190,156,202,203, 43,100, 60,180,187, 46, 83,142,128, 90, 68,167, 20,
- 70, 74,148,144,167, 1,235,149, 35,157, 71,249,216, 72, 0, 37, 61,155,106,154, 76,153, 41,136,149, 4,169,231,163,196, 66,202,
-129, 9,117,245, 33,158, 98,160,112, 71,136,224, 32,158,132,126, 26, 84, 48, 2,250,134,223,233,191,126,157,125,253,112,216,241,
- 18,202,161, 65, 55, 29, 0,222,246,181,135,238, 29,126,252, 64, 99,219,127,112,181,112,123, 74,183,173,166, 28, 82,255, 0,130,
-214,206,212, 89,178, 82,176, 66, 90,159, 67,176,105, 47, 75, 67, 68,147,204,215,137, 82, 24, 35,204, 30,154,228,170,206, 51,216,
-231,166, 58, 99,237,251, 53,183, 60,121,238, 60, 93,220,227, 99,138,189,200,132,233,122,157,114,111,133,244,154,114,249,150,180,
-154,125, 6,168,171, 94, 25,104,172,228, 50, 89,161,161, 72, 29,130, 92, 0,116, 26,212,101,246, 56, 61, 59, 96,227, 63,241,212,
-247, 43,140,165, 5, 18,176,179, 8,144,144,122,130, 84, 18, 62, 32,155, 28,114,150,121, 50, 85,103,185,197, 66, 29, 81,207, 87,
- 80,202,123, 21, 51, 57, 82, 15,189,108,126,252, 8,178, 15, 79, 76,232,117,245, 36,142,192,224,252,191,179, 85,214,174,254,137,
-207,231,246,104,101,224, 28,231,161,235,248,233,200,126,252,104, 1,220,109,129,221,230,199, 97,142,189,189, 51,215, 63,159, 61,
- 14, 64, 0, 96,247, 29,126, 71, 68,169, 89, 62,120,252,245,208,202,238, 79,204,253,154, 92,108, 5,240, 48, 58,192,202,135, 67,
-215,243,231,249,198,133, 81, 3, 57,249,224,119,237,229,162, 28, 39,169,249,249,126,125, 52, 26,200,251,199,127,179, 74, 45,198,
-227,126,216,200,253,248,160,178, 50, 58, 3,211,207, 63,184,253,186, 90,240,163,147,159,195,236,210,210,184, 24,175,170,168, 61,
- 49,215,167,225,161, 16,112,122,156,116,213, 97,248,103,161,251, 51,164,216, 90,227,174,173,255, 0, 60,100,245, 38,214,190, 14,
- 73, 56, 0,142,152,239,145,247,116,213, 66,176, 7, 82,172,142,216,249,246,207,222, 52, 58, 84, 83,211, 29, 7,111,236, 58,242,
- 80,162,174,101, 47, 8, 61,128,206, 71,222, 7,174,116,131,222,222,236,101, 69,254,127,150, 46,141,168, 96, 0, 57,137,206, 73,
-254,145,243,192,215,213, 44,173, 73, 8, 39, 9, 56, 87,124,103,247,245,254,141, 80,105,188,242,146,174, 81,158,128,117, 61, 49,
-215, 25,244,209,205,167, 57,192,206,127,164,117,237,249,237,164,172, 79,207,166, 48,109,219, 21, 90, 56, 35, 35, 32,143, 46,221,
- 61,125, 15,125, 28, 57, 72, 79,160, 62,127,205,251, 62,125,244, 50,121,112, 0,252,253,190,154, 37,176, 85,142,192,124,135,244,
-231,207,166,177, 97,123,227, 24,184,178, 15, 76,159, 82, 63,163,247,234,184, 24, 57, 24,201, 57, 7, 31,135,219,161, 16,175, 35,
-231,219,250, 49,162,146,113,220,245,232, 65,198, 59,246,199,175,246,233, 22, 22, 36, 97, 50,187,220,155,223,231,255, 0, 56, 37,
- 43, 8,199, 58,186,159, 32, 59,244,249,104,146,238, 70,113,140,249,250,227,183,159, 77, 4,113,144,190,153, 63, 44,227,184,200,
-252, 53, 81, 36,116, 32,231, 29,201,251,125, 7,150,146, 98, 58,223,225,130,219,221,123,117,193, 41,119, 24,248,249, 64, 32,224,
-227,175, 94,160,122,244,206,167, 39,236,166,220,118,247,115,129,157,165,148,252,148, 73,171, 88, 74,169,237,245, 93, 33, 73, 46,
- 54,186, 44,133, 38, 1,113, 61, 74, 65,132,228,126, 92,227, 35,168,212, 42,118,215,108,110,189,211,185, 98,219, 86,181, 49, 83,
-231, 73, 5,229,186,227,137,139, 78,167,194, 66,128,145, 85,173, 84, 93, 79,135, 74,164,183,252,247,156,234,162, 66, 26, 67,174,
-148,160,203, 23,217, 2,214,215,112,241,106,238,110,209,215,119,102,143, 34,181, 87,151, 2,239,168, 76,172, 75,110,139,108, 53,
- 53,136,201,133, 34, 21,179,239,238, 5,184,218, 82,218, 11,139,119,149,215, 15,196, 91, 66,126, 17, 4,227, 9,104,167,142,154,
-137,228, 6,169, 95, 86,155, 95, 74, 21, 96, 75,158,136, 11, 5, 3, 81, 26,142,194,230,246,184, 60, 26,124,214,135,136,167,204,
- 41,105,100,124,178, 88, 36,167,158, 80, 44,129,137, 73, 35, 0,159,180,193,212, 2, 20, 18,129,238,218, 65, 23,235,214,231, 75,
-174,219, 59, 83,184, 21,235, 93,151, 30,184,224, 91,147, 13, 27,193,104,188,236,105,178, 18, 35, 38,162,134, 82, 50,234,163, 33,
-213,188, 0,207, 86, 70,181,171,102,120, 8,183,217,222,155,115,124, 46, 59,138, 53,229,105,208,108, 90,123, 86, 21, 10, 66,223,
-155, 42,179,121,215, 33,166, 69,211,124,221,210, 95,234,244,211, 45,231, 83, 25,177,128,216,198,122,164,107,107,162,239,150,195,
- 32,148, 57,188,187,110,233,193, 75,141, 34,227,167, 60,130,146, 48,180, 45, 33,226, 20, 8, 39, 35,207, 26, 14,226,227, 7,134,
- 29,183,182,107,183, 12,173,200,163,213,169,246,180, 23, 39,205,163, 89,141,125,115, 86, 84,102,186,172, 83,169,144,129, 84,133,
-127,178,128,126,237, 65,225,142,150,158, 82,226,162, 33,169,116, 0, 89,111,114, 69,200, 23, 59,157,133,183, 61,135, 91, 99,179,
-242,190, 62,226, 28,135, 33,205,114,204,161,165,203, 70,109,205,246,202,132, 82, 30, 74, 87,138, 56,249, 76,250,117, 70,177, 5,
-155, 76,136,234,116, 85, 84, 45,129,101, 97,144,207,224,179,103,238,181, 56,183, 81,123,208,158,152,250,158,156,245,169,125,220,
- 20,116, 60,235,202, 42,121,197, 48,137, 42, 66,150, 73, 60,184, 78, 0, 56,244,208, 91,129,114,240,113,236,166,216,187,155,114,
-235, 20,202,117,183, 21,229,201,153, 69,162,189, 37,138,222,236,111, 13,232,227, 74, 84, 26, 29, 62,109, 77, 74,149, 44, 56,247,
- 39,140,233, 40,139, 17,165, 41,231,112, 0,207, 27,248,128,250, 66,114,226, 82,170, 52,190, 16,184,115,190, 43, 19, 3, 14, 52,
-141,201,220,155,106,174, 41, 84,247,112, 66,100,195,183, 41,209, 86,185, 78,160, 14, 96, 30,113, 8, 56,248,186,103, 81,143,226,
- 11,136,157,247,226,127,114,100,238, 30,253,238, 45,126,244,188,158,105,214,162,199,173, 62,168,205, 81,169,238, 40,172,211,168,
- 86,223,192,221, 6,154, 50, 7, 43, 76,160,168, 1,206,181,158,186,127,203, 56,124,207, 46,161, 18,211, 34,253,166, 54, 14, 6,
-215,180,103,204, 24,247, 50, 42,129,179, 89,197,215, 20,239, 27,253, 36,248,135,244, 13, 71, 12, 80,113, 94, 97,196, 20,179,105,
- 38, 7,168,168,108,188, 50,127,118,243,135, 96,181, 38, 34,111, 20, 96, 58,169,220, 60,100, 95, 24, 39,180,115,137,253,201,226,
-247,127,170,251,223,186, 82, 27,254, 16, 94, 74,118,124, 26, 44, 87, 92,118,155,105, 91, 81,121,162, 91, 54,141, 31,196, 63, 13,
- 58, 13, 59, 9,230,192, 47, 62,243,210, 23,241,186,117,175, 92, 57,196, 97,202,237,211, 57,208,178,252, 42, 34,147, 24, 1,211,
- 46,149, 5, 18, 60,253, 6,173,251,228,231, 53,219, 29,128, 65,247, 42, 12, 6, 79, 41,200, 5, 73, 4,129,215,191,174,178, 14,
- 26,216,118, 93,122,230,134,202,121,164,204,167, 68,139, 29, 9,238,183,223,119,194,101, 41,207,153,113,104, 31,126,172,212,141,
- 41,120,124,197, 24,209, 26, 34,128, 46,118, 28,192,119, 59,147,183, 82, 73, 39,169, 36,239,142, 53, 53,117, 21,115,214, 86, 85,
- 74,211,213, 84,180,178, 72,231,118,103, 42,204, 73,176,238,123, 0, 0,232, 0, 27, 98,109, 63, 71,223,128,234,125,203,195, 15,
- 16,156, 74,220,244,174,123,199,114, 99,200,218,237,155,145, 45,177,136,116,123, 98, 92, 90,221,217, 83,134,149,167,225, 85, 82,
-187, 18, 29, 56,186, 15,197, 30,152,164, 14,138, 57,216,168,246, 17,161,213, 31,142,228,117, 50, 90,146,235, 97, 10,230, 75,225,
- 8, 56,228,115,185, 67,169,229, 41,229,239,204,112, 8, 58,236,151, 0,219, 99, 15, 98,184, 76,225,239,107,105,113, 83, 17,187,
- 99,109,109,231,167,180,148,132, 41, 85,138,164, 38,234,181,105, 14,116, 28,206,174,124,199,201, 39,174,123,233,168,226, 23,134,
-171,150, 93,110,226,220, 91, 38, 61, 58,161, 65,144,255, 0,214,146,168, 44, 62,182, 43,237,206,148,240,247,152, 52,168, 9,103,
-146,167,207, 53,197, 58,202, 3,136, 63,166, 80, 94, 2, 65, 52,151, 19,209, 54, 99, 28, 89,138, 38,170,131,118,127, 82,142,117,
- 40, 61, 55,137, 74,160,247, 13,239,215, 29,145,225,180,210,240,102, 89, 6, 69, 36,194, 24, 42,163, 73,100,212,214, 95,105,101,
- 94,110,228,237,169,174, 22,254,128,108, 0, 3, 82,108,234, 84,116, 52,134,210,201, 41,147, 33, 50, 29, 8,240,203,143,186, 2,
- 0, 83,220,201,207, 58, 67, 40, 7, 36, 0, 19,132,156,107, 99,104, 52, 8,210, 93, 98,116,150,210, 36,193,113, 47, 65, 13,129,
-225,199,203,101,135,198, 79,235, 74,113,133, 41, 10, 89, 5, 32, 16,148,242,167, 36,170, 87, 15, 59,203, 71, 82, 20,230,223, 76,
-148,128,134,151,205, 74,153, 75,168, 33,105,194, 64, 39, 19,144,162, 0, 37, 71, 41, 4, 99, 28,189,244,241,218,123, 83,186, 79,
- 41,180, 35,109,238,133, 20,114,133, 45,113,162, 37, 61, 14, 28, 74,221,114,104, 72, 79, 81,147,216,245,198,162, 81,100,213, 74,
- 64,146,146, 66, 91,182,134,244, 22,232, 13,237,215,211,210,214, 24,178, 78,125, 70,186,229,108,198, 24,237,177,102,158, 32, 0,
- 54, 4, 18, 91, 96, 64, 3,222, 5,177,113,161,208, 12,134, 16,211, 10, 90, 34,143,242,202,115,224,151, 49,158,230, 50, 29, 74,
-147,238,236, 18,160, 10,191, 89, 64,114, 35, 1, 74, 86,178,171,163,112,237,237,158, 85,185, 95,170,208,239,234,203,242, 38,132,
- 82,227,109,214,216,222,251,153, 34, 51,212,224,196,176,253,106,153, 99,209,229, 46,149, 79, 64,228, 45, 41,208,217,144,176, 88,
-142,149,168, 40, 7,150,209,216, 45,211,158,164, 57, 54,149, 73,183,217, 80,229, 46,213,234, 77, 72,113, 41, 0,142,127,114,166,
-182,234,138,136, 63, 8,231, 66,124,250,119,214,136,251,111,106,123,151,194, 15,179, 87,116,183, 91,103,247, 82,225,178,183, 81,
- 55, 54,223, 91, 16,111, 43,121,168,212,249,212,202,101,201,112,177, 6,177, 22,136,227,168,117,112,106, 47,198, 43, 67,115,185,
-253,229,144, 74,152, 83, 75,194,132,166,147,135,179, 55,167,146,177,104,218, 8,163, 49,131, 44,171,101, 82,242, 36,105,101, 37,
- 93,174,238, 0,210, 13,137,213,184,190, 34, 25,199,137,124, 27,150, 48, 25,157, 89,207,105, 98, 73,154, 90, 74, 25,209,101,153,
- 68, 78,197, 69, 87, 38,162, 8,201, 42, 11,115, 17,137, 23, 64, 22,225,150, 51,124,116,238, 62,206,240, 93,121,221, 53,125,139,
- 98,254,183,183,166,236,173,213, 46,123, 18,139,190, 78, 91,107,223,205,183,143,115, 74,157, 85, 27,132,254,217,209, 34,200,137,
-176,244,148, 57, 59,154,223,149,118,189, 34,254,168, 6,195,212,202, 37, 1,178,229,101, 17,220,184, 46,123,134,236,174, 85,110,
-107,134,183, 87,184,110, 58,228,233,117, 42,229,201, 93,156,253, 74,191, 90,168,206,125,114, 39, 77,169, 84,100,184, 86,235,239,
- 72, 90,214,224, 4, 37, 74, 86, 72, 39, 36,218, 42,181, 73,149,138,165, 74,181, 92,157, 58,167, 88,172,212,165, 86, 43, 53,106,
-148,217, 85, 42,173, 98,179, 80,115,198,159, 87,171,212,230,186,183,234,149, 55,158, 37, 78,200,125,199, 29,112,245, 90,142, 6,
-128,109,101,110, 97, 36, 6,179,241,128, 71, 49, 62,185,242, 26,176,114, 30, 31,163,201, 33,178, 14,117, 76,191,106, 66, 5,197,
-194,141, 9,251, 40, 52,128, 22,229,136, 85,214,206, 85, 72,164,252,120,250, 73,120,157,244,128,204,169, 36,227, 28,238, 99,195,
-217, 60,113, 67, 69,150,137,165,120, 17, 41,193, 88,102,171,119, 98,213,213,195, 83,191,180, 77,245,112, 73, 61, 64,160,130,138,
- 25,228,133,136, 90,148,234, 57, 93, 9,121, 9, 80, 90, 91,144,148,188,144,176,114,149,165, 14, 2, 18,224, 80, 4, 40, 96,130,
- 50, 8, 58,204,169,155,143,113,209,211, 21,169,110,192,185,160, 68, 11, 17,232,183,173, 53,187,170,154,198, 82, 82, 61,205,249,
-174, 9,212,229, 15,255, 0,131, 48, 54, 63,248,163,211, 24, 96,228, 10, 88,201, 41, 7,162,137,244,238, 63, 57,213, 53,164, 43,
- 36, 14,185,200,252,159,150,159, 39,166,130,161, 52, 77, 10,202,163,166,160, 13,137,238, 13,174,167,222, 44, 71, 99,138,111,135,
-120,167,136,248, 74,170,106,190, 27,206,170, 50,105, 42,192, 74,133,134, 66,176,213, 68, 13,249, 53,148,230,244,245,180,228,253,
-170,106,184,166,129,255, 0, 94, 54, 24,116,231,239,189,238,150, 89,133, 64,254, 15,237,252, 36,248,206,123,141,131, 77, 48, 29,
-151, 33,230,210,209,151, 80,170, 84,195,206,184,250, 26, 64,229, 8, 74, 50,160,149, 45,107, 8,109, 8,177,171,117,119, 10,108,
- 7,169,170,189,110,207,170,159, 74,208,253, 57, 21,201,173, 71,113, 46,161, 40,144,133, 73, 74,196,165, 54,232, 78, 92,111,222,
- 60, 37,149,168,148,124, 74,206, 0,166,219,230, 33,120, 36,117,206,124,251,143,219,175,170, 91, 74, 90, 19,207,241, 32, 19,200,
-147,240,156,250,254,205, 37, 29, 21, 36, 32,133,167, 64, 24,223,236,130,111,182,228,145,114, 71, 98, 73, 54,218,248,156,102,190,
- 58,120,209,157,242, 99,172,241, 87, 62,130,146,154,148, 80,197, 71, 69,153,213,101,153,108, 20, 34, 40,225, 52, 84,185, 86, 89,
- 37, 30, 91, 75, 70,241, 68,139, 37, 45, 45, 36, 84,242,232, 13, 44,108,196,177,172,227,188,193, 37, 92,169, 75,105, 8,109,150,
-208, 16,219,109,131,209, 13,161, 0, 37,180,228,147,128, 7, 82, 79,114,117, 72,146,163,205,129,140, 14, 81,216,140,129,158,184,
-237,223, 94, 84,177,158,216, 4,224, 31, 32, 73,237,246,107,233, 9, 80, 79, 50,129,198, 79,194, 64, 35,215, 61,126,205,109, 95,
-111, 47,109,189,216,170, 85, 2,233, 91,105, 10, 6,221, 0, 3,160, 30,158,131,165,177,229,212,133,160,131,128,125,112, 51,211,
-236,243,208,105, 11,230, 60,201, 8,109,191,139,226,248, 78, 71,159,207,251,116,122, 20, 20, 50, 7,145,200, 61,199,151, 95,191,
- 67,169, 36, 55,151, 49,215,161,201, 4,252,137, 0,246,233,161,179,111,219, 6,177, 6,221,251,126,255, 0,227,138,110,123,186,
-192, 82,130,150, 8,200,194, 73, 3,182, 73, 31, 61, 75,227,232,215,112,195, 99,223,219, 35,198, 38,227,110,133,131,105,238, 13,
-175,184,202,183,248,125, 93,173,121, 80, 32, 92, 54,253,118,207, 69, 45,203,170,246,167, 78,131, 84, 97,109,174, 60,137,213,122,
- 35, 78,132,242,171, 48, 16,160,164,173,180, 40, 68, 24,149,143, 8, 54,158,138, 74,147,205,144,144,181, 99, 24, 3, 29, 15,109,
- 77,123,217,103,184,103,103,189,143,246,187,116, 6,164, 81,171,123,149,186,219,227, 85,173,205, 79, 52,105,170,164, 82,174,168,
-214,139, 78,199,144,180,167,195,143, 48, 82, 93, 67, 79,160,169, 10,102, 26,210,135, 57,138,185, 98,156, 99,155,193,146,101, 73,
- 89, 80, 12,138, 37, 10,177,139, 6,150, 66,173,201,141, 9,232, 76,161, 9, 36, 16,136, 25,200, 33, 72,197,129,225,126, 86,115,
-110, 47,162,164, 72,185,210,136,228,101, 7,117,187, 20,132,234,244, 26,101,111,190,214,223, 28,193,223, 63, 97, 79, 4,115,184,
-194,185,209,179, 27,239,185, 54,175, 14,116,135,150, 47, 93,165,163, 83,105,149,186,237,191,122,205, 66,164,162,196,218,237,215,
-185, 31,144,220,155, 36, 48,243, 62, 60,137,208, 39,207,167, 56,164, 69,140,229, 65, 78,120,204,111, 6,212,251, 26,125,155,123,
-125, 58,216,185,109,203, 55,136,138,110,227, 80, 37,198,122,216,220, 26, 55, 21,119,221,175,121,219,245,200,177,194,145,114, 81,
-170, 86,149, 42, 2,105, 21,166,212, 60, 80,227, 40, 75, 45,172,132,134,150,223,194,108, 27, 71,113,203,157, 91,184, 42,197, 34,
- 81,147,122, 93, 21, 71, 34,115, 36, 46, 82,152,170, 10,100, 82,181,243,128,150,154, 17, 84,177,200, 6, 11,105, 81, 80, 1, 58,
-222,155, 74,229,118,163, 38,164,121, 90,136,212, 8,204, 83, 34,180,202,131,110,158, 98, 36, 84,159, 83, 97, 28,172, 45, 43, 91,
-109, 37, 72,230, 95, 43, 74, 4,164,144, 53, 71,103,220, 99,198,175, 58,200,217,245, 68, 48,132, 0,197, 3,242, 22,221, 8, 44,
-154,100,147,169, 93, 83,188,174, 86,218,156,144,111,212,220, 79,225, 79, 9,228, 78,100,161,201,225, 89, 2,172,143, 33, 82, 89,
-164,178,130,234, 9,180,107,204, 58,149, 35, 85, 80,157, 55, 14,113,212,219, 99,136,234,228,106,101, 18,155, 87, 66, 43,171,106,
- 35, 20,230,230,213, 86,165, 86,106, 81,233,145,219,143,245,157, 94,162,202, 82, 39,213,158, 8, 74,228, 72,240,144, 31,125,213,
-185,225,160,171,151, 78,181,189,187, 22,141,226,232,140,220,143,169,234, 75,115,193,110, 28,247, 27, 75, 82, 94,236, 27,137, 40,
- 30, 71, 22, 72,232,147,202,162,122, 0, 78,185, 81, 30,244,240, 36, 85, 11, 97, 75,143, 66,134,205, 38, 36,144,114,151,170,110,
-182,100, 75, 96, 4,171,162,144,234,163,165, 65, 32,245, 74,178, 8, 26, 10, 61,219, 41,136, 17,203,239, 31,124,142,204,154,156,
-175, 13,210,158, 95,136, 52,201,108,142,169, 62, 50,148,126, 69,191,150,148,202,184,199, 54,167,208, 37,169, 53,106, 7,153,101,
-243, 27, 0,162,250,143,152, 27,234, 59,146, 0,182,199, 21,248,142,186,130, 68, 16, 73,204, 22, 91,197, 37,200, 58,148,200, 0,
- 63,105,108,186, 23, 99,179, 29,212,244, 27,233,106,113,119,182,151,183, 20,183,231, 10, 22, 90, 95,184,110,205,174,179, 85,117,
-110, 45,213, 17,214, 92,183,173,234,168,126, 51, 38,204, 66,193,230,145, 91,105, 50,153,247,130, 7, 35, 78, 18,214, 74,210,172,
-108,130,235,136, 99,157,106, 88,230, 57, 24,206,126, 30,184, 29,122, 99, 35,174,184,239,193,253,153,180, 27, 99,196,214,228,110,
-244, 17, 42,218,187,248,132,179, 97,219,181,104, 40,144,201,180,230,222, 73,172,174,167, 38,226,195,235, 46,192,175,213,208,195,
-104,125, 33, 94,236,228,180, 23,194, 91,114, 74,129,232,125,205,113, 42, 50,221, 64,113, 73, 41, 74,147,200, 62, 21,165,105, 39,
- 60,201, 61,142, 2,178, 62, 90,181,184,106,180,102,212,111, 59, 48, 18, 60,132, 50, 0, 46,130,202, 66,144, 55,247,134, 61, 71,
-223,105,215, 25, 75,194, 85,210,100,173,193,144,212,211,209, 46, 91, 68,149,130,172,222, 99,154, 8,239, 94,118,188, 98, 35, 41,
- 2, 1, 17,229,242, 66,157,152,184, 14,149, 74,248,109,178, 71,136, 2,123,168,115, 2, 14, 14, 57,186,118, 32,228, 31, 62,191,
- 45, 97, 51, 47, 98, 23,151, 29, 87,134,165, 30, 85, 12,144, 73, 56, 9, 36, 28,115,140,128, 50, 48,190,217,242,214,190, 84,238,
-181,120,174, 53,206, 10,138, 20,251,121, 81,248,208, 14, 28,111, 62,153, 35,167,145, 94,177,148, 93,188,217,104,175,152, 41, 36,
-165, 46, 12,115, 32, 15,137, 25, 36, 18,180, 96,127,181,202,144,175, 93, 74, 99,129, 80,108,110,126, 63, 15,221,249,252,113, 22,
-167,164, 88,198,195, 87, 75,254, 23,239,215,227,252,142, 54,149,187,161, 46,158,100,184, 10, 85,203,158,101, 4,148,156,144,121,
-194,199,192,114, 21,229,141, 90, 42,114,158, 91,107,145, 76, 8,113,208, 10,213, 17, 74, 45,161,212,100,229, 76, 41, 32,144,224,
-234,174, 78,161, 92,159, 14, 20,113,166, 18, 37,213,201,202, 92,120, 40, 0, 57, 92, 36, 41, 65, 39, 56, 67,160,145,146, 15, 76,
-158,152, 57, 32, 19,157,102,144,110, 4,175,225, 82,207, 50, 70, 72, 4,148,117, 57,200,207, 83,144, 6, 64,237,203,243,234,149,
- 69, 58, 78,154, 36, 23,244, 61,193,236,111,235,211,249,140,110, 67, 81, 45, 20,162,104, 13,237,177, 83,114,174, 63,101,198,215,
- 30,253,136,189,193, 83,190, 47,109,215,101,185,200,130,228,102,194, 92, 90, 75,164, 58,231, 42,146, 73,229, 80,113, 35, 60,189,
-138,136,248, 74,128, 86, 58,234,234,212,199,221, 1, 78,200, 88, 33, 68, 16,142,102, 27, 82, 21,132,242, 40, 55,146, 82,112, 59,
- 17,133, 39, 33, 64,231, 88, 13,198,183, 11, 6,169, 79, 9, 91,204, 2,185,108,130,176,149,181,132,149,201, 71,135,250,206,161,
-180,146,226,123,173, 0,158,139, 29,113,232,181,233,174, 28,169, 77,128,142, 71, 27, 45,169,120, 83, 43, 79, 55, 50,121,143,249,
- 64, 84,147,211,161, 24,193,202,134, 98,211, 43, 81,204, 98,153,246,107,216,216, 88,131,109,238, 59,250,223,241, 6,248,157, 80,
-188,121,165, 42,212, 83, 34, 68,192,217,212,145,169, 24,117,235,185,235,117, 35,175,186,197, 67,227, 22, 64, 10, 60,141,168,243,
-128, 10,146, 74,212, 91, 65, 32, 37, 74, 41, 42, 91, 32,227,252,152,234, 9,207, 49, 35, 87,149, 84, 92,140,217, 90, 25, 74, 60,
-117, 4, 33, 47,165,213,199,195,201, 42,109,160,129,149,198,144,226,142, 19,206, 49,147,240,163,148,243,105,158,139, 82, 82,138,
- 1,113, 92,142, 19,203, 33,183,156,229, 70, 87,204,203,109,242,184,163, 29,174,101,225, 33, 28,203, 82,148,148,148,231, 35, 87,
-196, 84,214,134,138,188, 73, 40,112,151,217, 83,209,203,109,180,180,164,252, 94, 34, 22,162,183,100,103, 28,223,168, 83,130,148,
-143,136,157, 47, 28,195,190,192, 88, 95,247,119,235,183,190,247,177,191, 77,244, 42,224,209,114, 95, 93,183,232,119,183,196,245,
- 29, 59, 16, 63, 12,178,167, 82,117,101,214,158,116,143, 5, 24, 90, 23,206,135,176,149, 30,171, 28,152, 67,133,148, 37, 68,130,
- 72, 82,136,233,216,106,111, 20,187,199, 75,216, 78, 31,183,187,123,107, 14, 3, 11,107, 54,178,243,187,194, 90, 57,118, 69, 74,
- 29, 37,232,118,227, 17, 80,181, 15, 26, 67,151, 45, 70,140,218, 83,159,252, 98,186,121,105,253,153, 86, 47, 7, 9,115, 32, 43,
- 45, 41,124,222, 48,200, 88, 62, 39, 83,200,159,140,117, 57, 42,192,233,231,168,229,253, 33,126, 36,209,101,112,247,183,156, 51,
- 81,166, 20,220,123,253,118,139,190,234,105, 14,114,189, 19,107, 54,170,107, 47, 14,101, 54,172, 24,245, 77,192,149, 76,140,166,
- 92,229,230,106,223,125, 65, 36, 5, 99,118,157, 26,170,122,122, 52, 39, 85, 75, 0,125, 66,117,118, 29, 62,202, 6, 59,122,116,
-190,198, 41,159, 87,166, 83,147,230, 89,163, 16,134,138, 38,100,189,183,152,128,144,169, 29,124,210,178, 41,223, 96, 73,219, 16,
-244, 92,153, 82,150,236,202,131,161,234,140,247,159,157, 80,125, 32, 97,234,132,215,151, 38,107,224, 96,116, 92,167, 94, 87,207,
-155, 66,172,131,211,207, 61,115,246,127,110,136,115,169, 29,135,115,161, 87,230,174,152,245,239,216,121,254,124,181,105,160, 0,
- 11,108, 63, 45,182,199, 34, 42,236, 13,205,207,174,253, 14, 6, 86, 50,113,249, 63, 47,150,135, 81, 10,242,192,235,159,159,204,
-250,104,133,250,130, 20, 72,252,244, 26, 21, 71,161, 62,125, 79,223,165, 20, 18, 70, 21,192,234, 32,117,249,224,103,231,246,124,
-180, 51,131, 57,234, 1, 4,245,209, 90, 17,194, 14,122,247, 57,199,203,231,165,199, 81,129,129, 85,211,167, 82, 79,115,242,244,
-199,166,116, 42,200,207,108,117,199,219,215,207, 68,185,242,238, 7,159,111, 95,223,160,150, 79,126,152, 61,193,243, 61,127, 63,
-118,148, 65, 97,210,247,249,255, 0, 92, 12, 82, 36, 2,122,129,247,254,255, 0, 61, 45, 81, 95,235,119,242,252, 62, 95,159, 93,
- 45, 31, 3,108, 86, 29,251,103,229,162, 52, 42, 87,219, 61, 15,145,199, 76,131,229,170,129, 68,158, 94,108,116,207,111,159, 94,
-190,189,244, 71, 2,221,108, 70, 14,195,173,190, 63,195, 7, 54,123, 21,125,223, 63, 67,162, 7, 95, 35,246,121,232, 38,240, 58,
-100,147,243,252,247,254,173, 22,149,245,244, 62, 94,126, 95,102,146,193, 58,116, 56, 41,161,203,212,156, 99,200,252,243,216,104,
-214,200,243, 0,253,248, 39, 64,165, 89, 29,191, 17,231,231,131,157, 86,108, 20, 44,168,172, 16,172, 1,159, 47,179,238,210,109,
-233,109,135,242,198,113,112, 10,193, 1, 67, 4,249,129,223,237, 35,243,215, 68,167, 3,168,200, 39,161, 29,191,102,122,118,208,
-169, 81, 32, 12, 12,140,119,237,140, 1,140,143, 60,232,128,172,100,156,100, 96,228, 96,147,246, 99,229,253, 58, 79, 24,193,141,
-168,119, 61,113,211,239,233,131,248,104,132, 28,224,245, 56,235,243,233,235,143, 45, 0,133,103, 3,168, 4,250, 14,255, 0,105,
-213,126,108, 17,133, 41, 57,207,234,250,255, 0,195, 72, 55, 94,183,198, 45,251,240, 96,194,212, 65,206, 15, 99,156, 99,167, 83,
-223,166,178,107, 86,133, 46,228,174, 83,168, 84,230,131,242,231,203,102, 43, 41, 89,195, 69,215, 20,122,190,224,255, 0, 37, 29,
- 13,165,110, 56,175,230,182,210,136,235,140,226,141,149,172,148, 40,242,164,140,243, 0,115,229,231,167, 83,107,106,201,163,215,
- 27,102, 59,168,106,161, 80, 68,168, 17,165,168, 14,120,254,244,202,121,148,223, 55,119,212,203,110,165, 63, 53,159, 44,231, 74,
-177,164,138,154,105, 34, 0,200,138, 72,248,250,159,147,183, 77,240,231,146,208,195,153,231, 25, 94, 91, 81, 57,166,167,174,158,
- 24,157,199, 85, 87,117, 86, 43,125,181, 16,108,183,219, 81, 23,218,248,222,138,101,205,111,109, 53,188,139, 14,206, 6, 92,185,
-106, 97,219,158,165, 20, 33,169,181,218,147,105,229, 75,211,229, 39,172,106,107, 74, 42, 76, 88,249,229,105,177,148,165, 78,169,
-197,168,202, 52, 58,189,201, 45,107,152,251,134, 43,136,241, 26,136,133, 56,212, 96, 73,206, 22, 82,160,183,187,255, 0, 56,129,
-159,230,233,172,181,109,231,101, 77,113,174, 96, 84,151, 11,234, 90,143, 58,214,238,114,165,184,181, 28,173,106, 39,185,234,115,
-211,167, 77,109, 61,163, 22, 44, 22, 27, 91,137, 83,171, 74,128, 82, 1,207,234,158,188,201, 56, 29,255, 0, 15,232,173, 43,102,
-142,152, 57, 86,230,207, 39,153,152,245, 98,109,185,219,238, 30,131, 97,176,176,238, 92,135,135, 96,160,165,130,158,154,139,217,
-233,169,194,164, 80, 40,217, 20, 91,173,247,102, 39,119, 98,117, 51, 18,204, 75, 18,113,157, 88, 27, 77, 6,162,243, 10, 91, 45,
-173,210, 17,204,134,249,192, 79, 80, 63,214,237,246,249, 13,116,123, 98,182, 58, 4, 74,205, 30,167, 79,136,195, 21, 8,242, 27,
-109,110,132, 5, 41, 73, 87,235,167, 43, 4, 56,130,140,228, 96,131,208, 99, 90,225,182, 40, 67,142, 48, 16,148,176,211,139,108,
-165, 13,164, 41,196,146, 1, 0, 28, 0,122,103,200,227, 93, 65,218,186,205,175,107,194, 23, 45,203, 58, 29, 22,218,182, 96, 72,
-174,220,149,170,131,237,177, 22,155, 74,165,199, 84,185,211,101,200,116,132,182,210, 35, 52,242,142, 78,112,156, 0, 78, 6,171,
- 12,238,173,234,222, 88,228,156,164,106, 9, 35,215,160, 2,195,177, 61,189, 58, 92,224,103,185,230,105,150, 32,167,167,102, 26,
-193, 82, 7,165,183, 6,219, 90,219, 1,190, 56,205,197,103,181,207,127,173, 13,203,184,118,215,133,170,141, 31,104,108,203, 18,
-227,169,219,114,110, 38,173, 59,114,175,120,222, 85,138, 12,199, 41,181,154,156,153, 53,154,123,241,232,148,133, 84,163, 74,110,
- 60, 86, 88, 82,220,105,176,227,238,146,190, 68,232,182,233,123, 64,184,141,223,154, 60,154, 6,249, 57,181,123,167, 78,146, 84,
-227, 18,107,187, 67, 98, 81,110, 42,116,165, 0,145, 34,159,117,218,148,120,114, 99,114,227,163,101, 42, 70, 84,115,229,173, 86,
-221,155,170, 61,231,185, 27,133,121, 69, 66, 4, 43,174,251,188, 46,104, 37,150,148,210, 87, 78,184, 46,106,173, 86,152,226, 26,
- 95, 86,138,160, 76,140, 84,147,241, 37, 74, 32,128, 65, 26,194,202,138, 27, 72, 66, 66,146,164,249,147,216,250,231,207, 87, 69,
- 31, 7,240,224,142,134,170,163, 33,165,108,202, 5, 70, 19,180, 17,154,132,144, 1,186,205,167,154,132, 27,219, 75, 46,158,139,
-101,216,113, 46,113,196, 25,150,101,152,213,213, 75, 88,211,164,146,185, 69, 33, 74, 4,212,116, 0, 45,109,150,194,253, 77,174,
-196,146, 78, 25, 29,226, 14, 57,121,205,113,232,130, 3,142,211,225,184, 35,161,210,251, 60,158, 24,194,153,113, 74, 39,194,232,
- 48, 51,240,246,211,245,236,251,162,194,185,248,143,179, 45,121, 83, 19, 21,250,213,203,107,181, 9,165, 71,118, 87,191,186,213,
-102, 27,130, 3, 81,152, 66,148,243,239, 41, 41,105, 3, 24, 5,238,101,124, 41, 58,101,247,161,159, 22,181, 69,168, 39, 42,110,
-109, 13,166,193,234, 48,228,124, 36,164,245,239,145,174,129,251, 9,174,186, 5,165,237, 66,225,233,203,134,153, 75,169,179, 93,
-122,232,183,105,102,171, 29,185, 77,211,107,245, 27,114,161,245, 77, 90, 19,110,130,148, 84,153,121,149, 6, 86, 70, 82, 94, 37,
- 63, 16, 4, 76,106,145,166,225,202,216,163,115, 19,154,118, 0,141,244, 17,182,175, 48,111,179,107,216,131,211,124, 55,240,245,
- 50,102,121,237, 29, 36,238, 33, 74,218,128,140, 64, 27,115, 13,172,189, 64, 38,246, 91,130, 3, 17,112, 70,216,253, 60,108,203,
-170, 61, 38,218,163, 69,169,210,215, 6,123, 52,168, 12, 42, 18, 30, 74,149, 13, 45,197,109, 30, 2,136,232, 84,156, 96,142,195,
- 24,211,173, 99,205,135, 95, 67,163,195, 82,216,105,226,174, 71,124,148,149, 2, 51,235,129,141,105, 44, 90,227,175,203,110, 58,
-159, 60,234,145,200,227,139, 86,113,133,225, 74, 81,201,236,156,159,187,231,170, 28, 4,113, 50,246,254,220,188, 78,211, 27,167,
-174,157, 67,217,253,200, 98,198,160, 62,226, 84,149,213,154,110, 59,134, 85, 65, 74, 80,193, 38, 67, 46,128,145,156, 36,167, 56,
-206,171,117,160,130,138,122, 97,237, 82,206,210, 2,164, 74,193,245,233, 0,234, 42, 2,170,144,127,100, 1,189,173,233,213,116,
- 57, 94,103,152,229, 89,246,102,140,213, 17,228,201, 12,179, 73, 36,128, 58, 9,234, 18,153, 52, 40,182,162,210, 72,183, 8, 0,
- 85, 5,141,128, 24,234, 84, 22, 97,190,160,211,140,160, 37, 73, 9, 37, 39,151, 35,203, 4,118, 61, 53,114,153, 78,153, 71,107,
-235, 40, 14, 61, 50,158,222, 60, 88,104, 36,186,207,108, 43,161,248,155, 29, 63, 29, 97, 20,201,202, 47,103,152,116,235,202, 79,
-126,158, 94,167,229,242,211,203,110,200,247,142, 86,186, 45, 43, 28,139, 74,199, 69, 36,140, 40, 28,142,185,211,232,142, 26,149,
-210,124,143,250,172, 54, 32,246,233,212,123,143,108, 87, 57,193,168,203, 88, 74,126,186, 30,174,140,110, 24, 27, 95,115,186,183,
-163, 11, 88,251,182, 38, 90,149,147, 81,103, 43,113, 42, 36,101, 41, 4, 97, 63,236,131,246,106, 57,159, 74,191,116, 98, 90,254,
-207, 59, 39,109,189,229, 13,212,183,107,126, 44,232,173, 70, 10, 79,139, 34,151,103,194,170,220, 21, 37, 33, 4,228,182,151, 83,
- 3,152,129,211,196, 79, 81,158,178, 30,102,146,109,219,145, 41, 96, 40, 65,169, 43,197,142,145,209, 8,117, 68, 7, 25, 3,237,
- 80, 32,127,181,168, 24,253, 41,190, 42,105,187,177,198, 54,217,240,225,110, 85, 81, 54,139,195,101,145, 34,125,214,152,206, 7,
- 99,181,184,187,128,182, 37, 59, 9,124,170,199,189,197,183, 98, 83,146,176,122,161, 83, 8, 58, 74, 58,202,145, 17,201,101, 26,
-102,168,170,131, 88,244, 90,105, 22,173,158,223,176,226, 5,136,155, 90,243, 32,234,192, 98, 1,158, 71, 76,139, 85, 95, 79,189,
- 36,176, 18,155, 91,205, 48,228,232,235,246,147, 91,189,183, 39,148,198,196, 2,113, 23,105, 12,224,142, 92,114,128, 57,115,230,
- 60,193, 31,158,218,166,220,116, 96,148,167, 35,185, 0, 30,135,231,131,219, 70, 58, 91,112,228,147,129,219,200,129,212,245, 26,
-163,239, 1,162,164,182, 58, 16, 2,148, 48,123,246,233,248,234, 69,123,110, 78,199,253, 49, 95,238,192, 91,182, 41,184,218,146,
-112, 2, 85,145,205,128,115,240,232,117,175,166, 2,185, 84,122,144,123,252,146, 48, 58,249,126, 26,246,165,183,205,207,226,242,
- 41, 68, 0,146,160, 57,188,186,141, 8,236,164,182,248, 10, 66, 79, 40,192, 24,234, 78, 51,205,246,235, 5,182,178,131,140,233,
- 61,206, 62, 37, 37,100,130, 84,143, 85, 20,247,251, 9,215,196, 52,218, 22, 28,108, 23, 20, 73, 10, 73, 32, 16, 58,117, 3, 29,
-117,111, 83,203,146,247, 41,116,161,190, 96,162,140,245, 64, 79,113,246,247,209,173,134,220,112, 58,130,174, 68,156, 21, 96,167,
- 56, 29,142,124,186,235, 23, 38,226,214,237,108, 24, 0, 8,223,231,108, 84,202, 80,181, 45, 75, 37, 10,236,140, 14, 84, 19,208,
- 21, 19,249,206,145,240, 91, 89, 35, 4,168, 2,181, 39, 36, 1,143, 63,207,219,175, 14,180,248, 91,135,225, 44, 44, 19,203,230,
-113,158,202, 35,190,147, 72, 75,188,184, 10, 97,180,167,149, 94,101, 68,116,193,200,235,219, 67,113,176,234, 62,253,255, 0,241,
-140, 88, 27,158,199,247, 99,223,138,128,176, 16, 74,202,192,200, 64,234, 51,216,159,151,174,144, 56,112,168,255, 0,226,210, 65,
- 39,211,169,193, 30,191,219,161,201, 91, 97,101, 11,229, 33,124,169,112,164, 97, 67, 25, 41,193, 29, 62,221, 18,149, 30, 64, 28,
- 41, 83,138,201, 81,233,203,131,211, 7,167, 95,158,178,160,129,238,248, 99, 4, 11,219,211,111,159,187, 23, 91,122,216,174,223,
-151, 45,171,103, 91, 30, 48,173, 94, 23, 45, 2,211,161,169,134,124,101,166,185,117,214,160,219,116, 71, 18,206, 63, 72,148,213,
-170,176,202,135,110, 84,156,234,116,188, 70, 90, 86,214,200,237,141,191,195,253,145, 22, 45, 26,196,217,203, 30,212,219, 59,118,
-140,216, 15, 52,105,182, 85, 52,210,220,144,228,146, 7,188, 57, 58,187, 14,173, 81,121,213,101,199,100, 86,221,117,213, 5,175,
- 81, 5,246,122, 41,151,120,231,225, 49,165, 45,167, 25, 70,253,237,171,138,109, 68, 6,138,152,185, 35, 72, 66, 58,164,128, 60,
- 86, 81,140,142,248, 24,212,167,184,174,185,213, 80,146,133, 73, 46,189, 42,116,101,176,243,171,116,136,206,165, 92,181, 24,242,
- 29, 66,122, 56,175,137,244, 12,128,174,102,202,115,202, 19,170, 83,197, 9,101,168,206,184,107, 46, 36,242, 99,215, 57,177, 27,
-176, 33,119, 7,246, 0,242,159,241,145,183,126,148,250, 56,229,176,205,157, 87,230, 36, 3, 52, 82, 67, 18,237,186, 42,142,113,
- 96, 78,222,114, 22,253,238,138, 65,198,134,236,221,125, 48,227, 85,230, 51, 33,182, 20, 46,139,193, 78, 71,146, 11,172,173, 49,
-107,213, 39, 22,218,176, 65,104, 45,181, 17,240, 28,231, 10, 57,192,214,224, 91, 87, 56, 52,186,124, 87, 37, 60,195, 17, 27,114,
-181, 86,168, 52,165, 33,208,211,232, 84,135, 35,180, 82,172, 45,194,149, 57,206, 62, 17,225,181,156,149, 19,174,110, 88, 21,191,
-119,114,244,165,183,202, 67, 27,155,118,199, 87, 58,178, 4, 89, 50, 96,212,208,176,140,117, 30, 4,208, 18, 6,122, 47,168, 24,
-193,216,148,220,233, 17, 19, 8, 58,234,126,185,152,195,115,214,218,208, 94, 77, 49, 13,178,244,133,248,196, 0,223,193, 29,180,
- 33, 36,116, 68,133,242,242,101, 71, 81,250,188,185,106, 15, 67,113, 99,239,183,107,245,232, 9,183,107,219,224, 58,227, 63,165,
-142,190,158, 48, 77,158,254, 98, 55,217,118, 36, 14,246, 5,200, 7,112, 64, 22, 35,166,219,210, 47,185, 82,233, 80,131,107,114,
- 60,217, 83, 30,159, 55, 1, 97, 10,126, 99,143, 59,200, 93, 39, 36,248, 79, 52,216, 74,146, 85,208,149, 28,227, 87, 58,150,229,
- 67,154,202, 4, 96, 35, 72,171, 77,110, 44, 73,100, 36,180,229, 58,157,136,136, 91,136, 10,230,111,157,193, 37,215, 17,208,101,
-244,168,228,117,214,181, 64,187,158,122, 93, 82, 99, 15, 54,251, 37,214,153,128, 31,117, 72,105,199, 39,177,225, 23,146,164,156,
- 48,194, 20,135,157, 91,128,140, 41,148,243,100, 17,156, 82,117,230,220,185,110, 46,150,234,204, 86,210,213, 38, 18,207, 68,178,
-246, 20,194,221,232, 57,159, 45, 69, 67,133, 75, 72, 8, 74,217, 4,243, 28,107, 65,114,134, 28,192, 19, 72,150,215,216,116,216,
-247, 29,143,240, 35,215, 20,246,103,146, 44,245, 78,252,176,174,237,171, 80, 54,208, 8, 14, 67, 30,182, 4,169, 0,130, 8,141,
-150,215, 27,108,165, 82,240, 65, 91,130, 60,226,182,132,167,101,192,151, 29,238, 83, 25, 20,197,120, 81,158, 74,218, 87,253,240,
- 30, 74,156, 5, 56, 40, 82,144, 70, 78, 52,237, 90, 94,211,206, 31,238, 61,215, 87, 13,251,187,120,211,246, 99,125,216,166,219,
- 53, 27, 46, 70,225,213,169,180,173,188,223,218, 29,126, 20,116,211,238, 11, 14,254,117,214,224,219,183,114,235, 2,165, 77,157,
-110,215,151, 5,255, 0,172, 41,143, 26,124,233,201, 95,132,215, 47,235,155,134,253, 49,169,137,139, 33, 17,217, 13,120,112, 82,
- 15, 49,240, 35, 44,163,195,112,169, 32,252,110,120,100, 14,255, 0, 6, 84, 78,117,197,111,105,134,220,238, 93,231, 65,219, 45,
-247,167,109,213,197, 90,217,251, 58,155,114,237,149,225,186, 16,105,102,169,111,209,111, 26,133,206,237,223, 6,220,186, 37, 68,
- 46, 57, 71, 74,105,117,120,239,199,126, 99, 76,195, 90,234,170,101,153, 10,125, 14,182,139, 3,128,178,227, 14,113,200,102, 49,
-197, 94,146, 41, 26,186, 58, 14,100, 76, 1, 54,102, 4, 50,105,239,205,107, 48,109,241, 25,226,106, 58,222, 29,225,154,236,230,
-154,152, 85, 54, 88,209,177,136, 41, 60,216,218,101,137,193, 42, 24,198,232,143,175, 85,138,168,137,139, 93, 73, 6,112,183, 37,
- 78,163, 2, 75,208,150,135,161,212, 82,216,153, 17,169,141,173,151,176,166,195,172,115, 50,232, 25,142,243, 42,192, 88,248, 20,
-135, 67,169, 82,146, 1,214, 30,110,102,229, 6,164, 37,229,248, 15,167,153, 14, 21,167,199,131, 45,149, 41,178,218,193,232,133,
- 37,208,234, 20,133, 14,138, 74,146,161,200,172,136, 53,240,131,237,106,226,159,133, 24, 84, 59, 53,218,219, 59,239,178, 52,133,
-176, 33,109, 62,233,213, 42,115, 87,110, 83,210, 19,207, 27,108,183, 21,133,187, 86,176, 89, 90, 16,222, 98,161, 83,232,235, 9,
-248,233, 74,207, 48,145,223, 13,254,212,238, 15,184,152,159, 78,162,209, 47,183, 54,118,249,175,188,219, 14,237, 94,249, 74,164,
-218,245, 37, 92, 79,169, 49, 99, 27, 63,112,216,112, 91,183,164,105,106, 74, 80,226, 84,253, 38,123,107, 83, 14,125, 94,162,183,
- 66,108,186,204,183, 48,166,102,149, 71, 62,156, 30,169,168,233, 30,174,159,105, 0, 23, 14,192, 50,168, 43,245,131, 77,196, 95,
-135,248,215,135,243,244,142, 40, 42,125,147, 48, 63,251, 60,246, 73, 9, 31,170,141,253,220,164,236, 80, 35,107,102, 86, 28,176,
- 93, 65,235,149, 54,227,231, 82,252, 98,143,120,111, 30, 50, 3,153, 10, 74,242,148,190,207, 95,141,149, 1,219,201, 64,160,158,
-157, 92, 10, 45,120, 41, 72, 30, 42,210,211,129, 60,138, 36, 39,194, 40, 56, 9,201,199, 34, 15,194, 82,125, 71, 47, 98, 51,173,
- 78, 57, 42, 4,150,225, 74, 68,136, 85, 24,204, 38, 66, 27,148,194,153, 91,140, 60,112,210,188, 53,165, 42, 92, 71, 18,144, 65,
- 31, 2,199, 43,141, 41, 93, 9,204,232,245,213, 45, 41,192, 82, 28, 24, 15, 5,245, 67,125, 1,240,211,143,214, 37, 36, 97, 93,
-148, 8, 56, 7, 58,212, 89, 53, 45,155,126,155,250,244,189,247,220,131,214,195,222, 7, 80, 36, 83, 0,111,109,143, 66, 55,176,
-233,219,176,244,244,232,113,182,208,103, 41,109, 2,130, 8, 28,170, 10, 7, 24, 72, 25,194,155, 35,170,130,179,216, 16,115,215,
- 3, 58,111, 43, 10,114,143, 57, 62, 8, 83,116,247,138,158,104, 35, 42,247, 7, 50, 75,237, 35, 36,226, 62, 87,206, 17,241, 16,
- 21,132,140, 32, 1,125,182,231,180,168, 76, 58, 9, 40, 84,116,130,133, 30, 98,133, 5, 4,164,144,145,213, 29,122,131,213, 61,
- 0, 36, 29, 13,118, 6,157,142,165,164,161, 74, 66,131,137, 36, 16, 75,137, 11,198, 66, 58, 1,225,133,117, 7,177,199, 76,105,
-179, 52,167, 21, 20,206, 20, 94, 88,188,203,247, 14,159,247, 13,175,219, 99,141,204,138,188,229,245,233,172,222,154,164,132,144,
-123,143, 71,223, 96, 84,155,244, 59,106, 94,135,127, 84,218,177, 40, 8,109, 77,171,152, 21,173,176,163,224,169, 71,153, 72,125,
- 10, 73,232,160, 71, 80,122,228,147,140,224,235, 37,102,160, 10, 82,164,185,132, 45, 57, 74,215,202,149, 96,228, 37, 5, 93, 73,
- 30, 65, 68,115, 96,128, 73,233,134, 98,157, 41, 13, 56, 75, 78,101, 30, 32, 41,200, 60,139,109,106, 31,174,223, 79,137, 36, 30,
-189,207, 76,140,117,214, 72,221,101, 45,182,162,165, 36, 32,100,243, 41, 75, 81, 70,115,204, 0,245,193,235,219, 60,157,117, 24,
-134, 67,166,254,131,225,214,223,195,240,185, 63, 9,141,122, 6,118, 85, 58,239,247, 92,246,191,191,212,255, 0,166, 51, 26,229,
-207, 71,161, 82,171, 21,250,253, 86, 21, 10,222,160,210,170, 53,218,245,110,162,164,183, 78,161,208,104,176,228, 85, 43,117,153,
-206, 45, 73, 9,137, 18,151, 18, 91,238,228,225, 72,142,160,158,165, 57,252,241,248,236,226,198,175,198,143, 19,187,139,190,210,
-211, 34, 37,167, 54, 67, 54,134,209, 80, 36, 40,149, 91,187, 67,106, 59, 42, 29,153, 29,224, 82, 63,247, 86,123, 78,203,172, 84,
- 21,128,163, 54,224,117, 10,232,210,117,219,143,110, 55, 31,168,247, 9,220, 13,237, 45,117,106,153, 60, 65,155,196,245,118,153,
- 33, 73,250,186,148,129, 22,167,110,108,123, 50,218, 88,204,249,174, 8,181, 59,157,180,158,102, 99, 49, 2,144,247, 42,222,154,
-216,140, 58,201, 42, 87, 55, 92,245, 24,242, 62, 93, 51,208, 99, 86, 23, 10,101,174,168,115, 74,133,179,204,161, 98, 4,110, 35,
-184, 38, 79,255, 0, 83,109, 63,224, 1,129, 34, 76,115,135,139, 28, 75, 29, 69, 68,124, 51, 69, 46,168,168, 95, 93, 91, 41,184,
-105,192,178, 67,126,252,133, 36,200, 55,250,214,208, 64,120,119,164,226,207, 66, 6, 58, 99, 61,253,127,110,168, 40,146, 14, 79,
-145, 3,176,234,117,236,175, 32,140,119,245,254,173, 14,178, 50, 7,166,115,251, 53, 54,197, 56, 6,195,215,223,143, 26, 25,222,
-163,190,112,127,103, 95,199,190,136, 80, 4, 28,249,117,233,242,208,171,236, 62,223,191, 74,170,144, 55, 30,252, 27, 3,172, 12,
- 19,233,219,241, 26, 21,194,122,100, 96, 15, 50,122, 99,167,203, 68, 45, 88, 7,168,198,127, 12,119,207,207, 39,246,104, 39, 14,
- 65,238,122,244,207, 92,117,243,209,240, 49, 73,194,122,158,135,167, 78,221,191,225,160,214, 70, 49,230,127,175, 85,214,124,179,
-246,254,237, 12,162,115,131,131,230, 15,203, 74,168,176, 3,231,255, 0, 56, 24,164,161,156,124, 57,251,241,165,175, 42, 81, 4,
-128,123,105,104,248, 61,215,161,234, 61,195, 9, 4, 17,131,140,142,223,159,183, 85, 65,193, 7,254, 56,208,233, 56, 57,252,117,
- 84, 28,245,242,237,243,207,245,104, 16, 14,221,176,115,176,176,216,246,251,173,130,144,113,212,117, 31,209,147,251, 52, 64, 81,
- 7, 3, 57,199, 92, 12,227,237,208,169, 35,151, 56,237,220,122,227,174,171,161, 97, 64, 96, 17,233,247, 31,233,206,144, 35,125,
-251,225, 50, 15,218,181,186,127, 44, 28,217, 61,137,207, 79,219,211, 69,160,115, 4,228,115, 96,228, 12,227,183,110,191,142,129,
- 66,176,164,143, 53, 1,246,117,209,136, 61,199,167, 81,162,144, 13,182,219, 5,193,232, 56,201, 61,187,103,231,233,170,157, 57,
-128,201,237,219,190,122,158,195, 61,244, 58, 14, 70, 85,219,229,220,254, 78,137, 78, 6, 9,248,142, 58, 30,199,229,215, 73,176,
- 32,251,176, 49, 85,178, 80, 71, 49, 24, 29,179,128,122,159,234,206,170,161,228,172,227, 5, 63, 51,208,106,130,129, 57, 36, 12,
- 43,246, 12,103,250, 53,245, 33, 41, 28,169, 39,168,200, 39,169,243, 62,154,215,113,110,214,192,193, 69, 75, 80, 41, 11, 40, 72,
-242, 79,235, 44,117,198, 14,142,138, 84,193, 74,208,181,165,208, 82,164,172, 44,165,214,212,133, 5,182,227,107, 79, 84, 56,149,
- 0, 82, 71,108,122,116,213,184, 21,116, 32, 12, 36, 16,175, 92,121, 99,240, 58, 41, 11, 82,192,198, 50,156, 1,158,159,143,207,
- 73,144, 8, 32,238, 14, 5,200, 32,131, 98, 8, 32,251,198,227,247, 28,108, 53,141,190,213,107,108,134, 43,180,182,171,204,124,
- 41, 19, 35, 60,136, 85, 18,145,128, 11,205,175, 13,186,160, 60,210,164,149, 28,156, 13,108,141,181,197, 54,220, 70, 82,197, 66,
-151,116,195,121, 72,202,146,221, 49,185,109,229, 32,244, 75,141, 75, 60,221,199, 95, 93,115,201, 4,164,124, 94,189,207, 82, 7,
-168,253,186, 37,176, 66,144, 22, 84,164,142,169, 32,227,161,236, 8,243,244,251,245, 28,174,225,188,174,181,153,164,137,162,103,
-235,203,114,160,244,191,151,117, 31,114,140, 91,121, 55,141,220,125,147,211,199, 74,107,169,243, 88,225, 80,170,107, 41,214, 89,
- 52,139, 90,242,161,142, 87, 35,177,119,115,110,248,235,133,191,199,206,218,219, 45, 52,170,125,157,118,214,229, 55,146,132,186,
-136,148,166,213,201,219,244,179,102,224, 18, 71,250,170, 3, 29,180,196,241, 5,199, 86,232,111,197, 1,251, 8, 50,221,147,182,
-143, 56,211,211,237, 58, 60,167,100, 74,185,156,140,226, 94,138,213,215, 87, 83,109,251,229, 61,183,144,219,158,226,195,104,140,
-227,141,161,111,151,249, 82,145,162, 3,148,130, 92, 5,192, 20, 20,148,231,148, 55,212,227, 4, 14,186, 61,162, 86,176,146,225,
- 80, 56,228,194,113,201,219,161,207,235,116, 56,211,117, 47, 5,112,245, 21, 84,117,201, 69,207,170,132,134, 71,149,218, 77, 12,
- 8, 33,149, 73,229,134, 82, 46,173,163, 82,145,169, 72, 32, 28, 53,241, 15,138,188, 97,196,116,243, 82,213, 84,195, 69, 77, 80,
- 10,200,180,176, 44, 69,212,245, 83, 35, 25, 38, 10,219,134, 85,145, 85,193, 42,192,169, 32,158,135, 75,235,241, 20,165,243,156,
-130,149,228,227,191,234,252,191,175, 69, 53,226, 20,169,146, 9, 42, 80, 87, 50,134, 0, 79, 79,192,118,208,142, 44, 52,130, 84,
-175,137, 56,248,146, 49,143, 64,122,117,233,170,145,222, 81, 66, 66, 73,248,178, 73, 87, 82, 79,108, 12,246, 29, 53, 36, 61, 54,
- 29, 62, 70, 43, 94,183, 35,123, 91,175,205,241,136,238,148, 54,166, 91, 20,250,139, 88, 47,209,166,170, 59,233, 79,254, 76,255,
- 0, 80,172, 99,160,230, 39,240, 58,198,120,103,221, 57,187, 25,196,150,199,238,244, 21,134, 94,176, 55, 62,210,175,186,181, 28,
- 15,112,143, 87,142,138,146, 84,113,217, 84,215,101, 39,255, 0,165,167,117,218,108,106,205, 62,177, 68, 90, 2, 93,157, 79,120,
-165, 71,245, 68,134, 82, 86,218,243,228,123,254, 61,245,167, 85, 38, 11,109,188,210,135,233,152, 91,140,184,160,122,120,145,212,
- 83,145,142,255, 0,171,251,117,187, 66, 18,104,170, 41, 36,251, 18,234, 83,255, 0, 68,162,196,254,253, 93,251,227, 20,149, 82,
-101,249,133, 45,100, 91, 73, 4,145,202,189, 62,212,108,174, 63, 16, 49,250,180,211,238,200,245, 37, 67,171,211,156, 15,194,174,
- 65,129, 89,167, 45, 4, 20,189, 10,173, 21,153,145,214,133,121,160,178,242,122,249,231,190,180,239,217, 89,188,242,168, 28,101,
-113,223,195, 53, 74,165, 21,248,241,110,200, 59,151,105, 48,148, 54,212,150, 99, 85, 66, 25,171, 70, 90,211,133, 72, 8,121,198,
-149,215, 37, 35, 61,129,214,138,112,241,237, 18,181,246,247,217, 85,195,199, 23, 55,221,185, 92,188, 87,110,170,222,216,155,158,
-135, 70,113,168, 85, 74,133,213, 66,154,237,182,137,209,228,212, 2, 90,247, 81, 18, 12,119,150,178,172, 40, 40,165, 36,172, 99,
- 92, 76,225,195,218, 43,112,108,191,180, 68,241,163, 87,137, 53,218, 13,213,121, 85, 13,251,109, 69,117, 79, 59,252, 93,220,210,
- 61,214, 85, 57,148,140, 9,179,169,240, 12, 87, 90, 24,253, 35,176,207, 39, 85,140,213, 94,201, 95, 89, 89, 81, 50, 68, 88,229,
- 41, 44, 77, 97,114,211,137, 33, 50, 70,130,251,177,141, 24, 11,126,210,130,124,216,234, 92,247,139,178,110, 30,135,135, 86, 26,
-240,171,156,212, 69, 53, 68, 96, 18, 70, 89, 60, 14, 18, 89, 46, 45,161,102,104,166, 0, 18,247,167,107, 0, 6,255, 0,166, 5,
- 42,103, 57, 65, 82,185, 64, 32,133,247,194,134, 58, 28,253,191,183, 79,189,167, 40,130,133, 15,136,130, 15, 48,207, 92,244,234,
- 62,127,191, 90,215,182,213,122, 45,249,108, 90, 55,197,175, 49, 85, 11, 94,248,160,211,110, 91,114,123,145,228,195, 92,170, 77,
- 82, 51,114,163, 41,232, 51, 90,109,232,174,134,220, 0,165,196, 37, 67, 29,181,181, 22,173, 32,176,218, 22,172, 0, 58,144, 15,
- 48, 35,161,232, 51,211,182,149,165,204, 0,210,250,182, 96, 8, 55,216,131,107, 17,234, 8,177, 7,208,223, 12,252,106,244,209,
- 69, 44, 79,229,112, 89, 74,158,160,131,165,148,142,161,131, 2, 8,234, 8, 32,216,139, 99, 84,189,166, 92, 73, 94, 92, 36,240,
- 71,190, 60, 72,109,253,170,139,190,243,218,251, 81,202,181, 6,152,247, 63,185,197,151, 53,246,105,136,172, 84, 2, 7, 50,224,
- 67, 84,180,200,117, 35, 4,165,140, 2,158,227,242,123,220, 13,193,188,183,102,246,187, 55, 70,255, 0,174,202,185,175,125,193,
-184,106,119,117,217, 95,154,225, 92,154,165,106,179, 33, 82,165,200, 61,127, 70,202, 74,130, 26, 64,248, 91,109,180, 33, 32, 37,
- 35, 95,176,103, 17, 91, 65, 79,226, 3, 96, 55,155,100,106, 73,104,195,221, 29,180,188, 44,162,167,194, 11, 49,228,215,104,147,
- 33, 65,146,176,160, 71, 43, 83, 28, 97,207,145,107, 58,252,126,111,173,183,174,109,101,223,114,237,205,200,243, 14, 87,172,107,
-134,183,104, 86, 21, 21,196,191, 31,235, 27,118,163, 34,153, 41,108, 62,142,143, 50,181,199, 42, 74,135,250,248,242,211,205, 11,
- 23,205,103,169,168,185,146,170,158, 46, 83,159, 68,102, 90,132, 67,211,202, 69, 43,202,122,183, 50, 37, 98,121,105,106, 87, 55,
- 74,198,201,233,231,141, 79,232,234, 57,204, 82, 16, 6,132,158, 85, 50, 83,153, 27,174,169, 99, 74,129, 10, 55,149, 68, 19,180,
-118, 47, 41, 56, 67,100,168,171,151,155, 61, 79, 95, 60,122, 15, 61, 35,130,164,243, 43,195,200,232, 85,144,149, 30,190,103,160,
-235,163,138, 10, 81,148,161, 61, 1, 57,207,196, 1,237,229,215, 58,179, 73, 73,100, 1, 32,169,109,175, 10,108,133,117, 65, 61,
- 64, 35,211,190,164, 33, 71, 78,184,138, 6, 12,221,108,127,211,249, 99,203,205, 18,188,146,148,164, 30,157,114,114, 49,212,122,
-121,235,227,237, 45,212, 2, 7, 84,167,184, 57,230,251,255, 0,214,210,105,196,231,225,201, 72, 78,112, 71,161,193,239,249,235,
-162,163, 54,227,231, 9,229,102, 56, 25, 86,126, 37, 18, 58,142,158,154, 26, 64,223,165,177,147,211,115,112, 58,252,252,223, 22,
-213, 70,117,150,146,176,201, 81, 88,230, 39, 35,152, 1,253, 61,115,159,248,104,168,146,144,231,232,202,255, 0, 85, 56, 40,229,
- 0, 30,157, 78,124,245,114, 83, 5, 65, 72, 11,202,122,142,131, 4, 30,196,245,208, 41,136,220, 55, 57,130, 80,160,172,229, 74,
- 5, 71, 24, 57,192, 61,188,255, 0, 13,102,195,174, 10, 13,246,245,219,231,231,243,194, 75,106, 66,138,139,202,121, 62, 73, 39,
- 41, 64,244,249,235,195,175,165, 29, 16,164,129,215, 3,176, 10,244,237,242, 58, 13,247, 86, 20,162,210,241,205,219, 9,199, 76,
-118, 57,252,252,244, 57,121,183, 22, 18,162,114, 8, 46, 36,167,166,122, 30,132,122,147,160, 1, 61,122,224,218,109,176, 59,124,
-252,244,193, 73, 62, 42,249,210,160,160, 6, 10, 58, 4,243,117,237,215,174,169,202,116,144,148,163, 9, 35, 41,232,112, 73, 35,
- 26,244,226,149,225, 44, 52,218, 83,202, 50, 6,112, 73, 3,166, 20, 60,186,106,200, 38, 56, 22,159, 25, 41, 42, 74,136,229, 35,
- 39,237,230, 7, 25, 25,253,154,205,172, 79, 99,140,129,115,240,254,120,124,184,115,189,156,218,173,243,217,253,196,140,226,154,
-114,201,221, 29,189,186,157,144, 2, 28, 76,104,148, 91,202,137, 62,170,234,144,226,146, 10, 19, 71,106,164, 78, 72,192,235,229,
-214, 89,252, 84, 79,135, 38,165, 91,167, 64,144,125,222, 21, 90, 83,212,194, 9,203,148,103,102,202,149, 75,147, 29,226,231,198,
-199,134,165,180, 86,174, 83,250, 48, 82,145,204,117, 12,134, 36, 32, 58, 89,144,219,141, 68,148, 28, 97,215, 25,112,135,124, 41,
- 13,150, 30, 13,148,156,182,191, 13,197,224,142,160,224,143, 93, 73,106,193,222, 9,123,221,195,158,213,110, 37, 84, 5,220,177,
-173,145, 99,221,170, 9, 90, 82,245,211, 97, 33,139, 66,186,235,106,113, 41, 18, 89,144,221, 38,151, 80,109,206,169,241,170, 79,
- 3,133,165, 68,213,126, 32,229,133,243, 12,131, 53, 81,228,136,205, 3,157,175,169,213, 36,139,223,107, 71, 40,244, 5,135, 82,
-109,142,146,250, 55,230, 49,199,158,230,217, 92,205,165,166,142, 42,152,199,111,171, 99, 12,173,241,188,212,235,255, 0,117,239,
-229,177,215, 10, 45,116,211,119, 43,112,233,170, 37,182,230, 76,183, 43,177, 16, 48, 67,141,212,104,203,167, 84, 84,210, 85,250,
-200,247,186, 39, 42,135, 76,169,127, 17,201, 25,126, 41,181,229, 37, 94,246,130,227,139, 83, 98,158,134,210,180,160,134,139,132,
-169, 8,228,234, 57,157, 60,196,119, 33,160, 58, 3,173, 54,220,106,162,232,187,147, 64,173, 32,128,221,114,157, 86,182,101,168,
- 2,112,236, 98,110, 58, 71, 42, 0,200, 82,156,139, 85,108,168, 12, 37, 47, 14, 99,215, 89,237, 42,241,122, 42, 89,121,149,120,
-143, 68,240,228, 71, 67,193, 97, 42,112, 20,248,104, 82,146, 14, 81,149, 36, 43, 61,130,149,202, 79, 77, 54,154, 98,201, 79, 48,
- 93,157, 23,215,245, 64,140,254,242,183,247, 3,113,214,216,234,185,107, 85, 90,190,153,200,103,134, 73, 8,185,181,196,141,207,
- 0,122,217, 95, 77,199,166, 54, 18,161, 94,151, 79,143,238,201, 90,156, 74, 11,144,195, 67, 45,167,222,100,242,185, 41,107, 79,
- 47, 68,161,128,211, 94, 17, 4,143,139,237,214, 33, 94,188,163, 65,166, 48,194, 95, 91,117, 54,202,144,132, 54,165,128,183, 95,
-199,188,184,162,159,133, 33, 12,114, 39, 3,184,113, 99, 62, 90,108,110,125,200,155, 57,192,243,237, 54,135, 98, 37, 65,105,104,
-184, 83, 38, 67,170, 74,157,117,106, 82, 65,231, 43, 42, 36,158,164, 28,103,182,152, 91,179,113, 22,203, 82, 31,144,227,141,177,
- 29,133, 60,243,188,138,117,126, 27,202,229, 79,134,132,140,173,213,186,224, 64,230, 35, 28,249, 82,146,156,168,109, 83, 80,180,
-133, 70,155,131,247,250, 91,173,253,215,233,123,143,190, 31,153,230, 40,116,234, 94, 76,155, 11, 13,199,112,250,136, 0, 48,181,
-193, 30,164,142,215, 14, 21,209,121,205, 91,172,198,128, 37,214, 37,203,151, 18,147, 71,162, 69, 74,158,159, 91,173, 84, 31, 76,
- 74, 61, 38, 10, 82, 57,149, 46, 76,199,210,132, 36,116, 79,141,204,122, 13, 72,111,103,182,153,253,140,217, 59, 59,105,234,166,
- 43,245,214, 40,146,102,238, 75,165,136,243,169,213, 75,230,241,120, 86, 47, 54, 36,211,230,178,227, 21, 26, 75, 53, 55, 26,167,
- 24,207,180,236,119, 35,210, 16, 22,218,146,117, 21, 91, 99,137, 58,134,192,111, 54,211,110, 76,122, 84, 42,181,197,100,221,246,
-174,224,205,167, 84,216, 19,169,212,123, 66, 37, 89, 42,151, 77, 97,181, 39,195,159,114, 79,128,212,245,169,240, 22,212,111,116,
-105, 13,225, 69, 58,152,173,218,236, 42,179,108, 87,233, 14,186,253, 46,181, 6,157,112, 82, 30,120, 56,211,238,209,110, 10,124,
-106,204, 5, 62,219,128, 41, 18, 61,194,107, 60,193, 64, 44, 45, 4, 30,186,117,106,119,163, 48,188,177,253, 92,232,116, 31,218,
-177, 26,182, 29, 0, 5,108,118, 44, 24,145,181,142, 35,114,231,116, 85,239,152,101,148,181,162, 92,195, 43,146, 35, 87, 18,135,
-188, 13, 42, 22,128, 23, 42, 35, 98, 66,200, 24, 35, 57,137,208,164,161, 30,202,120, 41,197,183,177,147, 96, 55,194,117, 82,245,
-225,250,163, 11,134,125,197,158,169, 14,206,182,216,166, 75,169,236, 93,114,190,156,248,141,189,108,196, 90,166,237,169,121,196,
-181,250,106, 40,147, 79, 30, 49,116, 81,219, 78,117, 26, 30, 33,248, 90,223,142, 22,238, 53, 90,251,235,183, 21, 75, 77,169,146,
-228, 66,162, 92,232, 13, 87,118,250,239,240, 22,241, 75,150,189,233, 78, 11,167,214, 10,153, 99,198, 17,203,141,204,109,181,161,
- 79, 69,104,144, 53, 62, 58,210, 27,142,235,239, 21,135, 25, 12,160, 78,108, 32,130, 2, 20,150,218,156,215,108, 60,148,173, 41,
- 88, 7, 42, 65, 24, 28,201, 25,193,174,203,122,131,116,219,213,139,110,241,182,232, 55,173,161,112, 70, 84, 43,170,207,186,169,
- 84,234,253,183,113,211,152,109, 97, 46, 84,104,245, 86, 28,142,237, 70, 59, 5,226,196,128,132,200, 66, 22,182,154,125,146, 80,
-180,201,178,222, 38,170,167,211, 29, 71,246,200, 86,223,104,218, 69, 29, 1, 87,177,189,186,233, 96,214, 30, 85, 40, 0, 56,170,
-184,143,195,156,143, 60, 18, 84, 69, 23,232,156,193,247, 18,194,160, 70,237,183,247,176,221, 84,146, 79,219, 83, 27,110, 29,203,
-146,109, 13, 30, 23, 61,163, 28,100,240,219, 38,149,107,237,182,228, 73,189,236,148, 58,150,218,218, 61,216, 67,151,221,136,166,
-144,210, 25,240, 41, 6,169, 45, 53, 11, 53, 66, 58, 57, 80,186, 76,248, 97,190, 98,160,218,142,164,109,178,158,214,237,167,175,
- 65,161,127, 41,109,181,191,248, 74,174, 85,212,196, 72,247,141,118,159, 86,189,184,118,184, 38, 56,243,200, 67, 20,205,205,163,
- 65, 92,187,103,244,108,243,134, 42,113, 37,120, 42,121, 41,114,160, 80, 84,117,167,220, 73,251, 19,182,242,247,150,245,217,194,
- 29,220,173,162,186,165, 45,185,180,237,176,187,166,214,235, 27,115, 85,154,242,203,141, 53,105,221,169,247,138,213,131, 33,111,
- 58, 60, 24,243, 19, 85,132,218, 80, 19,227,198, 71,195,173, 7,218,190, 57,120,161,246,121,238,117,107,135, 46, 42, 54,246,212,
-222,125,182, 66,215, 76,220,221,149,190,133,155,115,191, 81,182,165,170, 84, 41, 82,173,155,198,146,212,216, 50,159,240,155,121,
-200,241,235, 44, 76, 97,206, 80,135,152,140,178,151, 90,121,170,146, 44,222, 17, 46, 79, 77, 21,101, 90,144,210, 68,210, 26, 90,
-141, 23, 26,157, 24, 36,177, 72,226,224,221,193, 66, 60,166,100, 39,106,230,105,184,247,129,158, 20,172,144,102, 25, 56, 96,130,
- 73, 11, 77, 13,172, 72, 85,114, 4,208,176, 63,238,220,198, 0, 12,193, 90,219,205,107,111, 55, 22,222,185,109,106, 77,203,105,
- 92,212, 27,170,209,172,183,227,209, 46,123, 90,179, 79,185, 45,186,219, 47,160, 44, 55, 78,175, 80,230, 63, 25,215,130, 20, 20,
-227, 72,116,188,206, 64,121,180, 19,141,103,175, 87,204,134,148,133, 47,152,148,124, 42, 90,135, 81,202, 0, 79, 42,142, 57,128,
-233,159,246, 64, 39, 57, 58,138, 47, 16, 27, 71,120,112, 95, 98,211, 61,164, 94,203, 13,207,174,217,124, 50,238, 29,187,102,110,
- 70,229,240,243,119,189, 42, 85,155, 77,162,222,245, 72, 16, 41,117, 22,108,155,169,231, 90,184,109, 7,235, 46,162,151, 58,152,
-243,203,175,208,101,130,245, 6,171, 58,144, 89,145, 18, 68,155, 3,127,214,247,155, 98,118,115,120,231, 91,109, 90,114,247, 99,
-108,236,173,194,145,108,177, 83, 77, 90, 45,188,253,219, 67,139, 87,122,147, 14,164,243,190, 44,248, 45,185, 37, 98, 59,143,101,
-242,194,155, 18, 15,188, 7, 73,143,214,196, 35,167,138,170, 9,185,212,211, 51, 37,153,116, 75, 28,128, 41, 49, 75, 29,205,152,
- 95,170,150, 83,177,218,235,123, 43,134,115,213,207,218, 72,189,141,233,170,169,213, 93,148,221,209,145,142,149,120,220, 40,189,
-200,177, 4, 41, 27, 0, 8,185,198,215,109,149, 22, 37,219,112, 75,167, 73,165, 92, 21,191,118,183,110, 26,195, 20,107, 85,228,
- 68,174, 84,165, 82,105,206,202, 98, 44, 87, 92,162,212, 48,165, 45,180,169,192,152,142,168,161, 4, 36, 36,229, 99, 64, 56,226,
-223, 77,219,218,203, 74,243,176,184,111,131,100,212,184,131,106,210,106,188,182,174,237,198,176,104,236,108,117, 26,191,107,238,
- 45,231, 67,159,114, 83,238, 42,188, 53,220, 59,203, 46,201,218,125,206,169,219, 54,146, 99,166,100,164,216,146,234, 18,227,161,
- 2,157, 2,167,204, 14, 62, 61,170,123,199,195,134,245,239, 23, 13,187,105,102,194,182,165, 83,246,238,171,105, 84,183, 81, 53,
-244,170,245,137, 87,220,107, 45,183,233,117,187, 54, 41,166, 73,133, 64,143, 76,250,217,135,130,156, 67,211,229, 61, 20,165, 50,
- 32,160,164,235,150,155,127,199,229, 2,218,166,220, 17, 47,141,155,184,239,201,213, 27, 39,106,105,180,122,212,125,229,250,134,
-170,214,227,109, 78,199,111,230,200, 68,190,174,249,149,109,181,172,187,121, 82,106, 16, 56,129,184, 42,147, 41, 97,218,124,229,
- 79,183,224, 36,215,213, 28,203,110, 70,206, 69,195,144, 85, 69, 5, 70, 98,154,105,203, 23, 84, 82, 9,145, 88, 2,188,203, 43,
- 29, 22,223, 64,107,155,217,130, 11,134,211,227, 63, 18,206, 91, 83, 89,150,100, 83,153,115, 5, 2, 9,166,100,112, 41,101, 77,
- 75, 50,195,172,141, 83, 43,150, 83, 39, 47, 66,149,186, 60,183, 82,141,110,225,240, 39,196,221,155, 81,191,231,222,141, 89,213,
- 55,237, 88,247,245,205,127,221,171,222,173,181,185, 61,226,240,182,175, 86,237, 91,186,211,159, 89, 98,236,113,202,246,245, 75,
-190,106,209,152,110,218,100, 61,112, 84, 36,212, 28, 91, 16, 22,220,105,170,139,127,159,236,242,222,186, 77, 26,239,166, 87,232,
-112,233,215,213,183,115, 90,106,118,188, 55, 27,106, 92,217,154, 61,128,237, 3,137,199,119, 10,177,114,223, 77,221,139, 75, 53,
-122, 53,223,195, 53,253, 73,112, 71,241, 98,181, 54,200,172, 83,221,113,115,223,163, 51, 57,230,147,199, 5,183,187,182,199, 20,
-139,188,118,233,203, 98,159, 84,186,183,115,137, 91, 34, 52, 27,238, 84,170,188, 61,236,220, 94, 32, 44,203,171,108, 40,237, 75,
-107,110, 95,141, 88,160, 80,145, 95,186, 77, 97,137,205, 83, 25,174,211,162,188, 99, 84, 40,149, 52, 64,143, 46,157, 75,218, 83,
-101, 77,186,105, 19,162,236, 45,249,108,218, 84, 43,254,198,220, 58,109, 34,211,226, 14,155, 2,237, 19,173,203,215,141, 77,199,
-186,173,217,247,125, 99, 98,170, 16,170,182,125,110,232,227, 78,236,167,187, 2, 77, 5,212,166,211,181,219,161, 84, 87, 88,151,
- 81,153, 91, 22, 42,173, 58,216, 2, 66,109,243,176,249,247,227,159,188,172,197,153,181, 23,220,146, 73, 36,158,189,183, 55,238,
-119,191, 83,134, 79,133, 94, 26, 54,163,119, 40, 23,245, 15,114,220,191,142,226,213, 56,139,225,227,133,189,165,172,237,181,249,
- 97,155, 30,221,191,119,242,131,196, 96,167, 93,151,172, 39,236,250,202, 55, 62,208,102,241,218,107, 53,128,138, 37,126,130,149,
- 83,107, 53, 9,204, 84,230, 17, 17,189, 55,212,190, 3,248,146,172,211,160,212,169,214,189,181, 33,186,142,219,211,247, 54, 44,
- 95,227, 14,196,106,162,186,125, 98,181,178,180, 58, 45,166,105,207, 92, 9,120,110,100,217, 28, 70,108,107,177,109,190, 79,173,
-221, 99,115, 41,203, 76, 94, 97, 37, 17,242,109,137,226,246,211,217,104,251,163, 81,127,101, 62,187,186,171,187,235,180,188, 70,
-108,210,237,235,249, 22, 93,137,180,219,153,179, 84,221,245,137,101, 55, 93,179, 23, 99,212,230,110, 13,155, 14,126,244, 71,153,
- 30,155, 22,183,110, 58,135, 44,136,172,191, 58, 84,105, 79,178,151,218, 87,181, 90,244, 52,109,183, 49,108, 26,164,171,191,110,
- 45, 11, 30,153, 2,181,115,110, 83,149,219, 97,171,198,196,221, 46, 9,183, 14, 21,126,223,177, 98,217, 80,152,183,109,137, 17,
-184, 39,182,216,149, 73,247,169,115, 94,157,126,212, 38,174,188,170,109, 62,145, 66,136,100, 17, 21, 93, 71,204, 47,211,227,220,
-219,115,111,195,225,108, 1,107, 11,252,252,239,134,106, 63,179,199,115,133,155,125,215,171,187,135,179,118,237,197,106,110,150,
-201,109,205, 10,223,153,185,246, 52,250, 21,249, 15,122,172, 61,215,189,169, 23, 85,173,123,210,110, 87,226, 85,161,161,221,180,
- 69, 50, 35, 16,154,153,245,133, 70,101, 86, 39,143, 18,101,191, 50, 43,173, 61,131,193, 94,250,238,142,241,110, 54,200, 89,144,
-172,105,247,150,215, 94, 63,197,253,209, 54,126,230, 88,150,253,156,245,230,245,238,157,187,165, 91,118,205,231,112, 87,162,211,
-175, 26,213, 74,234, 15,179, 73,139, 75,126, 92,138,179, 48,164, 75,167,183, 38, 43, 46, 58,157,172,107,218, 71,106,187,184,205,
- 93,151, 6,202,110, 37,197,110,209,175, 29,134,190,172,246, 39,241, 13, 5,253,203,160, 93, 60, 62,109,135, 18,118,213,139,112,
- 73,220, 10,142,200, 73,165, 84,170,177,119, 63,136, 8, 23, 60, 70,218,180,225,210,217,143,182,241, 40,114,169,117, 3, 80,155,
- 86, 12, 7, 9,252, 89,216,124, 52,223,247, 21,199, 92,217,203,159,115,109, 71,183, 27,106,119, 94,200,183,218,221,216, 86, 93,
-205,110,222, 91, 37,184,134,249,219,247, 46, 91,196,109, 93, 86, 53,227, 71, 49,101, 84,161,213,227,179, 69,164, 59, 61,217, 13,
- 76,139, 38,154,150, 85, 17,245,109, 21,212, 94,194,230,253,122,118,237,252, 63,118, 51,229,219,231,249, 97,202,188, 61,155,155,
-199,118,239,117,185,183,155, 45,111,219, 48,169,151,253,165,181,247, 29,144,197,255, 0,186, 86, 69,154,185,177,175,167, 54,191,
-110,233, 53, 41,149, 43,218,189, 9,184,108,215,247,190,249,155, 69,160, 50,234,210,253, 65,250, 53, 77,200,172, 42,159, 74,151,
- 45,166,227,134, 30, 29,118,127,120,246,186,191, 46,244, 59,148,198,229, 93, 91,162,198,209,109, 69, 98,214,187, 45,122, 85,145,
-109,220,147, 54,155,112,111,218, 69, 66,255, 0,180,170,251,125, 80,157,121, 82,101,220,150,181, 18,154,240,167,215,104, 46, 83,
-162, 85, 36,212, 19,245,147,172, 55, 5,237,158,182,189,170,118,111,241,175,183,251,177,186, 92, 50,213, 47,138,213,133, 67,216,
- 27,113, 74,181,183,186, 14,223, 84,174,122, 47, 11,119,174,202,223, 59, 29, 14,226,170,191,178,245,148,204,114,158,230,219,222,
- 52, 89,210, 61,212, 74,157,109,221,244, 74,100,119,233,207,218,140,207,171,105,175, 15, 60, 86,219, 59, 19,183, 23, 37,185, 55,
-107, 42,215,157,246,197,244,141,202,218,155,189,189,196,135,110,218,246, 85,232,222,219,222,187,117, 26,163,120, 88,142,109,229,
- 70, 70,225, 69,136,139,192, 85, 33, 71,143, 94,160, 33, 53, 10, 36,116,205, 53, 8, 43,126, 27,135, 2, 45, 74,111,229,107,222,
-224,251,173,219,227,235,252,241,159, 47, 99,243,255, 0,140,109,229,209,192, 61,139, 67,254, 54, 13, 55,134, 30, 56,238,159,226,
-247,134,189,165,221,155, 88, 82,239, 26, 58,127,141, 58,134,224, 29,184,254, 17,110,133,181,238,252, 37, 74,228,217,202, 39,240,
-190,165,239, 17, 99,253,100,191,208, 49,227,221, 17,185, 92,241,117, 46,135,178,187, 35, 81, 28, 31,213, 31,183,183,186,171, 31,
-122,172,157,204, 93,241,102,218,215,157,151, 58,233,188,119, 54,204,184,111, 91, 90,206,160,237,157, 94,102,218, 53, 31,110,232,
- 55, 5,201, 73,181, 97, 62,229, 82, 21,212,253, 17,170,156,202,136, 53,143, 5,170,122,233,238,255, 0, 21,182, 21,251, 73,221,
- 38,109, 61,163,187,173, 42,230,243,109,206,204,217,215,189, 66,226,221,186, 53,235, 74,102,187,180, 15, 88,202,106,225,181, 40,
-212,205,160,161, 61, 71,164,207,141,102,114, 42,155, 50,125, 77,232,203,169,120,130,166,250, 89,240,157,111,237,173,252,177, 83,
- 70,217,139, 67,114,246,121,205,192,178,182,194,199,221,235, 38,179, 78,133,124, 51,107,215,171,138,221, 10,189,205, 93,167, 93,
- 54,173,114, 93,149, 85,143,101, 93, 20, 42,173,118, 11,240,157,147, 78,174, 70,121,218, 70, 95,139,225,190, 91,109, 66, 82,230,
-223, 59,143,119,166, 50, 8,184, 3,231,127,135,166, 49, 78, 42,118,162,139,177,156, 68,238,246,208, 80, 63,132, 77, 83,182,246,
-242,168, 91, 74,166, 93,239, 65,153,117,219,117, 40, 41,100, 86,172,219,150,169, 75,166,194,137, 94,175, 81, 43, 42,159, 72,151,
- 83,133, 10, 28, 42,156,138, 35,149, 8, 81, 34,197,146,211, 13,173, 88,184,129,221,147,190, 91,193,122,238,130, 40, 10,181,162,
- 92,146,233,172,210,109,231,107, 47, 92,147, 40,244, 11,118,135, 75,181,237,216, 53, 75,142, 68, 40,170,184,107, 72,161, 81,105,
-222,253, 60, 68,134,137,147, 11,242, 90,133, 13,183, 81, 21,165,172, 21, 55, 58, 70,221,186,116,193,180,169,223,215, 31,255,217,
+255,216,255,224,
+ 0, 16, 74, 70, 73, 70, 0, 1, 2, 0, 0,100, 0,100, 0, 0,255,236, 0, 17, 68,117, 99,107,121, 0, 1, 0, 4, 0, 0, 0,
+ 85, 0, 0,255,238, 0, 14, 65,100,111, 98,101, 0,100,192, 0, 0, 0, 1,255,219, 0,132, 0, 2, 1, 1, 1, 1, 1, 2, 1,
+ 1, 2, 3, 2, 1, 2, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 4, 4, 4, 4, 3, 5, 5, 5, 6, 6,
+ 6, 5, 5, 7, 7, 8, 8, 7, 7, 10, 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 2, 2, 2, 4, 3, 4, 7,
+ 5, 5, 7, 10, 8, 7, 8, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,255,192, 0, 17, 8, 1, 26,
+ 1,245, 3, 1, 17, 0, 2, 17, 1, 3, 17, 1,255,196, 0,213, 0, 0, 2, 2, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5, 6, 4, 7, 0, 3, 8, 2, 9, 1, 1, 0, 1, 5, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 2,
+ 4, 5, 6, 7, 8, 9, 16, 0, 1, 3, 3, 3, 2, 3, 4, 6, 6, 6, 6, 6, 6, 8, 7, 1, 2, 3, 4, 17, 5, 6, 0, 33,
+ 18, 49, 7, 65, 19, 8, 81, 97, 34, 20,113,129,145, 50, 35, 9,161,177, 66, 51, 36, 21,193, 82, 98,114, 52, 22,209,225,130,115,
+ 53, 54,240,146, 67, 83, 23, 55,162,131, 68,116, 37, 10,241,178,194, 84,132,148,180, 25, 99,147,100,212, 69,213, 56, 17, 0, 1,
+ 4, 1, 2, 3, 5, 5, 6, 3, 6, 3, 6, 7, 1, 0, 1, 0, 17, 2, 3, 4, 33, 18, 49, 65, 5, 81, 97,113, 19, 6,129,145,
+ 34, 50, 7,240,161,177,193,210, 20,209, 66, 35,225, 82,146, 51, 21, 23,114,178, 67,241, 98,130, 83, 99, 52,162, 36, 68, 84, 37,
+ 22, 8,115,255,218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0,251,245,164,146,205, 36,148,123,178,174, 73,181,201, 85,152,
+ 33, 87,112,211,134, 42, 95, 36, 54, 94,224,120, 5,148,239,199,149, 43, 77, 10,253,251, 37,177,183, 49,103,224,252,159,185, 22,
+141,155,227,189,246,184,118,226,220,219,189,114,126, 3,235,143,186, 93,174,238, 44,204, 7,213, 60, 34,150, 60,213, 1, 50, 60,
+100, 52,228, 64, 79,194, 82,134, 64, 75,172,211,162,133, 85,239, 58,241, 94,153,245, 19, 55,166,229,203, 27,171, 69,181,249,128,
+102,246, 15,154, 61,227, 95, 21,237,221, 79,233,198, 23, 83,196,142, 79, 72,147,233,242,146,239,237, 63, 44,187,142,158, 11,170,
+241,236,138,197,150, 89,216,200, 49,169,109, 78,178,201, 72,113,137, 49,150,149,182,180,159, 97, 78,189,163, 27, 38,188,136, 11,
+ 43,144,148,101,168, 35, 80, 87,137,228,226,217,143, 97,174,200,152,202, 58, 16, 67, 16,166,232,232, 11, 52,146, 89,164,146,205,
+ 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210,
+ 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,
+150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,
+102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,
+105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,230,239, 83,144, 61,109,201,238, 67,139,237, 12,178,207,
+111,124,166,132, 36,219,220,142,218,130,184, 15, 51,206,243,135, 34,174,117,165, 54,165, 61,250,242,207, 86, 97,250,146,220,178,
+112,166, 5, 44, 25,140, 65,239,119,213,223,216,203,213,189, 37,153,233,170,113, 0,205,129, 55, 57,119, 18, 35,185,155, 70,111,
+107,170, 3, 63,239,223,171,190,217,222, 63,203,217,118, 89, 33,155,226, 69, 93,138,212,136,175, 56,213, 69, 71,152, 26, 7,137,
+ 32,244, 59,235,203,122,207,168,186,247, 75,179,202,187, 36,239,230, 4,162, 72,241,110, 11,213, 58, 55,167, 58, 7, 84,175,205,
+163, 27,224,228, 76,101, 16,124, 31,138,136,246, 41,234,175,212,188, 8,215, 43,179, 18,175, 48, 26,170,226, 74,154,150, 26, 52,
+ 80,161,224,181, 4,168,131,246,105,199, 70,245, 7,168,170,140,231, 25, 78, 3, 88,153,109,143,184,150, 45,247, 37,254,179,233,
+239, 78, 91, 40, 66, 81,132,206,146, 17,221, 47,120, 14, 31,239, 68, 59,117,220, 79, 80,158,139, 50, 38,153,200,173,207,183,136,
+204,114,178, 45,115, 13, 98,200,167,222, 83, 46, 39,146, 82,224, 30, 35,235, 7, 68,233,157, 75,171,250, 62,208, 46,172,249, 82,
+ 58,196,252,167,254, 18, 28, 3,246, 33, 11,170,116,222,145,235, 26,137,166,193,230,196,105, 33,164,135,252, 64,177, 35,236, 10,
+237, 44, 63,212, 22, 7,155,246,118,103,121,236, 42,113,235, 13,186, 36,153,243,226, 32, 39,230, 89, 84, 54, 11,238,178, 82,162,
+ 19,204, 1,182,244, 59,111, 77,125, 27,233,238,173, 79, 89,166, 22,208,116,145,109,121, 30, 96,248, 47,155,125, 71,210, 46,232,
+183, 78,171,198,176, 15,167, 49,200,143, 31,236, 41,111,209,183,173,190,197,250,234,237,163,189,210,236, 84,137,110, 89, 98,200,
+ 54,233,241,174,177, 85, 18, 76,105, 73,105, 14,169,181,164,149, 37, 84, 74,199,196,133, 41, 62,253,116,253, 91,163,221,211,173,
+242,237,103,103, 12, 95, 69,202,244,110,183, 71, 84,171,205,164,150, 5,139,134, 32,167, 62,246,119,167,183, 62,158, 59, 97,118,
+239, 31,118,167,155,103,111,108,141,161,251,148,224,203,207,150,144,183, 82,202, 79,151, 29, 43, 89,170,148, 6,195, 85, 48,240,
+236,202,176, 87, 88,121, 75,128, 87, 51,179,107,196,170, 86,218, 90, 49,226, 86,190,197,119,215,182, 30,164,251, 95,108,239, 39,
+103, 46, 63,205,123,123,119, 14,170, 4,226,203,209,203,129,151,215, 25,117,110, 66, 80,226,104,182,212, 55, 2,189,122,105,243,
+112,236,196,180,213, 96,105, 71,136,251,210,193,206,171, 50,168,219, 81,120, 75,129,246,183, 52,221,170,170,218,205, 36,150,105,
+ 36,179, 73, 37, 73,246, 47,215,231,167,239, 81,157,255, 0,205,189, 57,118,185,233,210,179,108, 1,107,141,144, 73,147, 17, 81,
+225,166, 75, 82,215, 9,214, 25, 91,170, 11, 90,144,227,102,164, 35,137, 29, 9,214,190,119, 68,191, 18,138,238,177,132,108,225,
+174,172,206,235, 23,167,245,252,124,204,139, 40,173,204,171,249,180, 96,238,204,174,205,100, 45,165,154, 73, 33, 57,246,117,138,
+246,195, 7,188,119, 35, 58,152,155,126, 23, 96,133, 38,241,118,156,224, 82,146,196, 72,108,170, 67,206, 20,160, 21, 30, 40, 73,
+ 52, 0,147,224, 43,162,209, 76,174,156, 97, 0,242,145, 0, 14,242,131,145,124, 40,174, 86, 76,180, 98, 9, 39,184,113, 95, 58,
+151,249,245,119,191,186,119, 25,215,239, 73,222,155,178, 44,215,180, 22,231,150,202,175,174, 61, 45, 47, 72,225, 66,164,134,173,
+208,165, 52,218,248,239,196, 58,225, 21, 21, 3,161,239, 15,162,168,160, 8,228,229, 66, 19, 60,180,252,200,252, 2,243,177,235,
+204,140,130,101,139,137, 59, 43, 28,245,215,221, 18, 62,242,186, 63,242,243,252,209,187, 57,249,128,192,186, 89,108,118,217, 88,
+175,120,108, 20, 55,204, 74,238,164,184,235, 77,149,249,126,115, 15, 37, 40, 14,182, 28,248, 21, 84, 33, 73, 86,202, 72, 5, 36,
+224,117,239, 78, 93,210,204, 76,136,148, 37,194, 67,243,236, 62,255, 0, 21,210,122,119,213, 20,245, 97, 33, 16, 97,100,120,196,
+254, 32,243, 28,185, 30,238, 11,167, 53,206,174,153,102,146, 74,131,245,151,249,132,246,127,209,174, 77,131,246,239, 38,109,119,
+142,233,103,183,120, 22, 91, 77,134, 19,200,109,214, 98, 75,152,136,142,220,100, 41, 65, 92, 25,108,170,137,218,174, 43,225, 78,
+193, 74, 78,223, 73,232, 86,231,194,201,199, 72, 87, 18, 73,239, 1,216,119,254, 30,229,129,214,125, 67, 79, 79,157,117,203,226,
+157,146, 0, 1,216, 75, 57,238, 31,121,246,178,127,230, 65,249,160, 91,191, 47,119,240, 8, 74,194, 37,230,183, 28,249, 87, 86,
+161, 71,183,206, 76, 71, 25,114,218,168, 72, 8, 8, 44, 62,167, 20,233,152, 2, 64, 0,212,120,215, 86,189, 61,233,195,213, 5,
+135,204, 16, 21,179,184,126, 47,222, 25,153, 84,245, 55,169,199, 72, 53, 15, 44,216,108,118, 98,220, 27,184,187,186,163, 7,231,
+209,222, 66, 42, 61, 44,102,148,254,252,239,255, 0,213,235,103,255, 0,210,232,255, 0,239, 43,251,191, 82,195,255, 0,247,188,
+143,254,202,223,191,244,174,254,237, 62,116,255, 0,115, 59,107, 98,207,229,219,158,180, 76,188,219,225,220,222,181, 75,175,159,
+ 13,201, 81,208,250,163,185,201, 40, 60,155, 42,226,106,145,184,232, 53,195,228, 84, 42,178, 80, 5,216,144,253,172,120,174,255,
+ 0, 26,227,109,113,153, 12,100, 1, 99,201,195,183,177, 48,232, 40,235, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154,
+ 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,
+146,205, 36,148, 75,158, 65, 97,178, 41, 9,188,205,143, 17, 78, 84,182, 37, 60,219, 69, 64,117,167, 50, 43, 74,234, 81,129,151,
+ 0,233,137,101,170, 46, 91,138,206,200, 31,196,161, 92,226, 61,149, 69,105,185,114,173,141, 72,101,114,217, 97,223,221,186,227,
+ 41, 81, 90, 80,175, 5, 17, 67,167, 53,200, 71,113, 5,187,121, 36,225,217, 16,212, 19,168, 25, 30, 87,139,225,240, 81,116,203,
+110, 81,109,118,215, 29,110, 43,114, 46, 50, 25,140,210,158,116,241,109,176,183,148,148,149, 40,236, 5,106,124, 53, 56, 87, 41,
+150,136, 36,247, 38, 36, 14, 42,126,160,157, 66,155,145,227,214,217,105,183,220,103,198,143, 61,116, 40, 97,247,218, 67,138, 10,
+ 52, 20, 74,136, 38,167,166,166, 33, 34, 28, 2,153,194,155,168, 39, 89,164,146,140,187,213,157,187,195,120,235,146,217, 78, 64,
+243, 46, 77,106, 9,117, 2, 66,227,178,180, 52,227,169,104,158,101, 9, 91,136, 74,148, 5, 1, 80, 7,168,212,182, 22,118,209,
+ 51,173,210,100,198,133, 29,114,230, 56,150,162,182, 10,220,117,213, 4,161, 41, 27,146, 84,173,128,211, 0,233,215,189, 50, 75,
+ 52,146, 89,164,146, 83,238, 15,119,177, 92, 6,209, 38,235,113,144,134,224,196, 81,110,109,194, 71, 52, 64,133,197, 60,214,169,
+ 50, 0, 41, 72, 74, 65, 36,117,240, 52,174,156, 7, 73,113,223,121,191, 53, 59, 98,175, 82, 48,142,193, 88,110,249,166, 82, 21,
+242,204,223,100,201,151,102,181,121,165, 92, 20,235, 49,162, 22,223,113,148, 26,145,200,130, 64,251,221, 9,219,167,162,157,187,
+172, 45,236,251,126,106,148,243, 3,180, 67,169,142,254,100, 12,219,108,145, 45, 95,201,228,223,175, 44, 71,100, 76,187,179,145,
+ 76,102, 43,239,134,135,152,182,126, 77,180, 5, 55,202,180, 62, 61,119,235,171, 21,244, 13,218,153,105,225,253,168,114,207,110,
+ 74,252,244,105,234,154,219,234,106,193,123,145, 18, 60,136,242,236,178, 25,142,234,100, 41, 15,160, 7,217,231, 68, 73,108, 36,
+ 57,197,105, 90,126, 36,133, 10,111, 94,186,202,207,192, 56,196,106,224,171, 84, 95,230, 14, 10,232,213, 4,117,229,247,216,138,
+194,228,201, 90, 91,140,218, 74,220,113,194, 18,148,165, 34,164,146,118, 0, 13, 70, 82, 17, 4,146,192, 41, 70, 38, 68, 0, 28,
+149,201,254,168,125,125,121, 78,191,219,158,193, 57,231, 92, 20, 85, 22, 86, 64,216,230, 2,143,192, 81, 12,111,200,255, 0,252,
+ 79,250,190,221,120,151,172,190,167, 23, 56,221, 60,188,142,134, 99, 95,100, 59,124,125,221,171,220,125, 25,244,191, 65,149,212,
+ 67, 68,106, 32,116,239,121,246,120,123,251, 23, 52,246,163, 31, 25,199,121,237, 22, 12,181, 75,117, 83,167,132, 79,249,146,162,
+226,215,200,169, 97,101, 91,213, 68, 80,215, 94, 87,233,156, 17,155,213,106,171, 33,206,233,252, 79,196,179,146, 15,137, 12, 87,
+171,250,163, 56,225,116,155,173,199, 97,182, 31, 11,112, 14,192, 17,224, 11,133,199,223,156,239,171,191, 81,110,250,203,201,187,
+ 11,110,188, 92,113,126,212, 97, 46, 49,105,178, 88,109, 82, 31,130,203,205,252,171,111,124,235,161,146,143, 49, 79, 21,114, 73,
+ 53, 1, 52, 3, 95,166,126,138,232,152,181, 96,194, 98, 49, 50,144,212,176,211,147, 14,198, 95,150,222,188,235,217,118,245, 11,
+ 43, 51,148, 99, 19,160,114, 31,155,158,210, 85,235,249, 38,122,135,239, 15,169,222,216,119, 63,211, 79,125,238, 50,242, 94,222,
+ 88,109, 41,200, 49,251,205,225,197,201,126,211, 49, 60,192,101, 50, 30,170,248, 43,143, 52,164,171,110, 42,166,196,235,206,254,
+181,122, 99, 10,236, 9, 19, 17, 19, 40,203,134,154,196, 56,151,136, 63,138,244,159,161,126,170,206,167,168, 68,110, 50, 17,148,
+ 89,245,210, 69,140,124, 8,224, 57, 50,232, 31, 74,185,213,202,205, 96,238, 30, 21,230, 40,217,174,120,197,226, 66,154,169,226,
+ 30, 98, 19,137, 10,167, 64, 74, 84, 65, 62,225,175,149,126,135,245, 25,195,168,203, 29,254, 25, 52,189,162, 64,125,224,253,193,
+125,111,245,215,167, 66,125, 52,100, 55,197, 23,143,178, 81, 39,238, 35,239, 43,141, 63, 39,175, 68,254,164, 61, 95,246,115, 34,
+103, 7,238,253,227,183, 29,171,181, 92,214,150,224, 99, 11, 91,110,202,185,185, 21,165, 56,252,133, 50,235, 36,161, 40, 8, 9,
+ 73, 38,187,211,143,143,220,158,174,235, 84, 96, 95, 23,162, 54, 76,199,140,185, 7, 58, 13, 15,122,248, 43,209,125, 11, 39,168,
+227,207,110, 68,170,172, 75,132,121,150, 26,157, 71,119,246, 40,249,247,171, 47, 85,125,188,237,215,168,191,203, 75,212,190, 82,
+238,117, 19, 31,182,190,171, 69,254, 98,212,252,150, 94,182, 93, 34, 40,143, 57,202,186, 90,121,149,242,226,226,137, 66,133, 1,
+220,232,180,244,204,107,108,197,206,162, 27, 55, 29, 71, 45, 65,251,193,236,226,133,127, 86,203,170,172,190,159,145, 63, 51,108,
+116,151, 61, 8,251,136,237,224,144, 17,235,155,189,152,231,167,174,201,122, 56,193,239,247,156, 87,180,203,128,229,227, 40,153,
+133,165,195,124,184, 25,183,233,192,180,207,148,164, 41, 73,109,150,193, 74, 2,128, 82,137,229, 90, 10, 92, 29, 22,153, 95,145,
+149, 40,198, 83,118,136,151,202, 26, 49,227,237, 84, 79, 94,190, 56,248,184,144,148,161, 94,215,145,143,204, 94, 82,225,224, 57,
+118,167,107,103,170,206,235,122, 89,239, 62, 35,220,111, 69,215,222,234, 95,177, 52,188, 27,204,241,206,230, 91,229,200,135, 41,
+130,226, 2,131, 97, 42,113, 7,154, 10,247,226, 20,130, 1, 7, 84,143, 78,175, 50,153,195, 40, 83, 25,127, 41,129, 0,143,183,
+222,175, 14,169,110, 13,245,217,134,111,148, 95,226,141,128,144, 71,219,220,175, 46,213,247, 83,243, 5,252,196, 61,108,247,159,
+210,197,163,188,119, 44, 67,177, 54, 11,205,216,147,106,141, 17,171,139, 16, 24,187,187, 26, 36, 56,207,178,134,158, 64,225,178,
+212, 87, 90, 36, 3, 93, 98,229,211,131,210,176,177,242, 60,129, 59, 39, 17,196,150,118, 4,147,196, 45,220, 59,250,135, 88,207,
+201,198,253,193,133, 80,145,224, 3,182,226, 0, 7, 67,227,170, 87,192, 61, 74,122,169,252,170,253,109,119, 79,211,214, 79,157,
+ 92,123,149,128, 88,177,105,249, 28, 22, 50, 89, 18, 95, 74,165, 34,214,139,148, 39, 56,186,227,138,109, 65,107,242,220,224,160,
+ 20,154,157,182,165,188,142,159,141,214,112,169,184, 86, 43,148,166, 34,118,246, 59, 31,226, 21, 60,110,165,149,208,243,175,162,
+ 86, 27, 97, 26,204,134,231,226,206, 60, 59, 11, 35,158,134,125, 56,250,254,252,205,176, 59,151,171,140,195,212, 54, 67,139, 94,
+ 37,206,148,213,138, 5,149,247,211, 13,151, 34,174,149, 84,118, 31,101,166,219, 11,248, 67,105, 71,221, 21, 39,125, 87,235,125,
+ 79, 11,164, 90, 49,161,141, 25, 0, 3,147,199, 94,246, 62,245,103,160,116,172,254,181, 81,203,179, 42,112, 36,157,160,112,211,
+185,192, 3,185,115,119,100,125, 79,250,129,244, 83,115,245, 55,220, 69, 92, 91,127,212,179,151, 54,113, 41,183,246, 80,203,173,
+183,120,151,121,150, 38,207,109, 60, 3,100,213,151, 74, 62, 26,114, 32,211,195, 93, 22,119, 77,163,168,156, 72, 55,244,182,153,
+ 55,112, 1,135,222, 23, 51,211,250,174, 71, 76, 25,179,119,183,112,137, 61,230, 69,207,220, 89,121,198,123,175,123,191,246, 53,
+ 93,203,149,220, 46,244, 63,234,241,246,156,185, 64,184, 91,154,156,245,129,114,124,194,182,153,243, 3,254, 97,109, 73, 0, 21,
+167,161, 53, 9, 32, 80,181,184,226, 57, 27, 60,188,113, 64, 44, 65,109,205,238,227,221,247,167,171, 36,207, 27,204,243, 50, 78,
+ 65, 14, 8, 7,107,242, 28,120,119,253,202,205,238,159,230,197,249,144,223,187,113,217, 27, 6, 49,145,205,196,187,183,119,114,
+227,139,223, 85, 38,221, 25,175,230,178,217,184, 69, 98, 28,199, 81, 54, 58,136,228,219,224, 44,160, 0, 84, 9,213, 12, 95, 77,
+116,232,217,145, 41, 68, 78, 17,105, 6, 60, 3, 18, 70,135,185,104,229,250,175,169,206,188,104,198, 70, 22, 73,226, 92, 13, 75,
+128, 14,163,189,125, 78,252,190,253, 44,119, 51,211, 87,102,174,184,151,121,179,153,221,197,201,178, 75,139,217, 21,194,233,124,
+230,181,161,217,112,163,198,118, 58, 3,206, 58,124,160, 88, 42, 0,159,218, 59, 13,121,151, 90,234,112,205,184, 78,186,197,113,
+136, 96, 7,113, 37,249,107,170,245,126,131,210,103,129, 73,133,150, 27,101, 41,110, 36,247,128, 27,158,154,125,234,220,193,251,
+ 87,219, 62,211, 98,172,226,248, 69,166, 29,151, 13,183,182,164,198,131, 9,150,163, 69,140,208, 37,197, 4, 33, 0, 37, 41,169,
+ 36,253,186,204,182,233,221, 51, 41,147, 41, 30,103, 82, 86,181, 52,215, 68, 4, 32, 4, 98, 56, 1,160, 11,229,143,229, 69, 29,
+190,253,126,110,189,240,245, 77,219, 6,252,174,204, 37,235,196, 40,178,227, 2,150,102, 42,233,118,109,200,235, 29, 1,243, 91,
+138,183,212, 60, 9, 77,122,141,122, 79,170,143,237,122, 86, 62, 52,255, 0,204,208,248, 48, 47,238,118, 94, 91,232,241,251,190,
+177,149,149, 95,249,122,135,237,121, 6,247,128, 74,250,231,175, 49, 94,176,169,191, 93, 30,181,187, 91,232, 71,176,243,251,203,
+220,119, 3,247, 19, 88, 56,237,137,165,132,200,187, 92,214,217, 83, 81,219, 52, 60, 82, 40, 84,226,200,162, 18, 9,220,208, 29,
+110,139,209,237,234, 87,138,161,226, 79, 96,237,254, 3,154,198,235,221,110,174,151,142,109,179,143, 0, 57,147,217,252, 79, 32,
+190, 44,247,183,183,126,166,238,126,165, 59, 27,235, 27,213,140,181,142,231,119,139, 45,106,227, 26,198,182,212,216,181, 90,173,
+151, 43, 95,201, 50,148, 41, 74, 45,164,183, 46,137,104,252, 72, 74, 71, 50, 86,165, 83,214,176,242,241,191,109,147,141,142, 62,
+ 10, 96,207,218, 72,147,248,240,227,207,150,140,188, 99, 55, 15, 43,247, 88,185,121, 71,227,190,199,219,253,216,131, 22,240,227,
+195,144,227,171,174,182,255, 0,230, 12,202,173,184, 47,117, 61, 43,102,247,164, 56,229,158,205,118,190, 93,101,183, 25, 33,111,
+ 41,152,147,172, 50, 28, 13,164,144, 10,138, 82,104, 42, 42,117,203,250, 14,147,109, 25,112, 28,101, 24,143,120,152, 93,119,212,
+ 75,133, 57, 24, 83, 60, 35, 41, 19,236, 48, 41,215, 8,255, 0,230, 10,244,177, 27, 54,133,132,119,135,183,153, 70, 21,100,150,
+164, 34, 61,238,239, 22, 58,210,219,107, 95, 16,252,136,232, 88,121, 45,143, 18,208,112,251,142,169, 89,232, 28,143, 44,202,171,
+ 33, 50, 57, 3,247, 3,195,222,202,253, 95, 81,177,188,193, 11,107,178,176,121,145,247,145,197,188, 29,125, 16,198, 47,120,246,
+ 75,143,195,200,177, 73, 44,204,198,231,178,220,200, 51, 33,173, 46,176,251, 15, 32, 56,219,141,173, 4,165, 73, 82, 72, 32,131,
+ 66, 53,195, 78, 6, 4,196,134, 35,138,244, 24, 76, 78, 34, 81, 46, 14,160,169,250,138,146,205, 36,150,105, 36,179, 73, 37,154,
+ 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75, 52,146, 89,164,
+146,205, 36,150,105, 36,179, 73, 37,243,203,243,157,237, 93,255, 0,184,221,243,237, 99,173,219, 39, 72,195,153,179,102, 17,110,
+ 55, 56, 56,204,220,161,168,111, 73,128,150,226,133,196,135,199,241, 22,247, 16,218,202,135,150,170, 57, 67,194,154,237, 61, 47,
+144, 43,166,221, 67,188, 88,110, 17,125,117,212,253,253,188, 57,172,236,216, 60,163,237,228,234,140,195,172,126,189,251,111,133,
+139,231,110,177, 28,147, 27,203, 19,138, 96,246, 28,149, 80, 33, 78, 93,213,155, 20, 59,132,246,228, 46, 42,148,203,142,166, 66,
+155, 76,119, 22,134,208, 92,101, 11, 34,128, 39, 90,214,207, 14,217, 52,231, 25, 13,211, 35, 80,206, 64,103,215,135, 30,226,171,
+196, 89, 17,160, 35, 64,157,251,111,115,252,193, 59,157,113,187,225,151,188,243, 62,135,133, 90, 49,124,170,253, 98,189, 64,182,
+ 92,237,146, 39, 75,183,150,223,183, 68,122, 69,226, 3, 79,200, 81,113,197,182, 84,148, 33,110, 4,241, 77, 41,170,183,199, 10,
+160, 36, 33, 89, 38, 81, 4, 56, 44, 15, 18,192,176,252,145, 34,108,150,142,120, 20, 3, 55,200,189, 92,247,162,219,101,133,223,
+166,179,249,153,171,115,123,103, 62,197, 99,143,100,156,222, 54,236, 20, 69,140,245,218,124,239, 34, 55, 15,153, 76,206,124,202,
+212,146,149, 18, 0,166,201, 53, 80,198,160,147, 87,150, 3, 88,229,198,231,213,128,215,131, 40,200,206, 95, 51,242,240, 81,178,
+ 14,239,254,106,214,102,178, 59,157,214,235,153,196,238,185, 23,134,175,120,244,123, 29,230, 84, 22,120, 63,230,194,145,107,113,
+168, 63, 32,195, 67,138, 16,149, 54,242,203,129, 84,167,197,187,195, 27,167, 75,104, 2, 6, 58, 49,112, 15,120, 58,185, 62,205,
+ 19, 25,219,175, 23, 93, 35,143,122, 89,239,139,189,226,207, 50, 87,110,141,101,249,188, 12, 71, 20,185, 91, 47, 29,200,197,237,
+247,105, 19,238,107,118,247, 44, 66,133, 36,152,140, 69, 44,175,203, 66,184, 54,170, 5, 32,168,108, 43,137, 62,161, 87,149, 0,
+219, 98,103, 32, 68,100, 67, 15,132, 57, 26,146,255, 0,197, 90, 21, 75,113,230, 88,113, 30, 43, 71,111, 59,193,223, 28, 27,187,
+216, 46, 72, 38,247, 6,237,233,225,166,237,237,247, 37,204,150,195,124,149, 37,140,138, 77,130,246,137, 17,218,141,242, 66, 81,
+104, 76, 16,249,134, 27, 83, 13,185,192, 36,142, 68, 23,191, 26,171, 42,152,106,197,154,237, 98, 62, 87,142,174,236,236,252,117,
+ 33,211, 70,114, 4,113,110,126, 44, 86,156, 63, 32,245,109,148,224,211,179,219,213,223, 47,137,147,227,214,126,222, 93, 44,208,
+ 3,114,163,183, 46,117,203, 41,184, 49,119, 76,184,171,102,178, 8,134,211, 65,198,214, 8, 66, 72, 36, 3, 66, 30,216, 99, 66,
+ 98, 32, 65,164,102, 15,112, 17, 12,199,150,174,197, 40,153,144,250,232,223,138, 77, 86, 81,223, 84,229, 86,108,250,237, 23, 54,
+159,221,249, 24,141,206,199,220, 9,242, 99,100,208, 98, 99,215, 41,121,189,139,230, 5,189,112,161,172,252,187, 76,178,226,138,
+ 32, 5, 41,108,128,174, 66,188,245,107,203,167,105,136, 48, 16,222, 12,126, 82,100, 4, 36,206,231,139,255, 0,123,129,247, 40,
+ 60,157,245,118,215,142,154,143,182,136, 62, 77,110,239,182, 77,137,100,217, 78,118,114,203,221,237, 88, 94,123,139,226,139,145,
+ 98,189,169,139,154,162,222, 83, 50, 4,105,177, 39,198,117,242, 23, 25,194,180, 38,105,171,129,180,133, 21, 20,144, 73, 92,169,
+140,163, 24,236, 3,124, 9,212,105,163, 18, 8, 45,199,179,131,168,145, 34, 9, 47,192,171, 3, 60,204, 61, 92, 56,219,204, 98,
+183, 60,225,142,236,189,114,188,196,238, 20, 83, 2,106,109, 54,171,114,178,102,152,180, 57,102,117,216,198, 39, 35, 21, 73,242,
+213, 25,110, 21,181,230, 41,218,144, 72,167, 77, 88,223,204, 33,181,134,221, 67,147,183, 93,218,191, 30,214,213,153, 18, 82,159,
+ 39,126,126,253, 25,116,247,165, 72,249,221,153,238,227, 97,185,140,203,173,194,201, 98,203,164, 91,177,121,153, 35,143,200,148,
+237,165,203, 21,178,112,227, 38, 64,230,243, 98, 83,239,165, 42,169,165, 10,107,240,208, 96,117, 19, 9,121,114,136, 0,152, 57,
+110,215, 35,135, 45, 0, 86,170,112,224,246,167,126,232,228,179, 49,124, 69,233,150,214, 36, 74,185,186,164, 50,212,123,115, 97,
+217, 75, 73, 85, 94, 44,160,169, 32,173, 45, 5,168, 84,210,163, 89,200,201, 11,183, 88,219,157,221,201,102,228,153,132, 36,198,
+194, 44, 50, 36,217,108,120,203,233, 74,208,215,225,121,111,201,146,146, 84,135, 30,121, 14, 40, 87,112, 27, 85, 1, 37,107,169,
+223,103, 14, 42, 44,233,197,188, 75,182,189,162,198,213,111,194,172, 16, 32, 38, 64,249, 88,208, 45,241, 99,177,243, 46, 44,113,
+ 74, 21,196, 10,131,227, 95, 13, 70,203,167, 97,121, 18,124, 82,140, 4,120, 6, 92, 5,234, 15,178, 94,153,109, 93,213,184,183,
+105,181, 73,184, 92,144,180,155,139, 81,230,165,155, 67, 87, 0, 74,159, 76, 72,233,105, 95, 0, 81,166,197, 59,131,174,171, 0,
+218,107, 27,136,246,241,252, 86,101,226, 59,139, 43,175,242,233,238, 62, 27,139,101, 83,187, 23,140,218, 88,180,192,184, 52,237,
+241,166, 98, 41,229, 36, 62,200, 67, 74,175,154,165,144, 92, 64, 36, 1, 65,240, 18, 5,107, 92,238,177,143, 45, 38,239,249, 35,
+226, 76,112,101,216, 26,193, 87,149, 23,235,191, 10,239, 78,121,219,203,125,143,181, 28,222,180,173,247, 5,246, 20,119, 3,110,
+190,217, 74, 75, 53, 36,128, 91, 74,130,185, 38,187,154,123, 53,231, 95, 81,250, 87, 81,234, 24,176,175, 15, 80, 73,222, 1, 98,
+ 70,141,197,180, 26,184,240, 94,143,244,219,170,244,222,159,149, 59,115, 52,144, 3, 97, 33,192, 58,191, 7,212,232,199,197, 46,
+122, 86,244, 67,110,193, 67, 57,167,113,144,153, 89, 86,203,105,146, 42,220,122,142,137, 7,169,246,171,236,208,189, 21,244,246,
+158,144, 5,215, 52,239,251,163,225,223,223,238, 70,245,191,212, 75,186,185, 52,208,240,163,239,151,143,119,119,189, 80,126,172,
+251, 83,145,246, 3,190,239,100, 86, 48,182, 44,147,228,170,245, 99,154,132,252, 40,112,185,230,173,160,119, 28,155, 89,233,236,
+167,183, 94, 67,235,142,141,127, 67,234,134,250,220, 70, 82,223, 9,118, 23,114, 60, 65,251,153,123, 7,161,122,205, 29,119,165,
+ 10, 44, 99, 40, 71,100,227,218, 25,129,240, 35,239,116, 59,189,182, 95,203,243,215, 90, 96,100,158,176, 49, 41,112,187,185,111,
+142,220, 21,100,120,242,222,105,114, 89,107,116,165,102, 58,210,162, 1, 38,129,105, 87, 26,236,117,236,158,146,255, 0,250, 3,
+246,116,236,183,117,114,230,195,116, 73,237, 28,199,219, 85,226,190,176,255, 0,249,220,103, 93,190,177, 27, 7, 34, 73,140,128,
+236, 60,139,125,130,131, 3, 34,244,225,233,223,181, 23, 14,197,250, 50,198, 92,176,226,247,131, 75,229,238,113, 42,157, 57, 28,
+120, 20,149, 45,110, 56,121, 39,225, 37,106,216, 84, 0, 43,174, 55,234, 39,214, 75,186,245,114,166,173,205, 32,198, 69,134,156,
+196, 64,224, 15, 51,197,118,191, 77,254,139, 83,233,249,198,235, 4, 94, 37,196, 98,231,226,228,101, 35,196,142, 67,130,181,125,
+ 17,122,119,188,230,152,174, 79,145,206, 63, 39, 26,245,108,155, 97,183, 72,113, 5, 92, 68,166, 20,210,158,227, 81, 84,242, 34,
+148, 59,208,235, 67,232,215, 67,158, 43,231,216, 62,102, 17, 28,200, 4, 18,124, 9, 0, 15, 2,168,125,105,235,176,203, 3,167,
+214,126, 87, 50, 60,129, 32,128, 60, 64, 36,159, 16,169, 14,197,254, 75, 63,152, 39,163,187, 61,197, 62,148,251,244,205,150,227,
+119, 93, 46,177, 28,182, 17, 9,244, 33, 60, 90,117, 40,116,200, 9,117, 53, 80,228, 19, 90, 83,125,125, 89,157,235, 12, 44,249,
+ 3,145,141,184, 14, 26,235,249,104,190, 71,192,244, 70,127, 78,137, 24,217, 91, 76,184,141,186,126,122,163,157,188,252,132,114,
+ 38, 59, 83,220,233, 29,211,207, 77,251,212,199,114,163, 42, 36,188,186,116,119, 30, 68,111, 58,115,115,228,171,130,221,243, 28,
+ 91,206, 55,241, 45, 74, 7,165, 0,222,160,191,214,251,174,171,101,123,106,168,184,136, 60,116, 97,203, 70,236, 86, 49,253, 3,
+182,139,188,203,119, 93,104, 99, 34, 56,106, 9,230,229,200,212,175, 87,223,200, 50,241,255, 0,130,221,183, 95,111,179,180,227,
+222,170,123,104,151,163, 65,203, 98,196, 95,202,207,142,110, 79,220,163,165,214, 11,133, 72, 83, 43,125, 65, 42, 4,212, 18, 8,
+ 34,148,106,253,109,253,107,188,202,247, 83,111, 24,191, 13, 0, 58,183, 54, 74,223, 64,255, 0, 70,159, 46,221,183, 85,160,144,
+ 26, 29, 73, 26, 63, 39, 86, 15, 96,253, 5,254, 99,140,119,242,197,221,207, 83, 61,242, 85,207, 30,176,161, 81,198, 59,141, 66,
+102, 28, 27,131, 42, 33, 74, 68,182,203, 72,105, 65, 74, 72,228,124,162,186, 15,133, 73,235,172,236,238,179,128,104,149, 84, 99,
+ 8,153,127, 52,139,145,225,207,239,110,229,167,211,250, 23, 81, 25, 17,183, 35, 40,200, 71,249, 98, 24, 31, 30, 95,115,247,132,
+229,232,223,242,217,201,189, 44,250,207,238,199,169,185,217, 35, 23,107, 39,114, 39, 78,185,199,182, 51, 17,113,215, 4, 76,185,
+187,112, 13,169,106,113, 97,124, 67,156,106, 0,173, 43,170,253, 95,175,140,220, 90,104, 16,111, 40, 0,239,197,128, 10,207, 69,
+244,217,192,204,191, 32,207,119,154, 73,102,102,114, 79,110,168, 23,119,255, 0, 41, 81,222, 47,204, 46,245,234,235, 48,190,199,
+153,218,252,142,202,238, 47,117,196,204,103, 16,250,163,191,103, 22,151, 8,146, 28,160, 52,170,133, 17,182,143, 71,170, 13, 56,
+ 17,198,132, 90, 81,144,144,147,246, 23,224,129,145,233, 33,127, 81,150, 84,228, 12, 37, 19, 19, 22,228, 98,220, 93, 83,253,186,
+252,159,127, 48,175, 74, 50,238,248, 7,163,206,254,155, 15, 98,239, 18, 87, 37,113, 37,193, 14, 76, 96, 57,240, 21,160, 20,173,
+176,239, 0, 1, 91,101,186,144, 13, 6,218,214,201,245,102, 14, 99, 79, 39, 27,117,128,113, 7, 67,253,158,245,141,139,232,222,
+161,130,240,197,202,219, 81, 60, 8,212,127,111,120,101, 35,211,255, 0,255, 0, 47,196, 76, 43, 29,238,119,111,251,207,154, 43,
+ 35,197, 59,129, 17,134,163, 78, 98, 41,102,227, 2,116, 73,106,152,196,210,183, 92,117, 43,112, 45, 95, 22,223, 21, 72,232,117,
+ 12,239, 93, 74,217,211, 58,235,218,107, 39,155,130, 8, 98, 57,104,137,211,254,158,194,152, 93, 93,182,111,141,160,106,204, 65,
+ 5,193,226,117, 80, 44,223,149,111,230, 85,217,254,217, 35,177, 24,175,168,152,182, 95, 78,144, 20, 11, 51,154,131,242,183, 56,
+145,131,222,104,109,185, 68,135, 27, 79, 46,128, 72, 3,195,166,218,149,158,165,233,247,219,231, 75, 23,117,167,189,193, 62, 31,
+216,161, 95,165,122,158, 61, 94, 76,115, 54,210, 59,152,129,227,203,222,172,255, 0, 86, 31,148,119,113,189, 72,102, 29,150,206,
+ 95,207,195,215,190,215, 33,132, 92,229,221,224,165,217,151,167, 26,158,204,213, 60,227,145,150,211,104, 82,188,162, 62,225,235,
+227,172,238,151,234,136, 98, 87,124, 5, 95,230,187, 49, 97, 29, 8,230,253,171, 83,171,250, 74,121,182,227,216,109,214,150,114,
+ 67,153, 49, 7,147,118, 46,234,183,176,184,208, 89,142,191,190,132, 37, 38,158,208, 41,174, 61,118,203,231,255, 0,231,131,235,
+111, 40,197,241,187,103,160, 15, 78, 37,115,253, 69,247, 64, 55,110,185,181, 1, 85,126, 13,154, 98,254, 95,201,168,160, 67,147,
+ 13, 81, 82,126, 22,130,212,105, 84,171, 93,215,163,186, 60, 37, 35,153,126,149, 85,168,126,100,127, 15,197,151,158,250,227,173,
+206, 49,142, 14, 62,182,219,161,110, 81, 58,127,241,125,193,251,151, 65,126, 91,222,139,113,127, 69, 62,156,173, 29,179,181, 4,
+189,146, 41, 63, 63,127,185, 4,241, 84,219,155,232, 79,158,246,251,132,138, 4, 32,120, 33, 34,181, 53, 39,157,235,189, 94,125,
+ 71, 38, 86,203,135, 0, 59, 7, 33,249,158,245,211,250,127,162,195,165,226,198,152,234,120,200,246,200,241, 63,144,238, 93, 8,
+163,196, 21, 30,131,125, 99,173,181,240,243,185,189,236,245,111,223,255, 0, 92,173,122,166,245, 59,233,203,184, 25, 47,111,177,
+133, 41, 24, 7,111,155,178,222,162,194,182, 37, 14,133,180,236,146,236, 23, 67,174,213, 33,199, 40,144, 22,224, 77,126, 4, 37,
+ 26,246, 10,177, 49, 49,176,191,111, 70, 85, 80,148,190,121,238,137, 39,184,106, 27,176,118, 14,242,235,196,110,204,205,202,207,
+ 25, 57, 24,118,206, 16,249, 33,182, 64, 14,194,126, 18,231,153,237, 61,193,144,223,204,175,215, 55,116,189, 65,119,115,176,249,
+ 22, 83,216,236,155,183,179,176,139,196,201,246,171, 78, 64,212,196, 72,200, 93,122,117,173,227, 30, 16,126, 19, 4,173, 38, 50,
+ 80,120,165,102,174, 39,110,149, 47,167, 58, 37, 56,180,100, 70, 25, 16,176, 78, 32, 18, 25,163,164,181, 58,158,222,238, 5, 11,
+213, 29,122,252,188,140,105, 79, 26,117,152, 72,144, 36, 11,203, 88,232, 30, 35,179,191,136, 95, 89,251, 18,222, 27,235, 3,180,
+248, 47,125,251,199,219,143,242,247,114,173,137,151, 46,213,106,202,161,165,203,189,133,231, 30, 84, 87, 60,181,202,101,167, 90,
+ 83,168,101, 11, 52, 74,106, 56,245,160, 58,242,220,193, 44, 59, 44,166,187,119, 64,176, 38, 39, 73,115,228, 72, 44,235,215,112,
+140,115,171,174,251,105,219, 48,228, 9, 15,138, 60,185,128, 67,183,224,169,159,207, 83,179, 29,179,201,127, 46, 12,207, 44,190,
+194, 97, 57, 14, 44,187, 93,210,197,112,113, 40, 14,198,146,237,218, 52, 21, 37,181,171,113,230,182,242,155, 34,187,212,120,129,
+173,175, 68,228, 78,190,163, 92, 98,116,147,130, 59, 67, 19,247, 51,172, 47, 94,226,215,111, 76,178, 82, 1,224,196, 30,194,224,
+125,224,178, 7,249, 73,250,173,193,251,119,232, 23,177,248, 79,119, 46,197, 61,192,203,100, 77,198, 49,155, 98, 65,118, 83,205,
+ 49,121,153, 30, 59,133, 21,170, 24,110, 59, 72, 5,197, 81, 35,100,141,200, 4,190,167,233,179,183, 63, 34, 85,143,134, 13, 34,
+121,107, 16, 79,180,147,193, 11,210,125, 86, 21,116,236, 88, 91, 47,142,111, 24,142,122, 74, 64,123, 0, 28, 87, 92, 98,254,161,
+ 59,115,155,119,118,253,217,124, 69,215,238, 25, 54, 46,211, 11,200,102, 71, 97, 70,223, 2, 76,148,165,214, 96,185, 36,209, 42,
+146,166,150, 29, 45,163,151, 20,238,190, 36,164, 30, 98,220, 43, 43,170, 54,201,128,151, 14,210, 7, 54,236,125, 31,220,186,186,
+179,235,182,233, 85, 23, 38, 31, 49,228, 9,228,253,173,171,114, 28, 81, 94,226,119, 79, 21,237,130,172, 45,100,223, 50,169, 25,
+ 45,222, 30, 45,105,102, 4, 71,229,184,228,233,169,113,196,115, 76,116,168,161,164, 54,210,220,113,197, 81, 40, 66, 74,148, 64,
+ 4,234, 24,248,210,187,118,214,248, 98,100, 92,182,131,243,228, 7, 50,137,147,151, 10, 54,238,127,138, 66, 33,131,234,127, 45,
+ 28,158, 65, 87, 16,125,122,118, 70,255, 0,101,179, 93,112,120, 57, 22, 73, 58,245,106,107, 43,110,211,143,227,151, 89,151, 24,
+150,105, 14, 45,184,243,102, 71, 67, 65, 76,162, 65,109,101,132,171,227,124, 2, 90, 74,192, 36,104, 75,162, 93, 19, 33, 51, 24,
+177,218,230, 64, 2,121,128,121,183, 62, 67,155, 44,216,245,250, 39, 24,152, 9,200,202, 59,152, 68,146, 34,120, 18, 27, 71,229,
+204,242, 5, 92, 81,238,214,233, 43,101,148, 58, 19, 46, 67, 66, 75, 81,222, 5,167,203,123,124, 69,151, 66, 92, 20,168, 4, 20,
+130, 14,199,125,100,152,144,182, 68,193,246,173,127,230, 44,127,130,220,249,232,254, 91,126, 80,113, 94,115,116, 73,124, 5, 53,
+200,215,110, 96,130,159,111,134,159,203,151, 97, 77,230, 71,180, 45,203,185, 91,154,152, 45,206,200,109, 55, 2,130,248, 97, 75,
+ 72,112,182, 13, 10,248,147, 94, 32,248,244,212,118,150,116,251,131,179,234,180, 55,146, 99,175, 41, 40,106,124,101, 45,106,105,
+180, 4,190,209, 42, 83,232,243, 90, 72,161,220,173, 31, 18, 71,136,220,106, 94, 92,187, 10, 97,108,123, 66, 64,201,125, 88,246,
+167, 19,238,155,157,159,188, 55,116, 25,123, 87, 60,127, 31, 90,154,181, 77,118, 47,204,100,241,229,200,183,184, 36, 33, 5,178,
+201,249, 39, 80,227,128,241,109,116, 10,165, 70,175, 87,210,237,157, 94, 96,109,173, 35,196, 63,194,207,167,110,161,135, 49,193,
+103,219,213,234,174,223, 40,238,220,241, 28, 11, 60,129,109,123, 52, 32,158, 71,138,179, 53,156,180,214,105, 36,179, 73, 37,154,
+ 73, 44,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 74,188,245, 11,234,
+ 63, 19,244,221,107,181, 95,115,104, 82,228, 88,174,142, 92, 98,166, 84, 20,182,176,212,136, 22, 73,119,180, 52,164,169, 73, 81,
+ 83,232,134,182,154, 9, 6,174, 20,143, 29, 93,194,193,150, 73, 34, 36, 56,111,188,129,247, 59,158,228, 59, 45, 16,226,170,137,
+255, 0,154,111, 99, 45,246, 73, 57, 43,150,123,203,150, 22, 97,137,209,222,102, 51, 78, 57, 41,244,198,177, 74,126, 27, 76,161,
+101,210,251, 9,191,181,230, 32,164,113, 45, 59,253, 77,244, 71,167,238, 36, 7, 14,255, 0,171, 95, 3,180,183,136, 65,253,220,
+126,222,207,226,167, 73,252,203,187, 49,111,190, 34,217,115,181,221, 26,180,204,186, 53,102,179,221, 80,136,239, 69,184, 50,114,
+ 11,141,130, 76,230, 75, 78, 21,124,188,115,108,118, 67,138,165,124,146, 20, 7, 80, 32, 58, 21,164, 56, 33,192,114, 59, 62, 16,
+ 64,241, 46, 7,138,127,221, 71,237,226,202,118, 77,234,231, 49,188, 89,187, 51,155,118,123, 28,114,231,103,238,101,198,123, 31,
+201,102, 57, 22, 60,199,160, 53,142,220, 46,177,157,106, 67,174,134, 27, 10, 49,155,120,146, 85, 86,234, 0, 42, 32,106, 21,244,
+216,196,221, 27, 36,198,176, 53,228,251,128, 58,113,230,222, 41,205,199,225, 32,113,254, 10,171,176,126,110,118, 31,230,153, 18,
+239,152,236,149,182,153,171, 69,142,208,227,176,173,239,197,141,108,198,237,115,174,172, 73,149, 41,239, 37,233, 41,184, 78, 45,
+ 52,134,190,248,161,216, 10,157, 25,250,108,180, 90, 67,134,167, 83,198, 82, 1,135, 16, 24, 57,116, 33,152, 53,211,236,193, 57,
+ 55,249,159,225,107,199,218,206,156,194,111,141,246,234,227, 42,253,101,199,238, 43,118,216, 36, 92,174,150, 39,254, 95,229,147,
+ 19,207,243, 26, 15,174,169,109, 78,241,162,129, 10, 9, 20, 81,171,254,129, 61,219,119,199,112, 0,145,174,128,243,118,213,187,
+148,255, 0,116, 56,177,100, 2,249,249,157, 94,187, 83,220, 92,215, 7,239, 46, 30,228,107,245,150,106,156,183,217, 33,220, 45,
+129,230, 45,145, 49,219, 77,206, 66, 85, 41,215,210,212,169, 78,189,113, 5,150,154, 2,169,216,144, 83, 82,104,116, 17,116, 33,
+ 42,231,161, 26,150, 60, 76,164, 56, 54,128, 54,164,168,156,173,164,130, 62,204, 21,141,108,245,221,101,190,246,242,243,220,235,
+ 30, 25,121,123, 20,135,125,255, 0, 35,216, 30,117,219, 83, 74,191, 94,220,200, 6, 56,203, 17,155, 50, 75,173, 33,114, 20,146,
+ 87, 33, 8,226,154,236,104, 43, 74, 93, 32,198, 98, 6, 97,204,119, 30, 58, 13,187,181,211,179,177,209, 6, 67,135,110,109,247,
+178, 94,151,249,149, 89, 96, 93,178,140,102, 87,111,111,202,202,112,150, 26,119, 43,140,196,139, 42,154,133, 34, 77,210, 69,162,
+ 44,100, 56,228,180, 23,149, 33,230, 80, 91, 40, 73, 79, 23, 1, 89, 69, 8,209,135, 66, 36, 68,249,145,105,240,227,174,128,147,
+195, 70, 28,124, 20,127,117,199, 67,162,182,251, 33,222,249,189,218,185,229,120,197,255, 0, 30,145,141,102,152,117,194, 53,154,
+241,111,149, 38, 44,196,121,178,237,113,239, 12,173,167,226, 41, 73, 82, 75, 18,155,175, 66, 13, 71,134,179,114,241, 5, 34, 50,
+ 18,220, 36, 28, 29, 71, 2, 71, 62,240,141, 93,155,159, 70,101, 15,212,150, 96,238, 21,103,133,115, 73, 92,102, 31, 76,136, 43,
+185, 2,176,220, 98,234,153, 85, 20,164,236,146,176,130,144,163, 74,110, 1,169,212, 49, 34, 37, 61, 83,216, 88, 42,107,181, 61,
+235, 70, 45,100,157,148,228, 83, 46, 45, 99,247,233, 6, 85,138, 5,171,229,208,227,241,155,108, 48,101,190,185, 73, 43, 72,121,
+ 73,170, 56, 83,110,181, 53,165,235, 48,205,242,120,232,130, 45,216, 53, 90,115,223, 80, 70,251,103,144,206, 4,101,217,242,159,
+ 37,104,137,118,186,220, 28,152, 67,138, 79, 14, 60, 93, 10, 8, 43, 73, 40,170, 72,251,213,251,193, 36, 56,233,222, 83, 72,252,
+ 77,201, 49,191,118,131, 69,207, 22,222,221,119,143, 32,201,158,195,236,184,164,227,146, 69, 89,102,115, 15, 39,145, 97,193,178,
+129,249,127, 50,180, 62, 42, 41, 7,173,117,190,114, 96, 34, 36, 72, 0,170, 62, 89,118, 93,121,232,127,210,221,239,179, 48,110,
+ 25,223,113,144, 7,113,110,164,178,150,127, 12,252,180, 96, 65,160,242,202,128, 42,160, 20,169,160, 27,238, 78,185,238,165,154,
+ 45,104,196,233,249,171,216,244,237,212,241, 93, 3,172,149,105,101, 43,177,233,164,146,205, 36,144, 30,227,118,207, 11,238,182,
+ 54,238, 41,156,193,110,109,165,221,192, 88,162,219, 85, 40, 22,218,197, 20,149, 15,104, 53,214,127, 83,233, 88,253, 66,163, 85,
+240, 19,137,237,252, 65,226, 15,120, 90, 29, 47,170,228,116,235,133,212, 76,194, 99,152,252, 8,224, 71,113, 92,211,150,254, 87,
+246,199,231, 41,236, 51, 35,114, 52, 5, 18, 82,204,198, 18,250,146, 61,129,105, 91,127,164,107,202,115,126,141, 99, 78, 79, 77,
+242,128,236, 49, 18,251,222, 43,214,176,190,180,100,215, 22,186,136,204,246,137, 24,253,205, 36, 87,182,255, 0,150,206, 33,143,
+220, 90,184,230,247, 5,221,139, 74, 11, 12,113, 13, 50,162, 13,126, 36, 2, 73,250, 9,166,180,186, 55,210,108, 12, 73,137,221,
+ 35,113, 28,142,145,246,128,239,237, 44,178,250,215,213,204,252,184, 24, 83, 17, 72, 60,198,178,246, 18,205,236, 14,186, 74,193,
+143, 90,113,155, 99,118,139, 51, 41, 98, 11, 73, 8, 66, 16, 0, 20, 2,131, 97,175, 82,132, 4, 0, 0, 48, 11,202,231, 51, 50,
+ 73, 46, 74,155,169, 40,172,210, 73,102,146, 75, 52,146, 89,164,146,205, 36,149, 5,234,219,182,126,168,114,174,228, 98, 19,251,
+ 9,144,202,182,118,254,236,164,227,189,193,101,153,166, 58,224, 91, 89,156,205,225, 55, 27,120,168, 41,148,227,113,223,183,169,
+ 72,170,169, 37, 43,232,213, 70,215, 77,201,198,174,185,249,177, 6, 67, 88,105,196,177, 12,123,181, 18,255, 0,194, 71, 53,133,
+213,113,114,172,182,191, 38,100, 64,233, 61, 89,131,137,110, 29,229,140,116,254,240, 60,151, 57, 79,236,247,230,163,117,186,230,
+ 76, 92,242, 91,251, 50,230, 92,225, 54,217,182, 76,182,198,129, 46,220,238,115, 2, 90,164, 90, 37,255, 0, 56, 83,209, 12, 91,
+ 27,111,182,182,204, 8,254, 96, 81, 73,243, 92,162,149,184, 51,122,108, 68, 26, 17,208, 30, 32,146, 15,151, 32,210, 27, 24,188,
+216,131,186, 77,220, 23, 62,112, 58,172,141,143, 57,107, 33,192,128, 8,243, 34, 94, 39,123,134,131,130, 54, 69,251,207, 19,221,
+244,236,135,173, 43,158, 65,220,126,223,224, 76,228,215,190,218, 92,108, 48, 99,227, 55, 28,131, 34,134,150,218,159, 1,235, 99,
+173,199,132,133, 92,157, 83,233,119,200,125, 79, 59, 54, 51, 14,215,154, 75,175, 33,192, 18, 12, 44,236, 72,198,169,207,100,102,
+ 36,119, 1, 19,192,238,212,252, 58, 51,134, 17, 36,112,210, 36,106,124,254,159,155, 41, 93, 10,196,229, 3, 17,180,153, 14, 35,
+110,131,226, 46,236, 92,200, 68,241,214, 64,233,179,188, 24, 55,230, 75, 55, 54,207,215,219,169, 23,180,203,155, 11, 52, 77,150,
+226,213,238,214,205,141,232, 18,177,119, 99, 99, 48,109,112,213, 33, 15,197,185, 49,116, 44,184,236,135, 90,109, 63, 10,207,156,
+164,168, 37, 45,137,145,211,196, 43,222, 35,161,131,141,167,115,137, 13,230, 69,152,196,197,192, 0,158, 90, 41,102,227,117, 41,
+ 89,111,150,101,168,177,142,225,181,140, 8,128,136,119, 18, 18, 98, 73, 0,113,248,139,171, 95,211,213,183,213,119,102, 49, 78,
+232, 51,149,195,187,102,191, 34,236,123,159,109,237,247,187,196, 25, 19,174, 69,120,196, 39,101, 68,249,233, 47, 15, 41, 6,239,
+243, 8, 73,144,160, 16, 55, 77, 81,198,185,185,182, 99,100, 78,173,164, 65,193, 19, 32, 22, 31, 17, 98,192,107,240,183, 14, 62,
+ 43, 83, 2,188,172,104, 93,184, 74,108, 65,128, 50, 4,159,130, 46, 28,157, 62, 55, 26,240,229,163, 47,153,152,119,165,223,206,
+187, 9,245, 97,123,245,149, 47,181,144, 47,189,243,188,185, 41,213,203,200, 46,120,244,182, 33,153, 52, 65, 17, 91,110,234,216,
+ 64, 67, 32, 50,141,207, 22,254, 17,175, 68,200,234,189, 22,220, 88,226,249,198, 53,197,180, 2, 65,219,183,225,237,212,247,175,
+ 51,197,233, 29,122,156,201,101,249, 17,149,146,125,101, 40, 22,126,207,140, 54,154, 14,237, 23, 76,224, 93,250,255, 0,230, 20,
+190,229, 48,113,236,191,183, 88,197,143, 22,150,179, 22, 85,221, 6,208,231,200,161,196, 20, 9, 28, 25,187, 72, 90,131,106, 33,
+ 68, 37,165,147, 79,186,122,107,157,191, 27,160, 66, 4,194,217,200,142, 3,226,215,187,229, 31,136, 93, 54, 62, 95,169, 39, 49,
+ 25,213, 8,196,241, 47, 29, 59,254,115,195,192,167, 47,201,227, 6,252,207, 48,108,175, 58, 71,174,187,165,206,110, 41, 45,214,
+ 77,154, 62, 75,116,106,237, 36, 77, 75,139, 50, 29,136,227,110,189,229, 70, 40, 41, 1, 1, 65, 53,167, 20,141,235, 83,213,153,
+ 61, 54,209, 95,237, 0, 4,113, 96,193,185, 63, 7, 63, 98, 85,207, 70,226,245, 74, 77,191,189,145, 32,157, 28,238, 47,204,141,
+ 75, 14,239,112, 93,228,187,101,189,197, 21,184,202, 74,143, 82, 70,184,197,221, 46, 20,252,223, 61, 30,119,239,212, 79,125, 61,
+ 59,102,157,141,198,191,156, 98,248, 69,246,117,199, 43,146,220,203,116, 79,146,142,245,194,206,251,107, 40,154,251, 75,114,168,
+138,233,163, 73, 81, 28,122, 84,138,246, 94,151,234,216,248,152,249, 80,182, 76,108,136, 17,208,151, 45, 46,192, 91,136,226,184,
+111, 87,116,124,156,220,156, 73,211, 29,209,174,100,203, 80, 24, 60, 15, 50, 31,129,224,234,192,252,193, 99,126,100,184,204, 76,
+ 27, 58,252,191, 19,107,152,205,144,206, 57, 94, 47,116, 83, 9, 93,223,230, 18,210, 99,164,137,106,101,162,219, 97, 43, 39,139,
+237,185, 82, 40, 72,168,213, 14,128,122,113, 19,134,102,225,185,182,200,114,226,252, 28,235,224, 66,209,245, 24,234, 96,215, 60,
+ 29,167,107,238,137,111,137,217,184,176, 97,175, 48, 87, 34,247,251, 6,252,232,127, 52, 27,109,171,177, 29,238,195,172,253,173,
+236, 91,115, 88,157,123,145, 17,198,201,148,227, 6,169, 83,141,137,146,228, 59,229,130, 84,219,105, 8, 65, 93, 10,149, 80, 10,
+122,172, 44,190,143,209,137,182,153,202,219, 25,135,119,220, 0,239, 58,150,224, 23, 33,159,133,215, 58,224,141, 55, 66, 52,212,
+238, 75,241,251,201, 61,195, 64,252, 79,103,101,100,126,141,229,118,231,180, 61,145,237, 87,103, 45,134, 85,147, 1,202, 44, 51,
+110, 46,169,216,237, 60,221,174,221,110,154,195,178, 92, 46,169, 5,197, 23, 95, 10, 82, 81, 85, 21, 44,144,154, 87, 92,133, 93,
+ 83,205,179, 34,203, 78,182, 66, 77,226, 72,211,220, 62,229,218,221,210, 60,170,177,170,164, 60,106,156, 95,135, 0, 8,126,253,
+ 79,222,171,222,196,250, 88,245, 1,217,255, 0, 81,240,103,217,109,183,168, 45, 43, 49,203,178,204,207, 49,145,145, 34, 78, 61,
+144,216,111,139,159, 38, 20, 54,172,198,107,142, 34, 91,110,200,139,205, 74,136,218, 80,166,150,164,184,190,116, 55,243,186,157,
+ 23,227,144, 76, 79,244,225, 24,199,107, 74, 50,142,208, 78,230,225,161,254, 98,238, 52, 12,179,176, 58, 86, 70, 62, 72, 32, 72,
+127, 82,114,148,183, 60,101, 25,110, 32,109,221,243, 2, 99,252,161,152,234, 93,118,212,235, 53,170,240, 34,185,119,140,220,135,
+ 97,186,137,177, 75,200, 74,203, 50, 16,146,132,184,138,244, 80, 10, 34,163,192,157,114,145,153,139,177,226,187, 25, 64, 73,156,
+ 59,106,185,179, 58,237, 63,121, 59, 45,220,174,225,205,236,182, 25,112,191,118,251,184,118,123, 28, 59, 92,140, 30,233, 98,179,
+221, 49,187,149,138, 3,150,182,217, 41,189,201,134,215,201,169,160,202,208,182, 84,181,161, 69,193,229,144, 65,215, 67, 78, 85,
+ 57, 21,214, 45,152,140,171,148,159,112,145, 18, 18, 47,252,160,235,199,139, 3,166,171,153,191, 18,236,107,109, 53, 86,101, 27,
+ 35, 22,218, 99, 19, 19, 16,223,204, 64,218,205,193,200,215, 69, 80,200,244,183,235, 94,235,222,222,217,119, 7,184, 56,239,243,
+ 44,215, 18,145,219,137, 23, 92,190,196, 48,166,254,125,152, 86,136,240,114,117,220,174,115,148,221,249,217, 31, 52,185, 28, 25,
+ 99,132,101,199,220,243,117, 92, 53,172, 58,158, 28,105,182, 16,147, 70, 98,198,137,223,163,146, 96,192,124, 0, 51,106, 94, 66,
+ 93,131, 85,142,122, 86,116,175,166,115,139,202, 6,167,144,217,171, 0, 39,186, 71,227, 37,221,128,104,152,246,157, 22,190,213,
+126, 89, 14, 91,240, 28, 2,205,158,118,174,198,187,180, 30,205,228, 24,174, 80,137, 12, 88, 31, 81,205,223,122,215,252,188,186,
+180,173, 65,217, 9,109, 51, 2, 36,130,164,160, 21, 15, 49, 60,133, 86, 87,168,222,203, 12, 45,147, 27,227, 40,252,223, 39,196,
+254, 3,229,211,159,102,137,177, 61, 46,213,212, 39, 76, 92, 99,202, 50,249,127,204,248, 91,196,252,205, 46, 90,235,170,135,217,
+255, 0, 64,221,247,110,251,110,119,191,118, 60,134,225,220,214,101,218,114, 72,121,229,162,127,111,214,196,116, 65,177, 71,105,
+ 22,153,211,103, 52,230, 67,197, 14, 52,168, 78,181, 25,213, 48,235,106, 82,130,211,201, 90,158, 95, 92,163,105,242,101, 17, 6,
+ 35,105, 22,115,145,248,128, 31, 7,253,224, 72,112,116,109, 16,240,253, 63,145,184,121,209,153,155,137,111, 6,189, 26, 35,225,
+ 36,143, 51,150,210, 1,218, 70,175,170, 31,221,143,203,187,188, 42,244,157,219,110,205,118,227,182, 86,216,121,108,126,220, 57,
+106,200,110, 88,252, 44, 17, 87,168,217,226,173,112,155, 65,184, 92,239,229, 74, 68, 79,152,109,107, 92,139,106,151, 39,204, 66,
+ 74, 22,132,132,171, 68,197,235,245,126,234,219,103,105, 35,205,112, 9,155, 24, 57,224, 35,205,185, 73,162,199, 80, 84, 50,253,
+ 57,119,237, 42,170,186, 64,144,169,137, 2,189,194,198, 28,101, 46, 79,196,193,228,227, 66, 56,174,247,196, 48,219, 51,182,123,
+ 86, 69,145,217, 35,179,158,148, 68,185,206,126, 83, 17, 28,154,221,205, 54,209,111, 91,174, 62,201,112, 41,228,178, 84,193,113,
+ 43, 87,193, 84,133, 20,235,135,182,226,230, 49,145,219,168,230,204,239,195,177,245,110,213,223,211, 76, 90, 50,148, 70,237, 9,
+224,238,205,199,181,180,119,225,220,153, 53, 93, 89, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 44,210, 73,102,146, 75,
+ 52,146, 89,164,146,205, 36,150,105, 36,179, 73, 37,154, 73, 37,158,233,246,127,183,221,232,179, 91,241,254,227,192, 23, 11, 69,
+178,231,110,200,226, 50,165, 45, 33, 51,173,114, 83, 42, 58,207, 2, 57, 36, 45, 52, 82, 78,202, 4,130, 40,116,124,124,153,208,
+ 73,129, 98, 65, 30,195,197, 70,112, 18,226,149,109,254,141,125, 58, 91,101,218,229,199,199,155, 81,179, 94,239,121,132, 6,157,
+113,215, 26, 69,203, 32,105,214, 39, 44,182,181, 20,169, 10, 67,196, 37, 4,113, 69, 19,196, 14, 35, 86,101,213, 47, 32,252, 92,
+ 98, 35,236,143, 5, 1, 76,123, 57,191,189, 68,111,208,223,166,134,241,171, 30, 39,254, 95,229,102,199,113,251,190, 11,107, 75,
+146, 36, 45,104,180, 95, 16,148, 77,109, 75, 82,138,148,181,132,236,181, 30, 73, 42, 85, 8,169,212,191,213,175,221, 41,110,214,
+ 82, 18, 62, 35,130,111, 34, 44, 3,112, 12,183, 95,189, 26,246, 98,251, 18,209, 13, 42,188, 91,145,143,174, 35,150, 21,217,175,
+183,107,123,150,211, 10,204,171, 3, 98, 34,226, 60,133, 52,147, 13,106, 66,194, 8, 11,169, 42,169, 39, 77, 14,167,108, 73,224,
+119, 59,184, 5,220,238,213,199,106, 70,136,159,103,253,136, 93,175,242,255, 0,244,205,142, 56,153,120, 93,182,225,143,222, 80,
+164,169,171,166, 61,124,188, 91,103,182,143,229,145,109, 14, 54, 37,196,144,135,138, 29, 98, 27, 37,192,165, 30,110, 36, 56,127,
+ 19,226,212,229,214,111,151,204, 68,135, 97, 0,142, 36,240, 35,145, 37,187,180,224,152, 99,196,112,209, 77,149,232,111,211,108,
+236, 38, 47,110,231, 89, 94,127, 17,135, 42,249,115,143, 25,235,132,247, 22,153, 57, 17,116,206,115,207, 91,165,226,162,167, 84,
+164, 40,175,146, 21, 66,146, 8, 7, 81, 29, 90,241, 51, 48,117, 32, 14, 3,249,120, 39,242, 34,205,246,213, 70,143,232, 63,176,
+208,238,114,114, 56, 78,228, 76,102,147, 93,122, 68,220,133,140,175, 35,106,239, 32, 73,135, 22, 11,237, 59, 57,185, 97,245, 54,
+182,225, 49,240, 21, 81, 37, 9, 41,226, 64,212,143, 87,184,128, 62, 22, 28,182,197,184,147,193,155,153,247,166,253,188,123,253,
+229, 79, 71,162,222,193, 35, 22,155,132,136, 51,191,202,211,156,153, 45,200,127,205,238,128, 55, 46,109,233, 57, 10,165,180,160,
+240, 90, 36, 55, 53, 33,198,221, 74,185,162,148, 6,149, 26,135,250,165,219,132,156, 56,110, 67,128, 27, 91,135, 6,226, 19,249,
+ 17,102,251,118,161,119, 47, 66,253,148,131,133,102, 22, 76, 58,220, 14, 79,152, 90,191,147, 93, 39,228, 83, 46,215, 49, 49,198,
+231,201,186,181, 34, 98,254,105,169, 75,116, 75,148,181,151, 16,242, 86, 62, 16,149, 0,148,128, 72,245,107, 76,224,100,116,137,
+112,192, 6,208, 6, 26, 55, 1,193,153, 49,162, 44, 91,154, 39,233, 75,211,125,223,211,221,171, 38,149,149,223,220,200,179,108,
+182,234,155,237,206,107,139,184, 56,134,203, 54,248,246,198, 90, 67,151, 89, 83, 37, 47,139, 81,210, 74,156,120,238,104,144,148,
+132,164, 15,168,231, 12,131, 29,177,219, 24,134, 28, 59, 73,228, 0,231,216,158,154,182, 59,151,117,104, 92,173,118,235,196, 69,
+ 64,186,176,137, 16,151,247,155,121, 33, 73, 62,250, 31, 29, 80,140,140, 75,132, 82, 29,115,111,125,189, 35,247, 5,236,176,223,
+ 59, 60, 89,145,141,201, 72,173,170, 87, 0, 96,173, 63,120, 50,183, 30,104,121, 74, 63, 16, 73,169, 4,154,109, 74,108, 98,117,
+ 8,198, 45, 34,202,181,180,146,116, 66,123, 95,232,167,184,151,156,177,137,221,227,242,163,227, 17, 20, 31, 76, 88,165,170,184,
+161,208,126, 27,175, 30, 95,218, 42, 20, 29, 5,119, 4,191,169, 68, 71,225, 46, 84, 97, 65,125, 87, 85, 67,133, 14,223, 29, 17,
+ 32,182,150,163, 33, 41, 66, 16,128, 0, 9, 74, 66, 82, 62,160, 41,172, 34, 73,226,174, 50,219,166, 73,102,146, 75,231, 46, 63,
+249,187,122,158,185,249,159, 59, 96,198, 83,197, 37, 73,242,225,221, 5,104, 43,227, 60,235,197,170,250,143,155, 63,229,175,221,
+ 47,212,131, 57,144,180,221,127, 55,239, 84, 13,217,127,152, 90,241,252,100,201, 73, 1, 65,232, 87, 85, 39,236, 76,240,127, 78,
+166,126,162,230, 3,242,215,238,151,234, 79,188,173, 80, 63, 55,127, 87, 55, 8,168,125,172,119, 22,230,170, 2, 62, 70,239,250,
+ 63,248,142,133, 63,169, 89,145,254, 90,253,210,253, 73, 70, 68,162, 81,255, 0, 53,159, 87,101,250, 72,199, 49,159,151,240, 40,
+133,118, 7,167,190,224,117, 84,253, 82,204,254,229,126,233,126,164, 64,232,196, 79,205, 51,212,106,156,109,169,150, 60,121, 43,
+ 80,170,169, 14,230, 62,138, 86,105,208, 39,245, 83, 60,127, 37, 94,233,126,180,218,169,183, 95,205, 3,191,182,242, 11,118, 91,
+ 10,155, 62,216,183, 26,236,105,225, 51, 67,135,213,110,163, 47,228,171,221, 47,214,164, 10,214,159,205, 15,212, 2,225,153, 73,
+179, 88, 43, 83,196,124,165,203,244,255, 0, 27,162, 15,170,125, 69,219,101, 94,233,126,180,150,184,255, 0,154, 31,169, 7,149,
+229,155, 5,128,184,122,113,135,114,255, 0,251,221, 41,253, 85,207,143,242, 85,238,151,235, 73, 23,133,249,139,250,155,144,217,
+113,220,126,196, 18, 0, 87,195, 14,228, 63, 92,211,160, 31,171, 89,238,219, 41,247, 75,245,169, 70, 46, 20,156,107,243, 12,245,
+ 41,120, 83,142, 75,176,216,209, 21,181,240, 42, 68, 75,136, 52,229, 79,218,152,116,174,250,179,212, 34,205, 10,125,210,253,106,
+117,213,184,169,240,255, 0, 48, 46,253, 79,121, 41, 98,209,100, 13, 82,171, 81,141, 60,211,236,151,164, 62,171,245, 34, 88, 87,
+ 81, 63,240,203,245,171, 7, 20, 33, 23,207,204,127,212, 29,154,236,237,189,118,156,124,182,157,144, 76, 91,141,107, 90,111,252,
+102,141, 71,213, 62,163,103,242, 85,238,151,235, 66,149, 12,129,187,249,154,250,170, 68,192,215,242,108, 99,229,137, 52, 38, 21,
+215,149, 60, 63,246,253, 91, 31, 84, 51, 27, 88, 87,238,151,234, 66, 48, 71,237,127,152,111,168,169,240, 85, 57,251,126, 50,130,
+145,208, 66,185,117,167,254,253,172,252,159,171,121,213,159,134,186,253,210,253,105,196, 7, 52, 58, 71,230, 91,234, 29,190, 78,
+ 34,217,141, 20, 32,241, 36,195,185,125, 31,253,251, 76, 62,173,103,145,254, 93, 94,233,126,180,132, 66,158,159,204,111,191,207,
+ 33, 14,179,106,199,150,159,218,164, 75,143, 74, 87,111,227,117, 40,253, 88,234, 18,255, 0,167, 87,186, 95,173, 64,179,168, 25,
+ 15,230,133,222,187, 26, 18,143,229, 22, 19, 36,141,210, 98,220, 41,211,221, 48,104,227,234,135, 82, 63,201, 87,186, 95,173, 49,
+ 75,147,127, 55, 14,250,166, 90, 97,194,177, 99,190,122,129, 63,137, 18,226,124, 61,211, 70,141,254,229,245, 22,125,149,123,165,
+250,211, 2,165, 65,252,214,251,252,227, 11, 84,171, 6, 60, 31, 29, 56, 68,184,129,250,102,147,161,127,186, 29, 67,251,149,123,
+165,250,212,128, 90, 46,191,155, 31,168,168,173, 3,108,177, 99,102, 81, 52, 33,112,238,100, 83,253,153,195, 69,143,212,236,254,
+112,171,221, 47,214,162, 65, 81,162,126,107,126,174,222, 99,230, 28,199,113,143, 47,246,105, 6,237,191,219,112,212,101,245, 75,
+ 55,148, 42,247, 75,245, 41,109, 41,135, 31,252,208,253, 65, 92, 35,242,187,217,113,244,189,236,110, 29,200, 10,255, 0,181, 52,
+234,142, 71,213,142,165, 14, 21,213,238,151,235, 68,141, 96,135, 40,244, 31,204,159,187,146,225,115,114,217,100, 18, 9,160, 31,
+ 43, 63,143,217,243,122,174,126,174,245, 63,252,186,125,211,253,104,158, 92, 89, 25,123,243, 7,206,161, 65, 68,135, 96, 89,211,
+ 49, 95,120, 8,242,192,255, 0,245, 53,253, 58, 20,126,175,245, 82,127,203,167,252, 51,253,105,121,112,239, 81, 99,254, 98, 61,
+216,185, 7, 4, 8, 54, 62,104, 21, 72, 92,105,198,166,190,233, 99, 69,255, 0,119, 58,160,227, 85, 94,233,254,181, 63, 34, 39,
+130, 84,185,254,100,254,170, 34, 42, 66,162,216,177,183, 80,201, 88, 74,132, 11,169,217, 29, 73,164,239, 15, 29,108,226,125, 79,
+206,184, 57,174,191,116,191, 82, 9,164,190,156, 20,120,191,154, 31,169,119,203, 73, 85,151, 27,243, 86,160,149, 36, 67,185,248,
+164, 40,211,248,253, 18,223,169,153,177, 26, 66,191,116,191, 82,128,129, 76,150,207,204,135,189,171, 83,137,187, 91, 44, 77,169,
+ 9, 10, 1,184,215, 1,191,251, 83, 14,179,109,250,171,212,128,210,186,189,210,253,105,128, 76,120,207,175, 30,237,100, 22,183,
+167,166, 13,148, 45,170,236,152,243,105,183,211, 43, 84, 44,250,193,212,225,198,186,127,195, 63,214,165,180, 47,199,253,122,119,
+102, 27, 2, 68,155,125,156,182,118,170, 99,205,254,153, 90,171, 47,173, 61, 76, 22,242,233,255, 0, 12,255, 0, 90, 32,174, 40,
+ 92,207,204, 55,188,173,188,132,197,183,216,212,202,235,186,163, 79, 39,165,124, 37,234,205,127, 88,250,148,134,181,213,238,159,
+235, 81,242,194, 29,145,254,100, 61,243,180, 50, 36, 69,182,216, 20,215,237,121,145,110, 7,245, 76, 26,181, 71,213,206,161, 51,
+173,117,123,165,250,211,121, 97, 13,183,126,105, 61,225,185,173,108,181,108,176,165,212, 3, 94, 81,167,210,191,254,115, 87,127,
+221, 46,161,253,202,189,210,253,105,140, 16,135,127, 53, 63, 81,233,184, 57, 25,187, 70, 52,166, 82,118,254, 18,231,202,149,255,
+ 0,223,181, 33,245, 71, 63,251,149,123,165,250,211, 8, 58,144,159,205, 31,212,131,197,191, 42,207,141,132,168,144,162,168,151,
+ 63, 15,255, 0, 29,165,254,232,231,255, 0,114,175,116,191, 90, 91, 10,203,239,230,143,234, 62,214,105, 30,207,142, 56,125,241,
+ 46,103,195,221, 56,106, 31,238,143, 81,254,229, 94,233,126,180,230, 0, 47,199,255, 0, 52,159, 82, 95, 34,212,136,246, 76,119,
+205, 81,163,156,162, 92,200, 30, 59, 82,112,210,255, 0,116,122,139,235, 10,191,195, 47,214,163, 32,200,153,252,208, 59,208,213,
+184,202,126,217, 97, 75,225, 60,136,249,107,133, 43,255, 0,231, 52, 57,253, 85,234, 35,254,157, 94,233,126,180,128, 90,113,159,
+205, 51,188,183,103,146,212,251,101,129, 33, 70,137, 45, 70,184, 15,254,180,195,160,207,234,199, 82,229, 93, 95,225,159,235, 82,
+ 17,143, 52,114,251,249,144,119,122,210,210, 95,110,223, 99, 83, 52, 5, 85,141, 62,180, 39,221, 47, 64,255, 0,119, 58,167,254,
+ 85, 95,225,159,235, 77,240,160,115,255, 0, 53, 30,239, 70,105, 78, 51,109,176,146, 5, 82, 21, 26,224,127, 84,193,169, 15,171,
+ 93, 83,255, 0, 46,175,240,207,245,164, 54,161,209, 63, 53,254,250,186,190, 79,218,113,224,198,244,164, 91,136, 59,125, 51,117,
+108,125, 84,234, 95,249,117,123,165,250,212, 75, 34, 22,159,205, 7,191,183, 69,184,164, 89,108, 38, 58,126,234,147, 22,227,244,
+239,252,102,165, 47,170,153,241, 26,194,175,116,191, 90, 76, 74,253,147,249,152,250,153,104,169,230,172, 24,250,162, 36,138,159,
+148,185, 86,135,255, 0,198,234, 7,234,206,112,254, 90,189,210,253,106, 91, 10,241, 7,243, 65,245, 13, 48,184, 6, 63, 99,248,
+ 83,201, 39,229,110, 52, 39,255, 0,206,104,176,250,167,158,127,150,175,116,191, 90,139, 20, 45,191,205,103,212,171, 83,147, 18,
+125,131, 30, 64, 89,160,164, 75,152, 61,125,243,181, 41,125, 81,234, 0, 56,133, 94,233,126,181, 33, 2, 83, 53,163,243, 37,245,
+ 5,113,228,181, 89,172, 33,164,210,188, 98,220,107,250,102,106,145,250,181,212, 71,253, 58,189,210,253,104,166,144, 2,252,202,
+ 63, 51,174,239, 99,176,154,116,218,236,134, 83,132, 14, 42,143, 62,155,154,120, 75,174,139, 31,170,125, 76,143,146,159,240,207,
+245,168,236,138,220,223,230,111,221, 71,162,165, 77, 90,236,198, 74,129, 81, 31, 47, 59,143,135,255, 0,213, 87, 72,125, 82,234,
+135,254,157, 63,225,159,235, 81, 34, 33, 3,185,126,107,125,228,183,220,211, 7,249, 77,132,182, 77, 9, 49,174, 21,255, 0,245,
+154, 48,250,161,212,191,242,234,255, 0, 12,191, 90,139, 4,102,229,249,150,119,181,171, 31,243, 91,117,170,196,183, 41, 80,149,
+198,184, 17,250, 38, 13, 71,253,209,234, 96,235, 93, 95,225,151,235, 73,180, 74, 71,243, 94,245, 48, 94, 33, 22, 60,111,200, 29,
+ 73,135,116,175, 74,255, 0,247,253, 16,253, 80,234, 3,249, 42,247, 75,245,168,162,182, 95,205, 27,212, 37,218, 56,150, 45, 24,
+239,146, 15, 21,113,137,114,168,251,102,234, 51,250,165,212, 34, 91,101, 94,233,126,181, 49, 20,106,245,249,143,247,250, 4, 38,
+167, 68,180,216, 84,210,233,203,156, 91,129,161, 35,194,147, 6,170, 67,234,231, 80, 50,219,178,175,116,191, 90, 39,148,162,255,
+ 0,251,152,119,253, 54,181, 73, 54,107, 9,152, 55, 74, 68, 91,143, 19,245,124,229,127, 78,154,127, 87,115,227, 38,217, 87,186,
+ 95,173, 35, 80, 73,185, 95,230,245,234, 67, 24,113,128,230, 63,142,169, 14, 40, 37, 99,228,238,149, 0,251, 41, 59, 86,241,254,
+169,117, 27,120, 66,175,116,191, 90, 28,162,203,100, 31,206, 15,190,111,201, 74, 36, 88,172, 9, 96,245, 41,139,114, 7,244,204,
+212,238,250,153,213, 33,252,148,255, 0,134,127,173, 65,194,131,148,254,114,157,255, 0,179, 73,242, 45,246, 28,117,196,248, 23,
+ 34, 92,201,167,251, 51,134,137, 95,212,190,165, 32,251, 42,255, 0, 12,191, 90,144, 1,104,179,254,114,254,163,103,147,243, 88,
+254, 54,129, 66, 83,198, 37,208,116,250,103, 29, 47,247, 47,169,127,114,175,240,203,245,165, 32, 2,252, 31,157, 15,127,188,245,
+ 70, 85,139, 28, 14,164,248,195,186,110, 7,179,248,237, 56,250,149,212,155,228,171,221, 47,214,162, 8, 41,131, 26,252,222,251,
+205,120,152,220,105,150,107, 10, 18,189,137, 68, 91,136,222,149,241,152,116,227,234, 79, 82, 35,228,171,221, 47,214,152,150, 70,
+191,253,212,123,197,230,150,205,162,198, 7, 36, 37, 63,195, 79,220, 43,169,255, 0, 23,170,255, 0,238,127, 83,118,217, 87,248,
+101,250,211,130,137,159,204,215,187,194,114, 97,255, 0, 42,178,212,176,167,255, 0,195, 79,234, 20, 5, 63,197,123,244,191,221,
+ 14,165,253,202,191,195, 47,214,153,215, 20, 91,109,151, 43, 85,201, 81,156, 28,152, 8,226,165,120, 87, 92, 6, 14, 64,144,116,
+211,138,101,198, 44,182, 91,141,165,230,228, 41, 36,133, 21, 41, 39,195,195, 81,200,182, 70, 90, 41, 16, 20,137,183,140, 83, 31,
+138,208,143,199,152,167,214, 65,213, 57,215,108,148, 92, 5, 38,209,220, 59, 68,136,107,113, 33, 42, 82, 85,176,167,191, 85,191,
+101, 53, 35,102,138, 67,247,184,215, 71, 17, 33,134,192, 80, 1, 52,165, 60,117, 90,112,144,209,245, 67,223,216,138,218,152,143,
+ 62,224,219, 83,144, 60,170, 37, 70,190,250,232, 96,152,196,234,165, 25, 45,238,204,199,161, 60,155,122,144, 10,212,118, 31, 94,
+152, 89, 57, 35, 70, 65, 26,181, 94,113,171, 13,254, 43, 87, 22,211,229,186, 7,222, 3,199, 84,114,161,108,195,133, 47, 48, 50,
+122,159,220, 76, 65,151,126, 94, 43,104,242, 72, 27,237, 79,103,134,170, 87,137,113,213, 60, 44, 26,163, 61,164, 54,158,226, 38,
+ 86, 49, 96, 91, 45,221, 82,133,204, 5,243, 70,212, 26, 32,169, 37, 93, 5,107,246, 87,232,215, 73,208,253, 59,147,212,111, 16,
+143, 47,183,225,170,183,137, 89,178, 65,149, 93,234,167,213,206, 45,233,176,175, 18,237, 76, 86, 36,229,206, 71,109,187,210, 37,
+150,164,195,113,185, 76, 20, 56, 26, 80, 1, 73, 88, 77, 22, 8, 88,234, 5, 43, 93,125, 43,233, 79, 66, 99, 98,192, 78,216,188,
+199,107, 16,235,168,175,167,136,128,227, 95,237, 76, 61,192,192,238,189,224,244,225, 97,245, 65,139, 69, 9,186, 34, 11, 3, 32,
+142,194, 64, 15,178,218, 72, 23, 4,129,212,211,136,112, 15,239,120, 29,115, 30,181,244,157, 80, 31,184,198,139, 8,252,195,223,
+241,126, 71,196, 44,158,167,141,178, 78, 57,253,202,152, 98,244,233, 64,149, 41, 91, 10,129,246,107,202,231, 88,224, 22, 20,160,
+ 93, 65,133,153,202, 50, 95,183,182,237, 26,166,194,186,171,109, 1,144,229, 21, 51, 20, 50,175, 48,229, 33,213, 18, 27, 82,149,
+ 95,170,163, 64, 34, 32,104,134, 3, 47,198, 59,133,252,174, 90, 96,242,252, 46, 69, 53, 39,216, 53, 58,107,125, 83,136,173, 89,
+ 44,248,119, 75,170, 11,148,162,147,201, 62,255, 0,134,186, 59, 16,144, 65,166, 68,180, 25,232,144, 54,113, 59,125,186,177, 93,
+135,129, 83,109, 17,123, 50, 98,132,188, 37, 15,189,186, 15,213, 67,160,203, 66,136, 2, 45, 15, 23,183,189, 29,187,139,192, 6,
+235, 67, 94,155, 43, 89,249, 57, 36, 6, 9,135, 20,236,226, 49, 56, 54,120,237,168, 38,135,142,244, 30,202,107,155, 55, 91,188,
+162, 27, 2,211, 14,193,143, 59,117, 12,161, 73,242, 92, 78,223, 81,209,229,125,140,152,200, 40,247,155,125,138,202,235, 45,249,
+137, 9, 43, 74, 78,254,221, 79, 30,203, 36, 89,148, 4,130,135,151,219,140,251,131, 12, 91, 22, 86,149, 39,144, 74, 42,106, 2,
+106,122,123,134,180,105, 5,142,136,155, 31, 64,174, 43,119,110,123, 91,233,115,181,223,248,143,222,245,252,254,113,115,138, 29,
+182,227,201, 52, 83, 1,207,197,252, 93,246, 82,135, 20,146,126,232,168, 21, 58,245,239, 77,122, 24,221, 92,108,188, 49, 35,135,
+ 96, 61,189,235,107,167, 98, 57,220, 70,157,255, 0,151,217,146,151,110,125, 83,118,174,126, 97,112,118,108, 24,198,216,228, 70,
+163,183, 20,181,193,183,228,189, 47,138,252,180,168,124, 41, 8, 41, 59,248, 39,125,206,187,250,125, 27,141, 92, 12, 0,226,182,
+ 37,141, 2, 11, 15,179,161,126,162,241,220, 67,183,253,250,123, 25,192,210, 21,140,195,106, 42,252,212,171,146, 93, 91,241, 83,
+ 39,154, 77, 78,220, 86,145,244,131,175, 33,245, 87, 77,142, 54, 84,171,135, 0,184,235,254, 18,204,202,171,203,115,175, 42,231,
+ 51,202, 87, 14, 2,148, 39,216, 53,207, 67, 20,201, 81,156,216,168,253,180,239,195,136,133, 54, 27, 14,111,241, 38,149,241,212,
+165,209,247,113, 80,149,200,237,207,186,147, 30,177,169, 60,170,158, 36,142,190,205, 97,221,211, 4,108, 83,132,220, 37,188, 91,
+185, 87, 57, 13,134,223, 81, 43, 4,132,141,253,180,213,200,244,248, 4, 51,105,117,249,151,228,121, 4,251,122,162,199, 39,205,
+ 63,119,232, 26, 37, 56,240,137, 69,137, 41, 78,219, 43, 44,182, 77, 42,117, 10, 5, 70,167,175, 74,107, 65,171,102, 9,245, 71,
+108, 41,155,112,186,169,101, 68, 40, 37, 32,138,251, 58,234,181,145, 3,130,148,100, 66,100, 72,118, 60, 21, 58, 72, 43,108,215,
+237, 59,232, 76,197, 56, 46, 87,236, 25,145,239,113,144,241, 32,254,201,175,211, 77, 25,152, 58, 69, 78,186, 22, 97, 69,114, 32,
+ 86,244,168,251, 53, 92,201,202,138, 82,184, 42,115,241,220, 42,119,240, 73, 41,235,245,105, 70,200,187, 20,220, 87,171,102, 61,
+ 42, 12, 52,207,101,234,132, 16,179, 67,245,232,224,192, 38,213, 79,188,223, 38, 92,224, 47,201, 89, 45, 37, 31, 22,245,241,174,
+137,228,198, 90,166, 33,146, 80,118, 92,249,172,196, 14, 42,139, 52,219,217,169,154,162, 20,132, 83,115,184, 36,232,173,199,117,
+194,124,133,129,184,175,142,179, 47,204,132, 75, 5, 40,214, 85,149,128,167, 31,199,112,185, 50,238, 52, 50,147,202,149,251, 53,
+205,229,217,101,146,209, 91,129, 17, 10,118, 53,149, 88,167, 90,188,137, 41, 0,186,163,185,246, 87, 66,149, 22,146, 19,121,193,
+122,191,100,152,181,168,152,208,194, 3,188,104, 72,166,137, 69, 87, 13, 74, 97, 96, 85,238, 73,144,219, 38,177,243, 45,148,135,
+153, 53,228, 58,143, 29,106,209, 27, 18, 51, 12,191,112,142,227, 72, 98, 74,154, 82,194,162, 42,169, 59,214,154,182,104,112,132,
+108, 80,243,123,140,107,197,195,203,117,127, 0, 33,198,253,149, 78,231, 87,107,129, 80, 50, 66,109,249, 75,237,203, 84,100, 40,
+121,109,130,145,239,213,216, 64, 5, 23,117,162, 76, 87,110,215, 36,204, 89, 32, 87,169,212, 37, 32,250, 41, 4,126,126, 90,205,
+162,208,109,104, 88, 91,132, 83,111,126,161, 52,130, 25, 62,236,151,236,129,168,128, 9,142,212, 10,117,169, 30, 26,106,196, 73,
+213, 49, 8,135,110, 68,203,101,109, 19, 77, 86,170, 44,215,216, 69,117, 87, 49,134,161, 40,185, 41,205,121, 4,105,176, 19,108,
+ 82,147,197, 20,169,215, 59,107,196,184, 87, 97, 20,215,140, 99,182,137,150,161, 45,245, 36,212,128, 5, 71,211,172,108,187,236,
+228,136, 32, 29, 40,119,139, 6,177,193, 75,115,150,132,173, 4, 2, 7,215,174,135,211,134,118, 30,197, 27, 42,113,162,172,127,
+150, 91,101, 91,228, 78,109, 60, 93, 65, 41,108, 15,236,141,117,163, 82,197, 80, 60, 82,250,113,231,175,243,154, 97,164,149,202,
+ 52,219,245,232, 54,216, 32, 20,226, 93, 50, 89,187, 63,146, 77,112,161,136,202, 10,103,225,115,111,118,169, 30,161, 8,243, 83,
+242, 73, 69,222,244,237, 53,199,155,187, 45,146,150,197, 66,199,215,190,171,203,173,196,104, 20,191,110, 83,172, 95, 79, 78,193,
+177, 55, 54,219, 28,173,213,144,106, 7,141, 41,170, 51,245, 29,100,176, 44, 81,134, 25, 33,214,169,157,180,153, 30,224,204, 89,
+109, 20, 56,120,245, 26, 23,250,177,150,160,168, 74,150, 91, 14, 57, 39,252,224,155, 71, 31,136,199, 81,229,238, 4,104,191,191,
+150,221,200, 91, 2,173, 49,235,234,229,201,118, 60,197,126, 35,128,138,251, 53,208,199, 31,202,224,128,181,227,232, 69,189, 51,
+191, 28,252, 68,237, 95, 15,102,172, 11,192,228,145,173,208,249, 54,203,125,233,246,193,112,209, 53, 61,116,199, 33,249, 38, 53,
+133, 47, 16,183,192,131, 49,196, 56, 74,152, 74,186, 31,112,208,238,176,144,163, 48, 2, 45, 47, 43,143,108,154, 17, 25, 4,180,
+ 56,210,154,206,150, 33,145,213, 13,215,155,143,118, 36,219,228, 41,213, 54,161,176, 9, 20,246, 13, 74,190,156, 9, 81,220, 80,
+136,253,196,149,114,188,176,249, 4, 36, 29,201,246,146, 52,106, 48, 3,145,216,141, 41, 48, 69,115,220,178, 93,206,225, 21,248,
+196,213,180,131, 81,208,104,223,181,140, 67, 20,163, 23, 91,172,153,101,214,231,111, 49, 1, 82,165, 45, 65, 9,226,119, 36,154,
+ 0, 62,179,167,174,136,141, 0,226, 81,163, 73, 60, 23,231,112, 61, 64,206,244,253,104,184,224, 48,102,214,226,225, 45, 92, 86,
+133, 17, 73, 1,176,149,160,116, 53,109, 69,104,247,235,232, 79, 76,122,112, 97,227, 68,144,211, 32, 19,226, 87,160,116,140,120,
+208, 35, 22,213,181,241, 92,147,158,247, 50,243,155,228, 9,185, 77, 89,112,173, 99, 99,224,146,173,133, 62,205,117,240,248, 70,
+139,166,141, 97,254,223,110,245,246,215,177,214, 91, 38, 13,232,127, 15,199,178, 8,192,219, 31,199,162,193,145, 24,214,170,110,
+ 92, 96,135,146, 64,161, 31,134,226,135,215,174,127,124,103,108,163, 45, 99, 45, 8, 92, 85,213,249,247,202, 35,128, 92, 61,158,
+118,198,255, 0, 96,201,238, 88,123,206, 85, 86,217, 50, 34, 7,147, 94, 46,134, 93, 40, 14, 38,190, 10, 0, 17,244,235,231,110,
+165, 87,236,178,167, 68,181, 48,145,137,246, 22, 92,229,173, 9, 17,222,201,103,255, 0, 11,239,204,129, 56, 56, 67,142, 18,145,
+244,248,106,149,217,176, 1,149, 9,151, 41,235, 30,193,238,216,253,151,205, 59,174, 66,104,173, 97,254,244, 58,130,171,243,139,
+ 29,210,198,167, 30, 88, 43,115,153, 80,167,211,173,124, 92,136,200, 39, 8,173,169,102,241, 13,137,136, 20,121,164,209, 64,245,
+233, 77, 89,180, 14, 73,192,117,230,237,105,146,203, 37,231, 15, 23,156, 39,128,253, 90,175, 18,164, 75, 39, 92, 50,194,205,234,
+ 36,117,205,162, 20,216, 60,253,251, 15,233,214, 94,126, 68,161,160, 77,189, 29,187,200,198,162,194, 77,153, 14, 14, 92,128,251,
+117,144, 77,135, 86, 75,112, 69,108,182,124, 99, 37,105,187, 19,235, 1,240,145,199,126,186,170,103, 96, 46,201,206,214, 82,178,
+ 44, 37,171, 85,153,225, 13,124,110, 44,212,182,175,235,120,131,246,107, 67, 10,215,151,197,193, 68, 7, 72,153, 6, 5,125,202,
+ 44,172,200,133, 32,252,210, 84, 15, 94,132,107, 71, 30,248, 70,210,227, 68, 79, 44,174,183,244,159,233,106,215,133,224, 49, 59,
+201,220, 23, 4,139,241,136,183,162, 71,119,100, 54, 93, 71,150, 43, 94,191, 9,167,215,175, 97,244,175,166,171,200,128,186,113,
+227,160, 11, 95, 18, 62, 84,163, 17,243, 30, 61,192,255, 0, 98,225, 47, 92, 30,166,111,157,199,238,220,235,116,119,202,172, 17,
+ 36, 62,142, 85,248, 85,229,184, 91,175, 74, 1, 65,244,211,111, 13,123, 52, 68, 97,240, 69,118, 17,163,225,126, 67,128, 84,254,
+ 17,159,121,174,190,251,235, 45, 58,213, 16,170, 42,189, 18, 9, 72,223,218,154,215, 70,226, 10, 1,142,210, 35,246,212,174,150,
+193, 51, 43,111,112,187, 62,197,245,136,143, 63,155,227,228, 34,124,180, 81, 72, 93,173,105, 8,109,111,120,242,109,194, 17, 90,
+253,210,159,102,222, 79,245, 11,165, 9, 8,100, 68,124, 92, 37,248,131,248,172, 78,185,129,177,167, 30, 10,172,207,225,220,175,
+183, 9, 15, 90,118, 91,156,137, 30,234,107,206,105,178, 49, 33,215, 47, 42, 73, 74,120, 54, 25,146,218,110,206,165,205,252,197,
+ 18,175,175,166,175, 89,155, 6,209, 87, 52, 50,126,130,242,213, 29,118,247, 1, 11, 2,128, 31,118,185,251,154,122,162, 68, 48,
+100, 61,153, 14, 89,238,201,109,198,200,100,147, 85, 83, 85,200, 50, 10, 39, 69,178, 78,109,230, 78, 83,188, 79,150,210,183,250,
+ 41,190,137, 86, 43,197,209, 1, 71,133,225,236,128,137,112, 88,168, 74, 40, 82, 7, 83, 65,161,154,152,241, 82, 18,101, 5, 83,
+151,107,150,135, 84,146,135,214, 77, 82, 71,191, 71, 96,201, 5, 38,217, 58,235,112,157, 33,133, 36,166, 47,137,223,233,208,167,
+ 16,144, 44, 84, 40,215, 85, 90,231, 11,115, 10, 37,178, 73, 63,175, 82, 46, 98,162,189,221,111, 50,238,114, 10, 99,172,151, 0,
+ 21, 27,244,166,131,160, 77,181,212,107,106, 46, 18,225, 62,203,202, 33,196,215,237,165,116,164, 34, 53, 78, 34, 66,217,108,255,
+ 0, 52, 65, 74, 35, 73, 39,228,158, 28, 69,126,154,234,212, 77,102, 61,232,127, 19,169, 54, 72, 51,224, 74,126, 60,181,131, 13,
+100,238,125,135, 66,187, 36, 66, 58, 35,194, 47,197, 54, 96,216, 70, 53, 61,228,188,162, 8,110,148, 39,174,177, 50, 51,172, 33,
+149,145, 24,133, 97, 93, 21,139,124,131,118,212, 41, 37,198, 71, 47, 15, 13,181,129,253, 89, 73,203,162, 78,216, 50,253,126,201,
+141, 77,196, 92,101, 10, 1,215, 42, 7,188,245,211,215,101,155,147, 60, 87,235,184,166, 45,111,177, 69,106, 50,199,205,132,239,
+ 79,163, 90, 53,217, 55,225,162, 20,163, 21, 94, 93,113,149,200, 14, 74, 46, 16, 84,178,145, 83,224, 85,254,141,107, 70,224,220,
+ 16, 77,104, 77,199,183,239, 71,182,188,146,239,196,232, 36,126,173, 30, 25, 64,114, 72, 65,106,176,118,252, 89,224, 32, 56,225,
+ 46, 47,145,175,186,154,144,191,114,159,148, 23,185,120,108,187,140,158, 17, 84, 84,180,236, 62,202,106, 99, 41,147, 26,194,137,
+ 35,183,115,173,146, 67,174,238,175, 16, 61,221,116,195, 51,114, 66,176,141,228,150, 84, 64,181,199,113, 35,138,148, 42,162, 61,
+180,211,194, 74, 81, 1, 36,197,252, 71,223,113,127, 18,146,162, 19, 93,246, 26, 36,138,114,193, 18,182,182,185,210,155,105,161,
+248,136,248,142,171,206, 91, 80,230, 2, 56,204, 73,161, 78, 72, 77,126,100,164,164, 31,163, 76,100, 8,213, 15,130, 68,189,228,
+121, 45,166,115,209,209,200,171,145, 41, 3,223,162, 67, 18, 19,226,156, 88, 93, 88,221,173,205, 47,210, 88,141,111,156, 74, 82,
+163,241, 18,124, 56,234,134, 94, 4, 57, 39,223, 36,237,150, 24,179,173,165, 51,213,201,161, 78, 39, 84,168,145,171, 72,232,139,
+ 11,143,106, 93,180,227, 88,130,217,249,114,177,230, 45,102,181,246, 87,125, 28,100, 90,144,136, 42,124, 27, 38, 39,100,188, 42,
+229, 23,136,242, 5,118,166,231,254,131, 80,148,236,176, 50, 36, 76, 98,155,113,158,238,227,205, 45,242,219, 40,162,129,228, 64,
+ 21,165, 53,147,118, 5,132,241, 68, 57,128, 41,209,187,149,106,188,175,228,227, 37, 37,151, 5, 72,218,128,211, 76,122,108,130,
+ 29,153,125,138, 29,179,190,141,217, 94,118,202,178, 10, 26, 81, 72, 6,158, 27,141, 6,206,139,205, 22, 57,186, 45, 55, 62,236,
+217,242, 87, 28,117, 64, 38, 99, 35,146, 72,166,244,223, 71,171,167, 24,232,165,251,136,203,138, 70,255, 0,197,113,254, 98, 23,
+110, 31,143,187, 31, 87, 42,107, 95,246, 31, 11, 42,126,110,170,157,195, 45,183,251,197,245, 82, 56, 41, 9, 64, 37, 73, 80,167,
+ 94,154,236,137,139, 42,242,118, 94,231, 71,188,140,141,203,122, 42, 26, 83,156, 77, 43,208,237,170, 80, 96, 84,157, 30,110,205,
+ 18,208,223,146,242,255, 0, 16,128,165,123,129,220,234,173,132,182,136,102,197, 55, 26,183, 48,169,110,185,214, 42, 71, 51,250,
+244, 56,200,158, 41,188,192, 83, 54, 58,140, 78, 83, 42,144,250, 80,167, 57, 17,241,117,235, 77, 83,190,203, 4,152, 33, 27, 89,
+109,200,236,248,132,135,124,222, 8,242, 91, 20,247,109,171, 20,155, 25, 74, 54, 58, 7, 38,211,136,177, 5, 50, 26, 9, 74,143,
+136,167,142,173,195,120, 69,222, 17,139, 77,163, 24,147, 5, 75,124,167,131,137, 5, 4,253, 99, 84,238,149,142,152,204, 5, 94,
+101, 55, 72,152, 76, 89,247, 88,143,124, 17, 18, 86, 55, 27, 40,252, 40,235,253,181, 39, 94,137,232, 62,137, 44,219,133,147, 31,
+ 12, 8, 63,111,114,217,232,248,230,251, 1, 28,138,230, 46,238,103,215, 28,226,255, 0, 42,116,231, 73,184,203,117,201,139, 93,
+119, 43,113,126,105,175,188,147,175,161,108, 3,107, 14, 11,190,193,172,194, 78, 70,173,248,160,157,171,110,227,124,204,173,214,
+ 53, 0,228,233, 51,163,180,210, 23,176, 52,112, 26,106,145, 96, 8, 91,146,145,218, 36, 2,251,139,234, 75,184,145,108, 29,134,
+ 17,236, 77,169, 13,170, 15, 56,104, 52,252, 54,213, 24, 10, 26,108, 56,131, 79,167, 92,182, 49, 18,180,120,174,111, 19, 24,131,
+ 41,158, 39, 69,205,125,193,206,109,183,159,150,200,157,248,103, 77,139, 10, 82,171,247,137,122, 3, 78, 18,122, 86,164,235,199,
+ 62,160, 97, 24,245,139,219,153, 7,252, 81, 18,252, 74,224,122,188,133,119,200,119,254, 73, 70,103,114,237, 81, 97, 53, 10, 66,
+128,124,113, 88,233, 93,235,174, 42,204, 9, 72,184, 88,214,222,202, 96,239, 4, 73, 22, 6,216, 82,135, 47,186, 43,237,173,127,
+ 86,179,207, 79, 32,170,241,202, 33, 38,229,249, 18,100,203,109,199,192, 44, 57, 90, 86,157, 60, 53,115, 31, 28,196,171,181, 91,
+185, 66,125,153, 81,153, 76,168, 67,131, 70,133, 84,233,236, 58,215, 7, 77, 85,168, 69,121,201, 19,122,184,197,142,251, 10,168,
+107,138,182,247,111,161, 85,197, 41, 5,230, 63,113,174,150,166, 86,193,170, 29, 74, 8,219,232,209,127, 97, 27, 14,171, 54,217,
+145, 38, 85,163,253,208,203,110,249, 19,230, 48, 90,155,105,116, 36, 86,149, 26,189, 62,157, 92, 98,202, 95, 19, 43, 47,182,249,
+157,234, 77,238, 45,193,231, 20,217, 64, 21,174,221, 69, 70,177,115, 49, 33, 88, 68,140,137, 10,209,200,243,213, 75,142, 31,126,
+ 71,198,148,208,208,245, 61, 53,155,229,128,116, 10,221, 80, 40,143,100,161,220, 50,140,174, 5,145,165,149, 69,146,242, 75,131,
+216,223, 46, 74,251, 0,214,255, 0, 78,233,163, 34,248, 65,184,149,167,131, 71,153,100, 65,225,252, 23, 89,250,154,238, 28,206,
+223,246,112,197,178,130, 26,135,111,156, 83, 77,210,218,225, 65,118,107, 74, 52,241, 11,101, 39,234,215,209,254,159,162, 53,200,
+ 68, 15,146, 37,189,139,166,199,196,142,233, 72,142, 36,127, 5,241,235, 34,126, 67,151, 87, 36, 54, 60,218,211,204,113,123,239,
+ 78, 68,239,212,212,131,173,250,194,216,180,143, 4,173,106, 98,105, 67,241,218, 88, 68, 67, 90,240, 20, 87, 37,171,245,158,154,
+156,193,224, 57,168, 9, 65,220,190,139,168,125, 6,230, 86,235, 30, 70,254, 39,149, 57,195, 14,200, 98,200,199,111, 74,221, 69,
+ 16,230,163,202, 83,201,241,228,210,130, 93, 20,222,169,214, 87, 82,199,142, 68, 77,115, 31, 12,129, 7,193, 79, 35, 22, 57, 24,
+210,143, 19,196,119, 16,255, 0,199, 84, 99, 63,237,212,158,218,231,215, 60, 46,246,186, 76,129, 50, 77,184,186,118, 11, 68,103,
+ 75, 97,196,143, 20,184,126, 32,125,131,223,175,156,115,241,101,139,108,234,151, 24, 72,131,236, 44,188,234, 81,209, 70,106,200,
+212, 16,236,184,235,243, 61,159, 71, 77,103,249,133, 84,176, 50, 7, 50,230,218,238,173,166, 58,127, 18,160, 46,158,253,180, 45,
+165, 52, 98,141,101, 86,150, 3,108,150,219,171,188, 2,148, 41,253,154,233,156,197, 40,193,210,221,134, 20, 53, 23, 27,117,158,
+ 78, 45,100, 29,181, 45,242, 70, 21,133, 97, 99,139,181, 89,156,101,176,128,148,157,148, 8,246,234,189,162, 71,130, 20,244, 43,
+101,234,213,103,189,220,150,164,165, 35,129, 11, 73, 3,111,110,161, 8,205, 45,234, 93,158, 37,141,215,222,132, 2, 65, 82, 64,
+ 39,253,157, 33, 25,130,160, 75,160,242,112,123, 75, 51,229,202, 85, 57, 54,217, 82, 1, 63,217,213,208,100, 98,202, 60, 18, 75,
+ 23, 24, 54,247, 92,147, 78, 74, 4,133,125, 91,106, 21,214,100,164, 10,136,230, 73, 33, 82,139,176,209,248, 10, 34,167,233,235,
+169,203, 29,194,152,154, 34,214, 81, 42,107,205,169,224, 4,118,134,223,101, 53, 24,210,193, 62,224,129,231, 25, 53,214, 12,114,
+236,122,148, 57,208,167, 69,134, 48,151, 20, 57, 30,197,187,183,249,173,234,219,102,145, 50, 74,148,144, 71,194, 21,238, 21,241,
+209,165,211,226, 80,229, 34,203,123,157,192,187,186,215,206,135, 15,226, 2, 40, 61,231, 85,165,211,226, 16, 68,137, 41,146,203,
+159, 94,103,194,141, 31,145, 9, 70,228, 87,173, 53,156, 48,162, 29, 89, 94,243, 14,225,223, 96, 73,142,168,156,138, 18, 2, 72,
+250,181,163, 28, 72,237, 77,170,147, 55, 55,113,235, 83, 34,180,127,101, 47,234, 21,208,255, 0,104,200,132,150, 67, 14, 99, 62,
+230,201, 90, 87, 86,134,218, 25,160, 59, 38,114,182,222,114,185, 40,136,210, 34, 26,185, 74, 80,123,244, 74,232, 9,196,138,223,
+133,101,146,154,121, 78,201, 63,137, 95, 31,211,169, 75, 28, 20,198,101, 77,200,123,137,252, 71,150, 40, 64, 0,172,251,201,255,
+ 0, 78,165, 86, 18,136,185, 67,189,102,205, 94,224, 55,111, 10, 1,225,177,220,123, 55,212,109,164,192,128,141, 9,115, 42, 21,
+154,200,155,156,159,144, 96,132,186, 5, 84,107,239,174,165,176,128,161, 57,186,214,167,133,130,239,242,140,175,148,147,240,154,
+125, 59,233,252,131, 48,134, 78,137,170, 45,213,149,216, 87, 32, 40,121,200, 4, 19,227, 83,182,129, 44,111,137, 73,244, 73,151,
+ 22,147, 49,105,144,229, 57,169, 69, 74, 62,192, 14,175, 66,161, 16,134, 9, 68,160,200,159, 14, 75, 75, 96,128,193, 20, 65, 30,
+ 53,213,107, 32, 25, 17, 16,200,175,151, 9, 44, 34, 2, 94,226,242,104, 85,191,187, 84,170,199, 27,156,164,200, 1, 69,237,137,
+237,252,163,138, 83, 91,114, 80, 39,233,213,227, 76, 64, 72, 22, 70,204,153,159, 46,180,114, 42, 36,124, 71,115,211, 77, 93, 81,
+ 72,201,208, 7, 47,146,236,105,125, 72, 10,242,192, 80, 7,127, 1, 77, 16, 85, 25, 21, 18, 29,109,192,243,233, 48,155, 84,169,
+ 42, 32, 87,138, 65,235,190,165, 44,112,160,120,173,121, 19,183,197, 73,114,247, 20, 40,178,231,197, 81, 93,246,208,182, 68,150,
+ 82, 5, 64,176,222, 46,239,203,242,220, 82,146,225, 6,160,251,245, 35, 76, 66,111, 49,145, 79, 53, 5,144,175,218, 4,212,255,
+ 0,104,159,245,105,182, 39,222, 17,155,203,204,217,239, 63, 49,110,108, 33,135, 0,173, 7,184,234,196, 0, 33, 94, 41,110,248,
+228,212, 93, 90,184, 50,215,196,165,164,158,187,143, 29, 6, 1, 2,113, 67, 59,133,112,188, 37,223,152,101, 10,226,180,132,138,
+ 87,196, 29,104,215, 8, 51, 42,147,166, 74, 53,147, 36,188,196,182, 58,209, 74,131,139, 79,136,235,182,152,209, 4, 47, 42, 65,
+122,199,230,223, 27, 74, 82,178, 71, 35, 83,244,242, 39, 64,149, 80, 5,209,127,110,233,235, 29,176,221, 47, 88, 44,249, 79,147,
+243, 21,224,217, 61,122,127,175, 83,223, 0, 81, 99, 67, 4, 27, 36,193,242, 24, 24,163, 46,149, 31, 55,128, 63, 96,209,133,177,
+ 7, 85, 41,210,202, 0,187,221,218,197, 88, 2,161,109, 10, 84,215,192,232,103,100,164, 20, 14, 57, 33, 80,157,227,238, 29,206,
+109,198,101,144,186, 83, 13,181,182,251,232,168, 63,140,134,248,211,219, 80, 14,250,250, 43,211, 61, 42, 24, 24,145,139,107, 45,
+ 79,228,189, 3,211,125, 56,213, 3, 46, 10,160,189, 94,138,100, 42, 83, 67,146,197,104, 43, 90, 87,111,232,214,185,158,238, 11,
+179,142, 56,129, 46,117, 94, 48, 92,190,117,143, 50,183, 95, 98, 43,141,194, 44,150,100,164,170,160, 14, 46, 36,128,117, 33, 94,
+224,167, 99, 70, 44,190,185,247,143,186,206,229, 94,155, 44,183,214,138, 83,115,186,196,142,148, 52, 56,148,149,186,218, 92,113,
+ 2,164, 0, 2, 91, 36,109,225,239,215, 35,143, 29,183, 55, 97, 65, 21, 60, 10,230, 92,203,185,109,255, 0,151,177,103,203,160,
+169,251, 84, 96,105,237, 97,199, 34, 80,251,199,151,174, 71,215,152, 66,121,242,179,182, 48, 62,232, 68, 47, 35,245, 21, 77,147,
+ 63,103,224,171,110,225,247, 2,106,178,136,172, 68, 89, 41, 45,212,129, 95, 0,125,154,229, 40,193, 27, 87, 49,100, 10,141, 27,
+185, 23, 95,152, 17,199, 34,158, 72, 73, 27,239, 78,132,123,255, 0, 94,178,115, 48, 68, 71,138,141, 84,238, 41,203,187,185,162,
+160, 99, 22,153,172, 43,227, 90, 69, 74, 79, 90,157,103,226, 98,157,228, 17,193, 88,140, 76, 10,100,237,238,110, 50, 60,124,181,
+ 40,236, 17, 90,125, 84,213,203,113,196, 85,216, 88,232,157,166,226,152,240,158,125,213, 85,164, 3, 64,125,192,141, 81,149, 91,
+ 74, 46,231, 80, 33, 72,181,100,126,107,203,160,112,166,155,127,118,154,153, 50,137, 12,135,176, 2,160,227,118,187, 28, 37, 72,
+226,148,149,149,158,103,110,160,233, 89, 41, 73, 19, 68,196,136,182,248,237,173,200,128, 33,208,147, 74,109,176, 26,171,108, 76,
+131, 20, 35, 23, 42, 13,206,229, 42, 85,185, 65,165,124, 64,245,246,208,234,165, 20,185,215,146,211,172, 6,101,114,250, 81,189,
+ 46,215,148,166,123,231,247, 45,113, 66,186,209, 69, 99,250, 53,232, 62,148,197,123,141,135,249, 98, 87, 77,233,220, 93,215, 19,
+220, 85,171,235, 67, 63,254,103,130, 73,182, 64,124,121,191,202,111,142, 41, 9,241, 42,180, 62,209, 39,174,233, 74,149, 77,181,
+236, 93, 8, 29,230, 93,160,254, 11,160,186,177, 86,157,225,124,180,149,144, 60,103,161, 9, 81, 72, 82,131,123, 83,195,199,244,
+235,118, 33,138, 86,252,164,253,181, 88,212,135, 26,146,209,228, 67, 11,170,210, 19,215,144, 87, 83,183,133,125,186, 59, 42, 17,
+146,181,189, 63,220, 87,108,202, 25,146, 8, 87, 53,166,137,222,188, 8,223, 89, 57,238, 3,174,143,165, 84, 39,240,157, 2,232,
+223, 90,182,217,183, 56, 24, 71,114,237,200,226,253,206,220,229,182,230,162,162, 86,228,219, 83,137, 73,116,142,148, 83, 14,180,
+ 1,246,131,175, 42,245,150, 0, 18,133,224,124,193,143,136,255, 0,176,175, 60,245, 22, 31,147,149, 38,249, 73,209, 87, 24, 53,
+194,229, 54, 50,219,144, 42,162, 10,105,245,107,207,109,172, 21,205,217, 18,234,127,109,240,245,220, 50, 73,111, 92,118,101,181,
+ 2,154,143,234,171, 77,101, 96, 69, 68, 72,132,205,121, 84, 22, 38, 41,183, 72,170, 91,227, 83, 79,110,169,206,189,195, 68,226,
+214, 74,217, 5,194,219,141, 91, 17,113, 72, 21, 43, 53, 34,157, 73,213,184, 99,104,167,231, 45, 54,123,201,188, 66,118,226, 86,
+ 2, 82,158, 73, 26, 70,157,168, 68,186,142,238,122,136,138,110, 34, 79,241, 78,109, 95,171,142,138,106, 0, 38, 95,152,166,118,
+182,179, 86,173,175, 16, 80,224,170,141, 70,192,104,102,141, 29, 70, 65,107,206, 51,215, 90,204, 36,178,211,156, 98, 20,112, 2,
+187, 29, 26,186,244, 67,212,132,187,139,190,139,156,137,173, 47,226, 69, 73, 31, 89,210, 20,178,125,204,181,179,123, 97, 19,151,
+109,216, 33, 34,181,250, 79,183, 78, 43,116,241,154, 59,108,136,213,210, 55,150,193, 27,147, 82, 15,179, 77,229, 34, 41,173, 88,
+161, 92, 27,110,215, 34,133,105, 93, 20, 79,176,106,141,207, 19,162, 98, 87,230, 79, 14,201,110,179, 61, 29,176,144,150,182, 52,
+167,179, 70,166, 82,109, 84, 76,144, 12,101, 16, 39, 64,109,102,133, 33, 92, 71,208, 14,136, 65,100,225,145,136, 50, 89,102,235,
+229,197,161,105, 4, 3, 79,167, 84, 4, 52,213, 54,229, 38,229, 33,137, 19,138,151,247, 19,185, 31,160,232,241,212, 5, 33, 45,
+ 16, 27,133,222, 50,239,255, 0, 38,133,254, 3,136, 0, 13,182, 53,161,213,232,129,197, 33, 45,193, 28,181, 99,238, 70,177,249,
+172, 85, 96,172,214,155,237,170,214,134, 46,159,114,243, 55,229,224, 75, 67,242,104, 16,148, 21, 16,122,117, 27,104, 85, 3, 36,
+238,134, 61,120, 66,101,186, 99,236,133, 18, 80, 71,187, 71,217,180, 40, 18,225, 70,122, 66, 17,107,149, 33,229,254, 49,220,114,
+ 62,193, 81,162, 70,212, 33,161, 64,236, 23, 85,191,122, 4,172,148,167,166,254,193,162, 24, 3,197, 20,148,241, 22, 99,150,185,
+107,149, 29,202, 60,226, 2, 82, 1,241,165,116, 57,199, 69, 21,183, 22,180, 61,119,187,162,100,195,248,203,169, 21,246,232, 50,
+188, 13, 20,181, 68,231,217, 36,216, 97,203, 68,245,209,181,154,182, 61,213,168,213,115, 45,210,112,156,165,166,211, 34, 76, 7,
+ 86, 15,195,209,179,171, 17,159, 34,148, 84,236,114, 75,175, 51,202, 90,168,152,192, 40, 19,227,161,204, 4,139,168, 15, 93,205,
+219, 40, 80,105, 85,105, 73,240, 62, 58, 97, 16, 2,112,152,172,210, 35,218,225,186, 38, 40, 21,171,238, 3,239,213, 91,164, 72,
+ 78, 23,229,178,251, 13,135,190, 85, 68, 41,215,148, 0, 30,202,157, 14,161, 41, 4,164,193, 72,201, 87,143,198, 81,130,104, 86,
+ 18, 10,171, 78,167,127,215,162, 87, 92,129,116,201, 50,227, 18, 53, 88, 49,200, 72, 82,194,232, 15,191, 68,243, 75,164,201,237,
+119,219, 75,118, 1, 14, 64, 72, 80, 64, 9, 38,157, 71, 77, 68,213, 46, 40, 36,234,133, 95,216,181,219,162, 51,119,102,129, 75,
+ 27,145,239,209,163, 92,164,161, 61, 23,145, 1,175,242,242,174,127,246, 53, 75,188,189,251,143,215,162,121, 69,217, 15,147,175,
+ 87,185,237, 77, 96,240, 87,227, 35,136,160,240,213, 56,146, 22,225,144,100, 71, 33,141, 21, 24,181,190,234,208, 27, 0,151, 15,
+190,135, 79,171, 40, 62,168, 5,220,137,246,163, 33, 0, 40, 50,119, 61,124,117, 33, 34,236,156, 72, 40,119,179, 6, 53,181, 15,
+ 54, 0, 42,167,196, 62,144, 52, 93, 89, 62,232,148, 45,219,211,113,135,146,159,223,109, 74,104,226,178, 98,131, 41,178,183, 48,
+ 9,100,224, 77, 33,196,128,167, 8,113, 68,211,222,106,117, 1, 94,136, 18,183, 85, 43, 50,157, 30, 77,166,223, 28,210,142,252,
+ 31, 80, 6,154,115, 89, 10, 98,110, 93, 85,253,212,200,173,216, 63,108,110,185,139,173,243,131,108,121,134,222,105, 37, 33,107,
+ 75,206,165,181,112,175,136, 10, 42,250,181,214,122, 43,165,254,239,168, 86, 8,120,135, 39,192, 2, 71,222,193, 93,195,172,206,
+192, 59,215, 19, 74,203,100, 93,231, 63,115,152,170,200,148,227,146, 93,229,226,183, 22, 86,161,191,211,175,160,237,150,210,195,
+130,245, 92, 10,255, 0,167,160,102, 31,197,208,105,242,219, 50, 72,108,130, 20,106,147,236,222,186,141,112,218,116, 86, 39,118,
+248,187,241, 68, 59, 91,137,207,204,187,133, 26,201,109,108, 58,243,171,111,147, 70,181, 80, 42,162,130,105,236, 30,193,163, 89,
+ 49, 88, 37, 87,220,102, 25,125, 52,206,240,201, 56,127,165, 91, 29,189,228,184,227,214,118,203, 14,177, 33,101, 5,178, 91, 89,
+ 69, 84, 1, 73, 79, 32, 40,122, 82,131, 92, 97,183,118, 65, 35,154,208,199, 31, 1, 5,114,191,108,173, 87,174,228, 98,226, 12,
+149, 41, 74,199,164,170, 26, 84,176, 66,148, 36,214, 97, 77,127,178, 87,250,117,141,245, 22,193, 92,105,159, 51, 22,241,227,255,
+ 0, 98,243, 46,191, 80,156,221, 52, 66,237, 60,111,243, 99, 15, 92,147,201, 37, 52,170,136,216, 16, 71,142,188,182, 57,211,102,
+ 0,191,130,230,141, 8,236,254,210,217, 32,182,242,163,179,201,226,180, 22,200, 21,161, 7,151, 93, 44,140, 28,203, 64, 62, 92,
+136,240, 37, 76, 98,145,201, 5,238, 78, 61,141, 92,236,177,224,221,164,136,239,182, 2,138,125,148, 53,174,192,210,164, 83,233,
+250,245,208,116, 47, 74,231,102,105,229,152,247,144,195,239,251,143,228,156, 97,153,241, 8, 4,110,242,118,215,183, 22,183,109,
+143,190, 93,116,178,175, 45,224,146, 8, 90, 85,247, 86, 5, 72,168,251, 62,189,186,203,126,148,230,202, 64,198,200, 17,227,203,
+248,247, 38,158, 41,138,222,215,169, 46,208,221,176,194,166, 46,106,143,114, 40, 42, 91, 15, 52,224, 80, 59,147, 66,144, 66,128,
+241,166,177,242,254,153,245, 90, 38,194, 17,152,228, 65, 30,230, 40, 70,137,197, 6,196,251,147,108,139,113, 13, 49, 61,165,161,
+105, 82,209,197,193, 66,133, 30, 33, 94,224, 79, 74,235,159,201,244,214,102, 49,254,165, 50,143,179,236,232, 83, 18, 8,221,171,
+ 37,125,134,167,203,229, 95,197,230,154, 26,142, 42,232, 69, 53,155, 44, 93,120, 32,139, 8, 8,180, 14,224,187, 43, 39,102,222,
+237,124,183, 83, 66, 62,162,117, 8,226,130,234, 62,113, 82, 51, 28,177, 22, 40, 43, 76,115, 85,149, 5, 26,111,196, 42,157,124,
+ 62,173, 84,167, 9,230, 95,130,209,174,237, 21,129,233,207, 56,126,107, 46,203, 42,226,216, 82, 27, 10, 38,149, 41,221, 66,167,
+220,160,117,222,122, 90,141,176,182, 93,171,186,244,137, 54, 72,158,196,203,222,172,230, 69,226, 20,216, 41,124, 58, 63,149,221,
+ 89, 10,175, 94, 86,151,154,165, 71,133, 87,175, 78,232, 92,214,175, 84,248,108, 15,205,112,181,189,245,201,150,135, 92,235, 82,
+106,106, 55,234, 79,233,215, 64, 34, 10, 29,164,136,150,224,139, 64, 46, 75, 9,116,252, 45, 2, 27, 66,143, 80,147, 93,254,146,
+ 70,164, 98,234,157,101,164,202,210,236,176, 66,111, 16,162, 52, 79,158,217,111,205, 90,250,242, 94,224, 19,238, 26,200,234, 37,
+184, 46,159,164,142, 47,205,118, 95,117,109, 12,221,189, 49,133, 60,134,215, 46,215, 58, 20,182, 92, 45,149, 60,148, 72,105,200,
+174, 37, 42, 27, 37, 10, 81, 65, 85,122,144,157,121,231,170, 43, 54, 97,159,251,178, 7,241, 30,237, 87, 63,235, 26, 67, 70,206,
+223,204, 42,119,183,144,173,232, 97,201, 18, 77, 36,160,145,196,251, 43,175, 46,148, 93,112, 18,144, 83,109,183,200, 48,157,150,
+250, 22, 0,173, 54,250,105,160, 77,217, 85,153, 9, 63, 42,186, 95,103, 60,161, 8,242,113,210,174, 59,248, 40,106, 84,200, 13,
+ 10, 25,134,224,133,230,107,147, 39, 21, 76, 9, 70,146, 27, 36, 40, 30,181,173, 53,106, 86, 54,137,227, 20, 58,215,114,153, 14,
+206,171, 92, 90,249,203,216,125, 0, 83, 72, 37,181,215,171,141,154, 75,211,163,188,163, 69,148,210,163,218,116,206,157,145,171,
+110, 6,252, 75,227, 55, 82,162,165, 45, 39,226,246, 80, 83, 82, 36, 33,237, 41, 99, 63,179, 92,158,191, 25, 76, 87,203,169, 6,
+158,208, 52,160, 66, 91, 74,139,142,195,202,108, 16,158,148,251, 71,202,119,225,229, 67,236,212,173,156, 93, 68,196,160,175, 68,
+189, 54,137, 23, 67, 90, 80,145,237, 2,135, 79, 89,137, 81, 98, 17,238,208,102,139,122,210,242,159, 85, 95,111,150,223, 70,138,
+ 64,137, 76, 9, 40,149,183, 38,188, 63,112,115,201, 6,170, 89,223,127, 29, 81,148,225, 50,234,102, 37, 67,201, 45,217,125,232,
+188,148,114, 12, 56,118,235,236, 7, 77, 43,225, 29, 19, 10,202,204, 83, 24,200,173,145, 93,140,225, 37, 73, 4,167,175,142,250,
+107, 50, 34, 20,132, 17, 76, 73,153,113,238,174,196,184,168,135, 92, 5,202,159, 13,245, 31,134, 65, 75,104, 69,185,134,224,186,
+243,194,166,156, 74,190,131, 77, 3,107, 37,181, 44,197,129, 25, 55, 69, 92,121,115, 2,165, 59,253,122, 60,166,120, 34, 8, 58,
+109,178,229,207, 65,179,252,176, 77, 89, 89,160, 81,251,116, 43,102, 8,101, 17, 4,175,146, 79,155,114, 91,136, 46,113, 20,246,
+251,119,219, 82,140,246,104,201, 16,143, 98,216,252, 89,209,163,115, 80, 83,193, 36,171,244,104, 22,100, 18, 83, 16, 0, 81,243,
+ 44, 72, 8,138, 83,107,224,215,197, 93,253,130,186, 53,115, 96,233,182,165,251, 28, 8,118, 88, 10,152,241, 10,121,102,155,245,
+212,231, 97, 60, 20,163, 16, 19,222, 45,103,106,242,194,101,172,209,134,144, 9, 81, 62,234,234,173,150,201, 45, 22,203, 21,204,
+ 55,112,114, 99, 42, 30, 67, 42,242,219, 3,161, 61, 6,128,204, 18, 91,251,153,145, 41,232,105, 71, 46, 75,162,121,111,210,163,
+ 70,174,173, 18, 66,110, 50,154,131, 97,107,229,135,197,196, 21,159,125, 43,167,218, 93, 74, 43,198, 7, 14, 70, 73, 30, 91, 64,
+ 20,182, 18,119,222,155,244,210,156, 74,114, 2, 7,106,177, 94,224,101, 47,176, 62,234,106, 81, 83,225,255, 0,209,171, 85,152,
+144,161, 40,149, 38,228, 47, 14,172,173, 68,134,144,119, 30,250,211,245,106, 22,136,144,193, 49, 5,107,181,217,114, 23, 37, 51,
+118, 74, 73, 64, 81, 41, 30,255, 0, 13, 42,118, 71, 68,138, 89,206,238,153,164,108,171,131,168, 87,146,162, 43, 74,236, 58,106,
+236, 99, 2, 10, 28,201, 10, 67, 87, 27,220,165,130,148, 41, 69, 0, 0, 7,182,154,203, 17, 27,212,181,101,178, 76,156,174,230,
+ 91, 77, 20,150,154, 21, 95, 95, 1,173, 41,152,136,160,135,116, 82,229, 58,235,123,176, 53, 9,178,106,143,128,253, 91,106, 56,
+243,142,210,149,160,190,136,152,187,223, 63,240,241, 88,233, 73,249,222,105, 72, 59,215,143, 19, 95,211, 77, 19,204,135, 30,229,
+ 29,133,144,167, 50,198, 17,120, 44,169, 91, 26, 84,125, 85,214,116,104, 44, 10,186,108,209, 31,201,114,146,206, 0,166,210,170,
+167,144, 41,247,111,169,198,151, 81, 18,117, 3, 14,157, 42,243,219,219,156,180,110,227,102,164, 15,175, 66,157,109, 96, 72, 88,
+235,197,198, 29,198,243,133, 38, 84, 38,202,148,154, 3, 65, 93,193,247,106,208,136, 72, 73, 45, 51, 14,224,187,145, 92,160, 82,
+218, 91,216, 31,111,253, 6,172, 0, 25, 41, 18,172,251, 62, 76,229,175, 24, 68, 71, 21,199,205,103,240,190,193,183,233,209,170,
+168, 21, 74,195, 39, 67,174,249,179,211,110, 86,219, 58, 9, 46, 69,108,184,189,252, 77,122,233,237,172, 69, 26,178, 85, 43,234,
+243, 37,189, 35,180, 83, 35,182, 20, 45,174,206,142, 38, 81, 43,226, 83,200,148,213,105, 52, 7,144,241, 26,244,223,166,213, 1,
+ 57,200,142, 32,177,211,248,191,220,183,250, 59,139, 1,239, 92,163, 26,238,165,184, 2,213,183, 77,245,233,209,134,233, 47, 69,
+ 57, 27, 32,235,241,249,203, 83,192, 21, 80,131,176,220,245,209,101, 6, 40,117, 93,186, 62, 10,229,244,153,107,150,223,114,109,
+247,166, 88, 14,165,183, 26,121,206, 73, 37, 73, 8,115,226, 80, 41, 5, 67,168, 32,141, 83,206, 47, 2, 21,188, 82,250,242, 95,
+ 68,253, 89,101, 82,110,158,158,226,222,108,107, 66, 67,145, 20,196,148,238, 16,243, 43,110,138, 74,131,117, 41,226,174, 42, 73,
+ 29, 55,167, 74,107,146,194,164,249,172, 85,171,174, 16,129, 61,171,147,187,127,119,149,131,225,151,108,145,153,113,219, 19,223,
+101,192,216, 62,105, 65, 67,124, 10,148,164,108, 79, 26, 3, 67,225, 95,118,181,186,223, 68,163,169,249,112,180, 22,137,125, 52,
+126, 58,118,113, 61,133,113, 25, 85,139,184,242, 65,167,247,166,226,250,150,203,215, 86,214,166,213,243, 45, 7, 22,186,240, 73,
+169, 69, 82, 41,191,128, 35,221,173, 92, 62,155,141,141, 16, 42,172, 15,102,191,128, 89,147, 2, 37, 14,202,251,151, 62,122,129,
+129,121, 49,194,195,106, 75, 37, 42,117, 13,168,138, 40, 18, 14,219,244,223,221, 77,104,198,198,228, 2,137, 61,139,205,130,251,
+103, 93,201,219,117,214, 67, 82, 82,251,128,184,219,224, 20,115,227,200,148, 5,148,240,175,176, 16, 61,213,211, 74,201, 18,225,
+ 60,102, 6,133, 87,125,233,236,205,165,155,130,110, 56,180,163,242,139, 10, 90, 25, 66,214,226, 77,106, 83,192, 44,169, 65, 52,
+240, 81,168,213,170,178, 73, 12, 80,229, 0,171,100,203,187,226, 76, 61, 26,109, 23, 8, 20,165,198,214,223, 34, 90, 66,234,165,
+ 26, 42,155,110, 13, 5, 52, 97,105,228,134,204, 23,140,179, 44,183,220, 98,176,221,144, 5,176,210, 80,180, 58,129,202,187, 4,
+144, 69,107, 78,170, 3,195,245, 30,171,228, 56,148, 59, 0, 60, 23,172, 27,189, 89,142, 47, 36, 38, 12,133, 44,185,196, 45, 15,
+ 56,162,133, 83, 96, 22,149, 29,192,216, 10, 17, 77, 80,234,125, 23, 11, 62, 6, 54,214, 59,136, 0, 17,238, 84,229, 72,151, 37,
+209, 93,186,239, 13,155, 33,186,183,121,189,197, 48,156, 40, 75, 65,198,255, 0, 21, 32,154, 2,161, 68,208, 18,125,166,131,175,
+134,254, 79,213,190,157,221,140,101, 58, 37,230, 68,106, 1, 12,124, 57,187,123,202, 12,176,149,207,103,197,241, 78,225, 91,151,
+ 6, 52,216,238, 44, 2,190, 13, 60,219,138, 6,191,181, 69, 19, 83,239,215,152,223, 70, 70, 57, 50,182, 18, 29,228, 17,238,112,
+134, 98,151,114,252,178, 39,105, 27,131,131,195,119,201,185, 75, 87,204,149, 2, 65,226, 84, 17,212,127,100,107,208,189, 43,142,
+101,131,230, 31,230,252,139, 47, 72,244,139, 87, 91,255, 0,121,108,177,102,174,220,190,114,109,229, 5, 54,248, 54,201, 41, 88,
+ 53, 87,154,226,218, 80, 27, 13,190, 53,171,166,189, 15,164, 87,161, 79,214, 44, 62,116, 66,161, 45,238, 56,243,171,120,245, 65,
+ 59, 18, 5, 55,165, 7, 79, 19, 77,106, 19,170, 52,100, 54,183,106, 47,107,100,178, 20,146,121, 60,181, 37, 3,217, 94, 32,114,
+175,210, 78,156, 29, 18,136, 14, 11,104, 53,251,202,182,123, 29, 0,156,149,190, 42, 10, 66,150,146, 87,202,187,141,171,183,217,
+172,140,229,189,211, 72, 1,118,245,246, 44,145,233,162,253,112, 67,126,115,205,252,132, 68, 37, 47,161,151,120,184, 92,113,197,
+ 36, 57, 94, 97, 33, 9,170, 18, 9, 32,248,107,132,245, 4,141,120, 22, 22,226, 64,239,237,127,187,177, 97,122,206,248,237,140,
+ 7, 29, 79,185, 81, 16, 68, 8,209,151,113, 67,148, 82,211,247,125,228, 83, 94, 77, 25,149,230,178,213, 47, 76,242, 69,201, 49,
+ 24, 86,210, 13, 85,191,141,107,161,202,221, 89, 2, 81, 70,172, 22,184,235,185, 37,114,126,235, 73,167,184,211, 67,144,116,162,
+ 8, 8, 14,125, 97, 84,151,144,243, 95,185,125,116, 32, 31,237, 31,244,104,149,105,197, 73,148, 41,177, 90,180,200, 41,109,170,
+136,205,142, 71,111, 16, 63,215,169,151,226,155,114, 21, 19, 36,249,251,162, 90, 90, 72,109, 59,133, 83,110,181,211,194, 36,148,
+210,179,181, 48, 92,115,230,236,147, 89,183,172,143, 55,134,213,250, 53, 96,208, 83,121,168, 12,172,162, 60,136, 34, 77, 65,116,
+185,191,215,215,245,104, 70,178, 20, 60,224, 74,107,129,148, 90,110, 61,185,146,185, 44,165, 75, 36,165, 4, 15, 18,105,253, 26,
+ 13,180, 18, 93,212,227, 32, 80,171,197,186,213, 19, 1,155, 53,196,143, 51,203, 33, 3,199,238,234, 24,178, 50, 46,165, 32,171,
+206,214, 64,110, 4,180,195,121, 6,143,146,181,127,180,107,171,153, 51,113,162,140, 67, 43, 2,211,109,139, 14,242,166, 56,241,
+ 73, 53, 79, 77,197, 14,177,235,119,101, 34,156,156, 77,170, 38, 55,230, 60, 0,113, 41,169, 86,221,104, 71,244,104,115,150,227,
+224,131, 41, 23, 80, 49,117,198,155, 96,145,118,112, 14, 9,168,173, 61,244,210,147,168,204,151, 64,173,205,162,239,127,126, 98,
+ 69, 25,101, 42, 82,136,219,225,165,117,111, 24,148,162, 75,173,136, 72,188,218,102, 51,111, 79, 37, 41, 42, 74, 0,246,131, 79,
+215,162, 89, 47,140, 4, 66,233,111, 9,192,242,123,179,142, 14, 10, 72, 99,225,114,181,241,248, 78,172,202,200, 69, 56, 37,214,
+236,138,201,144, 91,236, 95, 45, 24,126, 59, 46,209, 99,220, 70,133, 27, 32, 74,125, 80, 73,216,230, 71,113,118, 60,184,234, 33,
+162, 0, 88,220,245, 58, 54,248, 20,128, 36, 39, 44, 31, 29,190, 89,239,237,177,112, 37, 80, 84, 6,254,192,119,213,121, 8,238,
+ 67,178, 37, 66,239,246, 66,171, 12, 2,204, 58,144,165,124, 60,122,238,106,118,213,184,214, 36, 64, 80, 50, 32, 42, 90,127,114,
+174,134, 92, 91, 97, 73, 10, 42, 28,146,107,215,174,175, 28, 32, 2, 81,180,149,104, 61,221, 79,242,183,111, 22, 80, 72,158,226,
+119, 30, 61, 53, 67,246,160,201, 41, 72,146,134,246,215, 63,126, 77,141, 82,229,214,133, 69,195, 90,239,212,233, 89,136, 55,132,
+198,122,169, 55,220,186,109,198,202,212,213,215,148,137, 9, 72,175,130,121, 83,245,104,194,144, 17,119,232,157, 35, 64,145,125,
+199,219,105,148,254, 27,128, 2,175,102,213, 58,205,182,192, 9,100, 65,162,120,198,109,182,108, 79, 10, 89,104, 15,159, 85,121,
+145,214,180, 26, 0,153,146, 78,171,247, 47, 18, 95,202, 20,243, 91,175,113, 79,104, 3, 86, 54,104,166, 39,162,215,113,191, 37,
+ 73, 91,142,167,138, 66,136, 88,253, 7, 83,141, 74, 41,155, 8,200, 98, 77,142,136,160, 2,144,161,199,233,213, 91, 98,197,148,
+ 93,121,207, 97,219, 98, 78, 55, 89, 8, 74,163,146, 16,118, 27, 84,255, 0,175, 82,216, 83,186,137,134, 91,225,200,154,244, 38,
+ 80,146,226,135,152,131, 74,251,244,198,178, 20,244, 68,174,150, 6, 27,182,159, 33, 32, 60,237, 82,178, 7, 77, 51, 30, 9,152,
+ 37,113, 13,120,250,218,113, 96, 41, 5,101, 36, 30,149, 42,210,216,145,138, 36, 30,144,110, 5, 94, 80,160, 72,114,158,227, 95,
+244,104,111,162,139, 42,114,221, 37,203,238, 72,194, 83, 80, 22, 40, 72,254,238,186, 31, 36, 70, 58,170, 59,137, 1, 63, 42,195,
+ 54, 69,181,203, 60,138,169,130,161,199,232,214,101,151, 0, 88, 43,245, 82, 89, 59,118,123, 25, 98,215, 99,157,109,150,154, 33,
+ 96,138, 43,198,163, 84,109,183,113,112,167, 26,245, 79, 88, 38, 37,107,139,137, 46, 28,148, 10,149, 26, 84,120, 84,143,233,210,
+149,146, 68,140, 0, 74, 93,195,193,237,177,228,166, 84, 84,132,199, 9,240,218,189,116,133,242,100,251, 65, 40, 13,234, 0, 74,
+173,145, 15,221,165, 65,254,206,218,181, 86, 73, 3,193, 52,234, 14,183, 79,198,173,240,175, 2,232,208,252, 87, 82, 27, 26,108,
+156,195, 56,232,148,105, 0,164,191, 84, 61,188,178,228, 93,177,149,100,147, 33,200,197,198,148,235,110,199,228,178, 93, 79,198,
+ 7,150,144,121, 84,128, 79, 78,149,174,187, 79, 64,117,139,113,179, 35, 0, 6,201, 22,147,191, 2, 27,139,176,237,252,149,186,
+108,242,164, 8, 92, 16,214, 61, 53,169,138,134,235,110, 9, 8, 87, 5, 0,154, 17, 77,183, 73,233,175,163,227,140, 14,160,174,
+146, 29, 72,202, 41,130,211,218,220,198,247, 33, 44, 91,224, 63, 33,178, 43,201, 13, 44,168, 14,189, 18, 43,183,186,186, 29,241,
+ 17, 10,214, 53,196,151, 11,161,253, 53,246,251, 35,199,153,114, 98,237,242,221,122, 58,144,239, 40,136, 90,164,182,148,237,205,
+ 8, 69, 92,174,221, 66, 78,222, 26,192,202,176,153, 50,233,168, 48, 21,187,177, 86, 71,127,253, 64, 91,114, 75, 3, 56, 5,190,
+100,241,108,141, 73, 82,143, 4,177, 71, 0, 53, 71, 5,167,204, 74,201,221, 84, 66,106,116,248,248,123, 37,187,154,192,203,204,
+243, 6,213,206, 25, 62,107, 38,254,219,168,132, 30,136,132,133, 37,106,153, 32,185,205, 41,173, 62, 6,155,170, 65,254,246,181,
+106,165,203,149,129,118, 67,104, 18,101,218,101,253,229,162, 68,194,164, 67, 66,146,227, 74, 87, 53, 36,131,247,130,121, 29,171,
+212, 29, 93,133, 65,150,116,237, 46,152,237, 55, 81,114,181,162, 81,121, 46, 60,214,201, 91,206,135, 28, 27, 80,208,148, 3, 79,
+113, 58, 9,164, 58,113, 97, 80,231,223,203,137, 15, 49, 33, 65,228, 20,182,243,133, 11, 20,226, 62, 26, 18, 0,240,209, 99, 80,
+ 81, 54, 39,142,207, 95,162,221,231, 42,220,250,188,201,193, 1,182,212, 20, 57, 30, 68, 55, 68,146, 64,162, 71, 77, 6,200, 54,
+168,181, 77,210,215,122, 49,111,228,179,110,152,187,207, 45,198, 82,234, 20,177, 68,128,177, 66,180, 16, 8,235,241, 26,239,227,
+165, 76,212,172, 28,149, 64, 49, 11,245,154,228,171, 57, 74,215, 21, 91,149, 0,160, 74,200,169, 78,227,168, 4,138,106,208,177,
+ 3,105, 26, 45,234,199, 28,110,226,155,106,199, 21,157,157, 60,146,158, 28,182, 9, 62,102,195,235,211,139, 10,111, 45, 88,118,
+216,119,235, 53,169, 6,204,182,150,194, 20, 86, 22,132,182,149,171,144, 0, 32,114, 82,185, 36, 83,197, 26, 25,176, 58, 52, 70,
+139, 94, 23,146,101, 81,114, 17, 63, 25, 97,216,153, 31, 18, 67,144, 29,109,161, 67,177, 42,105, 52,228,107,239, 3, 80,190,154,
+178, 33,182,216,137, 14,240,232,114,168, 30, 72,159,115, 59,177,146,223, 50,155, 92,188,201,106, 55,168,136, 68, 68, 62, 91, 82,
+ 3,220, 87,205, 60,184,169, 98,190, 4,130, 53,146,122, 5, 56,216,230, 52, 6,139,146,218, 54,164,147,248,173,126,145,159,228,
+ 89, 24, 30, 31,197, 93, 88,124,213,220,241,139,147, 16,148, 0, 48, 66,222,124,144,132,178,148,138,169, 41, 53,253,162,106, 78,
+155,165, 85,240,151, 90, 93, 94,207,235,130, 15, 32,170, 75, 36,201, 13, 7,192, 9, 92,102,212, 28, 21,219,110,116,173, 9,241,
+165, 6,173, 69,209, 4,128, 26,113, 70, 45,178, 92,184, 5,203,113,207, 41,166,194, 82,223,130, 81,182,202, 53,241,161,160,212,
+228, 9, 14,137, 93,162,178, 34, 53,237, 87, 39,166,116, 71,159,126,110, 45,172, 46, 83,109, 58,134,252,228, 2, 66,156, 38,128,
+ 36,117, 38,167,111,209,172,108,154,223, 78, 43,160,199,188,199, 83,162,234,142,250,102,179,152,198, 96,246,162,198,243,114, 33,
+148,137, 55,165,178,220,103,129,184, 21, 87,224,125, 60,156, 79, 4, 81,178, 2,130, 77, 42, 69,117,228,126,179,234,162,100, 99,
+194, 64,198, 39, 86,110, 62, 60, 87,155,245,188,179,147,121, 35,130,166,228,219, 47, 44,199,114,156,144,210, 10, 80, 18,161, 78,
+158, 58,225,231,116, 34,177,132, 9, 11,202, 49,233,110, 95, 35, 44,172,143, 48,164, 2, 60, 14,170, 78,224, 82,140, 19, 85,226,
+204,237,161,196,192,117, 92, 36, 43,170,188,119, 26, 7,156, 81, 4, 2,135,124,118, 44,118,163,193,121, 92,159, 73,248,125,253,
+116,171,188,186,127, 40, 45, 22,232, 76, 75,146,252,121, 66,175, 61, 64, 71,187, 79, 60,130,116, 10, 63,183,209,101,203,182, 81,
+ 93,182, 25, 54,202, 7,218, 60,151, 78,180,241,209,106,200,218,135, 60,103, 72, 25, 86, 7,116,187, 94,219,187, 54,178, 89, 80,
+ 8,167,179,254,149,214,135,250,136, 32,168,126,213,150,219,159,111,223,128,227,112,119, 8,224, 86,125,228,141, 12,228,104,232,
+ 39, 27, 84,110,211,139,200,180,217,216,128,106,168,178, 8, 82,135,178,134,186, 17,200,220, 17,124,157,165,126, 95,218,106,100,
+ 68,219, 93,170, 35, 41,105, 65, 73,232, 64,235,182,154,175,128,104,150,199, 58,161,115,227, 91,172, 87, 52,184,216, 9, 9, 72,
+ 32,255, 0,119, 82, 36,201, 70,205, 20, 43, 94, 81, 38,237,125,117,244,254,237, 2,136, 62, 26,140,233, 16, 14, 80, 98, 73, 42,
+ 79,115,178,249,240,177,120,241, 98,146, 93,124,248,117, 53,213,108, 10, 55,146, 74, 86, 22, 94, 49,172,233,246,123, 97, 58, 27,
+ 64,170, 67, 71,226,250,119, 63,211,171,211,198, 26, 4, 25, 79, 84,115,183,211, 31,147,133, 23, 18,209,249,217,202,242,138,252,
+104,118,210,156, 5, 72,245,141, 17, 44, 22, 36,156, 94,242,228,121, 20, 80, 79, 45,143, 77,197,107,170, 54,203, 87, 71, 21,167,
+204, 10,116, 88,208,101,121,233, 72,126, 66,213,184, 27,237,176,213, 57,185, 41,205,101, 47, 92, 96,139,237,213,216,204,167,225,
+ 82,137, 32,123,180,183, 24,135, 72, 86, 81,155,119,111, 91, 45, 71, 97,180, 15, 57, 91,145, 79,163, 74,171, 73,213, 48,129, 83,
+220,180,197,135,118,106, 11,212,249,128,133, 41, 64,251,180, 83, 39, 75,105, 85,254,121,143, 91,110, 51,147,252,197, 1,109,135,
+ 56,164, 30,149, 39,109, 88,141,178, 18,209, 71,106, 66,185,246,142,195, 31, 41, 55, 87, 18,146, 18, 63, 9, 30,253,107,126,240,
+178,136,136, 69, 91,237,125,166,231,106,114,229, 50,139,134, 15, 26, 30,128,245,166,170,207, 32,130,164, 34, 22,182, 48,251, 53,
+190,206,166,216, 1, 12, 10,128, 7,141,116,142, 73,220,155,203, 5, 7,185,198,132,184,241,173,204,236,134,213,205, 53,246,214,
+163, 79, 27,228,120,164, 43,213, 91,120, 43, 45,219,240,212, 46, 77, 42,173,211, 95,160, 29,101, 93, 18, 45,117, 46, 40, 60,236,
+173,147, 33,216,124,255, 0, 9, 64,212,123,250, 87, 87, 43,173,148,118,175, 61,191,194,164, 95, 39, 59,121, 7,240, 80, 84,164,
+251,197, 53, 9,204,196,164,129,101,205,197,110,236,182,212, 66, 91,113,101, 4,123,198,218, 52, 37, 34, 17, 97, 16, 87,238, 36,
+226,109,151, 37, 41,181,127, 10,149, 4,159, 96, 36, 17,168, 90, 29,138,129,142,169,159, 41,109,139,237,157,232,104, 80, 60,207,
+ 48,107,211,106,232,209,147, 4,194, 11,243, 6,110, 61,158,224,137,202, 85, 80,144, 26, 62, 58,148, 62, 32,156, 7, 68,111,207,
+205,182, 73,118, 42,197, 89, 90,188,214,143,182,187,106, 70, 17, 36, 40,149, 89,102,153, 44,200,239,182,218, 1, 40, 76,132,115,
+167,176,171,125, 18,117,197,146, 4,171, 45, 66, 55, 36,206,219,129,128,167, 72,254,208, 41,166,178, 20,119,104,171, 60, 39, 27,
+105,171,250,228, 74,103,203, 67, 42,224,216,161,233,211, 90,211,201,209, 76,212, 19,107,225, 49,178,102,227,160,255, 0, 15, 84,
+144, 7,176,235, 46,113, 36,186,176, 44, 96,201,138,225,124,102,219,118, 85,189, 0, 36,134,195,155,120,232,120,213,153,161,217,
+ 61, 81,198,115, 38, 23,101,141, 38, 50,197, 43,193, 64,120,158,159,209,163,206, 59,100,201,226, 73, 8, 93,218,246,139,162, 29,
+ 74,212, 20,134,234, 69, 60, 52, 19, 23, 68, 35, 68, 14,232,243,115,226,183, 57,161,180, 97,192, 29, 56,208, 50,158,140,165,187,
+ 33,183,152,101,199, 55,229, 64,157,189,189, 52, 21, 48, 66,211,147,121, 14, 56,150, 93,169, 82, 0, 74,210, 9, 27, 31,160,215,
+ 69,162,217, 87, 45,195,138,112,197, 80,157,251,244,150,235, 63, 51,220, 30,220, 72,144,171,217,252, 85, 68, 33,151, 80,186,212,
+148,165, 10, 77,106,126,147,175,110,244,143,212, 81,165, 25, 0, 55, 34, 63, 53, 98,191,135,130, 87,244,251,234,102,217,129,102,
+236, 98,189,194,199, 82,153,173,150,210,250, 94, 74,152,146, 84, 13, 1, 9, 65, 28,171,224, 55,215,168,100, 84, 50,161,186,185,
+184, 62, 11,160,193,207,140, 15,196, 23, 96,247,155,214, 94, 13,143,118,105,201,125,186,132,252, 91,252,150, 82,134,248, 63,229,
+ 42, 59,171, 65,163,128, 56,216, 93, 1, 21, 62,223,110,176,232,233,114, 19,121, 45,108,174,171, 25, 71,225, 95, 61,178,188,179,
+ 44,202, 47,207,190,212,246,213, 50, 81,114, 93,205,247, 75, 78, 5, 40,142,101, 68, 52, 84,175, 48,154,159, 3,174,134, 49,137,
+ 92,197,150, 21, 14,208,197,237,114, 87, 22, 4,180,195,183,121,137,229, 33,212,186,154,182,164,141,184,146, 16, 15, 65,190,143,
+ 29, 21, 41,241, 76,177, 49,108, 94, 57,117, 78, 60,143,230,139,226,176, 67,136, 14, 56,179,224,164,113, 85, 54,175,179,233,212,
+101, 97, 9,180, 40,109,217,219, 69,160,150,221,248, 94,111,241, 24, 44,180,177,211,115,205, 60, 73, 59,120,214,154,136,176,168,
+146, 16,116,183,252,246, 89,139,110, 82,158,101,105,171,143, 52,219,137, 72, 42,241, 9, 88, 10,229,169,249,189,168, 64, 57, 93,
+ 23,233,187,211,124,139,108, 35,151, 93, 88, 76, 88,204,121, 74, 75, 79,209,165,186,207, 34,165,175,115,200,141,136,175,178,190,
+202,235, 59, 39, 60, 56, 11, 75, 31, 20,170, 59,212,151,112,161,220,243,185,247, 27,120, 66, 22,243,252,208,145,247, 19,197, 97,
+ 41, 41, 6,187, 4,164,109,171,244, 65,160,171,219, 55,146, 19,113,202, 33, 93, 88,136,234, 79, 55, 35,165,182,155, 91,102,129,
+213,114, 43,243, 20, 18, 41,202,139,160,250, 43,227,169, 68, 40,202, 97, 17, 98, 38, 59,111,120, 73,152,133, 25, 73,162,252,197,
+172, 44,112, 29, 70,251,113,175,133, 55,212,228,234, 34, 65, 16,191,247, 34,222,109, 14, 88,237, 37,182,152, 5, 38, 68,132,169,
+199, 22,162,234,232,148, 2,176, 64, 28,169,176,160,210,174,135, 46,161,102, 78,212,177, 96,115,231,174,239, 79,121,231, 68,120,
+252,154, 83,229,104,142,210,202, 9, 85, 10,148, 66,149,211,194,160, 83, 70,149, 69, 2, 25, 40,141,231, 60,139,121,129, 38, 44,
+104,145,230, 70, 74, 1, 5,106, 83,156, 55,218,170,124,241, 81, 7,112, 64, 52,212,170,139,104,121,163,249,175,170, 98,237,223,
+113,209,255, 0,135, 55,196,161, 72, 85,217, 49,214,148, 64, 75,116, 82, 16,131,183, 22,197,106,107,226,118, 29, 72,211, 28, 47,
+ 41,246,240, 42,228, 51, 13,146, 4,242,209, 32,218,123,131, 42,115, 10,109, 6,143,127,237, 43,229, 82, 18, 9, 60, 42,126,195,
+191,134,171,138, 73, 28, 22,151,157, 16,123, 83, 85,146,237, 35, 49,151, 26,207,143, 52, 95,100, 16,216, 75, 97, 92, 66,137,216,
+154,237,183,215,168, 89, 0, 2, 61, 51,109, 79, 53,220,158,145,113, 88,189,148,198, 25,205,242, 48,129,127, 45,151, 45, 81, 84,
+194,220,242, 86,107,252, 75,161,189,194,252, 16, 15, 78,180,173, 41,200,117,254,187, 71, 78,131,203,231, 60, 3, 63,181, 7, 59,
+168,233,182, 39,218,153, 31,188,204,191, 78, 55, 41,191,141,113,125,222,106, 81, 9, 78,213,167, 68,132,254,173,124,233,155,153,
+ 44,139,140,201,117,129, 57, 58,211,157, 24,145,173,143,200,101, 28,120,129, 81,253,173,101,137, 25,204,170,243,147, 4,161,137,
+ 92, 92,185,228,176,154, 88, 37, 10,226,174,157, 40,117,110,117, 0, 21, 67, 50,153,251,174,235,238,100, 12, 73,108,252, 41, 77,
+ 22, 62,132,106, 94, 72, 33, 48,153,116,141,122, 85,210, 83,176,164,178,146,165,169,101, 59,125, 58,170, 3, 20,104,204,186, 58,
+226,151, 14, 84, 71, 80, 9,154,126, 23, 52,204,136, 36, 81, 11,102, 72, 90,185, 63, 9, 68,132,185, 81,238,209,197, 97,212,183,
+148, 55, 31,150,204,229,204,183, 42,138,122, 58,138,146, 7,211,254,173, 52,226,201,141,139,213,152,200,203,178, 33,106, 80,252,
+ 85, 37, 73, 36,143,186, 6,250, 41, 31, 10,136,154,201,207,139,100,150,236,203,251,236,146, 9, 62, 20, 86,245,208,246,169,198,
+ 97,104,187, 88, 29,145,112, 76,132, 30, 81, 80,144,225, 35,165,104, 52,109,237,162, 26, 81,201,226, 73,154,243,142,161, 4,176,
+154,163,149, 58,106, 66,196, 9,135, 43,222, 41,136,162, 51,106,156,107,193,193,196, 15,110,250,161,153,150, 72,100, 90,234,230,
+ 83,165,231, 3,182,171, 27,102,116,230,194,159, 41,226,192,235,198,191,234,209,177,175, 53,196, 40,249, 78, 84,107, 47,110,108,
+246, 14,223, 73, 15,128,185,210,221,169, 7,173, 9,233,171, 51,203, 50, 82, 24,224, 20, 86,207, 18,221,143, 90, 35,169,105, 8,
+132,200, 43, 53,233,207,168,208,103, 97,154, 32,128, 5, 40, 72,205,210,185,210, 93, 86,238,184,162, 16,125,131,167,234,211,138,
+157, 66,114, 79, 56, 67,223, 59, 21,183,214,104,211, 77, 23,151,244,145, 81,161,202,164,254,102,137,135, 19,179,197,110, 43,215,
+ 73, 20, 15,186,190, 45, 15,113, 35,125, 82,176,238,208, 40, 25,128,136,219,111,241,160,101, 18, 22,234,135,203, 69,104,108,125,
+180,174,136, 70,208,164, 10,175,242, 12,205, 79,100,143,222,249,124, 38,173,182, 7,191,109, 88,170, 26, 58,107, 11, 4, 26,244,
+185,119,102, 35,188,210,170,242, 94, 10, 80,246,167,115,171, 52,176, 37,208,200,126, 10, 30, 97,111,150,139,188, 55, 98,142, 97,
+227, 66, 7,133,116, 99, 56,149, 2, 25,120,152,205,206,211,132, 92, 44, 41, 36,207, 75,222, 98, 71,137, 7, 69, 6, 37,144,136,
+ 40, 19, 49,239, 47, 72,102, 52,160, 67, 42,220,143,175, 76, 98, 29, 16, 58,133,123,182, 76,183, 54,185, 37, 39,201,109, 99,130,
+135,141, 14,167,183, 68,238,156,163,101, 78,205,197, 24,136,215,194,176,154, 10,125, 20,208,103, 72, 37,211, 18,202,190,200,110,
+147,237,178,100, 56,242, 84, 10,135,193,244,147,171, 53, 86, 20, 12,203, 43,159,181, 87, 73, 16, 49,136,145,194, 74, 95,125,174,
+ 84, 62, 53, 3, 84,111,135,196,134,102, 89, 83,189,204,188, 92, 78,106,155,122, 82, 79,150,249, 82,168, 61,164,127,167, 87,233,
+175, 69, 40,204,162,214, 84, 75,101,215, 96,187, 95, 49,215, 80,226, 79,246, 70,231, 66,156, 67, 41,130, 93, 18,141,115,185, 57,
+243, 9, 96, 19, 20,114, 72, 95,190,157, 52,251, 3, 50,144, 37, 67,199,110,215,153,178,154,181, 50, 21,230,149,239, 95,236,157,
+ 40,196, 4,209, 37, 58, 93,242, 39, 47,183,104,118,226, 40,166, 27, 9, 81, 61, 74,147,170,147,150,210,164, 18,182, 89,102, 97,
+167, 20,183,199,192,181,164,215,251, 85, 3, 68,140,204,194,103, 77, 5,226,111, 98,197,189, 68, 18, 15,210, 80, 20, 63, 86,151,
+145,201, 13,123,188,219, 99,201, 92,151,160,163,136, 69, 20, 8, 26,204,172, 21,162, 67,132, 24, 68,184,185,152,161, 46,213, 72,
+ 44,130,159,164,127,244,235, 70, 36, 72, 50,166, 67, 45, 25,149,235,201,186,198,186,168, 41, 33,228, 42, 58,182,216, 45, 58,142,
+ 20, 90, 68, 21, 27, 11,128,161,196,201, 23,111,197,144,219,234,163,190, 97,216,251,207,191, 74,248,188,244, 68,140,246,169, 22,
+236,148, 35, 18,157, 49,197,126, 47,153,196, 26,244, 7, 82,242, 24, 4,241,155,175,113,223,148,213,134, 52,119,149, 79,153, 95,
+153, 90,254,205,107,161, 74,181, 35,102,136,188,107,135,157,193,212, 10,199,102,148,246, 84,109,170,222, 91,148,222, 98,139, 50,
+236,221,194,236,153,149, 4, 57, 68,172,120, 87,174,136,106,209, 78, 54,178, 49, 6,242,212,124,157, 22,201, 4,112, 80, 10, 74,
+ 79,141, 55,219, 80,148, 8, 70, 23, 5, 79,122,225,237, 54, 31, 53,230,123,149, 98,137, 37,155,234,214,212, 87,166, 48,220,132,
+ 86,134,156, 11,143, 4, 54,145, 77,128, 73, 39,216, 60, 71,178,125, 51,234,121, 6,195, 76,166,240, 1,192,248,127, 45,126,228,
+122,239,213,146, 38, 82,152,142, 96,172,219, 32,221,211, 33,128, 4,110, 11, 64, 74,249,113, 0,132,186,167, 28,113, 74,223,170,
+146, 40, 58, 84,235,215, 76,137,151, 5,171, 18, 54,165,188,115,183, 86,166, 33,190,212,177,231, 78, 82, 66, 20,219,165,107,220,
+124, 68,142, 42, 64,241, 59,145, 95, 96,246, 20,241, 85,228,154, 59, 79,217,233, 93,200,200,153,237,220,117, 46, 92,247, 22,137,
+ 83, 29,217, 44,197,101, 79, 2,149, 41, 69, 60,170,118,232,127, 78,129,145,144, 42,137,145,209, 14,186, 13,178, 97,197, 89,125,
+204,238,215,162,143, 79,247,129,219, 28, 58,201, 39,185, 29,233,140,133, 42, 77,171, 26, 64, 83, 17, 31,105, 94, 83,136,126, 65,
+ 95,148,223, 21,144, 23,196, 45,105, 38,138, 0,144, 15, 55, 60,219,110, 46, 52,143,105, 93, 93, 61, 51, 31, 28, 53,174,102,121,
+ 14, 41, 34,127,106, 61, 71,122,149,192,207,119, 59,109,217, 27, 85,207, 10, 89, 91, 11, 93,131, 54,132,187,131, 14, 52, 65, 91,
+ 46, 53, 58, 52,100, 37,196,215,116, 41, 96,253,186,140,122,196,106,150,217, 75, 94,240,179,172,197,133,129,196, 8, 31,241, 7,
+247, 16,168,188, 55,185,110,246,179,184,238, 97,121,118, 51, 42,195,147,197, 83,110,203,177,101,241, 12, 41,205,182,181,249,105,
+144,149, 18, 82,243,100,138,115,108,241,250,122,235, 90, 25, 49,186, 47, 18,168,156,113, 29, 98,253,224,232, 71,241, 93, 11,221,
+ 31, 84,152, 15,109,123,111, 50,238,250,208,237,230,228,202,237,232,102, 50,197, 82, 22,128,144,144, 28, 42, 52, 9,220,236,145,
+ 79,168,105,168,195,157,147,213, 18,204,152,194, 58, 46, 16,191,119, 50,110,109,148, 57,144, 60,178,166, 95,112,172, 54,221, 56,
+182,223, 34,174, 32, 36, 1,176,160,215, 72, 43,218, 25, 96, 27, 92,186,219,110,204, 46, 49, 50, 38, 33,201, 10,105,150,221,109,
+148,114,253,170, 30, 32,208,109, 64,145,166,218,145,155, 43, 35,186, 55,246,173,248,148,124,142,206,201, 44,173,142, 46,202,108,
+ 84,166,169, 4, 4,143,235, 10, 18, 73,233, 95,177, 66, 42, 54, 77,152,170, 94, 78,125, 54,252, 27, 93,180,169,199,144, 60,198,
+221,104, 26,252, 35,226, 88,165,122, 31, 17,163, 87,161, 85,231, 39, 71, 45,185,101,198, 53,193,153, 23, 40,200, 90, 16, 18,151,
+ 8,117, 77, 6,214, 71, 21, 5, 22,182, 73,166,195,150,250, 58,174, 74,127,129,151,220,219,182,201,138,218, 27,101, 97, 42, 64,
+137, 40,169,228, 58,210,252, 67,139, 32,164,251, 15, 29, 12,192, 34, 70,194,132,225,147,215,111,186, 34, 67,124, 86,235, 74, 10,
+ 83, 65,124,131,136, 38,165,165, 43,159, 5, 37, 67,110, 38,186,177, 92,219, 66,137, 11, 72, 46,175,204, 15,183, 93,139,153, 5,
+171,244, 21, 58,228,185,132, 60,228, 55,144, 94, 91,110, 44,241, 41, 80, 77, 17, 65, 77,128, 20, 30,205, 81,183,120, 37,184, 45,
+ 72,229,196, 55,106,185,123, 91,140,227,118, 11,131, 87,152, 54,196,162,209, 12,164, 54, 22,195,117, 83,132,212,249,156,141,104,
+105,224,154,123,107,174, 35,212,158,164,175,166,192,185,121,145,160, 68,191, 60,136,171, 86,255, 0,220, 57,121, 89, 76,251,146,
+144,150, 99,169, 45, 52,219, 96, 32, 1, 90,211,225,160, 63,102,190,122,235, 93, 90,236,235, 65,176,147,247,170, 39, 36,148, 86,
+235,114, 78, 61,110,143, 62,180,145, 34,139, 4,248, 0,157, 99, 87,163,133, 8,218,232, 30, 73,148, 42,225,142,165,181,174,174,
+200, 95, 65,227,184, 26,175, 94,147, 42, 50,150,228,103,183, 86,184, 34,106, 28,113, 32, 45,182,146,162,175, 97,235,163, 74, 69,
+ 32, 66,153,220,233, 17,221,186, 48,211, 10, 28, 30, 79,196,175,102,135,143,113, 32,167,248, 89, 9,105,219,101,189, 49, 99, 26,
+121,168, 93, 83, 90, 86,149,211,234, 67,165,188, 5, 19, 34,151, 17, 16, 93,184,199, 88,230,194,185,245,247, 29, 24, 7, 9,163,
+ 32,135,192,158,137,141,155,130, 8, 4, 54,167, 73,250,191,213,162, 10,200, 42, 70,206, 74, 71,110,217,142,155,192,186, 83,147,
+111,165,194,175,126,158,196, 57, 7, 76, 24, 21,145,111, 94,100,100,241,126, 22, 24,119,227,227,236,161, 4,126,157, 79,112, 17,
+100, 55, 64,187,149, 45,135, 50,105, 51,161,236,133, 40,165, 63,237,117,208,145,107, 29,169,183, 18, 98, 36,140, 80,249,233,171,
+206,160, 54, 20,127,172,122,104, 18, 58,163,237, 5, 15,200,236,118,187, 68, 85, 88,222, 74, 76,151, 80, 20, 78,219, 26,106, 17,
+145, 67, 49, 65, 23, 29,136,150, 72,108,160,254, 58, 30,242,214,125,213,235,166,242,220,185, 86, 8, 0, 35, 63,205, 89,153,107,
+126,223, 94, 66, 58,128, 30,225, 65,163, 8, 32,146, 0, 64,231,220,230, 75,142,210, 91,168,101,167, 56,113,246,154,237,254,157,
+ 24, 86,193, 71,115,168,189,200,187, 45, 48, 90,180,180,170, 6, 80, 22,224, 29, 74,136,211,152,136,186, 24,147,149, 86, 64,188,
+201,185,228,191,202,227, 10,172, 16,143,168,157,245,126,184,124, 14,133, 62, 37, 95, 56,251,236,219, 49, 5,199, 64,163,239,173,
+ 12, 5,127,100, 1, 93, 84,200,210, 42, 60, 81, 43,214, 64,213,154, 48, 90,149,248, 77, 34,169, 3,250,196,106,181,116,104,253,
+168, 70,101,210, 83,185,111,159, 1,217, 74,112,252,219,202, 37, 64, 31,217,212,103, 91,201,149,136,203, 68,159, 43, 34, 84,251,
+203, 48,153, 63,135, 90,171,232, 27,235, 90, 20,180, 80,229, 55, 40,237,178,243,228,171,229, 1, 6, 82,149, 81,238, 77, 53, 94,
+234,152, 58, 85,216,153, 45,247, 8, 47, 92,225, 9, 52, 86,252, 77,124, 8,255, 0, 94,170,236, 36, 34,111, 82, 27, 68, 37,222,
+ 31,184, 62,223, 38, 2,168, 82, 71, 90, 10,141, 41, 56,100,196,232,162,101,130,214,202, 33, 94,225,129,197,229,148, 41, 61, 8,
+166,218, 35,151, 68,143, 4, 62,250,237,166,229, 21,171, 52,112, 15, 26,188,226,136,240, 34,191,175, 71, 23, 48, 81, 17, 66,177,
+132,195,114, 35,150,183, 8, 4, 57,248,106, 39,160, 6,186, 47,152,218,166,219,201, 19,202,108,150, 91,163,177, 24,117,170,200,
+ 31, 18,168, 54,162,124,127, 70,163, 43,187, 20,188,176,139,193,201, 45,140,203, 12,180, 66, 92,134,208, 75, 65, 62, 39,166,171,
+137,147, 36,165, 86,136,124,172, 82,207,119,156,230, 65, 53, 0, 60, 18, 72, 39,196,145, 93, 26, 89, 6, 37, 12,197,150,140,118,
+ 20, 43,189,194, 83,241,192, 63, 35, 29, 85,167,183,125, 57,158,137, 73,111, 77,157,136,214, 6, 99,162,137,113,247,133, 85,244,
+157, 11,204, 58,148,162, 59, 84,102,226,198,176,102, 77, 37, 27, 44, 40, 54,170, 83,170,182,212, 68,204,131,164,203, 47, 79, 71,
+182,103, 38, 58, 77, 3, 99,154,143,188,138,233,228,116, 72,112, 90,114,197,183,118,185,219,161,116,106, 67,168, 82,191,235, 3,
+162,213, 45,169,132, 29, 31, 75, 44,127,156, 87,119,175,240,254, 98, 45,181,219,254,237, 67, 68,243,121,168,237,228,137,219, 90,
+110, 69,178, 67,108,145,243, 8, 85, 40,105,189,124, 53,142, 74,210,218,188,217,225, 71, 50, 37, 93, 37, 80, 62,192, 13,239, 77,
+143,179, 82,140,200,213, 14,113, 5, 47,247, 2, 36, 7,173,255, 0, 39, 65, 84,185,231, 36,248,133, 31,102,167, 92,200,147,164,
+ 40, 4, 36, 44,174, 43,239, 33,168,145,119, 90,143, 58, 15, 0, 55,213,234, 38,250,149, 94,250,214,204, 86,203, 54,247,140,220,
+ 45,138, 37, 42, 43, 10, 73,247,167,255, 0,163, 86,229, 33, 19,170,140, 99,162,105, 77,177,249,137,139,104, 86,207,178,205, 83,
+244,210,154, 5,210, 3, 85, 22, 68, 49,187, 76,150,138,172,215, 4, 16, 93,170, 78,222,250, 3,160, 68,129,170,144,172,160,247,
+235, 36,252, 86,234,211, 18, 18,124,133,172,148,168,251, 58,141, 18, 50, 18, 42, 70, 12, 20, 94,229,100, 44, 98,119,219, 62, 95,
+ 45,208,205,171,128, 47, 56, 73,167, 20,129, 93,128, 36,154,120, 1, 93,104, 99, 96,203, 34, 66, 48,137,148,137, 96, 7, 51,249,
+ 32, 18,120, 5, 89,247, 55, 55,190,119,154,252,111,236,182,235, 56,108, 37, 31,229, 81, 29, 41, 65, 10, 90, 2, 84,243,129, 71,
+136, 91,148,160, 31,120, 13,190,245,117,239,190,152,244,212, 58, 69, 44,117,178, 95, 49,252,135,114,217,196,199,218, 28,241, 94,
+109,157,164,187,202,182, 68,137, 54, 48, 10,152,181, 41, 84,120, 7, 74,212, 41,201,192, 40, 18, 19, 80, 79, 77,181,210, 74,206,
+ 37,105, 70, 4,128, 22,235,247, 96,114,204,125,232,246,120,149, 92, 71, 72,113,167,219,114, 43,172,190,154,208, 26,161,103,127,
+167,125, 66, 25, 49,144,117, 41,227,144,152, 59,178,140,155,211, 55,164,140,165,252, 89, 50, 99,119,123, 45,121,139, 36, 41,212,
+113,135,227,198, 9, 66, 74,154,147,199,144, 41, 14, 45, 65,104, 63, 9, 0,138, 83, 88,153,247,249,146, 3,147,173,190,147,143,
+183,116,184, 24,135,252,191, 55, 92,249,150, 71,239,159,167,107,102, 43,219,127, 69,214,134,151,110,190, 64,110,118,103,220,137,
+ 81,226,202,254,105, 53,199, 7,155, 29,249, 82,249,183, 18, 43, 28, 18, 82,208, 41,216,215,226, 81, 82,149, 80,221, 89, 7,119,
+ 46, 74,190, 77,121, 53,204, 10, 70,135, 83, 46,247,231,220, 63, 53,246, 67,242,185,244,105,221,142,201,224,253,194,190,247,214,
+212,213,141,204,134, 92, 24,214,251, 19, 75, 97,214,193,182, 48,227,111,207, 73,142,183, 91,227, 33,199,104,130, 20, 73, 74, 1,
+232, 70,179, 51,250,124,252,157,243,208,131,162,161,155,213, 99,101,209, 21,123, 87, 37,126,118, 61,134,192,178,126,213,221, 47,
+ 41, 97,166,243, 44,105,185, 23,251, 28,244,128, 30,101,216,109, 42, 67,140,133, 36,138,182,243,105, 40, 82, 79,194, 73, 10, 34,
+169, 20, 93, 32,201,149,239, 48,110, 4,246,133,241,251,188,153,157,223,228, 27,179, 2,227,241, 89, 89, 83,143,168, 18,165, 84,
+ 81, 94,222, 59,147, 81,227,227,190,189, 27,167,135,139,174,111, 59,225, 36, 4,173,133,100, 81,146,164,176,232, 0,211,141,119,
+ 7,226,216,244,246,141,104, 77,102, 87, 32,155,162,201,141,117, 71,206,202,119,132,160,164,148, 84,142, 66,130,131,199,250,163,
+199, 67, 8,178, 42,220,236,143,112,177,233,246, 59,158, 3,144, 15,155, 19,152,226,174, 72, 75,156, 18, 27,226,146,147,213, 37,
+ 33, 53,168,223,233,208,236,129,119, 10, 2, 79,162,161, 47,114,226,195,187,220,225,246,242,220,253,214,205, 13, 14, 57,231,199,
+109, 68, 68, 75,138, 28, 93, 83,159, 15, 20,149,158, 6,187, 84,145, 90,212,106,169,201,218, 81,191,100, 76, 93, 77,145,220, 89,
+ 88,223,149,117,189,219,164,193,109,198, 16, 46,141,206,105,213, 68,228,177,177, 83,169, 5,170, 42,129, 73, 80, 62, 62,221, 89,
+142,104,224, 85, 51,143, 33,201, 49, 90,187,181, 18,253, 38, 44, 91, 36,166,121, 44, 37, 15,180,226, 93, 42, 73, 41,173, 40,121,
+124, 42, 78,227, 98, 43,211,221,106,187, 68,248, 33,202, 6, 39, 84,235, 14,235, 98,182,135, 2,219,109,219,146, 82,159,154, 67,
+ 64, 22,195, 78, 14, 68,164, 41, 72, 38,158,193, 66, 61,157, 52, 70, 72, 73, 92, 62,142, 21,142,231,119, 71,240,155,123,143,177,
+ 42, 58,140,176,203,143, 41,178,164,172, 84,128,186,252, 67,106,143,175,174,178,189, 67,212, 63,101,133, 59,128,115, 22,238,226,
+ 81,234, 27,164,186,141,118,105,176,173,235,179,197, 28, 27, 72, 10,240,216, 15,120,215,202,125, 83,172, 89,159,116,173,176,243,
+ 86, 44,168,146,139,218,241,116,170,223,111,135,200,149, 62,239,152,178,124, 64,222,186,199,141,155,164,170,236, 42, 95,120,238,
+107, 69,170, 50,163,159,194,105, 62, 90,105,210,160, 1,167, 17,123, 60, 83, 1,162, 85,180,203,113,251,108, 89,207, 18, 90, 74,
+248,160,120,114, 29,117, 9, 86,214, 20,252, 0, 86, 94, 48,251,237, 88, 94,187,199, 77, 66,168,130,161,236,216, 29, 66,109,180,
+ 39,218, 74, 31,127,121, 55, 89, 72, 90, 85,240,183,239,247,106,172, 32, 64, 79, 48, 64, 65,111,145,110, 75,150,155,146,129, 1,
+180,130,144, 58, 83,254,135, 87, 4,128, 9,132, 9, 8,102, 64, 95, 85,129,198, 65, 33, 75, 73,113, 71,127,126,141, 89, 5, 72,
+ 67, 68, 19, 4,188,202,145,103,149, 13,245, 20,188,134,138, 91, 39,161, 7,111,233,213,241, 16,132, 83, 54, 47,116, 54,139, 50,
+121,170,146, 91,162, 18, 61,198,162,186,169,145, 80,100,206,159,240,187,162, 98,224, 51, 80,193,254, 53,199, 60,211,237, 32,141,
+ 86,152,112, 8, 74, 39, 84,142,202, 21,145,229, 95,201,222, 39,154,249, 45, 7,218, 70,250,148,131,106,172, 70, 65, 49, 51,147,
+185, 97,198,149, 15,144, 11,101,208,163,254,202,169,253, 26, 20, 43,220,167,230,104,129,230,249, 79,157,112, 85,211,204,168, 91,
+ 97, 98,167,221,162,202,157,186, 40,139, 28,173, 86, 75,219, 55,140,122, 65, 89, 0,130,149,165,126,197, 2, 52, 72,212,158, 86,
+ 21,150,107,151,151,121,118, 35,171,226,212,196, 36, 34,167,246,128,174,159,104, 37, 6, 82, 82, 38, 72, 97,139, 12,169,168, 63,
+ 20,117,130,176, 60, 8,241,253, 26,148, 99,171, 40, 9,178, 86,206,110, 15, 25,106,144,149,114, 14,182,151, 6,253, 69, 52, 50,
+ 52, 61,201, 70, 76,146,241,119,154,137,148,155,162, 72,243, 86, 66, 0,254,209, 59,106,237, 35,224, 1, 41, 23, 42,227,181, 94,
+ 31, 92,115, 20,255, 0,216, 36, 41, 34,191,182,105, 93, 85,202,142,224, 2,104,201, 9,206,242,151,228, 77, 24,237, 56,190,211,
+ 97,210,124, 85, 81, 81,162,157, 25, 54,213, 5,219, 67,145, 89,138, 18, 9, 15, 50,167, 28, 62, 3, 81,132, 6,231, 69,150,129,
+146,125,157,213, 53,117,114,232,248, 33,181,184, 89,110,189, 40,157,181,165, 25,196, 29,188,208, 8,208,173, 22,220,170,106,243,
+ 66, 29,248, 90,113, 74,160,246, 37, 35,109, 44,186,218, 40, 84,133, 97,227,243,153,135, 10, 29,254,112, 42, 74,159, 90, 83,244,
+212,234,140,106, 96,200,132,151, 77,248,250, 25,184,216, 36, 93,158, 32, 37, 79,154, 15,160,109,250,181, 90,216,106,166,250, 36,
+ 62,224, 94,158,128,250, 34,127,217, 36,169,196,143,101, 78,152, 71,146, 53,101, 10,177, 92,228, 75,151,205,106, 41,243,126, 4,
+143,104,166,139,100, 24, 38, 5,120,118,225,252,138, 91,172, 19, 71, 2,171, 66,119,223, 81,144, 44,164,116, 86, 47,146, 39, 49,
+ 10,236,206,233, 17,234,170,120,242, 21,208,226, 84,156,148,164,235, 75,254, 99,231,180,126, 53, 43,141, 62,179,167,140,117,117,
+ 39, 70,178,203,193,131, 10, 60, 52, 26, 56, 19,197, 64, 29,206,212,208,229, 2,232,114,208,161, 29,165,187,124,188,251,227,110,
+ 42,190, 96, 9, 0,159,117,124,117,114,218,254, 4, 18,117, 68,111,183,132,166, 59, 44,133,209,109,168, 57, 74,244, 32,234,179,
+ 16,139, 18,131, 92,111,235,115, 49,140,250,205, 66,214, 29,246,253,221,247,209,235,175, 69, 19,168, 67,110,247,247,174,185, 5,
+206,238, 87,251,181,132,253, 92,105,167,148, 62, 20,137, 12,180, 94,243, 49, 14, 69,169,197, 44,121,137, 88, 53,175,128, 58, 45,
+ 84,186, 99, 45, 22,244,247, 60,213,103,204, 20,249,228, 57, 90,254,215, 5,105,121, 90,168,186,123,182, 95, 23, 24, 71,136,149,
+126, 36,167,146, 79, 94,131, 89,178,165,145, 69,234, 52,252,164,199,155, 45,144,170, 23,100, 82,155,251, 70,139, 28,100,198,212,
+ 23, 53,191,169, 76,161,210,173,214,231, 17,185,240, 26,151,146,218, 41,249,186, 45,118,150,216,149,104,110,254,104, 84,128,177,
+241,116, 32,105, 74, 59,116,237, 77, 25,191, 20,127,182,238,219,222,177,205,154,132,128,219,166,180,246, 30,186, 21,242, 32,163,
+ 86,200,232,139, 16,221, 35,220, 2,128,100, 36, 36,251,232, 52, 35,105, 60, 83,136, 34,147,101, 68,249,230,221,104, 10,161, 53,
+ 73, 26,173, 43,153, 26, 92, 16,190,242, 42, 52,155, 69,190, 74, 85,252, 79, 2,227,148,218,159, 89,213,204, 82,100,116,231,246,
+225,196,161,104,203,154,111,157,216,151,223, 12,149,142,221,226, 37,165,227,246,135, 84,195,151, 37, 44, 41,151,159,175, 21,148,
+146, 1, 82, 27, 27, 0,145,185,222,180,166,190,138,244, 71,166, 70, 5, 63,184,184, 31, 50, 92, 1,226, 7,223,199,199,144, 75,
+ 22,145, 41, 58,185,216,197,240,190,217,216, 89,109, 18,151, 42,238, 9,125, 92, 99,169,227,178,104, 82,138,212,242,169,167,221,
+ 20, 6,128, 15, 30,166, 83, 50, 61,129,111,194, 2, 33, 46,185,220,185, 88,220,215,174,115, 17,230, 76, 89,243, 91, 98, 50, 74,
+248,165, 73, 4,115,175, 21, 36,238, 42, 1, 7,221,165, 32, 8,100,104,186,184,189, 61,119, 59,179,189,217,190,196,107,187, 63,
+ 20,198, 71,146,218, 28, 67,174,167,250,201,228,178,218,148, 10,105, 93,134,222,221,103,228,215, 42,135,194,174, 86, 68,147,255,
+ 0,170, 44, 91, 5,203, 32,217, 94,237, 12,200, 87, 60,175, 28,157, 30,247, 6, 52,183, 66, 96, 41,112,223, 68,196, 50,226,190,
+ 33,193,197, 55,229,184, 66, 43,197, 71, 99, 74,107, 14,248, 78,112, 35, 94, 43, 95, 2, 85,194,194, 38, 90, 50,137, 7,187, 77,
+ 62,246,246, 39,239, 79, 16,125, 15,118,222, 74, 59,139,112,237, 53,170,211,157,151, 90,152, 94,121,113,229,179, 22, 94,206,114,
+140,203,175, 59, 29,149, 37, 95,180,202, 18, 43,189,116, 12,121,219, 81,121, 68, 72,142,208,177, 51,177,108,177,227, 27, 26, 42,
+229,238,111,174,204,125, 22, 71,147,101, 97,231, 7, 15, 50,177,155, 83,245, 65, 21, 4, 22,121, 2, 41,239,209,239,202,158, 71,
+249,133,135,135,217,213, 44,110,139, 40,200,109, 14,124, 71,230,190,103,126, 97,217,223,115, 59,210,196,220, 82, 4, 99, 2,211,
+115,109,216,178, 38,188,235, 75,112,199,116, 6,221, 67, 13, 50,165, 30,106,109, 69, 60,151,192, 38,188,135, 35,182,174,224,237,
+254, 87, 42,253,253, 58,116,151,180,129,220, 8, 39,238,112,184, 47,185,254,159, 35, 48,151,217,106,174, 58,194,200, 66,156, 33,
+ 45,172,114, 42, 81, 35, 97,254,191, 13,118,216,115,216, 25,115,183,213,184,191, 53,205,153,205,177, 56,238, 72,184, 80,137,228,
+104,182,208,129, 82, 1, 87, 16, 54,233, 77, 91,222,235, 50, 84,152,148, 74,207,113,117,212,161, 14,149, 39,238,132,144,146, 55,
+ 62, 4,248,244,212, 29, 41, 2, 2,126,198, 45, 47, 42,212,252,168, 75, 9, 50, 16, 80,225, 4,161, 64,165, 10,219, 96,125,181,
+168,209, 12, 30, 37, 6, 5,164, 22,175, 76,140,122,172, 99, 1,204, 36, 89, 35, 91, 7,167,187, 4,171, 93,199, 56,141,113,122,
+211, 30, 83,204,222, 86,228, 56,207, 48, 29, 90,103, 74, 75, 37,142, 4, 49,204, 51,200, 21, 4,243, 36,224,201,163,175,122,215,
+167, 34,221,251, 71,202,126,220, 87,208,207, 74, 30,137,111,119,255, 0, 68,246,156,251,187, 86,127,148,255, 0, 48,189, 58, 69,
+158, 60,214, 60,181,189,102, 82,248, 48,181,182,232, 4,161,197, 5,169, 21, 27,160,131,208,235, 38,252,194, 38, 0, 86,140, 65,
+118, 92, 81,235,107,210, 28, 63, 78,217, 52, 46,228,224, 10,249, 44, 49,217,204, 69,145, 21, 0,134, 45,114,228, 57,229, 50,251,
+124,105,198, 43,142, 16,219,173, 86,129, 74, 74,147,190,218,215,198,180,176,144, 84,100,211,248, 15,177, 8,118,220,172,102, 56,
+155,122, 63, 41,112,146,219,127,128,133,149,172,162,149,171,107, 59, 26,111,240,174,181, 27, 3, 93,111,215, 51, 48,178,109,134,
+210,159,125, 34,229,127,229,158,250, 66,157, 62, 42,156,130,195,209,140,181, 21,243, 83, 8,125, 85, 81, 41, 60, 79,194,144,162,
+120,147,160,117, 76, 67,149,133,117, 67,140,163,248,107,249, 41, 85, 54, 43,189,174,119,148,177, 34,115, 84, 28, 41,229,239,177,
+ 2,167, 95, 26,228,213, 56, 19, 9,134,144, 37,244,213,193,247,171,210,177, 77,114,243, 21,152,176, 86,202,232,180, 52, 72, 35,
+223,182,171,194, 4, 20, 56,144, 74, 31,144, 92, 99, 94, 49, 70,150,250,170,166,221, 40, 62,250,157, 29,136,144, 61,138, 17, 8,
+ 43, 17,126, 79, 29, 67, 76,238, 4,128,164, 15,239, 43,125, 88,143,196, 93, 65,216, 43, 42,221, 61,184, 56, 84,200, 9, 60,121,
+ 80,166,189,106, 5, 78,169,202,174, 9, 70,105, 52, 95,221,106,216, 37, 0, 84,162,176,157,171,184, 38,154, 39,237,244, 79, 41,
+184, 77,178, 37,199,149,109, 98, 74,168, 90, 13, 4,172,123,233, 77, 82,144, 32,178,132,102,201,107, 52,133, 75,107,173,197, 35,
+226,108,175,233, 77, 55,166,172, 99,233, 34,136, 44,112,149,241,104,172, 42,195,193,103,139,171,229,193,126,211,214,154,210, 18,
+213, 13, 69,147,145,173, 72, 96,179,247,218, 95,146,242,125,180,218,186,105,143,132,160, 74, 93,137,206, 6, 88, 96, 65,139, 49,
+181,127, 15, 83,205, 35,161, 30,205, 83,119, 96,150,160,148,219, 22,221,102,135,145, 65,204, 24,160,132,235, 11,117, 64,120, 43,
+254,131, 70,148, 9, 12,151,152,171,188,166,248, 85,116,155,107, 89,161, 46,121,141,239,213, 42, 53,211,215, 78,210,154, 54, 57,
+100, 22,252,244,135,218,254, 94,209, 37,228, 36, 41, 53,241, 4,104,246, 67,154,144,119, 90,177,187,196,171,118, 53,115,138,160,
+ 75,201, 28,169,189, 71,191, 72, 0, 74, 36,138, 47, 10,106,110,201,182,201,136,175,199, 74, 3,202,247,142,132,104, 70, 35, 80,
+144,213, 16,185,174, 76,104,151, 27,106,137,242, 39,209, 77,171,174,231,253,122,156, 8,116, 41,196,186,129,150, 98,215,104,120,
+148, 75,146,129, 46, 54,124,146,124,120,158,154, 28,153,212,227, 20,153,145,227, 55, 11, 52, 91, 85,246, 56, 41, 76,135,130, 84,
+ 61,167,144, 35, 87, 41,218, 66,140,193, 77, 71, 36,187, 91,174,236,171,129,249, 87, 40, 85,214,181, 0, 84, 29, 67,104,146,136,
+ 12,136, 60,216,202,243,215, 46,172,143,133, 8, 66, 10,124, 54,213,108,147,180, 4,104,132,217, 34, 55,205,219,221,132,216, 6,
+105,163, 13, 36,120,114, 77, 54,213, 11,108, 98,145,119, 75,153, 31,111,223,129,136, 6, 2, 71,207,176,240, 10,160,241, 82,180,
+ 60,108,147, 44,159, 16,166, 71,194,145,101,226,147,155,203,222,148,132, 17, 21,148,161,176, 71,245,136,169,215, 69,109,187,224,
+ 2, 8,139, 43, 18,234, 91,182, 98, 16, 25,124, 1, 29,149,121,138,254,241, 26,171, 41,114, 9,194, 99,237,178,227,206,178,195,
+128,243,149, 98,115,235,168, 21,168,223,109, 86,151, 21, 38,116,159,222,203, 41,182,202, 66,159,162,127, 17,113,171,239,240, 58,
+106,156,201, 56,146, 3,139,249, 33,108,202,112,138, 48, 74, 15,211, 93, 91,156, 95, 68,219,146,198,127,146, 39,252,206, 28,108,
+209,181,128, 13, 61,218,120,210,193, 52,166, 21,195,219,155,210, 46, 24, 51,100, 42,170, 69, 27,169, 62, 27, 15, 29, 86,133, 90,
+148,230, 73, 91, 53,185, 11, 6, 87, 21,142, 95,130,245, 22, 41,181, 77, 70,139,229,104, 82,140,212,200,168,115, 42,184, 34, 98,
+ 62, 38, 26, 95,150,126,146, 54,235,168, 93, 29,177, 83, 39,113, 73, 76, 95,164,227, 57,252,139, 81, 60, 67,170, 28,147,211, 86,
+225,241, 86,171, 76,177, 83,110,183,231,110, 51,101, 70,140,170,200, 66,194, 83,244, 87, 65,149, 73, 70,213, 3, 52,187, 63, 98,
+184,196,124,253,244,162,132,239,212,232,244, 86,233,231, 99, 45, 13, 92, 87, 27, 17,122,115,191,226, 38, 44,172, 31, 26, 13, 78,
+200,114, 81,141,138,186,200,114, 91,131,207,199,220,144,218,142,254,202,157, 89,199,172, 37, 57,169, 13,222,157, 54, 87,156,228,
+124,209, 53,148,211,122,238,203,138,254,141, 63,146, 55,123, 16,252,197,107, 90,179, 69,171, 56,131,107,113,127,187,228,119,240,
+ 35, 84, 37, 67,242, 66,243, 86, 74,200,145, 43, 46, 68,102,213,205, 43,146, 85, 81,253,145,190,172,254,216,162, 9,160, 93,206,
+204, 16,197,205,184, 77,171,225,111,154,143,211,211, 80,141, 4,169, 74,205, 20,139, 14, 88,231,254, 16, 59, 33, 10,229, 32, 41,
+ 69, 32,120, 2, 78,135,101, 63, 27, 34,194,127, 10, 57,218,107,188,209,143, 34, 83,171,252, 37, 21, 7, 17,236,166,168,229,213,
+170, 61, 51, 78,215, 11,139,240,236,232,123,149, 25, 90,121,160,239, 83, 67,191,234,214,116, 66,178,235,197,163, 32,114,228,180,
+173,179,248,133, 35,138, 79,141, 58,232, 54,199,107,168,239,220, 21, 77,249,144,122,137,141,218, 30,207,198,182,192,115,134, 87,
+144,159,144,138,161, 90,179, 29, 32,169,247, 69, 63,104,138, 37, 62,243, 95, 13,122, 71,211, 31, 79,142,161,157, 27,103,173,117,
+252, 94, 36,112, 30,246, 39,193,144, 55,149, 77,122, 17,187,200,191,135,174, 18,130,156,186, 60,166,209,109,182, 64, 72,162, 91,
+ 4,133, 41, 84, 39,221,237, 63,105,215,209, 93, 70, 91, 64, 1,109,244,200,233,170,235, 12,249,251,126, 39,136,170,230,204,132,
+185,145,184,134,219,146,226,156, 73,116, 36,172,164, 54,146, 57, 44,168,124, 91, 84, 15,102,199, 92,253, 82,148,166,199,130,220,
+144, 17,142,138,162,185,187,112,185, 68,230,149,249, 77,186, 82, 18,130,242,150,225, 42,216, 41,102,129, 32,145,238,213,228, 39,
+ 44,138,226,119,203,222, 59, 14, 69,129,183,158,224, 40,217,107,204,116,138,208, 38,165, 32,211,106,127,171, 67,178, 2, 74, 80,
+155, 43, 3, 25,202,238,146,172, 74, 76,135,202, 80, 1,242, 5, 18, 21,197, 39,122, 5, 85, 3,115,237, 30,237, 87, 53,177,100,
+231, 80,163,220, 51,107,220,249, 2, 20,127, 55,229,121, 41,177,201, 74,115,226, 73,228,124,180,168,238, 64,216,145,250,116, 65,
+ 80, 10,188,164, 87,137, 93,217,206,241,203, 90,103,254, 58, 82,231,224,149, 16, 42, 27,248,147, 80,148, 16, 41,198,167,127,163,
+221,168, 28,120,205, 48,178, 81, 85,214,115,234, 4, 73,186,249,247,116,174, 74, 8,161, 46, 21,143,188,181, 86,167,160,232, 9,
+219, 86, 41,195, 0,104,135, 44,146,232, 44,238,212, 91, 59,151,107, 55, 23, 90, 82, 45,210, 26, 74,163,184,207,152, 27, 79, 45,
+146,106,107,202,160, 29,200, 27,251,246, 58,117, 93, 24,241, 65, 53, 25,234, 23, 39,119,239,210,110, 87, 96,190, 57,124,178, 50,
+244,203, 35,239, 17,230,113,252, 69, 45, 36,236,221,104,104,120,236,124, 53,100,218, 36,171,207, 28,141, 82, 5,179,182,185, 93,
+185,197, 71,186,194,121,164,172,121,169, 74,146, 56,144, 72,167, 2, 9,251,164,113,210,112,171, 89, 81,101,100, 88, 49, 41,120,
+206, 48, 92,185,178,182,227,189,184,243, 0, 11, 11, 34,128,128,163,210,159, 93, 53,110,160,235, 62,192, 2,181,125, 24,119,171,
+181, 62,159,179,148,231, 25,167,108, 49,108,241,228,201, 67,168,111, 43,182,137,171,101,198,135,239,163,242, 80, 74, 92, 4, 3,
+ 85,182,232,218,161, 32,212,235, 31, 63, 14,195, 45,213,173,156, 11,104,182, 2, 22, 19, 25,118,143,204, 46,209,238,135,230,203,
+110,245, 9,206,125,201, 38, 36,226, 3,127, 40,104, 3, 98,148, 9, 64, 79,128,233,184, 26,199, 29, 46,210, 94, 64,191,219,177,
+ 78,216, 70,176,213,202, 50,240,227,238, 43,144, 61,121,247, 42,201,155,246, 46,245,137,206, 41,254,109,123, 49,224,219,227, 59,
+251,197,188,101,180,232, 90, 83,214,141, 4,151, 9,232, 2,117,160, 42, 53,197,155,185, 84,197,132,167,104, 45,160,212,170,195,
+187,211, 49,187,189,147, 28,187, 72,142,133,150,109,205,196,150,202,144,242, 22,183,152, 71,148, 10,220,160, 77, 42, 73, 21,250,
+235,177,214,254, 53,100, 5,151,147, 32,100, 91,181, 42,118,179, 32, 98,199,122,145, 21,129,229,220,228, 2, 66, 9, 53,242,210,
+193, 79, 36, 56,149, 16, 21, 82,122,142,132,143,163, 67, 22, 77, 46, 10, 17, 93,191,218,174,226,207,238, 71,108,220,188, 73,228,
+111, 86,230,217,141,115,113,102,165,105, 41, 62, 83,196,138,253,240,157,207,183,233,215,128,253, 80,244,140,177,114,142,109,122,
+215,105,115,221, 46, 7,216, 78,190, 37, 76,157, 17,139, 78, 86,202,131, 42,125,207,195, 13,169, 41,223,221,175, 41, 20,235,193,
+ 68, 77, 69,103, 42,117,120,147,181, 63,134,100, 81,179,244, 29, 78, 84,178,113, 52,199,140,100,112,165,196,136, 31, 80,226, 93,
+ 8, 30,245,248,106, 38,162, 6,137,247, 39, 92,134,224,136,211, 83, 98,220, 60,166,249,173, 35,173, 84, 53, 90,209,180, 39,139,
+ 32,247,216,209,236,248,131, 40, 90, 72,113,194, 84,146,122,208,234, 66,110, 2, 48,136, 69, 49,233,129, 88,195,118,215, 5, 67,
+139, 73, 66,235,184, 30, 58, 20,225,205, 14,202,220,168,247, 73, 63, 55, 14, 77,172, 14, 75, 66, 20,210, 28, 30,218, 29, 6,161,
+168, 42, 32,106,148,237, 54,245,219,236,242, 99, 75, 85, 36, 33,196,174, 56,247, 43,195, 90, 51,144, 3, 69, 58,226,229,104, 56,
+131,236,207,106,224, 43,242,210,106,181,131,224,160, 52,226, 96,132, 41,195,226,116,211,140, 90, 62,125, 45,227,178, 83, 71,146,
+181, 58,158,155,208,244,251, 53,159,115, 68,186,150,212,238,171,123, 16, 44, 44, 89,222, 33, 79,113, 90, 17, 95,217, 10, 31,233,
+209, 99,120,116, 51, 91,232,171, 44,146, 19, 98,233, 6, 83,201,252, 84,185,242,206,159,104, 10,160,209,167,112, 60, 20, 97, 4,
+106,235,133,178,238, 82,204,152,123,199, 62, 90, 22, 61,196, 13, 70, 55,184, 32,162,236, 68, 50,142,222, 69,137,113,114,109,189,
+ 3,202, 45,252,180,132,143, 26,142, 85,253, 58,171, 27,136, 68,148, 18,237,134,207, 30, 19, 69,164, 30, 15, 70,251,190,244,158,
+163, 79, 59, 9, 41,227, 4,126,197, 1,121, 37,158, 82, 31, 64,243,173,197, 60,149,237, 21,174,154,118, 17,170,150,192,143,228,
+206, 70,157,106, 85,129, 9, 10,242,216, 67,181,247,129,160, 9,150, 78, 35,201, 47, 49,105,135,148,218,153,178,184,129,198, 58,
+131,173, 87,168, 82,119,209,171,180,136,161,200, 37,236,208,166, 60,164, 53,198,142,144, 64,254,240, 26, 62, 44,202,105, 0, 86,
+238,220, 92,154, 84,183,229, 44,129, 68,132, 43,233,211,228,130, 67, 41,104,157,112,247, 99, 74,191, 55, 37,197, 13,144,167, 5,
+ 79,237, 38,180,214,101,177, 46,152,234, 86,200, 87, 72,183,169, 47,197,124,142, 14, 72,173, 15,247,169,253, 26,157, 53,109,147,
+243, 80,153,209, 67,201,172,182,166, 62,126, 4, 2, 23, 55,205, 11,168,166,212, 4,235, 82, 18, 36,178,128, 41, 31,184,183,229,
+ 53,129, 45,182,126, 41, 33, 92, 20, 7,133, 13, 53, 26,139,204,164, 84, 28, 7, 63,118,215,126,178,193, 67,149,101,165, 85, 67,
+194,167, 70, 53,110, 41,110,100, 87,212,197,253,203,150, 28,197,238, 56,163,236,202, 10,118,158,202,245, 63, 81,212,177,169,105,
+145,218,170,249,175,193, 87, 29,190,201, 28,187,220,228, 65, 66,170,218,136, 80,223,196,141, 92,157, 91, 36, 19,139, 28, 36,172,
+250,246,251, 23,151, 18,239,239, 25, 90,144, 73,247, 29, 91, 20,252, 62, 42, 34,110,173,126,209,101,202, 61,189, 98, 75, 75,169,
+ 50, 18,147, 67,224,126,189, 80, 21, 49, 41,229, 50,142,247, 94,210,251,233,182,221,192,170,155,112,110, 63,169,215, 77, 1,241,
+ 49, 74, 18, 44,153,253, 60, 38, 53,239, 31,185,183, 34,133,228,203,252, 51,227,183,179, 67,207,171,108, 85,186, 75,133, 80,119,
+174, 4,203, 31,116,228, 95, 92, 4, 71, 47,165,134,192,241, 33, 34,186, 62, 32, 6, 13,220,133, 96,114,235, 87,110,228,201,151,
+150, 38, 68,228,145, 25,231, 20, 77,124, 64, 27,106, 54, 16,204,154, 48, 76, 93,194,182,179,113,101,135, 86, 42,143, 63,201,228,
+ 7,129,219, 66,170, 70, 37, 18, 80,112,160,100,113, 91, 22,104,246,148,117,140, 10, 62,145, 74,233,229, 61, 84, 60,190, 9, 35,
+ 60,181, 71,182, 99,104,152,194,127, 21,199, 18,149,171,250,191, 21, 0,213,156, 57,252, 73,172,142,136,138,112,212, 39, 7, 93,
+208, 39,248,181, 20, 74, 35,251,173, 41, 35,244, 43, 82,253,199,199,247, 40,121, 92,211, 41,193, 46,182,236,214, 85,233,202,170,
+ 56,105,197, 70, 80,241, 38,181,251, 52,254,104, 33, 87,157, 36, 2,162,118,227, 24,187,204,205, 99, 71,151, 94,104,230,250,138,
+186,208,146, 43,171, 50,190, 32, 34, 70,162,202, 46,107,219,139,141,214,227, 62,252,215, 35, 17,151,126, 93, 9, 3,175, 46,167,
+ 64, 25, 49,138, 36,168,117, 39, 23,192,239, 22, 92, 25,248,234, 5, 72, 43, 40, 35,233, 58,173,102, 76, 76,157, 19,202, 33, 74,
+194,226, 93,109,215, 68,217, 92,170, 82,162, 10,134,244,220,106,173,196, 29, 81,225, 21,110,103, 22, 25,104,197, 97,219,216, 79,
+227, 54,128,181,175,125,146,175,110,177,137,248,207, 98,156, 73, 0,160, 22, 56,143,192,200, 35,199, 64, 62, 91, 40, 42, 89,246,
+212,106, 50, 59,156, 40,151,128,117,243,163,243, 89,239,148,158,229,250,143,107, 3,183,186,218,236,248,170, 4, 48,219, 41,227,
+ 73, 43,252, 71,188,199, 22,126, 37, 10,164, 26, 0, 19,210,149,169,215,211,127, 76,122, 40,196,233,240,181,142,251, 53,227,201,
+249,118, 13, 61,170, 3, 85,110,250, 21, 98,233,129,246,253,172,158, 79, 52,202,152,225, 83, 62, 96,161,109,180, 0,157,193,241,
+ 81, 37, 66,187,237,174,183,168,252,114,101,209,244,209,178, 46,121,171,247,182,119, 75,101,229, 79,228, 25, 26,137, 97,181, 58,
+219,105,112,212,149,132,249,105,219,125,192, 85, 77,126,141,181,153,105, 49, 96, 22,149, 68, 16,229, 22,177,223,240,185,119, 48,
+194, 82,223, 22, 86,227,238, 44,208,161, 5,175,188,176,145, 80, 40, 79,135,143,188,234,102, 18,110, 41,133,145,117, 31, 33,205,
+ 49, 5, 66,126, 93,173,175, 45, 11, 5,196,147, 64,226,138,213,197, 1, 69, 39,225,223,115, 78,191,167, 74, 21,201,217, 41, 92,
+ 20,121,153,125,174, 4, 4, 77, 46,172,151,154, 66, 27,229,196, 81,197, 81, 35,143, 47,132, 82,132, 19, 67,191,219,167, 21,151,
+224,135, 43, 64, 8,124, 12,182, 68,104,102,229,114,144, 18,218, 42,134, 20,190,161, 53, 38,161, 32,237,241, 10,239,214,154, 33,
+172, 20, 19, 97, 81,102,103,173, 93, 35,183, 13,158, 44, 69, 90, 83, 85,184,173,139,109, 18, 86,120,131,176,240, 20, 30,222,186,
+ 66,160, 19, 27,221, 86, 29,250,191,219, 31, 74,213,109,224,153, 64, 81,110, 40, 26,124, 61, 82, 56,251, 0, 59,248,157, 89,162,
+ 61,168, 19,147,149,105,254, 95,183,184, 14,227, 19, 25,185, 48,252,155,187,109,190,136,136,124,188, 26,105, 9,230,181, 15,196,
+ 37, 6,139, 36, 0, 0,161,165, 65,213, 14,164, 36, 14,139, 91,167,109, 63, 50,189, 44,246,190,198,103,237,189,139,100, 73, 85,
+142,246,197, 20,152,115,148, 18, 84,164,163,135,154,144,138, 5, 15,136,210,149, 34,187,208,235, 23,247,215,215, 45, 66,244,106,
+186, 39, 78,190,128, 97, 45,199,155,113, 10,165,239,143,167, 12, 11, 18,181,252,205,162,231, 29, 86,244,176,168,233, 8, 74, 28,
+ 41, 66,136, 82,137, 11, 5, 66,165, 53,250, 78,181,241,122,156,143,204, 22, 6, 79,165, 41,176,252, 19, 35, 69,197,253,252,207,
+254,110, 98,221, 82,210, 98, 68, 74,227,161,109, 41, 62, 75,174,182, 82, 1, 77, 58,146, 55, 39,173,126,189,117,184,214,131, 23,
+ 11,202, 51,168, 48,153,137, 46,197, 42,224, 88, 78,117,144,218, 25,158,235,170,140,201, 65, 90,124, 18,121,124, 65, 38,180,220,
+251, 61,218, 28,236,114,158,186, 73,139,160,153,109,151, 40,180,220, 2,228,186,165,202, 88, 81, 83,123,146, 41,241, 83,245,248,
+232,177, 67,176, 16,135,179,220,188,250,200,223,200, 33, 78, 75,182, 0, 79,146, 66,157, 77, 41,184, 41, 80, 35, 68,112,126, 96,
+233, 70,249, 71,129, 70,229,231,215,204,205,134,173,242, 80,134, 20, 82, 27,113, 46,161,109,130, 62,233,220, 16, 70,194,157, 40,
+125,154,181, 92, 34, 70,133, 14, 71,114,151,130, 90,219,199,175,204, 74,187,254, 27, 92,138,146,166, 18,209, 9,169, 59, 7, 16,
+ 19, 80, 69, 69,119,209, 5,100, 20,192, 46,228,244,245,141, 51,157,227, 74,187, 96, 87, 36,198,201,196,111,229,147,109,237,144,
+ 12,200,138, 3,146,120,213, 73, 87,196, 43,197, 94, 52, 59, 29, 87,234, 24,208,204,162,116,217,194, 65,190,222, 5, 88,133, 98,
+ 65,148, 92,223, 7,205,176, 41, 79, 91,175, 44,112, 40, 0, 52,234, 2,146,149,242,233,240,171,116,157,183, 30,222,154,249,147,
+212, 94,159,151, 75,200, 21, 72, 14,208, 71, 2,168,217, 89,140,144,236,177,249, 86, 75, 13,166,220,215,220, 85, 29,127,220, 73,
+241,214, 47,146, 9, 80, 14,152,176,187,124,166,173, 16,148,146, 84,249,185, 51,196,127, 96,170,186, 83,164, 8,148,163, 37,100,
+127, 25,121,239,208,138,149,127, 8,211,109,182,176,127,181,215, 88, 89, 81,104, 35, 9, 58,113,238, 86, 30,213,202,243, 46,201,
+ 4, 19, 6,216,207,159,191,182,149,161,250,245, 70,169, 48, 70,140,146,139,127, 59, 11, 30,142,230,226, 65, 60,210, 63,179,162,
+206,108,139, 35,162,159, 98,108, 34, 18,231, 57,241, 56, 66,214,107,253,106,116,213, 83, 55, 80,100, 26,109,138,124,143, 38,123,
+167,240, 94,113, 59, 1, 77,130,180,111, 48, 50, 35, 50, 55,144, 54,164,227,162, 51, 32, 9,173,188,158, 32,117, 9, 59, 29, 66,
+ 51, 81,140, 73, 81,110,209,238,120,196,216,183, 86, 43,230,148, 7, 20,124, 57, 29, 52,134,229, 34, 22,203,174, 91, 46, 79,149,
+ 45,229,116, 4,168,123, 9, 53,208,219,146,113, 20, 26,239,112,106,124,184,104, 35,226, 92,134,220, 36,123,136, 58,156, 9,220,
+130,155,174, 23,102, 16,227, 15, 53, 64,227,138, 77, 64,247, 4,232,230, 28,209, 35,193, 54, 76,109, 46,192,113,110,117,146,223,
+154, 41,224, 80,154,127, 70,170,200,106,164,171,184,112, 85, 34,109,193,182,254,250, 91, 14,164,143,167, 79, 36,242, 44, 19,118,
+ 3, 5, 17, 98, 93, 88, 41, 60,230, 52,135, 5,125,201,210,155, 18,147, 50,142,182, 28, 91, 46, 75, 31,121, 77, 4,147,227, 64,
+105,168, 72, 48, 81, 28, 86,118,254,218,212,135,209, 37, 35,116,249,202,161,241, 34,187,104,213, 51,234,148,254, 84,135,158,162,
+109,203,205,122, 42,106,243, 79,158, 0,123, 2,168,117,106,150,130,174,163,246,246,197,114, 84,123,138,212,130, 28, 82,124,196,
+143, 10,141, 90, 44, 66, 76, 84,252, 85,219,138,209, 34, 81, 81, 72,137,178,143,211,190,168,221, 0, 36, 20,235, 14,234, 53,158,
+241, 45,188,136,121, 38,172, 21,249,138, 39,192,233, 8,135,116,242,142,137,186, 11, 15,202,201,164,160, 29,157,101, 75, 73, 62,
+ 42,166,165, 85,154,166,242,138,135, 59, 4,131, 34,207, 29,153,130,137,121, 78,169,100,244, 37, 53, 58,169,184,198, 68,132, 95,
+ 44, 50, 67,127,183, 83,109,235,114,248,221, 82,204,121, 8, 91,100, 86,156,107,173, 26,114, 53, 5, 10,117, 58,179,243, 14,220,
+ 69,201,240, 23,210, 5, 91,122, 63, 52,251,214, 83,165, 28,159,136, 30,194,129, 26, 54,146,169, 46,220,118,198,237,103,184, 38,
+224, 1, 13,151, 67,106,175,181, 10,165, 62,205, 91,187, 48, 73, 12, 80,193, 37,119,191, 17,153, 15, 36,154,208, 77, 28, 90,148,
+242, 64,175,141, 14,181, 49,110, 18,130, 82,169,111,244,213,117,149, 35, 30,151,102,144,126, 24,206,151, 0, 63,217,211,229,192,
+ 13, 80,182, 50,183, 50,252,183,206,237,136,186,210,175,199,230,105,227, 74,144, 53, 74,202,218,200,132,213,240, 37, 28,244,223,
+115,143,109,178,187, 53,215, 2, 90,113, 10,152,226, 65,232,163, 82, 6,163,159, 29,218, 43, 84,150, 9, 79,188,114,224,229,147,
+225,249, 84, 41, 92,174, 70,158, 63, 17,223, 85, 42,145,137, 40,140,191,110,240, 34, 68,202,237, 22,235,114, 66, 99,165,149, 45,
+ 92,124, 72, 27,147,165, 23, 47,226,144, 41,138,195,142, 39, 33,182,189,107,146, 15, 38,200,125, 39,251,101, 91,126,189, 14,226,
+199, 68,224, 58, 88,207,163, 53,104,154, 82,165,124, 77,159, 45, 95,102,148, 1, 41, 20, 2,125,141,156,146,210,184, 41, 80, 82,
+ 22,227, 74, 66,122,239,200,106,113,153,174, 78,159,110,228,240,108,144,197,180, 89,120,143, 44,180, 69,126,132,129,215,235,208,
+ 60,195,199,189, 65,147,109,142, 45,170, 77,213,248,114, 72, 89,109,154, 55, 90, 80,168,130, 21,250,180,210,180,141, 85,141,129,
+150,220,107, 23,183,183,112,157,127,105, 33, 42, 66,145, 13,175,160,157,207,219,161,221,144, 89, 74,170,244, 83,178, 59, 21,190,
+200,204,139, 18, 16, 11,132,135,157, 86,213,169, 3, 85,236,182, 69, 78,184,106,180,163, 30,134,222, 44,185,203, 72,230, 18,227,
+137,111,192,211,161,211, 69,202,150,208,232, 4, 11, 4,105,140, 69,190, 2, 3,169, 87,152,233,241, 60, 78,195, 86, 1,125, 18,
+ 0, 5,101, 73, 67, 23, 37,181, 17,208, 21,201,132,151, 41,189, 19, 74,211, 85,167, 91, 20, 50,201, 46, 20, 64, 23,115,187, 36,
+127,134,168, 77,106, 64, 72,218,167,136, 39, 79, 93,111, 33,226,154,208,241, 95, 27,187,211, 45,251,255, 0,169,140,167, 33,134,
+180,173,148, 92,222, 75, 47,169, 10, 74, 82, 67,198,170, 9, 59,142, 39, 97, 95,167,174,250,250,255, 0,211,180,121,125, 62,152,
+183,242, 15,193, 86,172, 49, 11,167,251, 55,153,255, 0,151,240, 24, 13,184,232,120,178,147,242,204,236, 19, 66,121, 56,226,234,
+107,236,255, 0,161,212,239,134,233, 46,139, 30,205,177, 70, 15,118,100, 41,137, 13, 52,178,134, 30,243, 93,109, 1, 84, 80, 73,
+ 71, 34, 71,179,199,221,166, 20,186, 94,105, 68, 45,153,124,215,144,211,112, 1, 72, 44,150,214, 82, 79,223, 36,148,167,109,213,
+184,229,185,210, 49, 77,184,175,217,125,201,135,102,113,134, 84, 20,124,162, 11,105, 81, 20, 90,248,113, 46,174,189, 72, 27, 15,
+163, 78, 41, 37, 49,181,138, 26,174,233,166,253,124,102, 85,201,197, 22, 34,175,204, 76,118, 1, 82,190, 2, 66, 84,178,162,132,
+129, 83, 94,163,217,182,167, 26,140, 66, 28,173,117,234,251,220,104,172, 72,109,164,165,247,165, 58, 73, 80,142,164,164,167,145,
+226,148, 10, 37,193, 82, 60, 6,250, 81,165, 52,172,101, 58,204,243,249, 92,245, 89,165,195,185, 67,157,229,143, 42, 58, 28,139,
+230,148, 36, 84, 16,137,102, 57, 52, 78,228,147, 79, 30,154, 28,154, 60,199,223,253,169, 2, 74, 27,158, 88,123, 85, 18, 63, 27,
+238,116,220, 23,194, 75, 72,128,152,223,204,228, 41,124, 2,120,133, 90,220,117,144,175,239, 56,157,252,116,245,219, 51,194, 46,
+ 61,195,239,215,238, 80,176, 1,198, 67,237,246,237, 87, 15,163,203,247,111,196, 6,113, 12, 55, 33,188, 92,103,150,203,234, 71,
+242, 4,182,136,237, 54,247,146,151, 20,148, 92, 28, 8, 73, 95,237, 43,175,137,213,108,136,216, 11,202, 35,223,253,138,254, 53,
+145,219,161,116,225,223, 88, 56, 12,232,225,135,165,155,149,185,130,159, 33,106, 73,143, 44, 33,179,201,106,109,232,206,147, 95,
+ 49, 95,126,187,248, 26,109,166,141, 70,200,180,226, 62,222,196,122,242,236,162,123,161, 34, 10, 78, 86, 33,140, 92,160, 38, 44,
+ 91,178,212,193, 72, 92,153,119,107,179, 97, 17,155, 82,210,130,162,103, 45,182,127,173, 67,200,154, 13,245, 60,108, 72,198, 78,
+223,218,167,159,215, 50, 44,134,217, 75, 79,114,161, 59,185,216, 62,214,220,242,251,109,130,235,158,183, 62,227, 25,215,190,102,
+ 14, 53,107,145,114,150,144,133, 9, 27,249,238,198, 97,127, 10,184,146,135, 8,168,214,209,178, 77,164, 91,196,174, 76,252, 69,
+201, 79, 88,170,253, 50, 71,181,181, 0,204,200,223,118, 50,214, 30, 90,227,219,162, 56,133,110,207,196,201, 91,224, 84,154, 83,
+204,241,213, 50, 44,126, 74,240,150,136, 14, 73,153,246, 94, 53,208,255, 0,148,236,104,118, 96, 43,142,185, 23,104, 14,189, 37,
+ 20, 36, 85,167, 19,113, 28, 9, 20,220, 14,186,177, 8,207,153,251,255, 0,177, 87,145,117, 75,101,136,135,116,187,159, 54, 39,
+152,226, 84, 90,120,187,243, 42,232, 2,146,161,230, 62,233,161, 73,246,234,208, 85,100,183, 68,198, 45, 65,176, 27,132,195, 78,
+113,170,219, 73,146, 10, 72,253,186,121,148, 33, 73, 62, 30, 58, 36,102, 66,138,247, 54, 19,137,113, 49, 88, 90, 80,144, 66, 31,
+ 66,138,156, 64, 81, 2,138, 73, 85,126, 21, 39,127,183, 87,171,185,248,164, 10,232, 63, 72,153, 77,211, 0,202,224,221,173, 92,
+ 25,184,132,161,185, 12,154, 56,218,130,200,242,156, 79, 32, 9,222,169, 53,175,215,163,109, 4, 35, 87, 38,213,118,237,213,184,
+157,230,129, 14, 29,234, 43, 79,200,121, 44, 74,136,254,193,228,164, 14, 78,165, 37, 32, 21, 36,114, 27, 43,122, 10,208,109,175,
+ 55,250,153,210,142, 70, 8,182, 48,221, 58,207, 30,108, 70,190, 58,142, 8,215,180,194,172,178, 30,202,180,111, 51,236,183, 52,
+254, 19, 1, 74,110,190, 28, 58,107,231, 8,230,179, 42,134, 44,191, 49,108, 35,229,242, 56, 81,153,255, 0, 4,148, 9, 73, 30,
+197,183,237,213,159,222,143, 44,191, 21, 3, 88,117,181, 18, 76, 94,238,155,164,132,249,111,173,214, 66,138, 77, 2,130, 77, 1,
+213, 27,166, 37, 22, 72, 65,149,133, 38,252, 73,201,110, 50, 69, 30,146,160,194, 9,234, 65, 78,218,171, 42,192, 98,154, 4,164,
+ 11,230, 89, 21,216,177, 99,161, 60, 75, 73,242, 56,123, 77,116,214, 86,225,209,183, 41,179,158, 22,236, 93, 18, 16, 77, 29,124,
+ 1, 79,234,145,170,245, 69,194, 97, 36,218, 45,145,215,135, 67,117, 34,175, 33,196, 82,130,181, 36,238, 53, 86, 37,236,218,173,
+158, 8, 5,202, 83, 98,238,182,194,122, 58, 2,171,211,125, 90,219,162,104, 22, 82,187,159, 46, 27,118,215, 80,205, 60,197,121,
+ 72,110,190, 0, 13,255, 0, 78,144, 96,162,101,197, 37,184,135,215,108,105,213,130, 82,174, 65, 95, 81, 52,212, 52,116,209,146,
+133,102, 66,231, 74, 51,218, 37, 76, 51, 84,148,255, 0, 85, 67, 96,116, 82, 26, 73,160,204,183,220,242, 98,205,214, 12,126,123,
+115,109, 39,125,183,165,117,116, 65,194, 25,147, 21, 97, 68,204,162,184,187,160,113, 85, 49, 16,132,178, 9, 62,205,233,170,118,
+ 86,197, 20, 76, 50, 31,219,169,241,110, 18,230, 75, 89,170, 86,213, 72,246, 83, 64,176, 22, 81, 50,209, 62, 63, 29,187, 83,176,
+210,148,208, 57, 25,101, 84,241,218,163, 66,142,165, 18, 50, 12,150, 98, 92, 26, 45, 41,149,109,230, 36,166,158,193,207, 69,188,
+ 50,103, 96,183,225,179,153,129,116,114, 57,217,182, 92, 86,254, 31, 16,169,208,251, 10,140, 75,130,135, 89,173, 17,111, 57, 60,
+216,136,253,215, 53, 60, 43,208,111, 93, 78,115, 41,226, 3, 39, 27, 62, 49,106,176, 95,225,197,121, 35,229, 93, 87,150,245, 7,
+138,197, 71,233,209, 43,184,152,169, 0,225, 34,221, 97,179,143,100, 25, 62, 62,164,241, 60,202, 26,175,188,114, 31,163, 70, 58,
+136,148, 58,248,144,150,176,139, 4,235,155, 87, 80, 83,248,172, 54,151, 27, 39,233,175,244,106, 82, 97, 23,228,144, 5, 60,150,
+191,151,196,139, 61,123, 72, 45,164, 87,233, 20, 58,163, 68,183, 76,163, 29, 2,253,153, 52, 93, 44,209,173,204,167,248,198,214,
+183, 0,241, 41, 59, 29, 28, 65,204,148, 39, 50,202, 10,159,105,120,220,187, 34,155,170,202,170, 42, 63,101, 39, 81, 49,218,150,
+231, 1, 53,226,247, 72,146,109,177,172,206, 10, 52,147,229,168,127,179, 93, 68,196,135, 42, 22, 73,248, 33,240,113, 6,217,254,
+ 99, 25, 45,252, 81,143,204,176,145,214,149,169,211, 88,238, 59,208,183,104,202,146,239,181,136,191,220,152,138,242,207,202,186,
+208, 27,244, 53, 7, 91,152,179,219, 6, 76, 75,164, 14,208, 90,151,143,222,114, 8,171, 20, 74,124,199, 19,244, 19, 93,107, 76,
+137, 49, 85,200, 36,163,243, 46,190,126, 46, 44, 47, 43,224, 91, 74,113, 73,246,239, 93, 6, 48,221, 99,170,242, 59, 87,172, 99,
+ 55,115, 21,237,211,174, 45, 92, 95,152,191, 33,173,255, 0,103,113,165,100, 55, 76,162,137,176, 65, 33,101, 10, 93,202, 27, 15,
+170,170, 75,156,134,250,173, 26, 82,243,139, 43, 41,171, 53,226,101,198, 45,249,214,202, 33, 33,131, 69,171,165, 58,255, 0, 70,
+148,107, 1, 42,237,116,225,219,233,237,182,204,137,107, 31, 8, 79,154, 79,182,134,137,213, 57,212,232,145,177, 84,221,227,157,
+115,114,234,176, 16, 67,143, 60, 72, 20, 61, 41,162,209, 21, 9, 76,234,162,226, 98,224,195, 48, 86,186,249,109, 40, 62,253,124,
+ 1, 86,218, 29,209,116,106,166, 74,182, 75,112,149,119, 3,255, 0,103, 76,114,162,105,253, 96, 20, 63,250,186,173,183,226,218,
+166,250, 32,223,207, 29,110,230,227,209,205, 86,147,197, 60,124,106,116, 59, 70,138,123,147,166, 37, 61, 50,146,108,207,213, 42,
+112,165,247, 20, 60, 56,158, 90,175, 92, 95,197, 28, 77, 66,201,243, 6,239,217, 28,215, 35,170,158,119,224,183,255, 0,171, 31,
+211,162,249,111,162,111, 53,148,236, 74,106,114,107,252,108, 69, 43,170, 85, 13,194,177, 95,218, 52,240,210,219,182, 42, 50,181,
+ 1,141,117,105,187,219,184,195, 27,165,151, 60,144, 7,245,129,167,235,211,192,104,233,183,234,156, 46, 87,132,227,113,139, 46,
+ 56, 12,181, 32,165,197,215, 96, 72,233,168,100,190,129, 60, 78,133,112,103,174, 47,204, 14,251,141,181,117,236,111,104,166,170,
+ 28,151,148,166,175, 87,136,110, 36,187, 78,133,150,150, 1,227,239, 41, 85,124, 53,239, 30,134,244, 21, 80,136,201,201, 2, 69,
+190, 24,158, 3,188,191,240, 80,149,132,174,100,236,142, 30,246,107, 53, 62, 77, 20,181,172,124, 11, 5, 75, 89, 39,175, 31, 19,
+237, 58,245,203,164, 33, 30,192,137,143, 94,249, 43,190, 28, 3,143,220,156,105,198, 15,203,180,144,133, 7, 5, 19,181,118, 0,
+144, 60, 55,214, 93,146,220,181,192,100,157,127,202, 34, 91,239,119, 15,147,120,188,133,213, 33,100,242,169, 85, 83,197, 62,192,
+ 1,254,141, 22, 32,178, 25,152, 5, 48,227,157,193,153, 28,121,150,167,121, 48, 92, 89,101, 78,113,168,110,137, 71, 21, 1, 95,
+136,154,215,221,246,105,252,176, 82,243, 59, 17, 40,208, 46,247,187,143,241,199,204,148,175,141,146, 55, 37,197, 40,130,120, 80,
+147, 68,212, 0,117, 45,194, 42, 1,228,181, 77,197, 94,180,180,155,147,114, 35,196,104,164,252,114,127, 17,250,162,170, 39,202,
+109, 46, 41, 39,217,204, 36, 29, 39, 37, 66, 81,100, 38,109,233,167, 96, 59, 25,165, 73,153, 85,164, 9, 19,158,118, 59,101, 52,
+ 28,136,143, 25,202,133, 87,196,186,164,211,110, 58,127, 44,248, 33, 25,251, 84,123,142, 75,153, 94,210,187, 29,185, 42, 92,153,
+ 8, 66, 83, 14, 19, 73, 97,142, 35,238,169, 77,176,150,219, 38,130,165,100, 87,196,159, 29, 74, 85,198, 33,202,143,152, 74,109,
+197, 59, 65,143,199, 84,105, 25, 74, 69,254,254,143, 49, 78,194,140,242,147,110,105,194,132, 4,121,178, 26,162,222, 32,214,168,
+ 96,161, 36, 80,135, 79, 77, 2,118,158, 3, 69, 40, 71,181, 23,200,175,221,200,176, 45,153,152,163, 47,252,149,181,149,187, 2,
+209, 99,105, 45, 70, 62, 84,119, 56, 1, 25,158, 40, 91,170, 36, 81,106, 5,100,154,146,118,213,123,108,132, 3,159,127, 18,181,
+ 48,105,178,233,109,128,114,135, 99,221,247,184, 95,155, 91,239,220, 57,200, 87,148,102, 71,116,240,117,146,211,129, 38, 42,218,
+112, 85,178, 7, 34,160,104,121, 31,102,130, 50, 98,120, 43, 6,131, 18,210,112, 71,114, 27,153,250,142,197,239,247,223,228, 44,
+220, 82,140,189, 77,134,132, 37, 19,229,182,137, 41, 82, 93, 81,242,209, 74,213, 3,198,162,160,208, 2, 53,119, 15, 32, 18,203,
+ 63, 54,141, 28, 23, 75,183, 56,121,157,162,247,111,204,242,103,158,127,230, 19, 34,224, 91,112,135, 89,161, 43, 4, 20, 56,158,
+ 34,169, 9, 32, 83, 98, 61,167, 86,188,193, 45, 22,118,194, 3,166, 11,111,117,238,147,218, 93,151, 47,106, 37,205,165,184,181,
+ 50, 93, 79, 37,213, 9, 46, 37, 44, 72,110,142, 33, 59, 38,129, 36, 36,251, 60, 52,226,174,245, 19, 61, 20,107,153,199, 92,243,
+ 47, 86,133, 57, 18,115,203, 67,170,109,254, 78,178,150,254,237, 82,235, 73,220,212,116, 40, 20, 29, 78,136, 34, 80,204,144,140,
+138,209, 38, 35,174,173,208, 12, 3, 85,124,210,126, 38,206,192, 18,151, 16, 74, 8, 73, 32,236, 79,244,104,142,132,232, 93,203,
+ 34,183,139, 75, 78, 52,178,155,211,116, 1,230,143, 54,212,129, 74, 86,149,246,131,167, 73, 2,183,228,143,205, 72, 18,104,151,
+146, 20,145,196, 26,146,147,176, 62,207,134,159,103,191, 70,137,100,149,173,219,108,132,218,236, 17,110,109,173,104,226, 18,182,
+ 92, 81, 53, 40, 43, 34,160,143,101, 6,175, 86, 75, 39,117,217, 30,153,187,213, 37,219,133,165, 23,103, 74, 45, 50,155, 75, 75,
+ 43, 52,226,132,169, 96,169, 36,214,132,111,168,117, 44, 24,102, 99,217, 68,254, 89,134, 40,149,201,244, 87, 86,104,216,121,217,
+215, 93,139,234, 81, 98,187, 86,131, 99, 90,107,226, 30,163,143, 44, 91, 37, 89,227, 18, 71,187,181, 13,181,100,150,196,159,229,
+151,251, 99, 75, 20, 75,137, 88,229,237, 73,213, 80, 73,138,115,162, 95,207,194, 99,231,209,219, 99,103,129, 73,175,215, 93, 72,
+ 19,181, 74, 33, 53, 94,165,170,245,112,126,197, 0,132,190,162,203,155,120,154, 10,215, 80,149,191, 10,109,136, 54,109,219,191,
+254, 56,203,136, 60, 27, 80, 11, 52,240,113, 61, 70,161, 94, 75, 64,132,251, 29, 19,201, 45,254, 69,174, 11, 42,111,248,101,132,
+ 21, 87,193, 64,141,244,209,155, 40,195,138, 32, 50,133, 69,198,141,184,241,167,156, 10,106,119, 0, 1, 67,250, 52, 26,225,241,
+186, 52,229,162, 89, 92,137, 13,203,112, 46,138,117,110, 9, 13,215,196,120,234,228, 75, 22, 81, 18, 91,114,185,137,190, 88,207,
+148, 65,146,148, 45, 65, 62, 60,135, 81,161,109,208,120,162,187,132, 59, 4,147, 26,245,111, 98, 28,149, 0, 27,115,202,112, 43,
+192, 29, 70,208, 65,117, 16,206,163,227, 80, 17,109,191,221,237,174,142, 36, 41, 71,143,129, 65,220, 40,125, 35, 86,164,117,140,
+144, 99, 38,209, 37,184,153, 73,201,146,212,143,136,199,125, 42, 29,119, 70,244, 58,191, 13, 84, 38, 83, 52, 91,202, 92,159, 60,
+ 48,186,249,169, 33,193, 95, 16, 42, 52, 11,126, 19,170, 81,147,169, 61,150,188, 56,234,231,182,163,241, 6,143, 31,162,180,211,
+ 91, 72, 42, 30,103, 37,107,119, 82,249,252,162,101,172, 36,241, 73,132, 84,163,225, 82, 41,170,162,141, 84,163,102,170,173,198,
+242,215,174, 55, 25,237,242,171,113, 26, 82,235, 95, 10,215, 69,186, 3, 78,245, 41, 72,144,136,193,203,218,139, 45,114, 22,177,
+193, 73, 75,138,223,218, 41,161,249, 90, 38,223,162,100,236,211,138,187,228, 23, 21,180,126, 58,126, 25,254,205,107,166, 48, 96,
+161,231,104,139, 74,201,214,238, 86,195, 75, 53,108,186,144, 15,128,224, 64,208,233,135,194,141, 93,156, 86,159, 81,204,194,181,
+102,237, 93,173,228, 40,221, 89,109,106, 66,119,170,210,154,104,210,137,224,137, 68,184,173, 93,183,141, 25,200,115,103,182,143,
+142, 65,106, 45, 0,216, 15,218,211, 73,216, 5,103, 69,231,185,147, 35, 65, 75,109,182,186, 71, 72,242,154, 9,241, 41,208, 43,
+172,196,184, 77, 50, 2,141,132, 20, 75,200, 27,184,201, 63,194, 50,148,165, 93,105, 90, 84,234,112,113, 36,206, 19, 5,190,201,
+ 14,226,151,167,172, 4,183, 38, 74,144,159,247,116,169,219, 76, 11,201, 65,150, 98, 48, 25,114,238, 25, 4, 7,196,147,196, 31,
+ 96, 26, 45,131,114,128, 26,166,139,162,217,180,229,237, 60,186,121,114,227,173,133,163,192, 21, 10, 15,174,186, 16,131,233,204,
+ 33,152,185, 85,110,117,132,162,255, 0,156,198,183, 13,220,138,142, 33, 94,210, 42,105,171, 66,237,170, 49,139,170,158,225,137,
+ 73,131,145, 60, 88, 28, 27,146,167, 97,184,174,149, 60,182,253, 90,212, 22,238,128, 80, 43, 85,199, 29, 76,139,106,165, 4,240,
+125, 46,124,138, 79,129,218,186, 63,157,229,203,185, 71,202, 18, 14,128,228,184,132,233, 24,116, 71,208,133,121, 17,229, 41, 1,
+ 59,252, 84, 36, 29, 40,100, 13,202, 18,172,112, 90, 15,110,174,163, 52,138,226, 9,254, 88,176,208, 65, 31,247,135,239, 15,171,
+ 74, 23, 3, 22, 79,228,133,115,222,140,152, 88,195,214,148, 19,241, 22,153,108, 87,165, 15,196,126,205, 82, 22,124, 78,150,198,
+ 9,163,183,214, 59,124,155,108,132,164,209, 12, 45,164, 62, 79, 66, 54, 52, 26, 5,150,180, 84,227, 88, 1,210,142, 69,138, 65,
+200,178,233,211,222, 0,196,142,178,150, 18, 63,172, 18, 55,253, 26,140, 45,104,167, 33,212,140, 59, 13,183, 57, 99,188,206,125,
+158, 49, 90,101, 9,100,245, 37,100,255, 0, 70,166,117,101, 24,150, 40,191,242,246,133,183,205, 8,252,115, 23,200, 35,246,168,
+ 5, 1,250,104, 78,153,254, 55, 82,228,201, 58,199,108, 90, 20,229,229,223,240,229, 94, 90, 43,244,245,251,116, 57, 65,194,145,
+237, 77, 45, 93,224,227,246, 11,197,205, 95,226, 18,218, 89,109, 71,175, 35,215, 77, 85,108, 82,220,171,152,185, 23,159,145,197,
+ 17,149,248,104, 37,199, 20,125,157, 78,143, 93, 46, 80,141,154,166,255, 0, 79,119,227, 51,186,151, 44,157,127, 13,182, 20,103,
+212,154,157,190, 20,215,245,234, 82,164, 51, 40,206,106, 47,107,163, 61,120,187, 28,157,241,248,151, 91,130,153,140, 61,169, 14,
+ 18,163,191,187, 67,216, 61,200,206,144,189,126,247,230, 71,104,240,217,242,236, 13,149,221,156,121,113, 34,184,231, 20,180,133,
+ 1,197, 74,248,143,196, 71, 94, 32, 19,238,215, 87,233,111, 77,142,167,153, 88, 37,163, 18, 9,239, 31,109, 31,146,104,201,194,
+249, 77,114,186,203,201,178, 39, 95,150, 84,236,151,157, 83,143, 62,225,161, 90,214,162,165, 40,129,225,236, 3, 95, 80, 68, 70,
+ 33,162, 52, 78,186, 71,209,254, 57, 5,203,147,114,219,125, 49,173,172,165, 38,108,165,166,135,143, 45,208,149, 43,161, 87, 67,
+ 78,131, 84, 51,102,118,178,212,193,135, 53,208, 57, 4, 59, 6, 85, 31,249,133,133,228, 27, 75,238,169,176, 29, 9,109,110,165,
+ 53, 66,120,214,138, 0,159, 15,139,109,102, 86,241,226, 53, 90, 83,105,112, 85,141,219,210,244,220,134,238,226,109,229, 75,101,
+ 78,126, 31,201,130,180,212,157,202,146,149, 2, 0, 52, 31,209,171, 95,187,136, 26,170,199, 24,201, 15, 95,105,239,125,189, 44,
+ 53,120,138,225, 66, 79, 52, 54, 17, 84, 4,244, 7,225, 0, 84,168, 84,147,189, 6,137, 27,227, 62, 9,188,131, 13, 10,155, 3,
+ 32,184, 59, 29,110,160, 41, 9, 75,161,214,151, 66, 43,193,202,129,176,222,181,210,112, 74,147,118, 40,162, 45,219, 45,146,139,
+124, 6,202, 91, 1, 74, 90,148, 43, 85, 36,114, 34,131,112, 18, 18, 52, 81, 96,142,168, 6,162, 84,137, 29,189,189, 76,101,181,
+ 58,215,150,149,172, 15,133, 60,148, 91, 69, 82, 13, 60, 54,212,127,113, 16,162,113,202,149,137, 96,215, 31,154, 84, 63, 44,114,
+ 42, 83,170, 6,159,136, 60,190, 92,150,161,186,184,210,160, 86,130,157, 55,211, 89,120, 67,242,153, 89, 56, 6, 60,234,165, 51,
+107,130,218,190,101,194, 67, 32, 2, 64, 37, 66,174, 29,170,122,236, 61,192,106,140,166,250,164, 32,228, 5,222, 62,153,127, 45,
+123,157,239, 5,133,124,117,170,221, 33, 72, 23, 55, 28, 88,175,157, 84, 81, 64,211,160,166,201, 10,165, 6,185, 62,165,212,140,
+165,182, 60, 23, 97,209,236,142, 28,132,228, 89,211, 95,168,159,202,195,208,215,122,109,105,188,119,119, 23,105,156,181, 60, 60,
+217,241,218,122, 28,197, 20, 14, 52, 84,168, 74, 67,133, 52,240, 42, 35, 85, 33,146, 64, 12, 72, 43,183,187, 43, 31, 40,255, 0,
+ 86,168, 74, 61,174,210,247,134, 63,122,226,159, 80,222,135,189, 47,246, 66,249,106,199, 59, 27,142, 49, 13,165,190,149, 73,152,
+231,157, 41,229,178,133, 5, 31, 49,233, 10, 91,138, 28,146, 58,171, 91,253, 54,102, 71,113,119, 11,151,245, 21,152,213,213,229,
+211, 24,197,251, 56,251,248,253,233, 7,188,157,178,145,114,176,166,222,252,118,209, 62,221,205, 13,183, 80, 20,228,117,149,121,
+106, 72, 32, 18, 66,118, 62,253,107, 71, 37,164,235,140,157, 78, 25,115,190,111, 98, 94, 61,123,122, 53,176, 4, 41, 0,150, 67,
+ 73,160, 80, 73,228, 80,164,138, 84,210,190,250, 82,154,216,166,123,128, 43, 46,234,246,173, 22,151,228, 48,133,189, 25,196,200,
+140, 88,243,156, 65,113, 65,104,228,119, 29,118, 32,166,135,109,252,122,234,194,172,130,187,220, 9,182,235, 89,143,107,150,181,
+ 91,138,130,100, 49,181, 23,205, 9,167,194,107, 90, 5, 83,137,168,253, 26,102,116,146,180,121,220,175,207, 52,195, 73, 49, 29,
+160, 79,151, 84, 5, 85, 69, 73, 60, 62,239, 79, 4,129,190,164, 2, 98, 81,123, 52, 64,227,222,100,149,121, 47, 46,165, 47, 20,
+172, 22,235, 80,174, 98,170, 27, 84,251, 58,104,160, 38, 37, 88, 56, 94, 83, 17,187, 57,176, 92, 30, 10, 82, 63, 21,135,145, 68,
+252, 41,226,162,129,239, 27,170,158,237, 91,174, 65,146, 26,171,155,178, 89,155,238,221,161, 69,134,164,252,160,243, 18, 16,190,
+ 74,223,239, 37, 41,167, 77,247,213,200, 23, 10, 97,118,109,166,246,153,214, 73,141,169, 1, 7,130, 21, 64,165, 16,162, 18, 62,
+ 33,200,158,181,250, 61,154,248,143,213,122,103,228, 0, 27,250,146,237,254,241, 72, 29, 84, 44,186, 60,119,114, 59, 84, 8,224,
+ 37,193, 24, 40,123,121, 84, 40,141, 99, 68, 52, 18,117,170,253,134, 27,213,202,101,194, 48,229, 57, 8, 14, 68,246,159, 41, 28,
+149, 77, 70, 51,224, 20,193, 98,160,216, 99, 93, 32,223,226, 95,148,138,161, 43, 66,164, 87,216, 60, 62,173, 86,175,230,144, 70,
+ 58, 4,195,155,228,208,100,221, 16, 24, 72, 74, 82,162,149,143, 97, 52, 35, 77, 85,127, 55, 98,128,146,215,145, 74, 77,194,199,
+252,169, 73,254, 37,149,133, 33, 94, 36, 40,109, 77, 16, 6, 1, 11,154, 64,186,189,114, 72,101,100,144,252,117, 40, 56, 61,161,
+ 39,253, 26,183, 16, 1,241, 77,169, 10, 68, 59,138, 29,129, 30,114,207,196,219,171, 64, 81,254,170,199, 77, 53,240, 32,104,161,
+ 92,220, 33, 50,175,111, 66,159,243,169,168,142,149, 41, 15, 39,217, 95, 29, 40, 2,116,237, 86, 1,209,120,183, 37,235, 13,217,
+ 78,199, 81, 85,158,119, 23, 25,115,122, 5, 19,186,126,157, 30, 85, 2, 21,121, 88, 68,147, 66,146,185,114,147,127, 64,254, 45,
+176, 35, 72, 72, 31,121, 42, 27, 29, 13,158, 32,118, 40, 74,205, 82,102, 81, 9,216,193, 87,150,198,236,184, 90, 89, 31,213,174,
+172, 85, 39,100, 87,112,132, 90, 25,186,177,150,188,134, 18, 87, 22, 83, 62, 98, 58,144, 84, 6,227, 71,201, 2,202,251,194, 29,
+113, 32,167,142,218, 89, 83, 8, 92,110, 73,217,159,149, 90,211,238, 88, 59,131,170,248,150,249,145, 99,196, 40,219, 86,169,187,
+188,247, 56,243,112, 88, 55,244, 26,173,112,208,211,103,222, 54,167,232,209,204,117, 85,193, 98,169, 12,110,245, 50,217, 34,232,
+130, 42,228,166,210,210,125,212, 21, 35, 70,182,160, 68, 74,181, 18, 74,223,112,153, 62, 28, 71, 31,126,160, 45,180, 4, 39,127,
+ 29, 52,107,213, 8, 59, 21,109,250,112,184,202, 51, 46, 75,105, 63, 28,120, 60,137, 61, 10,202,122,111,170,214, 86,132, 11, 13,
+ 80,139,230,102,109,205,176,227,191, 12,245, 56, 92, 80, 61,119, 61, 53, 8, 86,202,221, 71,159,106,131,147,101, 23, 12,134,249,
+ 9, 79,184, 92,117,161,201, 38,181,162,148, 40, 0,211,144,218,162, 66, 65,149,161,136,121, 24,254, 32,220,101,124,119, 5, 15,
+ 49, 67,216,165,253,209,170,224,110, 82, 22, 42,239,184, 89, 35,106,184, 55, 25,213,243, 48,194,138,192,232, 92, 89,160, 31, 86,
+141, 40, 48, 79, 41,186, 98,195, 93, 74, 45,140, 14, 84,248,121, 60,125,171, 86,244,213, 81, 6,114,152,205, 24,183, 94,156,102,
+226,197,177,213, 81,182,185, 73,113, 62,196,251,254,173, 60, 32,159,204,209,106,192,110,174, 79,203,229, 95, 66,138,109,172,173,
+ 74, 4, 86,132,141,205, 52,113, 29, 19, 25, 50,147,118,202,156,151, 61,119,103, 84, 75, 65,192, 25, 29,119, 42,219, 65, 33,181,
+ 77, 25,144,131, 74,202,213, 23,185,101, 42, 53, 45, 4,184,225,247, 41, 52, 58, 30,215,131,246,167, 18,100,181,156,185, 25,118,
+247, 87, 25, 35,230,155,150,167, 57, 10,116, 59,235, 66,191,132,109, 42, 0,169, 42,183, 64,149,133,198,147,194,146, 22,175,155,
+ 89, 63,214, 73,212,140,247, 58, 78,179, 33,143,110,143,111,249,116,182, 63,151, 37,191, 60, 5,116,243, 28,219,245,232, 85, 59,
+ 38,148,156,186, 93,145,113,182, 34, 93,190, 35, 31, 2, 99,172,243, 39,127,138,149,174,137, 45,206,158, 51, 68,114, 76,190, 59,
+209,235, 21, 53, 17,192, 91,135,250,196,154,105,246,188, 89, 64,241, 91,187,119,220, 97,111,122,227, 26, 75,149,130,150,139,197,
+ 53,175,199,225,166,242, 92, 0, 82,148,217,121,181, 95,227,179, 1,153, 79, 40,243,125,215, 30,122,157,104,170,208,104, 83,210,
+ 64, 36,250, 38,158,218,220, 24,188, 89, 23,109, 70,200,124,184, 72, 63,217, 86,195, 78,100,210, 66,226,189, 38, 74, 63,205,203,
+177,126,207, 36, 48, 15,254,173, 71, 76,220,212,183, 37,107,220,208,139, 76, 75,109,176,127, 15, 82,250,192, 31, 17, 0,237, 95,
+175, 86, 99, 29, 64, 41,237,249, 82, 94,125,149, 62,206, 36,251,110, 57, 71, 29,123,226,247,211, 86,171,168, 25,170,190, 99, 4,
+191, 21, 19,109, 24,172,139,212,138,166,227, 36, 37,166, 18,175, 15, 51,253, 90,182, 34, 4, 73, 74, 32,232,172, 46,215,199,122,
+217,219,235,204,200,130,146,164,182,220, 52,171,253,231,222,233,172,201,216,192,149,118, 53,185, 76, 86,199,173,248,163, 22,169,
+ 16, 71,154,171, 52, 55, 36,169,132,169, 40, 30, 98,200, 5,199, 22,175,133, 8, 21,169, 42,235,224, 10,168, 11, 98, 86,103, 31,
+ 31,179, 14,243,253,188, 18, 60, 89,124,200,245,169,221,171,159,118,123,175, 41,232,211,156,184,219,161,169,200,209,156,230,175,
+ 32,173,106,228,234,163, 55, 64, 16,217, 86,194,191, 17, 2,170, 36,239,175,166,125, 25,210,191, 97,131, 16, 99,182, 82,212,246,
+235,219,223,248,112, 83, 17, 84,196, 43,104,136,191, 63,133, 79, 34,165,169, 98,133, 70,155, 0, 20,122,123,117,213, 41, 0,202,
+219,237, 85,202,245,100,100, 50,228,215, 17, 1,208,135,223,102, 58, 90,224,164,175,227, 74, 84, 86, 43,191,142,199, 64,178, 59,
+149,218,100, 98, 21,163,134,228,178, 27,187, 25, 43,117, 1,197, 35,139, 97,117, 79,146, 9, 7,224,107,116, 18, 61,201, 26,132,
+171, 12,143, 27, 53, 86,166, 37,147,223,236,252, 92,199,102,182,167, 1, 42, 17,229,151, 90, 73,216, 2, 84, 2,208,119, 59,252,
+ 58,163,117, 81, 35,130,187, 81,144, 58, 21,112,218,153,178,103,152,180,104, 23,171,120, 18,219, 72,105,197,249, 18, 62, 53, 41,
+ 74, 89, 82, 23, 32, 4,134,192, 36,130, 9,253, 52,214, 60,160,107,145, 33,106,129,188,106,128, 93,189, 30,216,165, 60,155,245,
+184, 44, 41, 65,208, 26, 37,196,114,105,142, 43, 42,230,177, 94, 5, 75,222,130,190, 26,156,122,140,248, 21, 31,217, 68,168, 86,
+ 14,217, 59, 97,101,139,109,150, 10,155,138,162, 27,146,235,104,252, 69, 85, 37,197,110,104, 82, 14,196, 10,116,235, 93, 79,207,
+221,169,213, 55,237,155,130, 62,239,111, 46, 46, 48,234,147, 1,100,176, 82,130,174, 32, 40, 14, 59, 2, 87,176,169, 30, 62,237,
+180, 49,102,161,210, 56,250, 45, 24, 87,167, 12,178,249,115,100, 8,197, 45, 5, 37,181, 56,174, 67,136,116,113, 21, 36, 86,128,
+ 87,113,215, 70,187, 32, 68,119,170,159,180, 37,116, 87, 98,189, 45, 90,241,251,165,189,119, 40,193,198,220,113,180,191, 41,124,
+ 67,110,169,106, 42, 9,230,106,105,238, 3,235,214, 94, 70,105, 49, 40,213, 97,128, 67,175,169,253,146,193, 96,226,120, 44, 43,
+124,101, 5, 35,202, 77, 82,132,241,108, 87,127,133, 52, 31,167,125,102,244,236, 49,105, 50, 37,100,117, 92,163, 43, 25,153,145,
+252,143, 4,197, 50, 88,229,139,244, 54,164,180,161,196,165,196,131,215, 90, 57, 61, 54,184,135,118, 42,149, 25,214,215,242,146,
+185,207,212,239,161,238,215,229, 54,177,125,129, 21, 13,200,140,146, 26,111,203, 11,160,161,216, 29,141, 42,117,154, 50,103,142,
+ 88, 29, 22,198, 53,255, 0,185, 45, 49,170,249,215,234,103,181, 12, 67,150,245,145, 8,228,244,116,121,141,167,129, 63, 3,103,
+226, 64, 81,232,164,157,233,253, 26,214,162,211, 48,234,221,149,237,209,112,231,126,177,169, 23, 7,216,122, 50, 82,214, 65, 21,
+ 40, 42, 72, 4, 23, 60,186,132, 2,158,160,144,120,253, 90,232,112,167,162,199,204,130,161,110,243, 46,240, 36, 42,225,108,105,
+ 73,101,214, 40,161,184,248, 84,157,234, 0, 29, 64, 4,123,245,172, 36,178, 8, 74,206,192,191,161,196,183, 41,165, 54, 1, 33,
+ 69, 35,239, 4,149, 2, 77, 61,226,157,124, 61,218,155,178,101,180, 79,144,133, 37,207,151, 81,125, 52, 11, 65, 80, 90, 73, 79,
+ 34, 20,149, 87,122, 80, 83,253, 58,115, 36,204,137, 76,204,195,173, 41,181, 32,137,192,113, 90,233,247,130,192,165,124, 42, 52,
+132,153, 38, 94,237, 25,140,132,203, 67,145,208,164, 71, 85, 91, 75, 78, 14, 73, 85, 73, 10,235,184,240,240,209, 33, 36,220, 23,
+ 71,122, 93, 98,101,211, 37,142, 84,219,172, 50,148,165,194, 22,127, 14,158, 36,151, 57, 2, 62,158,154,185, 11,153, 22,184,185,
+ 93,175,219,220,219, 4,189, 92,127,201, 22,219,155,107,184,186,148, 22, 25,248, 18, 73, 78,202,108, 20,147,189,122, 3,245,107,
+199,126,165,122, 50, 89,245,156,204,120,189,177,249,135,247,135,110,173,168,211,159, 7,231,162,183, 44,112, 70,137,177,203, 11,
+146,114, 21, 92,100, 33, 72,126, 8, 82,144, 22,146,154,130,142, 52,223, 95, 61,100, 66,116,141,147, 12,123, 15,219, 95, 98,168,
+ 33,170,101,197,226,197,110,237,104,142,247,239, 3, 15,200,116,255, 0,124,113, 0,215,221,170, 33,221, 40,234, 86,252,115, 22,
+133,112,147, 46,214, 64, 46,199,125, 69,105, 52,175,150,164,109,250,117, 2, 8, 36,171, 58, 29, 18, 39,112, 49,246,224,221,164,
+ 72,173, 97, 21,182,133,120,113, 87, 16, 52,106, 78,224,156, 65,151,139,130,139, 55,178,218,235,195,202, 96,130,122, 29,182, 58,
+ 53,177,254,158,138, 16,139,113, 81,238,214,139,114,217,118,104, 2,174, 35,204,167,191,238,157, 14,162, 75, 30,196, 72,192, 7,
+ 73, 56,172,113, 41,235,134, 45, 33, 84,113,165,135, 89,254,234,183, 78,180, 50, 65,218, 36, 22,125, 81,109, 20,252,179, 15, 84,
+ 75,117,221,247, 5, 60,150, 90, 90,193,246,147, 74,232, 48,147,144,138,205,162, 71,199,178, 87,134, 52, 45,242,149,201, 37,242,
+ 88, 39,246, 84,147,225,173, 51, 4, 2, 53, 86,148, 52, 41,200, 13, 93, 34,142, 81,213, 21, 46, 58,145,226, 65,166,179,165,240,
+132,246, 85,170, 29,116,179,252,230, 45, 47,229,192, 91,242, 30, 66, 66, 79,133,126,241,251, 53, 26,230,210, 69, 17,209, 52,118,
+151,182,145,231,150,229,200, 64, 72,108,173, 13, 41, 67,168,225,211,125, 74,203, 8, 8,176,136, 65, 92,142, 44, 54,251,182, 47,
+108,169,121,228,184, 82,179,185, 41, 39,115,244,106, 84, 71,226,222,163, 54, 91,111,214, 39,239, 56, 77,174,202,181,213, 48,163,
+161,199,149,239,229, 82, 62,205,104, 59, 49, 89,230,179,185, 33, 90,112, 71,175, 25, 19,240,162,182, 75,252, 86,224,227,224, 86,
+ 54,174,148,236,208, 5,106, 35, 69, 63,188,152,164,139, 30,101, 97,192,163,163,148,245,195,105,249,101, 63,247,170, 20,167,213,
+169, 87, 39,121, 33, 74, 46, 25, 53, 98, 18,162, 97, 57, 92,156,117,135, 7,203, 64,143,243, 23,103, 73,251,203, 82,107,195, 80,
+144, 40, 86, 69,180, 84,198, 67,150,221,115,188,197,217,177, 63, 10,220,227,202, 76,100,143, 6,208,170,109,245,232,230,161, 1,
+170, 36, 74,126,196,237,200,106,122, 29,144,121,169,134,170, 74,191,173, 81, 82,126,189,103,201,228,236,160,100, 93,147, 30,107,
+220, 88,216,141,136, 56,135, 57,220, 87, 80,132,141,201, 89,216, 83,232, 26, 37, 84,104,167, 25,106,202,160,187,230, 78,221, 46,
+205, 70,106,170,125,215, 2,151,190,229,100,236, 53,103,200,209, 74, 83,213,149,194, 38,167, 26,110,215, 99,121, 64,206, 74, 18,
+252,148,255, 0,109, 99,149, 15,208, 53, 82, 85, 62,138,123,144,215,242, 73,108, 99,247, 12,177,229, 86,229,117,145,242, 48,135,
+177, 35,225, 37, 62,237, 76, 82,193, 39, 77,246,230,145,141, 96,144,227,180,104,235,169, 83,146, 20, 77, 54, 61, 73,208, 46, 60,
+130,121,142, 73,110,195,144, 38,234,183,230,201, 87, 27, 92,110,110,138,244, 33,190,154, 22, 68, 26, 0, 14, 42, 32,185, 73, 22,
+188,213,251,142, 67,116,188,185, 85, 59, 32, 43,202, 79,246, 65,219, 70, 56,255, 0, 4, 66,145,150,171, 91,247,217,158, 76,166,
+ 36, 40,213, 92, 84, 9,175,245,117,110,202,120, 21, 88, 76,137, 38,203,198, 67,228, 98,173,179, 31,102,252,132, 33, 52,241, 36,
+212,232,112,135, 20,140,245, 43,199,118, 46,206,199,237,226,209, 27,105, 76,180,203,142, 17,215,143, 93, 18,170,190, 32, 59, 84,
+ 68,221, 84,191,231, 9, 15, 50,110, 9, 63, 14,203, 42,175, 66, 5, 14,143, 58, 94, 76,167, 25, 40, 47,119, 77,113,109, 83,210,
+242,183, 91, 39,141,125,160,234,197,120,206, 83, 78,107, 87,111, 50,217,247,152,111,249, 39,227,125, 21, 82,189,192,239,163,156,
+112, 16,201,220,142,227,185,211,215,102, 31, 96, 18, 81, 29,222, 3,251,164,208, 29,102,229, 99,237, 46,137, 25,185, 79,152,118,
+108,172, 99, 34, 22,228, 43,240,211,193, 66,167,193,205,143,235,213, 99, 83,234,155,118,169,201,182,100, 43, 59,118,127, 35,228,
+ 33,109, 72,229,239, 91, 14, 46,159, 98,116,182,124, 41,110,213, 14,237,195,104,184,150,221,157,187,239,180,178,132,157,194, 25,
+ 66,126,247,214,116, 27,102,197,213,194, 52,100,155,124,195,134, 71,155, 65,178,253,235, 92,112,227,239,167,192,210,170, 4,234,
+223, 78,191,115,146,170,217, 79, 5,187, 57,199,221,145, 34,223,106, 41,227,200,124,225,246, 83,142,212,253, 90, 44,239,248, 76,
+ 81, 68, 0, 78, 93,177,179,202,186,217,191,203,237,158, 17,213,206, 91,228, 16, 10, 80,216,226, 9, 59,208,106,149,146, 4, 34,
+192,234,169,175, 90,157,212,186,118,231,180, 18,236,248,161, 75, 2,226,240,183, 45,218,173, 46, 62,165, 87,154,170, 13, 74, 82,
+158,181,235, 79,234,212, 43,187,244, 7, 77,142, 94,116,119,235,182, 36,247, 14, 31,111,237,100,226, 58,174, 5,139,106,151,126,
+186,189, 49,180,131, 17,189,156,125,123, 37, 9, 42,227,201, 68,144, 1, 81, 27, 10,212,235,232,162, 91, 64,143, 16,234, 38, 85,
+108,142,137,129,166, 92,242,210,146, 79,156,177,247,129,223,109,171,211,175, 77, 60, 74,140,194, 35, 99,153, 54, 43,160, 66, 88,
+ 75,169, 33,106, 88, 60, 73, 59,159,216,232, 71,215,167,100,226, 69, 60,226, 25, 11,182,214, 75,183,143,198,158,170, 20,114, 10,
+168,166,252,184, 5, 38,170, 63, 70,162, 98,234,197, 82,237, 87,111, 99,174, 44,230, 23, 22,224,194, 92,175,230, 2,129,111,240,
+142,160,138,251, 75,138,175, 31,109, 21,211,192,235, 43, 44,109, 91, 24,165,202,250,149,232,187,211, 68, 70,112,200, 25, 62, 90,
+ 32,200,152,166,212,164,221, 2,213,231, 41,181,184, 20, 91, 12,134, 5, 42,221, 64,161,226, 79,183, 92,142,102, 80, 50, 96,235,
+ 98, 47, 17,222,173,165,118, 35, 9,184,201,254, 83,103,101,182,218,142,163, 20,147, 21, 62,106, 68,129,201,214,234,148,168,165,
+ 42, 41,168,174,255, 0, 71, 77, 87, 54,144, 53, 68, 19,101, 34,127,162,238,222, 8,110, 72,141,198, 58,231, 60,167, 84, 80,130,
+ 62, 42, 42,158, 41, 36, 80,210,148, 31, 70,130, 50,230, 19,139, 65, 44,200, 77,159,209,238, 43,100,140,252,119, 82,153, 41,146,
+165, 21,198, 64,122,142, 43,204, 9,231,178,193,228, 42, 0,169, 32, 3,211,218,231, 54, 74, 68,197, 74,199, 61, 48,192,178, 67,
+126,222,244, 46, 44, 54, 80,219, 41, 41, 33,106,109, 0, 41, 41,234, 77,118,161,216,116,208,236,203,151, 30,105,124, 37, 66,204,
+ 48, 73,150,194,133, 91,217, 91, 11,130, 27,119,229,208,148,249,137, 72,113, 36,185,182,201,173, 13, 43,184,247,233,161,107,241,
+213,211,109,236, 87, 87,106,125, 83, 99,239,217,226,217,175, 15,161,187,209, 75, 73, 17,247,228,149, 20, 37, 75, 36,253,221,138,
+169, 74,254,173, 74,187, 44,171, 64,178, 51, 58,100,109,150,225,196,241, 86, 60, 62,238, 99,151, 84,173,200,143, 5, 70, 66, 74,
+202,129,173, 18, 15, 30, 70,158,221, 18, 89,114,151,204,179,127,210,164, 18, 55,115,187,180,155,123, 82,146, 28, 66,225, 22,194,
+185,114,221, 5, 68,129, 90,234, 59, 68,202,210,199,198, 21,248,174, 8,245,105,150,219,111,153,100, 59,181,149, 1,114, 80, 86,
+ 36,160, 29,184, 41, 60, 87,204, 39,122, 19,202,149,214,214, 38, 62,133, 26,219, 25,115,231,125,123, 21,137,100,214,225,147, 33,
+174, 18, 36, 4,172,200,106,129, 74,109, 73, 36, 10,141,141, 20,106,118,235,171,248,119, 24,157,170,174, 85, 27,131,174,102,202,
+123, 49,136,218, 46,201, 74,137,110, 40,115,247, 15, 37, 77,144,150,213,205, 20, 36,116,232, 62,173,116, 21,146, 66,193,182, 12,
+ 82,106,251, 69,110,152, 60,169, 79, 52, 74, 18,165,208, 84,158, 94, 95, 50, 5, 71, 66,181, 42,187,215,122,232,193,208, 76, 66,
+136, 61, 62,170,241, 58, 52, 88,204,241,226, 67,203, 84,100, 14,102,131,192,109,189, 72,174,219,211,232,210, 54, 55, 20,133, 6,
+ 92, 23,236, 63, 73,119,151, 82,183,158,101,201, 72,113,192,162,181,182,148,166,133, 59, 80,159,103, 34, 58,105,188,225,218,138,
+ 49, 10,177, 59, 27,232,251, 16,141,116, 98,102, 65,107, 14, 73,109, 97,208, 29,146,149,164,211,127,221,165,178, 0, 32,120,154,
+234,189,247,202, 33,129, 86,104,196,143,243, 46,131,201, 59, 71,142,195,198,184, 89,236,101,166, 84,128,143, 62,205, 23, 96,144,
+118, 73,113,176,170,154,143,218, 26,169, 70, 77,128,235, 39,241, 43, 70,120,245,182,145,101, 78,222, 44, 89, 94, 27,116, 76,247,
+ 30,117, 49,138,184, 69,118, 74, 28, 82,146,160,106, 42,164,132,208,253, 71,232,214,237, 57, 59,130,207,148, 12, 75,174,157,244,
+251,222, 25,121,189,137,252,119, 39,144,217,200,221, 74, 20,212,151,129, 74, 36, 20, 39,143,150,104,148,241, 81, 78,193, 85, 31,
+ 78,188,163,215,190,135, 25, 82, 57, 52, 2,228,124, 81, 0, 16, 88,104, 72,112,207,193,198,186,113, 66,200,173,195,132,223,105,
+200, 34, 51,153,205,109,231, 22,204,168, 97, 16,148,195,136,170,144, 80, 62, 33, 94, 67,199,221,175, 6,191, 14, 48,147, 18, 65,
+ 28, 65, 3,248,172,232,150,116,115, 16,203, 32,198,238, 68,245, 37,194,166, 93,183,169,231, 10,146, 18, 2,208,120,142,138, 86,
+171, 79, 28,109, 36, 31,187,251, 84,140,217,138, 85,206, 36,139,165,182,105,111,103, 36,187,243, 42, 31,213, 9, 77, 6,171,225,
+ 86,196,130,172, 78,122, 58, 3,113,186, 46,241,133, 69,189,176,170, 92,216, 96,177, 41, 3,239, 81,181, 85, 11,250, 41,171, 77,
+240,144,161, 57,234,180, 93,239,234,107, 25,141,112,167, 36, 56,164,161, 95,250,193,254,157, 54, 13, 79, 19,226,152,218,150,108,
+138,110, 85,233,219,228,115,198, 64,109, 77, 45, 63,218,105, 85,213,198,113,180,170,228,182,170,208,203, 45, 76,221, 93,118, 18,
+ 71, 20,221, 45,109, 42,158,213,240,255, 0, 78,171, 70,189,179, 8,126,118,139,153,100,179, 38,209,141,159, 63,103, 88,150,232,
+ 62,208, 82,170, 87, 91, 7, 82, 20,201,209,213,139,219,220,237,228,227,174,195,144, 69, 88, 1,183, 1,241,109,225, 64,126,163,
+172,252,154, 81, 55,184, 78,178,100,197,139,142, 53, 63, 97, 21, 40, 14,169, 94,213, 26, 38,154, 0,165,202,104,201, 62, 98,153,
+ 52,107, 54, 40,242,211,254, 37, 12, 4,178,159, 16,167,198,234,251, 52,178, 96,208, 36, 34, 86, 92,178, 65,179,170, 21,199, 39,
+126, 99,139, 41,140,218, 62, 81, 69, 93, 8,221,100,234,116, 68,236, 3,185, 52,198,171,212, 9,235,147,104,147, 13,162, 74,164,
+185, 84,211,193,164,171,141, 52,113, 39, 74,113, 0, 38, 12, 34,221, 6,201,127,152,251,200, 9,113, 46, 48, 86,124, 74, 82,158,
+ 92,126,221, 85,184,157, 20, 15, 5, 19, 39,106, 37,223, 47,147,154,202, 64, 47, 71, 74,150,149,145, 90, 33,191,138,131,235,213,
+152, 89,182, 44,152, 5, 95, 99,152,245,234,255, 0,141,222,239, 50,171,252,202,241, 37,231, 10,252, 67, 41, 77, 71,213, 77, 75,
+ 39, 36, 68,196, 40,237,116, 15, 22,193, 99,218,238, 48,217, 79,196,211,108, 56,226,213,253,162,106, 6,139,101,226,101, 74, 53,
+178,118,129,142, 61, 34, 28,133,176, 13, 29, 91, 44,169,105,247,252,103,245,105,160,200, 70,191,137, 87, 22,203,117,195, 57,151,
+124,190,206, 10,249, 43, 59, 79, 56,132,170,180, 73, 74,138, 19,245,154,106,252,154, 44, 2, 85,214,202,119,100,187, 88,139,194,
+221,205, 46, 71,149,186,218,224,158,239, 33,212, 20,158, 35,237,212,204,128, 32, 40,206, 58,166, 73, 16,238, 87, 43,138,242,151,
+235,252, 91, 15, 62,200, 62, 5,103,130, 71,212, 53, 82,168,130, 83,148, 49, 49,229, 77,185,217,109,178, 7,255, 0, 13,130,201,
+121, 0,116, 83,165,116,174,158,233,129,162,156, 66,115,201,103, 63, 60,181,143,180,174, 44, 60, 2, 2,135,136, 9,255, 0, 78,
+179,156, 72,186, 39, 20, 30,101,177, 17,237,169,176, 67,248, 95,152,219,173,109,237, 66,107,250,117, 10,190, 50,231,146,114, 25,
+ 40, 97,216,231,201,223,214,220,189,144,148,241,226,124, 20, 78,250,186, 44, 28, 20, 64, 70,123,165,141, 69,136,184, 73,182,208,
+ 33,104,226,225, 31,182,177,169,202,231, 12,135, 58,223, 84,207,103,197,227, 93,112,203,127,205, 15,139,205,249,115,244, 1, 93,
+ 85,149,187, 53, 76, 43, 82, 51,252, 37, 87, 56,115,224,179, 95,150,117,182,218, 65, 63,212,109, 28,206,167, 12,151, 46,154, 53,
+106,170,187,111,103,165,201,130,227,105, 71, 27, 75, 40, 87, 37, 83,239,184,191, 15,171, 86, 70, 83, 57,230,159, 98, 11,147,118,
+ 13,215, 95,108, 13,163, 52,194, 82,177,189, 20,235,138,216,106,205, 25,193, 47, 40, 20,115,183,157,149, 86, 53,143, 75, 97,223,
+134, 73,254, 28, 43,217,207,115,170,121,125, 65,230, 25, 60,106, 70,251,119,233,253,171,108,167,163, 56,174,102, 65, 67,197, 35,
+246, 80,216, 36,143,183, 67,202,205,222,124, 2, 94, 91, 40, 89, 70, 29, 42, 22, 91, 26, 52, 74,151, 19,248,178, 92, 30,222, 95,
+ 10,126,161,161, 67, 32, 8, 38, 21,186,188, 6, 47, 27,228,213,103, 64, 63,206,127,151,166,115,138,253,175, 55,201, 41, 66,127,
+254, 95, 45, 80,253,225,103,228,155, 96,116,135, 96,121, 54, 86,174, 1,147, 67, 21,161, 21, 39,217, 84,238, 62,189, 60,200,153,
+101,116,214, 80,251, 36,182, 89,182,127,152,221, 80, 15,188,227,177,146, 63,105, 72,165, 13, 53,114,152,249,113,110,106, 22, 71,
+ 84, 42, 69,226, 77,238,107,210,102, 42,169,142, 26,140,221,127,101,180,158,159,102,167,102,131,189, 12,171, 75,177,236, 70, 24,
+156,171,228,128,159,152,156,181, 70,104,175,163,108, 55, 85, 45, 95, 70,218,167,100,182,104,165, 18,184, 39,214,239,118,109,185,
+207,112, 29,182, 70, 80,114,201,106, 91,200,105,178,104,133,184,163, 69, 41, 64, 31, 0, 41,246,253, 26,250, 55,233,231,166,207,
+ 79,198,243, 39,243,216, 3,142,193,197,191, 4,106,227,205, 85, 24,150, 31, 34,239, 29, 87,135,220,227, 25, 35,204,105, 41, 72,
+ 13,165, 36,208, 0, 18, 0, 21,175, 65,174,238,235, 0, 42,237, 85,184,116, 3, 34,198,210,226,214,134,202,148,134,198,206, 40,
+ 84,124, 70,160, 82,189,104, 70,139, 81,112,171,219, 21, 14,212, 80,218,203,107, 80,242,105,192, 45, 20,228,181,248, 20,138,211,
+167, 78,186, 40, 66,224, 20,103,174,159, 39, 32,165,189,170,162,128,133, 18,107,190,230,136,235,169,152,232,161, 25,106,186, 71,
+209,253,234,215,109,188,195,185, 93, 0, 48,138,208,162,243,172, 50,144, 56,147, 74, 41,224,164,141,246, 31,134, 78,179,178,232,
+ 50,142,156, 86,230, 45,192, 21,245, 47,179,158,167,145, 38,202, 45,136,156,164,196, 33,190, 41, 73,112,164,165,163,189, 20,191,
+105, 29,104, 62,141,114,215,224, 16, 93,150,213,119,137,112, 87,159,111,251,209, 98,113, 42,189, 72,105, 79,184,232, 42,230,211,
+142, 46, 64,112, 40, 13,254, 34, 13, 27, 42,233,239,250,179, 47,199, 60,145,120,171, 91, 24,191,218, 51,155, 90, 17, 99,112, 22,
+ 93, 75,111,182,183,169, 84,186,164,171,194,180, 32,142, 53,160,167,214, 53, 66, 64,196,178,129, 27, 75,168, 57, 23,243, 43, 14,
+ 67, 2, 51, 6,136, 75, 95, 50,182, 82, 42,158, 64,130,178, 15, 95,133, 94, 21,246,141, 76, 64, 72, 58,156, 38, 36, 10,117,130,
+242, 94,152,196,181,214, 75, 77, 5,186,181, 54, 72,169, 53, 66,185, 17,236,118,160,141, 0,197, 84,155,109, 32,105,246,254, 9,
+103, 55,198,173, 81,242, 54, 89,150,145, 42, 43,129,181, 4,186, 10,144,138,252, 65,183, 56, 40,114, 32,159, 29,137,211, 8,171,
+ 24,215,153,215,168,230,127,130, 11, 35,210,214, 37,125, 97,219,197,190, 47,203, 78,243, 60,213, 37,148,134,208,165,157,254,238,
+199,165, 5, 9, 61, 61,250,144,178, 65, 70,121,113,140,128,146, 89,201,187, 37,220,236, 66,222,244,108, 66,121, 31, 52,149,198,
+ 74, 92, 11,251,138,108, 21, 21, 80, 80, 10,131, 77,182, 58,113, 99,241, 8,144,178, 19,224, 82, 62, 77,216, 30,249,230, 81,159,
+102, 21,201,134, 99,178, 91, 76,170,121,161,245,150,218, 40, 71, 20,241, 80, 41,226, 2,190, 35, 82,117,102,172,170,226, 93,138,
+148,224, 56, 58, 90,198,253, 37,199,198,236,178, 50, 44,149,196,220,174,110, 21,170,174, 32,171,128, 63, 17,226, 9, 6,162,191,
+102,172,217,212, 37, 54, 17,209, 60, 49,163, 19,174,170,157,239,156,235, 54, 63, 21,219, 61, 16,134,144, 56,164,164, 33, 13,168,
+236, 65, 52,166,231, 96, 71,187,219,171,216, 85, 74,122,148, 28,137,136,133,198,253,227,189,166,229,118, 13, 71,101, 41,144,131,
+200,133,243, 35,219,183, 42,154,125, 52,215, 97,137, 81,136, 92,190,101,128,148,163,105,182,194,126,158,115, 64,172,168,114,227,
+ 95,133, 84, 30, 34,155,251, 14,174,237, 84,163, 48,156, 48,132, 67,133,120, 12,202,108,170, 47, 34, 80,130, 86, 40,144, 62, 32,
+ 40,124,107, 93,142,129,109,123,149,154,236,101,111, 97, 16,113,213,201,249,184, 42, 79,157,195,128, 15,242, 13,186, 20,154,148,
+ 41, 67,122,245, 0,235, 58,200, 16,175, 9,186,177,113,108, 46,199, 57,182,153,148,133,180,225, 42,242,212,144,151, 27, 82, 82,
+118, 4,157,197, 0,165, 82, 70,218,165,101,146,138, 52, 64, 71,174,248, 34,229,180,227, 50, 31, 44,195,251,222,122, 2,100, 37,
+105, 6,148, 80,120, 26, 80,232, 49,150,175,197, 24,203, 86,224,149, 59,165,233,214, 85,199, 15,114, 67, 95, 42,243,209,210, 93,
+109,214, 86,219,110, 4,141,247, 67,169,228, 62,165, 1,239,209,232,203, 17,152, 10, 19,134,232,170, 27, 19,181,163, 16,200,154,
+152,251,101, 60, 28, 1, 14, 54,175, 52,245,169, 33, 64, 19,255, 0,165,174,158,155, 4,130,167, 18,202,243,159,108,135, 33,136,
+153,181,186, 91,210, 17, 45,104, 76,181,190, 18,126, 93,196,164, 4,161,106, 70,252, 72,160, 73, 35,110,149,166,188, 83,234, 95,
+165,161,140, 70, 69,111,182, 68,191, 96,231,199,240,117,159,151, 64,131, 17,205, 47, 12,170, 84, 28,149,198,210,225, 75,238, 39,
+202, 89, 59, 30, 53,173, 53,227,176,173,156, 21, 82,193,193, 75,139,126,147, 44,220,223,121, 95,128,212,117, 43,174,223,116,129,
+160,211, 91, 74, 73,132,180, 74, 24, 62, 88,235, 51, 35, 67,144,121, 67,153, 25,113, 22,159,122,137, 3, 86, 12, 24, 21, 9, 79,
+177, 49,201,142,134,177,244, 88,221, 38,173,171,204,229,236, 13,170,187,253, 90, 22, 33, 12, 71,122,105,104,171,135, 50,101, 90,
+ 46,247, 8,205,168,249, 77,200, 87, 78,148, 88, 6,154,212,149, 95, 16,239, 67, 18,119, 10,245,190,228,169,114,215,137,100, 80,
+199,240,242, 34, 37,128, 71,181, 7,112,126,173, 2,202, 90, 74,177, 58, 21,206,185,237,208, 62, 47, 48,120,241, 82,102,172,132,
+251,150,170,234,212,107,105, 5,102, 50,248, 71,122, 31,136,222,231, 63,122, 92,116,147,242,206, 71, 90, 92, 30,246,141, 65,211,
+223, 88,218,234, 64, 18,173, 89,179,238, 47,246,166, 44, 26,147, 53,197, 37,197,164,245,242,146, 65, 21,213, 17, 16, 36,197, 79,
+ 80, 21,235,106,244,189,234,111,184, 22,168,151,172, 31, 13,186,200,181,201,130,193, 75,206, 70, 84,118,150,164,166,149, 74,228,
+240, 10,250,142,180, 15,167,179,178,107,122,233,145, 7,185,191, 22, 86, 33,161, 66,103,122, 65,245, 71,133, 50,234,242,204, 38,
+237, 22,222,176,183,228, 77,110, 42,164, 50,208,109, 28,135, 55, 35,115, 74,107,239, 35, 82,159,167,179,177,224,246, 83, 32, 27,
+139, 63,224,233, 18,229, 47,250,122,178,255, 0,155,178,198,173,203, 73, 83, 45, 44, 50,229,125,137, 62, 98,171,246,107, 31,229,
+ 9, 89, 39, 8,235,240,100,204,202,238,240, 98,143,196, 19, 84,202, 71,246, 81, 82, 79,217,170, 89, 32,128, 16,193, 80,178,167,
+ 88, 89,184,121, 84, 68, 0,134,160,177, 79,218, 52,170,207,219,161,202, 70, 62,228,224,169, 54,232,214,251, 22, 5, 53,210, 2,
+ 94,110, 41, 40, 30, 53, 89,227,250,181, 74, 82, 54,106, 82,125, 85, 91,112,184,181, 17,210,227, 63,119,229,202,234, 61,251,106,
+205, 19, 59,145,137,209, 57,224, 87, 85,189,218,249,207, 55,188,240,224, 83, 96,141,232,164, 17, 95,171, 90, 82,150,210, 16, 74,
+203, 54, 31, 18, 47,105,114,119, 88, 64, 18,174, 70, 48, 0,108,106, 82,121,126,157,244,213,229,188,246,246, 36,189,118,110,216,
+199,249, 54,237,138, 16, 3, 69,134, 67,171, 63,217, 30,221, 44,188,205,182, 69, 68,135, 81,187,138,136,246, 41, 81,109,113,254,
+ 22, 35,183,229, 45, 35,216, 17, 81,250,244,104, 88, 68,138,104, 33, 12, 90, 98, 69,110,205, 52,185,248,105,142,243,203,223,169,
+230, 72, 26,141,182, 19, 36,137, 68, 93,182, 59, 42,209,106,190,196,170,149, 29, 74, 46,145,185,226,179,177,208, 12, 90, 41,110,
+209, 71,102,142,100,102, 99,195,225,134, 86,175,119,197,190,158,161,183, 69, 53,213, 93,135,238,222,107,218, 63, 73, 54, 92,147,
+181,114,218,182, 92,110,249, 5,245, 51,100,136,112,164, 56,235, 76,177, 21, 77,160,170, 83, 78,108,146,163,211, 94,183,233,108,
+137, 81,211,163, 40,104, 76,228,229,135, 96, 84, 51,175,149, 96,109, 44,235, 85,219,189,118,238,236,195,106, 55,127,113, 11, 30,
+ 99, 9,193,201,114, 92,132,213,178,230,129,226, 88,155,109, 13, 45, 7,233, 4,123,181,127, 34, 85,100,134,190,168,207,189,154,
+ 94,240,197, 82,135, 80,156, 78,186,170,235,212,175,107,112,158,202,247, 33,142,217,224,139,146,188,120,174, 13,213,132, 92, 86,
+135, 36, 50,139,132, 70,229,249, 74, 91,105, 72, 87, 15, 51,136, 52,173, 58,215,174,188,195,213, 93, 54,188, 12,163, 85,110, 98,
+192,235,199, 80,235, 92,205,192, 40,119,120, 27,131,138,218,225, 71, 77, 5,194,117, 82,148,142,161, 42, 32,126,173,115,244,135,
+ 83, 28, 18,198, 69, 99, 70, 45,138,188,169, 95, 2,150,158, 73, 73,219,117, 29, 16,234, 11, 37, 18,145,103, 93,218, 49, 35,186,
+237, 56,184,164, 1,239, 45,154,233,226,241, 10, 71,130, 46,244,180,162,203, 17,245, 80, 42,115,138,118,135,197, 64,209, 41,208,
+ 68, 53,116,194, 90, 35,118,199,191,148,135, 60,149, 3, 53,109,134, 83,238, 39,169,208,203,142, 41, 21,169,156, 78, 50,101, 42,
+229, 62,132, 37,105, 42, 81,241,161,228, 70,250,168, 38, 73, 33, 52,142,136,160,190, 56,139,153,191,212,124,203,142, 7,184,215,
+254,193,182,203, 28,126,197,234, 60,153, 50,141,155,118, 55, 42,197, 24,114,229, 30, 59,175,218,100, 60,228,201,110,210,170, 73,
+ 41, 60, 83, 64, 55, 72,246,235,175,204,232,226,169, 25,213,168,110, 31,195,181,118,249,253, 6,117,107, 0,225, 87,145,109,222,
+108,132,197, 97, 36,181, 13, 44,178,218, 60, 11,178, 20, 1,247,107, 46,118, 57, 11,157,158, 58, 30,237,173,113,141,198,222,159,
+138, 66,100, 20, 40,143,113, 52,253, 58,140,172,224,171,154,121,167,123,197,237, 88, 7,111,222,198,152,113, 49,229, 51, 13,201,
+ 18,102,184,126, 8,204,173, 3,146,206,196, 19,191,194,159,218, 86,221, 42,117, 44, 28,127,220,228, 7, 4,135, 12, 7, 51,249,
+120,161, 8,176, 95, 49,123,131, 49, 23,155,212,149,199,169,101,215, 22,176,227,212,228, 82, 85,178,143,212, 54, 31, 71,211,175,
+175,113, 43,242,235,140, 72,224, 7,224,142, 6,128, 43, 86,204,221,130,201,218,216,241,212,121, 73,100, 5, 56,225,216,184, 2,
+107,193,180,251,214, 8, 39, 84,229,172,214,156, 64, 16, 84,222, 93,146,137,146,159,124, 16,219, 15,168,169, 0, 84, 0, 84,147,
+ 80,144, 41,225,176,214,173,113, 96,179, 45,155,165,185, 89, 60, 24,235, 83, 76, 26, 57,200,161, 1,190,136, 20,175, 47, 10,157,
+ 16, 32, 74, 64,168,234,125,239,153, 67, 45, 10, 62,104, 18,144, 42, 41,215,236,174,231,219,162,136,186, 31, 5,208, 93,141,184,
+ 69,181, 51, 30,243,125,123,230, 46, 43, 37, 44, 52,234,199, 4,165, 35,175,197, 95, 15, 0, 62,221, 35, 82,177, 27,153,116, 70,
+ 9,222,115,111, 44,190,191, 44, 62,165, 81,178, 1, 73, 74, 58, 18, 2,118,165, 14,213,213, 43,177,119, 43,212,229,178,186,112,
+ 79, 80,178, 36,165, 76,153, 42, 49,138,120,164,242,160, 53, 59,128, 41,184,166,219,253,154,199,200,192, 3,146,213,163, 45,215,
+ 97,122, 69,239, 37,149,251,139, 78,201,124, 60,211, 12,209, 9,111,145, 73,116,173, 75,224,144,104, 73, 34,181,219,160, 79,191,
+ 92,198,125, 6, 28,190,204,180, 28, 89, 22, 93, 35, 29, 76, 93,242,166, 23,112,101, 10,136, 45,111,173, 43, 82,170, 22,181,188,
+149, 22,250, 83,112,125,187,212,107, 55,132, 80,108, 6, 3, 78,213, 54, 22, 75, 30, 30, 4,196,155, 98,120, 37,123,151,200, 10,
+ 42,105, 44,151,149, 83,225, 71,104, 20, 79,191,174,165,181,203, 32, 26,183, 90, 79, 16, 63, 30, 31,130, 31,101,204,172,249, 84,
+ 52, 94, 28,101,196,197, 67,210, 62,103,205, 71,196,164,176, 3,105,113, 97, 93, 18, 22,160, 70,164,107, 49, 69,156, 12, 56,119,
+ 34,183, 28,138, 61,146, 0, 74,164,135, 26,142,162,195,133,191,139,116,169, 72, 81,160,167, 74, 82,158,221,142,135,229, 58,132,
+107,222, 93,184,169, 23,216,246,235,132, 38, 97,190,235,137,142,251,126, 99,124, 57,161, 84,160, 95, 20, 26,146, 9, 77, 71,143,
+ 67,165,179, 85, 26,137, 5,217, 87, 23,181,228,152,156,167, 77,164, 33,203,107,132, 74, 13, 41, 75, 39,143, 18, 9, 80, 36,158,
+131,109,188, 62,141, 76, 66, 51, 90,113, 47,197, 40,119, 70, 96,157,105,101,248,142, 41, 1,103,227,143, 90,210,162,161, 73, 35,
+101, 3,237,235,171, 88,240,213,146, 43,151,251,245,136, 34,244,211,229,144, 21, 44,167,101, 40,164,132,252, 53, 21, 7,221, 94,
+186,220,195,158,214, 84,242, 32,224,174, 63,238, 7,106, 38,196,186, 8, 74,170, 28, 21, 40, 94,225, 38,167,161, 62,239,104,166,
+186,204,123,196,131,142, 75,152,200,169,139, 37,137,120, 92,219,114,213,205,163,230, 55,247,128, 32,154,123,189,191,110,173, 9,
+134, 84, 72,101,186,208,204,240,251,114, 34, 40, 21,141,184,171,168,222,157, 53, 9, 50,148,100,201,243, 9,157, 58, 27,234,243,
+ 65,171,148, 46,183,251, 53, 7,114, 41,208,248,143,110,170,219, 29, 21,168, 88,172,187, 86, 87,116,177, 33,165,176,190, 80,137,
+ 14,132,171,112, 15,137,216,238, 41,236,214,100,232,220, 85,200,218,193, 93,253,178,204,236, 23,150,146,151,146,150,166, 45, 32,
+ 6,215,186, 66,129,174,202, 80,232,126,205,100,228,211, 40, 43,117,216, 38,154,102, 73,198,175, 73,118, 27, 37, 77, 74, 1,105,
+242,218,162,146,160, 19,186, 77,122, 26,248, 26,214,180,211, 64, 72, 51,132,251,187, 23, 30,119,186,219,105,178,229, 83,237,236,
+ 71, 9,184,178,178, 67,109,149,165, 42, 61, 65, 9, 81,165, 15,187, 93, 71, 77, 4,197,213, 11,239, 17, 42, 47,104,187,157, 18,
+224, 46, 88,164,112, 85, 14,100,122,160, 18, 63, 13,214,126, 52,146,151, 1,219, 99, 90, 29, 47, 87,226, 11,250,101,145,211,128,
+ 58,240, 85,108,183,116, 72, 80,110,115, 93,135,152,249, 47, 86,137, 43, 61,127,100,108, 63,213,175,146, 68, 26, 37, 80, 33,207,
+177, 20,135, 62, 73,182, 73,183, 64, 30,108,233,192, 52,202, 71, 82,159, 29, 66,184,252, 74, 50,142,138,110, 23,131, 49, 14,242,
+235,210, 42,166, 97, 37,167, 16,147,253,115, 95,212,117, 71, 39, 36,142, 8,144,169,147, 55,201, 49,114,139,114, 90, 79,227,165,
+167,120,255, 0,120,167, 65,170,102, 37, 16,192, 20,153, 31,183,209, 46,182,167, 46,206,128, 37, 58,215, 7, 54,234,234, 42, 1,
+250,245,118,204,194,225, 15,201, 98, 83,162, 33,166, 6, 25, 96,198,164, 44,121,150,214, 83, 33, 68,157,234,170,212,105, 89,150,
+100, 73, 77,228, 4,177,233,103,211, 75, 30,173,123,213,148, 99,215, 59,226, 49,220, 90,207, 14,126, 73,112,184, 46, 43,147, 22,
+ 98,219,148,223,154,134, 88,109, 72,230,231, 23, 10,128, 42, 27, 3,227,182,186,158,137,210,206,117,130,189,219, 90, 38, 68,179,
+232, 27,128,237, 80, 44, 1, 39,128, 87,230, 57,216,175, 64,221,188,109, 77, 65,198, 50,108,193,214,219, 33,233,215,187,204,123,
+ 66, 87,203,117,121,108, 91, 88,112,165, 39,195,146,201,246,235,174,143, 68,233,240, 12, 68,231,226, 91,240, 10,140,186,136, 28,
+ 34,172,182,175,126,158,187, 5, 63,159,165,107,107,115,178, 11,141, 38, 28,159, 34, 97, 51, 36,218,144,226,249, 53,111,130,212,
+180,169,180, 22, 17, 68,173,210, 20,165, 26,239, 74,106,221, 56, 88,152, 4,154, 35,186, 71, 93,210,212,199,176, 7,224,221,188,
+ 74,134, 79, 80,229, 4, 26,233,221,142,229,101,115, 37, 43, 46,200, 46, 19,164,182,146, 71,204,203,121, 73, 30, 63, 10, 57,113,
+ 72,175,128, 3, 79,118, 93,179,212,200,251,214,116,237,148,184,146, 84, 14,216,247, 95,185,216,221,216, 76,199,242, 11,132, 69,
+ 54, 22, 84,219, 50,223, 13,170,162,163,146, 57,113, 80,175,129, 26,157, 89, 86,192,184,145,247,165, 27,101, 30, 4,133,100,118,
+187, 50,193, 59,227,123, 75, 29,201,133, 14,207,221,201, 14, 45,152, 57,157,181,134,162, 34, 99,234,248, 82,139,163, 12, 4,182,
+190,100,129,231, 36, 5, 39,106,237, 93, 83,234, 29, 47, 31,170, 6,152, 16,183,148,198,142,127,239, 14,111,219,196, 45, 12,124,
+253,223, 12,253,234,146,206, 49, 76,135,181, 93,208,191, 88,114,184,198, 46, 65, 29,217,107,121,133,110, 42, 83,240,173, 36,108,
+ 82,164,144,164,145,212, 26,235,203, 58,142, 21,152,215, 74,171, 3, 74, 39, 85,160, 92, 42,103, 43,204, 92,147,113,129, 99, 70,
+201,113, 94,105, 35,170,148,179, 77,245, 78,117,238,137, 81,148,152,128,152,114,107,193,151,110,185,217,152, 63,143,229,182,218,
+ 71,185, 13,212,254,157, 6,140,125, 28,165,189,206,138,157,189, 95,132, 72,178,213, 95,220,196, 74, 79,184,147,169, 87, 64, 50,
+ 30, 40,219,222, 37, 51,118,155, 59,109,203,112,142, 21,252, 57,108, 54,177,239, 59,106,206,109, 91, 65, 42, 17,151, 5,103,219,
+230, 54,140,110,100,122,255, 0, 14, 16,183,192,254,226, 13, 53,207,209, 97,253,203,119,127, 4,112, 52,116,183,136,222, 13,175,
+ 18,186, 78,109, 84, 92,148, 39,236, 78,137,212,220, 89, 95,121, 31,138,106,139,146,179,191,224, 51, 6,213,144,178,161, 73,144,
+ 91, 90,255, 0,188, 18, 5,117,183, 40,234,171,214,126, 20,176,237,221,169,184,133,166, 66, 21, 66, 10,163,172,131,225,185, 26,
+121, 69,202,144, 42,197,236, 10, 88,201,109,159,203,230,111, 29,244,190,206,251,253,221,129,250,142,161,100, 8,138, 91,131, 37,
+ 60,206,228,213,138, 77,234, 35,103,241, 80,202, 25,229,237, 85, 74, 73,253, 26,120, 7, 14,164, 36,234,242,237, 5,225, 50, 63,
+ 47,219, 20,194,106,227, 25, 85,242, 18, 73,246,185, 6, 19,159,211,175, 82,244,232,126,154, 59,172,151,224, 22,103, 84, 58, 5,
+ 7, 28,184, 7,110,209,172,136,221,230,218,113, 74,167,183,168, 26,210, 17,209,214, 56,146, 57,235, 70, 50,165,250,249,149,142,
+ 43,226,136,196, 75, 5, 83,253, 84,162,205, 24,154,253,154,226, 61,107, 94,238,165, 62,225, 31,249, 66,232,172,147, 48, 85,119,
+116,175,207,230, 93,222,199,160, 51, 83, 11,231, 92,168,234, 60,166,104, 53,205, 26, 26, 39,189, 79,126,137,123,213, 47,114, 25,
+115, 39, 78, 49, 5, 64, 52,133,115, 80, 79,130, 64,162, 70,134, 42,104, 34,137, 42,190, 46, 82,139,173,254, 37,165, 31,185,142,
+104,119,216,158,167, 79, 58,200,139,118,166,156,217, 62,101,183, 6,142, 79,138,227, 45, 31,134, 51,107,153, 32, 15, 10,157,171,
+162,126,223,108, 2,104,203, 69, 63, 14,190,183,121,203,156,113,103,148,102,185,185, 74,237, 80,104,157, 84,190,166,138,121, 77,
+ 50,247,114,251, 26,208, 98, 90, 99, 14, 9, 82, 91,230, 69, 42, 84,231,196,163,172,186,234,121, 20,219,131,164,213,102, 13,127,
+ 56, 75,124,191, 0, 54,166,233,253,146,180,141, 16,212,120, 41,242, 95, 71, 59,113, 99,176, 93,237,173, 65,190,176,219,133, 67,
+130,219,116, 38,132, 17,225, 93,119, 19,158,171,219,115, 37, 40,130,202,180,239,159,161,188, 81, 19, 92,206,187, 83,193, 18,208,
+232,155, 46,208, 74, 66, 93, 83,105, 52,225,236, 59,253,122,163,147,136, 45,212,105, 46,222, 94,208,185,124,140, 15,220, 7, 3,
+108,190,227,252, 23, 6, 94,127,204, 56,182, 77,125,131,149, 68,118, 13,204, 41, 69,198,159, 4, 81, 69,205,136, 34,128,143,122,
+ 78,178,103, 65,135,194, 70,171,152,203,170, 85, 72,198, 65,138, 9,222, 92,145,233,221,186,200, 38,161, 65, 79,174, 55,146, 8,
+216, 36,113,162,138, 83,208, 26, 10,114, 53, 32,116,246,107,162,244,141, 95,252,228, 1,224,227,241,251,104,179, 76,151,206,252,
+131, 49, 14,100, 13, 91,246, 81, 11,228,170,120,113,251,160,253,157, 60, 53,245, 24, 12, 20,183,185, 77, 19,187,143, 52,219, 62,
+ 79,114,250, 82,150, 18, 71, 68,165, 36, 13,135, 77,186,157, 0, 83,171,171, 70,214,139, 42,222,225,112,122,224,120, 54, 72, 74,
+ 79, 20,170,187,210,170, 31,171, 86,149, 25, 21, 46,203,143, 71, 80,249,169, 41, 89,117,123, 0, 9,167,135,196,163,224, 6,255,
+ 0, 80,212,196, 84, 56,169,174,182, 98,205,243,150,144, 31,170,146,128, 64,169, 74, 77, 42,117, 98,181, 2,143,216,115, 75,156,
+ 7,252,213,164,249, 68,134, 27, 74,183, 27,209, 85, 62,239,118,136, 82,116,231,140,247, 82,109,190,113, 92,151,124,192,162, 42,
+154,144,154,141,184,245,161,167,179,244,106, 18, 9, 9, 43,111, 0,239,124, 65, 37,149, 58, 84,164,168,141,146, 74,121, 26,239,
+ 64,124, 0, 30,202, 13, 84,178,167, 87,168,185,151, 87,118, 31,190,171, 77,214,214,220,119, 84,197,181, 69, 9,121,182, 28,252,
+ 84,178, 86, 1, 9, 82,104, 2,143, 90,214,191, 70,185,236,236, 64, 65, 91,184,215,240, 11,184, 49, 30,247,205,154, 6, 73, 49,
+224,181,177,206,216,211, 10, 80, 45, 82, 91, 46, 72,109, 59,208, 16, 56,164, 10,145,225,237,215, 45, 44,102,209,106, 59,167,124,
+139,185, 10,189, 99, 54,139,117,145, 75, 50,209, 45,203,100,196,164,212, 37, 14,184,158, 42,113, 11, 59,165,101, 41, 4, 17, 81,
+ 95, 97,208,225, 94,217, 23,236, 81, 16,212,158,213,178,249,108,200, 24,187, 51,115,128,144,254, 38,243, 50, 31,125,180,236,228,
+135, 66, 11,172, 50, 77,106, 56,171,226,161, 27,145,190,165, 25, 2, 59,221, 73, 3,196, 59,137,152,162,209,106,159,127,140, 34,
+218,146, 83, 14, 67,201, 88,117, 94,114,154, 84,133,173,194, 77, 79,152,165,114,232,106, 41,227,169,206,161,171, 20,153, 31, 29,
+246,182,222,103,221, 44,247, 87, 22,136,176,252,137,177,212,202, 15, 36, 3, 69,144,221, 9, 10, 28, 19, 81, 81,237,246,211, 81,
+242, 8, 0,168, 70,160, 31,189, 25,187,231, 48,238, 23, 38, 33,202,108, 5, 33, 33, 49,110,105, 0,182,226, 92,227, 84, 37, 71,
+196,145,200,117,233, 79,118,129,229, 17,170,156, 98, 2, 94,238, 75, 22,211, 26, 60, 83, 29, 77, 37,106, 47, 7, 27,221, 41, 95,
+ 34, 28, 5, 35,238,143,186,170, 13,186,232,148,184,213, 59,170, 87, 59,195, 90,122,232,228, 57, 95,133, 61,104, 9,110, 64,167,
+ 7, 43, 94, 36,145,246, 87, 90,180,216,193, 10,192,235,159,123,155,132,179,110,152,204,233, 40, 30,111, 37, 52,251,110, 14, 35,
+144,170, 72, 80, 21, 2,190,209,181, 40,117,177,141,113, 98,203, 38,250,195,234,171,124,167, 10, 97,199,252,230, 91, 74, 90,235,
+ 68, 15, 5,110, 58,107, 90,155,244, 0,172,139,234, 74,114,241, 54,226,191,230, 51,178, 84,106,170,138,143,245, 29, 90, 18,117,
+ 80,197,138, 35, 6, 33,109,134, 86,217,224,242, 79, 23, 42, 15,221, 63,116,253, 26, 25, 82, 69,237,247, 43,131,113,156,180,190,
+162,149,164,243, 96,157,194, 86, 55, 52, 61,104, 65,208, 76,117,117, 33, 34,204,139,192,206,239, 24,180, 51, 60,177,206, 58, 65,
+228, 80, 78,212, 59,148,169, 63,116,212,116, 58, 28,233, 18, 83,174,227, 20,173,105,245,133, 54,221,119,126, 42,223, 43, 0, 56,
+243, 75, 74,184,172, 80,138,130,157,193, 28,126, 33, 81, 74,106, 83,193, 12,158, 57, 68, 23, 73, 25,151,115,239, 29,200,205, 83,
+ 57,135,144,165, 37, 10, 5,214,208, 82, 84,146,158, 96, 40,110, 65,219,110,189, 60, 70,175,224,208, 33,162, 29,214,111, 41,131,
+ 3,149,118,115, 38, 90, 99,136,235,228,195,178, 4,142, 13,180,165, 33, 77,154,133,145,240,215,168,175,180,251,245, 95,214, 25,
+ 34,158,155,105, 60,192, 31,103,211,237,218,133, 34,192,166,199,113,166,110, 22,152,153, 75,187, 58,235, 12,196,112,116, 33,106,
+ 36,131,191,191, 95, 34,217, 99, 6,236, 66,130,247,143, 71, 78, 63,156, 71,145, 51,255, 0,103, 37, 41, 77, 60, 84,144,116, 29,
+206, 29, 22, 45,205, 60,221, 88,141,107,191, 77, 68, 98, 10, 37,180,153, 44,129,226, 22, 43,250, 14,168, 93, 81,119, 76, 37,170,
+ 19, 46,107,118, 28,181,112, 10,169, 10, 75, 77,145,236,228,240,161, 31,110,155,102,232,247,165,185,181, 67,242,123,153,179, 89,
+ 26,131, 24, 81, 69,213, 45, 84,235, 64,170, 87, 84,163,102,203,128, 60, 17,221,226,131,119, 11, 42,144,211,241,230,199, 89,242,
+ 29,109, 45,212,120,120,142,159, 70,180,168,171, 67,226,129,185, 91,191,150,130, 99, 91,253, 77, 99,184,251, 68, 6,114,232,185,
+ 5,166,105,175,132,187, 84,132,160, 31,253, 98, 81,174,219,210, 23,255, 0,249, 10,199, 34, 37, 31,124, 79,230,202, 22, 13,192,
+142,212,192,137, 9,117,187,139, 64, 80,180,149, 10, 30,180, 78,187, 53,203,175, 80,208,168,246,102,166, 36,127, 81,105,255, 0,
+105, 90, 25, 42, 37, 78,112,186,244,151,103, 39,247,114, 27, 9, 3,251, 71,175,234,212,100,116, 72, 40, 54, 25, 14, 64,147, 41,
+ 67, 98,166,156,250,188, 53, 40,157, 20,147, 23,110, 98,249, 50,216, 46, 31,133,164, 57, 33,127, 80,219,245,232, 98,122,168,166,
+238,240, 50,231,122,251, 9, 15,185,174,213,220,251, 12,125, 24,229,229,254,171,147,103,184, 5, 38, 3,206,168,238, 84,203,227,
+202,175,136, 80,169,214, 71,171,177, 63,115,139, 28,145,243,214, 68,101,223, 19,192,159, 3,167,181,109, 96,219,230, 69,143, 37,
+202,157,183,236,231,113,187,185,221,139,109,143, 7,178,205,187,205,136, 20,228,180, 64,142,227,193,164, 54,104, 20,226,144, 40,
+128, 85,176, 42, 32,107,135,193,193,187, 40, 24,213, 3, 35,220, 29, 88,144, 36,247,171,170, 95,160,143, 84,233, 90,231,170,195,
+ 25,171,212,183, 22,217,129, 38,247, 99,106, 64,109, 93, 63, 13,201, 64,242,247,117,215, 69, 95,163,122,135,150,198,182, 61,155,
+162,255, 0,138,132, 99,180,241, 11,149,189, 87,118, 59,189,158,157,173,183, 69,247,103, 25,184, 88,153,156,249,143, 10, 76,200,
+235, 17,158, 13,167,149, 26,144,138,178,191,246, 84,117, 72,244, 92,140, 67, 17,116, 12,124, 70,158,254, 8,128, 16, 11,164, 14,
+202,100,238, 57,102,144,250,201, 21, 88,227, 95,236,234,175, 84,172, 8,160,215, 45, 66,232,156,122,232, 39, 99, 79,190,181, 80,
+ 8,202,229,191,181, 52,215, 31,139, 83,228, 18,174, 74, 77, 4,175,104,185, 45, 86, 57, 22,142, 91,240, 82, 70,254,227,166,234,
+207,230,214,123, 8, 79,137,168, 37,120,239,182, 74,243, 61,142,199, 36, 72, 87,241,141, 52, 99, 44,248,236, 43,174,170,186,183,
+151, 64,145,218, 17, 63, 77,158,153,187,229,234, 71,181,133,254,223, 91, 66, 45, 17, 37,165, 83,175,247,119,155,129,106,134,142,
+ 53, 81,118, 92,130, 17,176, 34,169, 71, 37,111,211, 90, 56, 29, 11, 39, 54,210, 43,143,194, 56,200,233, 17,237,252,134,169,162,
+126, 21,212, 29,142,244,141,218,142,219,185, 18,223,151,119,138,208,253,249,135, 92, 75,145,236, 54,187,149,202, 50,150,190,169,
+ 76,164,249,105, 59,248,241,215, 80,125, 21, 2, 26,121, 17, 7,186, 36,253,238, 21,115,149, 88,211,119,226,148,251,157,249,122,
+228,217,173,206,233,116,236, 86,103,100,205, 31,121,247, 28, 85,141,151,149,109,187,210,132,209,184,211,248,165,124,119,173, 23,
+ 95, 96, 58,163,145,232,171,162, 30,153,198,206,225,161,247, 31,226,143, 85,208,159,202, 65, 95,157,173,194,179, 46,221,122, 22,
+127, 7,238, 45,182, 77,171, 43,180,247, 26,231, 21,232, 87, 6, 92, 97,228, 37,120,244, 7,146, 74, 29, 0,208,131, 80,122, 30,
+163, 91,253, 22,137,211,128, 97, 56,152,145,105,208,232,126, 80,169,245, 17,240,143, 20, 59,182, 72, 68,174,231, 0, 15,192, 57,
+ 86,190,194,157, 95,144,248, 86, 34,105,245,177, 49, 22,159, 93, 93,199,200,151,255, 0,248,232,118, 86,154, 39,218,172,122, 26,
+255, 0,167, 92,167,170,171,126,163,111,254, 31,249, 98,186, 11,143,199,246,236, 84,196, 55,209,105, 97,172,234,225,247,153,109,
+210,202,143, 94, 78,124, 71,174,185,249, 84,225,144,196,151, 57,247, 23,184,105,202,123,131, 38,122, 28, 36,149,240, 21,254,200,
+212,109,165,130,179, 2,229,111,237, 3, 43,159,125, 76,201, 74,248, 25,113,210,234,137,240, 73,174,131,180, 25,129,224,167, 56,
+232,153,153,204,211,113,190, 94,179,103,143,240,241,155, 48,226,154,237,182,219,106,237,212, 59, 4, 17, 52, 99,179,151,210, 60,
+215,214,127, 21,213, 36,110,124, 43, 83,172,142,165, 13,177, 41,188,199, 43,103,116,115,117, 77,200,210,149, 57,200, 55, 83, 82,
+124, 18, 40, 53, 71, 11, 24,136, 57,226, 83, 89, 99,200, 4,155,254,101,123,151,243, 10,159, 36,175,128,223,246, 70,150,207,234,
+183,114,190,218, 47,161,152,127,168, 40,179,108,237,249,174,143, 49, 32, 41, 11, 6,138, 30, 61,117,218, 91,137, 32,116, 94,240,
+ 12,101,170, 90,238, 87,171,107,205,154, 89, 44, 62, 71,129,223,217,183,129,213,204,110,158, 39,197, 87,182,232,214, 21, 61,220,
+126,227,226, 93,229,140,184,249,100, 64,227,171, 20, 18,153, 60, 31, 65,173, 65, 74,254,159, 3,171,243,232,177,156, 24,253,188,
+ 59, 23, 63,157, 58,178,162, 99, 48,253,253,158, 11,154,189, 82, 99,217, 6, 25,218,235,204,139, 3,174, 92, 49,183, 17, 71,215,
+ 25, 10, 50, 27, 71, 46,142,160,110, 18, 7, 85, 1, 79,109, 6,218,185,233, 94,129, 26,115, 68,166, 67, 13, 71, 47,177, 92,102,
+ 95, 74,149, 82,221, 19,186, 63,122,249,245,143, 91, 21,125,187, 72,190, 58,160,136,161,197,121,117,246,114,216, 15,171, 94,225,
+ 32,203, 50, 1,245, 83,239, 23, 24,177,228,173,166, 20, 84,148,143, 45, 70,190, 34,164,159,172,254,173, 52, 66,156,164,165,226,
+248,146,111, 79, 39,146, 74,220,125,206, 72,225, 93,207, 42,127,167, 83, 67, 3,114,113,155, 6,219,219,235, 42, 36,222, 79,154,
+ 8, 80, 13,161, 37, 37,105, 64,167, 83,176,169,160,250,244,194, 78,167,177,134,169, 18, 22, 79, 10,235, 57,114,164, 33, 41,243,
+ 2,170,148,212, 37, 8, 73, 53, 2,187,248, 29,245,102,185,104,171,158, 43,107,247,187,114,227,161,165, 43,138, 10,139,131,143,
+222, 32, 10,255, 0, 72,209,137, 5, 66, 75,211, 18,145,113,150,151, 32,168,212, 38,141,183, 80,126, 45,183,253, 58,150,215, 80,
+224,136,219,178,139,206, 55,118, 9,223,138, 64,162,150, 84,160,125,158, 62, 58, 20,226,141, 25, 46,149,244,177,234, 1,184,247,
+104,144,178,119,208,227,174, 40,124, 42, 72,160,230,120, 39, 99, 82,126, 34, 0, 27,120,147,211, 89,121,148,110,142,139, 95, 18,
+246,103, 95, 67,187, 7, 53, 23,251, 12,171,180,135, 84,234,101,127, 19,228, 56,126, 10,184,215,150, 8, 73,165, 10, 81, 68,215,
+192,141,114, 89,101,139, 5,208,211,168,117,110,246,159, 36,153, 38,246,227,210, 28, 13,188,203,233, 41,243,133, 10,202,152, 68,
+ 98, 1, 59, 26,150,133, 61,251,117, 27,211,184, 6, 71, 87,197,171, 34,114,100, 31,151, 42, 66,200, 41,125, 0,138, 0,182,151,
+176, 32,215,175,196, 53,156, 99,183, 84,251, 80, 76,154,219, 42,210,227,113, 45,209,145, 43, 27, 33, 34, 69,180, 1,248,140,114,
+ 31,112, 42,137, 37, 1, 68,129,226,157,189,154, 61,115, 5, 50,131,111,197,173, 88,228, 23,230,198,105, 10, 83, 74, 13,201,226,
+ 63, 24, 6,194, 64, 53,241, 87, 17,201, 53, 7,167,191, 79,230, 18,146, 0, 38,220, 39, 93,164,219,225, 76, 15,218,201,243, 98,
+133,143,129, 52, 32,167,142,251, 5, 0,118,222,132, 15, 96,169,244,109, 82, 76,217, 68,137, 19,237, 73,112, 1,243,124, 57,241,
+235, 66, 90, 73, 59, 30,169, 10,228, 8,246,104, 48, 0, 20,146, 38, 77, 45,153,241, 3,202, 28,141, 2, 18, 79,222, 77,105, 64,
+ 65, 29, 66,169,245,106,212, 80,166, 85, 11,234, 18, 11,171,185, 49, 34, 25,226,149,254, 27,141, 40, 87,112, 64, 1, 84,240,223,
+ 91, 24, 39,181,101,228,151, 85,179,118,240,251,200,143,196, 37, 95, 19,117, 61, 66,121,168,128,105,236,233,173, 29,205,170,206,
+150,169, 99, 45,180,182,195,106,117,176, 10, 9, 63, 79,188,141, 91,166, 78,169,216, 25, 8,181,178,182,166, 37, 46,143,192, 41,
+ 91,106,175, 74,116,167,233,174,143, 34,130, 22,185,206,203,180, 6,203, 42, 5,198,143, 14,149, 0, 2, 83,227,236, 26,140, 53,
+ 76, 82,238, 81,159, 53,104,129, 41,199,148,182, 31, 44,151, 10, 82,161,197, 96, 10, 40,138,212, 40,110, 42, 8,173, 61,190, 19,
+216,160,185,126,237,155,174, 21,237, 87, 66,178,220,159, 48,150, 74,133, 19,197, 69, 73, 82, 84,127,170, 82,165, 15,175, 87, 76,
+ 62, 21, 16, 85,149,219,204,219, 25,254,105, 14,232,193, 8,243, 17,229,187,208,161, 36, 36,171,130,169,226, 55, 35, 74, 17, 32,
+186, 44, 72,230,174,126,212,228,248,110, 73,109,186,192, 66,146,222, 68,219, 78, 22, 2,126, 32,182, 0,248,209,246,142, 64,142,
+189, 53,205,125, 69,194,179, 43,165,203,103, 24,145, 47, 17,192,254, 42, 22,135,142,137,134, 77,237,155, 94, 28,171, 84,147, 84,
+189, 21,135, 26, 80,253,151, 91,115, 99, 79,160,235,229, 73,234, 75, 40, 67, 64, 23,235,242, 85,118,154,171,146, 55,144, 16,135,
+194, 71,137, 64,162,135,217,167,174, 44, 19,137, 38, 88,119,131,113,131,110,159,214, 68,117,152,206,147,226,217,221, 63,102,161,
+ 96,112,128,101,241, 32, 29,209,158,183, 84,155,188,113, 73, 13, 43,203, 52,246,162,139, 31,165, 58,133, 49,109, 17,206,161, 18,
+189,249, 55,232, 16,238, 76, 39,240, 93,139,230,167,222, 78,228,107, 35,168, 84,100,224,113,226, 17, 49,202, 1,125,199,196,204,
+ 94, 68, 52,144,101, 53, 64,213,122,133, 36,114, 31,160,234,246, 5,198, 85, 70, 71,143, 52,167, 22, 37, 59,122, 36,200, 23,140,
+122,156,237,125,237, 71,139,127,207,109,176, 95,169,251,159, 53, 49,184,203, 63,245, 86,117,208,250,110,253,153,180,159,253, 72,
+253,229,148, 85,205,150, 99,139,199,187,133,148, 89,220, 79, 20, 71,186, 78,129,199,216,150,230, 56,207,244,107,211,179, 14,203,
+ 8,239, 43,150,156, 90, 68, 45, 70, 26, 30,181,196,128,157,151,204,176, 71,189, 42,219, 84, 37, 38, 76, 19,238, 33,217, 16,112,
+209,152,247, 66,253,111,195,112,231,220,243, 45,178,111, 42, 90,164,205, 75, 71,227, 92,104,140,130,234,208,158,133, 84, 3,125,
+171,163,200, 87, 85, 98,203,236,141,113, 60, 31,137,240, 28, 74,183, 78, 20,236,215,128, 94,147,233,234,197,152, 49,112,184,118,
+ 55, 48,182,102,207, 71, 66,213, 42,213,110, 15, 70,186, 54,223,222, 46, 34, 28,144, 22,226, 19,181, 74, 42,119,233,169,227,154,
+ 50, 65,253,181,177,176,142, 67, 73,123,142,170,118,224, 78, 1,198,169, 82,210,210,161,169,228, 16, 82,250, 89, 45, 16,122,131,
+226, 63, 70,170, 2,203, 60,132,239,216, 28,147, 14,198,174, 23, 59, 71,113,210,227,157,190,191,218, 38, 65,184,181, 31,247,165,
+ 77, 82, 75, 62, 95, 80, 28,243, 91, 72, 73, 59, 2,106,118,213,204, 99, 85,144,157,119,124,147,137, 5,189,225,187,223,130,183,
+139,112,170, 78,120, 50, 19,144,247,247, 36,186, 71, 94, 23,128, 70,107, 17,237, 99,104,121, 12, 88, 44, 85, 97,181, 44, 16, 60,
+201,111, 38,142, 72,117, 64, 14, 74,112,154,157,232, 52, 90,242, 4, 43,242,233,136,174, 3,128,142,158,243,196,158,242,163,126,
+ 84,236,238, 9, 26,103, 57, 16,161, 17,191,150,226,156, 63,211,161,137,104,171,144,167, 64,239, 22,103,139, 71,123, 17,185, 54,
+206, 73,218, 43,147, 75,102,241,135,100, 8, 19, 45, 51,152, 82,129, 40, 44,189,200, 54,189,170,149,162,138, 4, 3,238,213,234,
+178,204, 96, 35, 47,138, 39, 66, 15, 4,106, 47,149,103, 67,167, 98,167,251,195,249,122, 72,197,239,118,140,167,210,149,190,125,
+243,179,185,211,162, 70, 59,108,104, 46,100,251, 92,176,163,243,150,153, 5, 60,148,163, 29, 66,169,113, 95,121,189,201, 60, 84,
+163,197,250,155,162, 78, 54, 67,200,137,148, 44,224, 6,164, 30, 96,248,126, 30, 11,106,160, 38, 55, 69, 89,216,215,229,231,222,
+ 56, 24,195,246,204,191, 39,196, 49,204,153,230, 11, 74,178,222,242, 40,237,206,109,207,234, 45, 49,146,243, 96,251, 71, 61,181,
+159,133,232, 76,184,147, 41,202,184,203,176,203, 95,184, 17,247,166,178, 65,155,112, 30,213, 82,103, 30,148,253, 66,246, 42,240,
+155,175,114,236, 15, 53,134, 56, 0,143,127,183,173,185,246,153, 1, 71,138, 74, 38, 68, 43,104, 21, 30,137, 81, 10,247,107,155,
+245, 79, 64,202,195, 0,217, 2, 34, 72,248,134,177,227,218, 52, 70,193,137,136, 46,155,123, 69,233,131, 18,239,221,150,102, 97,
+222, 73, 47, 65,244,245,132,150,174, 55,195, 24,148, 72,186, 60,231,248,123, 84, 69,237,197,199,212, 40,165, 3, 84, 39,125,137,
+ 4,117,190,148,233, 3, 46, 82,149,154, 87, 14, 61,253,193, 6,217, 0, 12,143, 4,245,220,222,237,100, 25,204, 56,152,227, 81,
+217,178,118,206,218, 26, 99, 31,197, 45, 41, 12,219,173,209,210,126, 20,161,180, 0, 22,189,234,167, 20, 57, 40,251,182,215,113,
+109,198, 76, 34, 26, 35,132, 71, 0,176,111,200,149,135, 94, 29,138, 22, 59, 43,249, 93,222, 51,205,116, 15,165, 75, 7,194,187,
+ 29, 2, 22, 60,152,246, 33, 24,232,167,153, 11,102,255, 0, 45, 0,209,213,200, 46, 54, 69, 65, 4, 16,161, 66, 52, 57, 30, 97,
+ 60,116, 70, 59,191,222,238,225,230, 88,245,171,181,217,116,211,113,198,224,202, 76,200,174,202, 5,114, 89, 80,101,108, 22,252,
+226,106,164, 16,190,138,169, 20, 20, 32,109,171,115,205,178,202,246, 72,187, 31,106, 60,174,148,162, 34, 75,164, 44, 53,135,172,
+185,212,169, 8, 53,226,221, 83,244, 87, 80,148,192,130,175,179,146,189,253, 94,122, 73,204, 59,141,234, 51, 60,207,178, 75,205,
+187, 14,237,125,203,249, 48,141,124,191, 60, 65,152, 99, 88,225,176,242, 97,198,103,147,175, 20, 41, 36, 29,128,173, 69,106, 14,
+170,117,126,129,118, 86,117,182, 18, 33, 15,133,137,231,240,142, 3,137, 93, 21,194, 32,188,139, 42,239,186,222,136,172, 89,183,
+110,145,137,246, 83,186, 22, 75,142, 94,138,185, 10,223,120, 98,101,145, 18,214, 81, 64,203, 82, 37,114,111,154,142,201, 10,160,
+ 39,196,117,213, 56,250, 83,251,151, 70, 71,176,130, 16, 55,215, 61, 35, 32,254,229,243,195, 44,236,191,115,251, 73,220, 55,177,
+ 14,235,217,165, 89, 51, 72,174,186,220,251,116,246,203,110,182,226, 79, 32, 65,221, 42, 66,210, 65, 74,146, 74, 84, 55, 4,141,
+115, 29, 70,169, 83, 41, 66, 97,136, 60, 10,179, 26,153, 73,193,111, 11,178, 34,239, 29, 38,171,113, 79,134,233,215,145,240,213,
+ 65, 91,204, 20, 78, 33,148, 91,189,233,235, 94, 25,109,177,180, 41, 34,124,132,135,189,191,122,166,191,102,181,205, 96,234,169,
+236, 46,155,176,108,137,171, 72, 89, 42,221,176,105, 67,227,172, 44,186,124,201, 42,228,144, 82,206, 73,149,189,115,189, 41, 12,
+158, 79, 56,175, 41, 35,233, 59,234,112,164, 66, 58,169, 87, 18,100,191, 21,123,134,111, 72,197,194,254, 20,197, 89, 81,175,253,
+162,156, 77, 15,232, 58,199, 21,151, 54,119,143,118,171, 99,185, 89, 24,215,118,178,172, 70,150,251,130,139,177, 5, 18,151, 21,
+253, 58,245,235, 48,227, 35,193,122,148, 51, 37, 1,218, 20,139,255, 0,113,191,204,109,146,165, 30,103,198,181,209, 40,197,216,
+133,126,102,224,135, 90,239, 82, 34, 57, 85, 42,173,214,160,141, 94,216,179, 76,209, 73, 23,113, 61, 41, 33, 68, 19,209, 64,154,
+131,244,141, 10, 81,229,201, 78, 18, 84,103,122,125, 34, 99,121, 91, 15,222,187,114,219, 54,108,165, 92,158, 45, 33, 28, 32,200,
+117, 71,149, 92, 67, 96,240, 81, 53, 60,144, 40, 78,228, 87,125,116, 29, 63,175, 78,179,182,207,138, 63,120, 89,217, 93, 58, 51,
+ 15, 13, 15,220,184,215, 40,192,179,188, 19, 36,115, 25,206,160, 59, 6,246,165,243,242,222,165, 29, 65, 81, 72, 90, 22,154,165,
+104,219,170, 77, 53,217,227,100, 66,248,110,129,112,185,187,105,149,101,165,162,191,187, 17,128,195, 54,232,243,214,159, 49, 79,
+ 26, 34,162,161, 1, 66,149, 36,251, 69, 42,125,250, 86,216,220, 21,154, 32,151, 61, 86, 35,228,110,194,218,133,114,141,197, 77,
+138,236, 2, 82, 66,136, 3,222, 72,212, 40, 46,155, 40, 48, 84,205,170,216, 95, 80, 13,142, 8, 74, 69, 91, 29, 2,104,105, 95,
+121,219, 87,224, 21, 5,147,224, 15, 39,231, 84, 74, 80, 85,196, 40, 31, 14, 33, 71, 71, 26, 40, 73, 15,199,242, 83,105,187,161,
+ 42, 87, 6,131,136, 74,146,158,164, 36,238, 43,246,234, 2,214, 42, 44,234,196, 68,203,125,249,105,150,150,255, 0,132, 32,249,
+ 73, 4,128, 77, 9, 42, 52, 4, 19,190,137, 57,129,197, 18, 49, 79,189,141,198,111,243, 50,118,158,182,195,118,111, 21, 9, 45,
+161,134,214,186,148, 81,196,146, 18, 58, 0, 58,251, 14,178,242, 46,136,125, 86,142, 45, 5,215,208,158,193,247, 66,231,134,185,
+ 18,211,147,195,118, 32,114, 59, 15,150,100, 36,182,182,155, 80,248,194,194,192, 41, 38,169, 94,254, 0,235,153,202,128,153,120,
+234,186, 60,114, 98, 24,171,251, 31,206, 91,148,137, 79,218,136,224,162,167,152, 93, 69, 84, 91, 63,136, 7,188, 20, 87,233, 58,
+205,148, 85,176, 85,139,143,247,117,216,178, 99, 92, 16,232, 44, 85,184,243, 16,122, 40,154,132,148,159, 14, 64,237,239, 58,171,
+ 58,157,209, 1, 78, 81,187,174,222, 64, 24,199, 16,138,202, 66, 66,153,125, 60, 40,180,175,238,145,196,248, 20,148,144, 55, 7,
+141, 42, 1,208, 5,109,170, 69,121,200,110,205,179, 10, 75,136, 15, 55,113,114, 59,140,186, 26, 40,115,206, 74, 0, 91, 68, 18,
+104,165,113,161, 65,241,216, 29, 18,185,106, 20, 21,125,103,205, 31,117,232,151,139, 82,216, 80,109, 78, 50,165,238,211,156, 18,
+160,135, 89,112, 82,135,138,146, 20,147, 74,129, 79, 96,173,221,160,232, 84, 9, 86, 20,124,190, 29,210,215, 13,183,214, 1, 40,
+117, 40, 32,128, 80,164,168,180,180,158, 61, 8,169,247,108,117, 91, 99, 36,100,148, 46,183, 52,198,155, 34, 4,132, 16, 20, 25,
+123,122, 10, 57, 66,146, 69, 63,180, 40,125,250, 56, 4,161, 74, 74,170,239,211,177, 87, 17,217,168, 33,104,101,106,113, 74, 62,
+198,188,198,205, 79,188,237,173, 44, 55, 5,150,117,228, 21, 74, 92,114, 64,204,178,210,151,193,247,156,228,189,254,234, 74, 2,
+149,185,233, 64,161,246,235, 94, 49,112,178,231, 38, 40, 13,235, 37,183,207,148,149,161, 99,228,212, 42, 0, 59,110,145, 80, 62,
+130,117, 98,160, 64, 85,236, 33, 65,185,191,242,168,243,219, 59, 21,243,253, 66,159, 93, 52,120,151, 65,144,100,153,148,230,172,
+176,219,206, 18, 2, 65, 87, 26,111,191, 64, 62,221, 26, 16,213, 12,151, 84, 71,118, 59,220,110,209,211,101,142,132,185, 13, 77,
+128,226,149,247,154, 80, 21, 9, 7,223, 66, 55,251,118,213,184, 86, 29, 64,149,207,249,159,112,140,166,219,133, 29,202,112, 36,
+ 41, 74,169, 80, 33,100, 80,251, 71, 77, 18,114,112,202, 41,187, 1,186,186,218,216,134,167,131,113,158,113, 10,122,149, 77, 20,
+ 41, 67, 93,198,253, 62,157, 78, 60, 83,130,175,158,204,199,118,201,153,217,238, 19, 30, 82,109,111, 75, 98, 42,221, 21, 77, 27,
+125,208,209, 42, 30,202, 19, 95,163, 86,178, 40, 23, 83, 56, 30, 6, 37, 77, 92,217,131,119, 27,123,237,218, 46, 41,227, 46, 49,
+118, 3,200, 4, 40,121,145,159, 45,154, 17,177,220,108,117,241,127, 82,199,242, 47,178, 31,220,145, 30,226, 84, 64,213,145, 12,
+ 74,226,226,239, 12,113,175,146,128,107,244, 19,190,179,140,246,197,212, 72,213, 57, 98, 86, 89, 95, 41,118, 91,127,185,101, 73,
+113,191, 97,252, 64, 8,255, 0,170, 70,162,255, 0, 10,134,199, 46,135,230, 86,135,238, 86,123,195,140, 38,166, 56,102, 90, 13,
+ 60, 43,197, 99,236,208,225, 45, 85,136,197,212,238,218, 71,110,231,141,197,183, 40,252, 77,165,196,167,220,149, 2, 83,160,219,
+172,146, 26, 20, 17,251,138,204,183,155, 87,221,228, 66,143,246,146,158, 42,253, 90, 85,215,182, 12, 59, 81, 36, 28, 58, 35,218,
+ 73, 40,179,119, 6,219,145, 32,241,131, 10,237,110,185, 71, 80,216, 32,183, 37, 14, 40, 87,220, 69,117,163,131, 63, 46,218,229,
+217, 33,248,161, 46,187,245, 39, 5,171,127,123,242,230,144,144, 57,221,167,188,191,114,157,125, 79, 3,245,215, 94,187,213, 67,
+100, 79,196,174,107, 39,252,201,120,148,155,140, 46, 45,207, 40,179, 69,144,174, 49, 36, 92, 34, 50,249,254,170, 93,121, 45,168,
+254,157, 86,170,177, 57,136,158, 4,133, 24,241, 81,253,103,220,239, 82,125, 83,229,169,191, 59,198,211, 29, 75,177,217, 35,116,
+106, 52, 24, 40,249,118,218,105, 29, 18,144, 19,202,131,197, 68,248,235,203,125, 79,149,102, 71, 83,188, 79,249,100, 99, 17,200,
+ 70, 58, 0, 63, 31, 18,186,146, 0,136,101, 92,246,155, 36,200,112,119,160,231,248,204,181,197,201,225, 73, 18, 98, 72,104,209,
+104,113,180, 26,125, 32,167, 98, 14,196,108,118,214, 70, 46, 77,152,246,137,214,118,202, 37,193, 76, 87, 73,250,145,102,220,207,
+114,221,202,173,140,166, 52, 60,134,223,109,200, 76,116, 10, 37,183,167,194,110, 75,192, 15,122,212, 79,215,175,108,207, 59,228,
+ 38,205,190, 49,147,119,144, 9,251,215, 61,153, 17, 27, 11, 36,165, 62,220,112,202,186, 70,113,183,120,253, 43, 71, 79,183, 84,
+ 97, 38, 85, 86,174,214,246,250,110,121,124,185, 72,149, 49,139, 62, 13,105,100, 92, 47,249, 5,192,148,197,183,198,175, 16,165,
+120,169,107, 63, 11,109,167,117,157,135,137, 23,177,234, 4, 25, 74, 66, 48,136,115, 35,192, 15,183, 1,205, 26,154, 13,164, 0,
+152,176,187,207,161,222,224, 93,151,219,204, 63, 45,191, 70,201,211,201,184,247,219,229,190, 43, 54,103, 92, 39,138,106,148, 43,
+230, 27, 65, 81, 31, 18,192, 9, 27,157, 84,167,174,116,203,103,229,198,115, 4,232, 36, 64,218,255, 0,136,246,133,164,122, 96,
+ 35, 67,170, 81,205,112, 59,230, 15,152,175, 9,202,152,242, 47,112, 22,227, 50,218, 38,160,112,169,228,146, 54, 41, 80,162,146,
+ 71, 80, 65,213,219,171,149, 71,108,184,133,151, 40,152,146, 15, 20,227,128,247, 35, 62,194,187, 61,115,195, 49, 43,147,176,172,
+247,103, 20,236,148, 71, 81, 75,129, 72, 73, 10,242,214, 55, 71,152,138, 5,241,221, 65, 32,116,168, 51,143, 80,182, 17, 48,137,
+ 96, 83,198,233, 68, 24,131,161, 85,155,142,169,166, 16,186,244, 95, 19, 95, 30, 70,167, 84,235, 31, 17,240, 66, 33, 49,224, 93,
+221,205,251, 89, 45,225,141, 74, 14,227,243, 85,229,220,108,147,210, 36,219,102,180,180,241, 91,114, 34,187, 86,214, 20,157,171,
+ 74,251, 8,213,138,242,167, 13, 6,177, 58, 16,117, 7,196,112, 83,162,233, 85,192,167, 14,229,101,221,173,201,187, 67, 3, 0,
+237, 5,160,227,248,130, 12,139,205,206,211,201,107, 74,111, 50,221, 33,192,149,168,158,109,182,211,105, 75, 71,193, 6,158, 26,
+183,100,233,170, 49,133, 17,219, 23, 50, 35,188,255, 0, 1,195,185, 19, 43, 43,205, 1,180,254, 42,168,149, 12, 73,180,177, 34,
+148, 45, 60,211, 68,255, 0,102,155,159,183, 64,140,149, 34, 29, 58, 64,236, 78, 98,245,185,172,227, 34,157,105,196,240,153,139,
+254, 2,231,152,221, 97,217,217,150, 83, 67, 86, 4,165, 5,172,111,177, 9,161,246,232,135, 24,196, 9,206, 81,132, 79, 3, 34,
+ 34,254, 14,175, 83,139, 57,135, 3, 68, 67, 52,236,254,101,131, 63,111,203,111, 13,199,153,137,205,117,147, 14,245,105,146,204,
+235,116,154,128, 20, 17, 34, 50,148,138,236, 77, 13, 9, 27,210,154,107,104, 49,136,144, 34, 81, 60, 8, 46, 61,225, 10,236,121,
+ 86, 62, 32,150, 51, 91, 50, 36,229,179, 99, 15,184,210, 90,125, 4,116,161, 58,173,189,152,160,132, 53, 9,140,197,254, 84,162,
+ 41,230, 54, 18, 63, 81,211,217, 39,139, 5, 50, 19, 15,116,179, 28,195, 54,188, 75,201, 51,105,238,220, 47, 82, 91, 74, 16,243,
+164, 81, 8,165, 82,134,208,154, 37, 9, 30, 1, 32, 13, 78, 89, 83,182,111, 34,238,165,100,204,203,158, 43, 89,131, 31, 38,196,
+ 82,149,167,224, 91,126, 82,146,127,101, 72, 27,157, 40,216,210, 67, 1,105,239, 78, 37, 35,212,135,166,123,149,151, 38,172,206,
+236,246,202, 34,114,140, 98,230,176, 12,153, 24,243, 15, 37,171,165,189,231, 79,196,180, 48,218,195,237, 86,164,113, 32, 16,154,
+234,175, 88,163,247,248, 82,145,255, 0, 50,160,224,243,218, 56,131,225,196, 45,140, 11,204,190, 19,203,130,226, 27, 47,111,220,
+151,154, 41,149, 35,202,111,231, 57, 60,129,253, 80, 57, 37, 67,233,232,117,231, 81,204, 96, 60, 22,142,221, 86,187,222, 10,110,
+ 25,140,118, 26,105, 75,134, 26,145, 46, 26,169,240,135, 80,162,217, 79,210, 42, 14,180, 50,243,182, 87, 6,230,163, 24, 2,150,
+111,140,220, 49, 75,131,144,165, 2, 42, 18,191,169, 64,255, 0,163, 83,174, 66, 97,213, 41, 85,241, 20, 2, 42,229, 90,166, 72,
+186, 73,221, 8, 7,201,175,138,149,208,254,157, 53,196, 78, 32, 4, 90,225,179, 84, 49, 17,175, 98,107,185, 41, 74,188,227, 41,
+166, 0,241,242,131, 75, 73, 63,245,200,208,182,195,110,213,107, 85,212,121, 94, 11, 22,187,164,115, 63,117, 73,235,175, 79, 18,
+ 94,130, 36,144,238,248, 99,214,199, 60,248,134,130,189, 6,194,191, 70,141, 11, 25, 52,163,185,121,139,115,106, 34,124,137,199,
+141,126, 26,145,162, 56,146, 1,172,133, 62, 26,152, 36, 42, 19,129, 77,245, 41, 4, 29, 68,133, 49, 30,196, 94, 51,209,222, 71,
+ 39, 64,229,227, 90, 13, 12,197, 56,116,177,220,190,215,225, 29,201,179,155, 70, 79, 9,185,112, 65, 42,104,168,113,117,135, 10,
+105,230, 50,177,241, 37, 67,218, 14,254, 32,141,180,124, 92,203, 49,229,186, 36,133, 11,105,141,161,164, 29, 86, 51,187,125,124,
+236,117,129,119, 8, 9, 85,207, 13,132,193,101,169, 45,167,241,217, 43,216,173,244, 32, 80, 19,176, 11, 27,125, 26,236, 49,122,
+172, 50,190, 19,164,187, 57, 31, 5,147, 60, 73, 81,222, 23, 56,119,183, 43,255, 0, 57,228, 46,220,150, 71,201, 50, 41,205, 32,
+211,151, 37, 18, 7, 90,245, 39,236, 26,218,198,131, 5,151,151, 99,164, 1,120,135, 6, 42,227,215,139,238,116, 52, 38,164,129,
+182,222,237, 92, 4, 5, 73,208,231, 81,113,154, 92,243, 29,226, 7, 21,249,116, 38,160, 36, 10,251,182, 30, 58, 40,135, 53, 2,
+ 84, 56, 88,172,139,236,241, 30, 18,194, 94, 59, 30, 7,153, 59,248, 15,110,218,143,149,185, 32, 85,247,216, 94,203, 66,189,221,
+ 80,220,183,188,215,194,195,105,136, 79,152,176,163,181, 21, 82, 16,157,235,177, 63, 73, 26,167,146,118,112, 90, 88,181,191, 21,
+245, 51,242,253,236,206, 11,219,120,102, 61,202, 67, 75,188,188, 60,213,165, 73,142,167,210,145,189, 2, 80,186,128, 43,182,196,
+ 87,122,141,113,189, 78,114,153,101,211, 98, 87,180, 46,237,198,125, 28,246,183,189,157,175,148,223,114,236,241,231,181,112,108,
+ 42, 60,213,199,104, 77,100,165, 33, 72,117,167,136, 14, 37, 84, 32,138,212, 26,110, 8, 38,185,209, 50,137,248, 79, 5, 91, 47,
+ 48, 87, 33, 21,203,254,160,125, 46,102,254,156,103, 63,121,197, 60,235,183,108,190,100,202,141, 37,107, 65,151, 17, 64,173, 42,
+109,228,142, 37, 72, 40, 9,248,146, 15,191,218, 79, 28,152, 88,123,214,165, 80,148,195,128,171, 43,119,118,162, 50,228,146,183,
+ 43, 6, 66,152, 99,133,105, 68, 58, 82, 91, 35,222,146, 79,217,162,154, 83, 3,170,108,194,187,187, 17,196, 33,217, 78,254, 8,
+154, 28,128,180, 30, 42,143, 33, 36, 10, 84,111, 66, 66,210,124, 40,125,218, 28,233, 41,221, 94, 7, 38,180,102,208,164, 34,208,
+190, 50, 91,100,201, 97,134, 86,144,234, 74, 85,247, 19, 93,137, 66,129,225, 93,142,192,236,117, 66, 0,197,157, 57, 84, 95,114,
+ 47,177,173,179, 26, 92, 71, 40,171,179, 50,156,137,112,100,169, 11, 50,227,178, 86, 26, 82,118, 1, 84,109, 73, 32,130, 71, 17,
+ 90,128,107,177, 68, 73,246,126, 10,165,211, 0,169, 61,155,238,156,140,170, 60, 91, 68,169, 73, 18, 90,142,210,208, 69, 7, 39,
+ 7, 31, 53, 32, 13,184, 45, 10, 65, 72,246,125,154,158, 77, 27, 92,170,245,220, 74,177,175,151, 70, 27, 76,139,171,235, 10,227,
+197, 47, 19,253, 71, 17,243, 27,211,251, 72, 58,169, 30, 44,167, 46,107,155,123,173,220, 39,211, 5, 54, 73, 36,148,202, 18, 37,
+188, 65, 39,156,117,220,156, 72, 31, 95, 45,110,227, 86, 31,193,101, 93, 50, 64, 84, 86, 87,150, 79,145, 46, 75, 11, 81,242,252,
+233, 1, 42,175, 82, 86, 71,216, 91,223,234,214,188, 32, 4,125,139, 50,115, 46,130, 49,148, 43,231, 20, 92, 81, 8, 90,156, 75,
+117, 63,247,105,225,250,211,162,109,100, 35, 45, 81, 72,189,203,133, 56,187,109, 82,249, 47,159,195, 83,238, 4,143,171, 76, 43,
+ 98,164,233, 10,225, 96,238, 87,113,163,204,145,130, 91, 94,145,101,140,241,139, 50,114, 80,165, 52,218,150, 66, 19,184,218,164,
+157,170, 69,126,202,200,228,194, 5,137,213, 26,172, 41,204,110,109, 23, 60,119, 27, 5,238, 30, 31, 42, 99,121, 45,189, 97,165,
+168,199,243, 24,230,146,219,174,213,109, 18, 22, 7,194,105, 74, 26, 26,235, 78, 17, 19, 26, 21, 90,202,140, 75, 21, 92, 68,237,
+150,112,213,209,217,210,225, 56,235, 9, 82,159, 1, 3,115, 65,189, 82,189,254,192,122,105,126,214, 96,160,144,143,227,208,238,
+110,202, 67,112,137, 18,192, 79,225, 40,148,172, 20,171,116,241, 52, 87, 93, 72,195, 84,195, 85,216, 93,139,176, 74,200,109, 81,
+241,249,132, 42,228,128, 37, 50,211,180, 80, 10, 4,186, 40, 83,211,116,157,143,142,174, 13, 7,138, 34,180,123,179, 17,120,221,
+174,197,112,144,158, 15,220,100, 72, 81,108,242,248, 84,133,142,104, 5, 71,113,241, 2, 61,128,143, 29,124,131,234,156, 93,153,
+153, 29,130,115,252, 79,253,190, 10, 35, 73, 41,184,164, 2,208,113,242, 55, 75,100,129,254,240,211, 92, 93,147,254,154, 32, 26,
+171, 58,212,132, 88,123,125, 26,115,244,249,153,238, 45,165,159,111, 21, 33, 35,245,104,181,203,114,104,142, 40, 86, 55, 41,153,
+ 56,124,233,210,232,126, 97, 82, 98, 30, 94, 33,164,168,234,112,135,198,166, 36,200, 39,105, 46,105,136, 99, 71, 87,245, 84,202,
+189,202, 64, 38,191, 97,212,188,183,145, 67, 37, 39, 92,110,175,197, 85,237, 79,157,153,113,212,180, 79,137, 42,165,126,205, 88,
+ 48,102, 79, 25, 56, 68, 34,228, 45,217,177, 24,240,246,249,242,150,165, 45, 94,197,169, 93, 63,234,211, 76, 34,197, 50,237,223,
+ 88,147, 83,111,245, 23,148,161, 63,186,145, 37, 43, 85,125,139,140,211,168, 63, 97,215,179,117, 96,247,207,237,200, 46,119, 44,
+127, 80,248,170,187, 30,122, 68,137,170,105,165,148, 80, 23, 91, 88,234,149, 32,243, 4, 31,113,213, 8,157,186,160, 18,172, 79,
+ 86,221,152,205, 61, 76, 68,183,122,132,236, 68, 21,223, 50,119,154,108,101,184,229,184,133, 92, 33,203, 44,165,167, 93,110, 53,
+121,184,203,138, 72, 82, 75, 96,154,147, 80, 41,183, 51,234,127, 77,221,153,121,203,198,142,253,195,227,136,249,132,185,150,230,
+ 15, 29, 57,186,233, 49,114, 35,108,123,210,119,167,143, 72,125,229,190, 34,114,123,185,103,155,131,246,250, 4,152,206, 76,190,
+101, 17,157,183, 33, 49,184, 31, 56, 71,110, 90, 82,227,174, 17, 80,132,161, 38,170,166,177,176, 61, 29,151,145,108,101,100, 13,
+ 80, 4,110, 50, 12,195,184, 29, 73,236,239, 68,156,196, 65, 39,130,116,239,159,112, 45,189,205,205,239,153, 6, 56,130,214, 56,
+201,106, 13,165,162, 56,148,195,138,210, 98, 50, 56,239, 67,193, 9, 36,123,117,232,153,243,140,236,120,252,188, 7,128, 12, 23,
+ 55,125,190,100,201, 74, 44, 76,118,110, 56,150,191,237,227,146, 18,125,186,164, 96,199,197, 87, 7, 86, 78,183,108, 43,183, 25,
+143,166, 11, 38, 41,149,231,145,241, 43,100,171,244,140,131, 37,133, 14, 51,151, 11,181,193,168,172, 38, 44, 24,233, 97,133, 36,
+ 37,176,162,226,130,157, 80, 72, 85, 8, 4,141,173,100,244,216,230, 97,198,169, 90, 33, 29,196,203, 71, 37,180, 1,191,138,215,
+196,186, 21, 87,169,212,160,184,158, 63,232, 55, 4,200, 92,135,143,226, 89, 37,254, 67,173,173,183, 39,223,111, 77, 66, 43, 10,
+ 77, 85, 70,109,237,241, 0,211,109,235,170,149,250,119,165,194, 45,178,115,241,147,126, 10,103,169, 1,192, 47, 29,245,239,126,
+ 47,221, 46,225, 89,101,227, 86,135,172,241,173,246,168,246, 7,155,151, 47,231, 93,124, 70, 74,154,105,229,188,164,165, 74, 95,
+150, 82,146, 85,185,166,182,114,108,133,177,137,136, 32, 8,129,169,115,167,122,206,201,200, 22,201,217,150,188, 17, 51,111,127,
+ 39,141, 64, 28,231,202,117,184,236,183,253,103, 92, 88,109, 35,235,174,179,225, 81,148,192, 28,208, 56,232,165,247,159,191,190,
+156,189, 60,100, 83, 59, 91,108,237,251,121,155,182, 9,170,181,100, 87,203,197,210,108, 55, 37, 76, 97, 94, 92,161, 17,184,191,
+ 11, 40,109,208,164, 37, 70,164,211,112,122,156,174,161,234,156,124, 44,153, 81, 10,119,236,210, 82, 50, 33,200,208,128, 7, 13,
+121,173,216,225, 87, 17,168,114,160,230,150, 46,223,231, 56, 29,183,191,189,133,113,243,218,201,243, 21,104,184,218,238, 10, 74,
+230, 88,238,236,183,231, 42, 27,203, 78,203,109,109,144,182,151,226,157,149, 67,215,102,171, 41,201,160, 95, 75,237, 37,136, 60,
+ 98,123, 63,129, 89,185,216,222, 86,163,129, 67, 96, 60,136,206, 55, 25, 70,141,172, 23, 86, 62,144,116, 40,157, 85, 14, 73,163,
+211, 78, 43,142,247, 11,187,208,172, 57, 82, 11,184,172, 4, 74,188, 92, 34,160, 84,200, 98,223, 29,114,203, 84,218,188,212,128,
+147,238, 39, 87,240, 43,140,172,248,184, 0, 73,246,106,173, 98,212, 39, 48, 10,230, 63, 80, 29,195,202,251,241,220,137,253,204,
+206,101,169,219,149,201,101,166, 34,133, 31, 34, 12,118, 84, 67, 17, 99,167,162, 27, 66, 77, 0, 3,222,119, 36,235,202,122,183,
+ 83,179, 50,211,108,203,147,247, 14, 64,119, 5,209,194, 46, 85,241,216,110,245,218,251, 61, 62,221,138,231, 77,200,184,118,110,
+255, 0,102, 17,114,139, 84, 98,149,175,205,142,149, 22, 37,199, 67,138, 74, 82,251, 75, 9, 33, 85, 27,109,236,161, 61, 61,234,
+ 47,244,235, 12,109,115, 76,180,144, 31,113, 29,224,165,101, 66, 96,131,192,171,122,251, 19,211,246, 95,217,188,171, 60,237, 93,
+190,236,155,181,165, 86, 72,226,227,127,121,142,110, 34,224,242,210, 66, 89,134,124,177, 68,183,185, 53,235,182,189, 11, 3, 63,
+ 19, 62,139,101, 76,102, 54,109,214, 77,252,196,242, 26,114, 89, 89, 56,144,174, 14, 29, 80,179,101, 7,221,115,203,251,233, 88,
+169, 30,202,211, 72, 6, 11, 53, 91,125,234,207,187, 87,233,130, 60, 12, 29,236, 78, 62,103,220,159,149,139,112,188, 79,191, 59,
+ 33,152, 77, 51, 45,148, 72, 12, 68, 98, 43,137, 36,132, 56,144, 92, 89,168, 61, 5, 54, 21, 58,215, 94,171,165, 88, 41,141, 66,
+201,176, 50, 50,225,168,118, 0,119,115, 91,152,248, 16,216, 12,181, 37,126,229,150,236, 6,225,135, 90, 59,175,217,214,156,139,
+219,236,161,153, 11, 69,170, 83,133,231,109,179,224, 58, 24,155, 24, 56,170,169, 72, 28,146,164, 40,238, 65,213,225,109, 89, 53,
+195, 34,160, 68,102,250,118, 17,161, 31,193,103,230,227,138,165,167, 2,180,122,109,183, 38,239,223,187, 62, 53, 51,226,180,221,
+226,222, 44, 18,144,122, 45,169,246,185, 12,208,143, 17,201, 64,253, 90,179,210,198,235, 60,179,194, 96,143,120, 42, 24, 71,250,
+129,115, 11,248, 99,118,254,224,206, 79,151,196,159, 59,203,219,163, 81,210, 26, 10,250,212, 14,188, 10,252,131, 29,123, 23, 77,
+ 24,104,138,217,187, 81, 30,211,143, 88, 23, 53, 63,197,207,122, 76,182,185,117, 40, 85, 87, 79,160,128, 53, 44,174,160,108,136,
+101, 24,195, 86, 85,175,119,123,125,111,154,228,139,203, 45,114,121,109,242,140,138,126,211,138,226, 1,254,233,174,180, 41,234,
+ 59, 76, 98,152, 84,238,146,178, 78,206, 58,155,189,178,218,161, 70, 83,228, 45,253,190,242,156,112, 42,154,208,167, 59,112, 62,
+212, 51, 83,178,222, 59,112,143, 48,176, 16, 60,144,248, 73, 20,218,134,164,106,183,238,116,119, 68,217,170,185, 46, 6, 29,222,
+ 15, 36,211,207, 72,251, 70,189,164, 21,220, 58, 95,118,209, 30, 90, 75,106, 77,107,245,234,105,221, 9,185,246,229,155,130, 15,
+150,146, 2,182,168, 26,136,179,106, 36,117, 74, 55,124, 6,253,140,201,249,142, 10,242, 1,217, 64, 18, 8,250,181,106,187,196,
+184,168, 74,178,165, 91, 35, 42,117, 23, 29,194,220,161,213,165,110, 21,244, 19,166,144,230,144,151,106, 42,214, 61, 38,224,215,
+ 20,168,161,241,251, 39, 65, 42, 78,203,212, 75, 92,219,115,230, 52,214,234,218,197, 21,226, 8,233,184,241,211,143,135,130,129,
+ 59,149, 21,234, 63,208,180, 44,173,147,146,118,156,162, 12,178, 84,185, 22, 83,240,196,123,157, 74,212,209, 20,242,150,122, 1,
+247, 63,187, 90,235,167,233,125,124,193,161,102,163,183,159,183,181, 99,102,244,221,239, 40,104,123, 23, 14,101,248,214, 73,137,
+100, 50,173, 55,200,111, 68,157, 8,165,153, 13, 73, 73, 66,195,138, 10,226,170, 31, 3, 77,136,216,245,241,215,105, 77,145,178,
+ 59,162, 92, 21,206,217, 19, 2,196, 49, 95,150, 56,243,166, 66,243, 86,176,175, 49,124, 93,173,121, 10,109, 79,179, 86, 68,180,
+ 67, 26,167,140, 50,210,196, 69, 0,243,124,210, 54,218,160,241,173, 65, 0,236,105,239, 7, 80,220,166,174,254,209,100, 16,241,
+ 7, 13,202,223, 25, 8,185, 10, 3, 33,180, 32, 40, 36,110, 10, 65, 4, 3, 94,180, 26,171,116,119, 43,248,243,101,214,126,154,
+ 59,223, 6,239,152,218, 96,220,167, 60,200,149, 41,152,142,185, 29,109, 33,213,121,138,224, 18,165, 55, 74, 39,125,245,207,117,
+ 42, 76, 32, 72, 11,160,233,214, 9,216, 1, 58, 47,173, 86, 14,254, 99,216,182, 46,204, 11,108,198,196, 8,108, 54,196, 84, 37,
+196,148,209, 45,241, 32, 20,166,135,114, 42,117,194, 79, 34, 92,215, 68,125, 59, 27,100, 11,113,251,118,165, 76,191,186,182,108,
+206, 2,162,185,228, 59, 29,242, 67,168,114,132, 40, 10,164,141,246,221, 36,142,154,165, 60,137, 30, 28, 87, 77,131,209,133, 61,
+189,139,230,247,174, 76, 46,233,216,220,185,140,174,206,226, 21,128,223,222, 66,161, 54,195, 33,148,196, 91, 85,113,108,172, 35,
+111,187,203,137,234, 71, 94,149,215, 95,209,114,198, 76, 54,159,152,113, 88, 62,160,233,135, 22,123,192,248, 15,220,126,223,139,
+ 42,223,181, 29,218,158, 83, 14, 4,213, 31,226, 38,121,234,169,173, 22,167, 80,234,142,254,192,154,125,122,218,182,142,107,148,
+243,151, 65,118,163,186,146,237,249, 60, 91,219,114, 9,101,198,158,143, 41,165, 29,212, 30,142, 92, 7,221, 78, 21,250,117,153,
+125, 0,197,187,255, 0, 52, 72, 95,171,170,135,186, 93,218,125,235,253,206,198,251,223,195,177,119,102, 83,107, 42, 53,109,197,
+165,229,184,164, 87,160, 82, 86, 80, 64,240,160,240,214,182, 37, 13, 16,123,149, 11,174,212,133,239,179,217,244,203, 52,235, 85,
+226, 10,248,182,133,173,185, 59,254,203, 47, 58,223, 33,254,192, 63,111,187, 70,190,177, 39, 5, 6, 19, 96,175,123, 15,120, 23,
+124,193, 89,122, 83,188,190, 98, 20,178,233, 87,253,227, 16,193, 7,233, 5,103, 89, 39, 31,108,253,191,154,179,230,184, 92,241,
+221,204,245, 45,222, 98, 54,240,248, 98,176,203, 85,222,171,109, 78, 7,192,167,247,137,214,214, 53, 47, 19,226,179,111,177,136,
+ 85, 46, 91,148, 63, 62, 65,184, 69,116,121, 1,231, 18, 7,180, 34,160,127, 72,214,148, 52, 12,168,207, 82,129,101,121, 19,144,
+113,200,119, 20, 44,135,131,166, 50,169,212,169,105, 38,191,104,175,215,166, 5,138,137, 9,123, 19,205,237, 48,175,197,171,227,
+139, 84, 93,199, 6, 9, 11, 83,202, 85, 82, 43, 77,146,161,212,143,187, 93, 14,251, 8,210, 60, 85,252, 44, 77,229,229,193,116,
+150, 51,222,172, 82,219,137,196,194, 49, 11, 67, 86,235,123, 42,112,186,220,100,130, 30, 90,220, 60, 20,235,148,243, 29, 80, 4,
+ 10,175,169, 72,218,189,105,195, 12,153, 25, 18,175, 91,113,136,218, 2, 86, 93,148,156,133,216,210,217, 74,172, 50,211,197, 49,
+228, 36,173, 36, 3, 93,130,106,160, 5, 73,175,244,215, 90,245, 75,104,112,177,173,153, 39, 84,187,220,236, 38,203,140, 74, 83,
+207, 50,201,181,188,180, 54, 27,108, 23,252,162,180,113, 80,109,101, 45,184, 0,167,237, 38,163,219, 93,106, 81,145,185, 87,153,
+101, 93,199,237,229,182, 69,248, 67,156,231,148, 21,196, 70,117,142, 43, 91,110, 18, 20,148, 87,110, 66,155, 26,244,247,234,193,
+105, 40, 5,125,122,121,194,110,243,167, 53,112,132,219,107,156, 36, 46, 19,133,191,133,178,150, 18, 27,228,146, 61,164, 80,143,
+125,117, 32,166, 29, 48,250,142,185,174,235,220, 28, 95, 19,165, 91,114, 49,146,163,200,138, 58,218,128, 74,183,235, 81, 84,154,
+251,107,225,175,150, 61,127, 95,149,159,151, 31,239, 72, 55,137, 17, 47,237, 67,118,159,130,147,140,223,218, 82, 37, 44, 80, 54,
+ 84,148,164,251,147, 83,182,188,226,218, 14,208, 18, 22,166,254,239,228,200,178, 98, 56,197,173, 6,143, 37,145, 49,225, 90, 16,
+ 93, 81,115,127,209,167,170,163,230, 1,220,164, 39,240,186, 0, 47,206, 69,237,213,174, 27, 74,163,242, 30,126, 82,141,105,179,
+170,220,159,171, 87,235,168, 57, 80, 54, 49,101,227, 8,112,219,224,221,174,107,216, 50, 92, 45,215,193, 42, 80, 21,250,244,140,
+ 62, 36,192,238, 9, 74,229, 53, 55,219,155,204, 55,251,128,162,252,138,123, 43, 90,125,122,156,131,106,137, 29, 2,247,104,103,
+249,222, 89, 10,221, 44,129,111,105,192,236,195,224, 27, 64,230, 71,216, 41,160,119,169, 14, 43,186,125,104,188,183,253, 67,223,
+228,126,194,154,179,184,145,237, 83,150, 72,174,126,181,107,217, 58,128,254,177,239, 3,240, 11, 3, 51,252,217,125,185, 37, 76,
+ 27, 13,189, 79, 67,217, 19, 12, 45,120,221,188,183, 26,108,180,138,161,167, 95, 74,150,132,174,157, 57,132, 40, 38,189,104,117,
+ 74, 80, 59, 12,155, 69, 85,139, 58,147,125,187, 77,182,184,155,157,177,247, 35, 56,210,168,211,172, 45, 77,173, 42, 72,169,162,
+144, 65, 27,106, 0,152,151, 26, 20,129,100, 45,156,223, 40,189, 72,126,227,124,185, 74,156,233, 96,180,223,206,200,117,254, 7,
+221,230, 40,211,234,213,137, 89, 41,233, 34, 74,121, 18,120,173,150,102, 46, 45, 99,162,239,229, 56,109, 92,252,151, 36,240, 87,
+148, 30,113, 37,105, 65, 95, 78, 68, 36,144, 43, 93,181, 94, 96,152,187,112, 44,152, 5,190,198,130, 29, 43,115,104,142, 40, 16,
+ 61,195,174,154, 96, 16,132, 35,241, 58, 51,115,141,217, 78,217,246,148,250,131,239, 95,243, 75,165,142, 69,221,252,106,217,142,
+ 99,233,101,130,252,150, 99, 38,103,241, 83, 31, 81,242,154, 40, 87,236, 32,171,217,169, 93,147, 78, 21, 34,235,132,165,186, 76,
+ 0,237,103,212,242, 11, 79, 31, 22, 54, 71,113,224, 21,117,117,252,206,108,214, 27,188,104,253,174,236,230, 31,110,183,189, 68,
+135, 50, 6,102, 95,229,182,145,236,126, 67,140,138,211,199,134,177,163,235, 25, 23,242,232,132, 71,123,200,251,244, 90, 35, 30,
+184,240,136, 77, 93,142,245,121,223,206,255, 0,122,128,135,219, 91,109,143, 3,199,113, 70,173, 87, 12,150,249,127, 86, 25, 30,
+111,242,248, 22,216,198, 67,174,249, 65,212,169, 64,168,161, 0,114, 27,168,106,223,167,189, 67,151,212,136,131, 87, 29, 9, 39,
+102,128, 14,231, 80,156, 33, 25, 31,132, 48, 29,138,242,133,234,139, 4,181,199,118, 52,108,227, 32,117, 72,253,226,176,188, 99,
+ 22,199, 25, 88,175, 68,185, 33, 50,100,164,125, 6,186,233,103,108,153,141,243,255, 0,193, 24, 71,241, 4,170,135, 62,184,240,
+ 7,216, 0, 85, 31,115,113, 79, 68, 89,163, 87, 89,249, 76, 12,217, 51,167, 62,171,140,235,132, 75,189,165,217, 46, 62,242,252,
+215, 29, 34, 76, 82,146, 84,163, 85, 87, 92,253,158,156,233,214,218,102,124,221,197,201, 59,135, 63, 98,111,245, 56,240, 98,188,
+224,119,207, 75,221,171,236, 78, 95,218,174,204, 77,201,231, 92, 50,105,214,171,154, 27,203,152,181,134,226,185, 1, 74, 74,203,
+110, 91,220,220,173,181,208,213, 30, 3, 90,152,216, 56,248, 52, 78,186,204,142,242, 14,173,163,120, 33,228,230,194,202,200, 14,
+151,228, 93, 25, 98,120,113, 71,224, 67, 4,111,238, 77,117, 82, 80, 89,145, 58, 47,206,203,247,122,239,218,142,227,218,251,147,
+104, 74, 93,147, 21,213,173,113,220, 52, 67,204, 44, 22,157,105, 93,118, 91,106, 41,173, 54,174,174,209, 97,166, 98, 67,146,177,
+ 77,134, 18, 4,114, 94, 59,137,232,169,158,231, 95, 30,205,125, 43,223,237, 83,240,139,140,165, 92,134, 49,123,184, 69,180,221,
+236,229,127, 26,162,169, 19,150,134,221,105, 4,241, 67,136, 89,168,235,210,167,148,234, 30,143,149,182, 25,226,152,152, 31,229,
+ 37,140,123,181,226, 7, 34,235,160,175, 42, 19, 14,234,207,193,187,127,219,175, 78,141, 68,203,251,173, 34,209,151,119,125, 48,
+159,137,105,197,227, 41,187,165,166, 17,120, 81,201, 55, 7,147,248, 78, 41, 40,170, 82,210, 9,220,214,189, 10, 99,210, 61, 53,
+ 14,159, 57, 93,147,178,201,240,140, 62,104,135,231, 46, 68,183, 47,176, 29,249,177,128,104,151, 40,142, 91,234, 19,183,247,142,
+203,221,240,251, 22, 31, 19, 27,190, 94,157,133, 37,249, 22, 21, 45, 16, 92,249, 7, 84,180,164,198,113, 68, 53, 64,181, 83,129,
+ 53,232, 70,186,154,206, 61,117, 78, 53,212, 32,102,207,183,129,110,238, 92, 79, 5,159,118, 97,178, 27, 72, 84, 93,150, 98, 20,
+234,156,116,213, 11,228,165,127, 70,129,104, 84, 66, 51,249,151,221,221,183,247,206, 68,164, 26, 33,203, 77,137, 41,250, 21,104,
+140,173,190,205,113,190,180,139,245, 25,127,195, 31,249, 66,233,227, 47,128,120, 38, 47, 79,247,135, 30,244, 51,100,184, 74, 36,
+249, 25,109,250, 18, 9,240, 14, 64,134,225, 27,255, 0,106,186,232,122, 4, 63,252,104, 29,150, 75,240, 11, 47,170, 73,196, 83,
+247,165,230,131,190,163, 48,247,218, 20, 73,152,167,200, 62, 8,242, 86,218,126,210,117,173,210,166,249,113,241, 85,113,116,156,
+124, 85, 63,150, 98,137, 70,117,124,156,249, 2,136, 22,230, 0, 27, 5, 58, 82,179, 79,180,235,231,188,191,148,142,101,116,224,
+162,253,205, 49, 19,145, 66,152,210, 2, 45, 22, 56, 72,106, 50, 70,220,156,224, 83,250,183,208,161, 91, 17,216,156, 21, 82, 32,
+ 70,187, 72,181,166, 74, 69, 29,144,183, 0, 62, 40, 10, 36,125, 85,211,204,203,121, 61,131,248, 34,196,124, 46, 84, 5, 69,110,
+243,147, 77,153,196, 24,208, 92, 15,171,109,130, 35,165, 71,127,175, 90,120, 78, 3,118,160,146,197, 6,249, 62, 56,159,243,178,
+159,226, 22,239,204, 1, 79,217, 64,223,244,168,105,183,107,237, 70,219,162,210,213,198, 76,111,133,192,125,202, 4,235,222,215,
+103, 40,130,189, 70,190, 8,242,131,206,138,182, 79,197, 77, 76, 20, 57,197, 60,225, 50, 45, 55, 7,146, 93, 0,182,122, 19,181,
+126,157, 6,209,162, 45, 51,218, 85,158,174,216, 98,153, 61,167,136,109, 10, 81, 79,179, 89,147,186,112, 43, 82, 2, 51, 10,157,
+207,251, 10,238, 51, 57, 83,108,131,148,112, 74,203, 43,220,127,178,122,141,104, 81,155,187,138,171,118, 59,112, 65,237,177, 26,
+ 7,138,218, 33, 73,251,220,190,242,126,143,110,173, 25,186,169,181,184,169, 87, 27, 75, 18, 69, 20, 7,149, 79,190,158,163,236,
+211,137, 40,237, 8, 47,155, 50, 10,212,211,136, 46, 50, 13, 2,210, 55,167,188,105, 55, 52,198, 42,185,239,239,167,110,218,119,
+231, 29,118, 53,226, 58, 90,190,165, 11,242, 37, 52, 2, 30,108,169, 5, 53, 74,169,191, 90,208,212, 87,195, 90, 24, 29, 82,220,
+ 66,241, 58, 30, 71,129,254,213, 87, 35, 18, 23,134,144,246,243, 92, 37,221,223, 78, 25,167, 98,239, 74,118,238, 21, 38,202,242,
+138, 19, 45,180,168, 52,239, 30,133, 85, 39,138,233,185, 4,239,224, 72, 7, 94,133,129,212,171,202,143,194, 88,243, 31,110, 43,
+151,202,195,157, 7, 94, 29,168, 86, 61,149, 54,194,145, 22, 69, 20,132,154, 37, 96,169, 42,219,219,199,199,219,177,213,210, 85,
+ 80, 89, 89,248,205,225,248,240,147,113,134,148, 60,201,253,180, 16,161, 83,181, 10,122, 3,245, 3,168, 29, 17, 99, 37, 41,174,
+238, 93,241,124,142, 45,226,219,206, 37,205,165,130,135, 16,148,182,107, 95,105,241, 30,243,170, 89, 53,137, 68,133,167,133,121,
+132,193,236, 43,179, 59, 47,235, 90,118, 73,132,177, 29,233, 74, 91,170, 64, 9,117,213,158, 92,147,214,160,239,183, 77,113,121,
+ 61, 52, 9, 21,233,248,157, 68, 89, 16, 85,249,218, 30,246,183,123,136, 45,207,200, 31, 54,165, 4,148, 2, 9,228,122,116,219,
+166,176,242,240,246,133,208, 99,230, 3,170,129,221, 75,189,131,212,149,182,251,216,153, 74,109, 51,225, 71,114, 67,114, 85, 74,
+ 53, 37,176,162,205, 85,227,241, 1, 93, 71, 7,118, 53,177,179,147,162,231,152,229, 99, 74, 0, 57, 63,143, 34,184,187, 19,131,
+113,133,116, 97,137, 73, 45, 63, 1, 10,243, 80,126,242, 93, 46, 20,172, 26,120,133, 10,107,210,228, 1,136, 35,154,241, 91, 30,
+ 50, 32,232, 85,181,141,203,184, 65,156,196,182, 84,124,132, 37,194,231, 93,146,168,197, 0,253, 90,161, 42,193, 26,166,220, 80,
+ 28,187,181,119, 75,245,237,204,134, 85,105, 37, 97,231, 19, 79,219, 65,165,127, 70,174,213,112,132, 64, 64,157,102, 69,212,155,
+ 94, 57, 55, 29,183,185, 9,196,148,184, 10,232,105, 74, 23,208,231,255, 0,105, 90,132,236,220, 83,109, 32, 34,118, 76,142,243,
+ 27, 15,143, 96,109, 42, 75,173, 51, 45, 10, 82,171, 94, 50,184, 32,125, 96, 38,154,140,224, 55, 19,246,226,150,226,147,251,133,
+ 14,227,120,187, 57, 36, 54, 74, 24,226,128,104,119, 67,116, 41, 63,104,213,170,102, 34, 21, 75, 34, 74,172, 46,214,123,163, 81,
+ 67, 41, 73, 73, 87,152, 57, 17,176, 80,116,172,126,189, 92,222, 10, 15,150, 82,127,116,110,146, 98, 97,178, 3,202,225, 49,181,
+180,235, 35,218,243,106,224,138, 15, 29,149,184,212, 37, 38,213, 18,186, 12,228, 34,150,240, 12,102, 82, 75,119,155,138,150,252,
+233, 69, 43, 95, 37, 16, 7, 33,208, 83,192,109, 77, 84,149,142, 87, 83, 78, 56,128,101,117, 98,205,173,134,153, 72, 36,190, 40,
+180,121,135,126, 67,196,215,111,209,165,251,150, 66, 56,130, 68,186,182, 32,193,178,220,123, 93,123,184,222,164,134,154,180, 70,
+143, 46, 50,129, 13,148,121,151, 8,209, 28,162,148,170, 84,135,126,186,104,184,121, 15, 34, 22,103, 83,195,217, 7, 85, 53,237,
+200, 57, 23,150,235, 18, 80,107,178,148,219,203, 82,148, 0,168, 35,137,161, 27,248,141,134,182, 33, 32,185,151, 40,198, 15,219,
+216,183,251,204, 86, 60,146, 32, 50,124,197,238, 82,183,156, 82, 58, 14,148,160, 31,210,119,213,168, 88,200,128, 58,185,187,117,
+149,219,172, 86,168, 24, 6, 28,216, 69,214, 20,199,166,206,144,178, 74,156,121,213, 49,230, 33, 30,208, 2, 64,160,235, 74,141,
+ 91, 5, 25,212, 14,249, 89,203,119, 75,119,112,214,162, 84,212, 87,173,143,131,241,112,144,151, 60,218,130, 42, 40,176,121, 87,
+ 94, 1,245,115,165,145,124, 47,143, 9,176, 62, 35, 71,247, 0,161,111,106, 90,196,238, 14, 79,121,168,140,159,223, 40, 39,233,
+ 42, 35,145,251,117,229,102,151, 37,101,206,198, 83,251,243,152, 57,113,201, 28,136,209,248, 80, 89,183, 70, 64,240,109,150,194,
+ 84, 71,215,160,209, 91,205,251,149,160,126, 21, 51, 35,113,225,252,154,198,131,198, 59,104,105,201, 10,246, 0, 57, 4,253,103,
+ 86,170,172,110,240, 77, 45, 75,173,153,109,239,252,187,136, 4, 54,120,189, 61,110, 45,193,226, 25, 97, 60,135,218,173, 6,208,
+243, 86,171, 12, 16, 78,218, 68,121,220, 85,119,137, 67,248,185,239,161, 8,175, 94, 59,154,126,141, 15, 46, 76, 89, 78, 1,202,
+ 39,112,103,252,183,140,185, 41,161,255, 0,198,174, 69,107, 30,212,160,175,203, 79, 79,112,208, 35,241,104,148,151,114,122,194,
+ 9,255, 0,199,187,142,219, 34, 21,141,106, 39,197, 70,195, 16,126,161,175,101,234, 31,230,251, 35,255, 0, 40, 88, 89,163,250,
+135,237,201, 57,250, 59,202,110, 88,182, 23,220, 86,237,176, 98,221,110, 14,217, 13,229, 54,139,154, 74,227,205, 77,169,207, 53,
+214, 10, 65,169, 82,153,113, 97, 52,232,119,161,166,155, 27, 38,116,213,118,192, 36, 68, 55, 49,224,118,241, 30,208,236,167,211,
+216,200,131,192,133, 95,100,185,255, 0,163, 44,254, 12, 59,175,249,170,119,110,101,207, 91,138, 69,154,247,108,151,120,136,151,
+ 74,190, 52,177, 50,217,205,206, 3,162, 75,173,131, 78,186,195,198,235,253, 59, 36,110, 50,149, 71,176,131, 33,236, 35,151,136,
+ 86, 44,233,129,254, 18,200, 51, 25, 47,162, 28, 22,227, 30, 53,235, 62,184,230, 83,214,225,109, 54,108, 82,203, 42, 8,113, 73,
+ 79, 42, 57, 54,241,229, 37, 40,254,183, 4, 40,211,166,250,177, 46,179,211,235,212, 88,108, 61,145,137, 31,124,153, 48,233,173,
+243, 20,253,219, 78,252,219,253, 88, 99,119,255, 0, 79,150,107, 28, 60, 98,200,212, 72,217, 95,111,172,112, 63, 17,106, 54,183,
+157, 76,228, 58,250,199,152,252,151,226,184, 87, 83, 79,185,211,169, 49,233, 62,162,255, 0, 84,157,148,109, 16, 12,240, 3,185,
+223, 94,100,131,247, 35,228,227, 15, 45,162, 56,106,171,169, 82, 85,252,192,195,134, 40,195, 53, 97, 20,240, 82,142,228,232,187,
+ 86, 26, 38,135,112, 46,231,118,250,255, 0,233,127,185, 87, 4,217,172, 55,195, 18,241,143,100, 79,161, 78, 71,180,223, 97, 5,
+182,211,143,165, 27,134, 95,105,106,105,197, 10,148,131, 95,105, 6,183, 18, 25,152,242,162,101,156,131, 19,217, 33,249, 17,161,
+ 87, 48,239, 16,120,158, 5, 83,243, 63, 43,143, 87,232, 66,127,150,216, 34, 92,173,128,186,227,121, 4, 27,205,161, 86,146,216,
+ 9, 66, 93,249,149,200, 72, 8,161, 42,248,128, 85, 60, 43,182,185, 63,255, 0, 82,207,140,140, 68, 28,118,131, 22,247,186,214,
+172,141,174, 72, 87, 44,124, 27, 8,244,213,218,107,166, 9,134, 93, 35,228, 93,229,202, 24,137,109,203,242, 27, 81, 43,183,193,
+129, 17, 65,223,229,144, 31, 80, 10,119,205,120, 5, 60,224,162, 84, 18, 19, 67,225,209,244, 62,153, 14,149,142,107,220, 39,108,
+190, 98, 56, 0,252, 1,231,222, 86,126,126, 76,100,241,143, 62, 41, 71, 0,199, 37, 95, 93,110,205, 13, 77,183, 58,124,134,160,
+176,228,165,134,153, 74,222,113, 45,165, 78, 45, 91, 37, 32,157,201,233,173, 6, 51,144, 3,154,202,140, 31, 68,213,222, 30,234,
+122,111,244,179,145, 92,123, 91,117,196, 38,119, 39,186,214,254, 81,111, 50, 46,178,228, 89,108,209,228,160, 81, 77,197,105,148,
+ 25, 15, 36, 31,135,154,248,165, 95,121, 59, 17,172,222,163,234, 28,110,159,105,168, 86,108,156, 75, 18, 78,208, 15,112,226,126,
+204,181,171,233,208,128,248,131,159,185,104,186,100, 29,182,205, 61, 47,225,253,214, 95,109,162,246,243,187, 89,117,217,247,173,
+ 54,232, 55, 27,140,191, 59, 27,138,217, 96, 76,113,185,138, 1, 30,124,149, 81,186,163,226, 66,121, 37, 84, 58,222,174,248,228,
+ 99, 70,211, 1, 3, 35,166,167,135,106,169,159, 77,112,136, 17, 12, 79,224,154,125, 49,219,187,120,221,203, 59,205,251,189, 9,
+115,187,127,142,227,179,221,184, 69,142,148,169,229,124,195,205, 70, 30, 87, 50, 0, 88, 73, 81, 65,168,162,168,106, 52, 44,123,
+107,162, 22, 91,104,120, 66, 36,148, 62,157, 72,178,100, 30, 12,144,251,191,217, 9,221,184,180,195,203, 49, 25, 73,191,246,126,
+234,210, 95,199,242,168, 73, 38, 52,166, 92, 95, 32,135,124, 90,125, 35,101,182,186, 16, 65,208,140, 98, 98, 44,132,132,171,151,
+ 9, 14, 7,248, 30,208,149,248,210,168,235,195,181, 65,177,216,159,110,201, 46, 98,232, 86,150,135,148,159,114,254, 18,127, 78,
+170,190,168, 44,133,247, 10,244,187, 61,238, 61,161,147, 69,176,203, 77,159,164,167,146,191, 94,154,138, 92, 19,222,152,201,147,
+ 19,248,142, 84,174,202,183,159,185, 9,212, 98,233,154,155,127,207,173, 60, 90, 91,174, 54,165, 4, 36,154,114, 32, 36,214,149,
+167,142,140, 41,147,110,111,135,243, 83,218, 89,219, 68,185,142, 33,155,133,196, 69,111,104,201,221,103,216,132, 10,157, 70,193,
+170, 28,120, 41, 95,154, 3,168,115, 56,196, 46,234, 59,222,241,204,118,229,203,218,132, 91, 67,106, 63,245,155,166,184,239, 86,
+197,250,128,151,247,171,135,240, 93, 28, 37,240, 71,192, 39,156, 54,212, 49,207,203,247, 23, 75, 0,164, 59,148, 92,230, 57, 94,
+165, 79, 66,142, 43,246,157,116, 93, 5,191, 96,223,250,146,255, 0,150, 43, 59,169,134,140,124, 85,145,233,117, 8,139,223, 44,
+ 77,247,118, 91,139,138,218, 62,176, 73,213,142,139,255, 0,186,135,138, 6, 57,254,164,124, 85,115,221, 67, 14,207,150,189,110,
+114,159,204, 66, 25,157, 32,127, 85,194,209, 0,125,130,186,241, 9,227,153, 88,123, 1, 43,163, 50, 96,171,206,230,230, 95, 63,
+ 13, 94, 73,163,101,177, 25, 38,187, 41,100, 4,147,245,104,118, 84, 31, 69, 16, 85,105, 47, 40,110, 62, 79,243, 44, 31,224,109,
+233, 75, 13, 1,208,168, 10,157, 63,149,161, 86, 4,159, 68,193,135, 52,204,126,216,101,217,116,165, 14,111, 71, 49,153,175, 64,
+165,186, 9,250,205,105,171, 20,196,196,132,172, 96, 16, 85,181, 39,249, 11, 86,224, 54, 22,247,102, 17, 77,128, 47,161, 32,254,
+189, 75,202,209,251,212,124,213,174, 92, 20, 54,233,216, 20,248, 15,118,189,219,106,237, 55,149, 5,235,104, 65, 42,111,167,176,
+233,153, 62,231, 94,109,119,217, 22, 7, 2,155, 36,178, 13, 72, 59,145,169,141, 83,152,171, 35, 7,239, 87,203, 0,219,142, 84,
+ 29,168, 78,129,118, 48,146, 37, 55,152,113, 76,247,140,246,223,122,136,124,202, 18,161,215,111,101, 53, 76, 99, 16, 85,207,220,
+ 9, 5, 90,100,228, 49, 55,230,225, 40, 32,215,127, 16,126,157, 92,172, 16, 21,121,144, 86,168, 55, 20, 73,248,217, 1, 47,138,
+ 5,180,118, 10,250, 43,162, 4, 50,188,207, 76,119, 17,243, 81,255, 0,122, 42, 20,133,117,247,234,109,205, 11, 84,181,115, 75,
+115,219, 81, 67, 69, 18,147,247, 74, 77, 14,147,178,148, 98, 66, 91,201,113, 27, 62,115,105,127, 27,203, 34, 55, 42, 11,232, 45,
+ 56,212,132,213, 43, 7,223,238,246,245, 26,177, 69,210,166, 66, 81, 58,133, 27, 33, 27, 1, 18,224,184, 99,213, 95,166, 92,131,
+211,229,193,204,158,200, 29,155,219, 87,148, 18,203,235, 73,113,112,157,240,106, 65, 3,238,158,137, 95, 67,208,239,215,186,233,
+157, 98, 57, 49,105, 48,144,251,215, 43,157,211,205, 37,199,202,170,236,111,189, 87,107, 1, 13, 64,243, 71,154,120, 56,208, 37,
+ 65, 73,167,184,252, 67,254,148,214,176,177,249, 44,240,153, 87,159, 92,174,110,152,238, 36, 52,253, 0, 83,114, 56,173, 59, 80,
+109,200, 87,169,167,133, 58,248,106, 38, 38, 72,245,219,181, 60,246,131, 34,153, 98,188, 70,141,113, 82,147, 10, 71,152,242, 66,
+ 20,126, 15, 45, 65, 38,128,157,133,117,153,155, 88,229,197,116,157, 47, 52,237, 33,248, 43, 55, 9,239,222, 99,100,238,218,172,
+214,183, 86,213,173, 70,140, 61,204,146,167,128, 11, 88, 34,187, 80, 45, 7,235,214, 46, 70, 56, 49,220,120, 46,175, 7, 59,121,
+ 49, 39,144, 86, 6, 9,221,252,195,182, 94,171, 19, 18,254,231, 59,110, 73, 13, 18,136,169, 82,185,181, 78, 73, 39,161,228, 20,
+ 8,250, 14,178,175,197, 18, 27,187, 22,230, 31, 86,140, 9,131,242, 77,217, 43, 17, 46,185,197,202,247,111,108,181, 26,115,190,
+111,150,161, 66,159, 52, 37,222,158,245, 18,117,211,224,218,124,160,235,207,250,236,132,178, 12,135,243,107,248,171, 3, 0,179,
+181, 58, 19, 74,112, 5, 58,235, 97, 2,189, 1, 82,212, 55,250,180,214,217,180, 58,204,142,170,196,103, 28,129, 49,216,236,166,
+134, 51,213,160,247,151, 21, 95,233,213, 99,105,111, 4, 81, 16,163,100,120, 52, 5, 94,218,142,234, 64,106, 66, 34,241, 52,232,
+174,105, 0,159,169, 90,156, 44, 58,148,165, 0,134, 47, 2,130,148, 73,243,155, 9, 12,169,167, 0,166,252, 28, 79, 26, 87,233,
+ 26, 49,177,208,246, 58,146,215,102,163, 74, 91,241,214,143,137,105, 66,107, 79, 2,221, 18,126,209, 93, 4,228,178,148,105,114,
+171,236,167,177,117,177,186,225,111,248,182, 74,130,144, 5, 57, 56,194,202,105,244,150,247,250,117, 98,188,150, 60, 82,253,184,
+101, 75,230,189,142,114,239,109, 94, 93,119,143,207, 14,182,212,133,125,208,236,158, 28,119, 62, 33, 27,253,127, 70,161,118,120,
+223,177,215, 73,210,250, 25,149, 30,113,209,206,158, 1, 86,157,158,141, 27,184, 87,121,230, 35,129,184,118,194,227,104, 42, 20,
+ 74,139,100,138, 15,111, 74,106, 2,254,212,246,215,183,146,177,236,144, 30, 97, 94, 90, 10, 92,113, 39,204, 42, 38,164, 3, 65,
+211,174,138, 36, 25,213, 98, 20, 47, 83,217,212, 28, 35,182,246,252, 66, 69,192,195,185,223,165,178,169, 17,219,221, 78,219,226,
+165,110,184, 93, 10, 60,120,121,193,162, 57,109, 84,215,168,213,206,154, 53, 50,228,177,122,245,160, 64, 67,153, 46,171,188, 71,
+ 40,141,120,154,220, 12, 97,213, 45,132, 20,243, 75, 68, 18, 58,117, 52, 3, 97, 77,169,236, 30,221,109, 65,202,229,140, 29, 91,
+214,254,233,218,123, 95, 99, 13, 52, 10,178,185,161,216,240, 2,190, 63, 41, 33,178,183,164, 45,103,199,116,165, 63, 73, 35,166,
+174, 82, 20,192,100, 71, 11,184,187,107,191, 67,186, 91, 92,160, 42,101,228, 44,255, 0, 94,156, 8, 63, 78,227,235,213,244,234,
+219,238,211,141, 95,251, 80,251,232, 73, 15,185, 38, 56,113, 0, 1, 64,162,160, 77, 7, 77,233,245,235,204,254,166,211,187, 18,
+ 50,228, 8,252, 84,173, 15, 20,169,216,220, 62, 85,223, 35, 66, 82, 63,133,133, 29,201,143, 44,141,129, 74,171, 67,245,111,175,
+159,108,183, 66,178, 77, 14, 82, 61,250,224,188,139,190, 13,193, 93,126, 88, 56,183, 82,141,246,105, 39,149, 79,247,186,234, 88,
+245,109,175,113, 86,246,232,201,238,240,242,174,121,188, 59, 51, 91, 70,143, 24,220,165, 19,213, 74, 85, 66, 19,244, 36, 13, 66,
+169,128,242,237, 40,219, 24, 33, 57,103,157,145,205,169, 85, 33,169, 34, 44,111,103, 16, 65, 90,135,211,160,217, 38, 42, 99,130,
+105,195, 26,137, 38,208,169,108, 10, 89,173, 69,180, 51,227,205, 73,109,124,143,214,163,170,185, 58,158,242,201, 13, 20, 41, 50,
+ 25,189, 52,215,204,125,240,121,212,248, 32, 26, 39, 67, 14, 2, 32, 26,133,213,151,143,204,126,229,145,101,118, 24,242,187, 97,
+136, 92, 50,107,179, 81,211, 46,101,226, 44,249,142, 22, 99,182,136,172,169, 73,249,132, 38,190, 75, 99,195, 93,193,245,189,164,
+ 63,147, 89, 35, 71, 32,158,238,212, 9,227,194, 69,200,212,167, 76, 51,243, 13,202,109,113,175,119, 91, 38, 3,132, 91,174,150,
+216,174,144,236, 27, 52,150, 9, 14,159, 40,161, 69, 18,194,136, 80, 52, 32, 17, 93, 84,151,175,242,107,151,195, 77, 58,233,242,
+159,212,156, 81, 8,157, 0,117,200,221,202,138,236,171,133,158,219, 29, 52, 17,120, 21, 37, 53, 33, 30,107,157, 7, 34, 79, 74,
+ 13,206,184,218,101,197, 30, 92,150,155,182, 44,244, 11,235,210, 26, 20,122, 37,185,247, 80,186,127,237, 19, 93, 75, 40,250,194,
+ 57,104,194,225, 8, 30,210, 82,144,114,172, 14,217,103, 23, 94,211,247, 69, 25,102, 38,176,205,255, 0, 26,182,176,245,173,213,
+ 10,132, 73,170, 64,228, 58, 16,170, 16,161,226, 42, 52, 44, 12,171, 40,178, 54,192,177,140,156, 21, 61,174, 89,116,236,155, 30,
+ 57,234, 98, 58,251,135,217,166,153,143,220,247, 91, 76,252,183, 5,101,127,196, 51, 33,230,194,220,151,110, 74,183,121,133,169,
+ 85, 41, 77, 84,130,105, 74, 17,175, 89,233,221, 70,174,175, 31, 50,173, 44,254,104,115,241,143,104, 62,240,177,115,112, 76, 73,
+ 49,212, 42,138,245,142,173,155,200,143,112,109, 77, 73, 67,190, 75,205,188,146,133,165, 12,142, 42, 5, 42,161, 4,157,180, 98,
+ 72, 37,249, 44,195, 21,145,108, 75,187,178,136,233, 79,198,165,158, 13,141,201,252, 64,160, 0, 30,225,169,137,178,134,213,111,
+118,235,210,254, 87,120,199,227,187,156,200,141,137, 91,238, 82, 18,213,161,204,133, 95, 46,237,194, 75,160, 33,150, 99,176,170,
+ 56, 66,214, 82, 57, 16, 0, 6,187,244, 51, 24,123, 27,204,144,175,118,145,220, 88,146,120, 0, 21,218,240,231,102,188, 21,123,
+148, 97,119, 28, 70,249,113,196,174, 76, 42, 45,194, 51,203,101,198, 28, 20, 83,101, 3,146,171,170,211, 50,129,219, 45, 8,226,
+170, 24,237,112,156,174,125,209,194,115, 6,172,249, 7,121,112, 27, 62, 97,157,218, 81, 30, 20, 27,253,197,115, 25,125,212, 51,
+ 79, 40, 79,110, 51,137,110, 87, 0, 0,252, 80,106, 58,248,213,239,158, 61,228, 78,234, 99, 57,199,129, 46, 29,187, 91, 73,123,
+ 85,216,103, 74, 33,184,170,247, 44,190,101,253,216,238,196,236,227, 53,116, 59,112,243, 26,102, 35, 45, 32, 55, 30, 44, 72,167,
+203,101,134, 26, 79,194,134,210, 54, 0,123,201,169, 36,232,246,102,202,211,175,246,120, 5, 78,217, 27, 9, 37, 58,246,251, 37,
+137,219,107,141,233,188,146,218,155,190, 9,149, 91,213,106,191,218,212,226,216, 91,145,158,162,137,101,212, 84,161,196,168, 85,
+ 38,135,250, 64,225,124, 12,103, 9,141,208,144,218, 71,113,236,239, 82,197,176,211, 39,237, 76, 23, 75, 35, 30,148, 59,117,101,
+202,187, 11,113,184,221,109, 25,231,203,193,111,182,249,189,181,139,139, 51, 35, 25, 62, 90, 31,121,152,142, 0,162,162,160,134,
+202, 27, 74,150,157,235, 65, 77,115, 89, 66, 93, 2,202,206, 45,178,151,157,255, 0, 74, 81, 5,199,110,135,183, 64,192, 19,174,
+186, 46,138,178, 45,131,145,167,122,253,206,114,110,213, 97,150,245, 61,220,254,212, 95,241,150,158, 82, 24,243, 44,151, 1,242,
+ 47, 73, 74, 11,190, 83,127,204, 24, 95,150,173,191,118, 86, 72, 30,237,105,203,212, 17,174,189,249, 24,179,175, 94, 71, 71,246,
+141, 60, 21, 27,176,107, 7,159,177, 84,153,239,119, 6, 13,124,137,157,224,254,153,111,183,139, 92,134,163, 93, 63,206, 61,192,
+151, 62,117,158, 36,103,210,151, 16,251,208,109,145,153,101,109, 20,169, 52, 91,142,240,223,223,173, 9,117,131, 85, 6,202,241,
+164,204,239, 39, 33,143, 61, 7, 15,106, 81,193,132, 75,179,248,171,143,255, 0, 23,114,222,244,118, 1,120,215,168,124, 91, 45,
+147, 1,233,236, 94,172,143,118,246,195, 8,192,102, 28,104,174, 70, 12,176,137, 15, 50,128,216, 82,213,191,196,118,221, 90, 31,
+ 77,235, 55,228, 82,101,147, 93,146, 18,144, 49,217, 16,192, 51,104,228,126,126, 40,215,208, 44,142,222, 1, 87,152, 53,223,209,
+188, 78,218, 30,235, 70,129,220, 97,130, 77,121, 86,152,151, 73,214,203, 11, 77, 72,144, 13, 86,134, 92, 68,165,160,168,111, 93,
+235,238,212, 50,186,238, 20, 43, 22, 24, 93,180,150, 5,162,207,216,238,168,255, 0,167,192,115, 42,187,245,243,150, 98,189,213,
+238, 94, 5,130,225, 86,187,188, 8,214,156,122, 13,169,181,228,109,176,137, 15, 67,121,229,205,142,248, 17,137, 73, 74,153,127,
+ 99, 65, 81, 74,107,146,245, 63, 82,175, 34,117,217, 24,202, 34, 48, 3,226,103, 35, 82, 14,157,174,173,215, 16, 36, 34, 57, 43,
+147, 41,238, 71,103,123, 81,233,203, 0,237,151,123,241,252,149, 98,251,115,155, 46,196,230, 62,168, 49,155,148, 22, 90, 73, 87,
+ 57,200, 88, 82, 80,144,138,241, 21, 21,214,151, 67,235, 53,225,224, 68,100, 85, 99, 19, 41, 2, 24, 9, 63, 99,241,109, 20,178,
+ 40,141,164, 2,234,196,179,229,221,144,237, 87,119, 44, 97,252, 79, 51,141,150,197,106, 28,251, 60,105, 42,128,164,203, 66,214,
+ 91,103,131, 33,148,184,231, 53, 36,167,225, 59,208,211, 90, 24,189,123, 31, 30,216, 19,143,116,102,117,136, 44,228, 30, 4, 6,
+125, 80, 99,135, 8, 72, 23, 46,168, 94,233,225, 93,218,155,221,140,147, 38,187,227,247, 24, 86, 91,156,217,113,237,142,202, 97,
+ 97,181, 45, 64, 54,196,114,180,213, 1,195,203,238, 86,189,118,215, 15,212,122,101,212,188,205,114,136,145, 44,227,180,232, 60,
+123,149,169, 72,186,174, 61, 67, 88, 47, 88,110, 99,142,246,106,219, 17,233, 25,219,129,184,174,219,217,109,106,144,185,171,123,
+202,242, 82,218,106,162,178,231,194, 5, 42, 78,218,204,167, 6,195, 61,134, 39,123,179, 54,175,193,155,181,210,178, 92,149, 70,
+206, 33,221,139,149,206, 5,154, 38, 63,112,122,247,127,145, 46, 45,154, 35,113,157, 83,147,164, 69,144, 98,190,220,116,129, 85,
+169,183, 18, 80,160,154,208,138,106,216,233,118,153, 70, 34, 5,228, 88,105,197,142,173,224,141, 9,115, 87, 46,125,218, 62,233,
+246,187,176,120,237,131, 48,178, 76,182,202,190,206,252,101, 75, 97,198,146, 28, 8, 83,200,105, 69, 67,169, 9, 38,158,227,167,
+203,233,119, 99, 71,125,144, 49, 14,218,134, 81,222,101, 37, 17,181,219,134, 86,246, 44,120,124,170,153,103, 31, 74,168, 63,120,
+152, 14, 56, 77,127,222,145,245,234,183,144,118, 38,222, 29,144,119,237,194, 74,118, 81, 11,246,131,175,104, 93,184,154,242,171,
+ 2,221, 70,219, 47,192,141, 50,150,228, 58,126, 46,234,106,162, 13, 79,136,223,244,105, 2,136, 36,151,101, 67,151,107,122,173,
+212, 34,187, 17,210,186,152, 46, 19,241, 83,162,229, 87, 8, 77,142,100,173,161,224,116,194, 46,162, 92, 41, 78,100, 40,156,223,
+ 42,213, 52,222,186, 99, 90, 91,202,215, 18,245, 5,151,210,220,147,197,179,183, 47,119,191, 76,202, 92, 81, 39, 67,139,111,153,
+ 79,152,201,217, 15,160,236, 71,176,234, 32,169,131,162,253,137, 97,149, 33, 37,200,166,160,117, 73, 21,167,209,169,104, 82, 50,
+101,189,140, 80,188,146,135,211,191,178,158, 61,116,152,133, 9, 73, 4,205, 59,107,104,200,237, 50,108, 23,200,232,147,106,150,
+218,227,200,142,250, 66,144,235,110, 14, 42, 73, 7, 98, 8,212,171,176,192,130, 11, 16,152,180,131, 16,238,190,123,122,164,244,
+ 65,145,118, 58,254,238,115,134, 54,236,238,215,135, 22,226,184,114, 91,214,182,202, 69, 18,239, 42,169, 73, 43, 39,138,254,128,
+173,247, 61,191, 74,234,241,191,225,158,146, 11,153,205,233,230,162,227, 80, 82, 44, 28,109,230,111,167,204, 30,100,197, 60,182,
+ 22,146, 1, 42,112,172, 2, 7,208, 63,167, 91, 52,220,241,220,121, 15,201,214, 90,182, 98,224, 69,171,172, 8, 60, 63, 22, 19,
+ 2, 84,133,215,143, 34,180,170, 67,149, 35,160,226, 82,145,239,214, 84,111, 22,213, 57, 30,114, 97,238, 13,247,171,120,249, 50,
+168,146, 20,252, 43, 15,184, 74,238, 61,157,203,184,242,155,113, 18, 36,173,197,116,243, 29, 82, 22,163, 83,224, 0, 31,110,170,
+103, 78, 32, 8, 71,128,251,126, 43,123,165,229, 19,190, 82, 61,138,199,238, 5,162, 78, 65, 50, 46,123,143,149,201,114,197, 45,
+183,161, 45,177,187,204,150,190, 69,116,173, 62, 26, 41, 78, 1,253,145,170, 55,197,154,174,100, 63,231,248, 32,195,169,255, 0,
+243, 36,190,135, 69,105, 64,184, 42,254,219, 25, 5, 0, 83,134, 59, 93, 8,169,225,192, 84,125, 35,125, 89,193,183, 67, 30,196,
+186,165,131,205, 12, 92, 48,252,211,166, 5,122, 22,185,108,196,116, 1,229, 45, 14, 16,119,248, 81, 82,173, 15, 34,231,169,207,
+247,128,251,213, 26,239, 1, 59,224,217, 48,151, 53, 41,112,252, 49,202,223, 65,254,207, 58, 83,255, 0, 75, 64,141,158,100,200,
+ 31,109, 2, 61,119, 57, 82,163,100,205,222,239, 7,122,169,132,176,132,146,127,238,212,131,253, 26,208,136,208,248,149, 33,107,
+150, 9,174,229,109,102, 88,121,196, 36,114, 90, 2,200, 3,193, 14,164, 15,209, 93, 74, 58,125,187,145, 12,147,197,166,199, 22,
+ 67,209, 95,160,163,209, 90, 89,167,137, 28, 91,255, 0,237,211, 89,150,205,180, 86,171, 33,208,174,224,225,240, 98,218,231, 76,
+112, 37, 13,180,147, 33,107, 35,238,148,164, 45, 74, 35,232, 70,250, 97,113, 10,237, 53,111,148, 71,105, 3,193,215, 53,250,248,
+133, 11,183, 29,151,176,118,246,203, 41, 8,147,118,136, 39,201,101,154,126, 27,142,213,231, 20, 79,183,226,166,168,244,162,114,
+ 45, 50, 61,171,185,235, 25,112,198,197, 17, 26, 16, 24,123,191,138,231, 30,204,224,152,181,175,178, 17, 50,187,100,132, 12,134,
+228,183, 94,122, 19,124,191, 9, 74, 93, 71,188, 10,158,135, 90, 91,165, 43, 54,142, 14,178,165, 40, 66,141,117, 97,199,189,103,
+165,108,190, 46, 81,122,190,205,186,127, 29, 9, 19, 37, 67,130,107,208, 50,233, 96, 43,225, 0, 80,241, 36,123,181,122,234,200,
+248, 98,126,220, 15,222,176, 33, 51, 40, 9,157, 57,251, 56,254, 9, 39,212,173,178, 22,109,220, 55,166, 93, 10,157,140,182,211,
+ 14, 25, 85, 15,203,180,209, 82,104,138, 1, 74,174,171,250, 78,186,140,106, 5,113,140, 87, 17,153,144,109,153, 37, 11,236,156,
+104, 48,224,127, 40,183, 48,150,174, 12, 59,243, 28,105, 79,152,101,230,194, 92,105, 68,239, 81,186,146,117, 97,153, 85,220,156,
+111,184,211, 17,100,198,146,167, 75,237, 44, 61,228,135, 77, 74, 18,227,117,166,255, 0, 78,173,227, 20,225, 88,125,190,183, 76,
+133, 99,110,231, 36,121,140, 36, 54,226,144,107,186, 67,128,154,125, 0,242,213,192, 84,192, 87, 54, 78,239,200,225, 78,202,121,
+206, 80, 86,166,159, 1, 67,144, 82,147, 85, 0, 65,232, 78,250,243,239,169, 54,109,233,197,187, 71,135, 17,246,252, 20,207, 4,
+ 95,182, 78,197,197, 59, 85, 39, 40,113,138, 38,242,161,104,168, 53, 80, 74,221, 73, 90,171,239, 72, 35, 95, 56,216, 33, 41, 0,
+ 31,241,254, 31,154,175, 49,162,169, 33,226, 82,109,221,216,186,228,179,147,184, 76,146,148,143,217, 21, 9, 66, 71,251, 0,106,
+221,179, 30, 78,208,159,106,103, 84, 32,188,230, 74, 89,168,113,200,105, 97, 43,254,207,203,255, 0,166,186,160,126, 24,199,197,
+ 76,151, 40,125,230,220, 99,225,144,166, 69,175,157,111, 75,173, 60, 61,161,211, 84, 29, 8,106,117,237, 83,228, 17, 75, 52,145,
+100,236,131, 47, 40, 81,215, 88,230,239,189,110, 58,105,250, 52,214,197,236, 80, 26,165,155,141,217,214,166, 61, 17,173,156, 87,
+148,194, 66,125,165, 3,167,219,166,216,227,218,166, 14,169,195, 29,186, 11,119,121,255, 0,154,190, 57,199,178, 91,121,111,208,
+ 41, 17,194, 18, 55,250,244,171,131,192,248,168,147,162,116,180,180,252, 92, 74,232, 57,149, 61,120,149, 29, 32,251, 90, 43,230,
+126,173,255, 0, 70,170, 26,158,207, 4,224,234,191, 18,134, 46,153,105, 10, 28,163, 33,131, 57,110, 30,135,137, 75, 72, 31, 69,
+106,116, 48, 8, 4,247,169, 62,170, 86,101, 53,148,219,211, 53, 63,191,158,250,184, 83,254,238, 49,162, 64,250,193, 58,175, 50,
+ 76,219,177, 72, 29, 82,155,249,107,108,206,186, 74, 38,174, 63,229,181, 95,238, 80, 1,250,245,118,170,255, 0,166,202, 66, 77,
+ 34,172, 44, 62,255, 0,121,199, 96, 14,226, 88,229,187, 7, 36,109, 41, 69,182,108, 85,169,167,155,124,169, 12,165,109,173, 4,
+ 40, 30,187,131,225,170,149, 91, 58,109, 18,129, 32,141, 65, 26, 50, 14,231, 79,119,255, 0,204, 87,188, 81,157,143,108,238, 29,
+171, 29,206, 36,243, 76, 86, 31,202,172,237,187, 45, 13,133,113, 32, 72,130,184,206,255, 0,214, 39,223, 93,118,244,250,215, 50,
+ 49,254,160,133,140, 63,154, 58,251,195, 38, 52, 66,124, 66, 59, 99,245,245,220, 72, 25, 43,144,112, 92, 99, 22,197,229,197, 73,
+ 42,159,100,179, 3, 48, 45,105, 34,137,122,224,236,130,158,187,208, 13, 66, 94,184,204, 58, 66, 21,214,123, 99, 29,127,248,137,
+ 79, 28,106,227,168, 9, 62,235,220, 60,203, 48,238, 12, 59,167,112,110,178,110,217, 28,184,160,187, 42,115,203,113,202,165,238,
+105,167, 35,240,129, 93,128,160, 30, 26,228,250,150, 93,185,100,206,201, 25, 72,158, 36,235,197, 79,118,138,211, 71,171,220, 23,
+ 45,125,155, 63,169, 59, 19,183, 43,140,104,237,252,190, 91, 96,113,182, 47, 1,144,133, 33, 40,146,219,255, 0,129, 39, 97, 64,
+165, 20,170,158, 39,174,187, 44, 63, 88,143, 42, 49,204,129,155, 6,223, 29, 39,237,125, 37,227,162,167,126, 52, 45,212,232, 84,
+244,221,253, 29,205,197,154,186, 53,155,222, 19,108,101,228, 40,199, 93,128, 42, 77, 93, 7,138, 10,147, 39,203,174,253,107, 77,
+106,207,212, 61, 47,105, 38,201,248,108,215,241,101, 76,116,237,126,111,185,109,183,122,149,236,207,109,164,124,199,105, 48,133,
+ 94,109,178,147,242,151,107,190, 96,240,249,201, 49,100, 5, 52,236,120,204,195, 62, 84,110, 84,251,245, 90,168,119,214,108,189,
+119, 77, 82, 3, 26,157,195,153,153,212,142, 96, 1,164,124,117,240, 87, 41,194,132, 65,230,164,103,125,237,244,197,139,227,241,
+115,140,115, 16,187,223,238, 43,242, 93,106,213,118,184,199,110,218,202,151, 84,130,234,163, 53,231, 58,134,213,213, 36,142, 93,
+ 9,223, 86, 71,172,112,132,119, 66,153,153,118, 72,141,160,251, 53, 40,112,192,172, 30,107,127,101,187,213,117,238,198, 93,147,
+101, 89,165,201,136,221,194,149,111,184,218,177,137,107, 82, 33,198,131, 54, 76, 16,196,102, 99,169,100, 37,129,192, 45,166,205,
+118, 82,134,245, 53, 56,125, 35,170, 89,151,159,101,214,200, 11,103, 92,163, 2,116, 2, 76,192, 14,205, 28, 14,243,218,180, 36,
+ 88, 48, 75, 29,186,198, 51, 94,223,219, 59,137,127,239,173,178, 85,151, 3,185,217,227, 91,161, 91,239, 76,185, 29,115,239, 73,
+158,202,225, 63, 25,167,130, 84,224,142, 16,226,148,226, 65, 72, 73, 34,191, 22,150, 62, 53,152, 24,185, 49,200,137,132,108,131,
+ 1, 45, 12,166,227,105, 0,241,109, 73, 35, 64, 60, 80,184,151, 66,187,171,154,246,227,181,253,237,177,247, 54,211,106,159,112,
+238,123, 88, 61,154,200,202,221,159, 29,171, 59,113,238,152,131, 80, 28, 83,241,209, 29, 78,188, 18,210,193,242,203,169, 5, 96,
+ 26,237, 77,109, 89,213, 42,197,157,100, 2,108, 52, 64,113, 27,117,172, 13, 67, 57, 96,120, 63, 20,199, 64,129,247,163,183,247,
+142,227,225, 61,184,190, 89, 59, 91,126,205,146,172, 61,134,219,190, 88,101,202,110, 43, 47,174,231, 62,140, 45,182, 34, 62,146,
+180,115, 11, 53, 88, 52, 80,219,199, 86,243,177, 13,148, 82,212, 78,207,233,128,224,150, 26,157, 56, 20, 32, 78,133, 24,237,229,
+255, 0, 24,179,122, 97,237,167, 98,115,151,144,199,111,114,185, 57, 4, 57,146,151,210,217,114, 98,100,119,109,247, 3, 77,192,
+105,213, 20,185,237,105,107, 29,105,172,234,115, 33, 60, 74, 40,176,255, 0, 78,221,238,127,186, 65,142,217,123, 9, 99,255, 0,
+116,148,199,130,135,234, 63, 9,149,109,245, 31, 2,215,122,109, 31,230, 11, 94, 53,137,218,100, 33,181,165,196,180,244,123, 35,
+ 13,190,148,173, 4,164,209, 66,149, 26,161,234,140,105, 66,216,214,120,198,186,193,241, 17, 1, 63,203,170,106,238,215,112,251,
+ 77,147,119, 43,183, 29,190,239, 20,196,177,131, 89, 49,123, 30,111,143,184,134,220,121, 78,220,160, 94,174,144,166,219, 19,228,
+133,112,249,232,156, 71, 37, 10, 5,180,138,144, 43,173,204,139,177,252,138, 40,188,180, 69,113,144,239, 34, 82,120,247,110, 31,
+120, 10, 80, 44, 55, 20,237,146,119,121, 57, 15,123,112,120,247,105,173, 70,238,134, 89,219,187,163,214,153,139, 90, 90, 67, 55,
+ 73, 23, 9,197,180,165,197, 16, 26, 43,109,110,180,217, 36, 81, 74, 72,219, 87,229,105,182,218,236,145, 2,201,227,144, 15, 6,
+148,140,189,220,192,246, 32,111,118, 61,161, 38,250, 97,237,167,112,123, 87, 51,185, 57, 7,119,109,178,172, 88,214, 64,149, 71,
+183, 91,239, 44,185, 21, 83,166,199,156,211,241, 23, 25,151,194, 84,231,149,197,107,243, 18, 8, 74,107,190,251,225, 67, 14,204,
+106, 46, 23, 68,198, 18,131, 0, 67, 60,156, 24,176, 60, 91, 82,227,128,241, 77, 81, 32,234,150, 61, 71,223,237, 24,230, 71, 47,
+243, 23, 68,248,238, 74,176,217, 29,198,161, 91,252,212, 25, 8,238, 24,254, 2, 50,203, 36,215,136,138,240,184,212,126,211,100,
+107, 86,168,196,196,103,147,241,109,102,255, 0,213,249, 93,188, 62, 63, 20,243, 58,238,251, 58,175, 61, 35, 79,122,249,152,250,
+ 67,140,218,188,197,124,230, 90,244,175,139,226, 9, 69,245,229, 18,175,101,125,250, 47, 78,128,223,135,220,101,255, 0, 49, 68,
+140,180, 9,231,190,184, 60,155,126,109,104,157, 43,183,247,124, 99, 22,199,219, 17, 88,188, 93,158,144,184,111,184,227, 74, 88,
+142,218, 94,142,210,121,209, 21,168, 89,216, 29,181,205,117, 78,158, 97, 16,124,153, 86, 31,137, 36,131,221,192, 33,212, 91, 86,
+101, 71, 57,150,219,127,206, 77, 99, 73, 82,127,157,243,118,250,183,106, 43,231,252,203,106, 66,107,215,238,114, 26,169,229, 33,
+239,230,139, 66,152,138,242, 89, 0, 10, 84,248,107,212,200, 93,200, 42,114, 3,211,169,199,100, 13,209,198,190, 58, 4,149,218,
+117, 82, 95,132,251,209, 2, 82,215, 57, 93, 58,208, 19,160,155, 24,178,180, 41,112,233, 54,251,109,114, 60,149, 57, 48, 81, 71,
+ 98,144, 52,104,149, 2, 16,112,195, 75, 81,161,167,133, 14,136,162,202,124, 12,108,186,158,109,238,131,236,246,233,196,148, 10,
+139,123,199, 28, 75,100,245, 3,167,184,233, 50, 97, 37,231, 27,189,220, 44, 14,152,210, 83,231, 91, 87,247,210,170,236, 61,218,
+129, 10,103, 80,157, 45, 55, 8,164,165,232,138,229, 25, 91,208,210,169,211,119, 32,144, 81,246, 28,140,235, 99,153,161, 61, 8,
+241,211, 58, 66, 74, 53,194,214, 31, 77, 87,186, 15,143,244,141, 50,146, 76,201,237,172, 60,181, 71,154,216, 83, 42,170, 22, 20,
+ 42,149, 37, 66,132, 43,218, 8,212,132,136, 69, 17,112,185,235,186, 30,137, 45,232,203, 99,102,216, 57, 13,227,234, 90,140,235,
+109,127,115,231, 18, 92,117,165,117, 35,226, 36,164,238, 54,166,219, 13,177,215, 13,120,179,131, 19, 38, 13,236,102,247, 46,123,
+ 59,167,236,121,195,135, 48,134, 90,113, 52, 93,103,170, 83,232,226,245,245,229, 62,210,127,238,109,173, 44,148,147,253,244,167,
+144,247, 13, 23,247,194,144, 53,248,106,137, 39,190, 71,226,251,150, 67,128,166, 91, 48,232,247,153,230,229,229, 2,134, 18,234,
+ 88, 36,159,251, 82, 5, 41,208,208, 15,209,173, 76, 2, 4, 6,225,171, 63,187,248,171, 21, 25, 1,161,103,226,172, 8,248, 99,
+ 22, 46,213,186,133, 14, 50,215, 41, 17,154, 20,241, 45, 17, 65,244, 21,157,114, 55,117, 97, 62,160,102,120, 8,159,185,207,224,
+170,202, 95, 18, 51,108,198,100, 47,229,173, 41,218, 71,226, 44,159, 2,164,188,161, 95,253, 16,117,119, 15,168,136, 87,101,146,
+ 58,150, 8,177, 58, 41,214,203,123,211,110, 87,187,187, 9, 41,143, 21,135,139,105, 30,222, 9, 74,126,211,172, 44,174,173,182,
+160, 15, 29,192,251,245, 85,165, 97, 0, 35, 16, 30, 85,142, 59, 98,164,201, 12,128,247,188,169,126, 97, 31,250, 35, 86,125, 59,
+157,230,239,127,230,151,220,223,246,171, 20, 89,197, 75,192,146,251,243,228,186, 62,231, 47,189,239, 90,130,104, 62,218,107,107,
+ 3,168,249,166, 93,196,253,229, 18,137,147, 39, 86,197,142, 75, 75,150, 10,205, 91, 84,114, 21,244, 7, 58,253,180,214,173,147,
+ 15, 17,218,181, 4,157, 31,194,239,203,185,101, 12,217,153, 63,135, 26, 34,156, 81,254,175,199,230, 15,210,128, 62,189,100,100,
+216,249, 17,135,115,159,122, 44, 39,171, 41,189,205,201, 33,162,223, 34, 52,162, 3, 82, 89, 92,111,136, 2, 57,165, 69, 73,168,
+ 52,235, 90, 29, 89, 52,238,211,187,242, 90, 20,228,249, 82,140,135, 34, 15,185,124,249,245, 67,117,201,179,158,224, 46, 21,221,
+255, 0,152,110, 50,209, 25,143, 43,102,188,148, 10,113, 72, 36,248,143,175, 93, 7, 72,233,145,199,175, 77, 95, 85, 14,181,214,
+236,205,155,144,192,112, 8, 31,109,109, 87, 8, 88,231,249,106, 68, 32,211,172,189,205, 50, 5, 40,228,114,225,113,160, 0, 63,
+212, 32, 31,126,158,140, 34, 46,220,120, 42,121, 93, 75,250, 27, 65,212,176, 41,179, 14,237,102, 29,219,167, 20,172,110, 48,138,
+221,201,110, 57, 42,138, 89, 1,111, 41,117, 82, 66,137, 9,169,222,131,109, 95, 24,240, 18, 37,181, 89, 54,103, 90, 99,177,244,
+101, 85,103,246,144,205,241, 50, 37, 10, 56,211,129,192,149, 10,133,182,208,162,135,212, 77,117,163, 21,154,120,161, 24,109,173,
+171, 85,230,109,185,128, 62, 97, 77,249,241, 92, 35,122, 52,162,217, 3,237, 65,250,180, 80, 82, 77,115,237,239, 62,195, 83, 25,
+221,180, 36, 18,131,247,144,165, 43,137,175,214, 72,209,170, 44, 84,199, 5, 98,226, 83, 18,188,124,218,155,160, 90, 19,228, 1,
+253,223,132,159,180,164,106,224, 68,138,181,115,209,110,129,219, 23,227,135,146,169,110,121, 73,224,175,235,133, 5, 5,167,233,
+223, 94,109,245, 19,168, 85,251, 59, 41, 60,116, 35,216, 71,240, 83,145,209, 74,178,220, 98, 92,240,124,127, 16, 97, 92,154, 97,
+212, 63, 41, 35,250,196,128, 63, 70,250,249,230, 33,135, 30,104, 27,117, 74, 87,171,236, 73, 89,195,246,242,105, 34,232,250,226,
+164,142,136,224,107,255, 0,217,166,136, 67,251,147,148, 93,108, 54,229,241,213, 32,113,146,211, 97,147, 94,164,150,233,170,246,
+ 23,144, 9,130,139, 30, 1,184, 98,242,216, 77, 21,248,204, 23, 1,240,105,182,247, 52,250,116,237,167,181, 78, 42, 37,228, 9,
+ 93,177,151,107,104, 85,184,171,101,164,211,192, 33, 64,254,163,166,254,103, 67,175,129, 65, 27,181, 9,121,172, 55, 80,159,225,
+106,183,214, 79, 79,133, 73, 74, 1,250,107,167, 18,104,165, 41, 50, 37, 25,224,229,147, 40,200, 73,254, 34, 91,141,219,219, 62,
+ 52, 83,129, 10,253, 3, 77, 19,183, 69, 18,116, 78, 39, 34,249, 92, 9,187,179,198,137, 74,208,195, 3,218, 91, 4, 40,254,157,
+ 6,248, 17,170,157,106,124,123,138, 45, 56, 11, 87,103, 5, 37, 77,110, 52, 80,127,177,230,149,210,191, 86,130, 96,229,148,164,
+ 89, 12,187,228,173, 92, 31,135,109,108,242, 22,232,143,200, 80, 31,215,120,154, 87,237,208,124,159,136,158,213, 8, 77,210, 37,
+250,224,184,239, 71,180, 71, 5, 82,214,150,157,116,255, 0, 93,215,135, 36,164,123,128, 63,110,174,215, 95,195,237, 82,148,149,
+181,118,158,187, 42,108,216, 74, 13, 95,138,207,205, 72,166,244, 91, 77, 21,212,253, 10, 93,126,173,103,194,189,198, 94, 41,171,
+208, 58, 68,190,201,242,115,116,207,148, 43, 18, 3, 63, 54, 66,142,197,213,167,154,107,245,144,117,116, 67,225,251,148,129, 71,
+ 59,117,127, 14, 94,219,145, 48,254, 59,229, 78, 57, 83,189,120,147,168, 66, 12,233,229, 38, 9,141,236,149, 82, 59,132,101, 50,
+121, 34, 43, 65,148,251,191,103, 85,132, 30, 35,237,205, 14,103,225, 65,251,161,147,124,190, 83, 61,166,206,205, 49, 21, 27, 31,
+ 20,182, 65,253, 90,149,149,188, 83, 68,175,219, 22,102,127,200, 2, 50, 85, 95, 48,165,100,215,254,233, 98,159,163, 84,242,170,
+213,187, 83,199, 84,223,100,204,218,103, 5, 14,184,170,149,184,210,145,239, 90, 93,228,127, 64,212,171,161,167,236, 82,220,193,
+ 21,133,144, 68,145,142, 92,237,106, 93, 88, 20,126, 56, 62, 9,115,226,167,212,161,171,130,157,164,160, 11, 18,246, 47,157, 52,
+225,184,218, 95, 85, 25,144,242, 82, 69,118,175, 47, 15,183, 74, 52,252, 33, 72,216,160,156,133,236,117, 23,187, 11,198,143,173,
+176, 15,210,149,115, 7,235, 7, 80,157, 27,136, 61,137,161, 98, 25, 31, 39, 67,215,134,227,180, 0, 92,198,130,222, 3,197, 92,
+ 10, 15,234,174,141, 8,109,114,144,155,169, 24, 54, 55, 18,213,219, 58,206, 79, 59,164, 25,111, 58,223, 61,213,229,201, 87,196,
+ 5,125,155, 29, 66,235,141,135,142,173,249, 35,237,100, 53,203,132,133,134,154, 88,229, 56,185, 68, 32,117, 42, 41, 52, 26,161,
+135, 47, 54,226, 7, 0, 20,140, 88, 38, 60, 58,244,214, 9,136,220, 47, 82,156,224,243, 44, 21, 45,207,234,184,180,147,246,131,
+174,174, 21,105,185, 85,180, 59, 5, 83,118,123, 34, 85,247,186, 43,186, 58,121, 71,141,230, 72,117,100,215,112,159,135, 79, 94,
+ 62,226,231,216,154,226,225,130,126,236,133,222, 70,117,222, 11,166, 95, 33, 85,136,218, 85, 9,133, 87,225, 8, 65, 53, 3,235,
+214,141,181,129, 31, 5, 86,216,237,128, 87, 71,110,111, 49,155,185, 93, 46,140,209, 48, 97, 33,108,182,125,171,112,213, 71,236,
+ 26,198,166, 62,100,143,138, 91,118,133,195,221,230,201, 81,149,247, 51, 42,204, 37, 30, 86, 91,123,142,147,253, 87, 29, 72, 8,
+ 66, 62,211,173, 12,129,182, 81,132,120,149, 98,170,159, 84,251,232,222,198,156, 66,207,115,238,253,249, 52,118, 59, 11, 44,115,
+240, 90,128, 32, 10,232,205,203,177, 14,228,235,137,228, 46,197,197, 39,101, 23, 21, 86,235,120,144, 86, 10,137,173, 20,162,175,
+111,213,160,249, 90,185, 80,169,202,169,219,203, 95, 61,203,123, 36,243, 63, 21, 50,217,100, 10,254,202,155,115,225,253, 26, 35,
+243,228,137,228,150,101,120, 70,253,194,186,244,253,175,167,199, 94,147,201,119, 60,211, 62, 43,247, 81,215,253,190,159, 94,171,
+216,175, 87,197, 54,197,234, 63,119,227,247, 58,244,214,124,214,165, 92, 18,119,113, 63,237, 63,117,227,244,253, 90, 45, 8, 54,
+241,228,171, 89,127,188,253,175,246, 58,234,236, 85,116,197,139,125,193,251,222,158, 63,211,169, 32,216,166, 93, 58, 31,233,254,
+157, 50, 9,226,128, 72,253,249,251,158, 29,122,105, 73, 88, 10,110, 59,254, 35,246,252, 62,231,221,208,212, 36,154, 89,255, 0,
+ 10, 62,255, 0, 95,233,240,211,132, 50,140,199,255, 0, 12,122,248,125,254,186,100,229, 46,228,255, 0,124,253,223,246,180,145,
+160,180, 91, 63,225,223,111,222,233,167, 40, 86,240, 42,139,200,191,243, 50,239,251,191,248,112,255, 0, 13,251,175,240,135,252,
+ 63,246,127,215,161,102,127,237,127,241,143, 14, 92,123,151, 27,145,243, 31, 30, 92, 22, 97, 63,225,218,251,189,126,175,221, 47,
+254,131, 93,108,248, 89,224,127, 17,195,185, 88,237, 79, 89,183,252,191, 96,233,255, 0, 20, 79,251,191, 15,191,239,246,107,204,
+ 97,254,124,188, 15,224, 85, 14,104,196, 79,248,243,125, 62,243,189, 58,253,213,244,254,157,106,127,244,231,143, 17,249,162,242,
+ 82,112, 47,248,117,247,238,254,237,191,189,254,240,127,208,235, 7,170,255, 0,150,127,255, 0, 65,248, 21, 78,238, 8,124,239,
+241,206,127,117, 95,127,167, 81,211,250, 53,169,233,127,150, 72,180,240, 70,176, 95,248,113,255, 0,120,143,185,215,247,254, 62,
+255, 0,245,107, 71,162,124,151,127,196, 63, 53,115, 31,243, 79,182,239,241, 67,239,127,133, 95,221,251,191,188, 58,235,191,234,
+215,224, 22,144,226,138,118,183,254,120,185,253,255, 0,240,200,251,159,123,239,163,166,178,191,250,249,248,126,124,146,167,231,
+ 42, 63,126,255, 0,225,223,183,254, 44,126,239,232, 71, 79,118,186, 44,110, 42,205,139,142,115,207,249,194, 23,238,255, 0,111,
+239,245,251,171,251,254,255, 0,245,235,165,198,249, 22,101,223, 50, 43,143,126,241,207,220,255, 0,135,107,175,247, 19,211,223,
+168,215,197, 14,212, 67, 38,255, 0, 3, 27,239,126,241, 31,119,233,209,163,197, 83, 85, 87,115,255, 0,196, 35,238,125,233, 63,
+127,239,116, 61,125,222,223,126,172,197, 13, 40, 99, 63,243, 20, 95,247,111,125,254,191,117, 29,125,222,221, 18, 41,147,107,253,
+ 36,253,239,221,253, 95,124,104,213,169,197, 58, 96,255, 0,191,253,158,175,253,255, 0,247,205,255, 0,208,106,224,224,137, 20,
+225,220,255, 0,248,122,191,123,209,158,191,119,199,166,190,114,245,215,254,250,127, 55,183,135, 20, 67,242,163,189,175,255, 0,
+139, 55,215,238, 39,239,244,251,154,243,168,254,106, 3,130, 66,127,255, 0, 52,227,253,255, 0,241,238,253,238,189, 23,247,125,
+254,221, 90, 28, 20, 39,193, 89, 10,255, 0,156, 93,233,213, 29, 63,221,248,234,164,190, 98,163,205, 66,237,247,248,107,167,254,
+232,191,191,247,122,126,189, 18,206, 72,144,224,160, 64,255, 0,147,111,255, 0,239, 83,247,186,125, 90,132,184,133, 24,240, 43,
+ 93,155,247, 35,238,254,241,158,159,188,253,218,122,127,103,219,239,212,121,168, 77, 71, 63,249,126,255, 0, 79,241,235,251,157,
+ 63,124,175,189,239,246,105,127,214, 30, 31,146,105,112, 68, 50, 79,249, 15, 31,251,255, 0,188,127,238,254,235,160,251,222,253,
+ 62,127,201, 47,103,228,137, 74, 97,238, 7,254, 90, 99,189,127,120,207,238,190,239,220,241,208, 97,196,166,179,229, 74,152,199,
+252,126,243,247,191,118,143,222,245,251,135,167,187,217,169, 79,128, 85,234,228,160,202,255, 0,205,187, 55,220,253,252, 31,222,
+126,239,247, 77,245,254,141, 22, 31, 34, 45,138,197,191,255, 0,230,237,235,175,248, 73, 31,189,250,254,231,187,219,238,213, 28,
+110, 30,210,159,249,125,137, 75, 63,255, 0,141, 93,255, 0,223,163,251,189, 19,215,251, 58,178, 56, 39,151, 37, 23, 6,255, 0,
+153,191,237, 63,107,175, 78,159,179,167, 60, 19, 91,193, 50,226,127,243, 60,207,189,213,191,222,117,251,250,174, 62, 80,163, 63,
+145, 4,238,159,252,199,119,251,221, 83,215,175,221, 58,126, 67,197, 60,120,251, 22,188,123,254, 84, 79,222,253,202,190,142,186,
+ 6, 71,249,138,112, 76,145,127,228,139,111,239, 63,120,231,221,233,211,199,223,162,199,230, 81, 60,209,107,103,248, 4,126,243,
+247, 13,125,223,247,170,251,222,237, 89,146,170,149,109, 63,241, 89, 95,189,253,248,251,159,222, 29, 52,255, 0,202,151, 52,193,
+221,143,249,166, 71, 79,240,140,125,207,189,251,179,247,253,255, 0,234,208,199,202,158, 60, 82,238, 29,255, 0, 59, 90,186,253,
+199, 63,121,247,116,231,129, 78, 57, 39,145,210, 71,222,253,159,185,251,174,169,235,239,213, 8,113, 42,244,190, 80,150, 45,127,
+243,181,179,167,248,159,219,251,159,113,127,167, 85,186, 87,249,146, 72,242, 67,251,181,255, 0,147,215, 31,223,127,139, 63,185,
+235,225,247,255, 0,179,174,198,191,144,120, 32,219,199,218,144, 61, 63,127,130,190,125,239,184,191,187,251,207,187,171,180,124,
+195,130, 1,252,213,157,233,111,254, 85,153,244,189,251,159,222,253,243,215,223,237,213,110,167,254, 76,184,251, 20,167,243,127,
+ 21,103, 98, 31,249,125,115,251,255, 0,125,223,185,247,254,224,251,222,253,102,116,127,179,168,228,241, 92, 91,148,127,229,157,
+219,238,255, 0,198, 87,211,239,254,248,126,255, 0,221,171,215,127,239,191,240,243,241, 86, 7,200,174,187,127,255, 0,243,119,
+143,239, 19,254, 19,238,127,235, 61,218,179,143,198,106,174, 71, 0,188, 79,255, 0,148,237,223,188,251,136,253,223,221,251,222,
+ 30,255, 0,110,167,103,228,165,140,170,132,127,139,115,255, 0,122,111,251,223,113,127,167, 64, 63, 40,251,118, 43, 43,255,217,
};
-
diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c
index 8d6bf830dbf..3ceb8aae1ae 100644
--- a/source/blender/src/usiblender.c
+++ b/source/blender/src/usiblender.c
@@ -641,10 +641,6 @@ int BIF_read_homefile(int from_memory)
BKE_reset_undo();
BKE_write_undo("original"); /* save current state */
- /* if from memory, need to refresh python scripts */
- if (from_memory) {
- BPY_path_update();
- }
return success;
}
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
index f9ff8f61b97..0b3519efdbd 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
@@ -33,7 +33,6 @@
#include <windows.h>
#endif
#ifdef __APPLE__
-# define GL_GLEXT_LEGACY 1
#include <OpenGL/gl.h>
#else
#include <GL/gl.h>
diff --git a/source/gameengine/BlenderRoutines/mac_compat_glext.h b/source/gameengine/BlenderRoutines/mac_compat_glext.h
deleted file mode 100644
index 0ec676963b1..00000000000
--- a/source/gameengine/BlenderRoutines/mac_compat_glext.h
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef __mac_compat_glext_h_
-#define __mac_compat_glext_h_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define APIENTRYP *
-# define GL_GLEXT_LEGACY 1
-# include <OpenGL/gl.h>
-
-//#if GL_ARB_shader_objects
-typedef char GLcharARB;
-typedef void *GLhandleARB;
-//#endif
-
-//#if GL_ARB_vertex_buffer_object
-typedef long GLintptrARB;
-typedef long GLsizeiptrARB;
-//#endif
-
-
-// GL_ARB_multitexture
-typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
-typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
-
-//GL_ARB_shader_objects
-typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (unsigned int obj);
-typedef unsigned int (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname);
-typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (unsigned int containerObj, unsigned int attachedObj);
-typedef unsigned int (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
-typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (unsigned int shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
-typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (unsigned int shaderObj);
-typedef unsigned int (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
-typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (unsigned int containerObj, unsigned int obj);
-typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (unsigned int programObj);
-typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (unsigned int programObj);
-typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (unsigned int programObj);
-typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
-typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
-typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
-typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
-typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (unsigned int obj, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (unsigned int obj, GLenum pname, GLint *params);
-typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (unsigned int obj, GLsizei maxLength, GLsizei *length, void *infoLog);
-typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (unsigned int containerObj, GLsizei maxCount, GLsizei *count, unsigned int *obj);
-typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (unsigned int programObj, const void *name);
-typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (unsigned int programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
-typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (unsigned int programObj, GLint location, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (unsigned int programObj, GLint location, GLint *params);
-typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (unsigned int obj, GLsizei maxLength, GLsizei *length, void *source);
-
-
-//GL_ARB_vertex_shader
-typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (unsigned int programObj, GLuint index, const GLcharARB *name);
-typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (unsigned int programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
-typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (unsigned int programObj, const GLcharARB *name);
-
-
-//GL_ARB_vertex_program
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
-typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
-typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
-
-#define GL_FRAGMENT_SHADER 0x8B30
-#define GL_COMPILE_STATUS 0x8B81
-#define GL_LINK_STATUS 0x8B82
-#define GL_VALIDATE_STATUS 0x8B83
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/source/gameengine/GamePlayer/common/SConscript b/source/gameengine/GamePlayer/common/SConscript
index 6ff3ae10735..944fcea3a51 100644
--- a/source/gameengine/GamePlayer/common/SConscript
+++ b/source/gameengine/GamePlayer/common/SConscript
@@ -33,7 +33,6 @@ incs = ['.',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
- '#source/gameengine/BlenderRoutines',
'#source/gameengine/Rasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
diff --git a/source/gameengine/GamePlayer/ghost/SConscript b/source/gameengine/GamePlayer/ghost/SConscript
index bd37777031e..cc2d7de8002 100644
--- a/source/gameengine/GamePlayer/ghost/SConscript
+++ b/source/gameengine/GamePlayer/ghost/SConscript
@@ -27,7 +27,6 @@ incs = ['.',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
- '#source/gameengine/BlenderRoutines',
'#source/gameengine/Rasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
index a18ed038f35..05eb73b315f 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
@@ -35,6 +35,7 @@
# include <GL/gl.h>
#elif defined(__APPLE__)
+# define __glext_h_
# define GL_GLEXT_LEGACY 1
# include <OpenGL/gl.h>
# include <OpenGL/glu.h>
@@ -51,8 +52,8 @@
#ifdef WIN32
# include <GL/glext.h>
#elif defined(__APPLE__)
-# include "mac_compat_glext.h"
# include <OpenGL/glext.h>
+# undef __glext_h_
# else
# include <GL/glext.h>
# endif
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
index f2d2e977668..b4d5b8b71de 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
@@ -6,7 +6,7 @@ if env['WITH_BF_GLEXT'] == 1:
sources = env.Glob('*.cpp') #'RAS_GLExtensionManager.cpp RAS_ListRasterizer.cpp RAS_OpenGLRasterizer.cpp RAS_VAOpenGLRasterizer.cpp'
-incs = '. #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer #source/gameengine/BlenderRoutines'
+incs = '. #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer'
incs += ' ' + env['BF_OPENGL_INC']
env.BlenderLib ( 'bf_oglrasterizer', Split(sources), Split(incs), [], libtype=['game','player'], priority=[40, 120] )
diff --git a/source/gameengine/Rasterizer/SConscript b/source/gameengine/Rasterizer/SConscript
index ff79a5d97b8..c71e371fedc 100644
--- a/source/gameengine/Rasterizer/SConscript
+++ b/source/gameengine/Rasterizer/SConscript
@@ -7,7 +7,7 @@ if env['WITH_BF_GLEXT'] == 1:
env['CPPFLAGS'].append('-DWITH_GLEXT')
-incs = '. #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/BlenderRoutines'
+incs = '. #source/kernel/gen_system #intern/string #intern/moto/include'
if env['OURPLATFORM']=='win32-vc':
cflags = []
diff --git a/tools/Blender.py b/tools/Blender.py
index 30e9979cf9a..92ee1e3e6ec 100644
--- a/tools/Blender.py
+++ b/tools/Blender.py
@@ -121,6 +121,9 @@ def setup_staticlibs(lenv):
]
libincs += Split(lenv['BF_OPENEXR_LIBPATH'])
libincs += Split(lenv['BF_FFMPEG_LIBPATH'])
+
+ if lenv['WITH_BF_FREESTYLE']:
+ libincs += Split(lenv['BF_LIB3DS_LIBPATH'])
if lenv['WITH_BF_INTERNATIONAL']:
libincs += Split(lenv['BF_GETTEXT_LIBPATH'])
@@ -160,12 +163,14 @@ def setup_syslibs(lenv):
syslibs += Split(lenv['BF_OPENEXR_LIB'])
if lenv['WITH_BF_FFMPEG']:
syslibs += Split(lenv['BF_FFMPEG_LIB'])
+ if lenv['WITH_BF_FREESTYLE']:
+ syslibs += Split(lenv['BF_LIB3DS_LIB'])
syslibs += Split(lenv['BF_SDL_LIB'])
if not lenv['WITH_BF_STATICOPENGL']:
syslibs += Split(lenv['BF_OPENGL_LIB'])
if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw','linuxcross'):
syslibs += Split(lenv['BF_PTHREADS_LIB'])
-
+
syslibs += Split(lenv['LLIBS'])
return syslibs
@@ -457,7 +462,8 @@ class BlenderEnvironment(SConsEnvironment):
program_list.append(prog)
if lenv['OURPLATFORM']=='darwin':
lenv['BINARYKIND'] = binarykind
- lenv.AddPostAction(prog,Action(AppIt,strfunction=my_appit_print))
+ if progname != "swig":
+ lenv.AddPostAction(prog,Action(AppIt,strfunction=my_appit_print))
return prog
def Glob(lenv, pattern):
diff --git a/tools/btools.py b/tools/btools.py
index 51367d6bd42..deab2e687b6 100755
--- a/tools/btools.py
+++ b/tools/btools.py
@@ -66,6 +66,7 @@ def validate_arguments(args, bc):
'BF_FANCY', 'BF_QUIET',
'BF_X264_CONFIG',
'BF_XVIDCORE_CONFIG',
+ 'BF_WITH_BF_FREESTYLE', 'BF_FREESTYLE', 'BF_FREESTYLE_SRC', 'BF_SWIG', 'BF_SWIG_LIB', 'BF_LIB3DS', 'BF_LIB3DS_LIB', 'BF_LIB3DS_LIBPATH', 'BF_LIB3DS_INC'
]
arg_list = ['BF_DEBUG', 'BF_QUIET', 'BF_CROSS', 'BF_UPDATE',
@@ -236,6 +237,17 @@ def read_opts(cfg, args):
('BF_SOLID_INC', 'Solid include path', ''),
('BF_WINTAB', 'WinTab base dir', ''),
('BF_WINTAB_INC', 'WinTab include dir', ''),
+
+ (BoolOption('WITH_BF_FREESTYLE', 'Use Freestyle if true', 'true')),
+ ('BF_FREESTYLE', 'Freestyle base path', ''),
+ ('BF_FREESTYLE_SRC', 'Freestyle source path', ''),
+ ('BF_SWIG', 'SWIG base path', ''),
+ ('BF_SWIG_LIB', 'SWIG library', ''),
+ ('BF_LIB3DS', 'lib3ds base path', ''),
+ ('BF_LIB3DS_LIB', 'lib3ds library', ''),
+ ('BF_LIB3DS_LIBPATH', 'lib3ds library path', ''),
+ ('BF_LIB3DS_INC', 'lib3ds include path', ''),
+
##
##WITH_BF_NSPR = 'true'
##BF_NSPR = $(LCGDIR)/nspr