[
  {
    "path": ".gitignore",
    "content": "*.o\n*~\n.deps/\nconfig.h\nconfig.h.in\nconfig.log\nconfig.status\nconfigure\nconfigure.scan\ndepcomp\ninstall-sh\nmakerscanner\nmissing\nMakefile\naclocal.m4\nautom4te.cache\nautoscan.log\nstamp-h1\nMakefile.in\ncompile\nbin\ngmon.out"
  },
  {
    "path": "AUTHORS",
    "content": "Andrew Barry <abarry@makerscanner.com>\nOriginal Version, 0.1, 0.2, 0.3\n\n2008-2010\n\n"
  },
  {
    "path": "ActiveStereo.cbp",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n<CodeBlocks_project_file>\n\t<FileVersion major=\"1\" minor=\"6\" />\n\t<Project>\n\t\t<Option title=\"ActiveStereo\" />\n\t\t<Option pch_mode=\"2\" />\n\t\t<Option compiler=\"gcc\" />\n\t\t<Build>\n\t\t\t<Target title=\"Debug\">\n\t\t\t\t<Option output=\"bin/Debug/ActiveStereo\" prefix_auto=\"1\" extension_auto=\"1\" />\n\t\t\t\t<Option object_output=\"obj/Debug/\" />\n\t\t\t\t<Option type=\"0\" />\n\t\t\t\t<Option compiler=\"gcc\" />\n\t\t\t\t<Option projectLinkerOptionsRelation=\"2\" />\n\t\t\t\t<Compiler>\n\t\t\t\t\t<Add option=\"-pg\" />\n\t\t\t\t\t<Add option=\"-g\" />\n\t\t\t\t</Compiler>\n\t\t\t\t<Linker>\n\t\t\t\t\t<Add option=\"-pg\" />\n\t\t\t\t</Linker>\n\t\t\t</Target>\n\t\t\t<Target title=\"Release\">\n\t\t\t\t<Option output=\"bin/Release/ActiveStereo\" prefix_auto=\"1\" extension_auto=\"1\" />\n\t\t\t\t<Option object_output=\"obj/Release/\" />\n\t\t\t\t<Option type=\"0\" />\n\t\t\t\t<Option compiler=\"gcc\" />\n\t\t\t\t<Option projectLinkerOptionsRelation=\"2\" />\n\t\t\t\t<Compiler>\n\t\t\t\t\t<Add option=\"-O2\" />\n\t\t\t\t</Compiler>\n\t\t\t\t<Linker>\n\t\t\t\t\t<Add option=\"-s\" />\n\t\t\t\t</Linker>\n\t\t\t</Target>\n\t\t</Build>\n\t\t<Compiler>\n\t\t\t<Add option=\"-Wall\" />\n\t\t\t<Add option=\"`wx-config --cflags`\" />\n\t\t\t<Add option='-DPIXMAPS_DIR=&quot;&quot;' />\n\t\t\t<Add directory=\"/usr/include/opencv/\" />\n\t\t</Compiler>\n\t\t<Linker>\n\t\t\t<Add option=\"`wx-config --libs`\" />\n\t\t\t<Add option=\"`pkg-config --libs opencv`\" />\n\t\t</Linker>\n\t\t<Unit filename=\"ActiveStereoApp.cpp\" />\n\t\t<Unit filename=\"ActiveStereoApp.h\" />\n\t\t<Unit filename=\"ActiveStereoMain.cpp\" />\n\t\t<Unit filename=\"ActiveStereoMain.h\" />\n\t\t<Unit filename=\"Cameras.cpp\" />\n\t\t<Unit filename=\"Cameras.h\" />\n\t\t<Unit filename=\"CaptureThread.cpp\" />\n\t\t<Unit filename=\"CaptureThread.h\" />\n\t\t<Unit filename=\"DistanceToReferenceDialog.cpp\" />\n\t\t<Unit filename=\"DistanceToReferenceDialog.h\" />\n\t\t<Unit filename=\"IndividualPixels.h\" />\n\t\t<Unit filename=\"PointCloud.cpp\" />\n\t\t<Unit filename=\"PointCloud.h\" />\n\t\t<Unit filename=\"PointCloudPoint.cpp\" />\n\t\t<Unit filename=\"PointCloudPoint.h\" />\n\t\t<Unit filename=\"ScanStatus.cpp\" />\n\t\t<Unit filename=\"ScanStatus.h\" />\n\t\t<Unit filename=\"ScanThread.cpp\" />\n\t\t<Unit filename=\"ScanThread.h\" />\n\t\t<Unit filename=\"camview.cpp\" />\n\t\t<Unit filename=\"camview.h\" />\n\t\t<Unit filename=\"wxsmith/ActiveStereoframe.wxs\" />\n\t\t<Unit filename=\"wxsmith/DistanceToReferenceDialog.wxs\" />\n\t\t<Extensions>\n\t\t\t<code_completion />\n\t\t\t<envvars />\n\t\t\t<lib_finder disable_auto=\"1\" />\n\t\t\t<wxsmith version=\"1\">\n\t\t\t\t<gui name=\"wxWidgets\" src=\"ActiveStereoApp.cpp\" main=\"ActiveStereoFrame\" init_handlers=\"necessary\" language=\"CPP\" />\n\t\t\t\t<resources>\n\t\t\t\t\t<wxFrame wxs=\"wxsmith/ActiveStereoframe.wxs\" src=\"ActiveStereoMain.cpp\" hdr=\"ActiveStereoMain.h\" fwddecl=\"0\" i18n=\"1\" name=\"ActiveStereoFrame\" language=\"CPP\" />\n\t\t\t\t\t<wxDialog wxs=\"wxsmith/DistanceToReferenceDialog.wxs\" src=\"DistanceToReferenceDialog.cpp\" hdr=\"DistanceToReferenceDialog.h\" fwddecl=\"0\" i18n=\"1\" name=\"DistanceToReferenceDialog\" language=\"CPP\" />\n\t\t\t\t</resources>\n\t\t\t</wxsmith>\n\t\t\t<debugger />\n\t\t</Extensions>\n\t</Project>\n</CodeBlocks_project_file>\n"
  },
  {
    "path": "ActiveStereo.depend",
    "content": "# depslib dependency file v1.0\n1228979223 source:/home/abarry/programs/ActiveStereo/ActiveStereoApp.cpp\n\t\"ActiveStereoApp.h\"\n\t\"ActiveStereoMain.h\"\n\t<wx/image.h>\n\n1228979223 /home/abarry/programs/ActiveStereo/ActiveStereoApp.h\n\t<wx/app.h>\n\n1282051479 /usr/include/wx-2.8/wx/app.h\n\t\"wx/event.h\"\n\t\"wx/build.h\"\n\t\"wx/init.h\"\n\t\"wx/intl.h\"\n\t\"wx/palmos/app.h\"\n\t\"wx/msw/app.h\"\n\t\"wx/motif/app.h\"\n\t\"wx/mgl/app.h\"\n\t\"wx/dfb/app.h\"\n\t\"wx/gtk/app.h\"\n\t\"wx/gtk1/app.h\"\n\t\"wx/x11/app.h\"\n\t\"wx/mac/app.h\"\n\t\"wx/cocoa/app.h\"\n\t\"wx/os2/app.h\"\n\t\"wx/univ/theme.h\"\n\n1282051479 /usr/include/wx-2.8/wx/event.h\n\t\"wx/defs.h\"\n\t\"wx/cpp.h\"\n\t\"wx/object.h\"\n\t\"wx/clntdata.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/cursor.h\"\n\t\"wx/thread.h\"\n\t\"wx/dynarray.h\"\n\n1282051479 /usr/include/wx-2.8/wx/defs.h\n\t\"wx/platform.h\"\n\t\"wx/features.h\"\n\t\"wx/version.h\"\n\t\"wx/dlimpexp.h\"\n\t\"wx/debug.h\"\n\t<stddef.h>\n\t<sys/types.h>\n\t<unistd.h>\n\t\"wx/msw/winundef.h\"\n\n1282051479 /usr/include/wx-2.8/wx/platform.h\n\t<stddef.h>\n\t<AvailabilityMacros.h>\n\t<unistd.h>\n\t\"wx/mac/carbon/config_xcode.h\"\n\t\"wx/setup.h\"\n\t\"wx/chkconf.h\"\n\t\"wx/msw/wince/libraries.h\"\n\t\"wx/msw/libraries.h\"\n\t\"wx/msw/gccpriv.h\"\n\t<AvailabilityMacros.h>\n\n1282051479 /usr/lib/wx/include/gtk2-unicode-release-2.8/wx/setup.h\n\n1282051479 /usr/include/wx-2.8/wx/chkconf.h\n\t\"wx/palmos/chkconf.h\"\n\t\"wx/msw/wince/chkconf.h\"\n\t\"wx/msw/chkconf.h\"\n\t\"wx/mac/chkconf.h\"\n\t\"wx/os2/chkconf.h\"\n\t\"wx/mgl/chkconf.h\"\n\t\"wx/dfb/chkconf.h\"\n\t\"wx/motif/chkconf.h\"\n\t\"wx/x11/chkconf.h\"\n\t\"wx/univ/chkconf.h\"\n\n1282051479 /usr/include/wx-2.8/wx/features.h\n\n1282051479 /usr/include/wx-2.8/wx/version.h\n\t\"wx/cpp.h\"\n\n1282051479 /usr/include/wx-2.8/wx/cpp.h\n\n1282051479 /usr/include/wx-2.8/wx/dlimpexp.h\n\n1282051479 /usr/include/wx-2.8/wx/debug.h\n\t<assert.h>\n\t<limits.h>\n\t\"wx/wxchar.h\"\n\n1282051479 /usr/include/wx-2.8/wx/wxchar.h\n\t\"wx/platform.h\"\n\t\"wx/dlimpexp.h\"\n\t<stdio.h>\n\t<stdarg.h>\n\t<sys/types.h>\n\t<wchar.h>\n\t<wcstr.h>\n\t<stdlib.h>\n\t<widec.h>\n\t<ctype.h>\n\t<memory.h>\n\t<stddef.h>\n\t<stddef.h>\n\t<string.h>\n\t<ctype.h>\n\t<tchar.h>\n\t<ctype.h>\n\t<ctype.h>\n\t<stdio.h>\n\t<wctype.h>\n\t<stdio.h>\n\t<stdio.h>\n\t<ctype.h>\n\t<string.h>\n\t<stdio.h>\n\t<time.h>\n\t<time.h>\n\t<string.h>\n\n1282051479 /usr/include/wx-2.8/wx/object.h\n\t\"wx/memory.h\"\n\t\"wx/xti.h\"\n\t\"wx/msw/msvcrt.h\"\n\n1282051479 /usr/include/wx-2.8/wx/memory.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/msgout.h\"\n\t<stddef.h>\n\n1282051479 /usr/include/wx-2.8/wx/string.h\n\t\"wx/defs.h\"\n\t<ctype.h>\n\t<stdio.h>\n\t<string.h>\n\t<stdarg.h>\n\t<limits.h>\n\t<string.h>\n\t<stdio.h>\n\t<stdarg.h>\n\t<limits.h>\n\t<stdlib.h>\n\t<strings.h>\n\t<StringMgr.h>\n\t\"wx/wxchar.h\"\n\t\"wx/buffer.h\"\n\t\"wx/strconv.h\"\n\t\"wx/beforestd.h\"\n\t<string>\n\t\"wx/afterstd.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/iosfwrap.h\"\n\n1282051479 /usr/include/wx-2.8/wx/buffer.h\n\t\"wx/wxchar.h\"\n\t<stdlib.h>\n\n1282051479 /usr/include/wx-2.8/wx/strconv.h\n\t\"wx/defs.h\"\n\t\"wx/wxchar.h\"\n\t\"wx/buffer.h\"\n\t\"typeinfo.h\"\n\t<stdlib.h>\n\t\"wx/fontenc.h\"\n\n1282051479 /usr/include/wx-2.8/wx/fontenc.h\n\n1282051479 /usr/include/wx-2.8/wx/beforestd.h\n\n1282051479 /usr/include/wx-2.8/wx/afterstd.h\n\t\"wx/msw/winundef.h\"\n\n1282051479 /usr/include/wx-2.8/wx/arrstr.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/dynarray.h\"\n\n1282051479 /usr/include/wx-2.8/wx/dynarray.h\n\t\"wx/defs.h\"\n\t\"wx/beforestd.h\"\n\t<vector>\n\t<algorithm>\n\t\"wx/afterstd.h\"\n\n1282051479 /usr/include/wx-2.8/wx/iosfwrap.h\n\t<iostream.h>\n\t<iosfwd>\n\t\"wx/msw/winundef.h\"\n\n1282051479 /usr/include/wx-2.8/wx/msgout.h\n\t\"wx/defs.h\"\n\t\"wx/wxchar.h\"\n\n1282051479 /usr/include/wx-2.8/wx/xti.h\n\t\"wx/defs.h\"\n\t\"wx/memory.h\"\n\t\"wx/flags.h\"\n\t\"wx/string.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/log.h\"\n\t\"wx/intl.h\"\n\t<typeinfo>\n\t\"wx/dynarray.h\"\n\n1282051479 /usr/include/wx-2.8/wx/hashmap.h\n\t\"wx/string.h\"\n\t<unordered_map>\n\t<tr1/unordered_map>\n\t<ext/hash_map>\n\t<hash_map>\n\t<stddef.h>\n\n1282051479 /usr/include/wx-2.8/wx/log.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/arrstr.h\"\n\t<time.h>\n\t\"wx/dynarray.h\"\n\t\"wx/iosfwrap.h\"\n\t\"wx/generic/logg.h\"\n\t\"wx/cocoa/log.h\"\n\n1282051480 /usr/include/wx-2.8/wx/generic/logg.h\n\n1282051479 /usr/include/wx-2.8/wx/intl.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/fontenc.h\"\n\n1282051479 /usr/include/wx-2.8/wx/clntdata.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/vector.h\"\n\n1282051479 /usr/include/wx-2.8/wx/vector.h\n\t\"wx/defs.h\"\n\n1282051480 /usr/include/wx-2.8/wx/gdicmn.h\n\t\"wx/defs.h\"\n\t\"wx/list.h\"\n\t\"wx/string.h\"\n\t\"wx/fontenc.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/math.h\"\n\n1282051479 /usr/include/wx-2.8/wx/list.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/beforestd.h\"\n\t<algorithm>\n\t<iterator>\n\t<list>\n\t\"wx/afterstd.h\"\n\n1282051479 /usr/include/wx-2.8/wx/math.h\n\t\"wx/defs.h\"\n\t<math.h>\n\t<float.h>\n\n1282051480 /usr/include/wx-2.8/wx/cursor.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/cursor.h\"\n\t\"wx/msw/cursor.h\"\n\t\"wx/motif/cursor.h\"\n\t\"wx/gtk/cursor.h\"\n\t\"wx/gtk1/cursor.h\"\n\t\"wx/x11/cursor.h\"\n\t\"wx/mgl/cursor.h\"\n\t\"wx/dfb/cursor.h\"\n\t\"wx/mac/cursor.h\"\n\t\"wx/cocoa/cursor.h\"\n\t\"wx/os2/cursor.h\"\n\t\"wx/utils.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/cursor.h\n\t\"wx/object.h\"\n\n1282051479 /usr/include/wx-2.8/wx/utils.h\n\t\"wx/object.h\"\n\t\"wx/list.h\"\n\t\"wx/filefn.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/longlong.h\"\n\t\"wx/platinfo.h\"\n\t<direct.h>\n\t<dirent.h>\n\t<unistd.h>\n\t<stdio.h>\n\n1282051479 /usr/include/wx-2.8/wx/filefn.h\n\t\"wx/list.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/msw/wince/time.h\"\n\t\"wx/msw/private.h\"\n\t<time.h>\n\t<sys/types.h>\n\t<sys/stat.h>\n\t<sys/types.h>\n\t<utime.h>\n\t<sys/stat.h>\n\t<unistd.h>\n\t<stat.h>\n\t<unistd.h>\n\t<unix.h>\n\t<process.h>\n\t\"wx/os2/private.h\"\n\t<direct.h>\n\t<io.h>\n\t<unistd.h>\n\t<unistd.h>\n\t<dirent.h>\n\t<direct.h>\n\t<dos.h>\n\t<io.h>\n\t<direct.h>\n\t<dos.h>\n\t<io.h>\n\t<io.h>\n\t<unistd.h>\n\t<dir.h>\n\t<dir.h>\n\t<unix.h>\n\t<fcntl.h>\n\t<sys/types.h>\n\n1282051479 /usr/include/wx-2.8/wx/longlong.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t<limits.h>\n\t\"wx/iosfwrap.h\"\n\n1282051479 /usr/include/wx-2.8/wx/platinfo.h\n\t\"wx/string.h\"\n\n1282051479 /usr/include/wx-2.8/wx/thread.h\n\t\"wx/defs.h\"\n\n1282051479 /usr/include/wx-2.8/wx/build.h\n\t\"wx/version.h\"\n\n1282051479 /usr/include/wx-2.8/wx/init.h\n\t\"wx/defs.h\"\n\t\"wx/wxchar.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/app.h\n\n1237420234 /home/abarry/programs/ActiveStereo/ActiveStereoMain.h\n\t<wx/sizer.h>\n\t<wx/menu.h>\n\t<wx/textctrl.h>\n\t<wx/spinctrl.h>\n\t<wx/panel.h>\n\t<wx/button.h>\n\t<wx/frame.h>\n\t<wx/statusbr.h>\n\t<wx/numdlg.h>\n\t<wx/ffile.h>\n\t\"SetConfig.h\"\n\t\"SetHorz.h\"\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"Cameras.h\"\n\t\"ScanThread.h\"\n\n1282051480 /usr/include/wx-2.8/wx/sizer.h\n\t\"wx/defs.h\"\n\t\"wx/window.h\"\n\n1282051480 /usr/include/wx-2.8/wx/window.h\n\t\"wx/event.h\"\n\t\"wx/list.h\"\n\t\"wx/cursor.h\"\n\t\"wx/font.h\"\n\t\"wx/colour.h\"\n\t\"wx/region.h\"\n\t\"wx/utils.h\"\n\t\"wx/intl.h\"\n\t\"wx/validate.h\"\n\t\"wx/palette.h\"\n\t\"wx/accel.h\"\n\t\"wx/access.h\"\n\t\"wx/palmos/window.h\"\n\t\"wx/msw/window.h\"\n\t\"wx/motif/window.h\"\n\t\"wx/gtk/window.h\"\n\t\"wx/gtk1/window.h\"\n\t\"wx/x11/window.h\"\n\t\"wx/mgl/window.h\"\n\t\"wx/dfb/window.h\"\n\t\"wx/mac/window.h\"\n\t\"wx/cocoa/window.h\"\n\t\"wx/os2/window.h\"\n\t\"wx/univ/window.h\"\n\n1282051480 /usr/include/wx-2.8/wx/font.h\n\t\"wx/defs.h\"\n\t\"wx/fontenc.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/palmos/font.h\"\n\t\"wx/msw/font.h\"\n\t\"wx/motif/font.h\"\n\t\"wx/gtk/font.h\"\n\t\"wx/gtk1/font.h\"\n\t\"wx/x11/font.h\"\n\t\"wx/mgl/font.h\"\n\t\"wx/dfb/font.h\"\n\t\"wx/mac/font.h\"\n\t\"wx/cocoa/font.h\"\n\t\"wx/os2/font.h\"\n\n1282051480 /usr/include/wx-2.8/wx/gdiobj.h\n\t\"wx/object.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/font.h\n\n1282051480 /usr/include/wx-2.8/wx/colour.h\n\t\"wx/defs.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/variant.h\"\n\t\"wx/generic/colour.h\"\n\t\"wx/msw/colour.h\"\n\t\"wx/motif/colour.h\"\n\t\"wx/gtk/colour.h\"\n\t\"wx/gtk1/colour.h\"\n\t\"wx/generic/colour.h\"\n\t\"wx/generic/colour.h\"\n\t\"wx/x11/colour.h\"\n\t\"wx/mac/colour.h\"\n\t\"wx/cocoa/colour.h\"\n\t\"wx/os2/colour.h\"\n\n1282051479 /usr/include/wx-2.8/wx/variant.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/list.h\"\n\t\"wx/cpp.h\"\n\t\"wx/datetime.h\"\n\t\"wx/db.h\"\n\t\"wx/iosfwrap.h\"\n\n1282051479 /usr/include/wx-2.8/wx/datetime.h\n\t\"wx/defs.h\"\n\t<time.h>\n\t\"wx/msw/wince/time.h\"\n\t<limits.h>\n\t\"wx/longlong.h\"\n\t\"wx/dynarray.h\"\n\n1282051480 /usr/include/wx-2.8/wx/db.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t<afxwin.h>\n\t\"wx/msw/wrapwin.h\"\n\t\"sql.h\"\n\t\"sqlext.h\"\n\t\"odbcinst.h\"\n\t\"wx/msw/wrapwin.h\"\n\t\"wx/isql.h\"\n\t\"wx/isqlext.h\"\n\t<sql.h>\n\t<sqlext.h>\n\t<sql.h>\n\t<sqlext.h>\n\t\"wx/object.h\"\n\n1282051479 /usr/include/wx-2.8/wx/isql.h\n\n1282051479 /usr/include/wx-2.8/wx/isqlext.h\n\t\"wx/isql.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/colour.h\n\n1282051481 /usr/include/wx-2.8/wx/region.h\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/palmos/region.h\"\n\t\"wx/msw/region.h\"\n\t\"wx/gtk/region.h\"\n\t\"wx/gtk1/region.h\"\n\t\"wx/x11/region.h\"\n\t\"wx/mgl/region.h\"\n\t\"wx/dfb/region.h\"\n\t\"wx/mac/region.h\"\n\t\"wx/cocoa/region.h\"\n\t\"wx/os2/region.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/region.h\n\n1282051480 /usr/include/wx-2.8/wx/validate.h\n\t\"wx/defs.h\"\n\t\"wx/event.h\"\n\n1282051480 /usr/include/wx-2.8/wx/palette.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/palmos/palette.h\"\n\t\"wx/msw/palette.h\"\n\t\"wx/motif/palette.h\"\n\t\"wx/generic/paletteg.h\"\n\t\"wx/x11/palette.h\"\n\t\"wx/mgl/palette.h\"\n\t\"wx/mac/palette.h\"\n\t\"wx/os2/palette.h\"\n\n1282051481 /usr/include/wx-2.8/wx/generic/paletteg.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\n1282051480 /usr/include/wx-2.8/wx/accel.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/generic/accel.h\"\n\t\"wx/msw/accel.h\"\n\t\"wx/motif/accel.h\"\n\t\"wx/gtk/accel.h\"\n\t\"wx/gtk1/accel.h\"\n\t\"wx/mac/accel.h\"\n\t\"wx/generic/accel.h\"\n\t\"wx/os2/accel.h\"\n\n1282051480 /usr/include/wx-2.8/wx/generic/accel.h\n\n1282051481 /usr/include/wx-2.8/wx/gtk/accel.h\n\t\"wx/generic/accel.h\"\n\n1282051480 /usr/include/wx-2.8/wx/access.h\n\t\"wx/defs.h\"\n\t\"wx/variant.h\"\n\t\"wx/msw/ole/access.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/window.h\n\t\"wx/dynarray.h\"\n\n1282051480 /usr/include/wx-2.8/wx/menu.h\n\t\"wx/defs.h\"\n\t\"wx/list.h\"\n\t\"wx/window.h\"\n\t\"wx/menuitem.h\"\n\t\"wx/univ/menu.h\"\n\t\"wx/palmos/menu.h\"\n\t\"wx/msw/menu.h\"\n\t\"wx/motif/menu.h\"\n\t\"wx/gtk/menu.h\"\n\t\"wx/gtk1/menu.h\"\n\t\"wx/mac/menu.h\"\n\t\"wx/cocoa/menu.h\"\n\t\"wx/os2/menu.h\"\n\n1282051480 /usr/include/wx-2.8/wx/menuitem.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/univ/menuitem.h\"\n\t\"wx/palmos/menuitem.h\"\n\t\"wx/msw/menuitem.h\"\n\t\"wx/motif/menuitem.h\"\n\t\"wx/gtk/menuitem.h\"\n\t\"wx/gtk1/menuitem.h\"\n\t\"wx/mac/menuitem.h\"\n\t\"wx/cocoa/menuitem.h\"\n\t\"wx/os2/menuitem.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/menuitem.h\n\t\"wx/bitmap.h\"\n\n1282051480 /usr/include/wx-2.8/wx/bitmap.h\n\t\"wx/string.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/colour.h\"\n\t\"wx/variant.h\"\n\t\"wx/palmos/bitmap.h\"\n\t\"wx/msw/bitmap.h\"\n\t\"wx/x11/bitmap.h\"\n\t\"wx/gtk/bitmap.h\"\n\t\"wx/gtk1/bitmap.h\"\n\t\"wx/x11/bitmap.h\"\n\t\"wx/mgl/bitmap.h\"\n\t\"wx/dfb/bitmap.h\"\n\t\"wx/mac/bitmap.h\"\n\t\"wx/cocoa/bitmap.h\"\n\t\"wx/os2/bitmap.h\"\n\t\"wx/generic/mask.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/bitmap.h\n\n1282051481 /usr/include/wx-2.8/wx/gtk/menu.h\n\n1282051480 /usr/include/wx-2.8/wx/textctrl.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/ioswrap.h\"\n\t\"wx/x11/textctrl.h\"\n\t\"wx/univ/textctrl.h\"\n\t\"wx/msw/wince/textctrlce.h\"\n\t\"wx/msw/textctrl.h\"\n\t\"wx/motif/textctrl.h\"\n\t\"wx/gtk/textctrl.h\"\n\t\"wx/gtk1/textctrl.h\"\n\t\"wx/mac/textctrl.h\"\n\t\"wx/cocoa/textctrl.h\"\n\t\"wx/os2/textctrl.h\"\n\n1282051480 /usr/include/wx-2.8/wx/control.h\n\t\"wx/defs.h\"\n\t\"wx/window.h\"\n\t\"wx/univ/control.h\"\n\t\"wx/palmos/control.h\"\n\t\"wx/msw/control.h\"\n\t\"wx/motif/control.h\"\n\t\"wx/gtk/control.h\"\n\t\"wx/gtk1/control.h\"\n\t\"wx/mac/control.h\"\n\t\"wx/cocoa/control.h\"\n\t\"wx/os2/control.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/control.h\n\n1282051479 /usr/include/wx-2.8/wx/ioswrap.h\n\t<iostream.h>\n\t<iostream>\n\t\"wx/msw/winundef.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/textctrl.h\n\n1282051481 /usr/include/wx-2.8/wx/spinctrl.h\n\t\"wx/defs.h\"\n\t\"wx/spinbutt.h\"\n\t\"wx/generic/spinctlg.h\"\n\t\"wx/msw/spinctrl.h\"\n\t\"wx/os2/spinctrl.h\"\n\t\"wx/gtk/spinctrl.h\"\n\t\"wx/gtk1/spinctrl.h\"\n\t\"wx/generic/spinctlg.h\"\n\t\"wx/mac/spinctrl.h\"\n\t\"wx/generic/spinctlg.h\"\n\n1282051481 /usr/include/wx-2.8/wx/spinbutt.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/event.h\"\n\t\"wx/univ/spinbutt.h\"\n\t\"wx/msw/spinbutt.h\"\n\t\"wx/motif/spinbutt.h\"\n\t\"wx/gtk/spinbutt.h\"\n\t\"wx/gtk1/spinbutt.h\"\n\t\"wx/mac/spinbutt.h\"\n\t\"wx/cocoa/spinbutt.h\"\n\t\"wx/os2/spinbutt.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/spinbutt.h\n\n1282051480 /usr/include/wx-2.8/wx/generic/spinctlg.h\n\t\"wx/textctrl.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/spinctrl.h\n\n1282051480 /usr/include/wx-2.8/wx/panel.h\n\t\"wx/generic/panelg.h\"\n\n1282051480 /usr/include/wx-2.8/wx/generic/panelg.h\n\t\"wx/window.h\"\n\t\"wx/containr.h\"\n\n1282051479 /usr/include/wx-2.8/wx/containr.h\n\n1282051480 /usr/include/wx-2.8/wx/button.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/button.h\"\n\t\"wx/msw/button.h\"\n\t\"wx/motif/button.h\"\n\t\"wx/gtk/button.h\"\n\t\"wx/gtk1/button.h\"\n\t\"wx/mac/button.h\"\n\t\"wx/cocoa/button.h\"\n\t\"wx/os2/button.h\"\n\t\"wx/palmos/button.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/button.h\n\n1282051480 /usr/include/wx-2.8/wx/frame.h\n\t\"wx/toplevel.h\"\n\t\"wx/univ/frame.h\"\n\t\"wx/palmos/frame.h\"\n\t\"wx/msw/frame.h\"\n\t\"wx/gtk/frame.h\"\n\t\"wx/gtk1/frame.h\"\n\t\"wx/motif/frame.h\"\n\t\"wx/mac/frame.h\"\n\t\"wx/cocoa/frame.h\"\n\t\"wx/os2/frame.h\"\n\n1282051481 /usr/include/wx-2.8/wx/toplevel.h\n\t\"wx/window.h\"\n\t\"wx/iconbndl.h\"\n\t\"wx/palmos/toplevel.h\"\n\t\"wx/msw/toplevel.h\"\n\t\"wx/gtk/toplevel.h\"\n\t\"wx/gtk1/toplevel.h\"\n\t\"wx/x11/toplevel.h\"\n\t\"wx/mgl/toplevel.h\"\n\t\"wx/dfb/toplevel.h\"\n\t\"wx/mac/toplevel.h\"\n\t\"wx/cocoa/toplevel.h\"\n\t\"wx/os2/toplevel.h\"\n\t\"wx/motif/toplevel.h\"\n\t\"wx/univ/toplevel.h\"\n\n1282051480 /usr/include/wx-2.8/wx/iconbndl.h\n\t\"wx/dynarray.h\"\n\t\"wx/gdicmn.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/toplevel.h\n\n1282051481 /usr/include/wx-2.8/wx/gtk/frame.h\n\n1282051480 /usr/include/wx-2.8/wx/statusbr.h\n\t\"wx/defs.h\"\n\t\"wx/window.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/univ/statusbr.h\"\n\t\"wx/palmos/statusbr.h\"\n\t\"wx/msw/statbr95.h\"\n\t\"wx/generic/statusbr.h\"\n\t\"wx/mac/statusbr.h\"\n\t\"wx/generic/statusbr.h\"\n\n1282051481 /usr/include/wx-2.8/wx/generic/statusbr.h\n\t\"wx/defs.h\"\n\t\"wx/pen.h\"\n\t\"wx/arrstr.h\"\n\n1282051480 /usr/include/wx-2.8/wx/pen.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/pen.h\"\n\t\"wx/msw/pen.h\"\n\t\"wx/x11/pen.h\"\n\t\"wx/gtk/pen.h\"\n\t\"wx/gtk1/pen.h\"\n\t\"wx/mgl/pen.h\"\n\t\"wx/dfb/pen.h\"\n\t\"wx/mac/pen.h\"\n\t\"wx/cocoa/pen.h\"\n\t\"wx/os2/pen.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/pen.h\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\n1282051480 /usr/include/wx-2.8/wx/image.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/stream.h\"\n\t\"wx/variant.h\"\n\t\"wx/imagbmp.h\"\n\t\"wx/imagpng.h\"\n\t\"wx/imaggif.h\"\n\t\"wx/imagpcx.h\"\n\t\"wx/imagjpeg.h\"\n\t\"wx/imagtga.h\"\n\t\"wx/imagtiff.h\"\n\t\"wx/imagpnm.h\"\n\t\"wx/imagxpm.h\"\n\t\"wx/imagiff.h\"\n\n1282051479 /usr/include/wx-2.8/wx/stream.h\n\t\"wx/defs.h\"\n\t<stdio.h>\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagbmp.h\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagpng.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imaggif.h\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagpcx.h\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagjpeg.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagtga.h\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagtiff.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagpnm.h\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagxpm.h\n\t\"wx/image.h\"\n\n1282051480 /usr/include/wx-2.8/wx/imagiff.h\n\t\"wx/image.h\"\n\n1186113925 /home/abarry/programs/ActiveStereo/SetConfig.h\n\n1237439168 source:/home/abarry/programs/ActiveStereo/ActiveStereoMain.cpp\n\t\"ActiveStereoMain.h\"\n\t<wx/msgdlg.h>\n\t<wx/bitmap.h>\n\t<wx/intl.h>\n\t<wx/image.h>\n\t<wx/string.h>\n\n1282051480 /usr/include/wx-2.8/wx/msgdlg.h\n\t\"wx/defs.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/palmos/msgdlg.h\"\n\t\"wx/msw/msgdlg.h\"\n\t\"wx/motif/msgdlg.h\"\n\t\"wx/gtk/msgdlg.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/mac/msgdlg.h\"\n\t\"wx/cocoa/msgdlg.h\"\n\t\"wx/os2/msgdlg.h\"\n\n1282051480 /usr/include/wx-2.8/wx/generic/msgdlgg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\n1282051480 /usr/include/wx-2.8/wx/dialog.h\n\t\"wx/defs.h\"\n\t\"wx/containr.h\"\n\t\"wx/toplevel.h\"\n\t\"wx/univ/dialog.h\"\n\t\"wx/palmos/dialog.h\"\n\t\"wx/msw/dialog.h\"\n\t\"wx/motif/dialog.h\"\n\t\"wx/gtk/dialog.h\"\n\t\"wx/gtk1/dialog.h\"\n\t\"wx/mac/dialog.h\"\n\t\"wx/cocoa/dialog.h\"\n\t\"wx/os2/dialog.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dialog.h\n\t\"wx/defs.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/msgdlg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\n1229033004 /home/abarry/programs/ActiveStereo/SetHorz.h\n\n1229031294 source:/home/abarry/programs/ActiveStereo/SetConfig.c\n\t<stdio.h>\n\t<usb.h>\n\t\"SetConfig.h\"\n\n1229157346 source:/home/abarry/programs/ActiveStereo/SetHorz.c\n\t<usb.h>\n\t<stdio.h>\n\t\"SetHorz.h\"\n\n1229128537 source:/home/abarry/programs/ActiveStereo/Cameras.cpp\n\t\"Cameras.h\"\n\n1229128489 /home/abarry/programs/ActiveStereo/Cameras.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"ScanThread.h\"\n\n1282051479 /usr/include/wx-2.8/wx/wx.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/list.h\"\n\t\"wx/hash.h\"\n\t\"wx/string.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/intl.h\"\n\t\"wx/log.h\"\n\t\"wx/event.h\"\n\t\"wx/app.h\"\n\t\"wx/utils.h\"\n\t\"wx/stream.h\"\n\t\"wx/memory.h\"\n\t\"wx/math.h\"\n\t\"wx/stopwatch.h\"\n\t\"wx/module.h\"\n\t\"wx/window.h\"\n\t\"wx/containr.h\"\n\t\"wx/panel.h\"\n\t\"wx/toplevel.h\"\n\t\"wx/frame.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/region.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/image.h\"\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\t\"wx/dc.h\"\n\t\"wx/dcclient.h\"\n\t\"wx/dcmemory.h\"\n\t\"wx/dcprint.h\"\n\t\"wx/dcscreen.h\"\n\t\"wx/button.h\"\n\t\"wx/menuitem.h\"\n\t\"wx/menu.h\"\n\t\"wx/pen.h\"\n\t\"wx/brush.h\"\n\t\"wx/palette.h\"\n\t\"wx/icon.h\"\n\t\"wx/cursor.h\"\n\t\"wx/dialog.h\"\n\t\"wx/timer.h\"\n\t\"wx/settings.h\"\n\t\"wx/msgdlg.h\"\n\t\"wx/cmndata.h\"\n\t\"wx/dataobj.h\"\n\t\"wx/control.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/bmpbuttn.h\"\n\t\"wx/checkbox.h\"\n\t\"wx/checklst.h\"\n\t\"wx/choice.h\"\n\t\"wx/scrolbar.h\"\n\t\"wx/stattext.h\"\n\t\"wx/statbmp.h\"\n\t\"wx/statbox.h\"\n\t\"wx/listbox.h\"\n\t\"wx/radiobox.h\"\n\t\"wx/radiobut.h\"\n\t\"wx/textctrl.h\"\n\t\"wx/slider.h\"\n\t\"wx/gauge.h\"\n\t\"wx/scrolwin.h\"\n\t\"wx/dirdlg.h\"\n\t\"wx/toolbar.h\"\n\t\"wx/combobox.h\"\n\t\"wx/layout.h\"\n\t\"wx/sizer.h\"\n\t\"wx/mdi.h\"\n\t\"wx/statusbr.h\"\n\t\"wx/choicdlg.h\"\n\t\"wx/textdlg.h\"\n\t\"wx/filedlg.h\"\n\t\"wx/validate.h\"\n\t\"wx/valtext.h\"\n\n1282051479 /usr/include/wx-2.8/wx/hash.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\n1282051479 /usr/include/wx-2.8/wx/stopwatch.h\n\t\"wx/defs.h\"\n\t\"wx/longlong.h\"\n\n1282051479 /usr/include/wx-2.8/wx/module.h\n\t\"wx/object.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\n1282051480 /usr/include/wx-2.8/wx/dc.h\n\t\"wx/object.h\"\n\t\"wx/intl.h\"\n\t\"wx/cursor.h\"\n\t\"wx/font.h\"\n\t\"wx/colour.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/brush.h\"\n\t\"wx/pen.h\"\n\t\"wx/palette.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/math.h\"\n\t\"wx/palmos/dc.h\"\n\t\"wx/msw/dc.h\"\n\t\"wx/motif/dc.h\"\n\t\"wx/gtk/dc.h\"\n\t\"wx/gtk1/dc.h\"\n\t\"wx/x11/dc.h\"\n\t\"wx/mgl/dc.h\"\n\t\"wx/dfb/dc.h\"\n\t\"wx/mac/dc.h\"\n\t\"wx/cocoa/dc.h\"\n\t\"wx/os2/dc.h\"\n\t\"wx/dcgraph.h\"\n\n1282051480 /usr/include/wx-2.8/wx/brush.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/palmos/brush.h\"\n\t\"wx/msw/brush.h\"\n\t\"wx/x11/brush.h\"\n\t\"wx/gtk/brush.h\"\n\t\"wx/gtk1/brush.h\"\n\t\"wx/mgl/brush.h\"\n\t\"wx/dfb/brush.h\"\n\t\"wx/mac/brush.h\"\n\t\"wx/cocoa/brush.h\"\n\t\"wx/os2/brush.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/brush.h\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dc.h\n\n1282051480 /usr/include/wx-2.8/wx/dcgraph.h\n\t\"wx/geometry.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/graphics.h\"\n\n1282051480 /usr/include/wx-2.8/wx/geometry.h\n\t\"wx/defs.h\"\n\t\"wx/utils.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/math.h\"\n\n1282051480 /usr/include/wx-2.8/wx/graphics.h\n\t\"wx/defs.h\"\n\t\"wx/geometry.h\"\n\t\"wx/dynarray.h\"\n\n1282051480 /usr/include/wx-2.8/wx/dcclient.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/dcclient.h\"\n\t\"wx/msw/dcclient.h\"\n\t\"wx/motif/dcclient.h\"\n\t\"wx/gtk/dcclient.h\"\n\t\"wx/gtk1/dcclient.h\"\n\t\"wx/x11/dcclient.h\"\n\t\"wx/mgl/dcclient.h\"\n\t\"wx/dfb/dcclient.h\"\n\t\"wx/mac/dcclient.h\"\n\t\"wx/cocoa/dcclient.h\"\n\t\"wx/os2/dcclient.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dcclient.h\n\t\"wx/dc.h\"\n\t\"wx/region.h\"\n\n1282051480 /usr/include/wx-2.8/wx/dcmemory.h\n\t\"wx/bitmap.h\"\n\t\"wx/palmos/dcmemory.h\"\n\t\"wx/msw/dcmemory.h\"\n\t\"wx/motif/dcmemory.h\"\n\t\"wx/gtk/dcmemory.h\"\n\t\"wx/gtk1/dcmemory.h\"\n\t\"wx/x11/dcmemory.h\"\n\t\"wx/mgl/dcmemory.h\"\n\t\"wx/dfb/dcmemory.h\"\n\t\"wx/mac/dcmemory.h\"\n\t\"wx/cocoa/dcmemory.h\"\n\t\"wx/os2/dcmemory.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dcmemory.h\n\t\"wx/dcclient.h\"\n\n1282051480 /usr/include/wx-2.8/wx/dcprint.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/dcprint.h\"\n\t\"wx/msw/dcprint.h\"\n\t\"wx/os2/dcprint.h\"\n\t\"wx/mac/dcprint.h\"\n\n1282051480 /usr/include/wx-2.8/wx/dcscreen.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/dcscreen.h\"\n\t\"wx/msw/dcscreen.h\"\n\t\"wx/motif/dcscreen.h\"\n\t\"wx/gtk/dcscreen.h\"\n\t\"wx/gtk1/dcscreen.h\"\n\t\"wx/x11/dcscreen.h\"\n\t\"wx/mgl/dcscreen.h\"\n\t\"wx/dfb/dcscreen.h\"\n\t\"wx/mac/dcscreen.h\"\n\t\"wx/cocoa/dcscreen.h\"\n\t\"wx/os2/dcscreen.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dcscreen.h\n\t\"wx/dcclient.h\"\n\n1282051480 /usr/include/wx-2.8/wx/icon.h\n\t\"wx/iconloc.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/msw/icon.h\"\n\t\"wx/motif/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/mac/icon.h\"\n\t\"wx/cocoa/icon.h\"\n\t\"wx/os2/icon.h\"\n\t\"wx/variant.h\"\n\n1282051479 /usr/include/wx-2.8/wx/iconloc.h\n\t\"wx/string.h\"\n\n1282051481 /usr/include/wx-2.8/wx/generic/icon.h\n\t\"wx/bitmap.h\"\n\n1282051479 /usr/include/wx-2.8/wx/timer.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/longlong.h\"\n\t\"wx/event.h\"\n\t\"wx/stopwatch.h\"\n\t\"wx/window.h\"\n\t\"wx/msw/timer.h\"\n\t\"wx/motif/timer.h\"\n\t\"wx/gtk/timer.h\"\n\t\"wx/gtk1/timer.h\"\n\t\"wx/generic/timer.h\"\n\t\"wx/cocoa/timer.h\"\n\t\"wx/mac/timer.h\"\n\t\"wx/os2/timer.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/timer.h\n\n1282051480 /usr/include/wx-2.8/wx/generic/timer.h\n\n1282051480 /usr/include/wx-2.8/wx/settings.h\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\n1282051480 /usr/include/wx-2.8/wx/cmndata.h\n\t\"wx/window.h\"\n\t\"wx/font.h\"\n\t\"wx/encinfo.h\"\n\t\"wx/colour.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/stream.h\"\n\n1282051480 /usr/include/wx-2.8/wx/encinfo.h\n\t\"wx/string.h\"\n\n1282051480 /usr/include/wx-2.8/wx/dataobj.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/msw/ole/dataform.h\"\n\t\"wx/motif/dataform.h\"\n\t\"wx/gtk/dataform.h\"\n\t\"wx/gtk1/dataform.h\"\n\t\"wx/x11/dataform.h\"\n\t\"wx/mac/dataform.h\"\n\t\"wx/cocoa/dataform.h\"\n\t\"wx/os2/dataform.h\"\n\t\"wx/msw/ole/dataobj.h\"\n\t\"wx/motif/dataobj.h\"\n\t\"wx/x11/dataobj.h\"\n\t\"wx/gtk/dataobj.h\"\n\t\"wx/gtk1/dataobj.h\"\n\t\"wx/mac/dataobj.h\"\n\t\"wx/cocoa/dataobj.h\"\n\t\"wx/os2/dataobj.h\"\n\t\"wx/msw/ole/dataobj2.h\"\n\t\"wx/gtk/dataobj2.h\"\n\t\"wx/gtk1/dataobj2.h\"\n\t\"wx/x11/dataobj2.h\"\n\t\"wx/motif/dataobj2.h\"\n\t\"wx/mac/dataobj2.h\"\n\t\"wx/cocoa/dataobj2.h\"\n\t\"wx/os2/dataobj2.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dataform.h\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dataobj.h\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dataobj2.h\n\n1282051480 /usr/include/wx-2.8/wx/ctrlsub.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\n1282051480 /usr/include/wx-2.8/wx/bmpbuttn.h\n\t\"wx/defs.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/button.h\"\n\t\"wx/univ/bmpbuttn.h\"\n\t\"wx/msw/bmpbuttn.h\"\n\t\"wx/motif/bmpbuttn.h\"\n\t\"wx/gtk/bmpbuttn.h\"\n\t\"wx/gtk1/bmpbuttn.h\"\n\t\"wx/mac/bmpbuttn.h\"\n\t\"wx/cocoa/bmpbuttn.h\"\n\t\"wx/os2/bmpbuttn.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/bmpbuttn.h\n\n1282051480 /usr/include/wx-2.8/wx/checkbox.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/checkbox.h\"\n\t\"wx/msw/checkbox.h\"\n\t\"wx/motif/checkbox.h\"\n\t\"wx/gtk/checkbox.h\"\n\t\"wx/gtk1/checkbox.h\"\n\t\"wx/mac/checkbox.h\"\n\t\"wx/cocoa/checkbox.h\"\n\t\"wx/os2/checkbox.h\"\n\t\"wx/palmos/checkbox.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/checkbox.h\n\n1282051480 /usr/include/wx-2.8/wx/checklst.h\n\t\"wx/listbox.h\"\n\t\"wx/univ/checklst.h\"\n\t\"wx/msw/wince/checklst.h\"\n\t\"wx/msw/checklst.h\"\n\t\"wx/motif/checklst.h\"\n\t\"wx/gtk/checklst.h\"\n\t\"wx/gtk1/checklst.h\"\n\t\"wx/mac/checklst.h\"\n\t\"wx/cocoa/checklst.h\"\n\t\"wx/os2/checklst.h\"\n\n1282051480 /usr/include/wx-2.8/wx/listbox.h\n\t\"wx/defs.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/univ/listbox.h\"\n\t\"wx/msw/listbox.h\"\n\t\"wx/motif/listbox.h\"\n\t\"wx/gtk/listbox.h\"\n\t\"wx/gtk1/listbox.h\"\n\t\"wx/mac/listbox.h\"\n\t\"wx/os2/listbox.h\"\n\t\"wx/cocoa/listbox.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/listbox.h\n\n1282051481 /usr/include/wx-2.8/wx/gtk/checklst.h\n\n1282051480 /usr/include/wx-2.8/wx/choice.h\n\t\"wx/defs.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/univ/choice.h\"\n\t\"wx/msw/wince/choicece.h\"\n\t\"wx/msw/choice.h\"\n\t\"wx/motif/choice.h\"\n\t\"wx/gtk/choice.h\"\n\t\"wx/gtk1/choice.h\"\n\t\"wx/mac/choice.h\"\n\t\"wx/cocoa/choice.h\"\n\t\"wx/os2/choice.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/choice.h\n\n1282051480 /usr/include/wx-2.8/wx/scrolbar.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/scrolbar.h\"\n\t\"wx/msw/scrolbar.h\"\n\t\"wx/motif/scrolbar.h\"\n\t\"wx/gtk/scrolbar.h\"\n\t\"wx/gtk1/scrolbar.h\"\n\t\"wx/mac/scrolbar.h\"\n\t\"wx/cocoa/scrolbar.h\"\n\t\"wx/os2/scrolbar.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/scrolbar.h\n\t\"wx/defs.h\"\n\n1282051480 /usr/include/wx-2.8/wx/stattext.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/stattext.h\"\n\t\"wx/msw/stattext.h\"\n\t\"wx/motif/stattext.h\"\n\t\"wx/gtk/stattext.h\"\n\t\"wx/gtk1/stattext.h\"\n\t\"wx/mac/stattext.h\"\n\t\"wx/cocoa/stattext.h\"\n\t\"wx/os2/stattext.h\"\n\t\"wx/palmos/stattext.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/stattext.h\n\n1282051480 /usr/include/wx-2.8/wx/statbmp.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/icon.h\"\n\t\"wx/univ/statbmp.h\"\n\t\"wx/msw/statbmp.h\"\n\t\"wx/motif/statbmp.h\"\n\t\"wx/gtk/statbmp.h\"\n\t\"wx/gtk1/statbmp.h\"\n\t\"wx/mac/statbmp.h\"\n\t\"wx/cocoa/statbmp.h\"\n\t\"wx/os2/statbmp.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/statbmp.h\n\t\"wx/icon.h\"\n\n1282051480 /usr/include/wx-2.8/wx/statbox.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/statbox.h\"\n\t\"wx/msw/statbox.h\"\n\t\"wx/motif/statbox.h\"\n\t\"wx/gtk/statbox.h\"\n\t\"wx/gtk1/statbox.h\"\n\t\"wx/mac/statbox.h\"\n\t\"wx/cocoa/statbox.h\"\n\t\"wx/os2/statbox.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/statbox.h\n\n1282051480 /usr/include/wx-2.8/wx/radiobox.h\n\t\"wx/ctrlsub.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/univ/radiobox.h\"\n\t\"wx/msw/radiobox.h\"\n\t\"wx/motif/radiobox.h\"\n\t\"wx/gtk/radiobox.h\"\n\t\"wx/gtk1/radiobox.h\"\n\t\"wx/mac/radiobox.h\"\n\t\"wx/cocoa/radiobox.h\"\n\t\"wx/os2/radiobox.h\"\n\t\"wx/palmos/radiobox.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/radiobox.h\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\n1282051480 /usr/include/wx-2.8/wx/radiobut.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/radiobut.h\"\n\t\"wx/msw/radiobut.h\"\n\t\"wx/motif/radiobut.h\"\n\t\"wx/gtk/radiobut.h\"\n\t\"wx/gtk1/radiobut.h\"\n\t\"wx/mac/radiobut.h\"\n\t\"wx/cocoa/radiobut.h\"\n\t\"wx/os2/radiobut.h\"\n\t\"wx/palmos/radiobut.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/radiobut.h\n\n1282051480 /usr/include/wx-2.8/wx/slider.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/slider.h\"\n\t\"wx/msw/slider95.h\"\n\t\"wx/motif/slider.h\"\n\t\"wx/gtk/slider.h\"\n\t\"wx/gtk1/slider.h\"\n\t\"wx/mac/slider.h\"\n\t\"wx/cocoa/slider.h\"\n\t\"wx/os2/slider.h\"\n\t\"wx/palmos/slider.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/slider.h\n\n1282051480 /usr/include/wx-2.8/wx/gauge.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/gauge.h\"\n\t\"wx/msw/gauge95.h\"\n\t\"wx/motif/gauge.h\"\n\t\"wx/gtk/gauge.h\"\n\t\"wx/gtk1/gauge.h\"\n\t\"wx/mac/gauge.h\"\n\t\"wx/cocoa/gauge.h\"\n\t\"wx/os2/gauge.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/gauge.h\n\n1282051480 /usr/include/wx-2.8/wx/scrolwin.h\n\t\"wx/panel.h\"\n\t\"wx/gtk/scrolwin.h\"\n\t\"wx/gtk1/scrolwin.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/scrolwin.h\n\n1282051480 /usr/include/wx-2.8/wx/dirdlg.h\n\t\"wx/dialog.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/msw/dirdlg.h\"\n\t\"wx/gtk/dirdlg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/mac/dirdlg.h\"\n\t\"wx/cocoa/dirdlg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\n1282051481 /usr/include/wx-2.8/wx/generic/dirdlgg.h\n\t\"wx/dialog.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/dirdlg.h\n\t\"wx/generic/dirdlgg.h\"\n\n1282051480 /usr/include/wx-2.8/wx/toolbar.h\n\t\"wx/defs.h\"\n\t\"wx/tbarbase.h\"\n\t\"wx/univ/toolbar.h\"\n\t\"wx/palmos/toolbar.h\"\n\t\"wx/msw/tbar95.h\"\n\t\"wx/msw/wince/tbarwce.h\"\n\t\"wx/motif/toolbar.h\"\n\t\"wx/gtk/tbargtk.h\"\n\t\"wx/gtk1/tbargtk.h\"\n\t\"wx/mac/toolbar.h\"\n\t\"wx/cocoa/toolbar.h\"\n\t\"wx/os2/toolbar.h\"\n\n1282051481 /usr/include/wx-2.8/wx/tbarbase.h\n\t\"wx/defs.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\t\"wx/control.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/tbargtk.h\n\n1282051480 /usr/include/wx-2.8/wx/combobox.h\n\t\"wx/defs.h\"\n\t\"wx/textctrl.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/univ/combobox.h\"\n\t\"wx/msw/combobox.h\"\n\t\"wx/motif/combobox.h\"\n\t\"wx/gtk/combobox.h\"\n\t\"wx/gtk1/combobox.h\"\n\t\"wx/mac/combobox.h\"\n\t\"wx/cocoa/combobox.h\"\n\t\"wx/os2/combobox.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/combobox.h\n\n1282051480 /usr/include/wx-2.8/wx/layout.h\n\t\"wx/object.h\"\n\n1282051480 /usr/include/wx-2.8/wx/mdi.h\n\t\"wx/defs.h\"\n\t\"wx/generic/mdig.h\"\n\t\"wx/msw/mdi.h\"\n\t\"wx/motif/mdi.h\"\n\t\"wx/gtk/mdi.h\"\n\t\"wx/gtk1/mdi.h\"\n\t\"wx/mac/mdi.h\"\n\t\"wx/cocoa/mdi.h\"\n\t\"wx/generic/mdig.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/mdi.h\n\t\"wx/frame.h\"\n\n1282051480 /usr/include/wx-2.8/wx/choicdlg.h\n\t\"wx/generic/choicdgg.h\"\n\n1282051480 /usr/include/wx-2.8/wx/generic/choicdgg.h\n\t\"wx/dynarray.h\"\n\t\"wx/dialog.h\"\n\n1282051480 /usr/include/wx-2.8/wx/textdlg.h\n\t\"wx/generic/textdlgg.h\"\n\t\"wx/numdlg.h\"\n\n1282051480 /usr/include/wx-2.8/wx/generic/textdlgg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\t\"wx/valtext.h\"\n\n1282051480 /usr/include/wx-2.8/wx/valtext.h\n\t\"wx/defs.h\"\n\t\"wx/textctrl.h\"\n\t\"wx/validate.h\"\n\n1282051480 /usr/include/wx-2.8/wx/numdlg.h\n\t\"wx/defs.h\"\n\t\"wx/generic/numdlgg.h\"\n\n1282051480 /usr/include/wx-2.8/wx/generic/numdlgg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\n1282051480 /usr/include/wx-2.8/wx/filedlg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/generic/filedlgg.h\"\n\t\"wx/msw/filedlg.h\"\n\t\"wx/motif/filedlg.h\"\n\t\"wx/gtk/filedlg.h\"\n\t\"wx/generic/filedlgg.h\"\n\t\"wx/gtk1/filedlg.h\"\n\t\"wx/mac/filedlg.h\"\n\t\"wx/cocoa/filedlg.h\"\n\t\"wx/os2/filedlg.h\"\n\n1282051480 /usr/include/wx-2.8/wx/generic/filedlgg.h\n\t\"wx/listctrl.h\"\n\t\"wx/datetime.h\"\n\t\"wx/filefn.h\"\n\t\"wx/filedlg.h\"\n\n1282051480 /usr/include/wx-2.8/wx/listctrl.h\n\t\"wx/defs.h\"\n\t\"wx/listbase.h\"\n\t\"wx/msw/listctrl.h\"\n\t\"wx/mac/carbon/listctrl.h\"\n\t\"wx/generic/listctrl.h\"\n\n1282051480 /usr/include/wx-2.8/wx/listbase.h\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/event.h\"\n\n1282051481 /usr/include/wx-2.8/wx/generic/listctrl.h\n\t\"wx/textctrl.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/filedlg.h\n\t\"wx/generic/filedlgg.h\"\n\n1390885782 /usr/include/opencv//cv.h\n\t\"opencv2/core/core_c.h\"\n\t\"opencv2/core/core.hpp\"\n\t\"opencv2/imgproc/imgproc_c.h\"\n\t\"opencv2/imgproc/imgproc.hpp\"\n\t\"opencv2/video/tracking.hpp\"\n\t\"opencv2/features2d/features2d.hpp\"\n\t\"opencv2/flann/flann.hpp\"\n\t\"opencv2/calib3d/calib3d.hpp\"\n\t\"opencv2/objdetect/objdetect.hpp\"\n\t\"opencv2/legacy/compat.hpp\"\n\t\"opencv2/core/internal.hpp\"\n\n1263954937 /usr/include/opencv//cxcore.h\n\t\"ipl.h\"\n\t\"ipl/ipl.h\"\n\t\"cxtypes.h\"\n\t\"cxerror.h\"\n\t\"cvver.h\"\n\t\"cxcore.hpp\"\n\n1263954937 /usr/include/opencv//cxtypes.h\n\t<assert.h>\n\t<stdlib.h>\n\t<string.h>\n\t<float.h>\n\t<stdint.h>\n\t<emmintrin.h>\n\t<mmintrin.h>\n\t<fastmath.h>\n\t<math.h>\n\t<ipl.h>\n\t<ipl/ipl.h>\n\n1263954937 /usr/include/opencv//cxerror.h\n\n1263954937 /usr/include/opencv//cvver.h\n\n1263954937 /usr/include/opencv//cxcore.hpp\n\t\"cxmisc.h\"\n\t<algorithm>\n\t<cmath>\n\t<complex>\n\t<map>\n\t<new>\n\t<string>\n\t<vector>\n\t\"cxoperations.hpp\"\n\t\"cxmat.hpp\"\n\t\"cxflann.h\"\n\n1263954937 /usr/include/opencv//cvtypes.h\n\t<assert.h>\n\t<stdlib.h>\n\n1263954937 /usr/include/opencv//cv.hpp\n\n1263954937 /usr/include/opencv//cvcompat.h\n\t<string.h>\n\n1390885782 /usr/include/opencv//highgui.h\n\t\"opencv2/core/core_c.h\"\n\t\"opencv2/core/core.hpp\"\n\t\"opencv2/highgui/highgui_c.h\"\n\t\"opencv2/highgui/highgui.hpp\"\n\n1229034385 /home/abarry/programs/ActiveStereo/CaptureThread.h\n\t<wx/thread.h>\n\t<wx/string.h>\n\t<wx/textctrl.h>\n\t<wx/dialog.h>\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"IndividualPixels.h\"\n\n1227770328 /home/abarry/programs/ActiveStereo/IndividualPixels.h\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1229032440 source:/home/abarry/programs/ActiveStereo/CaptureThread.cpp\n\t\"CaptureThread.h\"\n\n1237439017 /home/abarry/programs/ActiveStereo/ScanThread.h\n\t<wx/thread.h>\n\t<wx/string.h>\n\t<wx/textctrl.h>\n\t<wx/dialog.h>\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"IndividualPixels.h\"\n\t<wx/dynarray.h>\n\t<wx/ffile.h>\n\t<math.h>\n\t\"SetHorz.h\"\n\n1237440837 source:/home/abarry/programs/ActiveStereo/ScanThread.cpp\n\t\"ScanThread.h\"\n\t<iostream>\n\t<wx/arrimpl.cpp>\n\n1282051479 /usr/include/wx-2.8/wx/ffile.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\t\"wx/convauto.h\"\n\t<stdio.h>\n\n1282051479 /usr/include/wx-2.8/wx/convauto.h\n\t\"wx/strconv.h\"\n\n1282051479 /usr/include/wx-2.8/wx/arrimpl.cpp\n\n1229932258 /usr/local/include/wx-2.8/wx/app.h\n\t\"wx/event.h\"\n\t\"wx/build.h\"\n\t\"wx/init.h\"\n\t\"wx/intl.h\"\n\t\"wx/palmos/app.h\"\n\t\"wx/msw/app.h\"\n\t\"wx/motif/app.h\"\n\t\"wx/mgl/app.h\"\n\t\"wx/dfb/app.h\"\n\t\"wx/gtk/app.h\"\n\t\"wx/gtk1/app.h\"\n\t\"wx/x11/app.h\"\n\t\"wx/mac/app.h\"\n\t\"wx/cocoa/app.h\"\n\t\"wx/os2/app.h\"\n\t\"wx/univ/theme.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/event.h\n\t\"wx/defs.h\"\n\t\"wx/cpp.h\"\n\t\"wx/object.h\"\n\t\"wx/clntdata.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/cursor.h\"\n\t\"wx/thread.h\"\n\t\"wx/dynarray.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/defs.h\n\t\"wx/platform.h\"\n\t\"wx/features.h\"\n\t\"wx/version.h\"\n\t\"wx/dlimpexp.h\"\n\t\"wx/debug.h\"\n\t<stddef.h>\n\t<sys/types.h>\n\t<unistd.h>\n\t\"wx/msw/winundef.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/platform.h\n\t<stddef.h>\n\t<AvailabilityMacros.h>\n\t<unistd.h>\n\t\"wx/mac/carbon/config_xcode.h\"\n\t\"wx/setup.h\"\n\t\"wx/chkconf.h\"\n\t\"wx/msw/wince/libraries.h\"\n\t\"wx/msw/libraries.h\"\n\t\"wx/msw/gccpriv.h\"\n\t<AvailabilityMacros.h>\n\n1229932258 /usr/local/lib/wx/include/gtk2-unicode-release-static-2.8/wx/setup.h\n\n1229932258 /usr/local/include/wx-2.8/wx/chkconf.h\n\t\"wx/palmos/chkconf.h\"\n\t\"wx/msw/wince/chkconf.h\"\n\t\"wx/msw/chkconf.h\"\n\t\"wx/mac/chkconf.h\"\n\t\"wx/os2/chkconf.h\"\n\t\"wx/mgl/chkconf.h\"\n\t\"wx/dfb/chkconf.h\"\n\t\"wx/motif/chkconf.h\"\n\t\"wx/x11/chkconf.h\"\n\t\"wx/univ/chkconf.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/features.h\n\n1229932259 /usr/local/include/wx-2.8/wx/version.h\n\t\"wx/cpp.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/cpp.h\n\n1229932258 /usr/local/include/wx-2.8/wx/dlimpexp.h\n\n1229932258 /usr/local/include/wx-2.8/wx/debug.h\n\t<assert.h>\n\t<limits.h>\n\t\"wx/wxchar.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/wxchar.h\n\t\"wx/platform.h\"\n\t\"wx/dlimpexp.h\"\n\t<stdio.h>\n\t<stdarg.h>\n\t<sys/types.h>\n\t<wchar.h>\n\t<wcstr.h>\n\t<stdlib.h>\n\t<widec.h>\n\t<ctype.h>\n\t<memory.h>\n\t<stddef.h>\n\t<stddef.h>\n\t<string.h>\n\t<ctype.h>\n\t<tchar.h>\n\t<ctype.h>\n\t<ctype.h>\n\t<stdio.h>\n\t<wctype.h>\n\t<stdio.h>\n\t<stdio.h>\n\t<ctype.h>\n\t<string.h>\n\t<stdio.h>\n\t<time.h>\n\t<time.h>\n\t<string.h>\n\n1229932259 /usr/local/include/wx-2.8/wx/object.h\n\t\"wx/memory.h\"\n\t\"wx/xti.h\"\n\t\"wx/msw/msvcrt.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/memory.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/msgout.h\"\n\t<stddef.h>\n\n1229932259 /usr/local/include/wx-2.8/wx/string.h\n\t\"wx/defs.h\"\n\t<ctype.h>\n\t<stdio.h>\n\t<string.h>\n\t<stdarg.h>\n\t<limits.h>\n\t<string.h>\n\t<stdio.h>\n\t<stdarg.h>\n\t<limits.h>\n\t<stdlib.h>\n\t<strings.h>\n\t<StringMgr.h>\n\t\"wx/wxchar.h\"\n\t\"wx/buffer.h\"\n\t\"wx/strconv.h\"\n\t\"wx/beforestd.h\"\n\t<string>\n\t\"wx/afterstd.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/iosfwrap.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/buffer.h\n\t\"wx/wxchar.h\"\n\t<stdlib.h>\n\n1229932259 /usr/local/include/wx-2.8/wx/strconv.h\n\t\"wx/defs.h\"\n\t\"wx/wxchar.h\"\n\t\"wx/buffer.h\"\n\t\"typeinfo.h\"\n\t<stdlib.h>\n\t\"wx/fontenc.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/fontenc.h\n\n1229932258 /usr/local/include/wx-2.8/wx/beforestd.h\n\n1229932258 /usr/local/include/wx-2.8/wx/afterstd.h\n\t\"wx/msw/winundef.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/arrstr.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/dynarray.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/dynarray.h\n\t\"wx/defs.h\"\n\t\"wx/beforestd.h\"\n\t<vector>\n\t<algorithm>\n\t\"wx/afterstd.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/iosfwrap.h\n\t<iostream.h>\n\t<iosfwd>\n\t\"wx/msw/winundef.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/msgout.h\n\t\"wx/defs.h\"\n\t\"wx/wxchar.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/xti.h\n\t\"wx/defs.h\"\n\t\"wx/memory.h\"\n\t\"wx/flags.h\"\n\t\"wx/string.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/log.h\"\n\t\"wx/intl.h\"\n\t<typeinfo>\n\t\"wx/dynarray.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/hashmap.h\n\t\"wx/string.h\"\n\t<unordered_map>\n\t<tr1/unordered_map>\n\t<ext/hash_map>\n\t<hash_map>\n\t<stddef.h>\n\n1229932259 /usr/local/include/wx-2.8/wx/log.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/arrstr.h\"\n\t<time.h>\n\t\"wx/dynarray.h\"\n\t\"wx/iosfwrap.h\"\n\t\"wx/generic/logg.h\"\n\t\"wx/cocoa/log.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/generic/logg.h\n\n1229932259 /usr/local/include/wx-2.8/wx/intl.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/fontenc.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/clntdata.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/vector.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/vector.h\n\t\"wx/defs.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/gdicmn.h\n\t\"wx/defs.h\"\n\t\"wx/list.h\"\n\t\"wx/string.h\"\n\t\"wx/fontenc.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/math.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/list.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/beforestd.h\"\n\t<algorithm>\n\t<iterator>\n\t<list>\n\t\"wx/afterstd.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/math.h\n\t\"wx/defs.h\"\n\t<math.h>\n\t<float.h>\n\n1229932259 /usr/local/include/wx-2.8/wx/cursor.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/cursor.h\"\n\t\"wx/msw/cursor.h\"\n\t\"wx/motif/cursor.h\"\n\t\"wx/gtk/cursor.h\"\n\t\"wx/gtk1/cursor.h\"\n\t\"wx/x11/cursor.h\"\n\t\"wx/mgl/cursor.h\"\n\t\"wx/dfb/cursor.h\"\n\t\"wx/mac/cursor.h\"\n\t\"wx/cocoa/cursor.h\"\n\t\"wx/os2/cursor.h\"\n\t\"wx/utils.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/cursor.h\n\t\"wx/object.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/utils.h\n\t\"wx/object.h\"\n\t\"wx/list.h\"\n\t\"wx/filefn.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/longlong.h\"\n\t\"wx/platinfo.h\"\n\t<direct.h>\n\t<dirent.h>\n\t<unistd.h>\n\t<stdio.h>\n\n1229932258 /usr/local/include/wx-2.8/wx/filefn.h\n\t\"wx/list.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/msw/wince/time.h\"\n\t\"wx/msw/private.h\"\n\t<time.h>\n\t<sys/types.h>\n\t<sys/stat.h>\n\t<sys/types.h>\n\t<utime.h>\n\t<sys/stat.h>\n\t<unistd.h>\n\t<stat.h>\n\t<unistd.h>\n\t<unix.h>\n\t<process.h>\n\t\"wx/os2/private.h\"\n\t<direct.h>\n\t<io.h>\n\t<unistd.h>\n\t<unistd.h>\n\t<dirent.h>\n\t<direct.h>\n\t<dos.h>\n\t<io.h>\n\t<direct.h>\n\t<dos.h>\n\t<io.h>\n\t<io.h>\n\t<unistd.h>\n\t<dir.h>\n\t<dir.h>\n\t<unix.h>\n\t<fcntl.h>\n\t<sys/types.h>\n\n1229932259 /usr/local/include/wx-2.8/wx/longlong.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t<limits.h>\n\t\"wx/iosfwrap.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/platinfo.h\n\t\"wx/string.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/thread.h\n\t\"wx/defs.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/build.h\n\t\"wx/version.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/init.h\n\t\"wx/defs.h\"\n\t\"wx/wxchar.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/app.h\n\n1229932260 /usr/local/include/wx-2.8/wx/sizer.h\n\t\"wx/defs.h\"\n\t\"wx/window.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/window.h\n\t\"wx/event.h\"\n\t\"wx/list.h\"\n\t\"wx/cursor.h\"\n\t\"wx/font.h\"\n\t\"wx/colour.h\"\n\t\"wx/region.h\"\n\t\"wx/utils.h\"\n\t\"wx/intl.h\"\n\t\"wx/validate.h\"\n\t\"wx/palette.h\"\n\t\"wx/accel.h\"\n\t\"wx/access.h\"\n\t\"wx/palmos/window.h\"\n\t\"wx/msw/window.h\"\n\t\"wx/motif/window.h\"\n\t\"wx/gtk/window.h\"\n\t\"wx/gtk1/window.h\"\n\t\"wx/x11/window.h\"\n\t\"wx/mgl/window.h\"\n\t\"wx/dfb/window.h\"\n\t\"wx/mac/window.h\"\n\t\"wx/cocoa/window.h\"\n\t\"wx/os2/window.h\"\n\t\"wx/univ/window.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/font.h\n\t\"wx/defs.h\"\n\t\"wx/fontenc.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/palmos/font.h\"\n\t\"wx/msw/font.h\"\n\t\"wx/motif/font.h\"\n\t\"wx/gtk/font.h\"\n\t\"wx/gtk1/font.h\"\n\t\"wx/x11/font.h\"\n\t\"wx/mgl/font.h\"\n\t\"wx/dfb/font.h\"\n\t\"wx/mac/font.h\"\n\t\"wx/cocoa/font.h\"\n\t\"wx/os2/font.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/gdiobj.h\n\t\"wx/object.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/font.h\n\n1229932260 /usr/local/include/wx-2.8/wx/colour.h\n\t\"wx/defs.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/variant.h\"\n\t\"wx/generic/colour.h\"\n\t\"wx/msw/colour.h\"\n\t\"wx/motif/colour.h\"\n\t\"wx/gtk/colour.h\"\n\t\"wx/gtk1/colour.h\"\n\t\"wx/generic/colour.h\"\n\t\"wx/generic/colour.h\"\n\t\"wx/x11/colour.h\"\n\t\"wx/mac/colour.h\"\n\t\"wx/cocoa/colour.h\"\n\t\"wx/os2/colour.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/variant.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/list.h\"\n\t\"wx/cpp.h\"\n\t\"wx/datetime.h\"\n\t\"wx/db.h\"\n\t\"wx/iosfwrap.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/datetime.h\n\t\"wx/defs.h\"\n\t<time.h>\n\t\"wx/msw/wince/time.h\"\n\t<limits.h>\n\t\"wx/longlong.h\"\n\t\"wx/dynarray.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/db.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t<afxwin.h>\n\t\"wx/msw/wrapwin.h\"\n\t\"sql.h\"\n\t\"sqlext.h\"\n\t\"odbcinst.h\"\n\t\"wx/msw/wrapwin.h\"\n\t\"wx/isql.h\"\n\t\"wx/isqlext.h\"\n\t<sql.h>\n\t<sqlext.h>\n\t\"wx/object.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/isql.h\n\n1229932259 /usr/local/include/wx-2.8/wx/isqlext.h\n\t\"wx/isql.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/colour.h\n\n1229932260 /usr/local/include/wx-2.8/wx/region.h\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/palmos/region.h\"\n\t\"wx/msw/region.h\"\n\t\"wx/gtk/region.h\"\n\t\"wx/gtk1/region.h\"\n\t\"wx/x11/region.h\"\n\t\"wx/mgl/region.h\"\n\t\"wx/dfb/region.h\"\n\t\"wx/mac/region.h\"\n\t\"wx/cocoa/region.h\"\n\t\"wx/os2/region.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/region.h\n\n1229932260 /usr/local/include/wx-2.8/wx/validate.h\n\t\"wx/defs.h\"\n\t\"wx/event.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/palette.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/palmos/palette.h\"\n\t\"wx/msw/palette.h\"\n\t\"wx/motif/palette.h\"\n\t\"wx/generic/paletteg.h\"\n\t\"wx/x11/palette.h\"\n\t\"wx/mgl/palette.h\"\n\t\"wx/mac/palette.h\"\n\t\"wx/os2/palette.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/generic/paletteg.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/accel.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/generic/accel.h\"\n\t\"wx/msw/accel.h\"\n\t\"wx/motif/accel.h\"\n\t\"wx/gtk/accel.h\"\n\t\"wx/gtk1/accel.h\"\n\t\"wx/mac/accel.h\"\n\t\"wx/generic/accel.h\"\n\t\"wx/os2/accel.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/generic/accel.h\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/accel.h\n\t\"wx/generic/accel.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/access.h\n\t\"wx/defs.h\"\n\t\"wx/variant.h\"\n\t\"wx/msw/ole/access.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/window.h\n\t\"wx/dynarray.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/menu.h\n\t\"wx/defs.h\"\n\t\"wx/list.h\"\n\t\"wx/window.h\"\n\t\"wx/menuitem.h\"\n\t\"wx/univ/menu.h\"\n\t\"wx/palmos/menu.h\"\n\t\"wx/msw/menu.h\"\n\t\"wx/motif/menu.h\"\n\t\"wx/gtk/menu.h\"\n\t\"wx/gtk1/menu.h\"\n\t\"wx/mac/menu.h\"\n\t\"wx/cocoa/menu.h\"\n\t\"wx/os2/menu.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/menuitem.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/univ/menuitem.h\"\n\t\"wx/palmos/menuitem.h\"\n\t\"wx/msw/menuitem.h\"\n\t\"wx/motif/menuitem.h\"\n\t\"wx/gtk/menuitem.h\"\n\t\"wx/gtk1/menuitem.h\"\n\t\"wx/mac/menuitem.h\"\n\t\"wx/cocoa/menuitem.h\"\n\t\"wx/os2/menuitem.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/menuitem.h\n\t\"wx/bitmap.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/bitmap.h\n\t\"wx/string.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/colour.h\"\n\t\"wx/variant.h\"\n\t\"wx/palmos/bitmap.h\"\n\t\"wx/msw/bitmap.h\"\n\t\"wx/x11/bitmap.h\"\n\t\"wx/gtk/bitmap.h\"\n\t\"wx/gtk1/bitmap.h\"\n\t\"wx/x11/bitmap.h\"\n\t\"wx/mgl/bitmap.h\"\n\t\"wx/dfb/bitmap.h\"\n\t\"wx/mac/bitmap.h\"\n\t\"wx/cocoa/bitmap.h\"\n\t\"wx/os2/bitmap.h\"\n\t\"wx/generic/mask.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/bitmap.h\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/menu.h\n\n1229932260 /usr/local/include/wx-2.8/wx/textctrl.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/ioswrap.h\"\n\t\"wx/x11/textctrl.h\"\n\t\"wx/univ/textctrl.h\"\n\t\"wx/msw/wince/textctrlce.h\"\n\t\"wx/msw/textctrl.h\"\n\t\"wx/motif/textctrl.h\"\n\t\"wx/gtk/textctrl.h\"\n\t\"wx/gtk1/textctrl.h\"\n\t\"wx/mac/textctrl.h\"\n\t\"wx/cocoa/textctrl.h\"\n\t\"wx/os2/textctrl.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/control.h\n\t\"wx/defs.h\"\n\t\"wx/window.h\"\n\t\"wx/univ/control.h\"\n\t\"wx/palmos/control.h\"\n\t\"wx/msw/control.h\"\n\t\"wx/motif/control.h\"\n\t\"wx/gtk/control.h\"\n\t\"wx/gtk1/control.h\"\n\t\"wx/mac/control.h\"\n\t\"wx/cocoa/control.h\"\n\t\"wx/os2/control.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/control.h\n\n1229932259 /usr/local/include/wx-2.8/wx/ioswrap.h\n\t<iostream.h>\n\t<iostream>\n\t\"wx/msw/winundef.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/textctrl.h\n\n1229932260 /usr/local/include/wx-2.8/wx/spinctrl.h\n\t\"wx/defs.h\"\n\t\"wx/spinbutt.h\"\n\t\"wx/generic/spinctlg.h\"\n\t\"wx/msw/spinctrl.h\"\n\t\"wx/os2/spinctrl.h\"\n\t\"wx/gtk/spinctrl.h\"\n\t\"wx/gtk1/spinctrl.h\"\n\t\"wx/generic/spinctlg.h\"\n\t\"wx/mac/spinctrl.h\"\n\t\"wx/generic/spinctlg.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/spinbutt.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/event.h\"\n\t\"wx/univ/spinbutt.h\"\n\t\"wx/msw/spinbutt.h\"\n\t\"wx/motif/spinbutt.h\"\n\t\"wx/gtk/spinbutt.h\"\n\t\"wx/gtk1/spinbutt.h\"\n\t\"wx/mac/spinbutt.h\"\n\t\"wx/cocoa/spinbutt.h\"\n\t\"wx/os2/spinbutt.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/spinbutt.h\n\n1229932259 /usr/local/include/wx-2.8/wx/generic/spinctlg.h\n\t\"wx/textctrl.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/spinctrl.h\n\n1229932260 /usr/local/include/wx-2.8/wx/panel.h\n\t\"wx/generic/panelg.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/generic/panelg.h\n\t\"wx/window.h\"\n\t\"wx/containr.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/containr.h\n\n1229932259 /usr/local/include/wx-2.8/wx/button.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/button.h\"\n\t\"wx/msw/button.h\"\n\t\"wx/motif/button.h\"\n\t\"wx/gtk/button.h\"\n\t\"wx/gtk1/button.h\"\n\t\"wx/mac/button.h\"\n\t\"wx/cocoa/button.h\"\n\t\"wx/os2/button.h\"\n\t\"wx/palmos/button.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/button.h\n\n1229932259 /usr/local/include/wx-2.8/wx/frame.h\n\t\"wx/toplevel.h\"\n\t\"wx/univ/frame.h\"\n\t\"wx/palmos/frame.h\"\n\t\"wx/msw/frame.h\"\n\t\"wx/gtk/frame.h\"\n\t\"wx/gtk1/frame.h\"\n\t\"wx/motif/frame.h\"\n\t\"wx/mac/frame.h\"\n\t\"wx/cocoa/frame.h\"\n\t\"wx/os2/frame.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/toplevel.h\n\t\"wx/window.h\"\n\t\"wx/iconbndl.h\"\n\t\"wx/palmos/toplevel.h\"\n\t\"wx/msw/toplevel.h\"\n\t\"wx/gtk/toplevel.h\"\n\t\"wx/gtk1/toplevel.h\"\n\t\"wx/x11/toplevel.h\"\n\t\"wx/mgl/toplevel.h\"\n\t\"wx/dfb/toplevel.h\"\n\t\"wx/mac/toplevel.h\"\n\t\"wx/cocoa/toplevel.h\"\n\t\"wx/os2/toplevel.h\"\n\t\"wx/motif/toplevel.h\"\n\t\"wx/univ/toplevel.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/iconbndl.h\n\t\"wx/dynarray.h\"\n\t\"wx/gdicmn.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/toplevel.h\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/frame.h\n\n1229932260 /usr/local/include/wx-2.8/wx/statusbr.h\n\t\"wx/defs.h\"\n\t\"wx/window.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/univ/statusbr.h\"\n\t\"wx/palmos/statusbr.h\"\n\t\"wx/msw/statbr95.h\"\n\t\"wx/generic/statusbr.h\"\n\t\"wx/mac/statusbr.h\"\n\t\"wx/generic/statusbr.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/generic/statusbr.h\n\t\"wx/defs.h\"\n\t\"wx/pen.h\"\n\t\"wx/arrstr.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/pen.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/pen.h\"\n\t\"wx/msw/pen.h\"\n\t\"wx/x11/pen.h\"\n\t\"wx/gtk/pen.h\"\n\t\"wx/gtk1/pen.h\"\n\t\"wx/mgl/pen.h\"\n\t\"wx/dfb/pen.h\"\n\t\"wx/mac/pen.h\"\n\t\"wx/cocoa/pen.h\"\n\t\"wx/os2/pen.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/pen.h\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/numdlg.h\n\t\"wx/defs.h\"\n\t\"wx/generic/numdlgg.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/generic/numdlgg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/dialog.h\n\t\"wx/defs.h\"\n\t\"wx/containr.h\"\n\t\"wx/toplevel.h\"\n\t\"wx/univ/dialog.h\"\n\t\"wx/palmos/dialog.h\"\n\t\"wx/msw/dialog.h\"\n\t\"wx/motif/dialog.h\"\n\t\"wx/gtk/dialog.h\"\n\t\"wx/gtk1/dialog.h\"\n\t\"wx/mac/dialog.h\"\n\t\"wx/cocoa/dialog.h\"\n\t\"wx/os2/dialog.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dialog.h\n\t\"wx/defs.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/ffile.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\t\"wx/convauto.h\"\n\t<stdio.h>\n\n1229932258 /usr/local/include/wx-2.8/wx/convauto.h\n\t\"wx/strconv.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/wx.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/list.h\"\n\t\"wx/hash.h\"\n\t\"wx/string.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/intl.h\"\n\t\"wx/log.h\"\n\t\"wx/event.h\"\n\t\"wx/app.h\"\n\t\"wx/utils.h\"\n\t\"wx/stream.h\"\n\t\"wx/memory.h\"\n\t\"wx/math.h\"\n\t\"wx/stopwatch.h\"\n\t\"wx/module.h\"\n\t\"wx/window.h\"\n\t\"wx/containr.h\"\n\t\"wx/panel.h\"\n\t\"wx/toplevel.h\"\n\t\"wx/frame.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/region.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/image.h\"\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\t\"wx/dc.h\"\n\t\"wx/dcclient.h\"\n\t\"wx/dcmemory.h\"\n\t\"wx/dcprint.h\"\n\t\"wx/dcscreen.h\"\n\t\"wx/button.h\"\n\t\"wx/menuitem.h\"\n\t\"wx/menu.h\"\n\t\"wx/pen.h\"\n\t\"wx/brush.h\"\n\t\"wx/palette.h\"\n\t\"wx/icon.h\"\n\t\"wx/cursor.h\"\n\t\"wx/dialog.h\"\n\t\"wx/timer.h\"\n\t\"wx/settings.h\"\n\t\"wx/msgdlg.h\"\n\t\"wx/cmndata.h\"\n\t\"wx/dataobj.h\"\n\t\"wx/control.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/bmpbuttn.h\"\n\t\"wx/checkbox.h\"\n\t\"wx/checklst.h\"\n\t\"wx/choice.h\"\n\t\"wx/scrolbar.h\"\n\t\"wx/stattext.h\"\n\t\"wx/statbmp.h\"\n\t\"wx/statbox.h\"\n\t\"wx/listbox.h\"\n\t\"wx/radiobox.h\"\n\t\"wx/radiobut.h\"\n\t\"wx/textctrl.h\"\n\t\"wx/slider.h\"\n\t\"wx/gauge.h\"\n\t\"wx/scrolwin.h\"\n\t\"wx/dirdlg.h\"\n\t\"wx/toolbar.h\"\n\t\"wx/combobox.h\"\n\t\"wx/layout.h\"\n\t\"wx/sizer.h\"\n\t\"wx/mdi.h\"\n\t\"wx/statusbr.h\"\n\t\"wx/choicdlg.h\"\n\t\"wx/textdlg.h\"\n\t\"wx/filedlg.h\"\n\t\"wx/validate.h\"\n\t\"wx/valtext.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/hash.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/stream.h\n\t\"wx/defs.h\"\n\t<stdio.h>\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/stopwatch.h\n\t\"wx/defs.h\"\n\t\"wx/longlong.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/module.h\n\t\"wx/object.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/image.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/stream.h\"\n\t\"wx/variant.h\"\n\t\"wx/imagbmp.h\"\n\t\"wx/imagpng.h\"\n\t\"wx/imaggif.h\"\n\t\"wx/imagpcx.h\"\n\t\"wx/imagjpeg.h\"\n\t\"wx/imagtga.h\"\n\t\"wx/imagtiff.h\"\n\t\"wx/imagpnm.h\"\n\t\"wx/imagxpm.h\"\n\t\"wx/imagiff.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagbmp.h\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagpng.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imaggif.h\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagpcx.h\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagjpeg.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagtga.h\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagtiff.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagpnm.h\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagxpm.h\n\t\"wx/image.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/imagiff.h\n\t\"wx/image.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/dc.h\n\t\"wx/object.h\"\n\t\"wx/intl.h\"\n\t\"wx/cursor.h\"\n\t\"wx/font.h\"\n\t\"wx/colour.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/brush.h\"\n\t\"wx/pen.h\"\n\t\"wx/palette.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/math.h\"\n\t\"wx/palmos/dc.h\"\n\t\"wx/msw/dc.h\"\n\t\"wx/motif/dc.h\"\n\t\"wx/gtk/dc.h\"\n\t\"wx/gtk1/dc.h\"\n\t\"wx/x11/dc.h\"\n\t\"wx/mgl/dc.h\"\n\t\"wx/dfb/dc.h\"\n\t\"wx/mac/dc.h\"\n\t\"wx/cocoa/dc.h\"\n\t\"wx/os2/dc.h\"\n\t\"wx/dcgraph.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/brush.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/palmos/brush.h\"\n\t\"wx/msw/brush.h\"\n\t\"wx/x11/brush.h\"\n\t\"wx/gtk/brush.h\"\n\t\"wx/gtk1/brush.h\"\n\t\"wx/mgl/brush.h\"\n\t\"wx/dfb/brush.h\"\n\t\"wx/mac/brush.h\"\n\t\"wx/cocoa/brush.h\"\n\t\"wx/os2/brush.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/brush.h\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dc.h\n\n1229932259 /usr/local/include/wx-2.8/wx/dcgraph.h\n\t\"wx/geometry.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/graphics.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/geometry.h\n\t\"wx/defs.h\"\n\t\"wx/utils.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/math.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/graphics.h\n\t\"wx/defs.h\"\n\t\"wx/geometry.h\"\n\t\"wx/dynarray.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/dcclient.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/dcclient.h\"\n\t\"wx/msw/dcclient.h\"\n\t\"wx/motif/dcclient.h\"\n\t\"wx/gtk/dcclient.h\"\n\t\"wx/gtk1/dcclient.h\"\n\t\"wx/x11/dcclient.h\"\n\t\"wx/mgl/dcclient.h\"\n\t\"wx/dfb/dcclient.h\"\n\t\"wx/mac/dcclient.h\"\n\t\"wx/cocoa/dcclient.h\"\n\t\"wx/os2/dcclient.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dcclient.h\n\t\"wx/dc.h\"\n\t\"wx/region.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/dcmemory.h\n\t\"wx/bitmap.h\"\n\t\"wx/palmos/dcmemory.h\"\n\t\"wx/msw/dcmemory.h\"\n\t\"wx/motif/dcmemory.h\"\n\t\"wx/gtk/dcmemory.h\"\n\t\"wx/gtk1/dcmemory.h\"\n\t\"wx/x11/dcmemory.h\"\n\t\"wx/mgl/dcmemory.h\"\n\t\"wx/dfb/dcmemory.h\"\n\t\"wx/mac/dcmemory.h\"\n\t\"wx/cocoa/dcmemory.h\"\n\t\"wx/os2/dcmemory.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dcmemory.h\n\t\"wx/dcclient.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/dcprint.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/dcprint.h\"\n\t\"wx/msw/dcprint.h\"\n\t\"wx/os2/dcprint.h\"\n\t\"wx/mac/dcprint.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/dcscreen.h\n\t\"wx/defs.h\"\n\t\"wx/palmos/dcscreen.h\"\n\t\"wx/msw/dcscreen.h\"\n\t\"wx/motif/dcscreen.h\"\n\t\"wx/gtk/dcscreen.h\"\n\t\"wx/gtk1/dcscreen.h\"\n\t\"wx/x11/dcscreen.h\"\n\t\"wx/mgl/dcscreen.h\"\n\t\"wx/dfb/dcscreen.h\"\n\t\"wx/mac/dcscreen.h\"\n\t\"wx/cocoa/dcscreen.h\"\n\t\"wx/os2/dcscreen.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dcscreen.h\n\t\"wx/dcclient.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/icon.h\n\t\"wx/iconloc.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/msw/icon.h\"\n\t\"wx/motif/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/mac/icon.h\"\n\t\"wx/cocoa/icon.h\"\n\t\"wx/os2/icon.h\"\n\t\"wx/variant.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/iconloc.h\n\t\"wx/string.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/generic/icon.h\n\t\"wx/bitmap.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/timer.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/longlong.h\"\n\t\"wx/event.h\"\n\t\"wx/stopwatch.h\"\n\t\"wx/window.h\"\n\t\"wx/msw/timer.h\"\n\t\"wx/motif/timer.h\"\n\t\"wx/gtk/timer.h\"\n\t\"wx/gtk1/timer.h\"\n\t\"wx/generic/timer.h\"\n\t\"wx/cocoa/timer.h\"\n\t\"wx/mac/timer.h\"\n\t\"wx/os2/timer.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/timer.h\n\n1229932260 /usr/local/include/wx-2.8/wx/generic/timer.h\n\n1229932260 /usr/local/include/wx-2.8/wx/settings.h\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/msgdlg.h\n\t\"wx/defs.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/palmos/msgdlg.h\"\n\t\"wx/msw/msgdlg.h\"\n\t\"wx/motif/msgdlg.h\"\n\t\"wx/gtk/msgdlg.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/mac/msgdlg.h\"\n\t\"wx/cocoa/msgdlg.h\"\n\t\"wx/os2/msgdlg.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/generic/msgdlgg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/msgdlg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/cmndata.h\n\t\"wx/window.h\"\n\t\"wx/font.h\"\n\t\"wx/encinfo.h\"\n\t\"wx/colour.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/stream.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/encinfo.h\n\t\"wx/string.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/dataobj.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/msw/ole/dataform.h\"\n\t\"wx/motif/dataform.h\"\n\t\"wx/gtk/dataform.h\"\n\t\"wx/gtk1/dataform.h\"\n\t\"wx/x11/dataform.h\"\n\t\"wx/mac/dataform.h\"\n\t\"wx/cocoa/dataform.h\"\n\t\"wx/os2/dataform.h\"\n\t\"wx/msw/ole/dataobj.h\"\n\t\"wx/motif/dataobj.h\"\n\t\"wx/x11/dataobj.h\"\n\t\"wx/gtk/dataobj.h\"\n\t\"wx/gtk1/dataobj.h\"\n\t\"wx/mac/dataobj.h\"\n\t\"wx/cocoa/dataobj.h\"\n\t\"wx/os2/dataobj.h\"\n\t\"wx/msw/ole/dataobj2.h\"\n\t\"wx/gtk/dataobj2.h\"\n\t\"wx/gtk1/dataobj2.h\"\n\t\"wx/x11/dataobj2.h\"\n\t\"wx/motif/dataobj2.h\"\n\t\"wx/mac/dataobj2.h\"\n\t\"wx/cocoa/dataobj2.h\"\n\t\"wx/os2/dataobj2.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dataform.h\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dataobj.h\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dataobj2.h\n\n1229932259 /usr/local/include/wx-2.8/wx/ctrlsub.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/bmpbuttn.h\n\t\"wx/defs.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/button.h\"\n\t\"wx/univ/bmpbuttn.h\"\n\t\"wx/msw/bmpbuttn.h\"\n\t\"wx/motif/bmpbuttn.h\"\n\t\"wx/gtk/bmpbuttn.h\"\n\t\"wx/gtk1/bmpbuttn.h\"\n\t\"wx/mac/bmpbuttn.h\"\n\t\"wx/cocoa/bmpbuttn.h\"\n\t\"wx/os2/bmpbuttn.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/bmpbuttn.h\n\n1229932259 /usr/local/include/wx-2.8/wx/checkbox.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/checkbox.h\"\n\t\"wx/msw/checkbox.h\"\n\t\"wx/motif/checkbox.h\"\n\t\"wx/gtk/checkbox.h\"\n\t\"wx/gtk1/checkbox.h\"\n\t\"wx/mac/checkbox.h\"\n\t\"wx/cocoa/checkbox.h\"\n\t\"wx/os2/checkbox.h\"\n\t\"wx/palmos/checkbox.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/checkbox.h\n\n1229932259 /usr/local/include/wx-2.8/wx/checklst.h\n\t\"wx/listbox.h\"\n\t\"wx/univ/checklst.h\"\n\t\"wx/msw/wince/checklst.h\"\n\t\"wx/msw/checklst.h\"\n\t\"wx/motif/checklst.h\"\n\t\"wx/gtk/checklst.h\"\n\t\"wx/gtk1/checklst.h\"\n\t\"wx/mac/checklst.h\"\n\t\"wx/cocoa/checklst.h\"\n\t\"wx/os2/checklst.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/listbox.h\n\t\"wx/defs.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/univ/listbox.h\"\n\t\"wx/msw/listbox.h\"\n\t\"wx/motif/listbox.h\"\n\t\"wx/gtk/listbox.h\"\n\t\"wx/gtk1/listbox.h\"\n\t\"wx/mac/listbox.h\"\n\t\"wx/os2/listbox.h\"\n\t\"wx/cocoa/listbox.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/listbox.h\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/checklst.h\n\n1229932259 /usr/local/include/wx-2.8/wx/choice.h\n\t\"wx/defs.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/univ/choice.h\"\n\t\"wx/msw/wince/choicece.h\"\n\t\"wx/msw/choice.h\"\n\t\"wx/motif/choice.h\"\n\t\"wx/gtk/choice.h\"\n\t\"wx/gtk1/choice.h\"\n\t\"wx/mac/choice.h\"\n\t\"wx/cocoa/choice.h\"\n\t\"wx/os2/choice.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/choice.h\n\n1229932260 /usr/local/include/wx-2.8/wx/scrolbar.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/scrolbar.h\"\n\t\"wx/msw/scrolbar.h\"\n\t\"wx/motif/scrolbar.h\"\n\t\"wx/gtk/scrolbar.h\"\n\t\"wx/gtk1/scrolbar.h\"\n\t\"wx/mac/scrolbar.h\"\n\t\"wx/cocoa/scrolbar.h\"\n\t\"wx/os2/scrolbar.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/scrolbar.h\n\t\"wx/defs.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/stattext.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/stattext.h\"\n\t\"wx/msw/stattext.h\"\n\t\"wx/motif/stattext.h\"\n\t\"wx/gtk/stattext.h\"\n\t\"wx/gtk1/stattext.h\"\n\t\"wx/mac/stattext.h\"\n\t\"wx/cocoa/stattext.h\"\n\t\"wx/os2/stattext.h\"\n\t\"wx/palmos/stattext.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/stattext.h\n\n1229932260 /usr/local/include/wx-2.8/wx/statbmp.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/icon.h\"\n\t\"wx/univ/statbmp.h\"\n\t\"wx/msw/statbmp.h\"\n\t\"wx/motif/statbmp.h\"\n\t\"wx/gtk/statbmp.h\"\n\t\"wx/gtk1/statbmp.h\"\n\t\"wx/mac/statbmp.h\"\n\t\"wx/cocoa/statbmp.h\"\n\t\"wx/os2/statbmp.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/statbmp.h\n\t\"wx/icon.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/statbox.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/statbox.h\"\n\t\"wx/msw/statbox.h\"\n\t\"wx/motif/statbox.h\"\n\t\"wx/gtk/statbox.h\"\n\t\"wx/gtk1/statbox.h\"\n\t\"wx/mac/statbox.h\"\n\t\"wx/cocoa/statbox.h\"\n\t\"wx/os2/statbox.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/statbox.h\n\n1229932260 /usr/local/include/wx-2.8/wx/radiobox.h\n\t\"wx/ctrlsub.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/univ/radiobox.h\"\n\t\"wx/msw/radiobox.h\"\n\t\"wx/motif/radiobox.h\"\n\t\"wx/gtk/radiobox.h\"\n\t\"wx/gtk1/radiobox.h\"\n\t\"wx/mac/radiobox.h\"\n\t\"wx/cocoa/radiobox.h\"\n\t\"wx/os2/radiobox.h\"\n\t\"wx/palmos/radiobox.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/radiobox.h\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/radiobut.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/radiobut.h\"\n\t\"wx/msw/radiobut.h\"\n\t\"wx/motif/radiobut.h\"\n\t\"wx/gtk/radiobut.h\"\n\t\"wx/gtk1/radiobut.h\"\n\t\"wx/mac/radiobut.h\"\n\t\"wx/cocoa/radiobut.h\"\n\t\"wx/os2/radiobut.h\"\n\t\"wx/palmos/radiobut.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/radiobut.h\n\n1229932260 /usr/local/include/wx-2.8/wx/slider.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/slider.h\"\n\t\"wx/msw/slider95.h\"\n\t\"wx/motif/slider.h\"\n\t\"wx/gtk/slider.h\"\n\t\"wx/gtk1/slider.h\"\n\t\"wx/mac/slider.h\"\n\t\"wx/cocoa/slider.h\"\n\t\"wx/os2/slider.h\"\n\t\"wx/palmos/slider.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/slider.h\n\n1229932259 /usr/local/include/wx-2.8/wx/gauge.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/gauge.h\"\n\t\"wx/msw/gauge95.h\"\n\t\"wx/motif/gauge.h\"\n\t\"wx/gtk/gauge.h\"\n\t\"wx/gtk1/gauge.h\"\n\t\"wx/mac/gauge.h\"\n\t\"wx/cocoa/gauge.h\"\n\t\"wx/os2/gauge.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/gauge.h\n\n1229932260 /usr/local/include/wx-2.8/wx/scrolwin.h\n\t\"wx/panel.h\"\n\t\"wx/gtk/scrolwin.h\"\n\t\"wx/gtk1/scrolwin.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/scrolwin.h\n\n1229932259 /usr/local/include/wx-2.8/wx/dirdlg.h\n\t\"wx/dialog.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/msw/dirdlg.h\"\n\t\"wx/gtk/dirdlg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/mac/dirdlg.h\"\n\t\"wx/cocoa/dirdlg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/generic/dirdlgg.h\n\t\"wx/dialog.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/dirdlg.h\n\t\"wx/generic/dirdlgg.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/toolbar.h\n\t\"wx/defs.h\"\n\t\"wx/tbarbase.h\"\n\t\"wx/univ/toolbar.h\"\n\t\"wx/palmos/toolbar.h\"\n\t\"wx/msw/tbar95.h\"\n\t\"wx/msw/wince/tbarwce.h\"\n\t\"wx/motif/toolbar.h\"\n\t\"wx/gtk/tbargtk.h\"\n\t\"wx/gtk1/tbargtk.h\"\n\t\"wx/mac/toolbar.h\"\n\t\"wx/cocoa/toolbar.h\"\n\t\"wx/os2/toolbar.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/tbarbase.h\n\t\"wx/defs.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\t\"wx/control.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/tbargtk.h\n\n1229932259 /usr/local/include/wx-2.8/wx/combobox.h\n\t\"wx/defs.h\"\n\t\"wx/textctrl.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/univ/combobox.h\"\n\t\"wx/msw/combobox.h\"\n\t\"wx/motif/combobox.h\"\n\t\"wx/gtk/combobox.h\"\n\t\"wx/gtk1/combobox.h\"\n\t\"wx/mac/combobox.h\"\n\t\"wx/cocoa/combobox.h\"\n\t\"wx/os2/combobox.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/combobox.h\n\n1229932260 /usr/local/include/wx-2.8/wx/layout.h\n\t\"wx/object.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/mdi.h\n\t\"wx/defs.h\"\n\t\"wx/generic/mdig.h\"\n\t\"wx/msw/mdi.h\"\n\t\"wx/motif/mdi.h\"\n\t\"wx/gtk/mdi.h\"\n\t\"wx/gtk1/mdi.h\"\n\t\"wx/mac/mdi.h\"\n\t\"wx/cocoa/mdi.h\"\n\t\"wx/generic/mdig.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/mdi.h\n\t\"wx/frame.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/choicdlg.h\n\t\"wx/generic/choicdgg.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/generic/choicdgg.h\n\t\"wx/dynarray.h\"\n\t\"wx/dialog.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/textdlg.h\n\t\"wx/generic/textdlgg.h\"\n\t\"wx/numdlg.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/generic/textdlgg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\t\"wx/valtext.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/valtext.h\n\t\"wx/defs.h\"\n\t\"wx/textctrl.h\"\n\t\"wx/validate.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/filedlg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/generic/filedlgg.h\"\n\t\"wx/msw/filedlg.h\"\n\t\"wx/motif/filedlg.h\"\n\t\"wx/gtk/filedlg.h\"\n\t\"wx/generic/filedlgg.h\"\n\t\"wx/gtk1/filedlg.h\"\n\t\"wx/mac/filedlg.h\"\n\t\"wx/cocoa/filedlg.h\"\n\t\"wx/os2/filedlg.h\"\n\n1229932259 /usr/local/include/wx-2.8/wx/generic/filedlgg.h\n\t\"wx/listctrl.h\"\n\t\"wx/datetime.h\"\n\t\"wx/filefn.h\"\n\t\"wx/filedlg.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/listctrl.h\n\t\"wx/defs.h\"\n\t\"wx/listbase.h\"\n\t\"wx/msw/listctrl.h\"\n\t\"wx/mac/carbon/listctrl.h\"\n\t\"wx/generic/listctrl.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/listbase.h\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/event.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/generic/listctrl.h\n\t\"wx/textctrl.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/filedlg.h\n\t\"wx/generic/filedlgg.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/arrimpl.cpp\n\n1228993622 source:/home/dbarry/Documents/cpp_projects/ScannerDan/ActiveStereoApp.cpp\n\t\"ActiveStereoApp.h\"\n\t\"ActiveStereoMain.h\"\n\t<wx/image.h>\n\n1228993622 /home/dbarry/Documents/cpp_projects/ScannerDan/ActiveStereoApp.h\n\t<wx/app.h>\n\n1255235164 /home/dbarry/Documents/cpp_projects/ScannerDan/ActiveStereoMain.h\n\t<wx/sizer.h>\n\t<wx/menu.h>\n\t<wx/textctrl.h>\n\t<wx/spinctrl.h>\n\t<wx/panel.h>\n\t<wx/button.h>\n\t<wx/frame.h>\n\t<wx/statusbr.h>\n\t<wx/numdlg.h>\n\t<wx/ffile.h>\n\t\"SetConfig.h\"\n\t\"SetHorz.h\"\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"Cameras.h\"\n\t\"ScanThread.h\"\n\n1186124724 /home/dbarry/Documents/cpp_projects/ScannerDan/SetConfig.h\n\n1255235164 /home/dbarry/Documents/cpp_projects/ScannerDan/SetHorz.h\n\n1254860263 /home/dbarry/Documents/cpp_projects/ScannerDan/Cameras.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"ScanThread.h\"\n\n1255654171 /home/dbarry/Documents/cpp_projects/ScannerDan/ScanThread.h\n\t<wx/thread.h>\n\t<wx/string.h>\n\t<wx/textctrl.h>\n\t<wx/dialog.h>\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"IndividualPixels.h\"\n\t<wx/dynarray.h>\n\t<wx/ffile.h>\n\t<math.h>\n\t\"SetHorz.h\"\n\n1227784728 /home/dbarry/Documents/cpp_projects/ScannerDan/IndividualPixels.h\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1254860406 source:/home/dbarry/Documents/cpp_projects/ScannerDan/Cameras.cpp\n\t\"Cameras.h\"\n\n1255653716 source:/home/dbarry/Documents/cpp_projects/ScannerDan/ScanThread.cpp\n\t\"ScanThread.h\"\n\t<iostream>\n\t<wx/arrimpl.cpp>\n\n1255235276 source:/home/dbarry/Documents/cpp_projects/ScannerDan/SetConfig.c\n\t<stdio.h>\n\t<usb.h>\n\t\"SetConfig.h\"\n\n1255235362 source:/home/dbarry/Documents/cpp_projects/ScannerDan/SetHorz.c\n\t<usb.h>\n\t<stdio.h>\n\t\"SetHorz.h\"\n\n1255653716 source:/home/dbarry/Documents/cpp_projects/ScannerDan/ActiveStereoMain.cpp\n\t\"ActiveStereoMain.h\"\n\t<wx/msgdlg.h>\n\t<wx/intl.h>\n\t<wx/string.h>\n\n1264304988 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ActiveStereoApp.cpp\n\t\"ActiveStereoApp.h\"\n\t\"ActiveStereoMain.h\"\n\t<wx/image.h>\n\n1264306352 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ActiveStereoApp.h\n\t<wx/app.h>\n\n1264523378 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ActiveStereoMain.h\n\t<wx/sizer.h>\n\t<wx/stattext.h>\n\t<wx/menu.h>\n\t<wx/textctrl.h>\n\t<wx/statline.h>\n\t<wx/slider.h>\n\t<wx/panel.h>\n\t<wx/button.h>\n\t<wx/frame.h>\n\t<wx/gauge.h>\n\t<wx/statusbr.h>\n\t<wx/numdlg.h>\n\t<wx/ffile.h>\n\t<wx/dir.h>\n\t\"SetConfig.h\"\n\t\"SetHorz.h\"\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"Cameras.h\"\n\t\"ScanThread.h\"\n\t\"camview.h\"\n\n1264306768 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/SetConfig.h\n\n1264306874 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/SetHorz.h\n\n1264306684 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/Cameras.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"ScanThread.h\"\n\n1277879544 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ScanThread.h\n\t<wx/thread.h>\n\t<wx/string.h>\n\t<wx/textctrl.h>\n\t<wx/dialog.h>\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"IndividualPixels.h\"\n\t<wx/dynarray.h>\n\t<wx/ffile.h>\n\t\"PointCloud.h\"\n\t\"SetHorz.h\"\n\n1264306723 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/IndividualPixels.h\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1278290318 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ActiveStereoMain.cpp\n\t\"ActiveStereoMain.h\"\n\t<wx/msgdlg.h>\n\t<wx/bitmap.h>\n\t<wx/intl.h>\n\t<wx/image.h>\n\t<wx/string.h>\n\n1277236648 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/Cameras.cpp\n\t\"Cameras.h\"\n\n1278294249 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ScanThread.cpp\n\t\"ScanThread.h\"\n\t<iostream>\n\t<wx/arrimpl.cpp>\n\n1277237171 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/SetConfig.c\n\t<stdio.h>\n\t<usb.h>\n\t\"SetConfig.h\"\n\n1264306310 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/SetHorz.c\n\t<usb.h>\n\t<stdio.h>\n\t\"SetHorz.h\"\n\n1264306730 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/PointCloud.h\n\t\"PointCloudPoint.h\"\n\t<wx/string.h>\n\t<wx/list.h>\n\t<wx/hashmap.h>\n\n1264306743 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/PointCloudPoint.h\n\t<wx/string.h>\n\t<math.h>\n\n1264306213 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/PointCloud.cpp\n\t\"PointCloud.h\"\n\t<wx/listimpl.cpp>\n\n1229932259 /usr/local/include/wx-2.8/wx/listimpl.cpp\n\n1264306264 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/PointCloudPoint.cpp\n\t\"PointCloudPoint.h\"\n\n1262063090 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ActiveStereoApp.cpp\n\t\"ActiveStereoApp.h\"\n\t\"ActiveStereoMain.h\"\n\t<wx/image.h>\n\n1262063090 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ActiveStereoApp.h\n\t<wx/app.h>\n\n1262159549 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ActiveStereoMain.h\n\t<wx/sizer.h>\n\t<wx/menu.h>\n\t<wx/textctrl.h>\n\t<wx/spinctrl.h>\n\t<wx/panel.h>\n\t<wx/button.h>\n\t<wx/frame.h>\n\t<wx/statusbr.h>\n\t<wx/numdlg.h>\n\t<wx/ffile.h>\n\t\"SetConfig.h\"\n\t\"SetHorz.h\"\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"Cameras.h\"\n\t\"ScanThread.h\"\n\n1262063090 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/SetConfig.h\n\n1262566031 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/SetHorz.h\n\n1262124594 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/Cameras.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"ScanThread.h\"\n\n1262566031 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ScanThread.h\n\t<wx/thread.h>\n\t<wx/string.h>\n\t<wx/textctrl.h>\n\t<wx/dialog.h>\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"IndividualPixels.h\"\n\t<wx/dynarray.h>\n\t<wx/ffile.h>\n\t\"PointCloud.h\"\n\t\"SetHorz.h\"\n\n1262063090 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/IndividualPixels.h\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1262485137 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/PointCloud.h\n\t\"PointCloudPoint.h\"\n\t<wx/string.h>\n\t<wx/list.h>\n\t<wx/hashmap.h>\n\n1262159549 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/PointCloudPoint.h\n\t<wx/string.h>\n\t<math.h>\n\n1262558314 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ActiveStereoMain.cpp\n\t\"ActiveStereoMain.h\"\n\t<wx/msgdlg.h>\n\t<wx/intl.h>\n\t<wx/string.h>\n\n1262558314 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/PointCloud.cpp\n\t\"PointCloud.h\"\n\t<wx/listimpl.cpp>\n\n1282051479 /usr/include/wx-2.8/wx/listimpl.cpp\n\n1262558314 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/PointCloudPoint.cpp\n\t\"PointCloudPoint.h\"\n\n1262565131 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ScanThread.cpp\n\t\"ScanThread.h\"\n\t<iostream>\n\t<wx/arrimpl.cpp>\n\n1262063090 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/SetConfig.c\n\t<stdio.h>\n\t<usb.h>\n\t\"SetConfig.h\"\n\n1262558314 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/SetHorz.c\n\t<usb.h>\n\t<stdio.h>\n\t\"SetHorz.h\"\n\n1262124617 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/Cameras.cpp\n\t\"Cameras.h\"\n\n1264399026 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/camview.h\n\t\"cv.h\"\n\t\"highgui.h\"\n\t<wx/wx.h>\n\n1221504196 /usr/include/opencv//cvaux.h\n\t<cv.h>\n\t\"cvaux.hpp\"\n\t\"cvvidsurv.hpp\"\n\n1221504196 /usr/include/opencv//cvaux.hpp\n\n1221504196 /usr/include/opencv//cvvidsurv.hpp\n\t<stdio.h>\n\n1229932259 /usr/local/include/wx-2.8/wx/wxprec.h\n\t\"wx/defs.h\"\n\t\"wx/wxchar.h\"\n\t\"wx/msw/wrapwin.h\"\n\t\"wx/msw/wrapcctl.h\"\n\t\"wx/msw/wrapcdlg.h\"\n\t\"wx/msw/private.h\"\n\t\"wx/msw/missing.h\"\n\t<PalmOS.h>\n\t\"wx/os2/private.h\"\n\t\"wx/mgl/private.h\"\n\t\"wx/wx.h\"\n\n1264399038 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/camview.cpp\n\t<math.h>\n\t<stdio.h>\n\t\"highgui.h\"\n\t\"cv.h\"\n\t<wx/image.h>\n\t\"camview.h\"\n\n1229932260 /usr/local/include/wx-2.8/wx/statline.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/statline.h\"\n\t\"wx/msw/statline.h\"\n\t\"wx/gtk/statline.h\"\n\t\"wx/gtk1/statline.h\"\n\t\"wx/os2/statline.h\"\n\t\"wx/mac/statline.h\"\n\t\"wx/cocoa/statline.h\"\n\t\"wx/generic/statline.h\"\n\n1229932261 /usr/local/include/wx-2.8/wx/gtk/statline.h\n\t\"wx/defs.h\"\n\n1229932258 /usr/local/include/wx-2.8/wx/dir.h\n\t\"wx/longlong.h\"\n\t\"wx/string.h\"\n\n1282051481 /usr/include/wx-2.8/wx/statline.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/statline.h\"\n\t\"wx/msw/statline.h\"\n\t\"wx/gtk/statline.h\"\n\t\"wx/gtk1/statline.h\"\n\t\"wx/os2/statline.h\"\n\t\"wx/mac/statline.h\"\n\t\"wx/cocoa/statline.h\"\n\t\"wx/generic/statline.h\"\n\n1282051481 /usr/include/wx-2.8/wx/gtk/statline.h\n\t\"wx/defs.h\"\n\n1282051479 /usr/include/wx-2.8/wx/dir.h\n\t\"wx/longlong.h\"\n\t\"wx/string.h\"\n\n1263954937 /usr/include/opencv//cxmisc.h\n\t<limits.h>\n\t<malloc.h>\n\t<alloca.h>\n\t<stdlib.h>\n\n1263954937 /usr/include/opencv//cxoperations.hpp\n\t<string.h>\n\t<limits.h>\n\t<ext/atomicity.h>\n\t<bits/atomicity.h>\n\t\"windows.h\"\n\n1263954937 /usr/include/opencv//cxmat.hpp\n\t<limits.h>\n\n1263954937 /usr/include/opencv//cxflann.h\n\n1263954937 /usr/include/opencv//highgui.hpp\n\n1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ActiveStereoApp.cpp\n\t\"ActiveStereoApp.h\"\n\t\"ActiveStereoMain.h\"\n\t<wx/image.h>\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ActiveStereoApp.h\n\t<wx/app.h>\n\n1284839403 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ActiveStereoMain.h\n\t<wx/sizer.h>\n\t<wx/button.h>\n\t<wx/menu.h>\n\t<wx/panel.h>\n\t<wx/slider.h>\n\t<wx/statusbr.h>\n\t<wx/statline.h>\n\t<wx/frame.h>\n\t<wx/stattext.h>\n\t<wx/textctrl.h>\n\t<wx/numdlg.h>\n\t<wx/ffile.h>\n\t<wx/dir.h>\n\t<wx/datetime.h>\n\t<wx/config.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"Cameras.h\"\n\t\"ScanThread.h\"\n\t\"ScanStatus.h\"\n\t\"camview.h\"\n\n1280185251 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/SetConfig.h\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/SetHorz.h\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/Cameras.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"ScanThread.h\"\n\t\"CaptureThread.h\"\n\t\"ScanStatus.h\"\n\t\"DistanceToReferenceDialog.h\"\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ScanThread.h\n\t<wx/thread.h>\n\t<wx/string.h>\n\t<wx/textctrl.h>\n\t<wx/dialog.h>\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"IndividualPixels.h\"\n\t<wx/dynarray.h>\n\t<wx/ffile.h>\n\t\"PointCloud.h\"\n\t\"CaptureThread.h\"\n\t\"ScanStatus.h\"\n\t\"SetHorz.h\"\n\t<vector>\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/IndividualPixels.h\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/PointCloud.h\n\t\"PointCloudPoint.h\"\n\t<wx/string.h>\n\t<wx/list.h>\n\t<wx/hashmap.h>\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/PointCloudPoint.h\n\t<wx/string.h>\n\t<math.h>\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/camview.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1284841903 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ActiveStereoMain.cpp\n\t\"ActiveStereoMain.h\"\n\t<wx/msgdlg.h>\n\t<wx/numdlg.h>\n\t<wx/string.h>\n\t<wx/intl.h>\n\n1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/Cameras.cpp\n\t\"Cameras.h\"\n\n1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/PointCloud.cpp\n\t\"PointCloud.h\"\n\t<wx/listimpl.cpp>\n\n1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/PointCloudPoint.cpp\n\t\"PointCloudPoint.h\"\n\n1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ScanThread.cpp\n\t\"ScanThread.h\"\n\t<iostream>\n\t<wx/arrimpl.cpp>\n\n1280185350 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/SetConfig.c\n\t<stdio.h>\n\t<usb.h>\n\t\"SetConfig.h\"\n\n1280185251 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/SetHorz.c\n\t<usb.h>\n\t<stdio.h>\n\t\"SetHorz.h\"\n\n1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/camview.cpp\n\t<wx/image.h>\n\t\"camview.h\"\n\t<math.h>\n\t<stdio.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/CaptureThread.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t<queue>\n\n1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/CaptureThread.cpp\n\t\"CaptureThread.h\"\n\n1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ScanStatus.h\n\n1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ScanStatus.cpp\n\t\"ScanStatus.h\"\n\n1284840310 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/DistanceToReferenceDialog.h\n\t<wx/spinctrl.h>\n\t<wx/dialog.h>\n\t<wx/sizer.h>\n\t<wx/button.h>\n\t<wx/panel.h>\n\t<wx/statline.h>\n\t<wx/stattext.h>\n\t\"CaptureThread.h\"\n\n1284840311 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/DistanceToReferenceDialog.cpp\n\t\"DistanceToReferenceDialog.h\"\n\t<wx/string.h>\n\t<wx/intl.h>\n\n1284309288 source:/home/abarry/makerscanner/ScannerPC/ActiveStereoApp.cpp\n\t\"ActiveStereoApp.h\"\n\t\"ActiveStereoMain.h\"\n\t<wx/image.h>\n\n1284309288 /home/abarry/makerscanner/ScannerPC/ActiveStereoApp.h\n\t<wx/app.h>\n\n1284321005 /home/abarry/makerscanner/ScannerPC/ActiveStereoMain.h\n\t<wx/sizer.h>\n\t<wx/button.h>\n\t<wx/menu.h>\n\t<wx/panel.h>\n\t<wx/slider.h>\n\t<wx/statusbr.h>\n\t<wx/statline.h>\n\t<wx/frame.h>\n\t<wx/stattext.h>\n\t<wx/textctrl.h>\n\t<wx/numdlg.h>\n\t<wx/ffile.h>\n\t<wx/dir.h>\n\t<wx/datetime.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"Cameras.h\"\n\t\"ScanThread.h\"\n\t\"ScanStatus.h\"\n\t\"camview.h\"\n\n1284319758 /home/abarry/makerscanner/ScannerPC/Cameras.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"ScanThread.h\"\n\t\"CaptureThread.h\"\n\t\"ScanStatus.h\"\n\t\"DistanceToReferenceDialog.h\"\n\n1284309288 /home/abarry/makerscanner/ScannerPC/ScanThread.h\n\t<wx/thread.h>\n\t<wx/string.h>\n\t<wx/textctrl.h>\n\t<wx/dialog.h>\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"IndividualPixels.h\"\n\t<wx/dynarray.h>\n\t<wx/ffile.h>\n\t\"PointCloud.h\"\n\t\"CaptureThread.h\"\n\t\"ScanStatus.h\"\n\t\"SetHorz.h\"\n\t<vector>\n\n1284309288 /home/abarry/makerscanner/ScannerPC/IndividualPixels.h\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1284309288 /home/abarry/makerscanner/ScannerPC/PointCloud.h\n\t\"PointCloudPoint.h\"\n\t<wx/string.h>\n\t<wx/list.h>\n\t<wx/hashmap.h>\n\n1284309288 /home/abarry/makerscanner/ScannerPC/PointCloudPoint.h\n\t<wx/string.h>\n\t<math.h>\n\n1284309288 /home/abarry/makerscanner/ScannerPC/CaptureThread.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t<queue>\n\n1284309288 /home/abarry/makerscanner/ScannerPC/ScanStatus.h\n\n1284309288 /home/abarry/makerscanner/ScannerPC/SetHorz.h\n\n1284309288 /home/abarry/makerscanner/ScannerPC/DistanceToReferenceDialog.h\n\t<wx/sizer.h>\n\t<wx/stattext.h>\n\t<wx/spinctrl.h>\n\t<wx/statline.h>\n\t<wx/panel.h>\n\t<wx/button.h>\n\t<wx/dialog.h>\n\t\"CaptureThread.h\"\n\n1284309288 /home/abarry/makerscanner/ScannerPC/camview.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1284322363 source:/home/abarry/makerscanner/ScannerPC/ActiveStereoMain.cpp\n\t\"ActiveStereoMain.h\"\n\t<wx/msgdlg.h>\n\t<wx/numdlg.h>\n\t<wx/string.h>\n\t<wx/intl.h>\n\n1284322039 source:/home/abarry/makerscanner/ScannerPC/Cameras.cpp\n\t\"Cameras.h\"\n\n1284316984 source:/home/abarry/makerscanner/ScannerPC/CaptureThread.cpp\n\t\"CaptureThread.h\"\n\n1284309288 source:/home/abarry/makerscanner/ScannerPC/DistanceToReferenceDialog.cpp\n\t\"DistanceToReferenceDialog.h\"\n\t<wx/intl.h>\n\t<wx/string.h>\n\n1284309288 source:/home/abarry/makerscanner/ScannerPC/PointCloud.cpp\n\t\"PointCloud.h\"\n\t<wx/listimpl.cpp>\n\n1284309288 source:/home/abarry/makerscanner/ScannerPC/PointCloudPoint.cpp\n\t\"PointCloudPoint.h\"\n\n1284309288 source:/home/abarry/makerscanner/ScannerPC/ScanStatus.cpp\n\t\"ScanStatus.h\"\n\n1284322179 source:/home/abarry/makerscanner/ScannerPC/ScanThread.cpp\n\t\"ScanThread.h\"\n\t<iostream>\n\t<wx/arrimpl.cpp>\n\n1284309288 source:/home/abarry/makerscanner/ScannerPC/camview.cpp\n\t<wx/image.h>\n\t\"camview.h\"\n\t<math.h>\n\t<stdio.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1282051479 /usr/include/wx-2.8/wx/config.h\n\t\"wx/confbase.h\"\n\t\"wx/msw/regconf.h\"\n\t\"wx/msw/iniconf.h\"\n\t\"wx/palmos/prefconf.h\"\n\t\"wx/fileconf.h\"\n\n1282051479 /usr/include/wx-2.8/wx/confbase.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/string.h\"\n\n1282051479 /usr/include/wx-2.8/wx/fileconf.h\n\t\"wx/defs.h\"\n\t\"wx/textfile.h\"\n\t\"wx/string.h\"\n\t\"wx/confbase.h\"\n\n1282051479 /usr/include/wx-2.8/wx/textfile.h\n\t\"wx/defs.h\"\n\t\"wx/textbuf.h\"\n\t\"wx/file.h\"\n\n1282051479 /usr/include/wx-2.8/wx/textbuf.h\n\t\"wx/defs.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/convauto.h\"\n\t\"wx/string.h\"\n\t\"wx/dynarray.h\"\n\n1282051479 /usr/include/wx-2.8/wx/file.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\t\"wx/strconv.h\"\n\n1448222417 source:/home/abarry/programs/makerscanner/ActiveStereoApp.cpp\n\t\"ActiveStereoApp.h\"\n\t\"ActiveStereoMain.h\"\n\t<wx/image.h>\n\n1386309819 /home/abarry/programs/makerscanner/ActiveStereoApp.h\n\t<wx/app.h>\n\n1385999950 /usr/include/wx-3.0/wx/app.h\n\t\"wx/event.h\"\n\t\"wx/eventfilter.h\"\n\t\"wx/build.h\"\n\t\"wx/cmdargs.h\"\n\t\"wx/init.h\"\n\t\"wx/intl.h\"\n\t\"wx/log.h\"\n\t\"wx/unix/app.h\"\n\t\"wx/msw/app.h\"\n\t\"wx/motif/app.h\"\n\t\"wx/dfb/app.h\"\n\t\"wx/gtk/app.h\"\n\t\"wx/gtk1/app.h\"\n\t\"wx/x11/app.h\"\n\t\"wx/osx/app.h\"\n\t\"wx/cocoa/app.h\"\n\t\"wx/os2/app.h\"\n\t\"wx/univ/theme.h\"\n\n1385999950 /usr/include/wx-3.0/wx/event.h\n\t\"wx/defs.h\"\n\t\"wx/cpp.h\"\n\t\"wx/object.h\"\n\t\"wx/clntdata.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/cursor.h\"\n\t\"wx/mousestate.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/thread.h\"\n\t\"wx/tracker.h\"\n\t\"wx/typeinfo.h\"\n\t\"wx/any.h\"\n\t\"wx/meta/convertible.h\"\n\t\"wx/meta/removeref.h\"\n\n1385999950 /usr/include/wx-3.0/wx/defs.h\n\t\"wx/platform.h\"\n\t\"wx/version.h\"\n\t\"wx/dlimpexp.h\"\n\t<stddef.h>\n\t\"wx/debug.h\"\n\t<sys/types.h>\n\t<sys/types.h>\n\t\"wx/windowid.h\"\n\t<unistd.h>\n\t\"wx/msw/winundef.h\"\n\t\"wx/features.h\"\n\n1385999950 /usr/include/wx-3.0/wx/platform.h\n\t<unistd.h>\n\t<TargetConditionals.h>\n\t<AvailabilityMacros.h>\n\t\"wx/osx/config_xcode.h\"\n\t\"wx/android/config_android.h\"\n\t\"wx/compiler.h\"\n\t\"wx/setup.h\"\n\t\"wx/msw/wince/libraries.h\"\n\t\"wx/msw/libraries.h\"\n\t\"wx/msw/gccpriv.h\"\n\t<TargetConditionals.h>\n\t<AvailabilityMacros.h>\n\t\"wx/chkconf.h\"\n\n1385999950 /usr/include/wx-3.0/wx/compiler.h\n\n1385999950 /usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0/wx/setup.h\n\n1385999950 /usr/include/wx-3.0/wx/chkconf.h\n\t\"wx/msw/wince/chkconf.h\"\n\t\"wx/msw/chkconf.h\"\n\t\"wx/gtk/chkconf.h\"\n\t\"wx/gtk/chkconf.h\"\n\t\"wx/cocoa/chkconf.h\"\n\t\"wx/osx/chkconf.h\"\n\t\"wx/os2/chkconf.h\"\n\t\"wx/dfb/chkconf.h\"\n\t\"wx/motif/chkconf.h\"\n\t\"wx/x11/chkconf.h\"\n\t\"wx/android/chkconf.h\"\n\t\"wx/unix/chkconf.h\"\n\t\"wx/univ/chkconf.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/chkconf.h\n\n1385999950 /usr/include/wx-3.0/wx/unix/chkconf.h\n\n1385999950 /usr/include/wx-3.0/wx/version.h\n\t\"wx/cpp.h\"\n\n1385999950 /usr/include/wx-3.0/wx/cpp.h\n\t\"wx/compiler.h\"\n\n1385999950 /usr/include/wx-3.0/wx/dlimpexp.h\n\n1385999950 /usr/include/wx-3.0/wx/debug.h\n\t<assert.h>\n\t<limits.h>\n\t\"wx/chartype.h\"\n\t\"wx/cpp.h\"\n\t\"wx/dlimpexp.h\"\n\n1385999950 /usr/include/wx-3.0/wx/chartype.h\n\t\"wx/platform.h\"\n\t<sys/types.h>\n\t<wchar.h>\n\t<wcstr.h>\n\t<stdlib.h>\n\t<widec.h>\n\t<ctype.h>\n\t<stddef.h>\n\t<string.h>\n\t<ctype.h>\n\t<tchar.h>\n\t<ctype.h>\n\n1385999951 /usr/include/wx-3.0/wx/windowid.h\n\n1385999950 /usr/include/wx-3.0/wx/features.h\n\n1385999950 /usr/include/wx-3.0/wx/object.h\n\t\"wx/memory.h\"\n\t\"wx/xti.h\"\n\t\"wx/rtti.h\"\n\t\"wx/xti2.h\"\n\t\"wx/msw/msvcrt.h\"\n\n1385999950 /usr/include/wx-3.0/wx/memory.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/msgout.h\"\n\t<stddef.h>\n\n1385999950 /usr/include/wx-3.0/wx/string.h\n\t\"wx/defs.h\"\n\t<ctype.h>\n\t<stdio.h>\n\t<string.h>\n\t<stdarg.h>\n\t<limits.h>\n\t<string.h>\n\t<stdio.h>\n\t<stdarg.h>\n\t<limits.h>\n\t<stdlib.h>\n\t\"wx/wxcrtbase.h\"\n\t\"wx/strvararg.h\"\n\t\"wx/buffer.h\"\n\t\"wx/strconv.h\"\n\t\"wx/stringimpl.h\"\n\t\"wx/stringops.h\"\n\t\"wx/unichar.h\"\n\t\"wx/tls.h\"\n\t\"wx/iosfwrap.h\"\n\t\"wx/crt.h\"\n\n1385999950 /usr/include/wx-3.0/wx/wxcrtbase.h\n\t\"wx/chartype.h\"\n\t<stdio.h>\n\t<string.h>\n\t<ctype.h>\n\t<wctype.h>\n\t<time.h>\n\t<io.h>\n\n1385999950 /usr/include/wx-3.0/wx/strvararg.h\n\t\"wx/platform.h\"\n\t\"wx/cpp.h\"\n\t\"wx/chartype.h\"\n\t\"wx/strconv.h\"\n\t\"wx/buffer.h\"\n\t\"wx/unichar.h\"\n\t<type_traits>\n\t<type_traits>\n\t<tr1/type_traits>\n\t\"wx/stringimpl.h\"\n\n1385999950 /usr/include/wx-3.0/wx/strconv.h\n\t\"wx/defs.h\"\n\t\"wx/chartype.h\"\n\t\"wx/buffer.h\"\n\t\"typeinfo.h\"\n\t<stdlib.h>\n\t\"wx/fontenc.h\"\n\n1385999950 /usr/include/wx-3.0/wx/buffer.h\n\t\"wx/chartype.h\"\n\t\"wx/wxcrtbase.h\"\n\t<stdlib.h>\n\n1385999950 /usr/include/wx-3.0/wx/typeinfo.h\n\t\"wx/defs.h\"\n\t<typeinfo>\n\t<string.h>\n\n1385999950 /usr/include/wx-3.0/wx/fontenc.h\n\n1385999950 /usr/include/wx-3.0/wx/unichar.h\n\t\"wx/defs.h\"\n\t\"wx/chartype.h\"\n\t\"wx/stringimpl.h\"\n\n1385999950 /usr/include/wx-3.0/wx/stringimpl.h\n\t\"wx/defs.h\"\n\t\"wx/chartype.h\"\n\t\"wx/wxcrtbase.h\"\n\t<stdlib.h>\n\t\"wx/beforestd.h\"\n\t<string>\n\t\"wx/afterstd.h\"\n\n1385999950 /usr/include/wx-3.0/wx/beforestd.h\n\n1385999950 /usr/include/wx-3.0/wx/afterstd.h\n\t\"wx/msw/winundef.h\"\n\n1385999950 /usr/include/wx-3.0/wx/stringops.h\n\t\"wx/chartype.h\"\n\t\"wx/stringimpl.h\"\n\t\"wx/unichar.h\"\n\t\"wx/buffer.h\"\n\n1385999950 /usr/include/wx-3.0/wx/tls.h\n\t\"wx/defs.h\"\n\t\"wx/msw/tls.h\"\n\t\"wx/os2/tls.h\"\n\t\"wx/unix/tls.h\"\n\t<stdlib.h>\n\n1385999950 /usr/include/wx-3.0/wx/unix/tls.h\n\t<pthread.h>\n\n1385999950 /usr/include/wx-3.0/wx/iosfwrap.h\n\t<iostream.h>\n\t<iosfwd>\n\t\"wx/msw/winundef.h\"\n\n1385999950 /usr/include/wx-3.0/wx/crt.h\n\t\"wx/defs.h\"\n\t\"wx/chartype.h\"\n\t\"wx/wxcrt.h\"\n\t\"wx/wxcrtvararg.h\"\n\n1385999950 /usr/include/wx-3.0/wx/wxcrt.h\n\t\"wx/wxcrtbase.h\"\n\t\"wx/string.h\"\n\t<string.h>\n\n1385999950 /usr/include/wx-3.0/wx/wxcrtvararg.h\n\t\"wx/wxcrt.h\"\n\t\"wx/strvararg.h\"\n\t\"wx/string.h\"\n\t<stdarg.h>\n\n1385999950 /usr/include/wx-3.0/wx/msgout.h\n\t\"wx/defs.h\"\n\t\"wx/chartype.h\"\n\t\"wx/strvararg.h\"\n\n1385999950 /usr/include/wx-3.0/wx/xti.h\n\t\"wx/defs.h\"\n\t\"wx/xtitypes.h\"\n\t\"wx/xtihandler.h\"\n\n1385999950 /usr/include/wx-3.0/wx/xtitypes.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/flags.h\"\n\t\"wx/intl.h\"\n\t\"wx/log.h\"\n\t<typeinfo>\n\n1385999950 /usr/include/wx-3.0/wx/hashmap.h\n\t\"wx/string.h\"\n\t\"wx/wxcrt.h\"\n\t<unordered_map>\n\t<tr1/unordered_map>\n\t<ext/hash_map>\n\t<hash_map>\n\t<stddef.h>\n\n1385999950 /usr/include/wx-3.0/wx/arrstr.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/beforestd.h\"\n\t<iterator>\n\t\"wx/afterstd.h\"\n\n1385999950 /usr/include/wx-3.0/wx/dynarray.h\n\t\"wx/defs.h\"\n\t\"wx/beforestd.h\"\n\t<vector>\n\t<algorithm>\n\t\"wx/afterstd.h\"\n\n1385999950 /usr/include/wx-3.0/wx/flags.h\n\n1385999950 /usr/include/wx-3.0/wx/intl.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/translation.h\"\n\t\"wx/fontenc.h\"\n\t\"wx/language.h\"\n\n1385999950 /usr/include/wx-3.0/wx/translation.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/buffer.h\"\n\t\"wx/language.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/strconv.h\"\n\t\"wx/scopedptr.h\"\n\n1385999950 /usr/include/wx-3.0/wx/language.h\n\t\"wx/defs.h\"\n\n1385999950 /usr/include/wx-3.0/wx/scopedptr.h\n\t\"wx/defs.h\"\n\t\"wx/checkeddelete.h\"\n\n1385999950 /usr/include/wx-3.0/wx/checkeddelete.h\n\t\"wx/cpp.h\"\n\n1385999950 /usr/include/wx-3.0/wx/log.h\n\t\"wx/defs.h\"\n\t\"wx/cpp.h\"\n\t\"wx/string.h\"\n\t\"wx/strvararg.h\"\n\t\"wx/arrstr.h\"\n\t<time.h>\n\t\"wx/dynarray.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/thread.h\"\n\t\"wx/iosfwrap.h\"\n\t\"wx/generic/logg.h\"\n\t\"wx/cocoa/log.h\"\n\n1385999950 /usr/include/wx-3.0/wx/thread.h\n\t\"wx/defs.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/logg.h\n\n1385999950 /usr/include/wx-3.0/wx/xtihandler.h\n\t\"wx/defs.h\"\n\t\"wx/xti.h\"\n\n1385999950 /usr/include/wx-3.0/wx/rtti.h\n\t\"wx/memory.h\"\n\t\"wx/flags.h\"\n\n1385999950 /usr/include/wx-3.0/wx/xti2.h\n\t\"wx/xtiprop.h\"\n\t\"wx/xtictor.h\"\n\n1385999950 /usr/include/wx-3.0/wx/xtiprop.h\n\t\"wx/defs.h\"\n\t\"wx/xti.h\"\n\t\"wx/any.h\"\n\n1385999950 /usr/include/wx-3.0/wx/any.h\n\t\"wx/defs.h\"\n\t<new>\n\t\"wx/string.h\"\n\t\"wx/meta/if.h\"\n\t\"wx/typeinfo.h\"\n\t\"wx/list.h\"\n\t\"wx/datetime.h\"\n\t\"wx/variant.h\"\n\n1385999950 /usr/include/wx-3.0/wx/meta/if.h\n\t\"wx/defs.h\"\n\n1385999950 /usr/include/wx-3.0/wx/list.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/vector.h\"\n\t\"wx/beforestd.h\"\n\t<algorithm>\n\t<iterator>\n\t<list>\n\t\"wx/afterstd.h\"\n\n1385999950 /usr/include/wx-3.0/wx/vector.h\n\t\"wx/defs.h\"\n\t<vector>\n\t<algorithm>\n\t\"wx/scopeguard.h\"\n\t\"wx/meta/movable.h\"\n\t\"wx/meta/if.h\"\n\t\"wx/beforestd.h\"\n\t<new>\n\t\"wx/afterstd.h\"\n\n1385999951 /usr/include/wx-3.0/wx/scopeguard.h\n\t\"wx/defs.h\"\n\t\"wx/except.h\"\n\n1385999950 /usr/include/wx-3.0/wx/except.h\n\t\"wx/defs.h\"\n\n1385999950 /usr/include/wx-3.0/wx/meta/movable.h\n\t\"wx/meta/pod.h\"\n\t\"wx/string.h\"\n\n1385999950 /usr/include/wx-3.0/wx/meta/pod.h\n\t\"wx/defs.h\"\n\n1385999950 /usr/include/wx-3.0/wx/datetime.h\n\t\"wx/defs.h\"\n\t\"wx/msw/wince/time.h\"\n\t<time.h>\n\t<limits.h>\n\t\"wx/longlong.h\"\n\t\"wx/anystr.h\"\n\t\"wx/dynarray.h\"\n\n1385999950 /usr/include/wx-3.0/wx/longlong.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t<limits.h>\n\t\"wx/iosfwrap.h\"\n\t<limits>\n\t\"wx/strvararg.h\"\n\n1385999950 /usr/include/wx-3.0/wx/anystr.h\n\t\"wx/string.h\"\n\n1385999950 /usr/include/wx-3.0/wx/variant.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/list.h\"\n\t\"wx/cpp.h\"\n\t\"wx/longlong.h\"\n\t\"wx/datetime.h\"\n\t\"wx/iosfwrap.h\"\n\t\"wx/any.h\"\n\n1385999950 /usr/include/wx-3.0/wx/xtictor.h\n\t\"wx/defs.h\"\n\t\"wx/xti.h\"\n\n1385999950 /usr/include/wx-3.0/wx/clntdata.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/hashmap.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gdicmn.h\n\t\"wx/defs.h\"\n\t\"wx/list.h\"\n\t\"wx/string.h\"\n\t\"wx/fontenc.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/math.h\"\n\n1385999950 /usr/include/wx-3.0/wx/math.h\n\t\"wx/defs.h\"\n\t<math.h>\n\t<cmath>\n\t<float.h>\n\t<ieeefp.h>\n\n1385999951 /usr/include/wx-3.0/wx/cursor.h\n\t\"wx/defs.h\"\n\t\"wx/msw/cursor.h\"\n\t\"wx/motif/cursor.h\"\n\t\"wx/gtk/cursor.h\"\n\t\"wx/gtk1/cursor.h\"\n\t\"wx/x11/cursor.h\"\n\t\"wx/dfb/cursor.h\"\n\t\"wx/osx/cursor.h\"\n\t\"wx/cocoa/cursor.h\"\n\t\"wx/os2/cursor.h\"\n\t\"wx/utils.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/cursor.h\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gdiobj.h\n\t\"wx/object.h\"\n\n1385999950 /usr/include/wx-3.0/wx/utils.h\n\t\"wx/object.h\"\n\t\"wx/list.h\"\n\t\"wx/filefn.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/versioninfo.h\"\n\t\"wx/meta/implicitconversion.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/mousestate.h\"\n\t\"wx/longlong.h\"\n\t\"wx/platinfo.h\"\n\t<direct.h>\n\t<dirent.h>\n\t<unistd.h>\n\t<stdio.h>\n\n1385999950 /usr/include/wx-3.0/wx/filefn.h\n\t\"wx/list.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/msw/wince/time.h\"\n\t\"wx/msw/private.h\"\n\t<time.h>\n\t<sys/types.h>\n\t<sys/stat.h>\n\t<process.h>\n\t\"wx/os2/private.h\"\n\t<direct.h>\n\t<io.h>\n\t<unistd.h>\n\t<unistd.h>\n\t<dirent.h>\n\t<direct.h>\n\t<dos.h>\n\t<io.h>\n\t<direct.h>\n\t<dos.h>\n\t<io.h>\n\t<io.h>\n\t<unistd.h>\n\t<dir.h>\n\t<fcntl.h>\n\t<sys/types.h>\n\n1385999950 /usr/include/wx-3.0/wx/versioninfo.h\n\t\"wx/string.h\"\n\n1385999950 /usr/include/wx-3.0/wx/meta/implicitconversion.h\n\t\"wx/defs.h\"\n\t\"wx/meta/if.h\"\n\n1385999950 /usr/include/wx-3.0/wx/mousestate.h\n\t\"wx/gdicmn.h\"\n\t\"wx/kbdstate.h\"\n\n1385999950 /usr/include/wx-3.0/wx/kbdstate.h\n\t\"wx/defs.h\"\n\n1385999950 /usr/include/wx-3.0/wx/platinfo.h\n\t\"wx/string.h\"\n\n1385999950 /usr/include/wx-3.0/wx/tracker.h\n\t\"wx/defs.h\"\n\n1385999950 /usr/include/wx-3.0/wx/meta/convertible.h\n\n1385999950 /usr/include/wx-3.0/wx/meta/removeref.h\n\n1385999950 /usr/include/wx-3.0/wx/eventfilter.h\n\t\"wx/defs.h\"\n\n1385999950 /usr/include/wx-3.0/wx/build.h\n\t\"wx/version.h\"\n\n1385999950 /usr/include/wx-3.0/wx/cmdargs.h\n\t\"wx/arrstr.h\"\n\n1385999950 /usr/include/wx-3.0/wx/init.h\n\t\"wx/defs.h\"\n\t\"wx/chartype.h\"\n\t\"wx/msw/init.h\"\n\n1385999950 /usr/include/wx-3.0/wx/unix/app.h\n\t<signal.h>\n\n1385999951 /usr/include/wx-3.0/wx/gtk/app.h\n\n1386309819 /home/abarry/programs/makerscanner/ActiveStereoMain.h\n\t<wx/sizer.h>\n\t<wx/button.h>\n\t<wx/menu.h>\n\t<wx/panel.h>\n\t<wx/slider.h>\n\t<wx/statusbr.h>\n\t<wx/statline.h>\n\t<wx/frame.h>\n\t<wx/stattext.h>\n\t<wx/textctrl.h>\n\t<wx/numdlg.h>\n\t<wx/ffile.h>\n\t<wx/dir.h>\n\t<wx/datetime.h>\n\t<wx/config.h>\n\t<wx/filename.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"Cameras.h\"\n\t\"ScanThread.h\"\n\t\"ScanStatus.h\"\n\t\"camview.h\"\n\n1385999951 /usr/include/wx-3.0/wx/sizer.h\n\t\"wx/defs.h\"\n\t\"wx/window.h\"\n\n1385999951 /usr/include/wx-3.0/wx/window.h\n\t\"wx/event.h\"\n\t\"wx/list.h\"\n\t\"wx/cursor.h\"\n\t\"wx/font.h\"\n\t\"wx/colour.h\"\n\t\"wx/region.h\"\n\t\"wx/utils.h\"\n\t\"wx/intl.h\"\n\t\"wx/validate.h\"\n\t\"wx/palette.h\"\n\t\"wx/accel.h\"\n\t\"wx/access.h\"\n\t\"wx/msw/window.h\"\n\t\"wx/motif/window.h\"\n\t\"wx/gtk/window.h\"\n\t\"wx/gtk1/window.h\"\n\t\"wx/x11/window.h\"\n\t\"wx/dfb/window.h\"\n\t\"wx/osx/window.h\"\n\t\"wx/cocoa/window.h\"\n\t\"wx/os2/window.h\"\n\t\"wx/univ/window.h\"\n\n1385999951 /usr/include/wx-3.0/wx/font.h\n\t\"wx/defs.h\"\n\t\"wx/fontenc.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/msw/font.h\"\n\t\"wx/motif/font.h\"\n\t\"wx/gtk/font.h\"\n\t\"wx/gtk1/font.h\"\n\t\"wx/x11/font.h\"\n\t\"wx/dfb/font.h\"\n\t\"wx/osx/font.h\"\n\t\"wx/cocoa/font.h\"\n\t\"wx/os2/font.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/font.h\n\n1385999951 /usr/include/wx-3.0/wx/colour.h\n\t\"wx/defs.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/variant.h\"\n\t\"wx/msw/colour.h\"\n\t\"wx/motif/colour.h\"\n\t\"wx/gtk/colour.h\"\n\t\"wx/gtk1/colour.h\"\n\t\"wx/generic/colour.h\"\n\t\"wx/x11/colour.h\"\n\t\"wx/osx/colour.h\"\n\t\"wx/cocoa/colour.h\"\n\t\"wx/os2/colour.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/colour.h\n\n1385999951 /usr/include/wx-3.0/wx/region.h\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/msw/region.h\"\n\t\"wx/gtk/region.h\"\n\t\"wx/gtk1/region.h\"\n\t\"wx/x11/region.h\"\n\t\"wx/dfb/region.h\"\n\t\"wx/osx/region.h\"\n\t\"wx/cocoa/region.h\"\n\t\"wx/os2/region.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/region.h\n\n1385999951 /usr/include/wx-3.0/wx/validate.h\n\t\"wx/defs.h\"\n\t\"wx/event.h\"\n\n1385999951 /usr/include/wx-3.0/wx/palette.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/msw/palette.h\"\n\t\"wx/x11/palette.h\"\n\t\"wx/generic/paletteg.h\"\n\t\"wx/osx/palette.h\"\n\t\"wx/os2/palette.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/paletteg.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\n1385999951 /usr/include/wx-3.0/wx/accel.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/generic/accel.h\"\n\t\"wx/msw/accel.h\"\n\t\"wx/motif/accel.h\"\n\t\"wx/gtk/accel.h\"\n\t\"wx/gtk1/accel.h\"\n\t\"wx/osx/accel.h\"\n\t\"wx/generic/accel.h\"\n\t\"wx/os2/accel.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/accel.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/accel.h\n\t\"wx/generic/accel.h\"\n\n1385999951 /usr/include/wx-3.0/wx/access.h\n\t\"wx/defs.h\"\n\t\"wx/variant.h\"\n\t\"wx/msw/ole/access.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/window.h\n\t\"wx/dynarray.h\"\n\n1385999950 /usr/include/wx-3.0/wx/button.h\n\t\"wx/defs.h\"\n\t\"wx/anybutton.h\"\n\t\"wx/univ/button.h\"\n\t\"wx/msw/button.h\"\n\t\"wx/motif/button.h\"\n\t\"wx/gtk/button.h\"\n\t\"wx/gtk1/button.h\"\n\t\"wx/osx/button.h\"\n\t\"wx/cocoa/button.h\"\n\t\"wx/os2/button.h\"\n\n1385999950 /usr/include/wx-3.0/wx/anybutton.h\n\t\"wx/defs.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/anybutton.h\"\n\t\"wx/msw/anybutton.h\"\n\t\"wx/gtk/anybutton.h\"\n\t\"wx/osx/anybutton.h\"\n\n1385999951 /usr/include/wx-3.0/wx/bitmap.h\n\t\"wx/string.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/colour.h\"\n\t\"wx/image.h\"\n\t\"wx/variant.h\"\n\t\"wx/msw/bitmap.h\"\n\t\"wx/x11/bitmap.h\"\n\t\"wx/gtk/bitmap.h\"\n\t\"wx/gtk1/bitmap.h\"\n\t\"wx/x11/bitmap.h\"\n\t\"wx/dfb/bitmap.h\"\n\t\"wx/osx/bitmap.h\"\n\t\"wx/cocoa/bitmap.h\"\n\t\"wx/os2/bitmap.h\"\n\t\"wx/generic/mask.h\"\n\n1385999951 /usr/include/wx-3.0/wx/image.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/stream.h\"\n\t\"wx/variant.h\"\n\t\"wx/imagbmp.h\"\n\t\"wx/imagpng.h\"\n\t\"wx/imaggif.h\"\n\t\"wx/imagpcx.h\"\n\t\"wx/imagjpeg.h\"\n\t\"wx/imagtga.h\"\n\t\"wx/imagtiff.h\"\n\t\"wx/imagpnm.h\"\n\t\"wx/imagxpm.h\"\n\t\"wx/imagiff.h\"\n\n1385999950 /usr/include/wx-3.0/wx/stream.h\n\t\"wx/defs.h\"\n\t<stdio.h>\n\t\"wx/object.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagbmp.h\n\t\"wx/image.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagpng.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\t\"wx/versioninfo.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imaggif.h\n\t\"wx/image.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagpcx.h\n\t\"wx/image.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagjpeg.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\t\"wx/versioninfo.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagtga.h\n\t\"wx/image.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagtiff.h\n\t\"wx/defs.h\"\n\t\"wx/image.h\"\n\t\"wx/versioninfo.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagpnm.h\n\t\"wx/image.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagxpm.h\n\t\"wx/image.h\"\n\n1385999951 /usr/include/wx-3.0/wx/imagiff.h\n\t\"wx/image.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/bitmap.h\n\n1385999951 /usr/include/wx-3.0/wx/control.h\n\t\"wx/defs.h\"\n\t\"wx/window.h\"\n\t\"wx/univ/control.h\"\n\t\"wx/msw/control.h\"\n\t\"wx/motif/control.h\"\n\t\"wx/gtk/control.h\"\n\t\"wx/gtk1/control.h\"\n\t\"wx/osx/control.h\"\n\t\"wx/cocoa/control.h\"\n\t\"wx/os2/control.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/control.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/anybutton.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/button.h\n\n1385999951 /usr/include/wx-3.0/wx/menu.h\n\t\"wx/defs.h\"\n\t\"wx/list.h\"\n\t\"wx/window.h\"\n\t\"wx/menuitem.h\"\n\t\"wx/univ/menu.h\"\n\t\"wx/msw/menu.h\"\n\t\"wx/motif/menu.h\"\n\t\"wx/gtk/menu.h\"\n\t\"wx/gtk1/menu.h\"\n\t\"wx/osx/menu.h\"\n\t\"wx/cocoa/menu.h\"\n\t\"wx/os2/menu.h\"\n\n1385999951 /usr/include/wx-3.0/wx/menuitem.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/univ/menuitem.h\"\n\t\"wx/msw/menuitem.h\"\n\t\"wx/motif/menuitem.h\"\n\t\"wx/gtk/menuitem.h\"\n\t\"wx/gtk1/menuitem.h\"\n\t\"wx/osx/menuitem.h\"\n\t\"wx/cocoa/menuitem.h\"\n\t\"wx/os2/menuitem.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/menuitem.h\n\t\"wx/bitmap.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/menu.h\n\n1385999951 /usr/include/wx-3.0/wx/panel.h\n\t\"wx/window.h\"\n\t\"wx/containr.h\"\n\t\"wx/univ/panel.h\"\n\t\"wx/msw/panel.h\"\n\t\"wx/generic/panelg.h\"\n\n1385999950 /usr/include/wx-3.0/wx/containr.h\n\t\"wx/defs.h\"\n\t\"wx/event.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/panelg.h\n\t\"wx/bitmap.h\"\n\n1385999951 /usr/include/wx-3.0/wx/slider.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/slider.h\"\n\t\"wx/msw/slider.h\"\n\t\"wx/motif/slider.h\"\n\t\"wx/gtk/slider.h\"\n\t\"wx/gtk1/slider.h\"\n\t\"wx/osx/slider.h\"\n\t\"wx/cocoa/slider.h\"\n\t\"wx/os2/slider.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/slider.h\n\n1385999951 /usr/include/wx-3.0/wx/statusbr.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/list.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/univ/statusbr.h\"\n\t\"wx/msw/statusbar.h\"\n\t\"wx/generic/statusbr.h\"\n\t\"wx/osx/statusbr.h\"\n\t\"wx/generic/statusbr.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/statusbr.h\n\t\"wx/defs.h\"\n\t\"wx/pen.h\"\n\t\"wx/arrstr.h\"\n\n1385999951 /usr/include/wx-3.0/wx/pen.h\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/msw/pen.h\"\n\t\"wx/x11/pen.h\"\n\t\"wx/gtk/pen.h\"\n\t\"wx/gtk1/pen.h\"\n\t\"wx/dfb/pen.h\"\n\t\"wx/osx/pen.h\"\n\t\"wx/cocoa/pen.h\"\n\t\"wx/os2/pen.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/pen.h\n\n1385999951 /usr/include/wx-3.0/wx/statline.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/statline.h\"\n\t\"wx/msw/statline.h\"\n\t\"wx/gtk/statline.h\"\n\t\"wx/gtk1/statline.h\"\n\t\"wx/os2/statline.h\"\n\t\"wx/osx/statline.h\"\n\t\"wx/cocoa/statline.h\"\n\t\"wx/generic/statline.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/statline.h\n\t\"wx/defs.h\"\n\n1385999951 /usr/include/wx-3.0/wx/frame.h\n\t\"wx/toplevel.h\"\n\t\"wx/statusbr.h\"\n\t\"wx/univ/frame.h\"\n\t\"wx/msw/frame.h\"\n\t\"wx/gtk/frame.h\"\n\t\"wx/gtk1/frame.h\"\n\t\"wx/motif/frame.h\"\n\t\"wx/osx/frame.h\"\n\t\"wx/cocoa/frame.h\"\n\t\"wx/os2/frame.h\"\n\n1385999951 /usr/include/wx-3.0/wx/toplevel.h\n\t\"wx/nonownedwnd.h\"\n\t\"wx/iconbndl.h\"\n\t\"wx/weakref.h\"\n\t\"wx/msw/toplevel.h\"\n\t\"wx/gtk/toplevel.h\"\n\t\"wx/gtk1/toplevel.h\"\n\t\"wx/x11/toplevel.h\"\n\t\"wx/dfb/toplevel.h\"\n\t\"wx/osx/toplevel.h\"\n\t\"wx/cocoa/toplevel.h\"\n\t\"wx/os2/toplevel.h\"\n\t\"wx/motif/toplevel.h\"\n\t\"wx/univ/toplevel.h\"\n\n1385999951 /usr/include/wx-3.0/wx/nonownedwnd.h\n\t\"wx/window.h\"\n\t\"wx/dfb/nonownedwnd.h\"\n\t\"wx/gtk/nonownedwnd.h\"\n\t\"wx/osx/nonownedwnd.h\"\n\t\"wx/msw/nonownedwnd.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/nonownedwnd.h\n\n1385999951 /usr/include/wx-3.0/wx/iconbndl.h\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/icon.h\"\n\t\"wx/dynarray.h\"\n\n1385999951 /usr/include/wx-3.0/wx/icon.h\n\t\"wx/iconloc.h\"\n\t\"wx/msw/icon.h\"\n\t\"wx/motif/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/osx/icon.h\"\n\t\"wx/generic/icon.h\"\n\t\"wx/cocoa/icon.h\"\n\t\"wx/os2/icon.h\"\n\t\"wx/variant.h\"\n\n1385999950 /usr/include/wx-3.0/wx/iconloc.h\n\t\"wx/string.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/icon.h\n\t\"wx/bitmap.h\"\n\n1385999950 /usr/include/wx-3.0/wx/weakref.h\n\t\"wx/tracker.h\"\n\t\"wx/meta/convertible.h\"\n\t\"wx/meta/int2type.h\"\n\n1385999950 /usr/include/wx-3.0/wx/meta/int2type.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/toplevel.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/frame.h\n\n1385999951 /usr/include/wx-3.0/wx/stattext.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/stattext.h\"\n\t\"wx/msw/stattext.h\"\n\t\"wx/motif/stattext.h\"\n\t\"wx/gtk/stattext.h\"\n\t\"wx/gtk1/stattext.h\"\n\t\"wx/osx/stattext.h\"\n\t\"wx/cocoa/stattext.h\"\n\t\"wx/os2/stattext.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/stattext.h\n\n1385999951 /usr/include/wx-3.0/wx/textctrl.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/textentry.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/ioswrap.h\"\n\t\"wx/x11/textctrl.h\"\n\t\"wx/univ/textctrl.h\"\n\t\"wx/msw/wince/textctrlce.h\"\n\t\"wx/msw/textctrl.h\"\n\t\"wx/motif/textctrl.h\"\n\t\"wx/gtk/textctrl.h\"\n\t\"wx/gtk1/textctrl.h\"\n\t\"wx/osx/textctrl.h\"\n\t\"wx/cocoa/textctrl.h\"\n\t\"wx/os2/textctrl.h\"\n\n1385999951 /usr/include/wx-3.0/wx/textentry.h\n\t\"wx/filefn.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/gtk/textentry.h\"\n\t\"wx/osx/textentry.h\"\n\t\"wx/msw/textentry.h\"\n\t\"wx/motif/textentry.h\"\n\t\"wx/os2/textentry.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/textentry.h\n\n1385999950 /usr/include/wx-3.0/wx/ioswrap.h\n\t\"wx/beforestd.h\"\n\t<iostream.h>\n\t<iostream>\n\t\"wx/afterstd.h\"\n\t\"wx/msw/winundef.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/textctrl.h\n\n1385999951 /usr/include/wx-3.0/wx/numdlg.h\n\t\"wx/defs.h\"\n\t\"wx/generic/numdlgg.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/numdlgg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\n1385999951 /usr/include/wx-3.0/wx/dialog.h\n\t\"wx/toplevel.h\"\n\t\"wx/containr.h\"\n\t\"wx/sharedptr.h\"\n\t\"wx/univ/dialog.h\"\n\t\"wx/msw/dialog.h\"\n\t\"wx/motif/dialog.h\"\n\t\"wx/gtk/dialog.h\"\n\t\"wx/gtk1/dialog.h\"\n\t\"wx/osx/dialog.h\"\n\t\"wx/cocoa/dialog.h\"\n\t\"wx/os2/dialog.h\"\n\n1385999950 /usr/include/wx-3.0/wx/sharedptr.h\n\t\"wx/defs.h\"\n\t\"wx/atomic.h\"\n\n1385999950 /usr/include/wx-3.0/wx/atomic.h\n\t\"wx/defs.h\"\n\t\"wx/msw/wrapwin.h\"\n\t\"libkern/OSAtomic.h\"\n\t<atomic.h>\n\t\"wx/thread.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/dialog.h\n\n1385999950 /usr/include/wx-3.0/wx/ffile.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\t\"wx/convauto.h\"\n\t<stdio.h>\n\n1385999950 /usr/include/wx-3.0/wx/convauto.h\n\t\"wx/strconv.h\"\n\t\"wx/fontenc.h\"\n\n1385999950 /usr/include/wx-3.0/wx/dir.h\n\t\"wx/longlong.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\n1385999950 /usr/include/wx-3.0/wx/config.h\n\t\"wx/confbase.h\"\n\t\"wx/msw/regconf.h\"\n\t\"wx/os2/iniconf.h\"\n\t\"wx/fileconf.h\"\n\n1385999950 /usr/include/wx-3.0/wx/confbase.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/object.h\"\n\t\"wx/base64.h\"\n\n1385999950 /usr/include/wx-3.0/wx/base64.h\n\t\"wx/string.h\"\n\t\"wx/buffer.h\"\n\n1385999950 /usr/include/wx-3.0/wx/fileconf.h\n\t\"wx/defs.h\"\n\t\"wx/textfile.h\"\n\t\"wx/string.h\"\n\t\"wx/confbase.h\"\n\t\"wx/filename.h\"\n\n1385999950 /usr/include/wx-3.0/wx/textfile.h\n\t\"wx/defs.h\"\n\t\"wx/textbuf.h\"\n\t\"wx/file.h\"\n\n1385999950 /usr/include/wx-3.0/wx/textbuf.h\n\t\"wx/defs.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/convauto.h\"\n\t\"wx/string.h\"\n\t\"wx/dynarray.h\"\n\n1385999950 /usr/include/wx-3.0/wx/file.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/filefn.h\"\n\t\"wx/convauto.h\"\n\n1385999950 /usr/include/wx-3.0/wx/filename.h\n\t\"wx/arrstr.h\"\n\t\"wx/filefn.h\"\n\t\"wx/datetime.h\"\n\t\"wx/intl.h\"\n\t\"wx/longlong.h\"\n\t\"wx/file.h\"\n\n1386309819 /home/abarry/programs/makerscanner/Cameras.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"ScanThread.h\"\n\t\"CaptureThread.h\"\n\t\"ScanStatus.h\"\n\t\"DistanceToReferenceDialog.h\"\n\n1385999950 /usr/include/wx-3.0/wx/wx.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/list.h\"\n\t\"wx/hash.h\"\n\t\"wx/string.h\"\n\t\"wx/hashmap.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/intl.h\"\n\t\"wx/log.h\"\n\t\"wx/event.h\"\n\t\"wx/app.h\"\n\t\"wx/utils.h\"\n\t\"wx/stream.h\"\n\t\"wx/memory.h\"\n\t\"wx/math.h\"\n\t\"wx/stopwatch.h\"\n\t\"wx/timer.h\"\n\t\"wx/module.h\"\n\t\"wx/wxcrt.h\"\n\t\"wx/wxcrtvararg.h\"\n\t\"wx/window.h\"\n\t\"wx/containr.h\"\n\t\"wx/panel.h\"\n\t\"wx/toplevel.h\"\n\t\"wx/frame.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/region.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/image.h\"\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\t\"wx/dc.h\"\n\t\"wx/dcclient.h\"\n\t\"wx/dcmemory.h\"\n\t\"wx/dcprint.h\"\n\t\"wx/dcscreen.h\"\n\t\"wx/button.h\"\n\t\"wx/menuitem.h\"\n\t\"wx/menu.h\"\n\t\"wx/pen.h\"\n\t\"wx/brush.h\"\n\t\"wx/palette.h\"\n\t\"wx/icon.h\"\n\t\"wx/cursor.h\"\n\t\"wx/dialog.h\"\n\t\"wx/settings.h\"\n\t\"wx/msgdlg.h\"\n\t\"wx/dataobj.h\"\n\t\"wx/control.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/bmpbuttn.h\"\n\t\"wx/checkbox.h\"\n\t\"wx/checklst.h\"\n\t\"wx/choice.h\"\n\t\"wx/scrolbar.h\"\n\t\"wx/stattext.h\"\n\t\"wx/statbmp.h\"\n\t\"wx/statbox.h\"\n\t\"wx/listbox.h\"\n\t\"wx/radiobox.h\"\n\t\"wx/radiobut.h\"\n\t\"wx/textctrl.h\"\n\t\"wx/slider.h\"\n\t\"wx/gauge.h\"\n\t\"wx/scrolwin.h\"\n\t\"wx/dirdlg.h\"\n\t\"wx/toolbar.h\"\n\t\"wx/combobox.h\"\n\t\"wx/layout.h\"\n\t\"wx/sizer.h\"\n\t\"wx/statusbr.h\"\n\t\"wx/choicdlg.h\"\n\t\"wx/textdlg.h\"\n\t\"wx/filedlg.h\"\n\t\"wx/mdi.h\"\n\t\"wx/validate.h\"\n\t\"wx/valtext.h\"\n\n1385999950 /usr/include/wx-3.0/wx/hash.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/object.h\"\n\n1385999950 /usr/include/wx-3.0/wx/stopwatch.h\n\t\"wx/defs.h\"\n\t\"wx/longlong.h\"\n\t\"wx/time.h\"\n\n1385999950 /usr/include/wx-3.0/wx/time.h\n\t\"wx/longlong.h\"\n\n1385999950 /usr/include/wx-3.0/wx/timer.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/longlong.h\"\n\t\"wx/event.h\"\n\t\"wx/stopwatch.h\"\n\t\"wx/utils.h\"\n\n1385999950 /usr/include/wx-3.0/wx/module.h\n\t\"wx/object.h\"\n\t\"wx/list.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/dynarray.h\"\n\n1385999951 /usr/include/wx-3.0/wx/dc.h\n\t\"wx/object.h\"\n\t\"wx/intl.h\"\n\t\"wx/cursor.h\"\n\t\"wx/font.h\"\n\t\"wx/colour.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/brush.h\"\n\t\"wx/pen.h\"\n\t\"wx/palette.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/math.h\"\n\t\"wx/image.h\"\n\t\"wx/region.h\"\n\t\"wx/affinematrix2d.h\"\n\n1385999950 /usr/include/wx-3.0/wx/brush.h\n\t\"wx/defs.h\"\n\t\"wx/object.h\"\n\t\"wx/gdiobj.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/msw/brush.h\"\n\t\"wx/x11/brush.h\"\n\t\"wx/gtk/brush.h\"\n\t\"wx/gtk1/brush.h\"\n\t\"wx/dfb/brush.h\"\n\t\"wx/osx/brush.h\"\n\t\"wx/cocoa/brush.h\"\n\t\"wx/os2/brush.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/brush.h\n\n1385999950 /usr/include/wx-3.0/wx/affinematrix2d.h\n\t\"wx/defs.h\"\n\t\"wx/affinematrix2dbase.h\"\n\n1385999950 /usr/include/wx-3.0/wx/affinematrix2dbase.h\n\t\"wx/defs.h\"\n\t\"wx/geometry.h\"\n\n1385999951 /usr/include/wx-3.0/wx/geometry.h\n\t\"wx/defs.h\"\n\t\"wx/utils.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/math.h\"\n\n1385999951 /usr/include/wx-3.0/wx/dcclient.h\n\t\"wx/dc.h\"\n\n1385999951 /usr/include/wx-3.0/wx/dcmemory.h\n\t\"wx/dc.h\"\n\t\"wx/bitmap.h\"\n\n1385999951 /usr/include/wx-3.0/wx/dcprint.h\n\t\"wx/defs.h\"\n\t\"wx/dc.h\"\n\n1385999951 /usr/include/wx-3.0/wx/dcscreen.h\n\t\"wx/defs.h\"\n\t\"wx/dc.h\"\n\n1385999951 /usr/include/wx-3.0/wx/settings.h\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\n1385999951 /usr/include/wx-3.0/wx/msgdlg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\t\"wx/stockitem.h\"\n\t\"wx/generic/msgdlgg.h\"\n\t\"wx/cocoa/msgdlg.h\"\n\t\"wx/msw/msgdlg.h\"\n\t\"wx/motif/msgdlg.h\"\n\t\"wx/gtk/msgdlg.h\"\n\t\"wx/osx/msgdlg.h\"\n\t\"wx/os2/msgdlg.h\"\n\n1385999950 /usr/include/wx-3.0/wx/stockitem.h\n\t\"wx/defs.h\"\n\t\"wx/chartype.h\"\n\t\"wx/string.h\"\n\t\"wx/accel.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/msgdlgg.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/msgdlg.h\n\n1385999951 /usr/include/wx-3.0/wx/dataobj.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/msw/ole/dataform.h\"\n\t\"wx/motif/dataform.h\"\n\t\"wx/gtk/dataform.h\"\n\t\"wx/gtk1/dataform.h\"\n\t\"wx/x11/dataform.h\"\n\t\"wx/osx/dataform.h\"\n\t\"wx/cocoa/dataform.h\"\n\t\"wx/os2/dataform.h\"\n\t\"wx/msw/ole/dataobj.h\"\n\t\"wx/motif/dataobj.h\"\n\t\"wx/x11/dataobj.h\"\n\t\"wx/gtk/dataobj.h\"\n\t\"wx/gtk1/dataobj.h\"\n\t\"wx/osx/dataobj.h\"\n\t\"wx/cocoa/dataobj.h\"\n\t\"wx/os2/dataobj.h\"\n\t\"wx/msw/ole/dataobj2.h\"\n\t\"wx/gtk/dataobj2.h\"\n\t\"wx/gtk1/dataobj2.h\"\n\t\"wx/x11/dataobj2.h\"\n\t\"wx/motif/dataobj2.h\"\n\t\"wx/osx/dataobj2.h\"\n\t\"wx/cocoa/dataobj2.h\"\n\t\"wx/os2/dataobj2.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/dataform.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/dataobj.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/dataobj2.h\n\n1385999951 /usr/include/wx-3.0/wx/ctrlsub.h\n\t\"wx/defs.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/control.h\"\n\t\"wx/msw/ctrlsub.h\"\n\t\"wx/motif/ctrlsub.h\"\n\n1385999950 /usr/include/wx-3.0/wx/bmpbuttn.h\n\t\"wx/defs.h\"\n\t\"wx/button.h\"\n\t\"wx/univ/bmpbuttn.h\"\n\t\"wx/msw/bmpbuttn.h\"\n\t\"wx/motif/bmpbuttn.h\"\n\t\"wx/gtk/bmpbuttn.h\"\n\t\"wx/gtk1/bmpbuttn.h\"\n\t\"wx/osx/bmpbuttn.h\"\n\t\"wx/cocoa/bmpbuttn.h\"\n\t\"wx/os2/bmpbuttn.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/bmpbuttn.h\n\n1385999950 /usr/include/wx-3.0/wx/checkbox.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/checkbox.h\"\n\t\"wx/msw/checkbox.h\"\n\t\"wx/motif/checkbox.h\"\n\t\"wx/gtk/checkbox.h\"\n\t\"wx/gtk1/checkbox.h\"\n\t\"wx/osx/checkbox.h\"\n\t\"wx/cocoa/checkbox.h\"\n\t\"wx/os2/checkbox.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/checkbox.h\n\n1385999950 /usr/include/wx-3.0/wx/checklst.h\n\t\"wx/defs.h\"\n\t\"wx/listbox.h\"\n\t\"wx/univ/checklst.h\"\n\t\"wx/msw/wince/checklst.h\"\n\t\"wx/msw/checklst.h\"\n\t\"wx/motif/checklst.h\"\n\t\"wx/gtk/checklst.h\"\n\t\"wx/gtk1/checklst.h\"\n\t\"wx/osx/checklst.h\"\n\t\"wx/cocoa/checklst.h\"\n\t\"wx/os2/checklst.h\"\n\n1385999951 /usr/include/wx-3.0/wx/listbox.h\n\t\"wx/defs.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/univ/listbox.h\"\n\t\"wx/msw/listbox.h\"\n\t\"wx/motif/listbox.h\"\n\t\"wx/gtk/listbox.h\"\n\t\"wx/gtk1/listbox.h\"\n\t\"wx/osx/listbox.h\"\n\t\"wx/os2/listbox.h\"\n\t\"wx/cocoa/listbox.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/listbox.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/checklst.h\n\n1385999951 /usr/include/wx-3.0/wx/choice.h\n\t\"wx/defs.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/univ/choice.h\"\n\t\"wx/msw/wince/choicece.h\"\n\t\"wx/msw/choice.h\"\n\t\"wx/motif/choice.h\"\n\t\"wx/gtk/choice.h\"\n\t\"wx/gtk1/choice.h\"\n\t\"wx/osx/choice.h\"\n\t\"wx/cocoa/choice.h\"\n\t\"wx/os2/choice.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/choice.h\n\n1385999951 /usr/include/wx-3.0/wx/scrolbar.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/scrolbar.h\"\n\t\"wx/msw/scrolbar.h\"\n\t\"wx/motif/scrolbar.h\"\n\t\"wx/gtk/scrolbar.h\"\n\t\"wx/gtk1/scrolbar.h\"\n\t\"wx/osx/scrolbar.h\"\n\t\"wx/cocoa/scrolbar.h\"\n\t\"wx/os2/scrolbar.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/scrolbar.h\n\n1385999951 /usr/include/wx-3.0/wx/statbmp.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/icon.h\"\n\t\"wx/univ/statbmp.h\"\n\t\"wx/msw/statbmp.h\"\n\t\"wx/motif/statbmp.h\"\n\t\"wx/gtk/statbmp.h\"\n\t\"wx/gtk1/statbmp.h\"\n\t\"wx/osx/statbmp.h\"\n\t\"wx/cocoa/statbmp.h\"\n\t\"wx/os2/statbmp.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/statbmp.h\n\t\"wx/icon.h\"\n\n1385999951 /usr/include/wx-3.0/wx/statbox.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/containr.h\"\n\t\"wx/univ/statbox.h\"\n\t\"wx/msw/statbox.h\"\n\t\"wx/motif/statbox.h\"\n\t\"wx/gtk/statbox.h\"\n\t\"wx/gtk1/statbox.h\"\n\t\"wx/osx/statbox.h\"\n\t\"wx/cocoa/statbox.h\"\n\t\"wx/os2/statbox.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/statbox.h\n\n1385999951 /usr/include/wx-3.0/wx/radiobox.h\n\t\"wx/defs.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/dynarray.h\"\n\t\"wx/univ/radiobox.h\"\n\t\"wx/msw/radiobox.h\"\n\t\"wx/motif/radiobox.h\"\n\t\"wx/gtk/radiobox.h\"\n\t\"wx/gtk1/radiobox.h\"\n\t\"wx/osx/radiobox.h\"\n\t\"wx/cocoa/radiobox.h\"\n\t\"wx/os2/radiobox.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/radiobox.h\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\n1385999951 /usr/include/wx-3.0/wx/radiobut.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/radiobut.h\"\n\t\"wx/msw/radiobut.h\"\n\t\"wx/motif/radiobut.h\"\n\t\"wx/gtk/radiobut.h\"\n\t\"wx/gtk1/radiobut.h\"\n\t\"wx/osx/radiobut.h\"\n\t\"wx/cocoa/radiobut.h\"\n\t\"wx/os2/radiobut.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/radiobut.h\n\n1385999951 /usr/include/wx-3.0/wx/gauge.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/univ/gauge.h\"\n\t\"wx/msw/gauge.h\"\n\t\"wx/motif/gauge.h\"\n\t\"wx/gtk/gauge.h\"\n\t\"wx/gtk1/gauge.h\"\n\t\"wx/osx/gauge.h\"\n\t\"wx/cocoa/gauge.h\"\n\t\"wx/os2/gauge.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/gauge.h\n\n1385999951 /usr/include/wx-3.0/wx/scrolwin.h\n\t\"wx/panel.h\"\n\t\"wx/gtk/scrolwin.h\"\n\t\"wx/gtk1/scrolwin.h\"\n\t\"wx/generic/scrolwin.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/scrolwin.h\n\n1385999951 /usr/include/wx-3.0/wx/generic/scrolwin.h\n\n1385999951 /usr/include/wx-3.0/wx/dirdlg.h\n\t\"wx/dialog.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/msw/dirdlg.h\"\n\t\"wx/gtk/dirdlg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\t\"wx/osx/dirdlg.h\"\n\t\"wx/cocoa/dirdlg.h\"\n\t\"wx/generic/dirdlgg.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/dirdlg.h\n\n1385999951 /usr/include/wx-3.0/wx/toolbar.h\n\t\"wx/defs.h\"\n\t\"wx/tbarbase.h\"\n\t\"wx/univ/toolbar.h\"\n\t\"wx/msw/toolbar.h\"\n\t\"wx/msw/wince/tbarwce.h\"\n\t\"wx/motif/toolbar.h\"\n\t\"wx/gtk/toolbar.h\"\n\t\"wx/gtk1/toolbar.h\"\n\t\"wx/osx/toolbar.h\"\n\t\"wx/cocoa/toolbar.h\"\n\t\"wx/os2/toolbar.h\"\n\n1385999951 /usr/include/wx-3.0/wx/tbarbase.h\n\t\"wx/defs.h\"\n\t\"wx/bitmap.h\"\n\t\"wx/list.h\"\n\t\"wx/control.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/toolbar.h\n\n1385999951 /usr/include/wx-3.0/wx/combobox.h\n\t\"wx/defs.h\"\n\t\"wx/textctrl.h\"\n\t\"wx/ctrlsub.h\"\n\t\"wx/textentry.h\"\n\t\"wx/univ/combobox.h\"\n\t\"wx/msw/combobox.h\"\n\t\"wx/motif/combobox.h\"\n\t\"wx/gtk/combobox.h\"\n\t\"wx/gtk1/combobox.h\"\n\t\"wx/osx/combobox.h\"\n\t\"wx/cocoa/combobox.h\"\n\t\"wx/os2/combobox.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/combobox.h\n\t\"wx/choice.h\"\n\n1385999951 /usr/include/wx-3.0/wx/layout.h\n\t\"wx/object.h\"\n\n1385999950 /usr/include/wx-3.0/wx/choicdlg.h\n\t\"wx/defs.h\"\n\t\"wx/generic/choicdgg.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/choicdgg.h\n\t\"wx/dynarray.h\"\n\t\"wx/dialog.h\"\n\n1385999951 /usr/include/wx-3.0/wx/textdlg.h\n\t\"wx/generic/textdlgg.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/textdlgg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\t\"wx/valtext.h\"\n\t\"wx/textctrl.h\"\n\n1385999951 /usr/include/wx-3.0/wx/valtext.h\n\t\"wx/defs.h\"\n\t\"wx/validate.h\"\n\n1385999951 /usr/include/wx-3.0/wx/filedlg.h\n\t\"wx/defs.h\"\n\t\"wx/dialog.h\"\n\t\"wx/arrstr.h\"\n\t\"wx/generic/filedlgg.h\"\n\t\"wx/msw/filedlg.h\"\n\t\"wx/motif/filedlg.h\"\n\t\"wx/gtk/filedlg.h\"\n\t\"wx/gtk1/filedlg.h\"\n\t\"wx/osx/filedlg.h\"\n\t\"wx/cocoa/filedlg.h\"\n\t\"wx/os2/filedlg.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/filedlg.h\n\t\"wx/gtk/filectrl.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/filectrl.h\n\t\"wx/control.h\"\n\t\"wx/filectrl.h\"\n\n1385999951 /usr/include/wx-3.0/wx/filectrl.h\n\t\"wx/defs.h\"\n\t\"wx/string.h\"\n\t\"wx/event.h\"\n\t\"wx/gtk/filectrl.h\"\n\t\"wx/generic/filectrlg.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/filectrlg.h\n\t\"wx/containr.h\"\n\t\"wx/listctrl.h\"\n\t\"wx/filectrl.h\"\n\t\"wx/filename.h\"\n\n1385999951 /usr/include/wx-3.0/wx/listctrl.h\n\t\"wx/defs.h\"\n\t\"wx/listbase.h\"\n\t\"wx/msw/listctrl.h\"\n\t\"wx/osx/listctrl.h\"\n\t\"wx/generic/listctrl.h\"\n\n1385999951 /usr/include/wx-3.0/wx/listbase.h\n\t\"wx/colour.h\"\n\t\"wx/font.h\"\n\t\"wx/gdicmn.h\"\n\t\"wx/event.h\"\n\t\"wx/control.h\"\n\n1385999951 /usr/include/wx-3.0/wx/generic/listctrl.h\n\t\"wx/containr.h\"\n\t\"wx/scrolwin.h\"\n\t\"wx/textctrl.h\"\n\n1385999951 /usr/include/wx-3.0/wx/mdi.h\n\t\"wx/defs.h\"\n\t\"wx/frame.h\"\n\t\"wx/menu.h\"\n\t\"wx/generic/mdig.h\"\n\t\"wx/msw/mdi.h\"\n\t\"wx/gtk/mdi.h\"\n\t\"wx/gtk1/mdi.h\"\n\t\"wx/osx/mdi.h\"\n\t\"wx/cocoa/mdi.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/mdi.h\n\t\"wx/frame.h\"\n\n1386309819 /home/abarry/programs/makerscanner/ScanThread.h\n\t<wx/thread.h>\n\t<wx/string.h>\n\t<wx/textctrl.h>\n\t<wx/dialog.h>\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t\"IndividualPixels.h\"\n\t<wx/dynarray.h>\n\t<wx/ffile.h>\n\t\"PointCloud.h\"\n\t\"CaptureThread.h\"\n\t\"ScanStatus.h\"\n\t\"SetHorz.h\"\n\t<vector>\n\n1386309819 /home/abarry/programs/makerscanner/IndividualPixels.h\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1386309819 /home/abarry/programs/makerscanner/PointCloud.h\n\t\"PointCloudPoint.h\"\n\t<wx/string.h>\n\t<wx/list.h>\n\t<wx/hashmap.h>\n\n1386309819 /home/abarry/programs/makerscanner/PointCloudPoint.h\n\t<wx/string.h>\n\t<math.h>\n\n1386309819 /home/abarry/programs/makerscanner/CaptureThread.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\t<queue>\n\n1386309819 /home/abarry/programs/makerscanner/ScanStatus.h\n\n1386309819 /home/abarry/programs/makerscanner/SetHorz.h\n\n1386309819 /home/abarry/programs/makerscanner/DistanceToReferenceDialog.h\n\t<wx/spinctrl.h>\n\t<wx/dialog.h>\n\t<wx/sizer.h>\n\t<wx/button.h>\n\t<wx/panel.h>\n\t<wx/statline.h>\n\t<wx/stattext.h>\n\t\"CaptureThread.h\"\n\n1385999951 /usr/include/wx-3.0/wx/spinctrl.h\n\t\"wx/defs.h\"\n\t\"wx/spinbutt.h\"\n\t\"wx/msw/spinctrl.h\"\n\t\"wx/os2/spinctrl.h\"\n\t\"wx/gtk/spinctrl.h\"\n\t\"wx/gtk1/spinctrl.h\"\n\t\"wx/generic/spinctlg.h\"\n\n1385999951 /usr/include/wx-3.0/wx/spinbutt.h\n\t\"wx/defs.h\"\n\t\"wx/control.h\"\n\t\"wx/event.h\"\n\t\"wx/range.h\"\n\t\"wx/univ/spinbutt.h\"\n\t\"wx/msw/spinbutt.h\"\n\t\"wx/motif/spinbutt.h\"\n\t\"wx/gtk/spinbutt.h\"\n\t\"wx/gtk1/spinbutt.h\"\n\t\"wx/osx/spinbutt.h\"\n\t\"wx/cocoa/spinbutt.h\"\n\t\"wx/os2/spinbutt.h\"\n\n1385999951 /usr/include/wx-3.0/wx/range.h\n\t\"wx/defs.h\"\n\n1385999951 /usr/include/wx-3.0/wx/gtk/spinbutt.h\n\n1385999951 /usr/include/wx-3.0/wx/gtk/spinctrl.h\n\n1385999951 /usr/include/wx-3.0/wx/generic/spinctlg.h\n\t\"wx/compositewin.h\"\n\t\"wx/textctrl.h\"\n\n1385999951 /usr/include/wx-3.0/wx/compositewin.h\n\t\"wx/window.h\"\n\t\"wx/containr.h\"\n\n1386309819 /home/abarry/programs/makerscanner/camview.h\n\t<wx/wx.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1386309819 source:/home/abarry/programs/makerscanner/ActiveStereoMain.cpp\n\t\"ActiveStereoMain.h\"\n\t<wx/msgdlg.h>\n\t<wx/numdlg.h>\n\t<wx/string.h>\n\t<wx/intl.h>\n\n1386309819 source:/home/abarry/programs/makerscanner/Cameras.cpp\n\t\"Cameras.h\"\n\n1448221797 source:/home/abarry/programs/makerscanner/camview.cpp\n\t<wx/image.h>\n\t\"camview.h\"\n\t<math.h>\n\t<stdio.h>\n\t\"cv.h\"\n\t\"highgui.h\"\n\n1448221797 source:/home/abarry/programs/makerscanner/CaptureThread.cpp\n\t\"CaptureThread.h\"\n\n1386309819 source:/home/abarry/programs/makerscanner/DistanceToReferenceDialog.cpp\n\t\"DistanceToReferenceDialog.h\"\n\t<wx/string.h>\n\t<wx/intl.h>\n\n1386309819 source:/home/abarry/programs/makerscanner/PointCloud.cpp\n\t\"PointCloud.h\"\n\t<wx/listimpl.cpp>\n\n1385999950 /usr/include/wx-3.0/wx/listimpl.cpp\n\n1386309819 source:/home/abarry/programs/makerscanner/PointCloudPoint.cpp\n\t\"PointCloudPoint.h\"\n\n1386309819 source:/home/abarry/programs/makerscanner/ScanStatus.cpp\n\t\"ScanStatus.h\"\n\n1448221797 source:/home/abarry/programs/makerscanner/ScanThread.cpp\n\t\"ScanThread.h\"\n\t<iostream>\n\t<wx/arrimpl.cpp>\n\n1385999950 /usr/include/wx-3.0/wx/arrimpl.cpp\n\n"
  },
  {
    "path": "ActiveStereo.layout",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n<CodeBlocks_layout_file>\n\t<ActiveTarget name=\"Debug\" />\n\t<File name=\"camview.h\" open=\"0\" top=\"0\" tabpos=\"4\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"ActiveStereoMain.h\" open=\"1\" top=\"0\" tabpos=\"1\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"Cameras.h\" open=\"1\" top=\"0\" tabpos=\"4\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"CaptureThread.cpp\" open=\"0\" top=\"0\" tabpos=\"7\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"ScanThread.cpp\" open=\"1\" top=\"0\" tabpos=\"3\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"wxsmith/ActiveStereoframe.wxs\" open=\"0\" top=\"0\" tabpos=\"14\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"PointCloud.cpp\" open=\"1\" top=\"0\" tabpos=\"9\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"PointCloudPoint.h\" open=\"0\" top=\"0\" tabpos=\"1\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"ActiveStereoMain.cpp\" open=\"1\" top=\"1\" tabpos=\"5\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"21023\" topLine=\"519\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"ActiveStereoApp.cpp\" open=\"0\" top=\"0\" tabpos=\"13\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"CaptureThread.h\" open=\"0\" top=\"0\" tabpos=\"6\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"PointCloudPoint.cpp\" open=\"1\" top=\"0\" tabpos=\"7\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"PointCloud.h\" open=\"0\" top=\"0\" tabpos=\"7\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"ActiveStereoApp.h\" open=\"0\" top=\"0\" tabpos=\"2\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"IndividualPixels.h\" open=\"0\" top=\"0\" tabpos=\"6\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"Cameras.cpp\" open=\"1\" top=\"0\" tabpos=\"8\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"ScanThread.h\" open=\"1\" top=\"0\" tabpos=\"2\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n\t<File name=\"camview.cpp\" open=\"1\" top=\"0\" tabpos=\"6\" split=\"0\" active=\"1\" splitpos=\"0\" zoom_1=\"0\" zoom_2=\"0\">\n\t\t<Cursor>\n\t\t\t<Cursor1 position=\"0\" topLine=\"0\" />\n\t\t</Cursor>\n\t</File>\n</CodeBlocks_layout_file>\n"
  },
  {
    "path": "ActiveStereoApp.cpp",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\r\n\r\n#include \"ActiveStereoApp.h\"\r\n\r\n//(*AppHeaders\n#include \"ActiveStereoMain.h\"\n#include <wx/image.h>\n//*)\r\n\r\nIMPLEMENT_APP(ActiveStereoApp);\r\n\r\nbool ActiveStereoApp::OnInit()\r\n{\r\n    //(*AppInitialize\n    bool wxsOK = true;\n    wxInitAllImageHandlers();\n    if ( wxsOK )\n    {\n    \tActiveStereoFrame* Frame = new ActiveStereoFrame(0);\n    \tFrame->Show();\n    \tSetTopWindow(Frame);\n    }\n    //*)\r\n    return wxsOK;\r\n\r\n}\n"
  },
  {
    "path": "ActiveStereoApp.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\r\n#ifndef ACTIVESTEREOAPP_H\r\n#define ACTIVESTEREOAPP_H\r\n\r\n#include <wx/app.h>\r\n\r\nclass ActiveStereoApp : public wxApp\r\n{\r\n    public:\r\n        virtual bool OnInit();\r\n};\r\n\r\n#endif // ACTIVESTEREOAPP_H\n"
  },
  {
    "path": "ActiveStereoMain.cpp",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"ActiveStereoMain.h\"\n#include <wx/msgdlg.h>\n#include <wx/numdlg.h>\n\n//(*InternalHeaders(ActiveStereoFrame)\n#include <wx/string.h>\n#include <wx/intl.h>\n//*)\n\n\n//helper functions\nenum wxbuildinfoformat {\n    short_f, long_f };\n\nwxString wxbuildinfo(wxbuildinfoformat format)\n{\n    wxString wxbuild(wxVERSION_STRING);\n\n    if (format == long_f )\n    {\n#if defined(__WXMSW__)\n        wxbuild << _T(\"-Windows\");\n        #define PIXMAPS_DIR \"\"\n#elif defined(__UNIX__)\n        wxbuild << _T(\"-Linux\");\n#endif\n\n#if wxUSE_UNICODE\n        wxbuild << _T(\"-Unicode build\");\n#else\n        wxbuild << _T(\"-ANSI build\");\n#endif // wxUSE_UNICODE\n    }\n\n    return wxbuild;\n}\n\n//(*IdInit(ActiveStereoFrame)\nconst long ActiveStereoFrame::ID_STATICTEXT3 = wxNewId();\nconst long ActiveStereoFrame::ID_STATICTEXT4 = wxNewId();\nconst long ActiveStereoFrame::ID_STATICTEXT1 = wxNewId();\nconst long ActiveStereoFrame::ID_FPS_LABEL = wxNewId();\nconst long ActiveStereoFrame::ID_BUTTON4 = wxNewId();\nconst long ActiveStereoFrame::ID_STATICTEXT7 = wxNewId();\nconst long ActiveStereoFrame::ID_SLIDER3 = wxNewId();\nconst long ActiveStereoFrame::ID_STATICTEXT5 = wxNewId();\nconst long ActiveStereoFrame::ID_SLIDER1 = wxNewId();\nconst long ActiveStereoFrame::ID_STATICTEXT6 = wxNewId();\nconst long ActiveStereoFrame::ID_BUTTON3 = wxNewId();\nconst long ActiveStereoFrame::ID_BUTTON1 = wxNewId();\nconst long ActiveStereoFrame::ID_STATICLINE1 = wxNewId();\nconst long ActiveStereoFrame::ID_TEXTCTRL1 = wxNewId();\nconst long ActiveStereoFrame::ID_PANEL1 = wxNewId();\nconst long ActiveStereoFrame::idMenuQuit = wxNewId();\nconst long ActiveStereoFrame::idMenuChangeCamera = wxNewId();\nconst long ActiveStereoFrame::idMenuAbout = wxNewId();\nconst long ActiveStereoFrame::ID_STATUSBAR1 = wxNewId();\n//*)\n\nBEGIN_EVENT_TABLE(ActiveStereoFrame,wxFrame)\n    //(*EventTable(ActiveStereoFrame)\n    //*)\n\n    EVT_COMMAND(wxID_ANY, IMAGE_UPDATE_EVENT, ActiveStereoFrame::UpdateImage)\n    EVT_COMMAND(wxID_ANY, DISPLAY_TEXT_EVENT, ActiveStereoFrame::DisplayText)\n    EVT_COMMAND(wxID_ANY, WRITE_TO_FILE_EVENT, ActiveStereoFrame::WriteToFile)\n    EVT_COMMAND(wxID_ANY, SCAN_PROGRESS_EVENT, ActiveStereoFrame::UpdateScanProgress)\n    EVT_COMMAND(wxID_ANY, SCAN_FINISHED_EVENT, ActiveStereoFrame::ScanFinished)\n\n    EVT_UPDATE_UI(ID_FPS_LABEL, ActiveStereoFrame::UpdateFps)\n\nEND_EVENT_TABLE()\n\n// Much of this is wxSmith generated code that creates (most of) the GUI.\nActiveStereoFrame::ActiveStereoFrame(wxWindow* parent,wxWindowID id)\n{\n    //(*Initialize(ActiveStereoFrame)\n    wxMenuItem* MenuItem2;\n    wxMenuItem* MenuItem1;\n    wxFlexGridSizer* FlexGridSizer1;\n    wxMenu* Menu1;\n    wxBoxSizer* BoxSizer2;\n    wxStaticBoxSizer* staticBoxSizerSettings;\n    wxBoxSizer* topBoxSizer;\n    wxBoxSizer* BoxSizer1;\n    wxMenuBar* MenuBar1;\n    wxMenu* Menu2;\n\n    Create(parent, wxID_ANY, _(\"MakerScanner v0.3.2\"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T(\"wxID_ANY\"));\n    SetClientSize(wxSize(1009,746));\n    SetMinSize(wxSize(1009,746));\n    Panel1 = new wxPanel(this, ID_PANEL1, wxPoint(120,232), wxDefaultSize, wxTAB_TRAVERSAL, _T(\"ID_PANEL1\"));\n    BoxSizer1 = new wxBoxSizer(wxVERTICAL);\n    topBoxSizer = new wxBoxSizer(wxHORIZONTAL);\n    headBoxSizer = new wxBoxSizer(wxVERTICAL);\n    staticBoxSizerStatus = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _(\"System Status\"));\n    flexGridStatus = new wxFlexGridSizer(0, 2, 0, 0);\n    lblStaticCameraConnected = new wxStaticText(Panel1, ID_STATICTEXT3, _(\"Camera: \"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_STATICTEXT3\"));\n    flexGridStatus->Add(lblStaticCameraConnected, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);\n    lblCameraConnected = new wxStaticText(Panel1, ID_STATICTEXT4, _(\"Disconnected\"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT, _T(\"ID_STATICTEXT4\"));\n    flexGridStatus->Add(lblCameraConnected, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);\n    StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _(\"FPS: \"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_STATICTEXT1\"));\n    flexGridStatus->Add(StaticText1, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);\n    lblFPS = new wxStaticText(Panel1, ID_FPS_LABEL, _(\"0.0\"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_FPS_LABEL\"));\n    flexGridStatus->Add(lblFPS, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);\n    staticBoxSizerStatus->Add(flexGridStatus, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    butCameraConnect = new wxButton(Panel1, ID_BUTTON4, _(\"Camera Connect\"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T(\"ID_BUTTON4\"));\n    staticBoxSizerStatus->Add(butCameraConnect, 1, wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL, 5);\n    headBoxSizer->Add(staticBoxSizerStatus, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    staticBoxSizerSettings = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _(\"Scan Settings\"));\n    FlexGridSizer1 = new wxFlexGridSizer(0, 2, 0, 0);\n    lblImageThreshold = new wxStaticText(Panel1, ID_STATICTEXT7, _(\"Brightness Threshold: 25\"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_STATICTEXT7\"));\n    FlexGridSizer1->Add(lblImageThreshold, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);\n    sliderImageThreshold = new wxSlider(Panel1, ID_SLIDER3, 25, 5, 50, wxDefaultPosition, wxSize(158,30), 0, wxDefaultValidator, _T(\"ID_SLIDER3\"));\n    FlexGridSizer1->Add(sliderImageThreshold, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    lblBrightnessFilter = new wxStaticText(Panel1, ID_STATICTEXT5, _(\"Brightness Filter: 0.80\"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_STATICTEXT5\"));\n    FlexGridSizer1->Add(lblBrightnessFilter, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);\n    sliderBrightnessFilter = new wxSlider(Panel1, ID_SLIDER1, 80, 0, 100, wxDefaultPosition, wxSize(158,35), 0, wxDefaultValidator, _T(\"ID_SLIDER1\"));\n    FlexGridSizer1->Add(sliderBrightnessFilter, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    staticBoxSizerSettings->Add(FlexGridSizer1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    headBoxSizer->Add(staticBoxSizerSettings, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    StaticText2 = new wxStaticText(Panel1, ID_STATICTEXT6, _(\"Brightness Threshold controls how bright the laser must be in the image for it to be detected.  Low values will be more forgiving of light lasers or dark objects, but tend to produce more noise.\\n\\nBrightness Filter controls how bright pixels must appear relative to other laser pixels.  Low values are more forgiving but tend to produce more noise.\"), wxDefaultPosition, wxSize(319,170), 0, _T(\"ID_STATICTEXT6\"));\n    headBoxSizer->Add(StaticText2, 1, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);\n    BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);\n    butCapture = new wxButton(Panel1, ID_BUTTON3, _(\"Start Scan\"), wxDefaultPosition, wxSize(150,32), 0, wxDefaultValidator, _T(\"ID_BUTTON3\"));\n    butCapture->Disable();\n    BoxSizer2->Add(butCapture, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    butDoneScanning = new wxButton(Panel1, ID_BUTTON1, _(\"Done Scanning\"), wxDefaultPosition, wxSize(150,32), 0, wxDefaultValidator, _T(\"ID_BUTTON1\"));\n    butDoneScanning->Disable();\n    BoxSizer2->Add(butDoneScanning, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    headBoxSizer->Add(BoxSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    topBoxSizer->Add(headBoxSizer, 0, wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL, 5);\n    BoxSizer1->Add(topBoxSizer, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    StaticLine1 = new wxStaticLine(Panel1, ID_STATICLINE1, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T(\"ID_STATICLINE1\"));\n    BoxSizer1->Add(StaticLine1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    txtLog = new wxTextCtrl(Panel1, ID_TEXTCTRL1, _(\"------------------ Quick Tips ------------------\\nThe top 25 pixels (above the green line) are reserved for a flat surface.  If the entire top of the image is not looking at a flat surface, the scan will not work well.\\n\\nTry not to move the camera or objects during the scan.  The system uses an image-difference technique which means that it is sensitive to any changes in the image.\\n\\n------------------ Initializing ------------------\"), wxDefaultPosition, wxSize(999,133), wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP, wxDefaultValidator, _T(\"ID_TEXTCTRL1\"));\n    txtLog->SetMinSize(wxSize(390,154));\n    BoxSizer1->Add(txtLog, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n    Panel1->SetSizer(BoxSizer1);\n    BoxSizer1->Fit(Panel1);\n    BoxSizer1->SetSizeHints(Panel1);\n    MenuBar1 = new wxMenuBar();\n    Menu1 = new wxMenu();\n    MenuItem1 = new wxMenuItem(Menu1, idMenuQuit, _(\"Quit\\tAlt-F4\"), _(\"Quit the application\"), wxITEM_NORMAL);\n    Menu1->Append(MenuItem1);\n    MenuBar1->Append(Menu1, _(\"&File\"));\n    Menu3 = new wxMenu();\n    menuChangeCamera = new wxMenuItem(Menu3, idMenuChangeCamera, _(\"Change Camera\"), _(\"Change the camera if you have more than one (requires restart)\"), wxITEM_NORMAL);\n    Menu3->Append(menuChangeCamera);\n    MenuBar1->Append(Menu3, _(\"Tools\"));\n    Menu2 = new wxMenu();\n    MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _(\"About\\tF1\"), _(\"Show info about this application\"), wxITEM_NORMAL);\n    Menu2->Append(MenuItem2);\n    MenuBar1->Append(Menu2, _(\"Help\"));\n    SetMenuBar(MenuBar1);\n    StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T(\"ID_STATUSBAR1\"));\n    int __wxStatusBarWidths_1[1] = { -1 };\n    int __wxStatusBarStyles_1[1] = { wxSB_NORMAL };\n    StatusBar1->SetFieldsCount(1,__wxStatusBarWidths_1);\n    StatusBar1->SetStatusStyles(1,__wxStatusBarStyles_1);\n    SetStatusBar(StatusBar1);\n\n    Connect(ID_BUTTON4,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ActiveStereoFrame::OnButCameraConnectClick);\n    Connect(ID_SLIDER3,wxEVT_SCROLL_THUMBTRACK,(wxObjectEventFunction)&ActiveStereoFrame::OnSliderImageThresholdCmdScroll);\n    Connect(ID_SLIDER3,wxEVT_SCROLL_CHANGED,(wxObjectEventFunction)&ActiveStereoFrame::OnSliderImageThresholdCmdScroll);\n    Connect(ID_SLIDER1,wxEVT_SCROLL_THUMBTRACK,(wxObjectEventFunction)&ActiveStereoFrame::OnSliderBrightnessFilterCmdScrollThumbTrack);\n    Connect(ID_SLIDER1,wxEVT_SCROLL_CHANGED,(wxObjectEventFunction)&ActiveStereoFrame::OnSliderBrightnessFilterCmdScrollThumbTrack);\n    Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ActiveStereoFrame::OnButCaptureClick);\n    Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ActiveStereoFrame::OnButDoneScanningClick);\n    Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&ActiveStereoFrame::OnQuit);\n    Connect(idMenuChangeCamera,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&ActiveStereoFrame::OnMenuChangeCameraSelected);\n    Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&ActiveStereoFrame::OnAbout);\n    //*)\n\n    // frame icon\n    #if defined(__WXMSW__)\n        {\n            wxIcon FrameIcon(wxT(\"laserIcon.ico\"), wxBITMAP_TYPE_ICO);\n            SetIcon(FrameIcon);\n        }\n    #elif defined(__UNIX__)\n        {\n        wxIcon FrameIcon;\n        FrameIcon.CopyFromBitmap(wxBitmap(wxImage(PIXMAPS_DIR _T(\"/laserIcon.png\"))));\n        SetIcon(FrameIcon);\n        }\n    #endif\n\n    // create image display window on the frame and insert it into the sizer\n    m_pCamView = new CCamView( Panel1, wxPoint(150,0), wxSize(640, 480) );\n    topBoxSizer->Insert(0, m_pCamView, 0, wxFIXED_MINSIZE);\n\n    // just added the camera window, so force sizers to reset\n    topBoxSizer->Layout();\n    BoxSizer1->Layout();\n\n    updateImageRunning = false;\n\n    // init camera and laser connected variables (used for labels)\n    cameraConnected = false;\n\n    // init last USB event time (so we don't overload the PIC with USB events)\n    lastUsbTime = wxDateTime::UNow();\n\n    scanStatus = new ScanStatus();\n\n    // read the camera preference out of the config\n    wxConfig *config = new wxConfig(wxT(\"makerscanner\"));\n    config->Set(config);\n\n    if (config->Read(wxT(\"CameraNum\"), &cameraNum))\n    {\n        // read the value successfully\n\n        // check for the -1 (first camera detected) case\n        if (cameraNum == -1)\n        {\n            cameraNum = CV_CAP_ANY;\n        }\n    } else {\n        cameraNum = CV_CAP_ANY;\n    }\n\n    //Start up the camera and look at the image\n    cam = new Cameras(txtLog, this, scanStatus, cameraNum);  // create the camera object\n\n    framesSinceLastFpsUpdate = 0;\n\n    timeOfLastFpsUpdate = wxDateTime::UNow();\n\n    //cvNamedWindow( \"win1\", CV_WINDOW_AUTOSIZE );\n}\n\n// Destructor\nActiveStereoFrame::~ActiveStereoFrame()\n{\n    // make sure to delete cam before m_pCamView otherwise\n    // you might get a crash on exit in Windows OS (most likley\n    // when you have a UpdateImage event after the viewer is gone)\n    if (cam)\n    {\n        delete cam;\n    }\n    if (m_pCamView)\n    {\n        delete m_pCamView;\n    }\n    if (scanStatus)\n    {\n        delete scanStatus;\n    }\n    if (config)\n    {\n        delete config;\n    }\n}\n\n// On thread destruction\nvoid ActiveStereoFrame::OnQuit(wxCommandEvent& event)\n{\n   Close();\n}\n\n// On about, show a dialog with name, email, etc.\nvoid ActiveStereoFrame::OnAbout(wxCommandEvent& event)\n{\n    wxString msg = wxT(\"MakerScanner v0.3.2\\nhttp://makerscanner.com\\n\\n(C) 2009-2010\\nAndrew Barry\\nabarry@gmail.com\");\n    wxMessageBox(msg, _(\"MakerScanner\"));\n}\n\n// Scan button clicked -- start a new scan!\nvoid ActiveStereoFrame::OnButCaptureClick(wxCommandEvent& event)\n{\n    wxString directory = wxT(\"\");\n\n    // read the last directory used\n    wxConfig *config = (wxConfig*)wxConfigBase::Get();\n    if (config->Read(wxT(\"ScanDir\"), &directory))\n    {\n        // check for a not valid directory\n        if (wxDir::Exists(directory) == false)\n        {\n            directory = wxT(\"\");\n        }\n    } else {\n        // failed to read config\n        directory = wxT(\"\");\n    }\n    // ask where to save the point cloud file\n    wxFileDialog dialog(this, wxT(\"Save pointcloud file\"), directory, wxT(\"pointcloud.ply\"), wxT(\"*.ply\"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT);\n    if (dialog.ShowModal() != wxID_OK)\n    {\n        // user clicked cancel\n        return;\n    }\n\n    // get the filename and path as a string\n    pointcloudFilename = dialog.GetPath();\n\n    wxFileName dir(pointcloudFilename);\n    if (dir.IsOk() == true)\n    {\n        // save the new selected directory\n        config->Write(wxT(\"ScanDir\"), dir.GetPath());\n\n    }\n\n    // clear the point cloud file\n    wxFFile file(pointcloudFilename, wxT(\"w\"));\n    if (file.IsOpened())\n    {\n        txtLog->AppendText(wxT(\"\\nWriting point cloud file:\\n\\t\"));\n        txtLog->AppendText(pointcloudFilename);\n        file.Close();\n    } else {\n        txtLog->AppendText(wxT(\"\\nPoint cloud file did not open!\"));\n        return;\n    }\n\n    // Disable buttons/sliders during scanning\n    SetGUIStateDuringScan(true);\n\n    if (!cam)\n    {\n        cam = new Cameras(txtLog, this, scanStatus, cameraNum);  // create the camera object if it doesn't already exist\n    }\n\n    cam->SetThresholdPixelValue(sliderImageThreshold->GetValue());\n    cam->SetBrightnessFilterValue(float(sliderBrightnessFilter->GetValue()) / 100.0);\n\n    // start scanning!\n    cam->StartScan();\n    butDoneScanning->SetFocus();\n}\n\n// Catch an update image event and display the new image\nvoid ActiveStereoFrame::UpdateImage(wxCommandEvent &event)\n{\n\n    // image is shipped as a pointer in the event\n    // cast to IplImage (must release once finished)\n    IplImage *img = (IplImage*)event.GetClientData();\n\n    if (updateImageRunning == true)\n    {\n        txtLog->AppendText(wxT(\"\\nUpdate image was already running\"));\n        cvReleaseImage(&img);\n        return;\n    }\n    updateImageRunning = true;\n\n    // camera is connected -- update if it isn't\n    if (cameraConnected != true)\n    {\n        cameraConnected = true;\n        lblCameraConnected->SetLabel(wxT(\"Connected\"));\n\n        // reset layouts now that the length of the label in lblCameraConnected has changed\n        flexGridStatus->Layout();\n        staticBoxSizerStatus->Layout();\n        headBoxSizer->Layout();\n\n        butCapture->Enable(true);\n        butCapture->SetFocus();\n    }\n\n    // update image display\n    m_pCamView->DrawCam(img);\n\n    // delete the image that was copied for us to display\n    cvReleaseImage(&img);\n\n    updateImageRunning = false;\n\n    // update the FPS display\n    framesSinceLastFpsUpdate ++;\n\n\n}\n\n// catch a display text event and append the text to the terminal display\nvoid ActiveStereoFrame::DisplayText(wxCommandEvent &event)\n{\n    txtLog->AppendText(event.GetString());\n}\n\n// catch a write to file event\n// the string to write is in the event\n// write to the point cloud file\nvoid ActiveStereoFrame::WriteToFile(wxCommandEvent &event)\n{\n    wxString FilesWritten = wxT(\"\");\n    //static int i = 0;  // monitor how many times we do file writes\n    //if (i==0) txtLog->AppendText(wxT(\"\\nWriting topoint cloud file: \"));\n    //i++;\n   //FilesWritten << i << wxT(\" \");\n    wxFFile file(pointcloudFilename, wxT(\"a\"));\n    file.Write(event.GetString());\n    if (file.IsOpened())  txtLog->AppendText(FilesWritten);\n    else txtLog->AppendText(wxT(\"Point cloud file did not open!\"));\n    file.Close();\n}\n\n// Camera connect button clicked -- attempt to connect to the camera\nvoid ActiveStereoFrame::OnButCameraConnectClick(wxCommandEvent& event)\n{\n    if (cam)\n    {\n        delete cam;\n    }\n    cam = new Cameras(txtLog, this, scanStatus, cameraNum);  // create the camera object\n}\n\n// Set buttons to be enabled/disabled during (or after) a scan\nvoid ActiveStereoFrame::SetGUIStateDuringScan(bool scanning)\n{\n    bool enable;\n    if (scanning == true)\n    {\n        enable = false;\n        butCapture->SetLabel(wxT(\"Scanning...\"));\n\n    } else {\n        enable = true;\n        butCapture->SetLabel(wxT(\"Start Scan\"));\n        butDoneScanning->SetLabel(wxT(\"Done Scanning\"));\n    }\n\n    butCapture->Enable(enable);\n    butDoneScanning->Enable(!enable);\n    sliderImageThreshold->Enable(enable);\n    sliderBrightnessFilter->Enable(enable);\n\n    butCameraConnect->Enable(enable);\n\n    if (scanning == false)\n    {\n        butCapture->SetFocus();\n    }\n\n}\n\n// Catch an update scan event and move the progress bar\nvoid ActiveStereoFrame::UpdateScanProgress(wxCommandEvent &event)\n{\n    // nothing here for now\n}\n\n// Re-enable buttons now that the scan is finished\nvoid ActiveStereoFrame::ScanFinished(wxCommandEvent &event)\n{\n    SetGUIStateDuringScan(false);\n}\n\n// Done Scanning button event handler\nvoid ActiveStereoFrame::OnButDoneScanningClick(wxCommandEvent& event)\n{\n    // stop the scan by telling scanStatus to stop scanning.\n    // this will let the scanning thread finish it's current tasks\n    // once done, the thread will send a scan finished event.\n    scanStatus->SetScanning(false);\n    butDoneScanning->SetLabel(wxT(\"Finishing Scan...\"));\n    butDoneScanning->Enable(false);\n}\n\n// Update the image threshold slider label on slider move\nvoid ActiveStereoFrame::OnSliderImageThresholdCmdScroll(wxScrollEvent& event)\n{\n    // update the label\n    wxString str = wxT(\"Brightness Threshold: \");\n    str << sliderImageThreshold->GetValue();\n    lblImageThreshold->SetLabel(str);\n}\n\nvoid ActiveStereoFrame::OnSliderBrightnessFilterCmdScrollThumbTrack(wxScrollEvent& event)\n{\n    // update the label\n    wxString str = wxT(\"Brightness Filter: \");\n    wxString numstr;\n    numstr.Printf(wxT(\"%.2f\"), float(sliderBrightnessFilter->GetValue()) / 100.0);\n    lblBrightnessFilter->SetLabel(str + numstr);\n}\n\nvoid ActiveStereoFrame::OnMenuChangeCameraSelected(wxCommandEvent& event)\n{\n    // open the camera number dialog\n    wxNumberEntryDialog dialog (this, wxT(\"Cameras are numbered in the order they are connected in.\\n\\nSet the value to -1 to select the first valid camera detected.\"), wxT(\"New camera number:\"), wxT(\"MakerScanner - Change Camera\"), cameraNum, -1, 10);\n\n    long cameraNumNew;\n\n    if (dialog.ShowModal() == wxID_OK)\n    {\n        cameraNumNew = dialog.GetValue();\n\n        wxConfig *config = (wxConfig*)wxConfigBase::Get();\n\n        config->Write(wxT(\"CameraNum\"), cameraNumNew);\n\n        wxMessageBox(wxT(\"You must restart MakerScanner for your changes to take effect.\"),\n            wxT(\"MakerScanner - Settings Changed\"));\n    }\n}\n\nvoid ActiveStereoFrame::UpdateFps(wxUpdateUIEvent &event)\n{\n    wxDateTime now = wxDateTime::UNow();\n\n    wxTimeSpan timeDiff = now.Subtract(timeOfLastFpsUpdate);\n\n    if (timeDiff.GetMilliseconds() > 100)\n    {\n        // compute a new FPS\n        double timeDiffNum = timeDiff.GetMilliseconds().ToDouble() / 1000.0;\n\n        double fps = framesSinceLastFpsUpdate / timeDiffNum;\n\n        framesSinceLastFpsUpdate = 0;\n\n        timeOfLastFpsUpdate = now;\n\n        wxString fpsString = wxString::Format(wxT(\"%4.1f\"), fps);\n\n        lblFPS->SetLabel(fpsString);\n\n        // disable things if the fps is too low\n        if (fps < 0.5)\n        {\n            cameraConnected = false;\n            lblCameraConnected->SetLabel(wxT(\"Disconnected\"));\n\n            // reset layouts now that the length of the label in lblCameraConnected has changed\n            flexGridStatus->Layout();\n            staticBoxSizerStatus->Layout();\n            headBoxSizer->Layout();\n\n            butCapture->Enable(false);\n        }\n    }\n\n}\n"
  },
  {
    "path": "ActiveStereoMain.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\r\n\r\n#ifndef ACTIVESTEREOMAIN_H\r\n#define ACTIVESTEREOMAIN_H\r\n\r\n//(*Headers(ActiveStereoFrame)\n#include <wx/sizer.h>\n#include <wx/button.h>\n#include <wx/menu.h>\n#include <wx/panel.h>\n#include <wx/slider.h>\n#include <wx/statusbr.h>\n#include <wx/statline.h>\n#include <wx/frame.h>\n#include <wx/stattext.h>\n#include <wx/textctrl.h>\n//*)\n\n\n#include <wx/numdlg.h>\n#include <wx/ffile.h>\n#include <wx/dir.h>\n#include <wx/datetime.h>\n#include <wx/config.h>\n#include <wx/filename.h>\n\n// include OpenCV headers\n#include \"cv.h\"\n#include \"highgui.h\"\n\n#include \"Cameras.h\"\n#include \"ScanThread.h\"\n#include \"ScanStatus.h\"\n\n// include image-viewing widget header\n#include \"camview.h\"\n\r\nclass ActiveStereoFrame: public wxFrame\r\n{\r\n    public:\r\n\r\n        ActiveStereoFrame(wxWindow* parent,wxWindowID id = -1);\r\n        virtual ~ActiveStereoFrame();\r\n\r\n    private:\r\n\r\n        //(*Handlers(ActiveStereoFrame)\n        void OnQuit(wxCommandEvent& event);\n        void OnAbout(wxCommandEvent& event);\n        void OnButSetConfigClick(wxCommandEvent& event);\n        void OnButCaptureClick(wxCommandEvent& event);\n        void OnSliderImageThresholdCmdScroll(wxScrollEvent& event);\n        void OnSliderLaserMaxCmdScrollChanged(wxScrollEvent& event);\n        void OnSliderLaserMinCmdScrollChanged(wxScrollEvent& event);\n        void OnButCameraConnectClick(wxCommandEvent& event);\n        void OnSliderMirrorResolutionCmdScrollChanged(wxScrollEvent& event);\n        void OnSliderMirrorPositionCmdScrollChanged(wxScrollEvent& event);\n        void OnSliderLaserIntensityCmdScrollChanged(wxScrollEvent& event);\n        void OnSliderServoPositionCmdScrollChanged(wxScrollEvent& event);\n        void OnSliderMirrorPositionCmdScrollChangedWithMove(wxScrollEvent& event);\n        void OnButDoneScanningClick(wxCommandEvent& event);\n        void OnSliderBrightnessFilterCmdScrollThumbTrack(wxScrollEvent& event);\n        void OnMenuChangeCameraSelected(wxCommandEvent& event);\n        //*)\r\n\r\n        //(*Identifiers(ActiveStereoFrame)\n        static const long ID_STATICTEXT3;\n        static const long ID_STATICTEXT4;\n        static const long ID_STATICTEXT1;\n        static const long ID_FPS_LABEL;\n        static const long ID_BUTTON4;\n        static const long ID_STATICTEXT7;\n        static const long ID_SLIDER3;\n        static const long ID_STATICTEXT5;\n        static const long ID_SLIDER1;\n        static const long ID_STATICTEXT6;\n        static const long ID_BUTTON3;\n        static const long ID_BUTTON1;\n        static const long ID_STATICLINE1;\n        static const long ID_TEXTCTRL1;\n        static const long ID_PANEL1;\n        static const long idMenuQuit;\n        static const long idMenuChangeCamera;\n        static const long idMenuAbout;\n        static const long ID_STATUSBAR1;\n        //*)\r\n\r\n        //(*Declarations(ActiveStereoFrame)\n        wxPanel* Panel1;\n        wxMenuItem* menuChangeCamera;\n        wxStatusBar* StatusBar1;\n        wxMenu* Menu3;\n        wxSlider* sliderBrightnessFilter;\n        wxStaticText* lblFPS;\n        wxStaticText* StaticText1;\n        wxStaticText* lblBrightnessFilter;\n        wxBoxSizer* headBoxSizer;\n        wxStaticLine* StaticLine1;\n        wxSlider* sliderImageThreshold;\n        wxTextCtrl* txtLog;\n        wxStaticText* lblImageThreshold;\n        wxStaticText* lblCameraConnected;\n        wxStaticText* StaticText2;\n        wxFlexGridSizer* flexGridStatus;\n        wxButton* butCameraConnect;\n        wxButton* butCapture;\n        wxStaticBoxSizer* staticBoxSizerStatus;\n        wxButton* butDoneScanning;\n        wxStaticText* lblStaticCameraConnected;\n        //*)\r\n\n\t\t// We must use events to communicate with the scanning thread because direct GUI\n\t\t// modifications of the frame from the thread will fail badly\n\n\t\t// Update image event handler -- get an image and display it on the frame\n\t\tvoid UpdateImage(wxCommandEvent &event);\n\n\t\t// Catch an event and display its text in the terminal box\n\t\tvoid DisplayText(wxCommandEvent &event);\n\n\t\t// Write the point cloud file with the text stored in the event\n\t\tvoid WriteToFile(wxCommandEvent &event);\n\n\t\t// Catch an event to update the scan progress bar\n\t\tvoid UpdateScanProgress(wxCommandEvent &event);\n\n\t\t// Catch the scan finished event and re-enable the frame\n\t\tvoid ScanFinished(wxCommandEvent &event);\n\n\t\t// Enable/disable frame buttons (disable when scanning == true)\n\t\tvoid SetGUIStateDuringScan(bool scanning);\n\n        // Catches an UpdateUI event and updates the FPS display\n        void UpdateFps(wxUpdateUIEvent &event);\n\n\t\t// last time a USB event was sent\n\t\twxDateTime lastUsbTime;\n\n\t\t// camera object, allows access to scanning thread\n\t\tCameras *cam;\n\n\t\t// object that holds the current scan's status for communitcating between\n\t\t// the GUI and scanning/capturing threads.\n\t\tScanStatus *scanStatus;\n\n\t\twxString pointcloudFilename;\n\n\t\t// image display widget\n\t\tCCamView* m_pCamView;\n\n\t\t// configuration storage object\n\t\twxConfig *config;\n\n\t\t// data for the FPS display\n\t\twxDateTime timeOfLastFpsUpdate;\n\t\tint framesSinceLastFpsUpdate, cameraNum;\n\n\t\tbool updateImageRunning, cameraConnected;\n\r\n        DECLARE_EVENT_TABLE()\r\n};\r\n\r\n#endif // ACTIVESTEREOMAIN_H\n"
  },
  {
    "path": "CAD/Design Data/AEC Exchange/Support/DWGSettings.ini",
    "content": "[EXPORT SELECT OPTIONS]\r\nAUTOCAD VERSION=AutoCAD 2004\r\nCREATE AUTOCAD MECHANICAL=No\r\nUSE TRANSMITTAL=No\r\nUSE CUSTOMIZE=No\r\nCUSTOMIZE FILE=[INVENTOR_INSTALL_DIRECTORY]\\COMPATIBILITY\\Support\\FlatPattern.xml\r\nCREATE LAYER GROUP=No\r\nPARTS ONLY=No\r\n[EXPORT PROPERTIES]\r\nSELECTED PROPERTIES=\r\n[EXPORT DESTINATION]\r\nSPACE=Model\r\nSCALING=Geometry\r\nMAPPING=MapsBest\r\nMODEL GEOMETRY ONLY=No\r\nEXPLODE DIMENSIONS=No\r\nSYMBOLS ARE BLOCKED=Yes\r\nAUTOCAD TEMPLATE=\r\nDESTINATION DXF=No\r\n[EXPORT LINE TYPE & LINE SCALE]\r\nLINE TYPE FILE=[INVENTOR_INSTALL_DIRECTORY]\\COMPATIBILITY\\Support\\invGB.lin\r\nContinuous=Continuous;0.\r\nDashed=DASHED;0.\r\nDashed Space=DASHED_SPACE;0.\r\nLong Dash Dotted=LONG_DASH_DOTTED;0.\r\nLong Dash Double Dot=LONG_DASH_DOUBLE_DOT;0.\r\nLong Dash Triple Dot=LONG_DASH_TRIPLE_DOT;0.\r\nDotted=DOTTED;0.\r\nChain=CHAIN;0.\r\nDouble Dash Chain=DOUBLE_DASH_CHAIN;0.\r\nDash Double Dot=DASH_DOUBLE_DOT;0.\r\nDash Dot=DASH_DOT;0.\r\nDouble Dash Dot=DOUBLE_DASH_DOT;0.\r\nDouble Dash Double Dot=DOUBLE_DASH_DOUBLE_DOT;0.\r\nDash Triple Dot=DASH_TRIPLE_DOT;0.\r\nDouble Dash Triple Dot=DOUBLE_DASH_TRIPLE_DOT;0.\r\n"
  },
  {
    "path": "CAD/Design Data/AEC Exchange/Support/PartAtom.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<entry xmlns=\"http://www.w3.org/2005/Atom\"\r\n\t  xmlns:A=\"urn:schemas-autodesk-com:partatom\">\r\n\t<id/>\t\r\n\t<link rel=\"design-3d\" type=\"application/dwg\" href=\".\">\r\n\t\t<A:design-file>\r\n\t\t\t<A:title/>\r\n\t\t\t<A:product>Inventor</A:product>\r\n\t\t\t<A:product-version/>\r\n\t\t\t<A:updated/>\r\n\t\t</A:design-file>\r\n\t</link>\t\r\n\t<category>\r\n\t\t<term/>\r\n\t\t<label/>\r\n\t\t<schema>std:oc1</schema>\r\n\t</category>\r\n\t<title/>\t\r\n\t<updated/>\r\n\r\n\t<A:part type=\"user\">\r\n\t\t<A:title/>\r\n\t\t<A:partno rel=\"user\"/>\r\n\t\t<width display=\"Width\" unit=\"cm\"/>\r\n\t\t<length display=\"Length\" unit=\"cm\"/>\r\n\t\t<height display=\"Height\" unit=\"cm\"/>\r\n\t</A:part>\r\n</entry>"
  },
  {
    "path": "CAD/Design Data/DWG-DXF/FlatPatternExportOpts.xml",
    "content": "<?xml version=\"1.0\" standalone=\"yes\"?>\r\n<!-- \r\n===========================================================\r\nThis file contains options for exporting a flat Pattern\r\nto a DWG/DXF file.\r\nIn this version the only option is to replace splines with \r\nline segments with a set chord tolerance.\r\n\r\nenable=\"1\" will turn the option on\r\nenable=\"0\" will turn the option off\r\n\r\nchord_tolerance sets the maximum distance from any point \r\non the line to the spline. \r\nPlease use '.' as decimal delimiter.\r\n\r\n===========================================================\r\n-->\r\n\r\n<!--\r\n===========================================================\r\n                     BEGIN DTD SECTION\r\nDo not modify the DTD section of this file.  It is used to\r\nverify that the content of the file is valid.\r\n===========================================================\r\n-->\r\n<!DOCTYPE fpdwgEdits [\r\n   <!ELEMENT fpdwgEdits      (option)>\r\n   <!ELEMENT option         (replace)>\r\n   <!ELEMENT replace         (spline, advlegacyexport?)>\r\n   <!ELEMENT spline         EMPTY>\r\n   <!ELEMENT advlegacyexport   EMPTY>\r\n   \r\n   <!ATTLIST fpdwgEdits version CDATA #REQUIRED>\r\n   <!ATTLIST spline enable CDATA #REQUIRED>\r\n   <!ATTLIST spline chord_tolerance CDATA #REQUIRED>\r\n   <!ATTLIST advlegacyexport enable CDATA #REQUIRED>\r\n]>\r\n<!--\r\n===========================================================\r\n                      END DTD SECTION\r\n===========================================================\r\n-->\r\n<fpdwgEdits version='1.0'>\r\n   <option>\r\n      <replace>\r\n         <spline enable=\"1\" chord_tolerance=\"0.01\" />\r\n         <advlegacyexport enable=\"1\" />\r\n      </replace>\r\n   </option>\r\n</fpdwgEdits>\r\n"
  },
  {
    "path": "CAD/Design Data/DWG-DXF/exportdwg.ini",
    "content": "[EXPORT SELECT OPTIONS]\r\nAUTOCAD VERSION=AutoCAD 2007\r\nCREATE AUTOCAD MECHANICAL=No\r\nUSE TRANSMITTAL=Yes\r\nUSE CUSTOMIZE=No\r\nCUSTOMIZE FILE=Design Data\\DWG-DXF\\FlatPattern.xml\r\nCREATE LAYER GROUP=No\r\nPARTS ONLY=No\r\n[EXPORT PROPERTIES]\r\nSELECTED PROPERTIES=\r\n[EXPORT DESTINATION]\r\nSPACE=Model\r\nSCALING=Geometry\r\nMAPPING=MapsBest\r\nMODEL GEOMETRY ONLY=No\r\nEXPLODE DIMENSIONS=No\r\nSYMBOLS ARE BLOCKED=Yes\r\nAUTOCAD TEMPLATE=\r\nDESTINATION DXF=No\r\n[EXPORT LINE TYPE & LINE SCALE]\r\nLINE TYPE FILE=COMPATIBILITY\\Support\\invANSI.lin\r\nContinuous=Continuous;0.\r\nDashed=DASHED;0.\r\nDashed Space=DASHED_SPACE;0.\r\nLong Dash Dotted=LONG_DASH_DOTTED;0.\r\nLong Dash Double Dot=LONG_DASH_DOUBLE_DOT;0.\r\nLong Dash Triple Dot=LONG_DASH_TRIPLE_DOT;0.\r\nDotted=DOTTED;0.\r\nChain=CHAIN;0.\r\nDouble Dash Chain=DOUBLE_DASH_CHAIN;0.\r\nDash Double Dot=DASH_DOUBLE_DOT;0.\r\nDash Dot=DASH_DOT;0.\r\nDouble Dash Dot=DOUBLE_DASH_DOT;0.\r\nDouble Dash Double Dot=DOUBLE_DASH_DOUBLE_DOT;0.\r\nDash Triple Dot=DASH_TRIPLE_DOT;0.\r\nDouble Dash Triple Dot=DOUBLE_DASH_TRIPLE_DOT;0.\r\n"
  },
  {
    "path": "CAD/Design Data/DWG-DXF/exportdxf.ini",
    "content": "[EXPORT SELECT OPTIONS]\r\nAUTOCAD VERSION=AutoCAD 2007\r\nCREATE AUTOCAD MECHANICAL=No\r\nUSE TRANSMITTAL=Yes\r\nUSE CUSTOMIZE=No\r\nCUSTOMIZE FILE=Design Data\\DWG-DXF\\FlatPattern.xml\r\nCREATE LAYER GROUP=No\r\nPARTS ONLY=No\r\n[EXPORT PROPERTIES]\r\nSELECTED PROPERTIES=\r\n[EXPORT DESTINATION]\r\nSPACE=Model\r\nSCALING=Geometry\r\nMAPPING=MapsBest\r\nMODEL GEOMETRY ONLY=No\r\nEXPLODE DIMENSIONS=No\r\nSYMBOLS ARE BLOCKED=Yes\r\nAUTOCAD TEMPLATE=\r\nDESTINATION DXF=Yes\r\n[EXPORT LINE TYPE & LINE SCALE]\r\nLINE TYPE FILE=COMPATIBILITY\\Support\\invANSI.lin\r\nContinuous=Continuous;0.\r\nDashed=DASHED;0.\r\nDashed Space=DASHED_SPACE;0.\r\nLong Dash Dotted=LONG_DASH_DOTTED;0.\r\nLong Dash Double Dot=LONG_DASH_DOUBLE_DOT;0.\r\nLong Dash Triple Dot=LONG_DASH_TRIPLE_DOT;0.\r\nDotted=DOTTED;0.\r\nChain=CHAIN;0.\r\nDouble Dash Chain=DOUBLE_DASH_CHAIN;0.\r\nDash Double Dot=DASH_DOUBLE_DOT;0.\r\nDash Dot=DASH_DOT;0.\r\nDouble Dash Dot=DOUBLE_DASH_DOT;0.\r\nDouble Dash Double Dot=DOUBLE_DASH_DOUBLE_DOT;0.\r\nDash Triple Dot=DASH_TRIPLE_DOT;0.\r\nDouble Dash Triple Dot=DOUBLE_DASH_TRIPLE_DOT;0.\r\n"
  },
  {
    "path": "CAD/Design Data/DWG-DXF/importacad.ini",
    "content": "[COMMON OPTIONS]\r\nFILE VERSION=3.0\r\nIMPORT FILE TYPE=AutoCAD DWG File\r\nFILE UNITS=\r\nSELECTED LAYOUT=\r\nIMPORT LAYOUTS=No\r\nIMPORT MODEL SPACE=Yes\r\nDESTINATION DIRECTORY=\r\nDRAWING TEMPLATE=Standard.idw\r\nSHEET SIZE=Custom Millimeters\r\nPART TEMPLATE=Standard.ipt\r\nASSEMBLY TEMPLATE=Standard.iam\r\n[2D OPTIONS]\r\nDESTINATION 2D DATA=New Drawing\r\nIMPORT TO 3D SKETCHES=No\r\nIMPORT 3D SOLIDS=No\r\nIMPORT 3D SOLIDS TO SINGLE PART FILE=No\r\nCONSTRAIN ENDPOINTS (SKETCH)=Yes\r\nCONSTRAIN ENDPOINTS (DRAWING)=No\r\nDETECT FROM FILE=Yes\r\nUSE DEFAULT NAMES=Yes\r\nPROMOTE DRAWING DIMENSIONS=No\r\nLAYERS OFF=\r\nLAYERS ON=\r\n[IMPORT MAP LAYER TO SKETCH]\r\n[IMPORT MAP ACAD FONT TO IVT FONT]\r\n[3D OPTIONS]\r\nTRANSLATE MODEL=Yes\r\nTRANSLATE DRAWING VIEWS=No\r\nPART MODE=Translate Feature Recipe\r\nFEATURE RECIPE MODE=Translate Recipe If All Features Supported\r\nCOMPDEF MODE=Translate Instanced CompDefs Only\r\nDRAWING MODE=Unassociated Drawing Views\r\nDUPLICATE FILE ACTION=Overwrite Existing File\r\nSUPPRESS SINGLE PART ASSEMBLY=No\r\n"
  },
  {
    "path": "CAD/Design Data/DWG-DXF/importdxf.ini",
    "content": "[COMMON OPTIONS]\r\nFILE VERSION=3.0\r\nIMPORT FILE TYPE=DXF File\r\nFILE UNITS=\r\nSELECTED LAYOUT=\r\nIMPORT LAYOUTS=No\r\nIMPORT MODEL SPACE=Yes\r\nDESTINATION DIRECTORY=\r\nDRAWING TEMPLATE=Standard.idw\r\nSHEET SIZE=Custom Millimeters\r\nPART TEMPLATE=Standard.ipt\r\nASSEMBLY TEMPLATE=Standard.iam\r\n[2D OPTIONS]\r\nDESTINATION 2D DATA=New Drawing\r\nIMPORT TO 3D SKETCHES=No\r\nIMPORT 3D SOLIDS=No\r\nIMPORT 3D SOLIDS TO SINGLE PART FILE=No\r\nCONSTRAIN ENDPOINTS (SKETCH)=Yes\r\nCONSTRAIN ENDPOINTS (DRAWING)=No\r\nDETECT FROM FILE=Yes\r\nUSE DEFAULT NAMES=Yes\r\nPROMOTE DRAWING DIMENSIONS=No\r\nLAYERS OFF=\r\nLAYERS ON=\r\n[IMPORT MAP LAYER TO SKETCH]\r\n[IMPORT MAP ACAD FONT TO IVT FONT]\r\n[3D OPTIONS]\r\nTRANSLATE MODEL=Yes\r\nTRANSLATE DRAWING VIEWS=No\r\nPART MODE=Translate Feature Recipe\r\nFEATURE RECIPE MODE=Translate Recipe If All Features Supported\r\nCOMPDEF MODE=Translate Instanced CompDefs Only\r\nDRAWING MODE=Unassociated Drawing Views\r\nDUPLICATE FILE ACTION=Overwrite Existing File\r\nSUPPRESS SINGLE PART ASSEMBLY=No\r\n"
  },
  {
    "path": "CAD/Design Data/DWG-DXF/importmdt.ini",
    "content": "[COMMON OPTIONS]\r\nFILE VERSION=3.0\r\nIMPORT FILE TYPE=MDT DWG File\r\nFILE UNITS=\r\nSELECTED LAYOUT=\r\nIMPORT LAYOUTS=No\r\nIMPORT MODEL SPACE=Yes\r\nDESTINATION DIRECTORY=\r\nDRAWING TEMPLATE=Standard.idw\r\nSHEET SIZE=Custom Millimeters\r\nPART TEMPLATE=Standard.ipt\r\nASSEMBLY TEMPLATE=Standard.iam\r\n[2D OPTIONS]\r\nDESTINATION 2D DATA=New Drawing\r\nIMPORT TO 3D SKETCHES=No\r\nIMPORT 3D SOLIDS=No\r\nIMPORT 3D SOLIDS TO SINGLE PART FILE=No\r\nCONSTRAIN ENDPOINTS (SKETCH)=Yes\r\nCONSTRAIN ENDPOINTS (DRAWING)=No\r\nDETECT FROM FILE=Yes\r\nUSE DEFAULT NAMES=Yes\r\nPROMOTE DRAWING DIMENSIONS=No\r\nLAYERS OFF=\r\nLAYERS ON=\r\n[IMPORT MAP LAYER TO SKETCH]\r\n[IMPORT MAP ACAD FONT TO IVT FONT]\r\n[3D OPTIONS]\r\nTRANSLATE MODEL=Yes\r\nTRANSLATE DRAWING VIEWS=No\r\nPART MODE=Translate Feature Recipe\r\nFEATURE RECIPE MODE=Translate Recipe If All Features Supported\r\nCOMPDEF MODE=Translate Instanced CompDefs Only\r\nDRAWING MODE=Unassociated Drawing Views\r\nDUPLICATE FILE ACTION=Overwrite Existing File\r\nSUPPRESS SINGLE PART ASSEMBLY=No\r\n"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/Configuration.htm",
    "content": "  <!--iif(PARAMETRIC)<div>\r\n  <h3><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$ConfName$</h3>\r\n  <div style=\"display:\">\r\n    <blockquote><!--iif(DESIGNPARAMETERS)\r\n    <div>\r\n    <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp; $$msg16074$</h4>\r\n    <div style=\"display:\">\r\n    <blockquote>\r\n    <table class=\"ta\">\r\n      <tr>\r\n        <td><b>$$msg12053$</b></td>\r\n        <td><b>$$msg12057$</b></td>\r\n        <td><b>$$msg12054$</b></td>\r\n        <td><b>$$msg12056$</b></td>\r\n        <td><b>$$msg12093$</b></td>\r\n      </tr>\r\n      $$GroupDesignParameters$\r\n    </table>\r\n    </blockquote>\r\n    </div></div> iif--> iif--><!--iif(STATIC) <!--iif(REACTIONS)\r\n    <div>\r\n    <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp; $$msg16064$</h4>\r\n    <div style=\"display:\">\r\n    <blockquote>\r\n    <table class=\"ta\">\r\n      <tr>\r\n        <td rowspan=\"2\"><b>$$msg12046$</b></td>\r\n        <td colspan=\"2\"><b>$$msg16065$</b></td>\r\n        <td colspan=\"2\"><b>$$msg16066$</b></td>\r\n      </tr>\r\n      <tr>\r\n        <td><b>$$msg16028$</b></td>\r\n        <td><b>$$msg16067$</b></td>\r\n        <td><b>$$msg16028$</b></td>\r\n        <td><b>$$msg16067$</b></td>\r\n      </tr>\r\n      $$GroupReactionForces$\r\n    </table>\r\n    </blockquote>\r\n    </div></div> iif-->\r\n    <div>\r\n    <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16071$</h4>\r\n    <div style=\"display:\">\r\n    <blockquote>\r\n    <table class=\"ta\">\r\n      <tr>\r\n        <td><b>$$msg16032$</b></td>\r\n        <td><b>$$msg16080$</b></td>\r\n        <td><b>$$msg16081$</b></td>\r\n      </tr>\r\n      <tr>\r\n        <td>$$msg12197$</td>\r\n        <td colspan=\"2\">$$valueMax92$</td>\r\n      </tr>\r\n      <tr>\r\n        <td>$$msg12196$</td>\r\n        <td colspan=\"2\">$$valueMax93$</td>\r\n      </tr><!--iif(VON_MISES)\r\n      <tr>\r\n        <td>$$msg12170$</td>\r\n        <td>$$valueMin1$</td>\r\n        <td>$$valueMax1$</td>\r\n      </tr> iif--><!--iif(STRESS1)\r\n      <tr>\r\n        <td>$$msg12171$</td>\r\n        <td>$$valueMin6$</td>\r\n        <td>$$valueMax6$</td>\r\n      </tr> iif--><!--iif(STRESS3)\r\n      <tr>\r\n        <td>$$msg12172$</td>\r\n        <td>$$valueMin8$</td>\r\n        <td>$$valueMax8$</td>\r\n      </tr> iif--><!--iif(DISPLACEMENTXYZ)\r\n      <tr>\r\n        <td>$$msg12179$</td>\r\n        <td>$$valueMin2$</td>\r\n        <td>$$valueMax2$</td>\r\n      </tr> iif--><!--iif(SAFETYFACTOR)\r\n      <tr>\r\n        <td>$$msg12378$</td>\r\n        <td>$$valueMin57$</td>\r\n        <td>$$valueMax57$</td>\r\n      </tr> iif--><!--iif(SIGMAXX)\r\n      <tr>\r\n        <td>$$msg12173$</td>\r\n        <td>$$valueMin9$</td>\r\n        <td>$$valueMax9$</td>\r\n      </tr> iif--><!--iif(SIGMAXY)\r\n      <tr>\r\n        <td>$$msg12174$</td>\r\n        <td>$$valueMin10$</td>\r\n        <td>$$valueMax10$</td>\r\n      </tr> iif--><!--iif(SIGMAXZ)\r\n      <tr>\r\n        <td>$$msg12175$</td>\r\n        <td>$$valueMin11$</td>\r\n        <td>$$valueMax11$</td>\r\n      </tr> iif--><!--iif(SIGMAYY)\r\n      <tr>\r\n        <td>$$msg12176$</td>\r\n        <td>$$valueMin12$</td>\r\n        <td>$$valueMax12$</td>\r\n      </tr> iif--><!--iif(SIGMAYZ)\r\n      <tr>\r\n        <td>$$msg12177$</td>\r\n        <td>$$valueMin13$</td>\r\n        <td>$$valueMax13$</td>\r\n      </tr> iif--><!--iif(SIGMAZZ)\r\n      <tr>\r\n        <td>$$msg12178$</td>\r\n        <td>$$valueMin14$</td>\r\n        <td>$$valueMax14$</td>\r\n      </tr> iif--><!--iif(DISPLACEMENTX)\r\n      <tr>\r\n        <td>$$msg12180$</td>\r\n        <td>$$valueMin3$</td>\r\n        <td>$$valueMax3$</td>\r\n      </tr> iif--><!--iif(DISPLACEMENTY)\r\n      <tr>\r\n        <td>$$msg12181$</td>\r\n        <td>$$valueMin4$</td>\r\n        <td>$$valueMax4$</td>\r\n      </tr> iif--><!--iif(DISPLACEMENTZ)\r\n      <tr>\r\n        <td>$$msg12182$</td>\r\n        <td>$$valueMin5$</td>\r\n        <td>$$valueMax5$</td>\r\n      </tr> iif--><!--iif(STRAINEQ)\r\n      <tr>\r\n        <td>$$msg12213$</td>\r\n        <td>$$valueMin80$</td>\r\n        <td>$$valueMax80$</td>\r\n      </tr> iif--><!--iif(STRAIN1)\r\n      <tr>\r\n        <td>$$msg12214$</td>\r\n        <td>$$valueMin81$</td>\r\n        <td>$$valueMax81$</td>\r\n      </tr> iif--><!--iif(STRAIN3)\r\n      <tr>\r\n        <td>$$msg12216$</td>\r\n        <td>$$valueMin83$</td>\r\n        <td>$$valueMax83$</td>\r\n      </tr> iif--><!--iif(STRAINXX)\r\n      <tr>\r\n        <td>$$msg12186$</td>\r\n        <td>$$valueMin58$</td>\r\n        <td>$$valueMax58$</td>\r\n      </tr> iif--><!--iif(STRAINXY)\r\n      <tr>\r\n        <td>$$msg12187$</td>\r\n        <td>$$valueMin59$</td>\r\n        <td>$$valueMax59$</td>\r\n      </tr> iif--><!--iif(STRAINXZ)\r\n      <tr>\r\n        <td>$$msg12188$</td>\r\n        <td>$$valueMin60$</td>\r\n        <td>$$valueMax60$</td>\r\n      </tr> iif--><!--iif(STRAINYY)\r\n      <tr>\r\n        <td>$$msg12189$</td>\r\n        <td>$$valueMin61$</td>\r\n        <td>$$valueMax61$</td>\r\n      </tr> iif--><!--iif(STRAINYZ)\r\n      <tr>\r\n        <td>$$msg12190$</td>\r\n        <td>$$valueMin62$</td>\r\n        <td>$$valueMax62$</td>\r\n      </tr> iif--><!--iif(STRAINZZ)\r\n      <tr>\r\n        <td>$$msg12191$</td>\r\n        <td>$$valueMin63$</td>\r\n        <td>$$valueMax63$</td>\r\n      </tr> iif--><!--iif(PRESSUREXYZ)\r\n      <tr>\r\n        <td>$$msg12192$</td>\r\n        <td>$$valueMin76$</td>\r\n        <td>$$valueMax76$</td>\r\n      </tr> iif--><!--iif(PRESSUREX)\r\n      <tr>\r\n        <td>$$msg12193$</td>\r\n        <td>$$valueMin77$</td>\r\n        <td>$$valueMax77$</td>\r\n      </tr> iif--><!--iif(PRESSUREY)\r\n      <tr>\r\n        <td>$$msg12194$</td>\r\n        <td>$$valueMin78$</td>\r\n        <td>$$valueMax78$</td>\r\n      </tr> iif--><!--iif(PRESSUREZ)\r\n      <tr>\r\n        <td>$$msg12195$</td>\r\n        <td>$$valueMin79$</td>\r\n        <td>$$valueMax79$</td>\r\n      </tr> iif-->\r\n    </table>\r\n    </blockquote>\r\n    </div></div> iif--><!--iif(not STATIC)\r\n    <div>\r\n    <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16075$</h4>\r\n    <div style=\"display:\">\r\n    <blockquote>\r\n    <table class=\"ta\">\r\n      $$GroupModalFrequency$\r\n    </table>\r\n    </blockquote>\r\n    </div></div>\r\n    <div>\r\n    <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16071$</h4>\r\n    <div style=\"display:\">\r\n    <blockquote>\r\n    <table class=\"ta\">\r\n      <tr>\r\n        <td><b>$$msg16032$</b></td>\r\n        <td><b>$$msg12052$</b></td>\r\n      </tr>\r\n      <tr>\r\n        <td>$$msg12197$</td>\r\n        <td>$$valueMax92$</td>\r\n      </tr>\r\n      <tr>\r\n        <td>$$msg12196$</td>\r\n        <td>$$valueMax93$</td>\r\n      </tr>\r\n    </table>\r\n    </blockquote>\r\n    </div></div> iif--><!--iif(RESULTS)\r\n    <div>\r\n    <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16062$</h4>\r\n    <div style=\"display:\">\r\n    <blockquote><!--iif(STATIC)<!--iif(VON_MISES)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12170$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_1.png\"><img class=\"z\" src=\"$$ID$_1.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_1_rev.png\"><img class=\"z\" src=\"$$ID$_1_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRESS1)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12171$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_6.png\"><img class=\"z\" src=\"$$ID$_6.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_6_rev.png\"><img class=\"z\" src=\"$$ID$_6_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRESS3)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12172$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_8.png\"><img class=\"z\" src=\"$$ID$_8.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_8_rev.png\"><img class=\"z\" src=\"$$ID$_8_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(DISPLACEMENTXYZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12179$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_2.png\"><img class=\"z\" src=\"$$ID$_2.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_2_rev.png\"><img class=\"z\" src=\"$$ID$_2_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(SAFETYFACTOR)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12378$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_57.png\"><img class=\"z\" src=\"$$ID$_57.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_57_rev.png\"><img class=\"z\" src=\"$$ID$_57_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(SIGMAXX)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12173$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_9.png\"><img class=\"z\" src=\"$$ID$_9.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_9_rev.png\"><img class=\"z\" src=\"$$ID$_9_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(SIGMAXY)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12174$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_10.png\"><img class=\"z\" src=\"$$ID$_10.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_10_rev.png\"><img class=\"z\" src=\"$$ID$_10_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(SIGMAXZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12175$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_11.png\"><img class=\"z\" src=\"$$ID$_11.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_11_rev.png\"><img class=\"z\" src=\"$$ID$_11_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(SIGMAYY)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12176$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_12.png\"><img class=\"z\" src=\"$$ID$_12.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_12_rev.png\"><img class=\"z\" src=\"$$ID$_12_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(SIGMAYZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12177$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_13.png\"><img class=\"z\" src=\"$$ID$_13.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_13_rev.png\"><img class=\"z\" src=\"$$ID$_13_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(SIGMAZZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12178$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_14.png\"><img class=\"z\" src=\"$$ID$_14.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_14_rev.png\"><img class=\"z\" src=\"$$ID$_14_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(DISPLACEMENTX)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12180$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_3.png\"><img class=\"z\" src=\"$$ID$_3.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_3_rev.png\"><img class=\"z\" src=\"$$ID$_3_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(DISPLACEMENTY)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12181$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_4.png\"><img class=\"z\" src=\"$$ID$_4.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_4_rev.png\"><img class=\"z\" src=\"$$ID$_4_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(DISPLACEMENTZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12182$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_5.png\"><img class=\"z\" src=\"$$ID$_5.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_5_rev.png\"><img class=\"z\" src=\"$$ID$_5_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAINEQ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12213$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_80.png\"><img class=\"z\" src=\"$$ID$_80.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_80_rev.png\"><img class=\"z\" src=\"$$ID$_80_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAIN1)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12214$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_81.png\"><img class=\"z\" src=\"$$ID$_81.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_81_rev.png\"><img class=\"z\" src=\"$$ID$_81_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAIN3)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12216$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_83.png\"><img class=\"z\" src=\"$$ID$_83.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_83_rev.png\"><img class=\"z\" src=\"$$ID$_83_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAINXX)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12186$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_58.png\"><img class=\"z\" src=\"$$ID$_58.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_58_rev.png\"><img class=\"z\" src=\"$$ID$_58_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAINXY)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12187$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_59.png\"><img class=\"z\" src=\"$$ID$_59.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_59_rev.png\"><img class=\"z\" src=\"$$ID$_59_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAINXZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12188$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_60.png\"><img class=\"z\" src=\"$$ID$_60.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_60_rev.png\"><img class=\"z\" src=\"$$ID$_60_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAINYY)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12189$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_61.png\"><img class=\"z\" src=\"$$ID$_61.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_61_rev.png\"><img class=\"z\" src=\"$$ID$_61_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAINYZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12190$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_62.png\"><img class=\"z\" src=\"$$ID$_62.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_62_rev.png\"><img class=\"z\" src=\"$$ID$_62_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(STRAINZZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12191$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_63.png\"><img class=\"z\" src=\"$$ID$_63.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_63_rev.png\"><img class=\"z\" src=\"$$ID$_63_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(PRESSUREXYZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12192$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_76.png\"><img class=\"z\" src=\"$$ID$_76.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_76_rev.png\"><img class=\"z\" src=\"$$ID$_76_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(PRESSUREX)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12193$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_77.png\"><img class=\"z\" src=\"$$ID$_77.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_77_rev.png\"><img class=\"z\" src=\"$$ID$_77_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(PRESSUREY)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12194$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_78.png\"><img class=\"z\" src=\"$$ID$_78.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_78_rev.png\"><img class=\"z\" src=\"$$ID$_78_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--><!--iif(PRESSUREZ)\r\n      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg12195$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$ID$_79.png\"><img class=\"z\" src=\"$$ID$_79.png\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$ID$_79_rev.png\"><img class=\"z\" src=\"$$ID$_79_rev.png\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div> iif--> iif--><!--iif(not STATIC)\r\n      $$FiguresModalFrequency$ iif-->\r\n    </blockquote>\r\n    </div></div> iif--><!--iif(PARAMETRIC)\r\n  </blockquote>\r\n  </div></div> iif-->\r\n"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/Constraint.htm",
    "content": "  <div>\r\n  <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$ConstraintName$</h4>\r\n  <div style=\"display:\">\r\n  <blockquote>\r\n  <table class=\"ta\">\r\n    <tr>\r\n      <td>$$msg16047$</td>\r\n      <td>$$Type$</td>\r\n      $$ConstraintParameters$\r\n    </tr>\r\n  </table><!--iif(CONSTRAINTSVIEW)\r\n  <div>\r\n  <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16048$</h5>\r\n  <div style=\"display:\">\r\n    <p><a href=\"$$ImagePath$\"><img class=\"z\" src=\"$$ImagePath$\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n    <p><a href=\"$$OppositeImagePath$\"><img class=\"z\" src=\"$$OppositeImagePath$\" alt=\"\" /></a></p> iif-->\r\n  </div></div> iif-->\r\n  </blockquote>\r\n  </div></div>"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/Contact.htm",
    "content": "  <div>\r\n  <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$ContactName$</h4>\r\n  <div style=\"display:\">\r\n  <blockquote>\r\n  <table class=\"ta\">\r\n    <tr>\r\n      <td>$$msg16050$</td>\r\n      <td>$$Type$</td>\r\n    </tr>\r\n    $$ContactRows$\r\n  </table>\r\n  </blockquote>\r\n  </div></div>"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/Figure.htm",
    "content": "      <div>\r\n      <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$FigureName$</h5>\r\n      <div style=\"display:\">\r\n      <blockquote>\r\n        <p><a href=\"$$FigureSubPath$\"><img class=\"z\" src=\"$$FigureSubPath$\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n        <p><a href=\"$$FigureSubPathRev$\"><img class=\"z\" src=\"$$FigureSubPathRev$\" alt=\"\" /></a></p> iif-->\r\n      </blockquote>\r\n      </div></div>"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/Load.htm",
    "content": "  <div>\r\n  <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$LoadName$</h4>\r\n  <div style=\"display:\">\r\n  <blockquote>\r\n  <table class=\"ta\">\r\n    <tr>\r\n      <td>$$msg16046$</td>\r\n      <td>$$LoadType$</td>\r\n    </tr>\r\n    $$LoadRows$\r\n  </table><!--iif(LOADSVIEW)\r\n  <div>\r\n  <h5><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16048$</h5>\r\n  <div style=\"display:\">\r\n    <p><a href=\"$$ImagePath$\"><img class=\"z\" src=\"$$ImagePath$\" alt=\"\" /></a></p><!--iif(OPPOSITE)\r\n    <p><a href=\"$$OppositeImagePath$\"><img class=\"z\" src=\"$$OppositeImagePath$\" alt=\"\" /></a></p> iif-->\r\n  </div></div> iif-->\r\n  </blockquote>\r\n  </div></div>"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/Main.htm",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=unicode\" /><!--iif(JAVA)\r\n<meta http-equiv=\"Content-Script-Type\" content=\"text/javascript\" /> iif-->\r\n<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\r\n<title>$$MainTitle$</title>\r\n<style type=\"text/css\" media=\"all\">\r\nbody,p,table,th,td,h1,h2,h3,h4,h5,input{font-weight: normal; font-size: 10pt; font-family: Tahoma, Arial, Helvetica, sans-serif}\r\nbody{color: #000000; background-color: #ffffff}\r\nh1{font-weight: bold; font-size: 180%; margin-bottom: 1em}\r\nh2{font-weight: bold; font-size: 150%; margin-bottom: 0.6em}\r\nh3{font-weight: bold; font-size: 125%; margin-bottom: 0.5em}\r\nh4{font-weight: bold; font-size: 115%; margin-bottom: 0.5em}\r\nh5{font-weight: bold; margin-bottom: 0.5em}\r\np{margin: 0.5em 0em 0.3em 0em; line-height: 100%}\r\nblockquote{margin: 0em 0em 0em 0.5em; font-size: 100%; line-height: 100%; direction: ltr}\r\n.ta{border: dodgerblue 1px solid; border-collapse: collapse; background-color: #d9e6ff}\r\n.ta td,.ta th{border: dodgerblue 1px solid; padding: 2pt; valign: top}\r\nimg.p{cursor: pointer}\r\nimg.z{width: 400px}\r\n</style>\r\n<style type=\"text/css\" media=\"print\">\r\n.unprinted{display: none}\r\n</style><!--iif(JAVA)\r\n<script type=\"text/javascript\">function aa(elem) {\r\nvar list = elem.parentNode.parentNode.getElementsByTagName(\"div\");\r\nif (list.length > 0){\r\n  var st = list[0].style;\r\n  if (st)\r\n    if (st.display == \"none\"){\r\n      st.display = \"\";\r\n      elem.src = \"Images/minus.png\";\r\n    }else{\r\n      st.display = \"none\";\r\n      elem.src = \"Images/plus.png\";\r\n    }\r\n}}function zoom(w) {\r\nvar oNodes = document.getElementsByTagName(\"img\");\r\nif (oNodes){\r\n  var oNode;\r\n  for (var i=0; oNodes.length > i; i++){\r\n    oNode = oNodes[i];\r\n    if (oNode.className == \"z\"){\r\n      if (oNode.style)\r\n        oNode.style.width = w;\r\n      oNode.width = w;\r\n    }\r\n  }\r\n}}</script> iif-->\r\n</head>\r\n<body><!--iif(JAVA)\r\n<p class=\"unprinted\">$$msg16082$ <input type=\"button\" value=\"$$msg16083$\" onclick=\"zoom('320px')\" />\r\n<input type=\"button\" value=\"$$msg16084$\" onclick=\"zoom('400px')\" />\r\n<input type=\"button\" value=\"$$msg16085$\" onclick=\"zoom('640px')\" />\r\n<input type=\"button\" value=\"$$msg16086$\" onclick=\"zoom('800px')\" />\r\n<input type=\"button\" value=\"$$msg16087$\" onclick=\"zoom('1024px')\" />\r\n<input type=\"button\" value=\"$$msg16088$\" onclick=\"zoom('1280px')\" />\r\n<input type=\"button\" value=\"$$msg16089$\" onclick=\"zoom('100%')\" /></p>\r\n<hr class=\"unprinted\" /> iif-->\r\n<h1>$$MainTitle$</h1>\r\n<!--iif(LOGO)<p style=\"text-align:right\"><img src=\"$$SimLogo$\" alt=\"\" /></p> iif--><table class=\"ta\">\r\n\t<tr>\r\n\t\t<td>$$msg16061$:</td>\r\n\t\t<td>$$FileName$</td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>$$msg16010$:</td>\r\n\t\t<td>$$version$</td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>$$msg16012$:</td>\r\n\t\t<td>$$CreateDate$</td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>$$msg16011$:</td>\r\n\t\t<td>$$SimAuthor$</td>\r\n\t</tr><!--iif(SIMSUMMARY)\r\n\t<tr>\r\n\t\t<td>$$msg15059$:</td>\r\n\t\t<td>$$SimSummary$</td>\r\n\t</tr> iif-->\r\n</table><!--iif(PROJECTINFO)\r\n<hr />\r\n<div>\r\n<h3><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16014$</h3>\r\n<div style=\"display:\">\r\n<blockquote><!--iif(SUMMARY)\r\n  <div>\r\n  <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg15059$</h4>\r\n  <div style=\"display:\">\r\n  <blockquote><table class=\"ta\">\r\n    $$GroupSummary$\r\n  </table>\r\n  </blockquote>\r\n  </div></div> iif--><!--iif(PROJECT)\r\n  <div>\r\n  <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg15068$</h4>\r\n  <div style=\"display:\">\r\n  <blockquote><table class=\"ta\">\r\n    $$GroupProject$\r\n  </table>\r\n  </blockquote>\r\n  </div></div> iif--><!--iif(STATUS)\r\n  <div>\r\n  <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg15053$</h4>\r\n  <div style=\"display:\">\r\n  <blockquote><table class=\"ta\">\r\n    $$GroupStatus$\r\n  </table>\r\n  </blockquote>\r\n  </div></div> iif--><!--iif(CUSTOM)\r\n  <div>\r\n  <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg15051$</h4>\r\n  <div style=\"display:\">\r\n  <blockquote><table class=\"ta\">\r\n    $$GroupCustom$\r\n  </table>\r\n  </blockquote>\r\n  </div></div> iif--><!--iif(PHYSICAL)\r\n  <div>\r\n  <h4><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg15082$</h4>\r\n  <div style=\"display:\">\r\n  <blockquote><table class=\"ta\">\r\n    $$GroupPhysical$\r\n  </table>\r\n  <p>$$msg16090$</p>\r\n  </blockquote>\r\n  </div></div> iif-->\r\n</blockquote>\r\n</div>\r\n</div> iif-->\r\n$$GroupSimulation$\r\n<p><br/>$$FilePath$</p><!--iif(JAVA)\r\n<hr class=\"unprinted\" />\r\n<p class=\"unprinted\">$$msg16082$ <input type=\"button\" value=\"$$msg16083$\" onclick=\"zoom('320px')\" />\r\n<input type=\"button\" value=\"$$msg16084$\" onclick=\"zoom('400px')\" />\r\n<input type=\"button\" value=\"$$msg16085$\" onclick=\"zoom('640px')\" />\r\n<input type=\"button\" value=\"$$msg16086$\" onclick=\"zoom('800px')\" />\r\n<input type=\"button\" value=\"$$msg16087$\" onclick=\"zoom('1024px')\" />\r\n<input type=\"button\" value=\"$$msg16088$\" onclick=\"zoom('1280px')\" />\r\n<input type=\"button\" value=\"$$msg16089$\" onclick=\"zoom('100%')\" /></p> iif-->\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/Material.htm",
    "content": "  <table class=\"ta\">\r\n    <tr>\r\n      <td>$$msg16032$</td>\r\n      <td colspan=\"2\">$$Name$</td>\r\n    </tr>\r\n    <tr>\r\n      <td rowspan=\"3\">$$msg16033$</td>\r\n      <td>$$msg16034$</td>\r\n      <td>$$Density$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16024$</td>\r\n      <td>$$YieldStrength$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16049$</td>\r\n      <td>$$UltimateStrength$</td>\r\n    </tr>\r\n    <tr>\r\n      <td rowspan=\"3\">$$msg16036$</td>\r\n      <td>$$msg16037$</td>\r\n      <td>$$YoungsModulus$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16038$</td>\r\n      <td>$$PoissonsRatio$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16039$</td>\r\n      <td>$$ShearModulus$</td>\r\n    </tr>\r\n    <tr>\r\n      <td rowspan=\"3\">$$msg16040$</td>\r\n      <td>$$msg16041$</td>\r\n      <td>$$LinearExpansion$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16043$</td>\r\n      <td>$$ThermalConductivity$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16044$</td>\r\n      <td>$$SpecificHeat$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16045$</td>\r\n      <td colspan=\"2\">$$PartNames$</td>\r\n    </tr>\r\n  </table>"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/ReactionForces.htm",
    "content": "  <tr>\r\n    <td rowspan=\"3\">$$ConstraintName$</td>\r\n    <td rowspan=\"3\">$$Force$</td>\r\n    <td>$$ForceX$</td>\r\n    <td rowspan=\"3\">$$Moment$</td>\r\n    <td>$$MomentX$</td>\r\n  </tr>\r\n  <tr>\r\n    <td>$$ForceY$</td>\r\n    <td>$$MomentY$</td>\r\n  </tr>\r\n  <tr>\r\n    <td>$$ForceZ$</td>\r\n    <td>$$MomentZ$</td>\r\n  </tr>"
  },
  {
    "path": "CAD/Design Data/Simulation/Report/Simulation.htm",
    "content": "<hr />\r\n<div>\r\n<h2><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$SimulationName$</h2>\r\n<div style=\"display:\">\r\n<blockquote>\r\n  <p><b>$$msg16015$</b></p>\r\n  <table class=\"ta\">\r\n    <tr>\r\n      <td>$$msg16016$</td>\r\n      <td>$$DesignObjective$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16017$</td>\r\n      <td>$$SimulationType$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16013$</td>\r\n      <td>$$LastModifDate$</td>\r\n    </tr><!--iif(STATIC)\r\n    <tr>\r\n      <td>$$msg16076$</td>\r\n      <td>$$EliminateRigidBodyModes$</td>\r\n    </tr><!--iif(not PART)\r\n    <tr>\r\n      <td>$$msg16077$</td>\r\n      <td>$$SeparateStresses$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16079$</td>\r\n      <td>$$MotionLoadsAnalysis$</td>\r\n    </tr> \r\n\t<!--iif(MOTION)\r\n\t<tr>\r\n      <td>$$msg16045$</td>\r\n      <td>$$MotionLoadsAnalysisPart$</td>\r\n    </tr> \r\n\t<tr>\r\n      <td>$$msg16091$</td>\r\n      <td>$$MotionLoadsAnalysisTimeStep$</td>\r\n    </tr> \r\n\tiif--> iif--> iif--><!--iif(not STATIC)\r\n    <tr>\r\n      <td>$$msg16052$</td>\r\n      <td>$$NumberOfModes$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16053$</td>\r\n      <td>$$FrequencyRange$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16054$</td>\r\n      <td>$$ComputePreloaded$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16055$</td>\r\n      <td>$$EnhancedAccuracy$</td>\r\n    </tr> iif-->\r\n  </table>\r\n  <p><br/><b>$$msg16018$</b></p>\r\n  <table class=\"ta\">\r\n    <tr>\r\n      <td>$$msg16019$</td>\r\n      <td>$$AvgMeshSize$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16020$</td>\r\n      <td>$$MinSize$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16021$</td>\r\n      <td>$$GradingFactor$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16022$</td>\r\n      <td>$$MaxTurnAngle$</td>\r\n    </tr>\r\n    <tr>\r\n      <td>$$msg16023$</td>\r\n      <td>$$CurvedMesh$</td>\r\n    </tr><!--iif(not PART)\r\n    <tr>\r\n      <td>$$msg16051$</td>\r\n      <td>$$PartBasedMeasure$</td>\r\n    </tr> iif-->\r\n  </table><!--iif(DESIGNCONSTRAINTS)\r\n  <p><br/><b>$$msg16072$</b></p>\r\n  <table class=\"ta\">\r\n    <tr>\r\n      <td><b>$$msg12046$</b></td>\r\n      <td><b>$$msg12047$</b></td>\r\n      <td><b>$$msg12049$</b></td>\r\n      <td><b>$$msg12050$</b></td>\r\n    </tr>\r\n    $$GroupDesignConstraints$\r\n  </table> iif--><!--iif(PARAMETRIC)<!--iif(DESIGNPARAMETERS)\r\n  <p><br/><b>$$msg16073$</b></p>\r\n  <table class=\"ta\">\r\n    <tr>\r\n      <td><b>$$msg12053$</b></td>\r\n      <td><b>$$msg12057$</b></td>\r\n      <td><b>$$msg12054$</b></td>\r\n      <td><b>$$msg12055$</b></td>\r\n      <td><b>$$msg12056$</b></td>\r\n      <td><b>$$msg12093$</b></td>\r\n    </tr>\r\n    $$GroupDesignParameters$\r\n  </table> iif--> iif--><!--iif(MATERIALS)\r\n  <div>\r\n  <h3><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16025$</h3>\r\n  <div style=\"display:\">\r\n  <blockquote>\r\n  $$GroupMaterial$\r\n  </blockquote>\r\n  </div></div> iif--><!--iif(LOADS,CONSTRAINTS,CONTACTS)\r\n  <div>\r\n  <h3><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16026$</h3>\r\n  <div style=\"display:\">\r\n  <blockquote>\r\n  $$GroupLoad$\r\n  $$GroupConstraint$\r\n  $$GroupContact$\r\n  </blockquote>\r\n  </div></div> iif--><!--iif(RESULTS)\r\n  <div>\r\n  <h3><!--iif(JAVA)<img class=\"p\" src=\"Images/minus.png\" onclick=\"aa(this)\" alt=\"\" /> iif-->&nbsp;$$msg16027$</h3>\r\n  <div style=\"display:\">\r\n    <blockquote>\r\n    $$GroupConfiguration$\r\n    </blockquote>\r\n  </div></div> iif-->\r\n</blockquote>\r\n</div>\r\n</div>\r\n"
  },
  {
    "path": "Cameras.cpp",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"Cameras.h\"\n\n// Init camera capture and get ready to start the scanning thread\r\nCameras::Cameras(wxTextCtrl *pMemo, wxFrame *windowIn, ScanStatus *scanStatusIn, int cameraNumIn)\r\n{\n\twindow = windowIn;\r\n\tm_MyCapture = NULL;\n\tm_LastFrame = NULL;\r\n\tm_pMemo = pMemo;\r\n\tm_CamPaused = false;\r\n\tm_CamPlaying = false;\n\tcameraNum = cameraNumIn;\n//\tm_CamStopped = false;\n\tdistanceToReferenceWall = -1;\n\n\tscanStatus = scanStatusIn;\n\r\n\tmyScanThread = NULL;\n\n\tnoLaserImage = NULL;\n\tlaserCenteredImage = NULL;\n\n\tcaptureThread = NULL;\n\n\tthresholdPixelValue = 25;\n\n\tbrightnessFilterValue = 0.8;\n\r\n\t// filename format for the first frame from camera 0 is MyFrame0.bmp\r\n\t// the 12th frame is MyFrame12.bmp\r\n\tm_filename =  wxT(\"MyFrame\");   // This is the base name, integers will be appended for each frame captured\r\n\tm_fileformat = wxT(\".bmp\");\t// can choose bmp, jpg, etc for saving images\r\n\tm_LastCapturedFrameFilename = wxT(\"\");\r\n\tm_FilenameIndex = wxT(\"\");\r\n\tm_NumberOfCapturedFrames = 0;\n\n\t//cvNamedWindow(\"My Camera\", CV_WINDOW_AUTOSIZE);\n\n\tif (InitializeCamera() == true)\n\t{\n\n\t\tcaptureThread = new CaptureThread(window, m_MyCapture);\n\t\tif ( captureThread->Create() != wxTHREAD_NO_ERROR )\n\t\t{\n\t\t\tm_pMemo->AppendText(wxT(\"\\nFailed to create capture thread.\"));\n\t\t} else {\n\t\t\tcaptureThread->Run();\n\t\t\tcaptureThread->SetCapture(PREVIEW);\n\t\t}\n\t}\r\n}\r\n\n// kill the thread and release the camera\r\nCameras::~Cameras()\r\n{\n\tStopCaptureThread();\n\n\tif (noLaserImage)\n\t{\n\t\tcvReleaseImage(&noLaserImage);\n\t}\n\n\tif (laserCenteredImage)\n\t{\n\t\tcvReleaseImage(&laserCenteredImage);\n\t}\n\n\tif (m_MyCapture) cvReleaseCapture(&m_MyCapture);\r\n\r\n}\r\n\r\n// Attempt to connect to the camera and grab a frame\r\nbool Cameras::InitializeCamera()\r\n{\n\t//m_MyCapture = cvCreateCameraCapture(CV_CAP_ANY);\n    m_MyCapture = cvCaptureFromCAM(cameraNum);\n\tif (!m_MyCapture)\n\t{\n\t\tm_pMemo->AppendText(wxT(\"\\nFailed to connect to camera.\"));\n\t\treturn false;\n\t}\n\tcvQueryFrame(m_MyCapture); // this call is necessary to get correct capture properties\n\n\t// TODO: These resolution selection calls don't appear to work right now.\n\t//cvSetCaptureProperty(m_MyCapture, CV_CAP_PROP_FRAME_WIDTH, 1280);\n\t//cvSetCaptureProperty(m_MyCapture, CV_CAP_PROP_FRAME_HEIGHT, 960);\n\tm_FrameHeight   = (int) cvGetCaptureProperty(m_MyCapture, CV_CAP_PROP_FRAME_HEIGHT);\n\tm_FrameWidth    = (int) cvGetCaptureProperty(m_MyCapture, CV_CAP_PROP_FRAME_WIDTH);\n\t//m_FrameRate     = (int) cvGetCaptureProperty(m_MyCapture, CV_CAP_PROP_FPS);\n\twxString TempString = wxT(\"\\nCamera online at \");\n\tTempString << m_FrameWidth << wxT(\"x\") <<\tm_FrameHeight << wxT(\".\");\n\tm_pMemo->AppendText(TempString);\n\n\tFrameGrab();\n\n\treturn true;\n}\n\n// Determine if we are OK to capture from the camera\nbool Cameras::CaptureExists()\n{\n\tif (!m_MyCapture)\n\t{\n\t\tm_pMemo->AppendText(wxT(\"\\nCamera not initialized.\"));\n\t\treturn false;\n\t}\n\treturn true;\n}\n\n// Grab a frame (note that this is NOT the same as the FrameGrab in ScanThread.cpp)\n\n// TODO: remove this\nIplImage *Cameras::FrameGrab()\r\n{\r\n\tif (!CaptureExists()) return NULL;\n   for (int i=0; i < 8; i++) cvGrabFrame(m_MyCapture); // it takes a few images to get to the newest one\n   m_LastFrame = cvRetrieveFrame(m_MyCapture);\n   //cvShowImage(\"My Camera\", m_LastFrame);\n\treturn m_LastFrame;\n\r\n}\r\n\n// Save an image\n// TODO: remove this\r\nvoid Cameras::SaveSingleFrame()\r\n{\r\n\tif (!CaptureExists()) return;\n\tm_NumberOfCapturedFrames++;\r\n\tcvSaveImage(GetLastCapturedFrameFilename().char_str(), m_LastFrame);\n\t//m_pMemo->AppendText(wxChar((char*)GetLastCapturedFrameFilename().c_str()));\n\t//cvSaveImage(\"testImage.bmp\", m_LastFrame);\r\n}\r\n\r\n// TODO: remove this\r\nwxString Cameras::GetLastCapturedFrameFilename()\r\n{\r\n\tm_LastCapturedFrameFilename = m_filename;\t// basic filename\r\n\tm_LastCapturedFrameFilename << m_NumberOfCapturedFrames;\r\n\tm_LastCapturedFrameFilename.Append(m_fileformat);\n\t\tm_pMemo->AppendText(m_LastCapturedFrameFilename);\n\r\n\treturn m_LastCapturedFrameFilename;\r\n}\r\n\n// Start the scan thread!\r\nvoid Cameras::StartScan()\n{\n\tif (GetInitialData() == true)\n\t{\n\t\tmyScanThread = new ScanThread(window, captureThread, scanStatus, noLaserImage, laserCenteredImage, distanceToReferenceWall);\n\t\tif ( myScanThread->Create() != wxTHREAD_NO_ERROR )\n\t\t{\n\t\t\tm_pMemo->AppendText(wxT(\"\\nFailed to create scan thread.\"));\n\t\t} else {\n\t\t\tscanStatus->SetScanning(true);\n\t\t\tmyScanThread->SetThresholdPixelValue(thresholdPixelValue);\n\t\t\tmyScanThread->SetBrightnessThreshold(brightnessFilterValue);\n\t\t\tmyScanThread->Run();\n\t\t}\n\t}\n}\n\n// Shutdown the thread\nvoid Cameras::StopCaptureThread()\n{\n\tif (captureThread)\n\t{\r\n\t\tcaptureThread->SetCapture(STOP);\r\n\t\tcaptureThread->Wait();\n\t\tcaptureThread = NULL;\n\t}\n}\n\nbool Cameras::GetInitialData()\n{\n\t// pop up the dialog box to ask the user to center the laser or give us the distance\n\t// to the reference wall.\n\n\tDistanceToReferenceDialog distDiag(captureThread, window, wxID_ANY);\n\n\tint returnNum = distDiag.ShowModal();\n\n\tif (returnNum == wxID_OK)\n\t{\n\t\tdistanceToReferenceWall = distDiag.GetWallDistance();\n\t\tnoLaserImage = distDiag.GetNoLaserImage();\n\n\t} else if (returnNum == USER_CENTERED_LASER)\n\t{\n\n\t\tnoLaserImage = distDiag.GetNoLaserImage();\n\t\tlaserCenteredImage = distDiag.GetLaserCenteredImage();\n\n\n\t} else {\n\t\t// cancelled\n\t\treturn false;\n\t}\n\treturn true;\n}\n"
  },
  {
    "path": "Cameras.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef CAMERAS_H\r\n#define CAMERAS_H\r\n\n#include <wx/wx.h>\r\n\r\n#ifndef OPENCV_INCLUDES\r\n#define OPENCV_INCLUDES\n#include \"cv.h\"\r\n#include \"highgui.h\"\r\n#endif // OPENCV_INCLUDES\r\n\n\n#include \"ScanThread.h\"\n#include \"CaptureThread.h\"\n#include \"ScanStatus.h\"\n#include \"DistanceToReferenceDialog.h\"\n\n/*\n* Init camera capture and starts scanning thread which also supports image preview.\n*/\n\nclass Cameras\r\n{\r\n\tpublic:\n\t\t// pMemo is the text box to output strings to, frame gets events sent to it.\r\n\t\tCameras(wxTextCtrl *pMemo, wxFrame *windowIn, ScanStatus *scanStatusIn, int cameraNumIn);\r\n\t\tvirtual ~Cameras();\n\n\t\t// Attempt to connect to the camera\r\n\t\tbool InitializeCamera();\n\n\t\t// Get a frame\n\t\tIplImage* FrameGrab();\n\n\t\tIplImage* GetLastFrame() { return m_LastFrame; }\r\n\t\tvoid SaveSingleFrame();\r\n\t\twxString GetLastCapturedFrameFilename();\n\n\t\t// Get a reference to the scan thread\n\t\tScanThread* GetScanThread() { return myScanThread; }\n\n\t\tvoid SetThresholdPixelValue(int val) { thresholdPixelValue = val; }\n\n\t\tvoid SetBrightnessFilterValue(float val) { brightnessFilterValue = val; }\n\n\t\t// Start the scan thread\n\t\tvoid StartScan();\n\n\t\tvoid StopCaptureThread();\n\n\t\tbool GetInitialData();\r\n\r\n\r\n\tprivate:\n\t\t// window to send events to (Cameras doesn't, but ScanThread does send events)\n\t\twxFrame *window;\n\n\t\t// text control to send log events to\r\n\t\twxTextCtrl *m_pMemo;\n\n\t\t// OpenCV camera capture object\n\t\tCvCapture * m_MyCapture;\n\n\t\t// contains the last frame captured\n\t\tIplImage *m_LastFrame;\n\n\t\t// contains the object we are scanning without the laser\n\t\tIplImage *noLaserImage;\n\n\t\t// contains the laser centered image\n\t\tIplImage *laserCenteredImage;\n\n\t\t// ScanThread that does most of the work\n\t\tScanThread *myScanThread;\n\n\t\tCaptureThread *captureThread;\n\n\t\tScanStatus *scanStatus;\n\n\t\tfloat distanceToReferenceWall;\n\n\t\tfloat brightnessFilterValue;\n\r\n\t\twxString m_filename, m_CamSpacer, m_fileformat, m_FilenameIndex, m_LastCapturedFrameFilename;\r\n\t\tint m_NumberOfCapturedFrames, m_FrameHeight, m_FrameWidth, m_FrameRate, thresholdPixelValue, cameraNum;\r\n\t\tbool m_CamPaused, m_CamPlaying, m_Camped;\n\t\tbool CaptureExists();\r\n\r\n};\r\n\r\n#endif // CAMERAS_H\r\n"
  },
  {
    "path": "CaptureThread.cpp",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include \"CaptureThread.h\"\n\nDEFINE_EVENT_TYPE(IMAGE_UPDATE_EVENT)\n\nCaptureThread::CaptureThread(wxFrame *windowIn, CvCapture *captureIn) : wxThread(wxTHREAD_JOINABLE)\n{\n    capturing = IDLE;\n    window = windowIn;\n    cvCapture = captureIn;\n}\n\n// called on thread quit -- free all memory\nvoid CaptureThread::OnExit()\n{\n\n}\n\n// Called when thread is started\nvoid* CaptureThread::Entry()\n{\n    while (true)\n    {\n        // check to see if the thread should exit\n        if (TestDestroy() == true)\r\n        {\r\n            break;\r\n        }\n\n        if (capturing == CAPTURE)\n        {\n            // get a new image\n            CaptureFrame();\n        } else if (capturing == PREVIEW)\n        {\n\n            // get a new image and show it on screen\n            CaptureFrame();\n            SendFrame(imageQueue.back());\n        } else if (capturing == IDLE)\n        {\n            Sleep(10);\n        } else if (capturing == STOP)\r\n        {\r\n            break;\r\n        }\n\n        Yield();\n    }\n\n    return NULL;\n}\n\nvoid CaptureThread::CaptureFrame()\n{\n    if (!cvCapture){\n        //fail\n        return;\n    }\n\n    if (imageQueue.size() > 100)\n    {\n        // stack too big, throw out some data\n        imageQueue.pop();\n    }\n\n    for (int i=0; i < 1; i++) cvGrabFrame(cvCapture); // it takes a few images to get to the newest one\n    IplImage* lastFrame = cvRetrieveFrame(cvCapture);\n    // cvShowImage(\"My Camera\", LastFrame);\n    imageQueue.push(lastFrame);\n\n}\n\nIplImage* CaptureThread::Pop()\n{\n    if (imageQueue.size() <= 0)\n    {\n        CaptureFrame();\n    }\n\n    IplImage *image = imageQueue.front();\n\n    if (imageQueue.size() > 1)\n    {\n        imageQueue.pop();\n    }\n\n    return image;\n}\n\n/*\n* Flush the stack, allowing the user to make sure s/he gets the most\n* up to date image.  Delete all images in the stack.\n*/\nvoid CaptureThread::Flush()\n{\n    CaptureStatus oldCap = capturing;\n\n    capturing = IDLE;\n\n    while (imageQueue.size() > 0)\n    {\n        imageQueue.pop();\n\n        // since you should never release an image gotten by cvRetrieveFrame,\n        // we don't need to release images here.\n    }\n\n    capturing = oldCap;\n}\n\n// Display the given image on the frame\n// Copies the image so it is safe to change it after the function call\nvoid CaptureThread::SendFrame(IplImage *frame)\n{\n    if (!frame)\n    {\n        return;\n    }\n\n    IplImage* pDstImg;\n    CvSize sz = cvSize(frame->width, frame->height);\n    pDstImg = cvCreateImage(sz, 8, 3);\n    cvZero(pDstImg);\n    // convert the image into a 3 channel image for display on the frame\n    if (frame->nChannels == 1)\n    {\n        //cvCvtColor(frame, pDstImg, CV_GRAY2BGR);\n\n        // another way to convert grayscale to RGB\n        cvMerge(frame, frame, frame, NULL, pDstImg);\n    } else if (frame->nChannels == 3){\n\n        // opencv stores images as BGR instead of RGB so we need to convert\n        cvConvertImage(frame, pDstImg, CV_CVTIMG_SWAP_RB);\n\n    } else {\n        // we don't know how to display this image based on its number of channels\n\n        // give up\n        cvReleaseImage( &pDstImg );\n        return;\n    }\n\n    wxCommandEvent event(IMAGE_UPDATE_EVENT, GetId());\n\n    // send the image in the event\n    event.SetClientData(pDstImg);\n\n    // Send the event to the frame!\n    window->GetEventHandler()->AddPendingEvent(event);\n}\n"
  },
  {
    "path": "CaptureThread.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef CAPTURE_THREAD_H\n#define CAPTURE_THREAD_H\n\n#include <wx/wx.h>\n\n#include \"cv.h\"\n#include \"highgui.h\"\n\n#include <queue>\n\nusing namespace std;\n\r\n/*\r\n* IDLE = don't capture, but stay alive\r\n* CAPTURE = Try to get every frame, enabling a limited-size buffer\r\n* PREVIEW = Get frames and immediatley send them to the frame via events\r\n* STOP = Leave the thread loop.  Set this right before you Wait() for the thread to exit.\r\n*/\nenum CaptureStatus\n{\n\tIDLE,\n\tCAPTURE,\n\tPREVIEW,\r\n\tSTOP\n};\n\nBEGIN_DECLARE_EVENT_TYPES()\n\tDECLARE_EVENT_TYPE(IMAGE_UPDATE_EVENT, -1)\nEND_DECLARE_EVENT_TYPES()\n\n\nclass CaptureThread : public wxThread\n{\n\tpublic:\n\t\t// Constructor\n\t\tCaptureThread(wxFrame *windowIn, CvCapture *captureIn);\n\n\t\t// Function that is run on thread init\n\t\tvirtual void* Entry();\r\n\r\n\t\t// Safely close\n\t\tvirtual void OnExit();\n\n\t\tIplImage* Pop();\n\n\t\tvoid SetCapture(CaptureStatus newStatus) { capturing = newStatus; }\n\n\t\tint GetQueueSize() { return imageQueue.size(); }\n\t\tvoid SendFrame(IplImage *frame);\n\n\t\tvoid Flush();\n\n\tprivate:\n\n\t\tCaptureStatus capturing;\n\n\t\twxFrame *window;\n\t\tCvCapture *cvCapture;\n\n\t\tvoid CaptureFrame();\n\n\t\tqueue<IplImage*> imageQueue;\n\n\n\n};\n\n\n\n#endif //CAPTURE_THREAD_H\n"
  },
  {
    "path": "ChangeLog",
    "content": "0.3.1 (Jan. 16, 2017): Fix wxWidgets errors.\n\n0.3.1 (Sept. 18 2010): Minor bug fix release.  Fixes a number of crashes and adds the ability to switch which camera is used.  Also now saves location of last scan for easier file-system navigation.\n\n0.3 (Summer 2010): Removed requirement for USB-based laser movement.  Added on-screen feedback for where the laser appears.  Substantially improved vibration and movement robustness.\n\n0.2 (Fall 2009): Substantial improvement in accuracy by moving from a calibration-only method to a reference-pixel method.  Enabled .ply output.\n\n0.1 (Fall 2008): Original version.\n"
  },
  {
    "path": "DistanceToReferenceDialog.cpp",
    "content": "#include \"DistanceToReferenceDialog.h\"\n\n//(*InternalHeaders(DistanceToReferenceDialog)\n#include <wx/string.h>\n#include <wx/intl.h>\n//*)\n\n//(*IdInit(DistanceToReferenceDialog)\nconst long DistanceToReferenceDialog::ID_STATICTEXT1 = wxNewId();\nconst long DistanceToReferenceDialog::ID_STATICLINE1 = wxNewId();\nconst long DistanceToReferenceDialog::ID_STATICTEXT4 = wxNewId();\nconst long DistanceToReferenceDialog::ID_BUTTON1 = wxNewId();\nconst long DistanceToReferenceDialog::ID_STATICTEXT5 = wxNewId();\nconst long DistanceToReferenceDialog::ID_BUTTON2 = wxNewId();\nconst long DistanceToReferenceDialog::ID_STATICTEXT6 = wxNewId();\nconst long DistanceToReferenceDialog::ID_STATICTEXT7 = wxNewId();\nconst long DistanceToReferenceDialog::ID_SPINCTRL1 = wxNewId();\nconst long DistanceToReferenceDialog::ID_PANEL1 = wxNewId();\n//*)\n\nBEGIN_EVENT_TABLE(DistanceToReferenceDialog,wxDialog)\n\t//(*EventTable(DistanceToReferenceDialog)\n\t//*)\nEND_EVENT_TABLE()\n\nDistanceToReferenceDialog::DistanceToReferenceDialog(CaptureThread *captureThreadIn, wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size)\n{\n\t//(*Initialize(DistanceToReferenceDialog)\n\twxFlexGridSizer* FlexGridSizer1;\n\twxBoxSizer* BoxSizer2;\n\twxBoxSizer* BoxSizer1;\n\twxBoxSizer* BoxSizer5;\n\t\n\tCreate(parent, wxID_ANY, _(\"Distance to Reference Surface\"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, _T(\"wxID_ANY\"));\n\tSetClientSize(wxSize(446,289));\n\tBoxSizer1 = new wxBoxSizer(wxHORIZONTAL);\n\tPanel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T(\"ID_PANEL1\"));\n\tBoxSizer2 = new wxBoxSizer(wxVERTICAL);\n\tBoxSizer5 = new wxBoxSizer(wxHORIZONTAL);\n\tStaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _(\"Before we start, we need to know a few things:\\n\\n1) what your object looks like without the laser.\\n2) how far away your flat reference surface is.\"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_STATICTEXT1\"));\n\tBoxSizer5->Add(StaticText1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tBoxSizer2->Add(BoxSizer5, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tStaticLine1 = new wxStaticLine(Panel1, ID_STATICLINE1, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T(\"ID_STATICLINE1\"));\n\tBoxSizer2->Add(StaticLine1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tFlexGridSizer1 = new wxFlexGridSizer(0, 2, 0, 0);\n\tlblCoverLaser = new wxStaticText(Panel1, ID_STATICTEXT4, _(\"1) Cover the laser\"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_STATICTEXT4\"));\n\tFlexGridSizer1->Add(lblCoverLaser, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);\n\tbutLaserCovered = new wxButton(Panel1, ID_BUTTON1, _(\"Done\"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T(\"ID_BUTTON1\"));\n\tFlexGridSizer1->Add(butLaserCovered, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tlblCenterLaser = new wxStaticText(Panel1, ID_STATICTEXT5, _(\"2) Center the laser\"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_STATICTEXT5\"));\n\tlblCenterLaser->Disable();\n\tFlexGridSizer1->Add(lblCenterLaser, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);\n\tbutLaserCentered = new wxButton(Panel1, ID_BUTTON2, _(\"Done\"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T(\"ID_BUTTON2\"));\n\tbutLaserCentered->Disable();\n\tFlexGridSizer1->Add(butLaserCentered, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tlblOr = new wxStaticText(Panel1, ID_STATICTEXT6, _(\"or\"), wxDefaultPosition, wxSize(45,17), 0, _T(\"ID_STATICTEXT6\"));\n\tlblOr->Disable();\n\tFlexGridSizer1->Add(lblOr, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tFlexGridSizer1->Add(-1,-1,1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tlblEnterDistance = new wxStaticText(Panel1, ID_STATICTEXT7, _(\"Enter the distance to the\\nflat reference wall (cm):\"), wxDefaultPosition, wxDefaultSize, 0, _T(\"ID_STATICTEXT7\"));\n\tlblEnterDistance->Disable();\n\tFlexGridSizer1->Add(lblEnterDistance, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tspinDistance = new wxSpinCtrl(Panel1, ID_SPINCTRL1, _T(\"50\"), wxDefaultPosition, wxSize(79,27), 0, 0, 1000, 50, _T(\"ID_SPINCTRL1\"));\n\tspinDistance->SetValue(_T(\"50\"));\n\tspinDistance->Disable();\n\tFlexGridSizer1->Add(spinDistance, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tFlexGridSizer1->Add(-1,-1,1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tbutDistanceEntered = new wxButton(Panel1, wxID_OK, _(\"Done\"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T(\"wxID_OK\"));\n\tbutDistanceEntered->Disable();\n\tFlexGridSizer1->Add(butDistanceEntered, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tBoxSizer2->Add(FlexGridSizer1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tPanel1->SetSizer(BoxSizer2);\n\tBoxSizer2->Fit(Panel1);\n\tBoxSizer2->SetSizeHints(Panel1);\n\tBoxSizer1->Add(Panel1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\n\tSetSizer(BoxSizer1);\n\tBoxSizer1->SetSizeHints(this);\n\t\n\tConnect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DistanceToReferenceDialog::OnButLaserCoveredClick);\n\tConnect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DistanceToReferenceDialog::OnButLaserCenteredClick);\n\t//*)\n\n\tbutLaserCovered->SetFocus();\n\tcaptureThread = captureThreadIn;\n}\n\nDistanceToReferenceDialog::~DistanceToReferenceDialog()\n{\n\t//(*Destroy(DistanceToReferenceDialog)\n\t//*)\n}\n\n\nvoid DistanceToReferenceDialog::OnButLaserCenteredClick(wxCommandEvent& event)\n{\n\tcaptureThread->Flush();\n\tIplImage *laserCenteredTemp = captureThread->Pop();\n\n\tlaserCentered = cvCloneImage(laserCenteredTemp);\n\n\tEndModal(USER_CENTERED_LASER);\n}\n\n\nbool DistanceToReferenceDialog::TransferDataFromWindow()\n{\n\tdistance = spinDistance->GetValue();\n\n\treturn true;\n}\n\nvoid DistanceToReferenceDialog::OnButLaserCoveredClick(wxCommandEvent& event)\n{\n\tcaptureThread->Flush();\n\tIplImage *tempNoLaserImage = captureThread->Pop();\n\n\tnoLaserImage = cvCloneImage(tempNoLaserImage);\n\n\n\tbutLaserCovered->Enable(false);\n\tlblCoverLaser->Enable(false);\n\n\tlblCenterLaser->Enable(true);\n\tbutLaserCentered->Enable(true);\n\tlblOr->Enable(true);\n\tlblEnterDistance->Enable(true);\n\tspinDistance->Enable(true);\n\tbutDistanceEntered->Enable(true);\n\n\tbutLaserCentered->SetFocus();\n\n}\n\n\n"
  },
  {
    "path": "DistanceToReferenceDialog.h",
    "content": "#ifndef DISTANCETOREFERENCEDIALOG_H\n#define DISTANCETOREFERENCEDIALOG_H\n\n//(*Headers(DistanceToReferenceDialog)\n#include <wx/spinctrl.h>\n#include <wx/dialog.h>\n#include <wx/sizer.h>\n#include <wx/button.h>\n#include <wx/panel.h>\n#include <wx/statline.h>\n#include <wx/stattext.h>\n//*)\n\n#define USER_CENTERED_LASER 999\n\n#include \"CaptureThread.h\"\n\nclass DistanceToReferenceDialog: public wxDialog\n{\n\tpublic:\n\n\t\tDistanceToReferenceDialog(CaptureThread *captureThreadIn, wxWindow* parent,wxWindowID id=wxID_ANY,const wxPoint& pos=wxDefaultPosition,const wxSize& size=wxDefaultSize);\n\t\tvirtual ~DistanceToReferenceDialog();\n\n\t\t//(*Declarations(DistanceToReferenceDialog)\n\t\twxPanel* Panel1;\n\t\twxButton* butLaserCentered;\n\t\twxStaticText* lblOr;\n\t\twxStaticText* lblCoverLaser;\n\t\twxStaticText* StaticText1;\n\t\twxStaticLine* StaticLine1;\n\t\twxButton* butLaserCovered;\n\t\twxStaticText* lblCenterLaser;\n\t\twxStaticText* lblEnterDistance;\n\t\twxSpinCtrl* spinDistance;\n\t\twxButton* butDistanceEntered;\n\t\t//*)\n\n\t\tfloat GetWallDistance() { return distance; }\n\t\tIplImage* GetLaserCenteredImage() { return laserCentered; }\n\t\tIplImage* GetNoLaserImage() { return noLaserImage; }\n\n\t\tvirtual bool TransferDataFromWindow();\n\n\tprotected:\n\n\t\t//(*Identifiers(DistanceToReferenceDialog)\n\t\tstatic const long ID_STATICTEXT1;\n\t\tstatic const long ID_STATICLINE1;\n\t\tstatic const long ID_STATICTEXT4;\n\t\tstatic const long ID_BUTTON1;\n\t\tstatic const long ID_STATICTEXT5;\n\t\tstatic const long ID_BUTTON2;\n\t\tstatic const long ID_STATICTEXT6;\n\t\tstatic const long ID_STATICTEXT7;\n\t\tstatic const long ID_SPINCTRL1;\n\t\tstatic const long ID_PANEL1;\n\t\t//*)\n\n\tprivate:\n\n\t\t//(*Handlers(DistanceToReferenceDialog)\n\t\tvoid OnButLaserCenteredClick(wxCommandEvent& event);\n\t\tvoid OnButLaserCoveredClick(wxCommandEvent& event);\n\t\t//*)\n\n\t\tfloat distance;\n\t\tIplImage *noLaserImage, *laserCentered;\n\t\tCaptureThread *captureThread;\n\n\t\tDECLARE_EVENT_TABLE()\n};\n\n#endif\n"
  },
  {
    "path": "INSTALL",
    "content": "See http://www.makerscanner.com/ for instructions.\n\n"
  },
  {
    "path": "IndividualPixels.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef INDIVIDUAL_PIXELS\r\n#define INDIVIDUAL_PIXELS\r\n\r\n#ifndef OPENCV_INCLUDES\r\n#define OPENCV_INCLUDES\r\n#include \"cv.h\"\r\n#include \"highgui.h\"\r\n#endif // OPENCV_INCLUDES\r\n\n/*\n* Standard code for getting individual pixel access -- RgbImage, BwImage, RgbImage Float, and BwImageFloat\n* Nothing especailly novel here...\n*/\n\r\ntemplate<class T> class Pixels\r\n{\r\n  private:\r\n  IplImage* imgp;\r\n  public:\r\n  Pixels(IplImage* img=0) {imgp=img;}\r\n  ~Pixels(){imgp=0;}\r\n  void operator=(IplImage* img) {imgp=img;}\r\n  inline T* operator[](const int rowIndx) {\r\n    return ((T *)(imgp->imageData + rowIndx*imgp->widthStep));}\r\n};\r\n\r\ntypedef struct{\r\n  unsigned char b,g,r;\r\n} RgbPixel;\r\n\r\ntypedef struct{\r\n  float b,g,r;\r\n} RgbPixelFloat;\r\n\r\ntypedef Pixels<RgbPixel>       RgbImage;\r\ntypedef Pixels<RgbPixelFloat>  RgbImageFloat;\r\ntypedef Pixels<unsigned char>  BwImage;\r\ntypedef Pixels<float>          BwImageFloat;\r\n\r\n#endif // INDIVIDUAL_PIXELS\r\n\r\n/*  How to use this class\r\n// refer to individual pixels as shown below.\r\n// when they are changed in the class's image, they change in the parameter image as well.\r\n// http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html#SECTION00053000000000000000\r\n# For a single-channel byte image:\r\n\r\nIplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);\r\nBwImage imgA(img);\r\nimgA[i][j] = 111;\r\n\r\n# For a multi-channel byte image:\r\n\r\nIplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);\r\nRgbImage  imgA(img);\r\nimgA[i][j].b = 111;\r\nimgA[i][j].g = 111;\r\nimgA[i][j].r = 111;\r\n\r\n# For a multi-channel float image:\r\n\r\nIplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3);\r\nRgbImageFloat imgA(img);\r\nimgA[i][j].b = 111;\r\nimgA[i][j].g = 111;\r\nimgA[i][j].r = 111;\r\n\r\n*/\r\n"
  },
  {
    "path": "LICENSE",
    "content": "\t\t    GNU GENERAL PUBLIC LICENSE\n\t\t       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc.,\n 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n\t\t\t    Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicense is intended to guarantee your freedom to share and change free\nsoftware--to make sure the software is free for all its users.  This\nGeneral Public License applies to most of the Free Software\nFoundation's software and to any other program whose authors commit to\nusing it.  (Some other Free Software Foundation software is covered by\nthe GNU Lesser General Public License instead.)  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthis service if you wish), that you receive source code or can get it\nif you want it, that you can change the software or use pieces of it\nin new free programs; and that you know you can do these things.\n\n  To protect your rights, we need to make restrictions that forbid\nanyone to deny you these rights or to ask you to surrender the rights.\nThese restrictions translate to certain responsibilities for you if you\ndistribute copies of the software, or if you modify it.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must give the recipients all the rights that\nyou have.  You must make sure that they, too, receive or can get the\nsource code.  And you must show them these terms so they know their\nrights.\n\n  We protect your rights with two steps: (1) copyright the software, and\n(2) offer you this license which gives you legal permission to copy,\ndistribute and/or modify the software.\n\n  Also, for each author's protection and ours, we want to make certain\nthat everyone understands that there is no warranty for this free\nsoftware.  If the software is modified by someone else and passed on, we\nwant its recipients to know that what they have is not the original, so\nthat any problems introduced by others will not reflect on the original\nauthors' reputations.\n\n  Finally, any free program is threatened constantly by software\npatents.  We wish to avoid the danger that redistributors of a free\nprogram will individually obtain patent licenses, in effect making the\nprogram proprietary.  To prevent this, we have made it clear that any\npatent must be licensed for everyone's free use or not licensed at all.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n\t\t    GNU GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License applies to any program or other work which contains\na notice placed by the copyright holder saying it may be distributed\nunder the terms of this General Public License.  The \"Program\", below,\nrefers to any such program or work, and a \"work based on the Program\"\nmeans either the Program or any derivative work under copyright law:\nthat is to say, a work containing the Program or a portion of it,\neither verbatim or with modifications and/or translated into another\nlanguage.  (Hereinafter, translation is included without limitation in\nthe term \"modification\".)  Each licensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning the Program is not restricted, and the output from the Program\nis covered only if its contents constitute a work based on the\nProgram (independent of having been made by running the Program).\nWhether that is true depends on what the Program does.\n\n  1. You may copy and distribute verbatim copies of the Program's\nsource code as you receive it, in any medium, provided that you\nconspicuously and appropriately publish on each copy an appropriate\ncopyright notice and disclaimer of warranty; keep intact all the\nnotices that refer to this License and to the absence of any warranty;\nand give any other recipients of the Program a copy of this License\nalong with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and\nyou may at your option offer warranty protection in exchange for a fee.\n\n  2. You may modify your copy or copies of the Program or any portion\nof it, thus forming a work based on the Program, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) You must cause the modified files to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    b) You must cause any work that you distribute or publish, that in\n    whole or in part contains or is derived from the Program or any\n    part thereof, to be licensed as a whole at no charge to all third\n    parties under the terms of this License.\n\n    c) If the modified program normally reads commands interactively\n    when run, you must cause it, when started running for such\n    interactive use in the most ordinary way, to print or display an\n    announcement including an appropriate copyright notice and a\n    notice that there is no warranty (or else, saying that you provide\n    a warranty) and that users may redistribute the program under\n    these conditions, and telling the user how to view a copy of this\n    License.  (Exception: if the Program itself is interactive but\n    does not normally print such an announcement, your work based on\n    the Program is not required to print an announcement.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Program,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Program, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote it.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Program.\n\nIn addition, mere aggregation of another work not based on the Program\nwith the Program (or with a work based on the Program) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may copy and distribute the Program (or a work based on it,\nunder Section 2) in object code or executable form under the terms of\nSections 1 and 2 above provided that you also do one of the following:\n\n    a) Accompany it with the complete corresponding machine-readable\n    source code, which must be distributed under the terms of Sections\n    1 and 2 above on a medium customarily used for software interchange; or,\n\n    b) Accompany it with a written offer, valid for at least three\n    years, to give any third party, for a charge no more than your\n    cost of physically performing source distribution, a complete\n    machine-readable copy of the corresponding source code, to be\n    distributed under the terms of Sections 1 and 2 above on a medium\n    customarily used for software interchange; or,\n\n    c) Accompany it with the information you received as to the offer\n    to distribute corresponding source code.  (This alternative is\n    allowed only for noncommercial distribution and only if you\n    received the program in object code or executable form with such\n    an offer, in accord with Subsection b above.)\n\nThe source code for a work means the preferred form of the work for\nmaking modifications to it.  For an executable work, complete source\ncode means all the source code for all modules it contains, plus any\nassociated interface definition files, plus the scripts used to\ncontrol compilation and installation of the executable.  However, as a\nspecial exception, the source code distributed need not include\nanything that is normally distributed (in either source or binary\nform) with the major components (compiler, kernel, and so on) of the\noperating system on which the executable runs, unless that component\nitself accompanies the executable.\n\nIf distribution of executable or object code is made by offering\naccess to copy from a designated place, then offering equivalent\naccess to copy the source code from the same place counts as\ndistribution of the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  4. You may not copy, modify, sublicense, or distribute the Program\nexcept as expressly provided under this License.  Any attempt\notherwise to copy, modify, sublicense or distribute the Program is\nvoid, and will automatically terminate your rights under this License.\nHowever, parties who have received copies, or rights, from you under\nthis License will not have their licenses terminated so long as such\nparties remain in full compliance.\n\n  5. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Program or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Program (or any work based on the\nProgram), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Program or works based on it.\n\n  6. Each time you redistribute the Program (or any work based on the\nProgram), the recipient automatically receives a license from the\noriginal licensor to copy, distribute or modify the Program subject to\nthese terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties to\nthis License.\n\n  7. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Program at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Program by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Program.\n\nIf any portion of this section is held invalid or unenforceable under\nany particular circumstance, the balance of the section is intended to\napply and the section as a whole is intended to apply in other\ncircumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system, which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  8. If the distribution and/or use of the Program is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Program under this License\nmay add an explicit geographical distribution limitation excluding\nthose countries, so that distribution is permitted only in or among\ncountries not thus excluded.  In such case, this License incorporates\nthe limitation as if written in the body of this License.\n\n  9. The Free Software Foundation may publish revised and/or new versions\nof the General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Program\nspecifies a version number of this License which applies to it and \"any\nlater version\", you have the option of following the terms and conditions\neither of that version or of any later version published by the Free\nSoftware Foundation.  If the Program does not specify a version number of\nthis License, you may choose any version ever published by the Free Software\nFoundation.\n\n  10. If you wish to incorporate parts of the Program into other free\nprograms whose distribution conditions are different, write to the author\nto ask for permission.  For software which is copyrighted by the Free\nSoftware Foundation, write to the Free Software Foundation; we sometimes\nmake exceptions for this.  Our decision will be guided by the two goals\nof preserving the free status of all derivatives of our free software and\nof promoting the sharing and reuse of software generally.\n\n\t\t\t    NO WARRANTY\n\n  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\nFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\nOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\nPROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\nOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\nTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\nPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\nREPAIR OR CORRECTION.\n\n  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\nREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\nINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\nOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\nTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\nYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n\n\t\t     END OF TERMS AND CONDITIONS\n\n\t    How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License along\n    with this program; if not, write to the Free Software Foundation, Inc.,\n    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this\nwhen it starts in an interactive mode:\n\n    Gnomovision version 69, Copyright (C) year name of author\n    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, the commands you use may\nbe called something other than `show w' and `show c'; they could even be\nmouse-clicks or menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the program, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n  `Gnomovision' (which makes passes at compilers) written by James Hacker.\n\n  <signature of Ty Coon>, 1 April 1989\n  Ty Coon, President of Vice\n\nThis General Public License does not permit incorporating your program into\nproprietary programs.  If your program is a subroutine library, you may\nconsider it more useful to permit linking proprietary applications with the\nlibrary.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.\n"
  },
  {
    "path": "Makefile.am",
    "content": "##Process this file with automake to create Makefile.in\n\nbin_PROGRAMS = makerscanner\nmakerscanner_SOURCES = ActiveStereoApp.cpp CaptureThread.h ScanStatus.h ActiveStereoApp.h DistanceToReferenceDialog.cpp ScanThread.cpp ActiveStereoMain.cpp DistanceToReferenceDialog.h ScanThread.h ActiveStereoMain.h IndividualPixels.h Cameras.cpp PointCloud.cpp Cameras.h PointCloud.h camview.cpp PointCloudPoint.cpp camview.h PointCloudPoint.h SetHorz.h CaptureThread.cpp ScanStatus.cpp\n\nEXTRA_DIST = laserIcon.png\npixmapdir = $(datadir)/pixmaps\npixmap_DATA = laserIcon.png\n\n\n\n##AM_CPPFLAGS = $(DEPS_CFLAGS) -DPIXMAPS_DIR=\\\"\"$(datadir)/pixmaps\"\\\"\n\n## Add the OpenCV flags that we got from PKG_CHECK_MODULES([OPENCV], [opencv >= 2.0]) in configure.ac\nAM_CPPFLAGS = $(OPENCV_CFLAGS) $(DEPS_CFLAGS) -DPIXMAPS_DIR=\\\"\"$(datadir)/pixmaps\"\\\"\n\n## Add the OpenCV linking libraries that we got from PKG_CHECK_MODULES([OPENCV], [opencv >= 2.0]) in configure.ac\nmakerscanner_LDADD = $(OPENCV_LIBS)\n##libfoo_la_LDFLAGS = -version-info @version_info@\n\n"
  },
  {
    "path": "MakerscannerWin3.cbp",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n<CodeBlocks_project_file>\n\t<FileVersion major=\"1\" minor=\"6\" />\n\t<Project>\n\t\t<Option title=\"MakerScanner Win\" />\n\t\t<Option pch_mode=\"2\" />\n\t\t<Option compiler=\"gcc\" />\n\t\t<Build>\n\t\t\t<Target title=\"Debug\">\n\t\t\t\t<Option output=\"bin\\Debug\\MakerScanner\" prefix_auto=\"1\" extension_auto=\"1\" />\n\t\t\t\t<Option object_output=\"obj\\Debug\\\" />\n\t\t\t\t<Option type=\"0\" />\n\t\t\t\t<Option compiler=\"gcc\" />\n\t\t\t\t<Option projectLinkerOptionsRelation=\"2\" />\n\t\t\t\t<Compiler>\n\t\t\t\t\t<Add option=\"-g\" />\n\t\t\t\t\t<Add directory=\"$(#wx)\\lib\\gcc_lib\\mswu\" />\n\t\t\t\t</Compiler>\n\t\t\t\t<ResourceCompiler>\n\t\t\t\t\t<Add directory=\"$(#wx)\\lib\\gcc_lib\\mswu\" />\n\t\t\t\t</ResourceCompiler>\n\t\t\t\t<Linker>\n\t\t\t\t\t<Add library=\"libwxmsw28u_richtext.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_xrc.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_aui.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_dbgrid.a\" />\n\t\t\t\t\t<Add library=\"libwxbase28u_odbc.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_media.a\" />\n\t\t\t\t\t<Add library=\"libwxbase28u_net.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_gl.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_qa.a\" />\n\t\t\t\t\t<Add library=\"libwxbase28u_xml.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_adv.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_html.a\" />\n\t\t\t\t\t<Add library=\"libwxmsw28u_core.a\" />\n\t\t\t\t\t<Add library=\"libwxbase28u.a\" />\n\t\t\t\t\t<Add library=\"libwxpng.a\" />\n\t\t\t\t\t<Add library=\"libwxjpeg.a\" />\n\t\t\t\t\t<Add library=\"libwxtiff.a\" />\n\t\t\t\t\t<Add library=\"libwxzlib.a\" />\n\t\t\t\t\t<Add library=\"libwxregexu.a\" />\n\t\t\t\t\t<Add library=\"libwxexpat.a\" />\n\t\t\t\t\t<Add directory=\"$(#wx)\\lib\\gcc_lib\" />\n\t\t\t\t</Linker>\n\t\t\t</Target>\n\t\t</Build>\n\t\t<Compiler>\n\t\t\t<Add option=\"-Wall\" />\n\t\t\t<Add option=\"-pipe\" />\n\t\t\t<Add option=\"-mthreads\" />\n\t\t\t<Add option='[[if (PLATFORM == PLATFORM_MSW &amp;&amp; (GetCompilerFactory().GetCompilerVersionString(_T(&quot;gcc&quot;)) &gt;= _T(&quot;4.0.0&quot;))) print(_T(&quot;-Wno-attributes&quot;));]]' />\n\t\t\t<Add option=\"-D__GNUWIN32__\" />\n\t\t\t<Add option=\"-D__WXMSW__\" />\n\t\t\t<Add option=\"-DwxUSE_UNICODE\" />\n\t\t\t<Add directory=\"$(#wx)\\include\" />\n\t\t\t<Add directory=\"$(#wx)\\contrib\\include\" />\n\t\t\t<Add directory=\"C:\\OpenCV2.1\\include\\opencv\" />\n\t\t\t<Add directory=\"C:\\OpenCV2.1\\include\" />\n\t\t</Compiler>\n\t\t<ResourceCompiler>\n\t\t\t<Add directory=\"$(#wx)\\include\" />\n\t\t</ResourceCompiler>\n\t\t<Linker>\n\t\t\t<Add option=\"-mthreads\" />\n\t\t\t<Add library=\"libkernel32.a\" />\n\t\t\t<Add library=\"libuser32.a\" />\n\t\t\t<Add library=\"libgdi32.a\" />\n\t\t\t<Add library=\"libwinspool.a\" />\n\t\t\t<Add library=\"libcomdlg32.a\" />\n\t\t\t<Add library=\"libadvapi32.a\" />\n\t\t\t<Add library=\"libshell32.a\" />\n\t\t\t<Add library=\"libole32.a\" />\n\t\t\t<Add library=\"liboleaut32.a\" />\n\t\t\t<Add library=\"libuuid.a\" />\n\t\t\t<Add library=\"libcomctl32.a\" />\n\t\t\t<Add library=\"libwsock32.a\" />\n\t\t\t<Add library=\"libodbc32.a\" />\n\t\t\t<Add library=\"C:\\OpenCV2.1\\lib\\cv210.lib\" />\n\t\t\t<Add library=\"C:\\OpenCV2.1\\lib\\cvaux210.lib\" />\n\t\t\t<Add library=\"C:\\OpenCV2.1\\lib\\cxcore210.lib\" />\n\t\t\t<Add library=\"C:\\OpenCV2.1\\lib\\cxts210.lib\" />\n\t\t\t<Add library=\"C:\\OpenCV2.1\\lib\\highgui210.lib\" />\n\t\t\t<Add library=\"C:\\OpenCV2.1\\lib\\ml210.lib\" />\n\t\t\t<Add directory=\"C:\\OpenCV2.1\\lib\" />\n\t\t</Linker>\n\t\t<Unit filename=\"ActiveStereoApp.cpp\" />\n\t\t<Unit filename=\"ActiveStereoApp.h\" />\n\t\t<Unit filename=\"ActiveStereoMain.cpp\" />\n\t\t<Unit filename=\"ActiveStereoMain.h\" />\n\t\t<Unit filename=\"Cameras.cpp\" />\n\t\t<Unit filename=\"Cameras.h\" />\n\t\t<Unit filename=\"CaptureThread.cpp\" />\n\t\t<Unit filename=\"CaptureThread.h\" />\n\t\t<Unit filename=\"DistanceToReferenceDialog.cpp\" />\n\t\t<Unit filename=\"DistanceToReferenceDialog.h\" />\n\t\t<Unit filename=\"IndividualPixels.h\" />\n\t\t<Unit filename=\"PointCloud.cpp\" />\n\t\t<Unit filename=\"PointCloud.h\" />\n\t\t<Unit filename=\"PointCloudPoint.cpp\" />\n\t\t<Unit filename=\"PointCloudPoint.h\" />\n\t\t<Unit filename=\"ScanStatus.cpp\" />\n\t\t<Unit filename=\"ScanStatus.h\" />\n\t\t<Unit filename=\"ScanThread.cpp\" />\n\t\t<Unit filename=\"ScanThread.h\" />\n\t\t<Unit filename=\"camview.cpp\" />\n\t\t<Unit filename=\"camview.h\" />\n\t\t<Unit filename=\"resource.rc\">\n\t\t\t<Option compilerVar=\"WINDRES\" />\n\t\t</Unit>\n\t\t<Extensions>\n\t\t\t<code_completion />\n\t\t\t<debugger />\n\t\t\t<wxsmith version=\"1\">\n\t\t\t\t<gui name=\"wxWidgets\" src=\"ActiveStereoApp.cpp\" main=\"\" init_handlers=\"necessary\" language=\"CPP\" />\n\t\t\t\t<resources>\n\t\t\t\t\t<wxDialog wxs=\"wxsmith/wxtest6dialog.wxs\" src=\"wxtest6Main.cpp\" hdr=\"wxtest6Main.h\" name=\"wxtest6Dialog\" language=\"CPP\" />\n\t\t\t\t</resources>\n\t\t\t</wxsmith>\n\t\t</Extensions>\n\t</Project>\n</CodeBlocks_project_file>\n"
  },
  {
    "path": "NEWS",
    "content": "See ChangeLog.\n"
  },
  {
    "path": "PointCloud.cpp",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"PointCloud.h\"\n\n#include <wx/listimpl.cpp>\n\n// define a linked list of PointCloudPoints\nWX_DEFINE_LIST(ListOfCloudPoints);\n\n// PointCloud holds PointCloudPoints which are individual lines in a pointcloud file\n// Points are identified by height in the image and by laser position\nPointCloud::PointCloud()\n{\n\tcloudMap = new CloudMap();\n\tnumberOfPoints = 0;\n}\n\n// Destructor -- clear the hash map and delete all PointCloudPoints\nPointCloud::~PointCloud()\n{\n\n\t// empty the hash map\n\n\tCloudMap::iterator it;\n\n\tfor( it = cloudMap->begin(); it != cloudMap->end(); ++it )\n\t{\n\t\tdelete it->second;\n\t}\n\n\tdelete cloudMap;\n}\n\n// The points are uniquely identified by h and laserPos.\n// Index is -- laserPos * 1000 + h yielding an set size of 255*1000 + 1000 = 256,000\n// Each hash map container holds a linked list of PointCloudPoints, which can be combined in an average\n// for that point\nint PointCloud::GetKey(int h, int laserPos)\n{\n\treturn laserPos * 1000 + h;\n}\n\n// Helper function to add a point that creates the PointCloudPoint for you\nvoid PointCloud::AddPoint(double dist, double theta, double phi, int r, int g, int b, int w, int h, int laserPos)\n{\n\t// make a new point\n\tPointCloudPoint *newPoint = new PointCloudPoint(dist, theta, phi, r, g, b, w, h, laserPos);\n\tAddPoint(newPoint);\n}\n\n// Add a point to the point cloud.  If there is not already a point at this h, and laserPos, make\n// a new linked list.  Otherwise, add to the linked list that we already have for this location\nvoid PointCloud::AddPoint(PointCloudPoint *point)\n{\n\t// first, get the list\n\tListOfCloudPoints *thisList;\n\n\tif (cloudMap->find(GetKey(point->h, point->laserPosition)) == cloudMap->end())\n\t{\n\t\t// this is a new point, create a new list\n\t\tthisList = new ListOfCloudPoints();\n\t\t(*cloudMap)[GetKey(point->h, point->laserPosition)] = thisList;\n\t\tnumberOfPoints ++;\n\n\t} else {\n\t\tthisList = (*cloudMap)[GetKey(point->h, point->laserPosition)];\n\t}\n\n\t// add the point to the list\n\n\tthisList->Append(point);\n\n\n}\n\n// Return a .ply file containing the entire point cloud (large string!)\nwxString PointCloud::GetPointCloudPly()\n{\n\twxString cloudString = wxT(\"\");\n\n\twxString headerString = wxT(\"ply\");\n\theaderString += wxT(\"\\nformat ascii 1.0\");\n\n\theaderString += wxT(\"\\nelement vertex \");\n\theaderString << numberOfPoints;\n\n\theaderString += wxT(\"\\nproperty float x\");\n\theaderString += wxT(\"\\nproperty float y\");\n\theaderString += wxT(\"\\nproperty float z\");\n\theaderString += wxT(\"\\nproperty uchar diffuse_red\");\n\theaderString += wxT(\"\\nproperty uchar diffuse_green\");\n\theaderString += wxT(\"\\nproperty uchar diffuse_blue\");\n\theaderString += wxT(\"\\nelement face 0\");\n\theaderString += wxT(\"\\nproperty list uchar int vertex_indices\");\n\theaderString += wxT(\"\\nend_header\");\n\n\tCloudMap::iterator it;\n\tListOfCloudPoints *thisList;\n\n\tfor( it = cloudMap->begin(); it != cloudMap->end(); ++it )\n\t{\n\t\tthisList = it->second;\n\n\t\tPointCloudPoint thisPoint = AverageList(thisList);\n\n\t\tcloudString += wxT(\"\\n\") + thisPoint.GetPlyString();\n\n\t}\n\n\treturn headerString + cloudString;\n}\n\n// average a linked list of points to handle a case where we have more than one point per h, laserPos\nPointCloudPoint PointCloud::AverageList(ListOfCloudPoints *thisList)\n{\n\tdouble number = double(thisList->GetCount());\n\n\tdouble sumDist = 0;\n\n\tPointCloudPoint *point = NULL;\n\n\t// iterate over the list and average all values\n\tfor ( ListOfCloudPoints::Node *node = thisList->GetFirst(); node; node = node->GetNext() )\n\t{\n\n\t\tpoint = node->GetData();\n\t\tsumDist += point->dist;\n\t}\n\n\tif (point == NULL)\n\t{\n\t\treturn PointCloudPoint(0, 0, 0, 0, 0, 0, 0, 0, 0);\n\t}\n\n\treturn PointCloudPoint(sumDist/number, point->theta, point->phi, point->r, point->g, point->b, point->w, point->h, point->laserPosition);\n\n}\n"
  },
  {
    "path": "PointCloud.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef POINT_CLOUD_H\n#define POINT_CLOUD_H\n\n#include \"PointCloudPoint.h\"\n\n#include <wx/string.h>\n#include <wx/list.h>\n#include <wx/hashmap.h>\n\nWX_DECLARE_LIST(PointCloudPoint, ListOfCloudPoints);\n\nWX_DECLARE_HASH_MAP( int, ListOfCloudPoints*, wxIntegerHash, wxIntegerEqual, CloudMap );\n\n/*\n* This class holds point cloud data that can be fitlered and printed to a .ply file\n*/\n\nclass PointCloud\n{\n\tpublic:\n\t\tPointCloud();\n\t\t~PointCloud();\n\t\tvoid AddPoint(double dist, double theta, double phi, int r, int g, int b, int w, int h, int laserPos);\n\t\tvoid AddPoint(PointCloudPoint *point);\n\t\twxString GetPointCloudPly();\n\n\tprivate:\n\t\t// The points are uniquely identified by h and laserPos.\n\t\t// Index is -- laserPos * 1000 + h yielding an set size of 255*1000 + 1000 = 256,000\n\t\t// Each hash map container holds a linked list of PointCloudPoints, which can be combined in an average\n\t\t// for that point\n\n\t\tint GetKey(int h, int laserPos);\n\t\tPointCloudPoint AverageList(ListOfCloudPoints *thisList);\n\n\t\tCloudMap *cloudMap;\n\t\tint numberOfPoints;\n\n\n\n\n};\n\n\n#endif\n"
  },
  {
    "path": "PointCloudPoint.cpp",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"PointCloudPoint.h\"\n\n// copy constructor\nPointCloudPoint::PointCloudPoint(PointCloudPoint *point)\n{\n\tdist = point->dist;\n\ttheta = point->theta;\n\tphi = point->phi;\n\n\tr = point->r;\n\tg = point->g;\n\tb = point->b;\n\tw = point->w;\n\th = point->h;\n\tlaserPosition = point->laserPosition;\n}\n\n// Generates the point cloud string for this point (one line)\nwxString PointCloudPoint::GetPlyString()\n{\n\n\tdouble pxDist = dist;\n\n\n\tdouble x, y, z;\n\n\tx = pxDist * tan(theta);\n\ty = pxDist;\n\tz = pxDist * tan(phi);\n\n\twxString xString = wxT(\"\");\n\txString << x;\n\n\twxString yString = wxT(\"\");\n\tyString << y;\n\n\twxString zString = wxT(\"\");\n\tzString << z;\n\n\twxString rString = wxT(\"\");\n\trString << r;\n\n\twxString gString = wxT(\"\");\n\tgString << g;\n\n\twxString bString = wxT(\"\");\n\tbString << b;\n\n\treturn xString + wxT(\" \") + yString + wxT(\" \") + zString + wxT(\" \") + rString + wxT(\" \")\n\t\t+ gString + wxT(\" \") + bString;\n\n}\n"
  },
  {
    "path": "PointCloudPoint.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef POINT_CLOUD_POINT_H\n#define POINT_CLOUD_POINT_H\n\n#include <wx/string.h>\n#include <math.h>\n\n/*\n* Holds a point cloud point and can generate a .ply point cloud string (one line of the file) for this point.\n*/\n\nclass PointCloudPoint\n{\n\tpublic:\n\t\tPointCloudPoint(double distIn, double thetaIn, double phiIn, int rIn, int gIn, int bIn, int wIn, int hIn, int laserPosIn)\n\t\t{\n\t\t\tdist = distIn;\n\t\t\ttheta = thetaIn;\n\t\t\tphi = phiIn;\n\n\t\t\tr = rIn;\n\t\t\tg = gIn;\n\t\t\tb = bIn;\n\t\t\tw = wIn;\n\t\t\th = hIn;\n\t\t\tlaserPosition = laserPosIn;\n\t\t}\n\t\tPointCloudPoint(PointCloudPoint *point);\n\n\t\t// Generates the point cloud string for this point (one line)\n\t\twxString GetPlyString();\n\n\t\tdouble dist, theta, phi;\n\t\tint r, g, b, w, h, laserPosition;\n};\n\n#endif\n"
  },
  {
    "path": "README.md",
    "content": "makerscanner\n============\n\nSoftware for the makerscanner.  See http://www.makerscanner.com/ for details and  instructions.\n\n\nTo build from source on Linux:\n\n    sudo apt-get install libwxgtk3.0-dev libgsl0-dev libopencv-dev\n    (or equivalent for your system)\n\n    ./bootstrap.sh\n    ./configure\n    make\n    sudo make install\n\n"
  },
  {
    "path": "ScanStatus.cpp",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include \"ScanStatus.h\"\n\nScanStatus::ScanStatus()\n{\n\tscanning = false;\n}\n\nScanStatus::~ScanStatus()\n{\n\n}\n"
  },
  {
    "path": "ScanStatus.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef SCAN_STATUS_H\n#define SCAN_STATUS_H\n\nclass ScanStatus\n{\n\tpublic:\n\t\tScanStatus();\n\t\t~ScanStatus();\n\n\t\tvoid SetScanning(bool newScanning) { scanning = newScanning; }\n\n\t\tbool GetScanning() { return scanning; }\n\n\n\tprivate:\n\n\t\tbool scanning;\n};\n\n#endif //SCAN_STATUS_H\n"
  },
  {
    "path": "ScanThread.cpp",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"ScanThread.h\"\n#include <iostream>\nusing namespace std;\n\n#include <wx/arrimpl.cpp> // this is a magic incantation which must be done! (that's straight from the docs, by the way)\n\n#define PIXELS_PER_CM_PER_CM 519 //564.4 // for the logitech camera, divide this number by the distance from the object to get pixels per cm at that location\n#define LASER_FLAT_FORWARD_PRE_MOVE 100\n#define LASER_FLAT_FORWARD 124\n#define DISPARITY_DISTANCE 19.8   // distance between the camera and the laser mirror in cm\n\n//#define CAMERA_X_MIN (-26.67) // angle in degrees for logitech cam\n//#define CAMERA_X_MAX 26.67 // angle in degrees for logitech cam\n\n#define CAMERA_X_MIN (-29.35) // angle in degrees for PS3 eye\n#define CAMERA_X_MAX 29.35 // angle in degrees for PS3 eye\n\n\n//#define CAMERA_Y_MIN (-20) // angle in degrees for logitech cam\n//#define CAMERA_Y_MAX 20 // angle in degrees for logitech cam\n\n#define CAMERA_Y_MIN (-24.18) // angle in degrees for PS3 eye\n#define CAMERA_Y_MAX 24.18 // angle in degrees for PS3 eye\n\n#define BLUR_AMOUNT 5 // paramter in cvSmooth for CV_GAUSSIAN to blur images before subtraction\r\n\n#define DEBUG_ON 0 // set to 1 to print warning messages\n\n// define events in the implementation\n//DEFINE_EVENT_TYPE(IMAGE_UPDATE_EVENT)\nDEFINE_EVENT_TYPE(DISPLAY_TEXT_EVENT)\nDEFINE_EVENT_TYPE(WRITE_TO_FILE_EVENT)\nDEFINE_EVENT_TYPE(SCAN_PROGRESS_EVENT)\nDEFINE_EVENT_TYPE(SCAN_FINISHED_EVENT)\n\n// Init values\nScanThread::ScanThread(wxFrame *windowIn, CaptureThread *captureIn, ScanStatus *scanStatusIn, IplImage *noLaserIn,\n    IplImage *laserCenteredIn, float distanceToReferenceIn)// : wxThread(wxTHREAD_JOINABLE)\n{\n\n    distanceFromFlatReference = distanceToReferenceIn;\n    laserCentered = laserCenteredIn;\n    noLaser = noLaserIn;\n\n    noLaserBlur = cvCloneImage(noLaser);\n\n    cvSmooth(noLaser, noLaserBlur, CV_GAUSSIAN, BLUR_AMOUNT);\r\n\n    coveredImage = cvCloneImage(noLaser);\n\n    scanStatus = scanStatusIn;\n    captureThread = captureIn;\n    window = windowIn;\n    SetPixelRange();\n    scanning = true;\n\n    //laserIncrement = 1;\n    laserIncrement = 2;\n    //laserMaxLeft = 0;\n    //laserMaxRight = 150;\n    laserMaxLeft = 180;\n    laserMaxRight = 220;\n    minPxVal = 25;\n\n    pointCloud = NULL;\n\n    holdingPoint = NULL;\n    holdingPointBefore = NULL;\n\n    pixelsPerCmOnFlatReference = -1;\n    determinedTargetDistance = false;\n\n    brightnessThreshold = 0.8;\n}\n\n// called on thread quit -- free all memory\nvoid ScanThread::OnExit()\n{\n    if (pointCloud)\n    {\n        delete pointCloud;\n    }\n\n    if (coveredImage)\n    {\n        cvReleaseImage(&coveredImage);\n    }\n\n    // noLaser image is released by Cameras.cpp\n\n    // laserCentered image is released by Cameras.cpp\n\n}\n\n// Set pixels we are interested in.\n// TODO: make this a selection on the GUI frame\nvoid ScanThread::SetPixelRange(int Xmin, int Ymin, int Xmax, int Ymax)\n{\n   m_Xmin = Xmin; //50; //Xmin;\n   m_Ymin = Ymin; //300; //Ymin;\n   m_Xmax = Xmax; //210; //Xmax;\n   m_Ymax = Ymax; //420; //Ymax;\n}\n\n// Called when thread is started\nvoid* ScanThread::Entry()\n{\n    captureThread->SetCapture(CAPTURE);\n\n    // set up a pointcloud object\n    pointCloud = new PointCloud();\n\n    vector<float> *laserPos;\n\n    IplImage *withLaser;\n\n    // determine a distance from reference\n    // we might have a distance from reference from the user, or the laser\n    // has been centered\n    if (distanceFromFlatReference <= 0)\n    {\n        // we need to compute the distance to the reference wall.\n        // we can use the laserCentered image to do this.\n\n        // first, find the laser in the laserCentered image\n        laserPos = FindLaser2(laserCentered);\n\n        // with that data, compute the distance to the wall\n        // NOTE: this function also sets pixelsPerCmOnFlatReference which is required for operation\n        distanceFromFlatReference = GetDistanceToReferenceWall(laserPos);\n\n        if (distanceFromFlatReference < 0)\n        {\n            captureThread->SetCapture(PREVIEW);\n\n            SendScanFinishedEvent();\n\n            return NULL;\n        }\n\n        // free memory for the laser-centered laser position vector\n        delete laserPos;\n    } else\n    {\n        pixelsPerCmOnFlatReference = PIXELS_PER_CM_PER_CM / distanceFromFlatReference;\n    }\n\n    while (scanStatus->GetScanning() == true)\n    {\n        // check to see if the thread should exit\n        if (TestDestroy() == true)  break;\n\n        // get an image from the capture thread\n\n        withLaser = captureThread->Pop();\n\n        if (withLaser)\n        {\n\n            // find the laser beam in the image\n            laserPos = FindLaser2(withLaser);\n\n            // display the laser position for the user\n            DisplayLaserPx(laserPos);\n\n            // compute the point cloud points based on the laser position\n            AddPointcloudPoints(laserPos);\n\n            // delete the laser position vector\n            delete laserPos;\n        }\n\n        // give time for the capture thread to do some things\n        Sleep(10);\n    }\n\n\n    // out of the loop for whatever reason, shutdown the thread gracefully\n\n    // write the pointcloud file\n    WritePointCloudFile();\n    DisplayText(wxT(\"\\nPoint cloud generation complete.\"));\n\n    captureThread->SetCapture(PREVIEW);\n\n    SendScanFinishedEvent();\n\n    return NULL;\n}\n\n// Find the laser based on an image without the laser in it and with the laser in it\n// Return an array that is the height of the image with a floating-point sub-pixel value of the laser\n// You need to release the vector that gets returned\nvector<float>* ScanThread::FindLaser2(IplImage *withLaser)\n{\n    // subtract the image with the laser in (withLaser) it from the image without the laser (noLaser)\n    // to find where the laser is\n\n    IplImage *withLaserBlur = cvCloneImage(withLaser);\n    cvSmooth(noLaser, noLaserBlur, CV_GAUSSIAN, BLUR_AMOUNT);\n\n    // copy images so we don't modify given images\n    IplImage *noLaserCopy = cvCloneImage(noLaserBlur);\n    IplImage *withLaserCopy = cvCloneImage(withLaserBlur);\n\n    // create a single-channel image for processing\n    CvSize sz = cvSize(noLaser->width & -2, noLaser->height & -2);\n    IplImage *bwNoLaser = cvCreateImage(sz, 8, 1);\n    IplImage *bwWithLaser = cvCreateImage(sz, 8, 1);\n    IplImage *subImage = cvCreateImage(sz, 8, 1);\n\n    // create the return vector\n    vector<float> *pxLocations = new vector<float>(sz.height, -1);\n\n    // convert color images to black and white\r\n\r\n    // the cvCvtColor function segfaults on windows.  Not sure why.\n    cvCvtColor(noLaserCopy, bwNoLaser,CV_BGR2GRAY);\n    cvCvtColor(withLaserCopy, bwWithLaser,CV_BGR2GRAY);\r\n\n    // subtract the no laser image from the with-laser image\n    // if nothing else moved, we should just see where the laser is now\n    cvSub(bwWithLaser, bwNoLaser, subImage);\n\n    //captureThread->SendFrame(subImage);\n\n    // set up single-pixel access to the subtracted and original image\n    RgbImage noLaserPx(noLaserCopy);\n    BwImage subPx(subImage);\n    BwImage bwWithLaserPx(bwWithLaser);\n\n    // identify the laser in the top 25 rows\n    for (int h=0;h<25;h++)\n    {\n        (*pxLocations)[h] = FindBrightestPointInRow(subPx, h, sz.width);\n    }\n\n    // compute the brightness of those laser hits\n    float brightSum = 0, brightAverage = 0;\n\n    for (int h=0;h<25;h++)\n    {\n        brightSum += bwWithLaserPx[h][  int( (*pxLocations)[h] + 0.5)  ];\n    }\n    brightAverage = brightSum / 25.0;\n\n    int bestPx;\n\n    // for loop that loops through every row in the image\n    for (int h = 25; h < sz.height; h++)\n    {\n        bestPx = FindBrightestPointInRow(subPx, h, sz.width);\n\n        // filter out points that don't show high brightness because they are probably noise\n        if (float(bwWithLaserPx[h][bestPx]) > brightnessThreshold * brightAverage)\n        {\n            (*pxLocations)[h] = bestPx;\n        } else {\n            (*pxLocations)[h] = -1;\n        }\n\n    }\n\n    // release images created in this function\n    cvReleaseImage(&noLaserCopy);\n    cvReleaseImage(&withLaserCopy);\n    cvReleaseImage(&bwNoLaser);\n    cvReleaseImage(&bwWithLaser);\n    cvReleaseImage(&subImage);\n    cvReleaseImage(&withLaserBlur);\n\n    return pxLocations;\n\n}\n\nfloat ScanThread::FindBrightestPointInRow(BwImage subPx, int row, int rowWidth)\n{\n    // init values we will use\n    int laserSum, laserNum, laserCenter, maxPx, maxPxVal;\n\n    int h = row;\n\n    // for each row, find the location of the laser\n    laserSum = 0;\n    laserNum = 0;\n    maxPx = -1;\n    maxPxVal = -1;\n\n    for (int w = 0; w < rowWidth; w++)\n    {\n        // for each row of pixels, find the brightest point on the laser beam\n\n        // for every pixel in the image, check to see if it is non-zero and thus corresponding\n        // to a pixel that is illuminated by the laser\n\n        if (subPx[h][w] > maxPxVal && subPx[h][w] > minPxVal)\n        {\n            // this point is the brightest we have seen so far and it exceeds our minimum value\n            maxPxVal = subPx[h][w];\n            maxPx = w;\n\n            laserSum = w;\n            laserNum = 1;\n\n        } else if (subPx[h][w] == maxPxVal)\n        {\n            // this point is exactly as bright as our current brightest pixel, so average them\n            laserSum += w;\n            laserNum ++;\n        }\n    }\n\n    // we are done with this row -- select the most likely point.\n\n    // TODO: subpixel interpolation\n\n\n    if (maxPx >= 0)\n    {\n        // compute the center point of the laser\n        laserCenter = laserSum/laserNum;\n    } else {\n        // no value for this row\n        laserCenter = 0;\n    }\n    return laserCenter;\n}\n\n// Compute where the 3d points are based on where the laser was detected in the image\nvoid ScanThread::AddPointcloudPoints(vector<float> *laserPos)\n{\n    // compute distance for this pixel\n    // calculate phi from camera parameters and Y pixel location\n    // (assume dimensions of noLaser are the same as all other images)\n\n    float widthReference = GetReferenceLaserLocation(laserPos);\n\n    if (widthReference < 0)\n    {\n        // we don't know where the refernce laser is -- abort\n        return;\n    }\n\n    float laserCenter;\n\n    int r, g, b;\n    double pxDist, theta, phi;\n\n    // set up single-pixel access to the subtracted and original image\n    RgbImage noLaserPx(noLaser);\n    int h = 0;\n    for (h=0;h<int(laserPos->size());h++)\n    {\n        laserCenter = (*laserPos)[h];\n\n        // check to make sure that we have data for this row\n        if (laserCenter >= 0)\n        {\n\n            phi = (noLaser->height/2 - h) * double(CAMERA_Y_MAX - CAMERA_Y_MIN)/double(noLaser->height);\n\n            // convert to radians\n            phi = phi * 3.14159 / 180.0;\n\n            pxDist = PixelToDistance2(laserCenter, widthReference);\n\n            if (pxDist < 0)\n            {\n                // not a valid point\n                return;\n            }\n\n\n            // compute theta based on laserCenter\n            theta = (laserCenter - noLaser->width/2) * double(CAMERA_X_MAX - CAMERA_X_MIN)/double(noLaser->width);\n\n            // convert to radians\n            theta = theta * 3.14159 / 180.0;\n\n            r = noLaserPx[h][int(laserCenter + 0.5)].r;\n            g = noLaserPx[h][int(laserCenter + 0.5)].g;\n            b = noLaserPx[h][int(laserCenter + 0.5)].b;\n\n//          if (h == 100)\n//          {\n//              wxString tmp = wxT(\"\\ndiff: \");\n//              tmp << widthReference - laserCenter;\n//              tmp += wxT(\" widthR: \");\n//              tmp << widthReference;\n//              tmp += wxT(\" laserCenter: \");\n//              tmp << laserCenter;\n//              DisplayText(tmp);\n//          }\n\n            pointCloud->AddPoint(pxDist, theta, phi, r, g, b, laserCenter, h, widthReference);\n        }\n    }\n}\n\n// send the pointcloud string to the frame for writing to disk\nvoid ScanThread::WritePointCloudFile()\n{\n    WriteToFile(pointCloud->GetPointCloudPly());\n}\n\n// send some text to be displayed\nvoid ScanThread::DisplayText(wxString text)\n{\n    wxCommandEvent event2(DISPLAY_TEXT_EVENT, GetId());\n    event2.SetString(text);\n    window->GetEventHandler()->AddPendingEvent(event2);\n}\n\n// compute distance to a point given the x pixel location and the width reference x pixel location\ndouble ScanThread::PixelToDistance2(float laserCenter, float widthReference)\n{\n    // TODO: make generic for other sized cameras\n\n    if (laserCenter > widthReference + 20)\n    {\n        // the detected laser appears to be to the right of the width reference.\n        // this is almost certainly noise and will result in crazy distance calculations\n        return -1;\n    } else if (laserCenter > widthReference)\n    {\n        // might just be a slightly tilted laser\n        laserCenter = widthReference;\n    }\n\n    double l = (widthReference) / pixelsPerCmOnFlatReference;\n    double lPlusM = (laserCenter) / pixelsPerCmOnFlatReference;\n    double m = l - lPlusM; // m is the object position projected on the flat reference background\n\n    //double distFromRef = m * m_DistanceFromFlatReference / (DISPARITY_DISTANCE + m);\n\n    double ret = distanceFromFlatReference - m * distanceFromFlatReference / (DISPARITY_DISTANCE + m);\n\n    if (ret > 100)\n    {\n        DisplayText(wxT(\"\\nWarning: large distance detected.\"));\n    }\n\n    return ret;\n\n}\n\n// Write a string to disk via an event to the frame\nvoid ScanThread::WriteToFile(wxString str)\n{\n    wxCommandEvent event(WRITE_TO_FILE_EVENT, GetId());\n    event.SetString(str);\n    window->GetEventHandler()->AddPendingEvent(event);\n}\n\n// Send an event with the progress of the laser\nvoid ScanThread::SendScanProgress(int laserPos)\n{\n    // compute percentage done\n    int progress = int( 100.0 * float(laserPos - laserMaxLeft)/(float(laserMaxRight - laserMaxLeft)) + 0.5);\n\n    wxCommandEvent event2(SCAN_PROGRESS_EVENT, GetId());\n    event2.SetInt(progress);\n    window->GetEventHandler()->AddPendingEvent(event2);\n}\n\n// Send a scan finished event\nvoid ScanThread::SendScanFinishedEvent()\n{\n    wxCommandEvent event2(SCAN_FINISHED_EVENT, GetId());\n    window->GetEventHandler()->AddPendingEvent(event2);\n}\n\nfloat ScanThread::GetReferenceLaserLocation(vector<float> *laserCenterPx)\n{\n    // find the laser in the top 25 pixels in the image\n\n    // average the top 25 pixel locations to find the center\n    float refSum = 0;\n    int numRefHits = 0;\n\n    for (int h=0;h<25;h++)\n    {\n        // this means that we don't accept the laser line on the exact left edge of the image\n        if ((*laserCenterPx)[h] > 0)\n        {\n            refSum += (*laserCenterPx)[h];\n            numRefHits ++;\n        }\n    }\n\n    if (numRefHits < 10)\n    {\n        // we probably don't have a good idea where the laser is\n        if (DEBUG_ON == 1)\n        {\n            DisplayText(wxT(\"\\nWanring: failed to find reference laser.\"));\n        }\n\n        return -1;\n    }\n\n    float refCenter = refSum/float(numRefHits);\n\n    return refCenter;\n}\n\n// NOTE: this function also sets pixelsPerCmOnFlatReference which is required for operation\nfloat ScanThread::GetDistanceToReferenceWall(vector<float> *laserCenterPx)\n{\n    // first, find the laser in the top 25 pixels in the image\n    float refCenter = GetReferenceLaserLocation(laserCenterPx);\n\n    if (refCenter < 0)\n    {\n        // failed to find reference laser.\n        DisplayText(wxT(\"\\nError: failed to compute distance to target.  Most likely didn't get a clear enough picture of the laser line.  Aborting.\"));\n        return -1;\n    }\n\n    // compute the distance to the target based on camera parameters and refCenter\n    // refCenter holds the number of pixels the center is from the left of the image.\n    // For this computation, we want to know the number of pixels from the camera's center -- convert\n    float pixelsFromCameraCenter = (laserCentered->width / 2) - refCenter;\n\n    distanceFromFlatReference = 0;\n\n    pixelsPerCmOnFlatReference = pixelsFromCameraCenter / float(DISPARITY_DISTANCE);\n\n    distanceFromFlatReference +=  float(PIXELS_PER_CM_PER_CM) / pixelsPerCmOnFlatReference;\n\n    wxString strDist = wxT(\"\\nEstimated distance from flat reference = \");\r\n    wxString numstr;\n    numstr.Printf(wxT(\"%.0f\"), distanceFromFlatReference);\n    strDist += numstr + wxT(\"cm\");\n\n    DisplayText(strDist);\n\n    return distanceFromFlatReference;\n\n}\n\nvoid ScanThread::DisplayLaserPx(vector<float> *laserPx)\n{\n    // create an image that we can use to display where we found the laser\n    CvSize sz = cvSize(noLaser->width & -2, noLaser->height & -2);\n\n    // allow for single-pixel access to the laserHitImage\n    RgbImage coveredImagePx(coveredImage);\n\n    // make the current laser line red\n    IplImage *outImage = cvCloneImage(coveredImage);\n    RgbImage outImagePx(outImage);\n\n    for (int h=0;h<int(laserPx->size());h++)\n    {\n        // add this point to our display image for where we found laser points (for the future)\n        coveredImagePx[h][int((*laserPx)[h])].r = 0;\n        coveredImagePx[h][int((*laserPx)[h])].g = 0;\n        coveredImagePx[h][int((*laserPx)[h])].b = 255;\n\n        // add the laser line in red for display right now\n        outImagePx[h][int((*laserPx)[h])].r = 255;\n        outImagePx[h][int((*laserPx)[h])].g = 0;\n        outImagePx[h][int((*laserPx)[h])].b = 0;\n\n    }\n\n    // display the image (SendFrame copies the image, so we can release it here).\n    //captureThread->SendFrame(pDstImg);\n    captureThread->SendFrame(outImage);\n\n    // release images used for display image\n    cvReleaseImage(&outImage);\n\n}\n"
  },
  {
    "path": "ScanThread.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef SCAN_THREAD_H\n#define SCAN_THREAD_H\n\n#include <wx/thread.h>\n#include <wx/string.h>\n#include <wx/textctrl.h>\n#include <wx/dialog.h>\n#include <wx/wx.h>\n#include \"cv.h\"\n#include \"highgui.h\"\n#include \"IndividualPixels.h\"\n\n#include <wx/dynarray.h>\n#include <wx/ffile.h>\n\n#include \"PointCloud.h\"\n#include \"CaptureThread.h\"\n#include \"ScanStatus.h\"\n\n// include USB code\nextern \"C\"\n{\n    #include \"SetHorz.h\"\n}\n\n#define MAX_X 640 // TODO: remove this define and auto-detect image size\n#define MAX_Y 480 // TODO: remove this define and auto-detect image size\n\n#include <vector>\n\nusing namespace std;\n\n\n// clear event types in the header of the source file\nBEGIN_DECLARE_EVENT_TYPES()\n\tDECLARE_EVENT_TYPE(DISPLAY_TEXT_EVENT, -2)\n\tDECLARE_EVENT_TYPE(WRITE_TO_FILE_EVENT, -6)\n\tDECLARE_EVENT_TYPE(SCAN_PROGRESS_EVENT, -7)\n\tDECLARE_EVENT_TYPE(SCAN_FINISHED_EVENT, -8)\nEND_DECLARE_EVENT_TYPES()\n\n// Thread that performs image capture and point cloud creation\n// Uses events to communicate with GUI thread for frame and disk interactions\nclass ScanThread : public wxThread\n{\n\tpublic:\n\t\t// Constructor\n\t\tScanThread(wxFrame *windowIn, CaptureThread *captureIn, ScanStatus *scanStatusIn, IplImage *noLaserIn,\n\t\t\tIplImage *laserCenteredIn, float distanceToReferenceIn);\n\n\t\t// Function that is run on thread init\n\t\tvirtual void* Entry();\n\n\t\t// TODO: Remove\n\t\tvoid SetPixelRange(int Xmin = 0, int Ymin = 0, int Xmax = MAX_X, int Ymax = MAX_Y);\n\n\t\t// set image subtraction threshold value\n\t\tvoid SetThresholdPixelValue(int thres) { minPxVal = thres; }\n\n\t\tfloat FindReferenceLaser(IplImage *img);\n\n\t\tvoid SetBrightnessThreshold(float newThreshold) { brightnessThreshold = newThreshold; }\n\n\tprivate:\n\n\t\t// Find the laser by subtracting noLaser (class variable) and withLaser images\n\t\t// the compute distances and add to the pointcloud object\n\t\tvector<float>* FindLaser2(IplImage *withLaser);\n\n\t\t// send an UpdateImage event to the frame dialog\n\t\t//void DisplayImage(IplImage *frame);\n\n\t\t// send a display text event to the frame\n\t\tvoid DisplayText(wxString text);\n\n\t\t// send a write to file event to the frame\n\t\tvoid WriteToFile(wxString str);\n\n\t\t// write the current pointcloud to a file\n\t\tvoid WritePointCloudFile();\n\n\t\t// compute distance to pixel based on width reference pixel position and the laser pixel position\n\t\tdouble PixelToDistance2(float laserCenter, float widthReference);\n\n\t\t// Add a point to the pointcloud, with some filtering\n\t\tvoid AddPointCloudPoint(PointCloudPoint *newPoint, BwImage laserHitPx, BwImage laserFilterPx);\n\n\t\t// point cloud points for storing filtering\n\t\tPointCloudPoint *holdingPointBefore;\n\t\tPointCloudPoint *holdingPoint;\n\n\t\t// Send a scan progress event to update the frame progress bar\n\t\tvoid SendScanProgress(int laserPos);\n\n\t\t// Send a scan finished event to the frame\n\t\tvoid SendScanFinishedEvent();\n\n\t\t// Safely close\n\t\tvoid OnExit();\n\n\t\tvoid AddPointcloudPoints(vector<float> *laserPos);\n\n\t\t// give the laser locations, find the reference position in the top 25 pixels\n\t\tfloat GetReferenceLaserLocation(vector<float> *laserCenterPx);\n\n\t\t// Computes the distance to the reference wall based on the member variables\n\t\t// noLaser image and laserCentered image, which must already be set when this is called\n\t\tfloat GetDistanceToReferenceWall(vector<float> *laserCenterPx);\n\n\t\tvoid DisplayLaserPx(vector<float> *laserPx);\n\n\t\tfloat FindBrightestPointInRow(BwImage subPx, int row, int rowWidth);\n\n\t\t// ---- variables ---- //\n\n\t\t// the frame we send events to\n\t\twxFrame *window;\n\n\t\t// the thread that is running the camera capture\n\t\tCaptureThread *captureThread;\n\n\t\t// current distance from flat reference\n\t\tdouble pixelsPerCmOnFlatReference;\n\n\t\t// our current pointcloud\n\t\tPointCloud *pointCloud;\n\n\t\t// Object that allows us to communicate between the frame\n\t\tScanStatus *scanStatus;\n\n\t\t// values sent to us from the frame\n\t\tint laserIncrement, laserMaxLeft, laserMaxRight, minPxVal;\n\n\t\t// relative amount of brightness needed to be counted as a valid point\n\t\t// ranges from 0-1.0.  Valid points have brightness > brightnessThreshold * topBrightness\n\t\tfloat brightnessThreshold;\n\n\t\tIplImage *noLaser, *laserCentered, *noLaserBlur, *coveredImage;\n\n\t\tbool scanning, determinedTargetDistance;\n\t\tint m_Xmin, m_Ymin, m_Xmax, m_Ymax;\n\n\t\t// if true, this is the first line we are doing in this scan\n\t\tbool m_firstLaserPosition;\n\n\t\t// distance from flat reference in cm\n\t\tfloat distanceFromFlatReference;\n\n};\n\n#endif\n"
  },
  {
    "path": "SetConfig.c",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <stdio.h>\n#include <usb.h>\n\n#include \"SetConfig.h\"\n\n#define FALSE       0\n#define TRUE        1\n\n// return codes\n// 0: success\n// -1: No matching device found\n// -2: Unable to send SET_CONFIGURATION request\n\nint SetConfig() {\n    struct usb_bus *bus;\n    struct usb_device *dev;\n    usb_dev_handle *udev;\n    int dev_found, ret;\n    char buffer[8];\n\n    usb_init();\n\n    usb_find_busses();\n    usb_find_devices();\n\n    udev = NULL;\n    dev_found = FALSE;\n    for (bus = usb_get_busses(); bus && !dev_found; bus = bus->next) {\n        for (dev = bus->devices; dev && !dev_found; dev = dev->next) {\n            if ((dev->descriptor.idVendor == 0x6666) && (dev->descriptor.idProduct == 0x0003)) {\n                dev_found = TRUE;\n                udev = usb_open(dev);\n            }\n        }\n    }\n    if (!dev_found) {\n        printf(\"No matching device found...\\n\");\n        return -1;\n    }\n    if (udev) {\n        ret = usb_control_msg(udev, USB_TYPE_STANDARD | USB_RECIP_DEVICE, USB_REQ_SET_CONFIGURATION, 1, 0, buffer, 0, 100);\n        if (ret < 0) {\n            printf(\"Unable to send SET_CONFIGURATION standard request, ret = %d...\\n\", ret);\n            return -2;\n        }\n        usb_close(udev);\n    }\n    return 0;\n}\n"
  },
  {
    "path": "SetConfig.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef SET_CONFIG_H\n#define SET_CONFIG_H\n\n// USB set config control header file\n\nint SetConfig();\n\n#endif\n"
  },
  {
    "path": "SetHorz.c",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/*\n* Standard USB calls to the PIC.  This comes from http://ece.olin.edu/poe/\n*/\n\n#include <usb.h>\n#include <stdio.h>\n\n#include \"SetHorz.h\"\n\n#define FALSE       0\n#define TRUE        1\n\n#define SET_DUTY    0x04\n#define SERVO_POS\t0x05\n#define LASER_INTENSITY 0x06\n\n#define HORIZ_MIN 0\n#define HORIZ_MAX 255\n\n/*\n* Return codes:\n*\t 0 = success\n*\t-1 = no matching device\n*\t-2 = unable to send vendor request\n*\t-3 = illegal offset\n*/\n\nint LaserIntensity = DEFAULT_LASER_INTENSITY;\n\n// Send the USB call for moving the mirror\nint SetHorz(int horz)\n{\n\thorz = HORIZ_MAX - horz;\n\tif ((horz < HORIZ_MIN) || (horz > HORIZ_MAX)) {\n        printf(\"Horizontal laser offset specified, (%d), is out of range (0 - 155).\\n\", horz);\n\t\treturn -3;\n    }\n\treturn SetUSB(horz, SET_DUTY);\n}\n\n// Move the servo\nint SetServo(int servo)\n{\n\tif (servo < 50 || servo > 150) {\n        printf(\"Illegal offset (%d) specified.\\n\", servo);\n\t\treturn -3;\n    }\n\treturn SetUSB(servo, SERVO_POS);\n}\n\n// Change the laser intensity\nint SendLaserIntensity(int intensity)\n{\n  if (intensity < 0 || intensity > 100)\n  {\n      printf(\"Intensity specified, (%d), is out of range (0-100).\\n\", intensity);\n      return -3;\n   }\n   if (intensity == 0)  intensity =  LASER_ZERO_VOLTS_VALUE;\n   else intensity =  (int) (   (((float) intensity) * (float) LASER_INTENSITY_RANGE) + (float) LASER_MIN_VALUE_TO_TURN_ON + 0.5);\n\n   return SetUSB(intensity, LASER_INTENSITY);\n}\n\nvoid SetLaserIntensity(int intensity) { LaserIntensity = intensity; }\n\nint GetLaserIntensity() { return LaserIntensity; }\n\n// USB call to PIC\nint SetUSB(int horz, unsigned char op)\n{\n    struct usb_bus *bus;\n    struct usb_device *dev;\n    usb_dev_handle *udev;\n    int dev_found, ret;\n    char buffer[8];\n\n    usb_init();\n\n    usb_find_busses();\n    usb_find_devices();\n\n    udev = NULL;\n    dev_found = FALSE;\n    for (bus = usb_get_busses(); bus && !dev_found; bus = bus->next) {\n        for (dev = bus->devices; dev && !dev_found; dev = dev->next) {\n            if ((dev->descriptor.idVendor == 0x6666) && (dev->descriptor.idProduct == 0x0003)) {\n                dev_found = TRUE;\n                udev = usb_open(dev);\n            }\n        }\n    }\n    if (!dev_found) {\n        printf(\"No matching device found...\\n\");\n\t\treturn -1;\n    }\n\n        ret = usb_control_msg(udev, 0x40, op, horz, 0, buffer, 0, 100);\n      if (udev) {\n        if (ret < 0) {\n            printf(\"Unable to send SET_DUTY vendor request, ret = %d...\\n\", ret);\n            return -2;\n        }\n        //usb_close(udev);\n    }\n    return 0;\n}\n"
  },
  {
    "path": "SetHorz.h",
    "content": "/*\n* Copyright 2009-2010, Andrew Barry\n*\n* This file is part of MakerScanner.\n*\n* MakerScanner is free software; you can redistribute it and/or modify\n* it under the terms of the GNU General Public License (Version 2, June 1991) as published by\n* the Free Software Foundation.\n*\n* MakerScanner is distributed in the hope that it will be useful,\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n* GNU General Public License for more details.\n*\n* You should have received a copy of the GNU General Public License\n* along with this program.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// Send USB calls to the PIC mircoprocessor\n\n#ifndef SET_HORZ_H\n#define SET_HORZ_H\n\n#define LASER_INTENSITY_RANGE 0.25   // inputs to PIC for laser:  60 yields 0 volts, 170 yields 2.44 volts which is just enough to turn the laser on,\n                                       // 195 yields 3 volts, so range is from 170-195 which spans 25, so the factor here is 0.25 (it will be multiplied by 0-100 to yield 0-25)\n                                       // NOTE!! values outside the range 60 - 195\n                                       // will produce negative voltages or voltages greater than 3 V, which can damage laser\n\n\n#define LASER_MIN_VALUE_TO_TURN_ON 160 // upon further use, the value where the laser turns on seems to vary a bit.  For now, 160 is a good number\n#define LASER_ZERO_VOLTS_VALUE 60\n#define DEFAULT_LASER_INTENSITY 30\n\nint SetHorz(int horz);\nint SetServo(int servo);\nint SendLaserIntensity(int intensity);\nvoid SetLaserIntensity(int intensity);\nint GetLaserIntensity();\nint SetUSB(int horz, unsigned char op);\n\n#endif\n"
  },
  {
    "path": "bootstrap.sh",
    "content": "#!/bin/bash\n\nautoscan\nautoheader\naclocal\nautoconf\nautomake -a\n"
  },
  {
    "path": "camview.cpp",
    "content": "////////////////////////////////////////////////////////////////////\n// Name:        implementation of the CCamView class\n// File:        camview.cpp\n// Purpose:     eye/camera view/GUI system control methods\n//\n// Created by:  Larry Lart on 22-Feb-2006\n// Updated by:  Andrew Barry Jan 2010\r\n//\r\n// Copyright:   (c) 2006 Larry Lart\n////////////////////////////////////////////////////////////////////\n\r\n\r\n// on windows, you must include the wx headers before\r\n// other headers - Andy\n#include <wx/image.h>\n\n\n// main header -- this has wx headers in it so make\r\n// sure to include it before other headers - Andy\n#include \"camview.h\"\n\r\n\r\n// system header\n#include <math.h>\n#include <stdio.h>\n#include \"cv.h\"\r\n#include \"highgui.h\"\n\n\n#ifdef __GNUG__\n#pragma implementation\n#pragma interface\n#endif\n\n// implement message map\nBEGIN_EVENT_TABLE(CCamView, wxWindow)\n    EVT_PAINT( CCamView::OnPaint )\r\n    EVT_SIZE( CCamView::OnSize )\r\nEND_EVENT_TABLE()\n\n////////////////////////////////////////////////////////////////////\n// Method:  Constructor\n// Class:   CCamView\n// Purose:  build my CCamView object\n// Input:   nothing\n// Output:  nothing\n////////////////////////////////////////////////////////////////////\nCCamView::CCamView( wxWindow *frame, const wxPoint& pos, const wxSize& size ):\n            wxWindow(frame, -1, pos, size, wxSIMPLE_BORDER )\n{\n    //m_pCamera = NULL;\n\r\n    // set my canvas width/height\r\n    m_nWidth = size.GetWidth( );\r\n    m_nHeight = size.GetHeight( );\r\n\r\n    m_bDrawing = false;\r\n\r\n    m_bNewImage = 0;\n\n    m_pBitmap = NULL;\r\n\n}\n\n////////////////////////////////////////////////////////////////////\n// Method:  Destructor\n// Class:   CCamView\n// Purose:  destroy my object\n// Input:   nothing\n// Output:  nothing\n////////////////////////////////////////////////////////////////////\nCCamView::~CCamView( )\n{\r\n    //m_pCamera = NULL;\r\n}\n\n////////////////////////////////////////////////////////////////////\n// Method:  Is Capture Enabled\n// Class:   CCamView\n// Purose:  check if camera is initialized\n// Input:   nothing\n// Output:  bool yes/no\n////////////////////////////////////////////////////////////////////\nbool CCamView::IsCaptureEnabled( )\n{\n//  return( m_pCamera->IsInitialized( ) );\n    return( 1 );\n}\n\r\n////////////////////////////////////////////////////////////////////\r\n// Method:  OnPaint\r\n// Class:   CCamView\r\n// Purose:  on paint event\r\n// Input:   reference to paint event\r\n// Output:  nothing\r\n////////////////////////////////////////////////////////////////////\nvoid CCamView::OnPaint( wxPaintEvent& event )\n{\n    wxPaintDC dc(this);\r\n    Draw( dc );\n}\r\n\r\n////////////////////////////////////////////////////////////////////\r\n// Method:  Draw\r\n// Class:   CCamView\r\n// Purose:  camera drawing\r\n// Input:   reference to dc\r\n// Output:  nothing\r\n////////////////////////////////////////////////////////////////////\r\nvoid CCamView::Draw( wxDC& dc )\r\n{\r\n    // check if dc available\r\n    if( !dc.IsOk( ) || m_bDrawing == true ){ return; }\r\n\r\n        m_bDrawing = true;\r\n\r\n        int x,y,w,h;\r\n        dc.GetClippingBox( &x, &y, &w, &h );\r\n        // if there is a new image to draw\r\n        if( m_bNewImage )\r\n        {\r\n            dc.DrawBitmap( *m_pBitmap, x, y );\r\n            m_bNewImage = false;\r\n        } else\r\n        {\r\n            // draw inter frame ?\r\n        }\r\n\r\n        m_bDrawing = false;\r\n\r\n    return;\r\n}\n\n////////////////////////////////////////////////////////////////////\n// Method:  OnDraw\n// Class:   CCamView\n// Purose:  CCamView drawing\n// Input:   nothing\n// Output:  nothing\n////////////////////////////////////////////////////////////////////\nvoid CCamView::DrawCam( IplImage* pImg )\n{\r\n//  return;\n    if( m_bDrawing ) return;\r\n    m_bDrawing = true;\n    // if there was an image then we need to update view\n    if( pImg )\n    {\n        // copy the image (will be deleted after display)\n        IplImage *pDstImg = pImg;//cvCloneImage(pImg);\n\n        int nCamWidth = pImg->width;//m_pCamera->m_nWidth;\r\n        int nCamHeight = pImg->height;//m_pCamera->m_nHeight;\n\n\n        // draw a vertical line through the center of the image\n        cvLine(pDstImg, cvPoint(nCamWidth/2, 0), cvPoint(nCamWidth/2, nCamHeight), CV_RGB( 0,255,0 ));\n\n        // draw a horizontal line at pixel 25\n        cvLine(pDstImg, cvPoint(0, 25), cvPoint(nCamWidth, 25), CV_RGB( 0,255,0 ));\n\n        // draw a horizontal line through the center of the image\n        //cvLine(pDstImg, cvPoint(0, nCamHeight/2), cvPoint(nCamWidth, nCamHeight/2), CV_RGB( 0,255,0 ));\n\r\n        // process image from opencv to wxwidgets\n        unsigned char *rawData;\n        // draw my stuff to output canvas\n        CvSize roiSize;\n        int step = 0;\n\r\n        // get raw data from ipl image\n        cvGetRawData( pDstImg, &rawData, &step, &roiSize );\n\r\n        // convert data from raw image to wxImg\n\n\n        wxImage *pWxImg = new wxImage( nCamWidth, nCamHeight, rawData, TRUE );\n\r\n        // convert to bitmap to be used by the window to draw\n\n        if (m_pBitmap)\n        {\n            delete m_pBitmap;\n        }\n\n        m_pBitmap = new wxBitmap( pWxImg->Scale(m_nWidth, m_nHeight) );\r\n\r\n        m_bNewImage = true;\r\n        m_bDrawing = false;\r\n\r\n        Refresh( FALSE );\r\n\r\n        //Update( );\r\n        delete pWxImg;\n\r\n        //cvReleaseImage( &pDstImg );\n\r\n\r\n    }\n\n}\r\n\n////////////////////////////////////////////////////////////////////\r\n// Method:  CheckUpdate\r\n// Class:   CCamView\r\n// Purose:  CHeck for updates\r\n// Input:   reference to size event\r\n// Output:  nothing\r\n////////////////////////////////////////////////////////////////////\nvoid CCamView::CheckUpdate()\n{\n    Update( );\n}\n\r\n////////////////////////////////////////////////////////////////////\r\n// Method:  OnSize\r\n// Class:   CCamView\r\n// Purose:  adjust on windows resize\r\n// Input:   reference to size event\r\n// Output:  nothing\r\n////////////////////////////////////////////////////////////////////\r\nvoid CCamView::OnSize( wxSizeEvent& even )\r\n{\r\n    int nWidth = even.GetSize().GetWidth();\r\n    int nHeight = even.GetSize().GetHeight();\r\n\r\n    m_nWidth = nWidth;\r\n    m_nHeight = nHeight;\r\n\r\n}\n"
  },
  {
    "path": "camview.h",
    "content": "////////////////////////////////////////////////////////////////////\n// Name:\t\tcamera view header\n// File:\t\tcamview.h\n// Purpose:\t\tinterface for the CCamView class.\n//\n// Created by:\tLarry Lart on 06-Jul-2006\n// Updated by:\tAndrew Barry Jan 2010\r\n//\n////////////////////////////////////////////////////////////////////\n\n#ifndef _CCAMVIEW_H\n#define _CCAMVIEW_H\n\r\n#include <wx/wx.h>\r\n\n#include \"cv.h\"\n#include \"highgui.h\"\n\nclass CCamView : public wxWindow\n{\npublic:\n\tCCamView( wxWindow *frame, const wxPoint& pos, const wxSize& size );\n\n// Operations\npublic:\n\n\n// Implementation\npublic:\n\tvirtual ~CCamView( );\n\tbool IsCaptureEnabled( );\n\tvoid CheckUpdate( );\n\r\n\t// Draw method\n\tvoid DrawCam( IplImage* pImg );\r\n\tvoid Draw( wxDC& dc );\r\n\r\n// Public data\r\npublic:\r\n\t//CCamera *m_pCamera;\r\n\n// Protected data\nprotected:\n    //CImage\tm_Canvas;\n\twxBitmap *m_pBitmap;\n\n  \tbool\tm_bDrawing;\r\n\tbool\tm_bNewImage;\n\n\tint m_nWidth;\r\n\tint m_nHeight;\r\n\n// private methods\nprivate:\n\tvoid\tOnPaint(wxPaintEvent& event);\r\n\tvoid\tOnSize( wxSizeEvent& even );\n\n// protected data\nprotected:\n\n\tDECLARE_EVENT_TABLE()\n};\n\n#endif\n\n"
  },
  {
    "path": "configure.ac",
    "content": "#                                               -*- Autoconf -*-\n# Process this file with autoconf to produce a configure script.\n\nAC_PREREQ([2.65])\nAC_INIT([makerscanner], [0.3.2], [abarry@makerscanner.com])\nAM_INIT_AUTOMAKE(makerscanner, 0.3.2)\nAC_CONFIG_SRCDIR([ScanStatus.cpp])\nAC_CONFIG_HEADERS([config.h])\n\n# Checks for programs.\nAC_PROG_CXX\nAC_PROG_CC\n\n# Checks for libraries.\n\n##########################################################################\n# check for libgsl headers\n##########################################################################\n\n# use the C++ compiler for the following checks\nAC_LANG([C++])\n\n# store current CXXFLAGS and merge with AM_CXXFLAGS for compilation check\nOLD_CXXFLAGS=$CXXFLAGS;\nCXXFLAGS=\"$AM_CXXFLAGS $CXXFLAGS\"\n\n# check for libgsl library headers\nAC_MSG_CHECKING([for the libgsl library headers])\n# try to compile a file that includes a header of the library XXX\nAC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <gsl/gsl_spline.h>]])],\n    [AC_MSG_RESULT([found])\n        FOUND_GSL=1;],\n    [AC_MSG_RESULT([not found])\n        FOUND_GSL=0;])\n\n# reset original CXXFLAGS\nCXXFLAGS=$OLD_CXXFLAGS\n\n# handle results\nif test $FOUND_GSL != 1; then\n    AC_MSG_NOTICE([])\n    AC_MSG_NOTICE([The libgsl library was not found!])\n\n    AC_MSG_NOTICE([])\n    AC_MSG_ERROR([\n        libgsl must be installed on your system.\n\n        If you are on Ubuntu you can probably solve this by running\n\n        sudo apt-get install libgsl0-dev\n        ])\nfi\n\n##########################################################################\n\n\n\nPKG_CHECK_MODULES([OPENCV], [opencv >= 2.0])\n\n\n\n# check for wxWidgets\n\nm4_include(wxwin.m4)\n\nAM_OPTIONS_WXCONFIG\nreqwx=2.4.0\nAM_PATH_WXCONFIG($reqwx, wxWin=1)\nif test \"$wxWin\" != 1; then\n    AC_MSG_ERROR([\n        wxWidgets must be installed on your system.\n\n        Please check that wx-config is in path, the directory\n        where wxWidgets libraries are installed (returned by\n        'wx-config --libs' or 'wx-config --static --libs' command)\n        is in LD_LIBRARY_PATH or equivalent variable and\n        wxWidgets version is $reqwx or above.\n\n        If you are on Ubuntu you can probably solve this by running\n        sudo apt-get install libwxgtk2.8-dev\n        ])\nfi\n\nCPPFLAGS=\"$CPPFLAGS $WX_CPPFLAGS\"\nCXXFLAGS=\"$CXXFLAGS $WX_CXXFLAGS_ONLY\"\nCFLAGS=\"$CFLAGS $WX_CFLAGS_ONLY\"\nLIBS=\"$LIBS $WX_LIBS\"\n\n# Checks for header files.\n\n# Checks for typedefs, structures, and compiler characteristics.\nAC_HEADER_STDBOOL\nAC_C_INLINE\n\n# Checks for library functions.\n\nAC_CONFIG_FILES([Makefile])\nAC_OUTPUT\n"
  },
  {
    "path": "resource.rc",
    "content": "aaaa ICON \"laserIcon.ico\"\r\n\r\n#include \"wx/msw/wx.rc\"\r\n"
  },
  {
    "path": "windows-package/AUTHORS",
    "content": "Andrew Barry <abarry@makerscanner.com>\nOriginal Version, 0.1, 0.2, 0.3\n\n2008-2010\n\n"
  },
  {
    "path": "windows-package/LICENSE",
    "content": "\t\t    GNU GENERAL PUBLIC LICENSE\n\t\t       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc.,\n 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n\t\t\t    Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicense is intended to guarantee your freedom to share and change free\nsoftware--to make sure the software is free for all its users.  This\nGeneral Public License applies to most of the Free Software\nFoundation's software and to any other program whose authors commit to\nusing it.  (Some other Free Software Foundation software is covered by\nthe GNU Lesser General Public License instead.)  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthis service if you wish), that you receive source code or can get it\nif you want it, that you can change the software or use pieces of it\nin new free programs; and that you know you can do these things.\n\n  To protect your rights, we need to make restrictions that forbid\nanyone to deny you these rights or to ask you to surrender the rights.\nThese restrictions translate to certain responsibilities for you if you\ndistribute copies of the software, or if you modify it.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must give the recipients all the rights that\nyou have.  You must make sure that they, too, receive or can get the\nsource code.  And you must show them these terms so they know their\nrights.\n\n  We protect your rights with two steps: (1) copyright the software, and\n(2) offer you this license which gives you legal permission to copy,\ndistribute and/or modify the software.\n\n  Also, for each author's protection and ours, we want to make certain\nthat everyone understands that there is no warranty for this free\nsoftware.  If the software is modified by someone else and passed on, we\nwant its recipients to know that what they have is not the original, so\nthat any problems introduced by others will not reflect on the original\nauthors' reputations.\n\n  Finally, any free program is threatened constantly by software\npatents.  We wish to avoid the danger that redistributors of a free\nprogram will individually obtain patent licenses, in effect making the\nprogram proprietary.  To prevent this, we have made it clear that any\npatent must be licensed for everyone's free use or not licensed at all.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n\t\t    GNU GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License applies to any program or other work which contains\na notice placed by the copyright holder saying it may be distributed\nunder the terms of this General Public License.  The \"Program\", below,\nrefers to any such program or work, and a \"work based on the Program\"\nmeans either the Program or any derivative work under copyright law:\nthat is to say, a work containing the Program or a portion of it,\neither verbatim or with modifications and/or translated into another\nlanguage.  (Hereinafter, translation is included without limitation in\nthe term \"modification\".)  Each licensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning the Program is not restricted, and the output from the Program\nis covered only if its contents constitute a work based on the\nProgram (independent of having been made by running the Program).\nWhether that is true depends on what the Program does.\n\n  1. You may copy and distribute verbatim copies of the Program's\nsource code as you receive it, in any medium, provided that you\nconspicuously and appropriately publish on each copy an appropriate\ncopyright notice and disclaimer of warranty; keep intact all the\nnotices that refer to this License and to the absence of any warranty;\nand give any other recipients of the Program a copy of this License\nalong with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and\nyou may at your option offer warranty protection in exchange for a fee.\n\n  2. You may modify your copy or copies of the Program or any portion\nof it, thus forming a work based on the Program, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) You must cause the modified files to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    b) You must cause any work that you distribute or publish, that in\n    whole or in part contains or is derived from the Program or any\n    part thereof, to be licensed as a whole at no charge to all third\n    parties under the terms of this License.\n\n    c) If the modified program normally reads commands interactively\n    when run, you must cause it, when started running for such\n    interactive use in the most ordinary way, to print or display an\n    announcement including an appropriate copyright notice and a\n    notice that there is no warranty (or else, saying that you provide\n    a warranty) and that users may redistribute the program under\n    these conditions, and telling the user how to view a copy of this\n    License.  (Exception: if the Program itself is interactive but\n    does not normally print such an announcement, your work based on\n    the Program is not required to print an announcement.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Program,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Program, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote it.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Program.\n\nIn addition, mere aggregation of another work not based on the Program\nwith the Program (or with a work based on the Program) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may copy and distribute the Program (or a work based on it,\nunder Section 2) in object code or executable form under the terms of\nSections 1 and 2 above provided that you also do one of the following:\n\n    a) Accompany it with the complete corresponding machine-readable\n    source code, which must be distributed under the terms of Sections\n    1 and 2 above on a medium customarily used for software interchange; or,\n\n    b) Accompany it with a written offer, valid for at least three\n    years, to give any third party, for a charge no more than your\n    cost of physically performing source distribution, a complete\n    machine-readable copy of the corresponding source code, to be\n    distributed under the terms of Sections 1 and 2 above on a medium\n    customarily used for software interchange; or,\n\n    c) Accompany it with the information you received as to the offer\n    to distribute corresponding source code.  (This alternative is\n    allowed only for noncommercial distribution and only if you\n    received the program in object code or executable form with such\n    an offer, in accord with Subsection b above.)\n\nThe source code for a work means the preferred form of the work for\nmaking modifications to it.  For an executable work, complete source\ncode means all the source code for all modules it contains, plus any\nassociated interface definition files, plus the scripts used to\ncontrol compilation and installation of the executable.  However, as a\nspecial exception, the source code distributed need not include\nanything that is normally distributed (in either source or binary\nform) with the major components (compiler, kernel, and so on) of the\noperating system on which the executable runs, unless that component\nitself accompanies the executable.\n\nIf distribution of executable or object code is made by offering\naccess to copy from a designated place, then offering equivalent\naccess to copy the source code from the same place counts as\ndistribution of the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  4. You may not copy, modify, sublicense, or distribute the Program\nexcept as expressly provided under this License.  Any attempt\notherwise to copy, modify, sublicense or distribute the Program is\nvoid, and will automatically terminate your rights under this License.\nHowever, parties who have received copies, or rights, from you under\nthis License will not have their licenses terminated so long as such\nparties remain in full compliance.\n\n  5. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Program or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Program (or any work based on the\nProgram), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Program or works based on it.\n\n  6. Each time you redistribute the Program (or any work based on the\nProgram), the recipient automatically receives a license from the\noriginal licensor to copy, distribute or modify the Program subject to\nthese terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties to\nthis License.\n\n  7. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Program at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Program by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Program.\n\nIf any portion of this section is held invalid or unenforceable under\nany particular circumstance, the balance of the section is intended to\napply and the section as a whole is intended to apply in other\ncircumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system, which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  8. If the distribution and/or use of the Program is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Program under this License\nmay add an explicit geographical distribution limitation excluding\nthose countries, so that distribution is permitted only in or among\ncountries not thus excluded.  In such case, this License incorporates\nthe limitation as if written in the body of this License.\n\n  9. The Free Software Foundation may publish revised and/or new versions\nof the General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Program\nspecifies a version number of this License which applies to it and \"any\nlater version\", you have the option of following the terms and conditions\neither of that version or of any later version published by the Free\nSoftware Foundation.  If the Program does not specify a version number of\nthis License, you may choose any version ever published by the Free Software\nFoundation.\n\n  10. If you wish to incorporate parts of the Program into other free\nprograms whose distribution conditions are different, write to the author\nto ask for permission.  For software which is copyrighted by the Free\nSoftware Foundation, write to the Free Software Foundation; we sometimes\nmake exceptions for this.  Our decision will be guided by the two goals\nof preserving the free status of all derivatives of our free software and\nof promoting the sharing and reuse of software generally.\n\n\t\t\t    NO WARRANTY\n\n  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\nFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\nOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\nPROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\nOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\nTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\nPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\nREPAIR OR CORRECTION.\n\n  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\nREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\nINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\nOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\nTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\nYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n\n\t\t     END OF TERMS AND CONDITIONS\n\n\t    How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License along\n    with this program; if not, write to the Free Software Foundation, Inc.,\n    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this\nwhen it starts in an interactive mode:\n\n    Gnomovision version 69, Copyright (C) year name of author\n    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, the commands you use may\nbe called something other than `show w' and `show c'; they could even be\nmouse-clicks or menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the program, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n  `Gnomovision' (which makes passes at compilers) written by James Hacker.\n\n  <signature of Ty Coon>, 1 April 1989\n  Ty Coon, President of Vice\n\nThis General Public License does not permit incorporating your program into\nproprietary programs.  If your program is a subroutine library, you may\nconsider it more useful to permit linking proprietary applications with the\nlibrary.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.\n"
  },
  {
    "path": "windows-package/README",
    "content": "See http://www.makerscanner.com/ and/or http://wiki.makerbot.com/makerscanner for instructions.\n"
  },
  {
    "path": "windows-package/installer.iss",
    "content": "\r\n\r\n[Setup]\r\nAppName=MakerScanner\r\nAppVerName=MakerScanner v0.3.1\r\nDefaultDirName={pf}\\MakerScanner\r\nDefaultGroupName=MakerScanner\r\nUninstallDisplayIcon={app}\\MakerScanner.exe\r\nCompression=lzma\r\nSolidCompression=yes\r\nOutputDir=userdocs:MakerScanner\r\nAppMutex=MakerScanner\r\n\r\n[Files]\r\nSource: MakerScanner.exe; DestDir: {app}\r\nSource: README; DestDir: {app}\r\nSource: AUTHORS; DestDir: {app}\r\nSource: LICENSE; DestDir: {app}\r\nSource: laserIcon.ico; DestDir: {app}\r\nSource: cv210.dll; DestDir: {app}\r\nSource: cxcore210.dll; DestDir: {app}\r\nSource: highgui210.dll; DestDir: {app}\r\nSource: mingwm10.dll; DestDir: {app}\r\n\r\n[Icons]\r\nName: {group}\\MakerScanner; Filename: {app}\\MakerScanner.exe; WorkingDir: {app}\r\nName: {commonstartup}\\MakerScanner; Filename: {app}\\MakerScanner.exe; WorkingDir: {app}\r\n\r\n[Run]\r\nFilename: {app}\\MakerScanner.exe; Description: Run MakerScanner; Flags: postinstall nowait skipifsilent\r\n"
  },
  {
    "path": "wxsmith/ActiveStereoframe.wxs",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<wxsmith>\n\t<object class=\"wxFrame\" name=\"ActiveStereoFrame\">\n\t\t<title>MakerScanner v0.3.1</title>\n\t\t<size>1009,746</size>\n\t\t<minsize>1009,746</minsize>\n\t\t<id_arg>0</id_arg>\n\t\t<object class=\"wxPanel\" name=\"ID_PANEL1\" variable=\"Panel1\" member=\"yes\">\n\t\t\t<pos>120,232</pos>\n\t\t\t<object class=\"wxBoxSizer\" variable=\"BoxSizer1\" member=\"no\">\n\t\t\t\t<orient>wxVERTICAL</orient>\n\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t<object class=\"wxBoxSizer\" variable=\"topBoxSizer\" member=\"no\">\n\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t<object class=\"wxBoxSizer\" variable=\"headBoxSizer\" member=\"yes\">\n\t\t\t\t\t\t\t\t<orient>wxVERTICAL</orient>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxStaticBoxSizer\" variable=\"staticBoxSizerStatus\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>System Status</label>\n\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxFlexGridSizer\" variable=\"flexGridStatus\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t<cols>2</cols>\n\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT3\" variable=\"lblStaticCameraConnected\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label>Camera: </label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT4\" variable=\"lblCameraConnected\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label>Disconnected</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<style>wxALIGN_RIGHT</style>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT1\" variable=\"StaticText1\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label>FPS: </label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_FPS_LABEL\" variable=\"lblFPS\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label>0.0</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxButton\" name=\"ID_BUTTON4\" variable=\"butCameraConnect\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label>Camera Connect</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<handler function=\"OnButCameraConnectClick\" entry=\"EVT_BUTTON\" />\n\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxStaticBoxSizer\" variable=\"staticBoxSizerSettings\" member=\"no\">\n\t\t\t\t\t\t\t\t\t\t<label>Scan Settings</label>\n\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxFlexGridSizer\" variable=\"FlexGridSizer1\" member=\"no\">\n\t\t\t\t\t\t\t\t\t\t\t\t<cols>2</cols>\n\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT7\" variable=\"lblImageThreshold\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label>Brightness Threshold: 25</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxSlider\" name=\"ID_SLIDER3\" variable=\"sliderImageThreshold\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<value>25</value>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<min>5</min>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<max>50</max>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<size>158,30</size>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<handler function=\"OnSliderImageThresholdCmdScroll\" entry=\"EVT_COMMAND_SCROLL_THUMBTRACK\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<handler function=\"OnSliderImageThresholdCmdScroll\" entry=\"EVT_COMMAND_SCROLL_CHANGED\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT5\" variable=\"lblBrightnessFilter\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<label>Brightness Filter: 0.80</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxSlider\" name=\"ID_SLIDER1\" variable=\"sliderBrightnessFilter\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<value>80</value>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<size>158,35</size>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<handler function=\"OnSliderBrightnessFilterCmdScrollThumbTrack\" entry=\"EVT_COMMAND_SCROLL_THUMBTRACK\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<handler function=\"OnSliderBrightnessFilterCmdScrollThumbTrack\" entry=\"EVT_COMMAND_SCROLL_CHANGED\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxEXPAND|wxSHAPED|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT6\" variable=\"StaticText2\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>Brightness Threshold controls how bright the laser must be in the image for it to be detected.  Low values will be more forgiving of light lasers or dark objects, but tend to produce more noise.&#x0A;&#x0A;Brightness Filter controls how bright pixels must appear relative to other laser pixels.  Low values are more forgiving but tend to produce more noise.</label>\n\t\t\t\t\t\t\t\t\t\t<size>319,170</size>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxBoxSizer\" variable=\"BoxSizer2\" member=\"no\">\n\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxButton\" name=\"ID_BUTTON3\" variable=\"butCapture\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label>Start Scan</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<size>150,32</size>\n\t\t\t\t\t\t\t\t\t\t\t\t<enabled>0</enabled>\n\t\t\t\t\t\t\t\t\t\t\t\t<handler function=\"OnButCaptureClick\" entry=\"EVT_BUTTON\" />\n\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t\t\t<object class=\"wxButton\" name=\"ID_BUTTON1\" variable=\"butDoneScanning\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label>Done Scanning</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<size>150,32</size>\n\t\t\t\t\t\t\t\t\t\t\t\t<enabled>0</enabled>\n\t\t\t\t\t\t\t\t\t\t\t\t<handler function=\"OnButDoneScanningClick\" entry=\"EVT_BUTTON\" />\n\t\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL</flag>\n\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t</object>\n\t\t\t\t\t<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t<border>5</border>\n\t\t\t\t</object>\n\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t<object class=\"wxStaticLine\" name=\"ID_STATICLINE1\" variable=\"StaticLine1\" member=\"yes\">\n\t\t\t\t\t\t<size>10,-1</size>\n\t\t\t\t\t</object>\n\t\t\t\t\t<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t<border>5</border>\n\t\t\t\t</object>\n\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t<object class=\"wxTextCtrl\" name=\"ID_TEXTCTRL1\" variable=\"txtLog\" member=\"yes\">\n\t\t\t\t\t\t<value>------------------ Quick Tips ------------------&#x0A;The top 25 pixels (above the green line) are reserved for a flat surface.  If the entire top of the image is not looking at a flat surface, the scan will not work well.&#x0A;&#x0A;Try not to move the camera or objects during the scan.  The system uses an image-difference technique which means that it is sensitive to any changes in the image.&#x0A;&#x0A;------------------ Initializing ------------------</value>\n\t\t\t\t\t\t<size>999,133</size>\n\t\t\t\t\t\t<minsize>390,154</minsize>\n\t\t\t\t\t\t<style>wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP</style>\n\t\t\t\t\t</object>\n\t\t\t\t\t<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t<border>5</border>\n\t\t\t\t\t<option>1</option>\n\t\t\t\t</object>\n\t\t\t</object>\n\t\t</object>\n\t\t<object class=\"wxMenuBar\" variable=\"MenuBar1\" member=\"no\">\n\t\t\t<object class=\"wxMenu\" variable=\"Menu1\" member=\"no\">\n\t\t\t\t<label>&amp;File</label>\n\t\t\t\t<object class=\"wxMenuItem\" name=\"idMenuQuit\" variable=\"MenuItem1\" member=\"no\">\n\t\t\t\t\t<label>Quit</label>\n\t\t\t\t\t<accel>Alt-F4</accel>\n\t\t\t\t\t<help>Quit the application</help>\n\t\t\t\t\t<handler function=\"OnQuit\" entry=\"EVT_MENU\" />\n\t\t\t\t</object>\n\t\t\t</object>\n\t\t\t<object class=\"wxMenu\" variable=\"Menu3\" member=\"yes\">\n\t\t\t\t<label>Tools</label>\n\t\t\t\t<object class=\"wxMenuItem\" name=\"idMenuChangeCamera\" variable=\"menuChangeCamera\" member=\"yes\">\n\t\t\t\t\t<label>Change Camera</label>\n\t\t\t\t\t<help>Change the camera if you have more than one (requires restart)</help>\n\t\t\t\t\t<handler function=\"OnMenuChangeCameraSelected\" entry=\"EVT_MENU\" />\n\t\t\t\t</object>\n\t\t\t</object>\n\t\t\t<object class=\"wxMenu\" variable=\"Menu2\" member=\"no\">\n\t\t\t\t<label>Help</label>\n\t\t\t\t<object class=\"wxMenuItem\" name=\"idMenuAbout\" variable=\"MenuItem2\" member=\"no\">\n\t\t\t\t\t<label>About</label>\n\t\t\t\t\t<accel>F1</accel>\n\t\t\t\t\t<help>Show info about this application</help>\n\t\t\t\t\t<handler function=\"OnAbout\" entry=\"EVT_MENU\" />\n\t\t\t\t</object>\n\t\t\t</object>\n\t\t</object>\n\t\t<object class=\"wxStatusBar\" name=\"ID_STATUSBAR1\" variable=\"StatusBar1\" member=\"yes\">\n\t\t\t<fields>1</fields>\n\t\t\t<widths>-1</widths>\n\t\t\t<styles>wxSB_NORMAL</styles>\n\t\t</object>\n\t</object>\n</wxsmith>\n"
  },
  {
    "path": "wxsmith/DistanceToReferenceDialog.wxs",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<wxsmith>\n\t<object class=\"wxDialog\" name=\"DistanceToReferenceDialog\">\n\t\t<title>Distance to Reference Surface</title>\n\t\t<size>446,289</size>\n\t\t<id_arg>0</id_arg>\n\t\t<object class=\"wxBoxSizer\" variable=\"BoxSizer1\" member=\"no\">\n\t\t\t<object class=\"sizeritem\">\n\t\t\t\t<object class=\"wxPanel\" name=\"ID_PANEL1\" variable=\"Panel1\" member=\"yes\">\n\t\t\t\t\t<object class=\"wxBoxSizer\" variable=\"BoxSizer2\" member=\"no\">\n\t\t\t\t\t\t<orient>wxVERTICAL</orient>\n\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t<object class=\"wxBoxSizer\" variable=\"BoxSizer5\" member=\"no\">\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT1\" variable=\"StaticText1\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>Before we start, we need to know a few things:&#x0A;&#x0A;1) what your object looks like without the laser.&#x0A;2) how far away your flat reference surface is.</label>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t<object class=\"wxStaticLine\" name=\"ID_STATICLINE1\" variable=\"StaticLine1\" member=\"yes\">\n\t\t\t\t\t\t\t\t<size>10,-1</size>\n\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t<flag>wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t<object class=\"wxFlexGridSizer\" variable=\"FlexGridSizer1\" member=\"no\">\n\t\t\t\t\t\t\t\t<cols>2</cols>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT4\" variable=\"lblCoverLaser\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>1) Cover the laser</label>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxButton\" name=\"ID_BUTTON1\" variable=\"butLaserCovered\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>Done</label>\n\t\t\t\t\t\t\t\t\t\t<handler function=\"OnButLaserCoveredClick\" entry=\"EVT_BUTTON\" />\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT5\" variable=\"lblCenterLaser\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>2) Center the laser</label>\n\t\t\t\t\t\t\t\t\t\t<enabled>0</enabled>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxButton\" name=\"ID_BUTTON2\" variable=\"butLaserCentered\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>Done</label>\n\t\t\t\t\t\t\t\t\t\t<enabled>0</enabled>\n\t\t\t\t\t\t\t\t\t\t<handler function=\"OnButLaserCenteredClick\" entry=\"EVT_BUTTON\" />\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT6\" variable=\"lblOr\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>or</label>\n\t\t\t\t\t\t\t\t\t\t<size>45,17</size>\n\t\t\t\t\t\t\t\t\t\t<enabled>0</enabled>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"spacer\">\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxStaticText\" name=\"ID_STATICTEXT7\" variable=\"lblEnterDistance\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>Enter the distance to the&#x0A;flat reference wall (cm):</label>\n\t\t\t\t\t\t\t\t\t\t<enabled>0</enabled>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxSpinCtrl\" name=\"ID_SPINCTRL1\" variable=\"spinDistance\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<value>50</value>\n\t\t\t\t\t\t\t\t\t\t<max>1000</max>\n\t\t\t\t\t\t\t\t\t\t<size>79,27</size>\n\t\t\t\t\t\t\t\t\t\t<enabled>0</enabled>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"spacer\">\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t<object class=\"sizeritem\">\n\t\t\t\t\t\t\t\t\t<object class=\"wxButton\" name=\"wxID_OK\" variable=\"butDistanceEntered\" member=\"yes\">\n\t\t\t\t\t\t\t\t\t\t<label>Done</label>\n\t\t\t\t\t\t\t\t\t\t<enabled>0</enabled>\n\t\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t\t\t\t<border>5</border>\n\t\t\t\t\t\t\t<option>1</option>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t</object>\n\t\t\t\t</object>\n\t\t\t\t<flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag>\n\t\t\t\t<border>5</border>\n\t\t\t\t<option>1</option>\n\t\t\t</object>\n\t\t</object>\n\t</object>\n</wxsmith>\n"
  },
  {
    "path": "wxwin.m4",
    "content": "dnl ---------------------------------------------------------------------------\ndnl Macros for wxWidgets detection. Typically used in configure.in as:\ndnl\ndnl     AC_ARG_ENABLE(...)\ndnl     AC_ARG_WITH(...)\ndnl        ...\ndnl     AM_OPTIONS_WXCONFIG\ndnl        ...\ndnl        ...\ndnl     AM_PATH_WXCONFIG(2.6.0, wxWin=1)\ndnl     if test \"$wxWin\" != 1; then\ndnl        AC_MSG_ERROR([\ndnl                wxWidgets must be installed on your system\ndnl                but wx-config script couldn't be found.\ndnl\ndnl                Please check that wx-config is in path, the directory\ndnl                where wxWidgets libraries are installed (returned by\ndnl                'wx-config --libs' command) is in LD_LIBRARY_PATH or\ndnl                equivalent variable and wxWidgets version is 2.3.4 or above.\ndnl        ])\ndnl     fi\ndnl     CPPFLAGS=\"$CPPFLAGS $WX_CPPFLAGS\"\ndnl     CXXFLAGS=\"$CXXFLAGS $WX_CXXFLAGS_ONLY\"\ndnl     CFLAGS=\"$CFLAGS $WX_CFLAGS_ONLY\"\ndnl\ndnl     LIBS=\"$LIBS $WX_LIBS\"\ndnl ---------------------------------------------------------------------------\n\ndnl ---------------------------------------------------------------------------\ndnl AM_OPTIONS_WXCONFIG\ndnl\ndnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and\ndnl --wx-config command line options\ndnl ---------------------------------------------------------------------------\n\nAC_DEFUN([AM_OPTIONS_WXCONFIG],\n[\n    AC_ARG_WITH(wxdir,\n                [  --with-wxdir=PATH       Use uninstalled version of wxWidgets in PATH],\n                [ wx_config_name=\"$withval/wx-config\"\n                  wx_config_args=\"--inplace\"])\n    AC_ARG_WITH(wx-config,\n                [  --with-wx-config=CONFIG wx-config script to use (optional)],\n                wx_config_name=\"$withval\" )\n    AC_ARG_WITH(wx-prefix,\n                [  --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)],\n                wx_config_prefix=\"$withval\", wx_config_prefix=\"\")\n    AC_ARG_WITH(wx-exec-prefix,\n                [  --with-wx-exec-prefix=PREFIX\n                          Exec prefix where wxWidgets is installed (optional)],\n                wx_config_exec_prefix=\"$withval\", wx_config_exec_prefix=\"\")\n])\n\ndnl Helper macro for checking if wx version is at least $1.$2.$3, set's\ndnl wx_ver_ok=yes if it is:\nAC_DEFUN([_WX_PRIVATE_CHECK_VERSION],\n[\n    wx_ver_ok=\"\"\n    if test \"x$WX_VERSION\" != x ; then\n      if test $wx_config_major_version -gt $1; then\n        wx_ver_ok=yes\n      else\n        if test $wx_config_major_version -eq $1; then\n           if test $wx_config_minor_version -gt $2; then\n              wx_ver_ok=yes\n           else\n              if test $wx_config_minor_version -eq $2; then\n                 if test $wx_config_micro_version -ge $3; then\n                    wx_ver_ok=yes\n                 fi\n              fi\n           fi\n        fi\n      fi\n    fi\n])\n\ndnl ---------------------------------------------------------------------------\ndnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND\ndnl                  [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]])\ndnl\ndnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC\ndnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME\ndnl environment variable to override the default name of the wx-config script\ndnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this\ndnl case the macro won't even waste time on tests for its existence.\ndnl\ndnl Optional WX-LIBS argument contains comma- or space-separated list of\ndnl wxWidgets libraries to link against (it may include contrib libraries). If\ndnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to\ndnl link with all of the core wxWidgets libraries.\ndnl\ndnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config\ndnl invocation command in present. It can be used to fine-tune lookup of\ndnl best wxWidgets build available.\ndnl\ndnl Example use:\ndnl   AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], [html,core,net]\ndnl                    [--unicode --debug])\ndnl ---------------------------------------------------------------------------\n\ndnl\ndnl Get the cflags and libraries from the wx-config script\ndnl\nAC_DEFUN([AM_PATH_WXCONFIG],\n[\n  dnl do we have wx-config name: it can be wx-config or wxd-config or ...\n  if test x${WX_CONFIG_NAME+set} != xset ; then\n     WX_CONFIG_NAME=wx-config\n  fi\n\n  if test \"x$wx_config_name\" != x ; then\n     WX_CONFIG_NAME=\"$wx_config_name\"\n  fi\n\n  dnl deal with optional prefixes\n  if test x$wx_config_exec_prefix != x ; then\n     wx_config_args=\"$wx_config_args --exec-prefix=$wx_config_exec_prefix\"\n     WX_LOOKUP_PATH=\"$wx_config_exec_prefix/bin\"\n  fi\n  if test x$wx_config_prefix != x ; then\n     wx_config_args=\"$wx_config_args --prefix=$wx_config_prefix\"\n     WX_LOOKUP_PATH=\"$WX_LOOKUP_PATH:$wx_config_prefix/bin\"\n  fi\n  if test \"$cross_compiling\" = \"yes\"; then\n     wx_config_args=\"$wx_config_args --host=$host_alias\"\n  fi\n\n  dnl don't search the PATH if WX_CONFIG_NAME is absolute filename\n  if test -x \"$WX_CONFIG_NAME\" ; then\n     AC_MSG_CHECKING(for wx-config)\n     WX_CONFIG_PATH=\"$WX_CONFIG_NAME\"\n     AC_MSG_RESULT($WX_CONFIG_PATH)\n  else\n     AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, \"$WX_LOOKUP_PATH:$PATH\")\n  fi\n\n  if test \"$WX_CONFIG_PATH\" != \"no\" ; then\n    WX_VERSION=\"\"\n\n    min_wx_version=ifelse([$1], ,2.2.1,$1)\n    if test -z \"$5\" ; then\n      AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version])\n    else\n      AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)])\n    fi\n\n    WX_CONFIG_WITH_ARGS=\"$WX_CONFIG_PATH $wx_config_args $5 $4\"\n\n    WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null`\n    wx_config_major_version=`echo $WX_VERSION | \\\n           sed 's/\\([[0-9]]*\\).\\([[0-9]]*\\).\\([[0-9]]*\\)/\\1/'`\n    wx_config_minor_version=`echo $WX_VERSION | \\\n           sed 's/\\([[0-9]]*\\).\\([[0-9]]*\\).\\([[0-9]]*\\)/\\2/'`\n    wx_config_micro_version=`echo $WX_VERSION | \\\n           sed 's/\\([[0-9]]*\\).\\([[0-9]]*\\).\\([[0-9]]*\\)/\\3/'`\n\n    wx_requested_major_version=`echo $min_wx_version | \\\n           sed 's/\\([[0-9]]*\\).\\([[0-9]]*\\).\\([[0-9]]*\\)/\\1/'`\n    wx_requested_minor_version=`echo $min_wx_version | \\\n           sed 's/\\([[0-9]]*\\).\\([[0-9]]*\\).\\([[0-9]]*\\)/\\2/'`\n    wx_requested_micro_version=`echo $min_wx_version | \\\n           sed 's/\\([[0-9]]*\\).\\([[0-9]]*\\).\\([[0-9]]*\\)/\\3/'`\n\n    _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version],\n                              [$wx_requested_minor_version],\n                              [$wx_requested_micro_version])\n\n    if test -n \"$wx_ver_ok\"; then\n\n      AC_MSG_RESULT(yes (version $WX_VERSION))\n      WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`\n\n      dnl is this even still appropriate?  --static is a real option now\n      dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is\n      dnl what the user actually wants, making this redundant at best.\n      dnl For now keep it in case anyone actually used it in the past.\n      AC_MSG_CHECKING([for wxWidgets static library])\n      WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null`\n      if test \"x$WX_LIBS_STATIC\" = \"x\"; then\n        AC_MSG_RESULT(no)\n      else\n        AC_MSG_RESULT(yes)\n      fi\n\n      dnl starting with version 2.2.6 wx-config has --cppflags argument\n      wx_has_cppflags=\"\"\n      if test $wx_config_major_version -gt 2; then\n        wx_has_cppflags=yes\n      else\n        if test $wx_config_major_version -eq 2; then\n           if test $wx_config_minor_version -gt 2; then\n              wx_has_cppflags=yes\n           else\n              if test $wx_config_minor_version -eq 2; then\n                 if test $wx_config_micro_version -ge 6; then\n                    wx_has_cppflags=yes\n                 fi\n              fi\n           fi\n        fi\n      fi\n\n      dnl starting with version 2.7.0 wx-config has --rescomp option\n      wx_has_rescomp=\"\"\n      if test $wx_config_major_version -gt 2; then\n        wx_has_rescomp=yes\n      else\n        if test $wx_config_major_version -eq 2; then\n           if test $wx_config_minor_version -ge 7; then\n              wx_has_rescomp=yes\n           fi\n        fi\n      fi\n      if test \"x$wx_has_rescomp\" = x ; then\n         dnl cannot give any useful info for resource compiler\n         WX_RESCOMP=\n      else\n         WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp`\n      fi\n\n      if test \"x$wx_has_cppflags\" = x ; then\n         dnl no choice but to define all flags like CFLAGS\n         WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`\n         WX_CPPFLAGS=$WX_CFLAGS\n         WX_CXXFLAGS=$WX_CFLAGS\n\n         WX_CFLAGS_ONLY=$WX_CFLAGS\n         WX_CXXFLAGS_ONLY=$WX_CFLAGS\n      else\n         dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS\n         WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags`\n         WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags`\n         WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`\n\n         WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed \"s@^$WX_CPPFLAGS *@@\"`\n         WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed \"s@^$WX_CFLAGS *@@\"`\n      fi\n\n      ifelse([$2], , :, [$2])\n\n    else\n\n       if test \"x$WX_VERSION\" = x; then\n          dnl no wx-config at all\n          AC_MSG_RESULT(no)\n       else\n          AC_MSG_RESULT(no (version $WX_VERSION is not new enough))\n       fi\n\n       WX_CFLAGS=\"\"\n       WX_CPPFLAGS=\"\"\n       WX_CXXFLAGS=\"\"\n       WX_LIBS=\"\"\n       WX_LIBS_STATIC=\"\"\n       WX_RESCOMP=\"\"\n       ifelse([$3], , :, [$3])\n\n    fi\n  else\n\n    WX_CFLAGS=\"\"\n    WX_CPPFLAGS=\"\"\n    WX_CXXFLAGS=\"\"\n    WX_LIBS=\"\"\n    WX_LIBS_STATIC=\"\"\n    WX_RESCOMP=\"\"\n\n    ifelse([$3], , :, [$3])\n\n  fi\n\n  AC_SUBST(WX_CPPFLAGS)\n  AC_SUBST(WX_CFLAGS)\n  AC_SUBST(WX_CXXFLAGS)\n  AC_SUBST(WX_CFLAGS_ONLY)\n  AC_SUBST(WX_CXXFLAGS_ONLY)\n  AC_SUBST(WX_LIBS)\n  AC_SUBST(WX_LIBS_STATIC)\n  AC_SUBST(WX_VERSION)\n  AC_SUBST(WX_RESCOMP)\n])\n\ndnl ---------------------------------------------------------------------------\ndnl Get information on the wxrc program for making C++, Python and xrs\ndnl resource files.\ndnl\ndnl     AC_ARG_ENABLE(...)\ndnl     AC_ARG_WITH(...)\ndnl        ...\ndnl     AM_OPTIONS_WXCONFIG\ndnl        ...\ndnl     AM_PATH_WXCONFIG(2.6.0, wxWin=1)\ndnl     if test \"$wxWin\" != 1; then\ndnl        AC_MSG_ERROR([\ndnl                wxWidgets must be installed on your system\ndnl                but wx-config script couldn't be found.\ndnl\ndnl                Please check that wx-config is in path, the directory\ndnl                where wxWidgets libraries are installed (returned by\ndnl                'wx-config --libs' command) is in LD_LIBRARY_PATH or\ndnl                equivalent variable and wxWidgets version is 2.6.0 or above.\ndnl        ])\ndnl     fi\ndnl\ndnl     AM_PATH_WXRC([HAVE_WXRC=1], [HAVE_WXRC=0])\ndnl     if test \"x$HAVE_WXRC\" != x1; then\ndnl         AC_MSG_ERROR([\ndnl                The wxrc program was not installed or not found.\ndnl     \ndnl                Please check the wxWidgets installation.\ndnl         ])\ndnl     fi\ndnl\ndnl     CPPFLAGS=\"$CPPFLAGS $WX_CPPFLAGS\"\ndnl     CXXFLAGS=\"$CXXFLAGS $WX_CXXFLAGS_ONLY\"\ndnl     CFLAGS=\"$CFLAGS $WX_CFLAGS_ONLY\"\ndnl\ndnl     LDFLAGS=\"$LDFLAGS $WX_LIBS\"\ndnl ---------------------------------------------------------------------------\n\n\n\ndnl ---------------------------------------------------------------------------\ndnl AM_PATH_WXRC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])\ndnl\ndnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS\ndnl resources.  The variable WXRC will be set and substituted in the configure\ndnl script and Makefiles.\ndnl\ndnl Example use:\ndnl   AM_PATH_WXRC([wxrc=1], [wxrc=0])\ndnl ---------------------------------------------------------------------------\n\ndnl\ndnl wxrc program from the wx-config script\ndnl\nAC_DEFUN([AM_PATH_WXRC],\n[\n  AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler])\n    \n  if test \"x$WX_CONFIG_NAME\" = x; then\n    AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.])\n  else\n    \n    AC_MSG_CHECKING([for wxrc])\n    \n    if test \"x$WXRC\" = x ; then\n      dnl wx-config --utility is a new addition to wxWidgets:\n      _WX_PRIVATE_CHECK_VERSION(2,5,3)\n      if test -n \"$wx_ver_ok\"; then\n        WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc`\n      fi\n    fi\n\n    if test \"x$WXRC\" = x ; then\n      AC_MSG_RESULT([not found])\n      ifelse([$2], , :, [$2])\n    else\n      AC_MSG_RESULT([$WXRC])\n      ifelse([$1], , :, [$1])\n    fi\n    \n    AC_SUBST(WXRC)\n  fi\n])\n"
  }
]