Repository: andybarry/makerscanner Branch: master Commit: 5d9e1982a907 Files: 208 Total size: 329.8 KB Directory structure: gitextract_p7p8np5j/ ├── .gitignore ├── AUTHORS ├── ActiveStereo.cbp ├── ActiveStereo.depend ├── ActiveStereo.layout ├── ActiveStereoApp.cpp ├── ActiveStereoApp.h ├── ActiveStereoMain.cpp ├── ActiveStereoMain.h ├── CAD/ │ ├── Design Data/ │ │ ├── AEC Exchange/ │ │ │ └── Support/ │ │ │ ├── AuthoringTemplates/ │ │ │ │ ├── Air Terminal.xml │ │ │ │ ├── Casework.xml │ │ │ │ ├── Categories.xml │ │ │ │ ├── Communication Devices.xml │ │ │ │ ├── Data Devices.xml │ │ │ │ ├── Doors.xml │ │ │ │ ├── Duct Accessories.xml │ │ │ │ ├── Electrical Equipment.xml │ │ │ │ ├── Electrical Fixtures.xml │ │ │ │ ├── Fire Alarm Devices.xml │ │ │ │ ├── Furniture Systems.xml │ │ │ │ ├── Furniture.xml │ │ │ │ ├── Generic Models.xml │ │ │ │ ├── Lighting Fixtures.xml │ │ │ │ ├── Mechanical Equipment.xml │ │ │ │ ├── Pipe Accessories.xml │ │ │ │ ├── Plumbing Fixtures.xml │ │ │ │ ├── Security Devices.xml │ │ │ │ ├── Specialty Equipment.xml │ │ │ │ ├── Telephone Devices.xml │ │ │ │ └── Windows.xml │ │ │ ├── CableTrayConnector.xml │ │ │ ├── ConduitConnector.xml │ │ │ ├── DWGSettings.ini │ │ │ ├── DuctConnector.xml │ │ │ ├── ElectricalConnector.xml │ │ │ ├── PartAtom.xml │ │ │ ├── PipeConnector.xml │ │ │ └── TranslationReport.xsl │ │ ├── Balloon.xml │ │ ├── CenterMark.xml │ │ ├── Clearance.xls │ │ ├── Colors.xml │ │ ├── DWG-DXF/ │ │ │ ├── FaceLoops.xml │ │ │ ├── FlatPattern.xml │ │ │ ├── FlatPatternExportOpts.xml │ │ │ ├── exportdwg.ini │ │ │ ├── exportdxf.ini │ │ │ ├── importacad.ini │ │ │ ├── importdxf.ini │ │ │ └── importmdt.ini │ │ ├── DatumTarget.xml │ │ ├── Dimension.xml │ │ ├── FeatureControlFrame.xml │ │ ├── GOST/ │ │ │ ├── Defaults.ini │ │ │ ├── MaterialsFavorites.xml │ │ │ ├── PartsListGroup1.xls │ │ │ ├── PartsListGroup1b.xls │ │ │ ├── PartsListTemplate.xls │ │ │ ├── WeldFavorites.ini │ │ │ └── technical requirements/ │ │ │ ├── Assembly drawings.tr │ │ │ ├── Cold punching parts.tr │ │ │ ├── Electrical cases.tr │ │ │ ├── Forged parts.tr │ │ │ ├── Mechanical parts.tr │ │ │ ├── Mold parts.tr │ │ │ ├── Pipes.tr │ │ │ ├── Steel mold parts.tr │ │ │ ├── Surface coatings.tr │ │ │ └── Weld assemblies.tr │ │ ├── Hatch.xml │ │ ├── HoleTable.xml │ │ ├── Id.xml │ │ ├── Layers.xml │ │ ├── Leader.xml │ │ ├── Lighting.xml │ │ ├── Materials.xml │ │ ├── ObjectDefaults.xml │ │ ├── PartsList.xml │ │ ├── ProteinMapping.xml │ │ ├── RevisionTable.xml │ │ ├── SheetMetalRules.xml │ │ ├── SheetMetalUnfold.xml │ │ ├── Simulation/ │ │ │ └── Report/ │ │ │ ├── Configuration.htm │ │ │ ├── Constraint.htm │ │ │ ├── Contact.htm │ │ │ ├── Figure.htm │ │ │ ├── Load.htm │ │ │ ├── Main.htm │ │ │ ├── Material.htm │ │ │ ├── ReactionForces.htm │ │ │ └── Simulation.htm │ │ ├── Standard.xml │ │ ├── StudioLighting.xml │ │ ├── StudioScene.xml │ │ ├── SurfaceTexture.xml │ │ ├── Table.xml │ │ ├── Text.xml │ │ ├── Thread.xls │ │ ├── ViewAnnotation.xml │ │ ├── Weld.xml │ │ └── WeldBead.xml │ ├── LaserCameraConnector.ipt │ ├── LaserMountBase.ipt │ ├── LaserMountBase2.ipt │ ├── LaserMountPole2.ipt │ ├── LaserMountTop.ipt │ ├── OldVersions/ │ │ ├── makerscannerAssembly.ipj.bak │ │ └── makerscannerAssembly.ipj.old.bak │ ├── PS3_eye_holder_from_base.ipt │ ├── Solidworks 2013/ │ │ ├── lasercameraconnector.SLDPRT │ │ ├── lasermountbase.SLDPRT │ │ ├── lasermountbase2.SLDPRT │ │ ├── lasermountpole2.SLDPRT │ │ ├── lasermounttop.SLDPRT │ │ ├── ps3_eye.SLDPRT │ │ └── ps3_eye_holder_from_base.SLDPRT │ ├── Templates/ │ │ ├── English/ │ │ │ ├── ANSI (in).dwg │ │ │ ├── ANSI (in).idw │ │ │ ├── Sheet Metal (in).ipt │ │ │ ├── Standard (in).iam │ │ │ ├── Standard (in).ipn │ │ │ ├── Standard (in).ipt │ │ │ ├── Weldment (ANSI).iam │ │ │ └── am_ansi.dwg │ │ ├── Metric/ │ │ │ ├── ANSI (mm).dwg │ │ │ ├── ANSI (mm).idw │ │ │ ├── BSI.dwg │ │ │ ├── BSI.idw │ │ │ ├── DIN.dwg │ │ │ ├── DIN.idw │ │ │ ├── GB.dwg │ │ │ ├── GB.idw │ │ │ ├── GOST.dwg │ │ │ ├── GOST.idw │ │ │ ├── ISO.dwg │ │ │ ├── ISO.idw │ │ │ ├── JIS.dwg │ │ │ ├── JIS.idw │ │ │ ├── Sheet Metal (DIN).ipt │ │ │ ├── Sheet Metal (mm).ipt │ │ │ ├── Standard (DIN).iam │ │ │ ├── Standard (DIN).ipn │ │ │ ├── Standard (DIN).ipt │ │ │ ├── Standard (mm).iam │ │ │ ├── Standard (mm).ipn │ │ │ ├── Standard (mm).ipt │ │ │ ├── Weldment (ANSI - mm).iam │ │ │ ├── Weldment (BSI).iam │ │ │ ├── Weldment (DIN).iam │ │ │ ├── Weldment (GB).iam │ │ │ ├── Weldment (ISO).iam │ │ │ ├── Weldment (JIS).iam │ │ │ ├── am_bsi.dwg │ │ │ ├── am_din.dwg │ │ │ ├── am_gb.dwg │ │ │ ├── am_iso.dwg │ │ │ └── am_jis.dwg │ │ ├── Sheet Metal.ipt │ │ ├── Standard.dwg │ │ ├── Standard.iam │ │ ├── Standard.idw │ │ ├── Standard.ipn │ │ ├── Standard.ipt │ │ └── Weldment.iam │ ├── makerscannerAssembly.iam │ ├── makerscannerAssembly.ipj │ ├── ps3_eye.ipt │ └── ps3_eye_assembly2.iam ├── Cameras.cpp ├── Cameras.h ├── CaptureThread.cpp ├── CaptureThread.h ├── ChangeLog ├── DistanceToReferenceDialog.cpp ├── DistanceToReferenceDialog.h ├── Documentation/ │ └── 3DMakerScannerMath.vsdx ├── INSTALL ├── IndividualPixels.h ├── LICENSE ├── Makefile.am ├── MakerscannerWin3.cbp ├── NEWS ├── PointCloud.cpp ├── PointCloud.h ├── PointCloudPoint.cpp ├── PointCloudPoint.h ├── README.md ├── ScanStatus.cpp ├── ScanStatus.h ├── ScanThread.cpp ├── ScanThread.h ├── SetConfig.c ├── SetConfig.h ├── SetHorz.c ├── SetHorz.h ├── bootstrap.sh ├── camview.cpp ├── camview.h ├── configure.ac ├── laserIcon.xcf ├── resource.rc ├── windows-package/ │ ├── AUTHORS │ ├── LICENSE │ ├── README │ └── installer.iss ├── wxsmith/ │ ├── ActiveStereoframe.wxs │ └── DistanceToReferenceDialog.wxs └── wxwin.m4 ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ *.o *~ .deps/ config.h config.h.in config.log config.status configure configure.scan depcomp install-sh makerscanner missing Makefile aclocal.m4 autom4te.cache autoscan.log stamp-h1 Makefile.in compile bin gmon.out ================================================ FILE: AUTHORS ================================================ Andrew Barry Original Version, 0.1, 0.2, 0.3 2008-2010 ================================================ FILE: ActiveStereo.cbp ================================================ ================================================ FILE: ActiveStereo.depend ================================================ # depslib dependency file v1.0 1228979223 source:/home/abarry/programs/ActiveStereo/ActiveStereoApp.cpp "ActiveStereoApp.h" "ActiveStereoMain.h" 1228979223 /home/abarry/programs/ActiveStereo/ActiveStereoApp.h 1282051479 /usr/include/wx-2.8/wx/app.h "wx/event.h" "wx/build.h" "wx/init.h" "wx/intl.h" "wx/palmos/app.h" "wx/msw/app.h" "wx/motif/app.h" "wx/mgl/app.h" "wx/dfb/app.h" "wx/gtk/app.h" "wx/gtk1/app.h" "wx/x11/app.h" "wx/mac/app.h" "wx/cocoa/app.h" "wx/os2/app.h" "wx/univ/theme.h" 1282051479 /usr/include/wx-2.8/wx/event.h "wx/defs.h" "wx/cpp.h" "wx/object.h" "wx/clntdata.h" "wx/gdicmn.h" "wx/cursor.h" "wx/thread.h" "wx/dynarray.h" 1282051479 /usr/include/wx-2.8/wx/defs.h "wx/platform.h" "wx/features.h" "wx/version.h" "wx/dlimpexp.h" "wx/debug.h" "wx/msw/winundef.h" 1282051479 /usr/include/wx-2.8/wx/platform.h "wx/mac/carbon/config_xcode.h" "wx/setup.h" "wx/chkconf.h" "wx/msw/wince/libraries.h" "wx/msw/libraries.h" "wx/msw/gccpriv.h" 1282051479 /usr/lib/wx/include/gtk2-unicode-release-2.8/wx/setup.h 1282051479 /usr/include/wx-2.8/wx/chkconf.h "wx/palmos/chkconf.h" "wx/msw/wince/chkconf.h" "wx/msw/chkconf.h" "wx/mac/chkconf.h" "wx/os2/chkconf.h" "wx/mgl/chkconf.h" "wx/dfb/chkconf.h" "wx/motif/chkconf.h" "wx/x11/chkconf.h" "wx/univ/chkconf.h" 1282051479 /usr/include/wx-2.8/wx/features.h 1282051479 /usr/include/wx-2.8/wx/version.h "wx/cpp.h" 1282051479 /usr/include/wx-2.8/wx/cpp.h 1282051479 /usr/include/wx-2.8/wx/dlimpexp.h 1282051479 /usr/include/wx-2.8/wx/debug.h "wx/wxchar.h" 1282051479 /usr/include/wx-2.8/wx/wxchar.h "wx/platform.h" "wx/dlimpexp.h" 1282051479 /usr/include/wx-2.8/wx/object.h "wx/memory.h" "wx/xti.h" "wx/msw/msvcrt.h" 1282051479 /usr/include/wx-2.8/wx/memory.h "wx/defs.h" "wx/string.h" "wx/msgout.h" 1282051479 /usr/include/wx-2.8/wx/string.h "wx/defs.h" "wx/wxchar.h" "wx/buffer.h" "wx/strconv.h" "wx/beforestd.h" "wx/afterstd.h" "wx/arrstr.h" "wx/iosfwrap.h" 1282051479 /usr/include/wx-2.8/wx/buffer.h "wx/wxchar.h" 1282051479 /usr/include/wx-2.8/wx/strconv.h "wx/defs.h" "wx/wxchar.h" "wx/buffer.h" "typeinfo.h" "wx/fontenc.h" 1282051479 /usr/include/wx-2.8/wx/fontenc.h 1282051479 /usr/include/wx-2.8/wx/beforestd.h 1282051479 /usr/include/wx-2.8/wx/afterstd.h "wx/msw/winundef.h" 1282051479 /usr/include/wx-2.8/wx/arrstr.h "wx/defs.h" "wx/string.h" "wx/dynarray.h" 1282051479 /usr/include/wx-2.8/wx/dynarray.h "wx/defs.h" "wx/beforestd.h" "wx/afterstd.h" 1282051479 /usr/include/wx-2.8/wx/iosfwrap.h "wx/msw/winundef.h" 1282051479 /usr/include/wx-2.8/wx/msgout.h "wx/defs.h" "wx/wxchar.h" 1282051479 /usr/include/wx-2.8/wx/xti.h "wx/defs.h" "wx/memory.h" "wx/flags.h" "wx/string.h" "wx/arrstr.h" "wx/hashmap.h" "wx/log.h" "wx/intl.h" "wx/dynarray.h" 1282051479 /usr/include/wx-2.8/wx/hashmap.h "wx/string.h" 1282051479 /usr/include/wx-2.8/wx/log.h "wx/defs.h" "wx/string.h" "wx/arrstr.h" "wx/dynarray.h" "wx/iosfwrap.h" "wx/generic/logg.h" "wx/cocoa/log.h" 1282051480 /usr/include/wx-2.8/wx/generic/logg.h 1282051479 /usr/include/wx-2.8/wx/intl.h "wx/defs.h" "wx/string.h" "wx/fontenc.h" 1282051479 /usr/include/wx-2.8/wx/clntdata.h "wx/defs.h" "wx/string.h" "wx/hashmap.h" "wx/vector.h" 1282051479 /usr/include/wx-2.8/wx/vector.h "wx/defs.h" 1282051480 /usr/include/wx-2.8/wx/gdicmn.h "wx/defs.h" "wx/list.h" "wx/string.h" "wx/fontenc.h" "wx/hashmap.h" "wx/math.h" 1282051479 /usr/include/wx-2.8/wx/list.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/beforestd.h" "wx/afterstd.h" 1282051479 /usr/include/wx-2.8/wx/math.h "wx/defs.h" 1282051480 /usr/include/wx-2.8/wx/cursor.h "wx/defs.h" "wx/palmos/cursor.h" "wx/msw/cursor.h" "wx/motif/cursor.h" "wx/gtk/cursor.h" "wx/gtk1/cursor.h" "wx/x11/cursor.h" "wx/mgl/cursor.h" "wx/dfb/cursor.h" "wx/mac/cursor.h" "wx/cocoa/cursor.h" "wx/os2/cursor.h" "wx/utils.h" 1282051481 /usr/include/wx-2.8/wx/gtk/cursor.h "wx/object.h" 1282051479 /usr/include/wx-2.8/wx/utils.h "wx/object.h" "wx/list.h" "wx/filefn.h" "wx/gdicmn.h" "wx/longlong.h" "wx/platinfo.h" 1282051479 /usr/include/wx-2.8/wx/filefn.h "wx/list.h" "wx/arrstr.h" "wx/msw/wince/time.h" "wx/msw/private.h" "wx/os2/private.h" 1282051479 /usr/include/wx-2.8/wx/longlong.h "wx/defs.h" "wx/string.h" "wx/iosfwrap.h" 1282051479 /usr/include/wx-2.8/wx/platinfo.h "wx/string.h" 1282051479 /usr/include/wx-2.8/wx/thread.h "wx/defs.h" 1282051479 /usr/include/wx-2.8/wx/build.h "wx/version.h" 1282051479 /usr/include/wx-2.8/wx/init.h "wx/defs.h" "wx/wxchar.h" 1282051481 /usr/include/wx-2.8/wx/gtk/app.h 1237420234 /home/abarry/programs/ActiveStereo/ActiveStereoMain.h "SetConfig.h" "SetHorz.h" "cv.h" "highgui.h" "Cameras.h" "ScanThread.h" 1282051480 /usr/include/wx-2.8/wx/sizer.h "wx/defs.h" "wx/window.h" 1282051480 /usr/include/wx-2.8/wx/window.h "wx/event.h" "wx/list.h" "wx/cursor.h" "wx/font.h" "wx/colour.h" "wx/region.h" "wx/utils.h" "wx/intl.h" "wx/validate.h" "wx/palette.h" "wx/accel.h" "wx/access.h" "wx/palmos/window.h" "wx/msw/window.h" "wx/motif/window.h" "wx/gtk/window.h" "wx/gtk1/window.h" "wx/x11/window.h" "wx/mgl/window.h" "wx/dfb/window.h" "wx/mac/window.h" "wx/cocoa/window.h" "wx/os2/window.h" "wx/univ/window.h" 1282051480 /usr/include/wx-2.8/wx/font.h "wx/defs.h" "wx/fontenc.h" "wx/gdiobj.h" "wx/palmos/font.h" "wx/msw/font.h" "wx/motif/font.h" "wx/gtk/font.h" "wx/gtk1/font.h" "wx/x11/font.h" "wx/mgl/font.h" "wx/dfb/font.h" "wx/mac/font.h" "wx/cocoa/font.h" "wx/os2/font.h" 1282051480 /usr/include/wx-2.8/wx/gdiobj.h "wx/object.h" 1282051481 /usr/include/wx-2.8/wx/gtk/font.h 1282051480 /usr/include/wx-2.8/wx/colour.h "wx/defs.h" "wx/gdiobj.h" "wx/variant.h" "wx/generic/colour.h" "wx/msw/colour.h" "wx/motif/colour.h" "wx/gtk/colour.h" "wx/gtk1/colour.h" "wx/generic/colour.h" "wx/generic/colour.h" "wx/x11/colour.h" "wx/mac/colour.h" "wx/cocoa/colour.h" "wx/os2/colour.h" 1282051479 /usr/include/wx-2.8/wx/variant.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/arrstr.h" "wx/list.h" "wx/cpp.h" "wx/datetime.h" "wx/db.h" "wx/iosfwrap.h" 1282051479 /usr/include/wx-2.8/wx/datetime.h "wx/defs.h" "wx/msw/wince/time.h" "wx/longlong.h" "wx/dynarray.h" 1282051480 /usr/include/wx-2.8/wx/db.h "wx/defs.h" "wx/string.h" "wx/msw/wrapwin.h" "sql.h" "sqlext.h" "odbcinst.h" "wx/msw/wrapwin.h" "wx/isql.h" "wx/isqlext.h" "wx/object.h" 1282051479 /usr/include/wx-2.8/wx/isql.h 1282051479 /usr/include/wx-2.8/wx/isqlext.h "wx/isql.h" 1282051481 /usr/include/wx-2.8/wx/gtk/colour.h 1282051481 /usr/include/wx-2.8/wx/region.h "wx/gdiobj.h" "wx/gdicmn.h" "wx/palmos/region.h" "wx/msw/region.h" "wx/gtk/region.h" "wx/gtk1/region.h" "wx/x11/region.h" "wx/mgl/region.h" "wx/dfb/region.h" "wx/mac/region.h" "wx/cocoa/region.h" "wx/os2/region.h" 1282051481 /usr/include/wx-2.8/wx/gtk/region.h 1282051480 /usr/include/wx-2.8/wx/validate.h "wx/defs.h" "wx/event.h" 1282051480 /usr/include/wx-2.8/wx/palette.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/palmos/palette.h" "wx/msw/palette.h" "wx/motif/palette.h" "wx/generic/paletteg.h" "wx/x11/palette.h" "wx/mgl/palette.h" "wx/mac/palette.h" "wx/os2/palette.h" 1282051481 /usr/include/wx-2.8/wx/generic/paletteg.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/gdicmn.h" 1282051480 /usr/include/wx-2.8/wx/accel.h "wx/defs.h" "wx/object.h" "wx/generic/accel.h" "wx/msw/accel.h" "wx/motif/accel.h" "wx/gtk/accel.h" "wx/gtk1/accel.h" "wx/mac/accel.h" "wx/generic/accel.h" "wx/os2/accel.h" 1282051480 /usr/include/wx-2.8/wx/generic/accel.h 1282051481 /usr/include/wx-2.8/wx/gtk/accel.h "wx/generic/accel.h" 1282051480 /usr/include/wx-2.8/wx/access.h "wx/defs.h" "wx/variant.h" "wx/msw/ole/access.h" 1282051481 /usr/include/wx-2.8/wx/gtk/window.h "wx/dynarray.h" 1282051480 /usr/include/wx-2.8/wx/menu.h "wx/defs.h" "wx/list.h" "wx/window.h" "wx/menuitem.h" "wx/univ/menu.h" "wx/palmos/menu.h" "wx/msw/menu.h" "wx/motif/menu.h" "wx/gtk/menu.h" "wx/gtk1/menu.h" "wx/mac/menu.h" "wx/cocoa/menu.h" "wx/os2/menu.h" 1282051480 /usr/include/wx-2.8/wx/menuitem.h "wx/defs.h" "wx/object.h" "wx/univ/menuitem.h" "wx/palmos/menuitem.h" "wx/msw/menuitem.h" "wx/motif/menuitem.h" "wx/gtk/menuitem.h" "wx/gtk1/menuitem.h" "wx/mac/menuitem.h" "wx/cocoa/menuitem.h" "wx/os2/menuitem.h" 1282051481 /usr/include/wx-2.8/wx/gtk/menuitem.h "wx/bitmap.h" 1282051480 /usr/include/wx-2.8/wx/bitmap.h "wx/string.h" "wx/gdicmn.h" "wx/colour.h" "wx/variant.h" "wx/palmos/bitmap.h" "wx/msw/bitmap.h" "wx/x11/bitmap.h" "wx/gtk/bitmap.h" "wx/gtk1/bitmap.h" "wx/x11/bitmap.h" "wx/mgl/bitmap.h" "wx/dfb/bitmap.h" "wx/mac/bitmap.h" "wx/cocoa/bitmap.h" "wx/os2/bitmap.h" "wx/generic/mask.h" 1282051481 /usr/include/wx-2.8/wx/gtk/bitmap.h 1282051481 /usr/include/wx-2.8/wx/gtk/menu.h 1282051480 /usr/include/wx-2.8/wx/textctrl.h "wx/defs.h" "wx/control.h" "wx/dynarray.h" "wx/gdicmn.h" "wx/ioswrap.h" "wx/x11/textctrl.h" "wx/univ/textctrl.h" "wx/msw/wince/textctrlce.h" "wx/msw/textctrl.h" "wx/motif/textctrl.h" "wx/gtk/textctrl.h" "wx/gtk1/textctrl.h" "wx/mac/textctrl.h" "wx/cocoa/textctrl.h" "wx/os2/textctrl.h" 1282051480 /usr/include/wx-2.8/wx/control.h "wx/defs.h" "wx/window.h" "wx/univ/control.h" "wx/palmos/control.h" "wx/msw/control.h" "wx/motif/control.h" "wx/gtk/control.h" "wx/gtk1/control.h" "wx/mac/control.h" "wx/cocoa/control.h" "wx/os2/control.h" 1282051481 /usr/include/wx-2.8/wx/gtk/control.h 1282051479 /usr/include/wx-2.8/wx/ioswrap.h "wx/msw/winundef.h" 1282051481 /usr/include/wx-2.8/wx/gtk/textctrl.h 1282051481 /usr/include/wx-2.8/wx/spinctrl.h "wx/defs.h" "wx/spinbutt.h" "wx/generic/spinctlg.h" "wx/msw/spinctrl.h" "wx/os2/spinctrl.h" "wx/gtk/spinctrl.h" "wx/gtk1/spinctrl.h" "wx/generic/spinctlg.h" "wx/mac/spinctrl.h" "wx/generic/spinctlg.h" 1282051481 /usr/include/wx-2.8/wx/spinbutt.h "wx/defs.h" "wx/control.h" "wx/event.h" "wx/univ/spinbutt.h" "wx/msw/spinbutt.h" "wx/motif/spinbutt.h" "wx/gtk/spinbutt.h" "wx/gtk1/spinbutt.h" "wx/mac/spinbutt.h" "wx/cocoa/spinbutt.h" "wx/os2/spinbutt.h" 1282051481 /usr/include/wx-2.8/wx/gtk/spinbutt.h 1282051480 /usr/include/wx-2.8/wx/generic/spinctlg.h "wx/textctrl.h" 1282051481 /usr/include/wx-2.8/wx/gtk/spinctrl.h 1282051480 /usr/include/wx-2.8/wx/panel.h "wx/generic/panelg.h" 1282051480 /usr/include/wx-2.8/wx/generic/panelg.h "wx/window.h" "wx/containr.h" 1282051479 /usr/include/wx-2.8/wx/containr.h 1282051480 /usr/include/wx-2.8/wx/button.h "wx/defs.h" "wx/control.h" "wx/univ/button.h" "wx/msw/button.h" "wx/motif/button.h" "wx/gtk/button.h" "wx/gtk1/button.h" "wx/mac/button.h" "wx/cocoa/button.h" "wx/os2/button.h" "wx/palmos/button.h" 1282051481 /usr/include/wx-2.8/wx/gtk/button.h 1282051480 /usr/include/wx-2.8/wx/frame.h "wx/toplevel.h" "wx/univ/frame.h" "wx/palmos/frame.h" "wx/msw/frame.h" "wx/gtk/frame.h" "wx/gtk1/frame.h" "wx/motif/frame.h" "wx/mac/frame.h" "wx/cocoa/frame.h" "wx/os2/frame.h" 1282051481 /usr/include/wx-2.8/wx/toplevel.h "wx/window.h" "wx/iconbndl.h" "wx/palmos/toplevel.h" "wx/msw/toplevel.h" "wx/gtk/toplevel.h" "wx/gtk1/toplevel.h" "wx/x11/toplevel.h" "wx/mgl/toplevel.h" "wx/dfb/toplevel.h" "wx/mac/toplevel.h" "wx/cocoa/toplevel.h" "wx/os2/toplevel.h" "wx/motif/toplevel.h" "wx/univ/toplevel.h" 1282051480 /usr/include/wx-2.8/wx/iconbndl.h "wx/dynarray.h" "wx/gdicmn.h" 1282051481 /usr/include/wx-2.8/wx/gtk/toplevel.h 1282051481 /usr/include/wx-2.8/wx/gtk/frame.h 1282051480 /usr/include/wx-2.8/wx/statusbr.h "wx/defs.h" "wx/window.h" "wx/list.h" "wx/dynarray.h" "wx/univ/statusbr.h" "wx/palmos/statusbr.h" "wx/msw/statbr95.h" "wx/generic/statusbr.h" "wx/mac/statusbr.h" "wx/generic/statusbr.h" 1282051481 /usr/include/wx-2.8/wx/generic/statusbr.h "wx/defs.h" "wx/pen.h" "wx/arrstr.h" 1282051480 /usr/include/wx-2.8/wx/pen.h "wx/defs.h" "wx/palmos/pen.h" "wx/msw/pen.h" "wx/x11/pen.h" "wx/gtk/pen.h" "wx/gtk1/pen.h" "wx/mgl/pen.h" "wx/dfb/pen.h" "wx/mac/pen.h" "wx/cocoa/pen.h" "wx/os2/pen.h" 1282051481 /usr/include/wx-2.8/wx/gtk/pen.h "wx/gdiobj.h" "wx/gdicmn.h" 1282051480 /usr/include/wx-2.8/wx/image.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/gdicmn.h" "wx/hashmap.h" "wx/stream.h" "wx/variant.h" "wx/imagbmp.h" "wx/imagpng.h" "wx/imaggif.h" "wx/imagpcx.h" "wx/imagjpeg.h" "wx/imagtga.h" "wx/imagtiff.h" "wx/imagpnm.h" "wx/imagxpm.h" "wx/imagiff.h" 1282051479 /usr/include/wx-2.8/wx/stream.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/filefn.h" 1282051480 /usr/include/wx-2.8/wx/imagbmp.h "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imagpng.h "wx/defs.h" "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imaggif.h "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imagpcx.h "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imagjpeg.h "wx/defs.h" "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imagtga.h "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imagtiff.h "wx/defs.h" "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imagpnm.h "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imagxpm.h "wx/image.h" 1282051480 /usr/include/wx-2.8/wx/imagiff.h "wx/image.h" 1186113925 /home/abarry/programs/ActiveStereo/SetConfig.h 1237439168 source:/home/abarry/programs/ActiveStereo/ActiveStereoMain.cpp "ActiveStereoMain.h" 1282051480 /usr/include/wx-2.8/wx/msgdlg.h "wx/defs.h" "wx/generic/msgdlgg.h" "wx/generic/msgdlgg.h" "wx/palmos/msgdlg.h" "wx/msw/msgdlg.h" "wx/motif/msgdlg.h" "wx/gtk/msgdlg.h" "wx/generic/msgdlgg.h" "wx/generic/msgdlgg.h" "wx/mac/msgdlg.h" "wx/cocoa/msgdlg.h" "wx/os2/msgdlg.h" 1282051480 /usr/include/wx-2.8/wx/generic/msgdlgg.h "wx/defs.h" "wx/dialog.h" 1282051480 /usr/include/wx-2.8/wx/dialog.h "wx/defs.h" "wx/containr.h" "wx/toplevel.h" "wx/univ/dialog.h" "wx/palmos/dialog.h" "wx/msw/dialog.h" "wx/motif/dialog.h" "wx/gtk/dialog.h" "wx/gtk1/dialog.h" "wx/mac/dialog.h" "wx/cocoa/dialog.h" "wx/os2/dialog.h" 1282051481 /usr/include/wx-2.8/wx/gtk/dialog.h "wx/defs.h" 1282051481 /usr/include/wx-2.8/wx/gtk/msgdlg.h "wx/defs.h" "wx/dialog.h" 1229033004 /home/abarry/programs/ActiveStereo/SetHorz.h 1229031294 source:/home/abarry/programs/ActiveStereo/SetConfig.c "SetConfig.h" 1229157346 source:/home/abarry/programs/ActiveStereo/SetHorz.c "SetHorz.h" 1229128537 source:/home/abarry/programs/ActiveStereo/Cameras.cpp "Cameras.h" 1229128489 /home/abarry/programs/ActiveStereo/Cameras.h "cv.h" "highgui.h" "ScanThread.h" 1282051479 /usr/include/wx-2.8/wx/wx.h "wx/defs.h" "wx/object.h" "wx/dynarray.h" "wx/list.h" "wx/hash.h" "wx/string.h" "wx/hashmap.h" "wx/arrstr.h" "wx/intl.h" "wx/log.h" "wx/event.h" "wx/app.h" "wx/utils.h" "wx/stream.h" "wx/memory.h" "wx/math.h" "wx/stopwatch.h" "wx/module.h" "wx/window.h" "wx/containr.h" "wx/panel.h" "wx/toplevel.h" "wx/frame.h" "wx/gdicmn.h" "wx/gdiobj.h" "wx/region.h" "wx/bitmap.h" "wx/image.h" "wx/colour.h" "wx/font.h" "wx/dc.h" "wx/dcclient.h" "wx/dcmemory.h" "wx/dcprint.h" "wx/dcscreen.h" "wx/button.h" "wx/menuitem.h" "wx/menu.h" "wx/pen.h" "wx/brush.h" "wx/palette.h" "wx/icon.h" "wx/cursor.h" "wx/dialog.h" "wx/timer.h" "wx/settings.h" "wx/msgdlg.h" "wx/cmndata.h" "wx/dataobj.h" "wx/control.h" "wx/ctrlsub.h" "wx/bmpbuttn.h" "wx/checkbox.h" "wx/checklst.h" "wx/choice.h" "wx/scrolbar.h" "wx/stattext.h" "wx/statbmp.h" "wx/statbox.h" "wx/listbox.h" "wx/radiobox.h" "wx/radiobut.h" "wx/textctrl.h" "wx/slider.h" "wx/gauge.h" "wx/scrolwin.h" "wx/dirdlg.h" "wx/toolbar.h" "wx/combobox.h" "wx/layout.h" "wx/sizer.h" "wx/mdi.h" "wx/statusbr.h" "wx/choicdlg.h" "wx/textdlg.h" "wx/filedlg.h" "wx/validate.h" "wx/valtext.h" 1282051479 /usr/include/wx-2.8/wx/hash.h "wx/defs.h" "wx/object.h" "wx/list.h" "wx/dynarray.h" 1282051479 /usr/include/wx-2.8/wx/stopwatch.h "wx/defs.h" "wx/longlong.h" 1282051479 /usr/include/wx-2.8/wx/module.h "wx/object.h" "wx/list.h" "wx/dynarray.h" 1282051480 /usr/include/wx-2.8/wx/dc.h "wx/object.h" "wx/intl.h" "wx/cursor.h" "wx/font.h" "wx/colour.h" "wx/bitmap.h" "wx/brush.h" "wx/pen.h" "wx/palette.h" "wx/list.h" "wx/dynarray.h" "wx/math.h" "wx/palmos/dc.h" "wx/msw/dc.h" "wx/motif/dc.h" "wx/gtk/dc.h" "wx/gtk1/dc.h" "wx/x11/dc.h" "wx/mgl/dc.h" "wx/dfb/dc.h" "wx/mac/dc.h" "wx/cocoa/dc.h" "wx/os2/dc.h" "wx/dcgraph.h" 1282051480 /usr/include/wx-2.8/wx/brush.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/palmos/brush.h" "wx/msw/brush.h" "wx/x11/brush.h" "wx/gtk/brush.h" "wx/gtk1/brush.h" "wx/mgl/brush.h" "wx/dfb/brush.h" "wx/mac/brush.h" "wx/cocoa/brush.h" "wx/os2/brush.h" 1282051481 /usr/include/wx-2.8/wx/gtk/brush.h 1282051481 /usr/include/wx-2.8/wx/gtk/dc.h 1282051480 /usr/include/wx-2.8/wx/dcgraph.h "wx/geometry.h" "wx/dynarray.h" "wx/graphics.h" 1282051480 /usr/include/wx-2.8/wx/geometry.h "wx/defs.h" "wx/utils.h" "wx/gdicmn.h" "wx/math.h" 1282051480 /usr/include/wx-2.8/wx/graphics.h "wx/defs.h" "wx/geometry.h" "wx/dynarray.h" 1282051480 /usr/include/wx-2.8/wx/dcclient.h "wx/defs.h" "wx/palmos/dcclient.h" "wx/msw/dcclient.h" "wx/motif/dcclient.h" "wx/gtk/dcclient.h" "wx/gtk1/dcclient.h" "wx/x11/dcclient.h" "wx/mgl/dcclient.h" "wx/dfb/dcclient.h" "wx/mac/dcclient.h" "wx/cocoa/dcclient.h" "wx/os2/dcclient.h" 1282051481 /usr/include/wx-2.8/wx/gtk/dcclient.h "wx/dc.h" "wx/region.h" 1282051480 /usr/include/wx-2.8/wx/dcmemory.h "wx/bitmap.h" "wx/palmos/dcmemory.h" "wx/msw/dcmemory.h" "wx/motif/dcmemory.h" "wx/gtk/dcmemory.h" "wx/gtk1/dcmemory.h" "wx/x11/dcmemory.h" "wx/mgl/dcmemory.h" "wx/dfb/dcmemory.h" "wx/mac/dcmemory.h" "wx/cocoa/dcmemory.h" "wx/os2/dcmemory.h" 1282051481 /usr/include/wx-2.8/wx/gtk/dcmemory.h "wx/dcclient.h" 1282051480 /usr/include/wx-2.8/wx/dcprint.h "wx/defs.h" "wx/palmos/dcprint.h" "wx/msw/dcprint.h" "wx/os2/dcprint.h" "wx/mac/dcprint.h" 1282051480 /usr/include/wx-2.8/wx/dcscreen.h "wx/defs.h" "wx/palmos/dcscreen.h" "wx/msw/dcscreen.h" "wx/motif/dcscreen.h" "wx/gtk/dcscreen.h" "wx/gtk1/dcscreen.h" "wx/x11/dcscreen.h" "wx/mgl/dcscreen.h" "wx/dfb/dcscreen.h" "wx/mac/dcscreen.h" "wx/cocoa/dcscreen.h" "wx/os2/dcscreen.h" 1282051481 /usr/include/wx-2.8/wx/gtk/dcscreen.h "wx/dcclient.h" 1282051480 /usr/include/wx-2.8/wx/icon.h "wx/iconloc.h" "wx/generic/icon.h" "wx/msw/icon.h" "wx/motif/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/mac/icon.h" "wx/cocoa/icon.h" "wx/os2/icon.h" "wx/variant.h" 1282051479 /usr/include/wx-2.8/wx/iconloc.h "wx/string.h" 1282051481 /usr/include/wx-2.8/wx/generic/icon.h "wx/bitmap.h" 1282051479 /usr/include/wx-2.8/wx/timer.h "wx/defs.h" "wx/object.h" "wx/longlong.h" "wx/event.h" "wx/stopwatch.h" "wx/window.h" "wx/msw/timer.h" "wx/motif/timer.h" "wx/gtk/timer.h" "wx/gtk1/timer.h" "wx/generic/timer.h" "wx/cocoa/timer.h" "wx/mac/timer.h" "wx/os2/timer.h" 1282051481 /usr/include/wx-2.8/wx/gtk/timer.h 1282051480 /usr/include/wx-2.8/wx/generic/timer.h 1282051480 /usr/include/wx-2.8/wx/settings.h "wx/colour.h" "wx/font.h" 1282051480 /usr/include/wx-2.8/wx/cmndata.h "wx/window.h" "wx/font.h" "wx/encinfo.h" "wx/colour.h" "wx/gdicmn.h" "wx/stream.h" 1282051480 /usr/include/wx-2.8/wx/encinfo.h "wx/string.h" 1282051480 /usr/include/wx-2.8/wx/dataobj.h "wx/defs.h" "wx/string.h" "wx/bitmap.h" "wx/list.h" "wx/arrstr.h" "wx/msw/ole/dataform.h" "wx/motif/dataform.h" "wx/gtk/dataform.h" "wx/gtk1/dataform.h" "wx/x11/dataform.h" "wx/mac/dataform.h" "wx/cocoa/dataform.h" "wx/os2/dataform.h" "wx/msw/ole/dataobj.h" "wx/motif/dataobj.h" "wx/x11/dataobj.h" "wx/gtk/dataobj.h" "wx/gtk1/dataobj.h" "wx/mac/dataobj.h" "wx/cocoa/dataobj.h" "wx/os2/dataobj.h" "wx/msw/ole/dataobj2.h" "wx/gtk/dataobj2.h" "wx/gtk1/dataobj2.h" "wx/x11/dataobj2.h" "wx/motif/dataobj2.h" "wx/mac/dataobj2.h" "wx/cocoa/dataobj2.h" "wx/os2/dataobj2.h" 1282051481 /usr/include/wx-2.8/wx/gtk/dataform.h 1282051481 /usr/include/wx-2.8/wx/gtk/dataobj.h 1282051481 /usr/include/wx-2.8/wx/gtk/dataobj2.h 1282051480 /usr/include/wx-2.8/wx/ctrlsub.h "wx/defs.h" "wx/control.h" 1282051480 /usr/include/wx-2.8/wx/bmpbuttn.h "wx/defs.h" "wx/bitmap.h" "wx/button.h" "wx/univ/bmpbuttn.h" "wx/msw/bmpbuttn.h" "wx/motif/bmpbuttn.h" "wx/gtk/bmpbuttn.h" "wx/gtk1/bmpbuttn.h" "wx/mac/bmpbuttn.h" "wx/cocoa/bmpbuttn.h" "wx/os2/bmpbuttn.h" 1282051481 /usr/include/wx-2.8/wx/gtk/bmpbuttn.h 1282051480 /usr/include/wx-2.8/wx/checkbox.h "wx/defs.h" "wx/control.h" "wx/univ/checkbox.h" "wx/msw/checkbox.h" "wx/motif/checkbox.h" "wx/gtk/checkbox.h" "wx/gtk1/checkbox.h" "wx/mac/checkbox.h" "wx/cocoa/checkbox.h" "wx/os2/checkbox.h" "wx/palmos/checkbox.h" 1282051481 /usr/include/wx-2.8/wx/gtk/checkbox.h 1282051480 /usr/include/wx-2.8/wx/checklst.h "wx/listbox.h" "wx/univ/checklst.h" "wx/msw/wince/checklst.h" "wx/msw/checklst.h" "wx/motif/checklst.h" "wx/gtk/checklst.h" "wx/gtk1/checklst.h" "wx/mac/checklst.h" "wx/cocoa/checklst.h" "wx/os2/checklst.h" 1282051480 /usr/include/wx-2.8/wx/listbox.h "wx/defs.h" "wx/ctrlsub.h" "wx/univ/listbox.h" "wx/msw/listbox.h" "wx/motif/listbox.h" "wx/gtk/listbox.h" "wx/gtk1/listbox.h" "wx/mac/listbox.h" "wx/os2/listbox.h" "wx/cocoa/listbox.h" 1282051481 /usr/include/wx-2.8/wx/gtk/listbox.h 1282051481 /usr/include/wx-2.8/wx/gtk/checklst.h 1282051480 /usr/include/wx-2.8/wx/choice.h "wx/defs.h" "wx/ctrlsub.h" "wx/univ/choice.h" "wx/msw/wince/choicece.h" "wx/msw/choice.h" "wx/motif/choice.h" "wx/gtk/choice.h" "wx/gtk1/choice.h" "wx/mac/choice.h" "wx/cocoa/choice.h" "wx/os2/choice.h" 1282051481 /usr/include/wx-2.8/wx/gtk/choice.h 1282051480 /usr/include/wx-2.8/wx/scrolbar.h "wx/defs.h" "wx/control.h" "wx/univ/scrolbar.h" "wx/msw/scrolbar.h" "wx/motif/scrolbar.h" "wx/gtk/scrolbar.h" "wx/gtk1/scrolbar.h" "wx/mac/scrolbar.h" "wx/cocoa/scrolbar.h" "wx/os2/scrolbar.h" 1282051481 /usr/include/wx-2.8/wx/gtk/scrolbar.h "wx/defs.h" 1282051480 /usr/include/wx-2.8/wx/stattext.h "wx/defs.h" "wx/control.h" "wx/univ/stattext.h" "wx/msw/stattext.h" "wx/motif/stattext.h" "wx/gtk/stattext.h" "wx/gtk1/stattext.h" "wx/mac/stattext.h" "wx/cocoa/stattext.h" "wx/os2/stattext.h" "wx/palmos/stattext.h" 1282051481 /usr/include/wx-2.8/wx/gtk/stattext.h 1282051480 /usr/include/wx-2.8/wx/statbmp.h "wx/defs.h" "wx/control.h" "wx/bitmap.h" "wx/icon.h" "wx/univ/statbmp.h" "wx/msw/statbmp.h" "wx/motif/statbmp.h" "wx/gtk/statbmp.h" "wx/gtk1/statbmp.h" "wx/mac/statbmp.h" "wx/cocoa/statbmp.h" "wx/os2/statbmp.h" 1282051481 /usr/include/wx-2.8/wx/gtk/statbmp.h "wx/icon.h" 1282051480 /usr/include/wx-2.8/wx/statbox.h "wx/defs.h" "wx/control.h" "wx/univ/statbox.h" "wx/msw/statbox.h" "wx/motif/statbox.h" "wx/gtk/statbox.h" "wx/gtk1/statbox.h" "wx/mac/statbox.h" "wx/cocoa/statbox.h" "wx/os2/statbox.h" 1282051481 /usr/include/wx-2.8/wx/gtk/statbox.h 1282051480 /usr/include/wx-2.8/wx/radiobox.h "wx/ctrlsub.h" "wx/dynarray.h" "wx/univ/radiobox.h" "wx/msw/radiobox.h" "wx/motif/radiobox.h" "wx/gtk/radiobox.h" "wx/gtk1/radiobox.h" "wx/mac/radiobox.h" "wx/cocoa/radiobox.h" "wx/os2/radiobox.h" "wx/palmos/radiobox.h" 1282051481 /usr/include/wx-2.8/wx/gtk/radiobox.h "wx/bitmap.h" "wx/list.h" 1282051480 /usr/include/wx-2.8/wx/radiobut.h "wx/defs.h" "wx/control.h" "wx/univ/radiobut.h" "wx/msw/radiobut.h" "wx/motif/radiobut.h" "wx/gtk/radiobut.h" "wx/gtk1/radiobut.h" "wx/mac/radiobut.h" "wx/cocoa/radiobut.h" "wx/os2/radiobut.h" "wx/palmos/radiobut.h" 1282051481 /usr/include/wx-2.8/wx/gtk/radiobut.h 1282051480 /usr/include/wx-2.8/wx/slider.h "wx/defs.h" "wx/control.h" "wx/univ/slider.h" "wx/msw/slider95.h" "wx/motif/slider.h" "wx/gtk/slider.h" "wx/gtk1/slider.h" "wx/mac/slider.h" "wx/cocoa/slider.h" "wx/os2/slider.h" "wx/palmos/slider.h" 1282051481 /usr/include/wx-2.8/wx/gtk/slider.h 1282051480 /usr/include/wx-2.8/wx/gauge.h "wx/defs.h" "wx/control.h" "wx/univ/gauge.h" "wx/msw/gauge95.h" "wx/motif/gauge.h" "wx/gtk/gauge.h" "wx/gtk1/gauge.h" "wx/mac/gauge.h" "wx/cocoa/gauge.h" "wx/os2/gauge.h" 1282051481 /usr/include/wx-2.8/wx/gtk/gauge.h 1282051480 /usr/include/wx-2.8/wx/scrolwin.h "wx/panel.h" "wx/gtk/scrolwin.h" "wx/gtk1/scrolwin.h" 1282051481 /usr/include/wx-2.8/wx/gtk/scrolwin.h 1282051480 /usr/include/wx-2.8/wx/dirdlg.h "wx/dialog.h" "wx/generic/dirdlgg.h" "wx/generic/dirdlgg.h" "wx/generic/dirdlgg.h" "wx/msw/dirdlg.h" "wx/gtk/dirdlg.h" "wx/generic/dirdlgg.h" "wx/mac/dirdlg.h" "wx/cocoa/dirdlg.h" "wx/generic/dirdlgg.h" 1282051481 /usr/include/wx-2.8/wx/generic/dirdlgg.h "wx/dialog.h" 1282051481 /usr/include/wx-2.8/wx/gtk/dirdlg.h "wx/generic/dirdlgg.h" 1282051480 /usr/include/wx-2.8/wx/toolbar.h "wx/defs.h" "wx/tbarbase.h" "wx/univ/toolbar.h" "wx/palmos/toolbar.h" "wx/msw/tbar95.h" "wx/msw/wince/tbarwce.h" "wx/motif/toolbar.h" "wx/gtk/tbargtk.h" "wx/gtk1/tbargtk.h" "wx/mac/toolbar.h" "wx/cocoa/toolbar.h" "wx/os2/toolbar.h" 1282051481 /usr/include/wx-2.8/wx/tbarbase.h "wx/defs.h" "wx/bitmap.h" "wx/list.h" "wx/control.h" 1282051481 /usr/include/wx-2.8/wx/gtk/tbargtk.h 1282051480 /usr/include/wx-2.8/wx/combobox.h "wx/defs.h" "wx/textctrl.h" "wx/ctrlsub.h" "wx/univ/combobox.h" "wx/msw/combobox.h" "wx/motif/combobox.h" "wx/gtk/combobox.h" "wx/gtk1/combobox.h" "wx/mac/combobox.h" "wx/cocoa/combobox.h" "wx/os2/combobox.h" 1282051481 /usr/include/wx-2.8/wx/gtk/combobox.h 1282051480 /usr/include/wx-2.8/wx/layout.h "wx/object.h" 1282051480 /usr/include/wx-2.8/wx/mdi.h "wx/defs.h" "wx/generic/mdig.h" "wx/msw/mdi.h" "wx/motif/mdi.h" "wx/gtk/mdi.h" "wx/gtk1/mdi.h" "wx/mac/mdi.h" "wx/cocoa/mdi.h" "wx/generic/mdig.h" 1282051481 /usr/include/wx-2.8/wx/gtk/mdi.h "wx/frame.h" 1282051480 /usr/include/wx-2.8/wx/choicdlg.h "wx/generic/choicdgg.h" 1282051480 /usr/include/wx-2.8/wx/generic/choicdgg.h "wx/dynarray.h" "wx/dialog.h" 1282051480 /usr/include/wx-2.8/wx/textdlg.h "wx/generic/textdlgg.h" "wx/numdlg.h" 1282051480 /usr/include/wx-2.8/wx/generic/textdlgg.h "wx/defs.h" "wx/dialog.h" "wx/valtext.h" 1282051480 /usr/include/wx-2.8/wx/valtext.h "wx/defs.h" "wx/textctrl.h" "wx/validate.h" 1282051480 /usr/include/wx-2.8/wx/numdlg.h "wx/defs.h" "wx/generic/numdlgg.h" 1282051480 /usr/include/wx-2.8/wx/generic/numdlgg.h "wx/defs.h" "wx/dialog.h" 1282051480 /usr/include/wx-2.8/wx/filedlg.h "wx/defs.h" "wx/dialog.h" "wx/arrstr.h" "wx/generic/filedlgg.h" "wx/msw/filedlg.h" "wx/motif/filedlg.h" "wx/gtk/filedlg.h" "wx/generic/filedlgg.h" "wx/gtk1/filedlg.h" "wx/mac/filedlg.h" "wx/cocoa/filedlg.h" "wx/os2/filedlg.h" 1282051480 /usr/include/wx-2.8/wx/generic/filedlgg.h "wx/listctrl.h" "wx/datetime.h" "wx/filefn.h" "wx/filedlg.h" 1282051480 /usr/include/wx-2.8/wx/listctrl.h "wx/defs.h" "wx/listbase.h" "wx/msw/listctrl.h" "wx/mac/carbon/listctrl.h" "wx/generic/listctrl.h" 1282051480 /usr/include/wx-2.8/wx/listbase.h "wx/colour.h" "wx/font.h" "wx/gdicmn.h" "wx/event.h" 1282051481 /usr/include/wx-2.8/wx/generic/listctrl.h "wx/textctrl.h" 1282051481 /usr/include/wx-2.8/wx/gtk/filedlg.h "wx/generic/filedlgg.h" 1390885782 /usr/include/opencv//cv.h "opencv2/core/core_c.h" "opencv2/core/core.hpp" "opencv2/imgproc/imgproc_c.h" "opencv2/imgproc/imgproc.hpp" "opencv2/video/tracking.hpp" "opencv2/features2d/features2d.hpp" "opencv2/flann/flann.hpp" "opencv2/calib3d/calib3d.hpp" "opencv2/objdetect/objdetect.hpp" "opencv2/legacy/compat.hpp" "opencv2/core/internal.hpp" 1263954937 /usr/include/opencv//cxcore.h "ipl.h" "ipl/ipl.h" "cxtypes.h" "cxerror.h" "cvver.h" "cxcore.hpp" 1263954937 /usr/include/opencv//cxtypes.h 1263954937 /usr/include/opencv//cxerror.h 1263954937 /usr/include/opencv//cvver.h 1263954937 /usr/include/opencv//cxcore.hpp "cxmisc.h" "cxoperations.hpp" "cxmat.hpp" "cxflann.h" 1263954937 /usr/include/opencv//cvtypes.h 1263954937 /usr/include/opencv//cv.hpp 1263954937 /usr/include/opencv//cvcompat.h 1390885782 /usr/include/opencv//highgui.h "opencv2/core/core_c.h" "opencv2/core/core.hpp" "opencv2/highgui/highgui_c.h" "opencv2/highgui/highgui.hpp" 1229034385 /home/abarry/programs/ActiveStereo/CaptureThread.h "cv.h" "highgui.h" "IndividualPixels.h" 1227770328 /home/abarry/programs/ActiveStereo/IndividualPixels.h "cv.h" "highgui.h" 1229032440 source:/home/abarry/programs/ActiveStereo/CaptureThread.cpp "CaptureThread.h" 1237439017 /home/abarry/programs/ActiveStereo/ScanThread.h "cv.h" "highgui.h" "IndividualPixels.h" "SetHorz.h" 1237440837 source:/home/abarry/programs/ActiveStereo/ScanThread.cpp "ScanThread.h" 1282051479 /usr/include/wx-2.8/wx/ffile.h "wx/defs.h" "wx/string.h" "wx/filefn.h" "wx/convauto.h" 1282051479 /usr/include/wx-2.8/wx/convauto.h "wx/strconv.h" 1282051479 /usr/include/wx-2.8/wx/arrimpl.cpp 1229932258 /usr/local/include/wx-2.8/wx/app.h "wx/event.h" "wx/build.h" "wx/init.h" "wx/intl.h" "wx/palmos/app.h" "wx/msw/app.h" "wx/motif/app.h" "wx/mgl/app.h" "wx/dfb/app.h" "wx/gtk/app.h" "wx/gtk1/app.h" "wx/x11/app.h" "wx/mac/app.h" "wx/cocoa/app.h" "wx/os2/app.h" "wx/univ/theme.h" 1229932258 /usr/local/include/wx-2.8/wx/event.h "wx/defs.h" "wx/cpp.h" "wx/object.h" "wx/clntdata.h" "wx/gdicmn.h" "wx/cursor.h" "wx/thread.h" "wx/dynarray.h" 1229932258 /usr/local/include/wx-2.8/wx/defs.h "wx/platform.h" "wx/features.h" "wx/version.h" "wx/dlimpexp.h" "wx/debug.h" "wx/msw/winundef.h" 1229932259 /usr/local/include/wx-2.8/wx/platform.h "wx/mac/carbon/config_xcode.h" "wx/setup.h" "wx/chkconf.h" "wx/msw/wince/libraries.h" "wx/msw/libraries.h" "wx/msw/gccpriv.h" 1229932258 /usr/local/lib/wx/include/gtk2-unicode-release-static-2.8/wx/setup.h 1229932258 /usr/local/include/wx-2.8/wx/chkconf.h "wx/palmos/chkconf.h" "wx/msw/wince/chkconf.h" "wx/msw/chkconf.h" "wx/mac/chkconf.h" "wx/os2/chkconf.h" "wx/mgl/chkconf.h" "wx/dfb/chkconf.h" "wx/motif/chkconf.h" "wx/x11/chkconf.h" "wx/univ/chkconf.h" 1229932258 /usr/local/include/wx-2.8/wx/features.h 1229932259 /usr/local/include/wx-2.8/wx/version.h "wx/cpp.h" 1229932258 /usr/local/include/wx-2.8/wx/cpp.h 1229932258 /usr/local/include/wx-2.8/wx/dlimpexp.h 1229932258 /usr/local/include/wx-2.8/wx/debug.h "wx/wxchar.h" 1229932259 /usr/local/include/wx-2.8/wx/wxchar.h "wx/platform.h" "wx/dlimpexp.h" 1229932259 /usr/local/include/wx-2.8/wx/object.h "wx/memory.h" "wx/xti.h" "wx/msw/msvcrt.h" 1229932259 /usr/local/include/wx-2.8/wx/memory.h "wx/defs.h" "wx/string.h" "wx/msgout.h" 1229932259 /usr/local/include/wx-2.8/wx/string.h "wx/defs.h" "wx/wxchar.h" "wx/buffer.h" "wx/strconv.h" "wx/beforestd.h" "wx/afterstd.h" "wx/arrstr.h" "wx/iosfwrap.h" 1229932258 /usr/local/include/wx-2.8/wx/buffer.h "wx/wxchar.h" 1229932259 /usr/local/include/wx-2.8/wx/strconv.h "wx/defs.h" "wx/wxchar.h" "wx/buffer.h" "typeinfo.h" "wx/fontenc.h" 1229932258 /usr/local/include/wx-2.8/wx/fontenc.h 1229932258 /usr/local/include/wx-2.8/wx/beforestd.h 1229932258 /usr/local/include/wx-2.8/wx/afterstd.h "wx/msw/winundef.h" 1229932258 /usr/local/include/wx-2.8/wx/arrstr.h "wx/defs.h" "wx/string.h" "wx/dynarray.h" 1229932258 /usr/local/include/wx-2.8/wx/dynarray.h "wx/defs.h" "wx/beforestd.h" "wx/afterstd.h" 1229932259 /usr/local/include/wx-2.8/wx/iosfwrap.h "wx/msw/winundef.h" 1229932259 /usr/local/include/wx-2.8/wx/msgout.h "wx/defs.h" "wx/wxchar.h" 1229932259 /usr/local/include/wx-2.8/wx/xti.h "wx/defs.h" "wx/memory.h" "wx/flags.h" "wx/string.h" "wx/arrstr.h" "wx/hashmap.h" "wx/log.h" "wx/intl.h" "wx/dynarray.h" 1229932259 /usr/local/include/wx-2.8/wx/hashmap.h "wx/string.h" 1229932259 /usr/local/include/wx-2.8/wx/log.h "wx/defs.h" "wx/string.h" "wx/arrstr.h" "wx/dynarray.h" "wx/iosfwrap.h" "wx/generic/logg.h" "wx/cocoa/log.h" 1229932259 /usr/local/include/wx-2.8/wx/generic/logg.h 1229932259 /usr/local/include/wx-2.8/wx/intl.h "wx/defs.h" "wx/string.h" "wx/fontenc.h" 1229932258 /usr/local/include/wx-2.8/wx/clntdata.h "wx/defs.h" "wx/string.h" "wx/hashmap.h" "wx/vector.h" 1229932259 /usr/local/include/wx-2.8/wx/vector.h "wx/defs.h" 1229932259 /usr/local/include/wx-2.8/wx/gdicmn.h "wx/defs.h" "wx/list.h" "wx/string.h" "wx/fontenc.h" "wx/hashmap.h" "wx/math.h" 1229932259 /usr/local/include/wx-2.8/wx/list.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/beforestd.h" "wx/afterstd.h" 1229932259 /usr/local/include/wx-2.8/wx/math.h "wx/defs.h" 1229932259 /usr/local/include/wx-2.8/wx/cursor.h "wx/defs.h" "wx/palmos/cursor.h" "wx/msw/cursor.h" "wx/motif/cursor.h" "wx/gtk/cursor.h" "wx/gtk1/cursor.h" "wx/x11/cursor.h" "wx/mgl/cursor.h" "wx/dfb/cursor.h" "wx/mac/cursor.h" "wx/cocoa/cursor.h" "wx/os2/cursor.h" "wx/utils.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/cursor.h "wx/object.h" 1229932259 /usr/local/include/wx-2.8/wx/utils.h "wx/object.h" "wx/list.h" "wx/filefn.h" "wx/gdicmn.h" "wx/longlong.h" "wx/platinfo.h" 1229932258 /usr/local/include/wx-2.8/wx/filefn.h "wx/list.h" "wx/arrstr.h" "wx/msw/wince/time.h" "wx/msw/private.h" "wx/os2/private.h" 1229932259 /usr/local/include/wx-2.8/wx/longlong.h "wx/defs.h" "wx/string.h" "wx/iosfwrap.h" 1229932259 /usr/local/include/wx-2.8/wx/platinfo.h "wx/string.h" 1229932259 /usr/local/include/wx-2.8/wx/thread.h "wx/defs.h" 1229932258 /usr/local/include/wx-2.8/wx/build.h "wx/version.h" 1229932259 /usr/local/include/wx-2.8/wx/init.h "wx/defs.h" "wx/wxchar.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/app.h 1229932260 /usr/local/include/wx-2.8/wx/sizer.h "wx/defs.h" "wx/window.h" 1229932260 /usr/local/include/wx-2.8/wx/window.h "wx/event.h" "wx/list.h" "wx/cursor.h" "wx/font.h" "wx/colour.h" "wx/region.h" "wx/utils.h" "wx/intl.h" "wx/validate.h" "wx/palette.h" "wx/accel.h" "wx/access.h" "wx/palmos/window.h" "wx/msw/window.h" "wx/motif/window.h" "wx/gtk/window.h" "wx/gtk1/window.h" "wx/x11/window.h" "wx/mgl/window.h" "wx/dfb/window.h" "wx/mac/window.h" "wx/cocoa/window.h" "wx/os2/window.h" "wx/univ/window.h" 1229932260 /usr/local/include/wx-2.8/wx/font.h "wx/defs.h" "wx/fontenc.h" "wx/gdiobj.h" "wx/palmos/font.h" "wx/msw/font.h" "wx/motif/font.h" "wx/gtk/font.h" "wx/gtk1/font.h" "wx/x11/font.h" "wx/mgl/font.h" "wx/dfb/font.h" "wx/mac/font.h" "wx/cocoa/font.h" "wx/os2/font.h" 1229932260 /usr/local/include/wx-2.8/wx/gdiobj.h "wx/object.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/font.h 1229932260 /usr/local/include/wx-2.8/wx/colour.h "wx/defs.h" "wx/gdiobj.h" "wx/variant.h" "wx/generic/colour.h" "wx/msw/colour.h" "wx/motif/colour.h" "wx/gtk/colour.h" "wx/gtk1/colour.h" "wx/generic/colour.h" "wx/generic/colour.h" "wx/x11/colour.h" "wx/mac/colour.h" "wx/cocoa/colour.h" "wx/os2/colour.h" 1229932259 /usr/local/include/wx-2.8/wx/variant.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/arrstr.h" "wx/list.h" "wx/cpp.h" "wx/datetime.h" "wx/db.h" "wx/iosfwrap.h" 1229932258 /usr/local/include/wx-2.8/wx/datetime.h "wx/defs.h" "wx/msw/wince/time.h" "wx/longlong.h" "wx/dynarray.h" 1229932259 /usr/local/include/wx-2.8/wx/db.h "wx/defs.h" "wx/string.h" "wx/msw/wrapwin.h" "sql.h" "sqlext.h" "odbcinst.h" "wx/msw/wrapwin.h" "wx/isql.h" "wx/isqlext.h" "wx/object.h" 1229932259 /usr/local/include/wx-2.8/wx/isql.h 1229932259 /usr/local/include/wx-2.8/wx/isqlext.h "wx/isql.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/colour.h 1229932260 /usr/local/include/wx-2.8/wx/region.h "wx/gdiobj.h" "wx/gdicmn.h" "wx/palmos/region.h" "wx/msw/region.h" "wx/gtk/region.h" "wx/gtk1/region.h" "wx/x11/region.h" "wx/mgl/region.h" "wx/dfb/region.h" "wx/mac/region.h" "wx/cocoa/region.h" "wx/os2/region.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/region.h 1229932260 /usr/local/include/wx-2.8/wx/validate.h "wx/defs.h" "wx/event.h" 1229932260 /usr/local/include/wx-2.8/wx/palette.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/palmos/palette.h" "wx/msw/palette.h" "wx/motif/palette.h" "wx/generic/paletteg.h" "wx/x11/palette.h" "wx/mgl/palette.h" "wx/mac/palette.h" "wx/os2/palette.h" 1229932261 /usr/local/include/wx-2.8/wx/generic/paletteg.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/gdicmn.h" 1229932260 /usr/local/include/wx-2.8/wx/accel.h "wx/defs.h" "wx/object.h" "wx/generic/accel.h" "wx/msw/accel.h" "wx/motif/accel.h" "wx/gtk/accel.h" "wx/gtk1/accel.h" "wx/mac/accel.h" "wx/generic/accel.h" "wx/os2/accel.h" 1229932259 /usr/local/include/wx-2.8/wx/generic/accel.h 1229932261 /usr/local/include/wx-2.8/wx/gtk/accel.h "wx/generic/accel.h" 1229932260 /usr/local/include/wx-2.8/wx/access.h "wx/defs.h" "wx/variant.h" "wx/msw/ole/access.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/window.h "wx/dynarray.h" 1229932260 /usr/local/include/wx-2.8/wx/menu.h "wx/defs.h" "wx/list.h" "wx/window.h" "wx/menuitem.h" "wx/univ/menu.h" "wx/palmos/menu.h" "wx/msw/menu.h" "wx/motif/menu.h" "wx/gtk/menu.h" "wx/gtk1/menu.h" "wx/mac/menu.h" "wx/cocoa/menu.h" "wx/os2/menu.h" 1229932260 /usr/local/include/wx-2.8/wx/menuitem.h "wx/defs.h" "wx/object.h" "wx/univ/menuitem.h" "wx/palmos/menuitem.h" "wx/msw/menuitem.h" "wx/motif/menuitem.h" "wx/gtk/menuitem.h" "wx/gtk1/menuitem.h" "wx/mac/menuitem.h" "wx/cocoa/menuitem.h" "wx/os2/menuitem.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/menuitem.h "wx/bitmap.h" 1229932260 /usr/local/include/wx-2.8/wx/bitmap.h "wx/string.h" "wx/gdicmn.h" "wx/colour.h" "wx/variant.h" "wx/palmos/bitmap.h" "wx/msw/bitmap.h" "wx/x11/bitmap.h" "wx/gtk/bitmap.h" "wx/gtk1/bitmap.h" "wx/x11/bitmap.h" "wx/mgl/bitmap.h" "wx/dfb/bitmap.h" "wx/mac/bitmap.h" "wx/cocoa/bitmap.h" "wx/os2/bitmap.h" "wx/generic/mask.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/bitmap.h 1229932261 /usr/local/include/wx-2.8/wx/gtk/menu.h 1229932260 /usr/local/include/wx-2.8/wx/textctrl.h "wx/defs.h" "wx/control.h" "wx/dynarray.h" "wx/gdicmn.h" "wx/ioswrap.h" "wx/x11/textctrl.h" "wx/univ/textctrl.h" "wx/msw/wince/textctrlce.h" "wx/msw/textctrl.h" "wx/motif/textctrl.h" "wx/gtk/textctrl.h" "wx/gtk1/textctrl.h" "wx/mac/textctrl.h" "wx/cocoa/textctrl.h" "wx/os2/textctrl.h" 1229932259 /usr/local/include/wx-2.8/wx/control.h "wx/defs.h" "wx/window.h" "wx/univ/control.h" "wx/palmos/control.h" "wx/msw/control.h" "wx/motif/control.h" "wx/gtk/control.h" "wx/gtk1/control.h" "wx/mac/control.h" "wx/cocoa/control.h" "wx/os2/control.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/control.h 1229932259 /usr/local/include/wx-2.8/wx/ioswrap.h "wx/msw/winundef.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/textctrl.h 1229932260 /usr/local/include/wx-2.8/wx/spinctrl.h "wx/defs.h" "wx/spinbutt.h" "wx/generic/spinctlg.h" "wx/msw/spinctrl.h" "wx/os2/spinctrl.h" "wx/gtk/spinctrl.h" "wx/gtk1/spinctrl.h" "wx/generic/spinctlg.h" "wx/mac/spinctrl.h" "wx/generic/spinctlg.h" 1229932260 /usr/local/include/wx-2.8/wx/spinbutt.h "wx/defs.h" "wx/control.h" "wx/event.h" "wx/univ/spinbutt.h" "wx/msw/spinbutt.h" "wx/motif/spinbutt.h" "wx/gtk/spinbutt.h" "wx/gtk1/spinbutt.h" "wx/mac/spinbutt.h" "wx/cocoa/spinbutt.h" "wx/os2/spinbutt.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/spinbutt.h 1229932259 /usr/local/include/wx-2.8/wx/generic/spinctlg.h "wx/textctrl.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/spinctrl.h 1229932260 /usr/local/include/wx-2.8/wx/panel.h "wx/generic/panelg.h" 1229932259 /usr/local/include/wx-2.8/wx/generic/panelg.h "wx/window.h" "wx/containr.h" 1229932258 /usr/local/include/wx-2.8/wx/containr.h 1229932259 /usr/local/include/wx-2.8/wx/button.h "wx/defs.h" "wx/control.h" "wx/univ/button.h" "wx/msw/button.h" "wx/motif/button.h" "wx/gtk/button.h" "wx/gtk1/button.h" "wx/mac/button.h" "wx/cocoa/button.h" "wx/os2/button.h" "wx/palmos/button.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/button.h 1229932259 /usr/local/include/wx-2.8/wx/frame.h "wx/toplevel.h" "wx/univ/frame.h" "wx/palmos/frame.h" "wx/msw/frame.h" "wx/gtk/frame.h" "wx/gtk1/frame.h" "wx/motif/frame.h" "wx/mac/frame.h" "wx/cocoa/frame.h" "wx/os2/frame.h" 1229932260 /usr/local/include/wx-2.8/wx/toplevel.h "wx/window.h" "wx/iconbndl.h" "wx/palmos/toplevel.h" "wx/msw/toplevel.h" "wx/gtk/toplevel.h" "wx/gtk1/toplevel.h" "wx/x11/toplevel.h" "wx/mgl/toplevel.h" "wx/dfb/toplevel.h" "wx/mac/toplevel.h" "wx/cocoa/toplevel.h" "wx/os2/toplevel.h" "wx/motif/toplevel.h" "wx/univ/toplevel.h" 1229932260 /usr/local/include/wx-2.8/wx/iconbndl.h "wx/dynarray.h" "wx/gdicmn.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/toplevel.h 1229932261 /usr/local/include/wx-2.8/wx/gtk/frame.h 1229932260 /usr/local/include/wx-2.8/wx/statusbr.h "wx/defs.h" "wx/window.h" "wx/list.h" "wx/dynarray.h" "wx/univ/statusbr.h" "wx/palmos/statusbr.h" "wx/msw/statbr95.h" "wx/generic/statusbr.h" "wx/mac/statusbr.h" "wx/generic/statusbr.h" 1229932261 /usr/local/include/wx-2.8/wx/generic/statusbr.h "wx/defs.h" "wx/pen.h" "wx/arrstr.h" 1229932260 /usr/local/include/wx-2.8/wx/pen.h "wx/defs.h" "wx/palmos/pen.h" "wx/msw/pen.h" "wx/x11/pen.h" "wx/gtk/pen.h" "wx/gtk1/pen.h" "wx/mgl/pen.h" "wx/dfb/pen.h" "wx/mac/pen.h" "wx/cocoa/pen.h" "wx/os2/pen.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/pen.h "wx/gdiobj.h" "wx/gdicmn.h" 1229932260 /usr/local/include/wx-2.8/wx/numdlg.h "wx/defs.h" "wx/generic/numdlgg.h" 1229932259 /usr/local/include/wx-2.8/wx/generic/numdlgg.h "wx/defs.h" "wx/dialog.h" 1229932259 /usr/local/include/wx-2.8/wx/dialog.h "wx/defs.h" "wx/containr.h" "wx/toplevel.h" "wx/univ/dialog.h" "wx/palmos/dialog.h" "wx/msw/dialog.h" "wx/motif/dialog.h" "wx/gtk/dialog.h" "wx/gtk1/dialog.h" "wx/mac/dialog.h" "wx/cocoa/dialog.h" "wx/os2/dialog.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/dialog.h "wx/defs.h" 1229932258 /usr/local/include/wx-2.8/wx/ffile.h "wx/defs.h" "wx/string.h" "wx/filefn.h" "wx/convauto.h" 1229932258 /usr/local/include/wx-2.8/wx/convauto.h "wx/strconv.h" 1229932259 /usr/local/include/wx-2.8/wx/wx.h "wx/defs.h" "wx/object.h" "wx/dynarray.h" "wx/list.h" "wx/hash.h" "wx/string.h" "wx/hashmap.h" "wx/arrstr.h" "wx/intl.h" "wx/log.h" "wx/event.h" "wx/app.h" "wx/utils.h" "wx/stream.h" "wx/memory.h" "wx/math.h" "wx/stopwatch.h" "wx/module.h" "wx/window.h" "wx/containr.h" "wx/panel.h" "wx/toplevel.h" "wx/frame.h" "wx/gdicmn.h" "wx/gdiobj.h" "wx/region.h" "wx/bitmap.h" "wx/image.h" "wx/colour.h" "wx/font.h" "wx/dc.h" "wx/dcclient.h" "wx/dcmemory.h" "wx/dcprint.h" "wx/dcscreen.h" "wx/button.h" "wx/menuitem.h" "wx/menu.h" "wx/pen.h" "wx/brush.h" "wx/palette.h" "wx/icon.h" "wx/cursor.h" "wx/dialog.h" "wx/timer.h" "wx/settings.h" "wx/msgdlg.h" "wx/cmndata.h" "wx/dataobj.h" "wx/control.h" "wx/ctrlsub.h" "wx/bmpbuttn.h" "wx/checkbox.h" "wx/checklst.h" "wx/choice.h" "wx/scrolbar.h" "wx/stattext.h" "wx/statbmp.h" "wx/statbox.h" "wx/listbox.h" "wx/radiobox.h" "wx/radiobut.h" "wx/textctrl.h" "wx/slider.h" "wx/gauge.h" "wx/scrolwin.h" "wx/dirdlg.h" "wx/toolbar.h" "wx/combobox.h" "wx/layout.h" "wx/sizer.h" "wx/mdi.h" "wx/statusbr.h" "wx/choicdlg.h" "wx/textdlg.h" "wx/filedlg.h" "wx/validate.h" "wx/valtext.h" 1229932258 /usr/local/include/wx-2.8/wx/hash.h "wx/defs.h" "wx/object.h" "wx/list.h" "wx/dynarray.h" 1229932259 /usr/local/include/wx-2.8/wx/stream.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/filefn.h" 1229932259 /usr/local/include/wx-2.8/wx/stopwatch.h "wx/defs.h" "wx/longlong.h" 1229932259 /usr/local/include/wx-2.8/wx/module.h "wx/object.h" "wx/list.h" "wx/dynarray.h" 1229932260 /usr/local/include/wx-2.8/wx/image.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/gdicmn.h" "wx/hashmap.h" "wx/stream.h" "wx/variant.h" "wx/imagbmp.h" "wx/imagpng.h" "wx/imaggif.h" "wx/imagpcx.h" "wx/imagjpeg.h" "wx/imagtga.h" "wx/imagtiff.h" "wx/imagpnm.h" "wx/imagxpm.h" "wx/imagiff.h" 1229932260 /usr/local/include/wx-2.8/wx/imagbmp.h "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imagpng.h "wx/defs.h" "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imaggif.h "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imagpcx.h "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imagjpeg.h "wx/defs.h" "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imagtga.h "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imagtiff.h "wx/defs.h" "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imagpnm.h "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imagxpm.h "wx/image.h" 1229932260 /usr/local/include/wx-2.8/wx/imagiff.h "wx/image.h" 1229932259 /usr/local/include/wx-2.8/wx/dc.h "wx/object.h" "wx/intl.h" "wx/cursor.h" "wx/font.h" "wx/colour.h" "wx/bitmap.h" "wx/brush.h" "wx/pen.h" "wx/palette.h" "wx/list.h" "wx/dynarray.h" "wx/math.h" "wx/palmos/dc.h" "wx/msw/dc.h" "wx/motif/dc.h" "wx/gtk/dc.h" "wx/gtk1/dc.h" "wx/x11/dc.h" "wx/mgl/dc.h" "wx/dfb/dc.h" "wx/mac/dc.h" "wx/cocoa/dc.h" "wx/os2/dc.h" "wx/dcgraph.h" 1229932259 /usr/local/include/wx-2.8/wx/brush.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/palmos/brush.h" "wx/msw/brush.h" "wx/x11/brush.h" "wx/gtk/brush.h" "wx/gtk1/brush.h" "wx/mgl/brush.h" "wx/dfb/brush.h" "wx/mac/brush.h" "wx/cocoa/brush.h" "wx/os2/brush.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/brush.h 1229932261 /usr/local/include/wx-2.8/wx/gtk/dc.h 1229932259 /usr/local/include/wx-2.8/wx/dcgraph.h "wx/geometry.h" "wx/dynarray.h" "wx/graphics.h" 1229932260 /usr/local/include/wx-2.8/wx/geometry.h "wx/defs.h" "wx/utils.h" "wx/gdicmn.h" "wx/math.h" 1229932260 /usr/local/include/wx-2.8/wx/graphics.h "wx/defs.h" "wx/geometry.h" "wx/dynarray.h" 1229932259 /usr/local/include/wx-2.8/wx/dcclient.h "wx/defs.h" "wx/palmos/dcclient.h" "wx/msw/dcclient.h" "wx/motif/dcclient.h" "wx/gtk/dcclient.h" "wx/gtk1/dcclient.h" "wx/x11/dcclient.h" "wx/mgl/dcclient.h" "wx/dfb/dcclient.h" "wx/mac/dcclient.h" "wx/cocoa/dcclient.h" "wx/os2/dcclient.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/dcclient.h "wx/dc.h" "wx/region.h" 1229932259 /usr/local/include/wx-2.8/wx/dcmemory.h "wx/bitmap.h" "wx/palmos/dcmemory.h" "wx/msw/dcmemory.h" "wx/motif/dcmemory.h" "wx/gtk/dcmemory.h" "wx/gtk1/dcmemory.h" "wx/x11/dcmemory.h" "wx/mgl/dcmemory.h" "wx/dfb/dcmemory.h" "wx/mac/dcmemory.h" "wx/cocoa/dcmemory.h" "wx/os2/dcmemory.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/dcmemory.h "wx/dcclient.h" 1229932259 /usr/local/include/wx-2.8/wx/dcprint.h "wx/defs.h" "wx/palmos/dcprint.h" "wx/msw/dcprint.h" "wx/os2/dcprint.h" "wx/mac/dcprint.h" 1229932259 /usr/local/include/wx-2.8/wx/dcscreen.h "wx/defs.h" "wx/palmos/dcscreen.h" "wx/msw/dcscreen.h" "wx/motif/dcscreen.h" "wx/gtk/dcscreen.h" "wx/gtk1/dcscreen.h" "wx/x11/dcscreen.h" "wx/mgl/dcscreen.h" "wx/dfb/dcscreen.h" "wx/mac/dcscreen.h" "wx/cocoa/dcscreen.h" "wx/os2/dcscreen.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/dcscreen.h "wx/dcclient.h" 1229932260 /usr/local/include/wx-2.8/wx/icon.h "wx/iconloc.h" "wx/generic/icon.h" "wx/msw/icon.h" "wx/motif/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/mac/icon.h" "wx/cocoa/icon.h" "wx/os2/icon.h" "wx/variant.h" 1229932259 /usr/local/include/wx-2.8/wx/iconloc.h "wx/string.h" 1229932261 /usr/local/include/wx-2.8/wx/generic/icon.h "wx/bitmap.h" 1229932259 /usr/local/include/wx-2.8/wx/timer.h "wx/defs.h" "wx/object.h" "wx/longlong.h" "wx/event.h" "wx/stopwatch.h" "wx/window.h" "wx/msw/timer.h" "wx/motif/timer.h" "wx/gtk/timer.h" "wx/gtk1/timer.h" "wx/generic/timer.h" "wx/cocoa/timer.h" "wx/mac/timer.h" "wx/os2/timer.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/timer.h 1229932260 /usr/local/include/wx-2.8/wx/generic/timer.h 1229932260 /usr/local/include/wx-2.8/wx/settings.h "wx/colour.h" "wx/font.h" 1229932260 /usr/local/include/wx-2.8/wx/msgdlg.h "wx/defs.h" "wx/generic/msgdlgg.h" "wx/generic/msgdlgg.h" "wx/palmos/msgdlg.h" "wx/msw/msgdlg.h" "wx/motif/msgdlg.h" "wx/gtk/msgdlg.h" "wx/generic/msgdlgg.h" "wx/generic/msgdlgg.h" "wx/mac/msgdlg.h" "wx/cocoa/msgdlg.h" "wx/os2/msgdlg.h" 1229932259 /usr/local/include/wx-2.8/wx/generic/msgdlgg.h "wx/defs.h" "wx/dialog.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/msgdlg.h "wx/defs.h" "wx/dialog.h" 1229932259 /usr/local/include/wx-2.8/wx/cmndata.h "wx/window.h" "wx/font.h" "wx/encinfo.h" "wx/colour.h" "wx/gdicmn.h" "wx/stream.h" 1229932259 /usr/local/include/wx-2.8/wx/encinfo.h "wx/string.h" 1229932260 /usr/local/include/wx-2.8/wx/dataobj.h "wx/defs.h" "wx/string.h" "wx/bitmap.h" "wx/list.h" "wx/arrstr.h" "wx/msw/ole/dataform.h" "wx/motif/dataform.h" "wx/gtk/dataform.h" "wx/gtk1/dataform.h" "wx/x11/dataform.h" "wx/mac/dataform.h" "wx/cocoa/dataform.h" "wx/os2/dataform.h" "wx/msw/ole/dataobj.h" "wx/motif/dataobj.h" "wx/x11/dataobj.h" "wx/gtk/dataobj.h" "wx/gtk1/dataobj.h" "wx/mac/dataobj.h" "wx/cocoa/dataobj.h" "wx/os2/dataobj.h" "wx/msw/ole/dataobj2.h" "wx/gtk/dataobj2.h" "wx/gtk1/dataobj2.h" "wx/x11/dataobj2.h" "wx/motif/dataobj2.h" "wx/mac/dataobj2.h" "wx/cocoa/dataobj2.h" "wx/os2/dataobj2.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/dataform.h 1229932261 /usr/local/include/wx-2.8/wx/gtk/dataobj.h 1229932261 /usr/local/include/wx-2.8/wx/gtk/dataobj2.h 1229932259 /usr/local/include/wx-2.8/wx/ctrlsub.h "wx/defs.h" "wx/control.h" 1229932259 /usr/local/include/wx-2.8/wx/bmpbuttn.h "wx/defs.h" "wx/bitmap.h" "wx/button.h" "wx/univ/bmpbuttn.h" "wx/msw/bmpbuttn.h" "wx/motif/bmpbuttn.h" "wx/gtk/bmpbuttn.h" "wx/gtk1/bmpbuttn.h" "wx/mac/bmpbuttn.h" "wx/cocoa/bmpbuttn.h" "wx/os2/bmpbuttn.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/bmpbuttn.h 1229932259 /usr/local/include/wx-2.8/wx/checkbox.h "wx/defs.h" "wx/control.h" "wx/univ/checkbox.h" "wx/msw/checkbox.h" "wx/motif/checkbox.h" "wx/gtk/checkbox.h" "wx/gtk1/checkbox.h" "wx/mac/checkbox.h" "wx/cocoa/checkbox.h" "wx/os2/checkbox.h" "wx/palmos/checkbox.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/checkbox.h 1229932259 /usr/local/include/wx-2.8/wx/checklst.h "wx/listbox.h" "wx/univ/checklst.h" "wx/msw/wince/checklst.h" "wx/msw/checklst.h" "wx/motif/checklst.h" "wx/gtk/checklst.h" "wx/gtk1/checklst.h" "wx/mac/checklst.h" "wx/cocoa/checklst.h" "wx/os2/checklst.h" 1229932260 /usr/local/include/wx-2.8/wx/listbox.h "wx/defs.h" "wx/ctrlsub.h" "wx/univ/listbox.h" "wx/msw/listbox.h" "wx/motif/listbox.h" "wx/gtk/listbox.h" "wx/gtk1/listbox.h" "wx/mac/listbox.h" "wx/os2/listbox.h" "wx/cocoa/listbox.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/listbox.h 1229932261 /usr/local/include/wx-2.8/wx/gtk/checklst.h 1229932259 /usr/local/include/wx-2.8/wx/choice.h "wx/defs.h" "wx/ctrlsub.h" "wx/univ/choice.h" "wx/msw/wince/choicece.h" "wx/msw/choice.h" "wx/motif/choice.h" "wx/gtk/choice.h" "wx/gtk1/choice.h" "wx/mac/choice.h" "wx/cocoa/choice.h" "wx/os2/choice.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/choice.h 1229932260 /usr/local/include/wx-2.8/wx/scrolbar.h "wx/defs.h" "wx/control.h" "wx/univ/scrolbar.h" "wx/msw/scrolbar.h" "wx/motif/scrolbar.h" "wx/gtk/scrolbar.h" "wx/gtk1/scrolbar.h" "wx/mac/scrolbar.h" "wx/cocoa/scrolbar.h" "wx/os2/scrolbar.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/scrolbar.h "wx/defs.h" 1229932260 /usr/local/include/wx-2.8/wx/stattext.h "wx/defs.h" "wx/control.h" "wx/univ/stattext.h" "wx/msw/stattext.h" "wx/motif/stattext.h" "wx/gtk/stattext.h" "wx/gtk1/stattext.h" "wx/mac/stattext.h" "wx/cocoa/stattext.h" "wx/os2/stattext.h" "wx/palmos/stattext.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/stattext.h 1229932260 /usr/local/include/wx-2.8/wx/statbmp.h "wx/defs.h" "wx/control.h" "wx/bitmap.h" "wx/icon.h" "wx/univ/statbmp.h" "wx/msw/statbmp.h" "wx/motif/statbmp.h" "wx/gtk/statbmp.h" "wx/gtk1/statbmp.h" "wx/mac/statbmp.h" "wx/cocoa/statbmp.h" "wx/os2/statbmp.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/statbmp.h "wx/icon.h" 1229932260 /usr/local/include/wx-2.8/wx/statbox.h "wx/defs.h" "wx/control.h" "wx/univ/statbox.h" "wx/msw/statbox.h" "wx/motif/statbox.h" "wx/gtk/statbox.h" "wx/gtk1/statbox.h" "wx/mac/statbox.h" "wx/cocoa/statbox.h" "wx/os2/statbox.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/statbox.h 1229932260 /usr/local/include/wx-2.8/wx/radiobox.h "wx/ctrlsub.h" "wx/dynarray.h" "wx/univ/radiobox.h" "wx/msw/radiobox.h" "wx/motif/radiobox.h" "wx/gtk/radiobox.h" "wx/gtk1/radiobox.h" "wx/mac/radiobox.h" "wx/cocoa/radiobox.h" "wx/os2/radiobox.h" "wx/palmos/radiobox.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/radiobox.h "wx/bitmap.h" "wx/list.h" 1229932260 /usr/local/include/wx-2.8/wx/radiobut.h "wx/defs.h" "wx/control.h" "wx/univ/radiobut.h" "wx/msw/radiobut.h" "wx/motif/radiobut.h" "wx/gtk/radiobut.h" "wx/gtk1/radiobut.h" "wx/mac/radiobut.h" "wx/cocoa/radiobut.h" "wx/os2/radiobut.h" "wx/palmos/radiobut.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/radiobut.h 1229932260 /usr/local/include/wx-2.8/wx/slider.h "wx/defs.h" "wx/control.h" "wx/univ/slider.h" "wx/msw/slider95.h" "wx/motif/slider.h" "wx/gtk/slider.h" "wx/gtk1/slider.h" "wx/mac/slider.h" "wx/cocoa/slider.h" "wx/os2/slider.h" "wx/palmos/slider.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/slider.h 1229932259 /usr/local/include/wx-2.8/wx/gauge.h "wx/defs.h" "wx/control.h" "wx/univ/gauge.h" "wx/msw/gauge95.h" "wx/motif/gauge.h" "wx/gtk/gauge.h" "wx/gtk1/gauge.h" "wx/mac/gauge.h" "wx/cocoa/gauge.h" "wx/os2/gauge.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/gauge.h 1229932260 /usr/local/include/wx-2.8/wx/scrolwin.h "wx/panel.h" "wx/gtk/scrolwin.h" "wx/gtk1/scrolwin.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/scrolwin.h 1229932259 /usr/local/include/wx-2.8/wx/dirdlg.h "wx/dialog.h" "wx/generic/dirdlgg.h" "wx/generic/dirdlgg.h" "wx/generic/dirdlgg.h" "wx/msw/dirdlg.h" "wx/gtk/dirdlg.h" "wx/generic/dirdlgg.h" "wx/mac/dirdlg.h" "wx/cocoa/dirdlg.h" "wx/generic/dirdlgg.h" 1229932261 /usr/local/include/wx-2.8/wx/generic/dirdlgg.h "wx/dialog.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/dirdlg.h "wx/generic/dirdlgg.h" 1229932260 /usr/local/include/wx-2.8/wx/toolbar.h "wx/defs.h" "wx/tbarbase.h" "wx/univ/toolbar.h" "wx/palmos/toolbar.h" "wx/msw/tbar95.h" "wx/msw/wince/tbarwce.h" "wx/motif/toolbar.h" "wx/gtk/tbargtk.h" "wx/gtk1/tbargtk.h" "wx/mac/toolbar.h" "wx/cocoa/toolbar.h" "wx/os2/toolbar.h" 1229932260 /usr/local/include/wx-2.8/wx/tbarbase.h "wx/defs.h" "wx/bitmap.h" "wx/list.h" "wx/control.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/tbargtk.h 1229932259 /usr/local/include/wx-2.8/wx/combobox.h "wx/defs.h" "wx/textctrl.h" "wx/ctrlsub.h" "wx/univ/combobox.h" "wx/msw/combobox.h" "wx/motif/combobox.h" "wx/gtk/combobox.h" "wx/gtk1/combobox.h" "wx/mac/combobox.h" "wx/cocoa/combobox.h" "wx/os2/combobox.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/combobox.h 1229932260 /usr/local/include/wx-2.8/wx/layout.h "wx/object.h" 1229932260 /usr/local/include/wx-2.8/wx/mdi.h "wx/defs.h" "wx/generic/mdig.h" "wx/msw/mdi.h" "wx/motif/mdi.h" "wx/gtk/mdi.h" "wx/gtk1/mdi.h" "wx/mac/mdi.h" "wx/cocoa/mdi.h" "wx/generic/mdig.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/mdi.h "wx/frame.h" 1229932259 /usr/local/include/wx-2.8/wx/choicdlg.h "wx/generic/choicdgg.h" 1229932259 /usr/local/include/wx-2.8/wx/generic/choicdgg.h "wx/dynarray.h" "wx/dialog.h" 1229932260 /usr/local/include/wx-2.8/wx/textdlg.h "wx/generic/textdlgg.h" "wx/numdlg.h" 1229932260 /usr/local/include/wx-2.8/wx/generic/textdlgg.h "wx/defs.h" "wx/dialog.h" "wx/valtext.h" 1229932260 /usr/local/include/wx-2.8/wx/valtext.h "wx/defs.h" "wx/textctrl.h" "wx/validate.h" 1229932259 /usr/local/include/wx-2.8/wx/filedlg.h "wx/defs.h" "wx/dialog.h" "wx/arrstr.h" "wx/generic/filedlgg.h" "wx/msw/filedlg.h" "wx/motif/filedlg.h" "wx/gtk/filedlg.h" "wx/generic/filedlgg.h" "wx/gtk1/filedlg.h" "wx/mac/filedlg.h" "wx/cocoa/filedlg.h" "wx/os2/filedlg.h" 1229932259 /usr/local/include/wx-2.8/wx/generic/filedlgg.h "wx/listctrl.h" "wx/datetime.h" "wx/filefn.h" "wx/filedlg.h" 1229932260 /usr/local/include/wx-2.8/wx/listctrl.h "wx/defs.h" "wx/listbase.h" "wx/msw/listctrl.h" "wx/mac/carbon/listctrl.h" "wx/generic/listctrl.h" 1229932260 /usr/local/include/wx-2.8/wx/listbase.h "wx/colour.h" "wx/font.h" "wx/gdicmn.h" "wx/event.h" 1229932261 /usr/local/include/wx-2.8/wx/generic/listctrl.h "wx/textctrl.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/filedlg.h "wx/generic/filedlgg.h" 1229932258 /usr/local/include/wx-2.8/wx/arrimpl.cpp 1228993622 source:/home/dbarry/Documents/cpp_projects/ScannerDan/ActiveStereoApp.cpp "ActiveStereoApp.h" "ActiveStereoMain.h" 1228993622 /home/dbarry/Documents/cpp_projects/ScannerDan/ActiveStereoApp.h 1255235164 /home/dbarry/Documents/cpp_projects/ScannerDan/ActiveStereoMain.h "SetConfig.h" "SetHorz.h" "cv.h" "highgui.h" "Cameras.h" "ScanThread.h" 1186124724 /home/dbarry/Documents/cpp_projects/ScannerDan/SetConfig.h 1255235164 /home/dbarry/Documents/cpp_projects/ScannerDan/SetHorz.h 1254860263 /home/dbarry/Documents/cpp_projects/ScannerDan/Cameras.h "cv.h" "highgui.h" "ScanThread.h" 1255654171 /home/dbarry/Documents/cpp_projects/ScannerDan/ScanThread.h "cv.h" "highgui.h" "IndividualPixels.h" "SetHorz.h" 1227784728 /home/dbarry/Documents/cpp_projects/ScannerDan/IndividualPixels.h "cv.h" "highgui.h" 1254860406 source:/home/dbarry/Documents/cpp_projects/ScannerDan/Cameras.cpp "Cameras.h" 1255653716 source:/home/dbarry/Documents/cpp_projects/ScannerDan/ScanThread.cpp "ScanThread.h" 1255235276 source:/home/dbarry/Documents/cpp_projects/ScannerDan/SetConfig.c "SetConfig.h" 1255235362 source:/home/dbarry/Documents/cpp_projects/ScannerDan/SetHorz.c "SetHorz.h" 1255653716 source:/home/dbarry/Documents/cpp_projects/ScannerDan/ActiveStereoMain.cpp "ActiveStereoMain.h" 1264304988 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ActiveStereoApp.cpp "ActiveStereoApp.h" "ActiveStereoMain.h" 1264306352 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ActiveStereoApp.h 1264523378 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ActiveStereoMain.h "SetConfig.h" "SetHorz.h" "cv.h" "highgui.h" "Cameras.h" "ScanThread.h" "camview.h" 1264306768 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/SetConfig.h 1264306874 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/SetHorz.h 1264306684 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/Cameras.h "cv.h" "highgui.h" "ScanThread.h" 1277879544 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ScanThread.h "cv.h" "highgui.h" "IndividualPixels.h" "PointCloud.h" "SetHorz.h" 1264306723 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/IndividualPixels.h "cv.h" "highgui.h" 1278290318 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ActiveStereoMain.cpp "ActiveStereoMain.h" 1277236648 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/Cameras.cpp "Cameras.h" 1278294249 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/ScanThread.cpp "ScanThread.h" 1277237171 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/SetConfig.c "SetConfig.h" 1264306310 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/SetHorz.c "SetHorz.h" 1264306730 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/PointCloud.h "PointCloudPoint.h" 1264306743 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/PointCloudPoint.h 1264306213 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/PointCloud.cpp "PointCloud.h" 1229932259 /usr/local/include/wx-2.8/wx/listimpl.cpp 1264306264 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/PointCloudPoint.cpp "PointCloudPoint.h" 1262063090 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ActiveStereoApp.cpp "ActiveStereoApp.h" "ActiveStereoMain.h" 1262063090 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ActiveStereoApp.h 1262159549 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ActiveStereoMain.h "SetConfig.h" "SetHorz.h" "cv.h" "highgui.h" "Cameras.h" "ScanThread.h" 1262063090 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/SetConfig.h 1262566031 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/SetHorz.h 1262124594 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/Cameras.h "cv.h" "highgui.h" "ScanThread.h" 1262566031 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ScanThread.h "cv.h" "highgui.h" "IndividualPixels.h" "PointCloud.h" "SetHorz.h" 1262063090 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/IndividualPixels.h "cv.h" "highgui.h" 1262485137 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/PointCloud.h "PointCloudPoint.h" 1262159549 /home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/PointCloudPoint.h 1262558314 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ActiveStereoMain.cpp "ActiveStereoMain.h" 1262558314 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/PointCloud.cpp "PointCloud.h" 1282051479 /usr/include/wx-2.8/wx/listimpl.cpp 1262558314 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/PointCloudPoint.cpp "PointCloudPoint.h" 1262565131 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/ScanThread.cpp "ScanThread.h" 1262063090 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/SetConfig.c "SetConfig.h" 1262558314 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/SetHorz.c "SetHorz.h" 1262124617 source:/home/dbarry/Documents/cpp_projects/activestereo/activestereo/ScannerDan/Cameras.cpp "Cameras.h" 1264399026 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/camview.h "cv.h" "highgui.h" 1221504196 /usr/include/opencv//cvaux.h "cvaux.hpp" "cvvidsurv.hpp" 1221504196 /usr/include/opencv//cvaux.hpp 1221504196 /usr/include/opencv//cvvidsurv.hpp 1229932259 /usr/local/include/wx-2.8/wx/wxprec.h "wx/defs.h" "wx/wxchar.h" "wx/msw/wrapwin.h" "wx/msw/wrapcctl.h" "wx/msw/wrapcdlg.h" "wx/msw/private.h" "wx/msw/missing.h" "wx/os2/private.h" "wx/mgl/private.h" "wx/wx.h" 1264399038 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerDan/camview.cpp "highgui.h" "cv.h" "camview.h" 1229932260 /usr/local/include/wx-2.8/wx/statline.h "wx/defs.h" "wx/control.h" "wx/univ/statline.h" "wx/msw/statline.h" "wx/gtk/statline.h" "wx/gtk1/statline.h" "wx/os2/statline.h" "wx/mac/statline.h" "wx/cocoa/statline.h" "wx/generic/statline.h" 1229932261 /usr/local/include/wx-2.8/wx/gtk/statline.h "wx/defs.h" 1229932258 /usr/local/include/wx-2.8/wx/dir.h "wx/longlong.h" "wx/string.h" 1282051481 /usr/include/wx-2.8/wx/statline.h "wx/defs.h" "wx/control.h" "wx/univ/statline.h" "wx/msw/statline.h" "wx/gtk/statline.h" "wx/gtk1/statline.h" "wx/os2/statline.h" "wx/mac/statline.h" "wx/cocoa/statline.h" "wx/generic/statline.h" 1282051481 /usr/include/wx-2.8/wx/gtk/statline.h "wx/defs.h" 1282051479 /usr/include/wx-2.8/wx/dir.h "wx/longlong.h" "wx/string.h" 1263954937 /usr/include/opencv//cxmisc.h 1263954937 /usr/include/opencv//cxoperations.hpp "windows.h" 1263954937 /usr/include/opencv//cxmat.hpp 1263954937 /usr/include/opencv//cxflann.h 1263954937 /usr/include/opencv//highgui.hpp 1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ActiveStereoApp.cpp "ActiveStereoApp.h" "ActiveStereoMain.h" 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ActiveStereoApp.h 1284839403 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ActiveStereoMain.h "cv.h" "highgui.h" "Cameras.h" "ScanThread.h" "ScanStatus.h" "camview.h" 1280185251 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/SetConfig.h 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/SetHorz.h 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/Cameras.h "cv.h" "highgui.h" "ScanThread.h" "CaptureThread.h" "ScanStatus.h" "DistanceToReferenceDialog.h" 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ScanThread.h "cv.h" "highgui.h" "IndividualPixels.h" "PointCloud.h" "CaptureThread.h" "ScanStatus.h" "SetHorz.h" 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/IndividualPixels.h "cv.h" "highgui.h" 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/PointCloud.h "PointCloudPoint.h" 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/PointCloudPoint.h 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/camview.h "cv.h" "highgui.h" 1284841903 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ActiveStereoMain.cpp "ActiveStereoMain.h" 1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/Cameras.cpp "Cameras.h" 1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/PointCloud.cpp "PointCloud.h" 1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/PointCloudPoint.cpp "PointCloudPoint.h" 1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ScanThread.cpp "ScanThread.h" 1280185350 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/SetConfig.c "SetConfig.h" 1280185251 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/SetHorz.c "SetHorz.h" 1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/camview.cpp "camview.h" "cv.h" "highgui.h" 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/CaptureThread.h "cv.h" "highgui.h" 1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/CaptureThread.cpp "CaptureThread.h" 1284838212 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ScanStatus.h 1284838212 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/ScanStatus.cpp "ScanStatus.h" 1284840310 /home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/DistanceToReferenceDialog.h "CaptureThread.h" 1284840311 source:/home/abarry/programs/ActiveStereo/svn/activestereo/ScannerPC/DistanceToReferenceDialog.cpp "DistanceToReferenceDialog.h" 1284309288 source:/home/abarry/makerscanner/ScannerPC/ActiveStereoApp.cpp "ActiveStereoApp.h" "ActiveStereoMain.h" 1284309288 /home/abarry/makerscanner/ScannerPC/ActiveStereoApp.h 1284321005 /home/abarry/makerscanner/ScannerPC/ActiveStereoMain.h "cv.h" "highgui.h" "Cameras.h" "ScanThread.h" "ScanStatus.h" "camview.h" 1284319758 /home/abarry/makerscanner/ScannerPC/Cameras.h "cv.h" "highgui.h" "ScanThread.h" "CaptureThread.h" "ScanStatus.h" "DistanceToReferenceDialog.h" 1284309288 /home/abarry/makerscanner/ScannerPC/ScanThread.h "cv.h" "highgui.h" "IndividualPixels.h" "PointCloud.h" "CaptureThread.h" "ScanStatus.h" "SetHorz.h" 1284309288 /home/abarry/makerscanner/ScannerPC/IndividualPixels.h "cv.h" "highgui.h" 1284309288 /home/abarry/makerscanner/ScannerPC/PointCloud.h "PointCloudPoint.h" 1284309288 /home/abarry/makerscanner/ScannerPC/PointCloudPoint.h 1284309288 /home/abarry/makerscanner/ScannerPC/CaptureThread.h "cv.h" "highgui.h" 1284309288 /home/abarry/makerscanner/ScannerPC/ScanStatus.h 1284309288 /home/abarry/makerscanner/ScannerPC/SetHorz.h 1284309288 /home/abarry/makerscanner/ScannerPC/DistanceToReferenceDialog.h "CaptureThread.h" 1284309288 /home/abarry/makerscanner/ScannerPC/camview.h "cv.h" "highgui.h" 1284322363 source:/home/abarry/makerscanner/ScannerPC/ActiveStereoMain.cpp "ActiveStereoMain.h" 1284322039 source:/home/abarry/makerscanner/ScannerPC/Cameras.cpp "Cameras.h" 1284316984 source:/home/abarry/makerscanner/ScannerPC/CaptureThread.cpp "CaptureThread.h" 1284309288 source:/home/abarry/makerscanner/ScannerPC/DistanceToReferenceDialog.cpp "DistanceToReferenceDialog.h" 1284309288 source:/home/abarry/makerscanner/ScannerPC/PointCloud.cpp "PointCloud.h" 1284309288 source:/home/abarry/makerscanner/ScannerPC/PointCloudPoint.cpp "PointCloudPoint.h" 1284309288 source:/home/abarry/makerscanner/ScannerPC/ScanStatus.cpp "ScanStatus.h" 1284322179 source:/home/abarry/makerscanner/ScannerPC/ScanThread.cpp "ScanThread.h" 1284309288 source:/home/abarry/makerscanner/ScannerPC/camview.cpp "camview.h" "cv.h" "highgui.h" 1282051479 /usr/include/wx-2.8/wx/config.h "wx/confbase.h" "wx/msw/regconf.h" "wx/msw/iniconf.h" "wx/palmos/prefconf.h" "wx/fileconf.h" 1282051479 /usr/include/wx-2.8/wx/confbase.h "wx/defs.h" "wx/string.h" "wx/string.h" 1282051479 /usr/include/wx-2.8/wx/fileconf.h "wx/defs.h" "wx/textfile.h" "wx/string.h" "wx/confbase.h" 1282051479 /usr/include/wx-2.8/wx/textfile.h "wx/defs.h" "wx/textbuf.h" "wx/file.h" 1282051479 /usr/include/wx-2.8/wx/textbuf.h "wx/defs.h" "wx/arrstr.h" "wx/convauto.h" "wx/string.h" "wx/dynarray.h" 1282051479 /usr/include/wx-2.8/wx/file.h "wx/defs.h" "wx/string.h" "wx/filefn.h" "wx/strconv.h" 1448222417 source:/home/abarry/programs/makerscanner/ActiveStereoApp.cpp "ActiveStereoApp.h" "ActiveStereoMain.h" 1386309819 /home/abarry/programs/makerscanner/ActiveStereoApp.h 1385999950 /usr/include/wx-3.0/wx/app.h "wx/event.h" "wx/eventfilter.h" "wx/build.h" "wx/cmdargs.h" "wx/init.h" "wx/intl.h" "wx/log.h" "wx/unix/app.h" "wx/msw/app.h" "wx/motif/app.h" "wx/dfb/app.h" "wx/gtk/app.h" "wx/gtk1/app.h" "wx/x11/app.h" "wx/osx/app.h" "wx/cocoa/app.h" "wx/os2/app.h" "wx/univ/theme.h" 1385999950 /usr/include/wx-3.0/wx/event.h "wx/defs.h" "wx/cpp.h" "wx/object.h" "wx/clntdata.h" "wx/gdicmn.h" "wx/cursor.h" "wx/mousestate.h" "wx/dynarray.h" "wx/thread.h" "wx/tracker.h" "wx/typeinfo.h" "wx/any.h" "wx/meta/convertible.h" "wx/meta/removeref.h" 1385999950 /usr/include/wx-3.0/wx/defs.h "wx/platform.h" "wx/version.h" "wx/dlimpexp.h" "wx/debug.h" "wx/windowid.h" "wx/msw/winundef.h" "wx/features.h" 1385999950 /usr/include/wx-3.0/wx/platform.h "wx/osx/config_xcode.h" "wx/android/config_android.h" "wx/compiler.h" "wx/setup.h" "wx/msw/wince/libraries.h" "wx/msw/libraries.h" "wx/msw/gccpriv.h" "wx/chkconf.h" 1385999950 /usr/include/wx-3.0/wx/compiler.h 1385999950 /usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0/wx/setup.h 1385999950 /usr/include/wx-3.0/wx/chkconf.h "wx/msw/wince/chkconf.h" "wx/msw/chkconf.h" "wx/gtk/chkconf.h" "wx/gtk/chkconf.h" "wx/cocoa/chkconf.h" "wx/osx/chkconf.h" "wx/os2/chkconf.h" "wx/dfb/chkconf.h" "wx/motif/chkconf.h" "wx/x11/chkconf.h" "wx/android/chkconf.h" "wx/unix/chkconf.h" "wx/univ/chkconf.h" 1385999951 /usr/include/wx-3.0/wx/gtk/chkconf.h 1385999950 /usr/include/wx-3.0/wx/unix/chkconf.h 1385999950 /usr/include/wx-3.0/wx/version.h "wx/cpp.h" 1385999950 /usr/include/wx-3.0/wx/cpp.h "wx/compiler.h" 1385999950 /usr/include/wx-3.0/wx/dlimpexp.h 1385999950 /usr/include/wx-3.0/wx/debug.h "wx/chartype.h" "wx/cpp.h" "wx/dlimpexp.h" 1385999950 /usr/include/wx-3.0/wx/chartype.h "wx/platform.h" 1385999951 /usr/include/wx-3.0/wx/windowid.h 1385999950 /usr/include/wx-3.0/wx/features.h 1385999950 /usr/include/wx-3.0/wx/object.h "wx/memory.h" "wx/xti.h" "wx/rtti.h" "wx/xti2.h" "wx/msw/msvcrt.h" 1385999950 /usr/include/wx-3.0/wx/memory.h "wx/defs.h" "wx/string.h" "wx/msgout.h" 1385999950 /usr/include/wx-3.0/wx/string.h "wx/defs.h" "wx/wxcrtbase.h" "wx/strvararg.h" "wx/buffer.h" "wx/strconv.h" "wx/stringimpl.h" "wx/stringops.h" "wx/unichar.h" "wx/tls.h" "wx/iosfwrap.h" "wx/crt.h" 1385999950 /usr/include/wx-3.0/wx/wxcrtbase.h "wx/chartype.h" 1385999950 /usr/include/wx-3.0/wx/strvararg.h "wx/platform.h" "wx/cpp.h" "wx/chartype.h" "wx/strconv.h" "wx/buffer.h" "wx/unichar.h" "wx/stringimpl.h" 1385999950 /usr/include/wx-3.0/wx/strconv.h "wx/defs.h" "wx/chartype.h" "wx/buffer.h" "typeinfo.h" "wx/fontenc.h" 1385999950 /usr/include/wx-3.0/wx/buffer.h "wx/chartype.h" "wx/wxcrtbase.h" 1385999950 /usr/include/wx-3.0/wx/typeinfo.h "wx/defs.h" 1385999950 /usr/include/wx-3.0/wx/fontenc.h 1385999950 /usr/include/wx-3.0/wx/unichar.h "wx/defs.h" "wx/chartype.h" "wx/stringimpl.h" 1385999950 /usr/include/wx-3.0/wx/stringimpl.h "wx/defs.h" "wx/chartype.h" "wx/wxcrtbase.h" "wx/beforestd.h" "wx/afterstd.h" 1385999950 /usr/include/wx-3.0/wx/beforestd.h 1385999950 /usr/include/wx-3.0/wx/afterstd.h "wx/msw/winundef.h" 1385999950 /usr/include/wx-3.0/wx/stringops.h "wx/chartype.h" "wx/stringimpl.h" "wx/unichar.h" "wx/buffer.h" 1385999950 /usr/include/wx-3.0/wx/tls.h "wx/defs.h" "wx/msw/tls.h" "wx/os2/tls.h" "wx/unix/tls.h" 1385999950 /usr/include/wx-3.0/wx/unix/tls.h 1385999950 /usr/include/wx-3.0/wx/iosfwrap.h "wx/msw/winundef.h" 1385999950 /usr/include/wx-3.0/wx/crt.h "wx/defs.h" "wx/chartype.h" "wx/wxcrt.h" "wx/wxcrtvararg.h" 1385999950 /usr/include/wx-3.0/wx/wxcrt.h "wx/wxcrtbase.h" "wx/string.h" 1385999950 /usr/include/wx-3.0/wx/wxcrtvararg.h "wx/wxcrt.h" "wx/strvararg.h" "wx/string.h" 1385999950 /usr/include/wx-3.0/wx/msgout.h "wx/defs.h" "wx/chartype.h" "wx/strvararg.h" 1385999950 /usr/include/wx-3.0/wx/xti.h "wx/defs.h" "wx/xtitypes.h" "wx/xtihandler.h" 1385999950 /usr/include/wx-3.0/wx/xtitypes.h "wx/defs.h" "wx/string.h" "wx/hashmap.h" "wx/arrstr.h" "wx/flags.h" "wx/intl.h" "wx/log.h" 1385999950 /usr/include/wx-3.0/wx/hashmap.h "wx/string.h" "wx/wxcrt.h" 1385999950 /usr/include/wx-3.0/wx/arrstr.h "wx/defs.h" "wx/string.h" "wx/dynarray.h" "wx/beforestd.h" "wx/afterstd.h" 1385999950 /usr/include/wx-3.0/wx/dynarray.h "wx/defs.h" "wx/beforestd.h" "wx/afterstd.h" 1385999950 /usr/include/wx-3.0/wx/flags.h 1385999950 /usr/include/wx-3.0/wx/intl.h "wx/defs.h" "wx/string.h" "wx/translation.h" "wx/fontenc.h" "wx/language.h" 1385999950 /usr/include/wx-3.0/wx/translation.h "wx/defs.h" "wx/string.h" "wx/buffer.h" "wx/language.h" "wx/hashmap.h" "wx/strconv.h" "wx/scopedptr.h" 1385999950 /usr/include/wx-3.0/wx/language.h "wx/defs.h" 1385999950 /usr/include/wx-3.0/wx/scopedptr.h "wx/defs.h" "wx/checkeddelete.h" 1385999950 /usr/include/wx-3.0/wx/checkeddelete.h "wx/cpp.h" 1385999950 /usr/include/wx-3.0/wx/log.h "wx/defs.h" "wx/cpp.h" "wx/string.h" "wx/strvararg.h" "wx/arrstr.h" "wx/dynarray.h" "wx/hashmap.h" "wx/thread.h" "wx/iosfwrap.h" "wx/generic/logg.h" "wx/cocoa/log.h" 1385999950 /usr/include/wx-3.0/wx/thread.h "wx/defs.h" 1385999951 /usr/include/wx-3.0/wx/generic/logg.h 1385999950 /usr/include/wx-3.0/wx/xtihandler.h "wx/defs.h" "wx/xti.h" 1385999950 /usr/include/wx-3.0/wx/rtti.h "wx/memory.h" "wx/flags.h" 1385999950 /usr/include/wx-3.0/wx/xti2.h "wx/xtiprop.h" "wx/xtictor.h" 1385999950 /usr/include/wx-3.0/wx/xtiprop.h "wx/defs.h" "wx/xti.h" "wx/any.h" 1385999950 /usr/include/wx-3.0/wx/any.h "wx/defs.h" "wx/string.h" "wx/meta/if.h" "wx/typeinfo.h" "wx/list.h" "wx/datetime.h" "wx/variant.h" 1385999950 /usr/include/wx-3.0/wx/meta/if.h "wx/defs.h" 1385999950 /usr/include/wx-3.0/wx/list.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/vector.h" "wx/beforestd.h" "wx/afterstd.h" 1385999950 /usr/include/wx-3.0/wx/vector.h "wx/defs.h" "wx/scopeguard.h" "wx/meta/movable.h" "wx/meta/if.h" "wx/beforestd.h" "wx/afterstd.h" 1385999951 /usr/include/wx-3.0/wx/scopeguard.h "wx/defs.h" "wx/except.h" 1385999950 /usr/include/wx-3.0/wx/except.h "wx/defs.h" 1385999950 /usr/include/wx-3.0/wx/meta/movable.h "wx/meta/pod.h" "wx/string.h" 1385999950 /usr/include/wx-3.0/wx/meta/pod.h "wx/defs.h" 1385999950 /usr/include/wx-3.0/wx/datetime.h "wx/defs.h" "wx/msw/wince/time.h" "wx/longlong.h" "wx/anystr.h" "wx/dynarray.h" 1385999950 /usr/include/wx-3.0/wx/longlong.h "wx/defs.h" "wx/string.h" "wx/iosfwrap.h" "wx/strvararg.h" 1385999950 /usr/include/wx-3.0/wx/anystr.h "wx/string.h" 1385999950 /usr/include/wx-3.0/wx/variant.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/arrstr.h" "wx/list.h" "wx/cpp.h" "wx/longlong.h" "wx/datetime.h" "wx/iosfwrap.h" "wx/any.h" 1385999950 /usr/include/wx-3.0/wx/xtictor.h "wx/defs.h" "wx/xti.h" 1385999950 /usr/include/wx-3.0/wx/clntdata.h "wx/defs.h" "wx/string.h" "wx/hashmap.h" 1385999951 /usr/include/wx-3.0/wx/gdicmn.h "wx/defs.h" "wx/list.h" "wx/string.h" "wx/fontenc.h" "wx/hashmap.h" "wx/math.h" 1385999950 /usr/include/wx-3.0/wx/math.h "wx/defs.h" 1385999951 /usr/include/wx-3.0/wx/cursor.h "wx/defs.h" "wx/msw/cursor.h" "wx/motif/cursor.h" "wx/gtk/cursor.h" "wx/gtk1/cursor.h" "wx/x11/cursor.h" "wx/dfb/cursor.h" "wx/osx/cursor.h" "wx/cocoa/cursor.h" "wx/os2/cursor.h" "wx/utils.h" 1385999951 /usr/include/wx-3.0/wx/gtk/cursor.h "wx/gdiobj.h" "wx/gdicmn.h" 1385999951 /usr/include/wx-3.0/wx/gdiobj.h "wx/object.h" 1385999950 /usr/include/wx-3.0/wx/utils.h "wx/object.h" "wx/list.h" "wx/filefn.h" "wx/hashmap.h" "wx/versioninfo.h" "wx/meta/implicitconversion.h" "wx/gdicmn.h" "wx/mousestate.h" "wx/longlong.h" "wx/platinfo.h" 1385999950 /usr/include/wx-3.0/wx/filefn.h "wx/list.h" "wx/arrstr.h" "wx/msw/wince/time.h" "wx/msw/private.h" "wx/os2/private.h" 1385999950 /usr/include/wx-3.0/wx/versioninfo.h "wx/string.h" 1385999950 /usr/include/wx-3.0/wx/meta/implicitconversion.h "wx/defs.h" "wx/meta/if.h" 1385999950 /usr/include/wx-3.0/wx/mousestate.h "wx/gdicmn.h" "wx/kbdstate.h" 1385999950 /usr/include/wx-3.0/wx/kbdstate.h "wx/defs.h" 1385999950 /usr/include/wx-3.0/wx/platinfo.h "wx/string.h" 1385999950 /usr/include/wx-3.0/wx/tracker.h "wx/defs.h" 1385999950 /usr/include/wx-3.0/wx/meta/convertible.h 1385999950 /usr/include/wx-3.0/wx/meta/removeref.h 1385999950 /usr/include/wx-3.0/wx/eventfilter.h "wx/defs.h" 1385999950 /usr/include/wx-3.0/wx/build.h "wx/version.h" 1385999950 /usr/include/wx-3.0/wx/cmdargs.h "wx/arrstr.h" 1385999950 /usr/include/wx-3.0/wx/init.h "wx/defs.h" "wx/chartype.h" "wx/msw/init.h" 1385999950 /usr/include/wx-3.0/wx/unix/app.h 1385999951 /usr/include/wx-3.0/wx/gtk/app.h 1386309819 /home/abarry/programs/makerscanner/ActiveStereoMain.h "cv.h" "highgui.h" "Cameras.h" "ScanThread.h" "ScanStatus.h" "camview.h" 1385999951 /usr/include/wx-3.0/wx/sizer.h "wx/defs.h" "wx/window.h" 1385999951 /usr/include/wx-3.0/wx/window.h "wx/event.h" "wx/list.h" "wx/cursor.h" "wx/font.h" "wx/colour.h" "wx/region.h" "wx/utils.h" "wx/intl.h" "wx/validate.h" "wx/palette.h" "wx/accel.h" "wx/access.h" "wx/msw/window.h" "wx/motif/window.h" "wx/gtk/window.h" "wx/gtk1/window.h" "wx/x11/window.h" "wx/dfb/window.h" "wx/osx/window.h" "wx/cocoa/window.h" "wx/os2/window.h" "wx/univ/window.h" 1385999951 /usr/include/wx-3.0/wx/font.h "wx/defs.h" "wx/fontenc.h" "wx/gdiobj.h" "wx/gdicmn.h" "wx/msw/font.h" "wx/motif/font.h" "wx/gtk/font.h" "wx/gtk1/font.h" "wx/x11/font.h" "wx/dfb/font.h" "wx/osx/font.h" "wx/cocoa/font.h" "wx/os2/font.h" 1385999951 /usr/include/wx-3.0/wx/gtk/font.h 1385999951 /usr/include/wx-3.0/wx/colour.h "wx/defs.h" "wx/gdiobj.h" "wx/variant.h" "wx/msw/colour.h" "wx/motif/colour.h" "wx/gtk/colour.h" "wx/gtk1/colour.h" "wx/generic/colour.h" "wx/x11/colour.h" "wx/osx/colour.h" "wx/cocoa/colour.h" "wx/os2/colour.h" 1385999951 /usr/include/wx-3.0/wx/gtk/colour.h 1385999951 /usr/include/wx-3.0/wx/region.h "wx/gdiobj.h" "wx/gdicmn.h" "wx/msw/region.h" "wx/gtk/region.h" "wx/gtk1/region.h" "wx/x11/region.h" "wx/dfb/region.h" "wx/osx/region.h" "wx/cocoa/region.h" "wx/os2/region.h" 1385999951 /usr/include/wx-3.0/wx/gtk/region.h 1385999951 /usr/include/wx-3.0/wx/validate.h "wx/defs.h" "wx/event.h" 1385999951 /usr/include/wx-3.0/wx/palette.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/msw/palette.h" "wx/x11/palette.h" "wx/generic/paletteg.h" "wx/osx/palette.h" "wx/os2/palette.h" 1385999951 /usr/include/wx-3.0/wx/generic/paletteg.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/gdicmn.h" 1385999951 /usr/include/wx-3.0/wx/accel.h "wx/defs.h" "wx/object.h" "wx/generic/accel.h" "wx/msw/accel.h" "wx/motif/accel.h" "wx/gtk/accel.h" "wx/gtk1/accel.h" "wx/osx/accel.h" "wx/generic/accel.h" "wx/os2/accel.h" 1385999951 /usr/include/wx-3.0/wx/generic/accel.h 1385999951 /usr/include/wx-3.0/wx/gtk/accel.h "wx/generic/accel.h" 1385999951 /usr/include/wx-3.0/wx/access.h "wx/defs.h" "wx/variant.h" "wx/msw/ole/access.h" 1385999951 /usr/include/wx-3.0/wx/gtk/window.h "wx/dynarray.h" 1385999950 /usr/include/wx-3.0/wx/button.h "wx/defs.h" "wx/anybutton.h" "wx/univ/button.h" "wx/msw/button.h" "wx/motif/button.h" "wx/gtk/button.h" "wx/gtk1/button.h" "wx/osx/button.h" "wx/cocoa/button.h" "wx/os2/button.h" 1385999950 /usr/include/wx-3.0/wx/anybutton.h "wx/defs.h" "wx/bitmap.h" "wx/control.h" "wx/univ/anybutton.h" "wx/msw/anybutton.h" "wx/gtk/anybutton.h" "wx/osx/anybutton.h" 1385999951 /usr/include/wx-3.0/wx/bitmap.h "wx/string.h" "wx/gdicmn.h" "wx/colour.h" "wx/image.h" "wx/variant.h" "wx/msw/bitmap.h" "wx/x11/bitmap.h" "wx/gtk/bitmap.h" "wx/gtk1/bitmap.h" "wx/x11/bitmap.h" "wx/dfb/bitmap.h" "wx/osx/bitmap.h" "wx/cocoa/bitmap.h" "wx/os2/bitmap.h" "wx/generic/mask.h" 1385999951 /usr/include/wx-3.0/wx/image.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/gdicmn.h" "wx/hashmap.h" "wx/arrstr.h" "wx/stream.h" "wx/variant.h" "wx/imagbmp.h" "wx/imagpng.h" "wx/imaggif.h" "wx/imagpcx.h" "wx/imagjpeg.h" "wx/imagtga.h" "wx/imagtiff.h" "wx/imagpnm.h" "wx/imagxpm.h" "wx/imagiff.h" 1385999950 /usr/include/wx-3.0/wx/stream.h "wx/defs.h" "wx/object.h" "wx/string.h" "wx/filefn.h" 1385999951 /usr/include/wx-3.0/wx/imagbmp.h "wx/image.h" 1385999951 /usr/include/wx-3.0/wx/imagpng.h "wx/defs.h" "wx/image.h" "wx/versioninfo.h" 1385999951 /usr/include/wx-3.0/wx/imaggif.h "wx/image.h" 1385999951 /usr/include/wx-3.0/wx/imagpcx.h "wx/image.h" 1385999951 /usr/include/wx-3.0/wx/imagjpeg.h "wx/defs.h" "wx/image.h" "wx/versioninfo.h" 1385999951 /usr/include/wx-3.0/wx/imagtga.h "wx/image.h" 1385999951 /usr/include/wx-3.0/wx/imagtiff.h "wx/defs.h" "wx/image.h" "wx/versioninfo.h" 1385999951 /usr/include/wx-3.0/wx/imagpnm.h "wx/image.h" 1385999951 /usr/include/wx-3.0/wx/imagxpm.h "wx/image.h" 1385999951 /usr/include/wx-3.0/wx/imagiff.h "wx/image.h" 1385999951 /usr/include/wx-3.0/wx/gtk/bitmap.h 1385999951 /usr/include/wx-3.0/wx/control.h "wx/defs.h" "wx/window.h" "wx/univ/control.h" "wx/msw/control.h" "wx/motif/control.h" "wx/gtk/control.h" "wx/gtk1/control.h" "wx/osx/control.h" "wx/cocoa/control.h" "wx/os2/control.h" 1385999951 /usr/include/wx-3.0/wx/gtk/control.h 1385999951 /usr/include/wx-3.0/wx/gtk/anybutton.h 1385999951 /usr/include/wx-3.0/wx/gtk/button.h 1385999951 /usr/include/wx-3.0/wx/menu.h "wx/defs.h" "wx/list.h" "wx/window.h" "wx/menuitem.h" "wx/univ/menu.h" "wx/msw/menu.h" "wx/motif/menu.h" "wx/gtk/menu.h" "wx/gtk1/menu.h" "wx/osx/menu.h" "wx/cocoa/menu.h" "wx/os2/menu.h" 1385999951 /usr/include/wx-3.0/wx/menuitem.h "wx/defs.h" "wx/object.h" "wx/univ/menuitem.h" "wx/msw/menuitem.h" "wx/motif/menuitem.h" "wx/gtk/menuitem.h" "wx/gtk1/menuitem.h" "wx/osx/menuitem.h" "wx/cocoa/menuitem.h" "wx/os2/menuitem.h" 1385999951 /usr/include/wx-3.0/wx/gtk/menuitem.h "wx/bitmap.h" 1385999951 /usr/include/wx-3.0/wx/gtk/menu.h 1385999951 /usr/include/wx-3.0/wx/panel.h "wx/window.h" "wx/containr.h" "wx/univ/panel.h" "wx/msw/panel.h" "wx/generic/panelg.h" 1385999950 /usr/include/wx-3.0/wx/containr.h "wx/defs.h" "wx/event.h" 1385999951 /usr/include/wx-3.0/wx/generic/panelg.h "wx/bitmap.h" 1385999951 /usr/include/wx-3.0/wx/slider.h "wx/defs.h" "wx/control.h" "wx/univ/slider.h" "wx/msw/slider.h" "wx/motif/slider.h" "wx/gtk/slider.h" "wx/gtk1/slider.h" "wx/osx/slider.h" "wx/cocoa/slider.h" "wx/os2/slider.h" 1385999951 /usr/include/wx-3.0/wx/gtk/slider.h 1385999951 /usr/include/wx-3.0/wx/statusbr.h "wx/defs.h" "wx/control.h" "wx/list.h" "wx/dynarray.h" "wx/univ/statusbr.h" "wx/msw/statusbar.h" "wx/generic/statusbr.h" "wx/osx/statusbr.h" "wx/generic/statusbr.h" 1385999951 /usr/include/wx-3.0/wx/generic/statusbr.h "wx/defs.h" "wx/pen.h" "wx/arrstr.h" 1385999951 /usr/include/wx-3.0/wx/pen.h "wx/gdiobj.h" "wx/gdicmn.h" "wx/msw/pen.h" "wx/x11/pen.h" "wx/gtk/pen.h" "wx/gtk1/pen.h" "wx/dfb/pen.h" "wx/osx/pen.h" "wx/cocoa/pen.h" "wx/os2/pen.h" 1385999951 /usr/include/wx-3.0/wx/gtk/pen.h 1385999951 /usr/include/wx-3.0/wx/statline.h "wx/defs.h" "wx/control.h" "wx/univ/statline.h" "wx/msw/statline.h" "wx/gtk/statline.h" "wx/gtk1/statline.h" "wx/os2/statline.h" "wx/osx/statline.h" "wx/cocoa/statline.h" "wx/generic/statline.h" 1385999951 /usr/include/wx-3.0/wx/gtk/statline.h "wx/defs.h" 1385999951 /usr/include/wx-3.0/wx/frame.h "wx/toplevel.h" "wx/statusbr.h" "wx/univ/frame.h" "wx/msw/frame.h" "wx/gtk/frame.h" "wx/gtk1/frame.h" "wx/motif/frame.h" "wx/osx/frame.h" "wx/cocoa/frame.h" "wx/os2/frame.h" 1385999951 /usr/include/wx-3.0/wx/toplevel.h "wx/nonownedwnd.h" "wx/iconbndl.h" "wx/weakref.h" "wx/msw/toplevel.h" "wx/gtk/toplevel.h" "wx/gtk1/toplevel.h" "wx/x11/toplevel.h" "wx/dfb/toplevel.h" "wx/osx/toplevel.h" "wx/cocoa/toplevel.h" "wx/os2/toplevel.h" "wx/motif/toplevel.h" "wx/univ/toplevel.h" 1385999951 /usr/include/wx-3.0/wx/nonownedwnd.h "wx/window.h" "wx/dfb/nonownedwnd.h" "wx/gtk/nonownedwnd.h" "wx/osx/nonownedwnd.h" "wx/msw/nonownedwnd.h" 1385999951 /usr/include/wx-3.0/wx/gtk/nonownedwnd.h 1385999951 /usr/include/wx-3.0/wx/iconbndl.h "wx/gdiobj.h" "wx/gdicmn.h" "wx/icon.h" "wx/dynarray.h" 1385999951 /usr/include/wx-3.0/wx/icon.h "wx/iconloc.h" "wx/msw/icon.h" "wx/motif/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/generic/icon.h" "wx/osx/icon.h" "wx/generic/icon.h" "wx/cocoa/icon.h" "wx/os2/icon.h" "wx/variant.h" 1385999950 /usr/include/wx-3.0/wx/iconloc.h "wx/string.h" 1385999951 /usr/include/wx-3.0/wx/generic/icon.h "wx/bitmap.h" 1385999950 /usr/include/wx-3.0/wx/weakref.h "wx/tracker.h" "wx/meta/convertible.h" "wx/meta/int2type.h" 1385999950 /usr/include/wx-3.0/wx/meta/int2type.h 1385999951 /usr/include/wx-3.0/wx/gtk/toplevel.h 1385999951 /usr/include/wx-3.0/wx/gtk/frame.h 1385999951 /usr/include/wx-3.0/wx/stattext.h "wx/defs.h" "wx/control.h" "wx/univ/stattext.h" "wx/msw/stattext.h" "wx/motif/stattext.h" "wx/gtk/stattext.h" "wx/gtk1/stattext.h" "wx/osx/stattext.h" "wx/cocoa/stattext.h" "wx/os2/stattext.h" 1385999951 /usr/include/wx-3.0/wx/gtk/stattext.h 1385999951 /usr/include/wx-3.0/wx/textctrl.h "wx/defs.h" "wx/control.h" "wx/textentry.h" "wx/dynarray.h" "wx/gdicmn.h" "wx/ioswrap.h" "wx/x11/textctrl.h" "wx/univ/textctrl.h" "wx/msw/wince/textctrlce.h" "wx/msw/textctrl.h" "wx/motif/textctrl.h" "wx/gtk/textctrl.h" "wx/gtk1/textctrl.h" "wx/osx/textctrl.h" "wx/cocoa/textctrl.h" "wx/os2/textctrl.h" 1385999951 /usr/include/wx-3.0/wx/textentry.h "wx/filefn.h" "wx/gdicmn.h" "wx/gtk/textentry.h" "wx/osx/textentry.h" "wx/msw/textentry.h" "wx/motif/textentry.h" "wx/os2/textentry.h" 1385999951 /usr/include/wx-3.0/wx/gtk/textentry.h 1385999950 /usr/include/wx-3.0/wx/ioswrap.h "wx/beforestd.h" "wx/afterstd.h" "wx/msw/winundef.h" 1385999951 /usr/include/wx-3.0/wx/gtk/textctrl.h 1385999951 /usr/include/wx-3.0/wx/numdlg.h "wx/defs.h" "wx/generic/numdlgg.h" 1385999951 /usr/include/wx-3.0/wx/generic/numdlgg.h "wx/defs.h" "wx/dialog.h" 1385999951 /usr/include/wx-3.0/wx/dialog.h "wx/toplevel.h" "wx/containr.h" "wx/sharedptr.h" "wx/univ/dialog.h" "wx/msw/dialog.h" "wx/motif/dialog.h" "wx/gtk/dialog.h" "wx/gtk1/dialog.h" "wx/osx/dialog.h" "wx/cocoa/dialog.h" "wx/os2/dialog.h" 1385999950 /usr/include/wx-3.0/wx/sharedptr.h "wx/defs.h" "wx/atomic.h" 1385999950 /usr/include/wx-3.0/wx/atomic.h "wx/defs.h" "wx/msw/wrapwin.h" "libkern/OSAtomic.h" "wx/thread.h" 1385999951 /usr/include/wx-3.0/wx/gtk/dialog.h 1385999950 /usr/include/wx-3.0/wx/ffile.h "wx/defs.h" "wx/string.h" "wx/filefn.h" "wx/convauto.h" 1385999950 /usr/include/wx-3.0/wx/convauto.h "wx/strconv.h" "wx/fontenc.h" 1385999950 /usr/include/wx-3.0/wx/dir.h "wx/longlong.h" "wx/string.h" "wx/filefn.h" 1385999950 /usr/include/wx-3.0/wx/config.h "wx/confbase.h" "wx/msw/regconf.h" "wx/os2/iniconf.h" "wx/fileconf.h" 1385999950 /usr/include/wx-3.0/wx/confbase.h "wx/defs.h" "wx/string.h" "wx/object.h" "wx/base64.h" 1385999950 /usr/include/wx-3.0/wx/base64.h "wx/string.h" "wx/buffer.h" 1385999950 /usr/include/wx-3.0/wx/fileconf.h "wx/defs.h" "wx/textfile.h" "wx/string.h" "wx/confbase.h" "wx/filename.h" 1385999950 /usr/include/wx-3.0/wx/textfile.h "wx/defs.h" "wx/textbuf.h" "wx/file.h" 1385999950 /usr/include/wx-3.0/wx/textbuf.h "wx/defs.h" "wx/arrstr.h" "wx/convauto.h" "wx/string.h" "wx/dynarray.h" 1385999950 /usr/include/wx-3.0/wx/file.h "wx/defs.h" "wx/string.h" "wx/filefn.h" "wx/convauto.h" 1385999950 /usr/include/wx-3.0/wx/filename.h "wx/arrstr.h" "wx/filefn.h" "wx/datetime.h" "wx/intl.h" "wx/longlong.h" "wx/file.h" 1386309819 /home/abarry/programs/makerscanner/Cameras.h "cv.h" "highgui.h" "ScanThread.h" "CaptureThread.h" "ScanStatus.h" "DistanceToReferenceDialog.h" 1385999950 /usr/include/wx-3.0/wx/wx.h "wx/defs.h" "wx/object.h" "wx/dynarray.h" "wx/list.h" "wx/hash.h" "wx/string.h" "wx/hashmap.h" "wx/arrstr.h" "wx/intl.h" "wx/log.h" "wx/event.h" "wx/app.h" "wx/utils.h" "wx/stream.h" "wx/memory.h" "wx/math.h" "wx/stopwatch.h" "wx/timer.h" "wx/module.h" "wx/wxcrt.h" "wx/wxcrtvararg.h" "wx/window.h" "wx/containr.h" "wx/panel.h" "wx/toplevel.h" "wx/frame.h" "wx/gdicmn.h" "wx/gdiobj.h" "wx/region.h" "wx/bitmap.h" "wx/image.h" "wx/colour.h" "wx/font.h" "wx/dc.h" "wx/dcclient.h" "wx/dcmemory.h" "wx/dcprint.h" "wx/dcscreen.h" "wx/button.h" "wx/menuitem.h" "wx/menu.h" "wx/pen.h" "wx/brush.h" "wx/palette.h" "wx/icon.h" "wx/cursor.h" "wx/dialog.h" "wx/settings.h" "wx/msgdlg.h" "wx/dataobj.h" "wx/control.h" "wx/ctrlsub.h" "wx/bmpbuttn.h" "wx/checkbox.h" "wx/checklst.h" "wx/choice.h" "wx/scrolbar.h" "wx/stattext.h" "wx/statbmp.h" "wx/statbox.h" "wx/listbox.h" "wx/radiobox.h" "wx/radiobut.h" "wx/textctrl.h" "wx/slider.h" "wx/gauge.h" "wx/scrolwin.h" "wx/dirdlg.h" "wx/toolbar.h" "wx/combobox.h" "wx/layout.h" "wx/sizer.h" "wx/statusbr.h" "wx/choicdlg.h" "wx/textdlg.h" "wx/filedlg.h" "wx/mdi.h" "wx/validate.h" "wx/valtext.h" 1385999950 /usr/include/wx-3.0/wx/hash.h "wx/defs.h" "wx/string.h" "wx/object.h" 1385999950 /usr/include/wx-3.0/wx/stopwatch.h "wx/defs.h" "wx/longlong.h" "wx/time.h" 1385999950 /usr/include/wx-3.0/wx/time.h "wx/longlong.h" 1385999950 /usr/include/wx-3.0/wx/timer.h "wx/defs.h" "wx/object.h" "wx/longlong.h" "wx/event.h" "wx/stopwatch.h" "wx/utils.h" 1385999950 /usr/include/wx-3.0/wx/module.h "wx/object.h" "wx/list.h" "wx/arrstr.h" "wx/dynarray.h" 1385999951 /usr/include/wx-3.0/wx/dc.h "wx/object.h" "wx/intl.h" "wx/cursor.h" "wx/font.h" "wx/colour.h" "wx/bitmap.h" "wx/brush.h" "wx/pen.h" "wx/palette.h" "wx/dynarray.h" "wx/math.h" "wx/image.h" "wx/region.h" "wx/affinematrix2d.h" 1385999950 /usr/include/wx-3.0/wx/brush.h "wx/defs.h" "wx/object.h" "wx/gdiobj.h" "wx/gdicmn.h" "wx/msw/brush.h" "wx/x11/brush.h" "wx/gtk/brush.h" "wx/gtk1/brush.h" "wx/dfb/brush.h" "wx/osx/brush.h" "wx/cocoa/brush.h" "wx/os2/brush.h" 1385999951 /usr/include/wx-3.0/wx/gtk/brush.h 1385999950 /usr/include/wx-3.0/wx/affinematrix2d.h "wx/defs.h" "wx/affinematrix2dbase.h" 1385999950 /usr/include/wx-3.0/wx/affinematrix2dbase.h "wx/defs.h" "wx/geometry.h" 1385999951 /usr/include/wx-3.0/wx/geometry.h "wx/defs.h" "wx/utils.h" "wx/gdicmn.h" "wx/math.h" 1385999951 /usr/include/wx-3.0/wx/dcclient.h "wx/dc.h" 1385999951 /usr/include/wx-3.0/wx/dcmemory.h "wx/dc.h" "wx/bitmap.h" 1385999951 /usr/include/wx-3.0/wx/dcprint.h "wx/defs.h" "wx/dc.h" 1385999951 /usr/include/wx-3.0/wx/dcscreen.h "wx/defs.h" "wx/dc.h" 1385999951 /usr/include/wx-3.0/wx/settings.h "wx/colour.h" "wx/font.h" 1385999951 /usr/include/wx-3.0/wx/msgdlg.h "wx/defs.h" "wx/dialog.h" "wx/stockitem.h" "wx/generic/msgdlgg.h" "wx/cocoa/msgdlg.h" "wx/msw/msgdlg.h" "wx/motif/msgdlg.h" "wx/gtk/msgdlg.h" "wx/osx/msgdlg.h" "wx/os2/msgdlg.h" 1385999950 /usr/include/wx-3.0/wx/stockitem.h "wx/defs.h" "wx/chartype.h" "wx/string.h" "wx/accel.h" 1385999951 /usr/include/wx-3.0/wx/generic/msgdlgg.h 1385999951 /usr/include/wx-3.0/wx/gtk/msgdlg.h 1385999951 /usr/include/wx-3.0/wx/dataobj.h "wx/defs.h" "wx/string.h" "wx/bitmap.h" "wx/list.h" "wx/arrstr.h" "wx/msw/ole/dataform.h" "wx/motif/dataform.h" "wx/gtk/dataform.h" "wx/gtk1/dataform.h" "wx/x11/dataform.h" "wx/osx/dataform.h" "wx/cocoa/dataform.h" "wx/os2/dataform.h" "wx/msw/ole/dataobj.h" "wx/motif/dataobj.h" "wx/x11/dataobj.h" "wx/gtk/dataobj.h" "wx/gtk1/dataobj.h" "wx/osx/dataobj.h" "wx/cocoa/dataobj.h" "wx/os2/dataobj.h" "wx/msw/ole/dataobj2.h" "wx/gtk/dataobj2.h" "wx/gtk1/dataobj2.h" "wx/x11/dataobj2.h" "wx/motif/dataobj2.h" "wx/osx/dataobj2.h" "wx/cocoa/dataobj2.h" "wx/os2/dataobj2.h" 1385999951 /usr/include/wx-3.0/wx/gtk/dataform.h 1385999951 /usr/include/wx-3.0/wx/gtk/dataobj.h 1385999951 /usr/include/wx-3.0/wx/gtk/dataobj2.h 1385999951 /usr/include/wx-3.0/wx/ctrlsub.h "wx/defs.h" "wx/arrstr.h" "wx/control.h" "wx/msw/ctrlsub.h" "wx/motif/ctrlsub.h" 1385999950 /usr/include/wx-3.0/wx/bmpbuttn.h "wx/defs.h" "wx/button.h" "wx/univ/bmpbuttn.h" "wx/msw/bmpbuttn.h" "wx/motif/bmpbuttn.h" "wx/gtk/bmpbuttn.h" "wx/gtk1/bmpbuttn.h" "wx/osx/bmpbuttn.h" "wx/cocoa/bmpbuttn.h" "wx/os2/bmpbuttn.h" 1385999951 /usr/include/wx-3.0/wx/gtk/bmpbuttn.h 1385999950 /usr/include/wx-3.0/wx/checkbox.h "wx/defs.h" "wx/control.h" "wx/univ/checkbox.h" "wx/msw/checkbox.h" "wx/motif/checkbox.h" "wx/gtk/checkbox.h" "wx/gtk1/checkbox.h" "wx/osx/checkbox.h" "wx/cocoa/checkbox.h" "wx/os2/checkbox.h" 1385999951 /usr/include/wx-3.0/wx/gtk/checkbox.h 1385999950 /usr/include/wx-3.0/wx/checklst.h "wx/defs.h" "wx/listbox.h" "wx/univ/checklst.h" "wx/msw/wince/checklst.h" "wx/msw/checklst.h" "wx/motif/checklst.h" "wx/gtk/checklst.h" "wx/gtk1/checklst.h" "wx/osx/checklst.h" "wx/cocoa/checklst.h" "wx/os2/checklst.h" 1385999951 /usr/include/wx-3.0/wx/listbox.h "wx/defs.h" "wx/ctrlsub.h" "wx/univ/listbox.h" "wx/msw/listbox.h" "wx/motif/listbox.h" "wx/gtk/listbox.h" "wx/gtk1/listbox.h" "wx/osx/listbox.h" "wx/os2/listbox.h" "wx/cocoa/listbox.h" 1385999951 /usr/include/wx-3.0/wx/gtk/listbox.h 1385999951 /usr/include/wx-3.0/wx/gtk/checklst.h 1385999951 /usr/include/wx-3.0/wx/choice.h "wx/defs.h" "wx/ctrlsub.h" "wx/univ/choice.h" "wx/msw/wince/choicece.h" "wx/msw/choice.h" "wx/motif/choice.h" "wx/gtk/choice.h" "wx/gtk1/choice.h" "wx/osx/choice.h" "wx/cocoa/choice.h" "wx/os2/choice.h" 1385999951 /usr/include/wx-3.0/wx/gtk/choice.h 1385999951 /usr/include/wx-3.0/wx/scrolbar.h "wx/defs.h" "wx/control.h" "wx/univ/scrolbar.h" "wx/msw/scrolbar.h" "wx/motif/scrolbar.h" "wx/gtk/scrolbar.h" "wx/gtk1/scrolbar.h" "wx/osx/scrolbar.h" "wx/cocoa/scrolbar.h" "wx/os2/scrolbar.h" 1385999951 /usr/include/wx-3.0/wx/gtk/scrolbar.h 1385999951 /usr/include/wx-3.0/wx/statbmp.h "wx/defs.h" "wx/control.h" "wx/bitmap.h" "wx/icon.h" "wx/univ/statbmp.h" "wx/msw/statbmp.h" "wx/motif/statbmp.h" "wx/gtk/statbmp.h" "wx/gtk1/statbmp.h" "wx/osx/statbmp.h" "wx/cocoa/statbmp.h" "wx/os2/statbmp.h" 1385999951 /usr/include/wx-3.0/wx/gtk/statbmp.h "wx/icon.h" 1385999951 /usr/include/wx-3.0/wx/statbox.h "wx/defs.h" "wx/control.h" "wx/containr.h" "wx/univ/statbox.h" "wx/msw/statbox.h" "wx/motif/statbox.h" "wx/gtk/statbox.h" "wx/gtk1/statbox.h" "wx/osx/statbox.h" "wx/cocoa/statbox.h" "wx/os2/statbox.h" 1385999951 /usr/include/wx-3.0/wx/gtk/statbox.h 1385999951 /usr/include/wx-3.0/wx/radiobox.h "wx/defs.h" "wx/ctrlsub.h" "wx/dynarray.h" "wx/univ/radiobox.h" "wx/msw/radiobox.h" "wx/motif/radiobox.h" "wx/gtk/radiobox.h" "wx/gtk1/radiobox.h" "wx/osx/radiobox.h" "wx/cocoa/radiobox.h" "wx/os2/radiobox.h" 1385999951 /usr/include/wx-3.0/wx/gtk/radiobox.h "wx/bitmap.h" "wx/list.h" 1385999951 /usr/include/wx-3.0/wx/radiobut.h "wx/defs.h" "wx/control.h" "wx/univ/radiobut.h" "wx/msw/radiobut.h" "wx/motif/radiobut.h" "wx/gtk/radiobut.h" "wx/gtk1/radiobut.h" "wx/osx/radiobut.h" "wx/cocoa/radiobut.h" "wx/os2/radiobut.h" 1385999951 /usr/include/wx-3.0/wx/gtk/radiobut.h 1385999951 /usr/include/wx-3.0/wx/gauge.h "wx/defs.h" "wx/control.h" "wx/univ/gauge.h" "wx/msw/gauge.h" "wx/motif/gauge.h" "wx/gtk/gauge.h" "wx/gtk1/gauge.h" "wx/osx/gauge.h" "wx/cocoa/gauge.h" "wx/os2/gauge.h" 1385999951 /usr/include/wx-3.0/wx/gtk/gauge.h 1385999951 /usr/include/wx-3.0/wx/scrolwin.h "wx/panel.h" "wx/gtk/scrolwin.h" "wx/gtk1/scrolwin.h" "wx/generic/scrolwin.h" 1385999951 /usr/include/wx-3.0/wx/gtk/scrolwin.h 1385999951 /usr/include/wx-3.0/wx/generic/scrolwin.h 1385999951 /usr/include/wx-3.0/wx/dirdlg.h "wx/dialog.h" "wx/generic/dirdlgg.h" "wx/generic/dirdlgg.h" "wx/generic/dirdlgg.h" "wx/msw/dirdlg.h" "wx/gtk/dirdlg.h" "wx/generic/dirdlgg.h" "wx/osx/dirdlg.h" "wx/cocoa/dirdlg.h" "wx/generic/dirdlgg.h" 1385999951 /usr/include/wx-3.0/wx/gtk/dirdlg.h 1385999951 /usr/include/wx-3.0/wx/toolbar.h "wx/defs.h" "wx/tbarbase.h" "wx/univ/toolbar.h" "wx/msw/toolbar.h" "wx/msw/wince/tbarwce.h" "wx/motif/toolbar.h" "wx/gtk/toolbar.h" "wx/gtk1/toolbar.h" "wx/osx/toolbar.h" "wx/cocoa/toolbar.h" "wx/os2/toolbar.h" 1385999951 /usr/include/wx-3.0/wx/tbarbase.h "wx/defs.h" "wx/bitmap.h" "wx/list.h" "wx/control.h" 1385999951 /usr/include/wx-3.0/wx/gtk/toolbar.h 1385999951 /usr/include/wx-3.0/wx/combobox.h "wx/defs.h" "wx/textctrl.h" "wx/ctrlsub.h" "wx/textentry.h" "wx/univ/combobox.h" "wx/msw/combobox.h" "wx/motif/combobox.h" "wx/gtk/combobox.h" "wx/gtk1/combobox.h" "wx/osx/combobox.h" "wx/cocoa/combobox.h" "wx/os2/combobox.h" 1385999951 /usr/include/wx-3.0/wx/gtk/combobox.h "wx/choice.h" 1385999951 /usr/include/wx-3.0/wx/layout.h "wx/object.h" 1385999950 /usr/include/wx-3.0/wx/choicdlg.h "wx/defs.h" "wx/generic/choicdgg.h" 1385999951 /usr/include/wx-3.0/wx/generic/choicdgg.h "wx/dynarray.h" "wx/dialog.h" 1385999951 /usr/include/wx-3.0/wx/textdlg.h "wx/generic/textdlgg.h" 1385999951 /usr/include/wx-3.0/wx/generic/textdlgg.h "wx/defs.h" "wx/dialog.h" "wx/valtext.h" "wx/textctrl.h" 1385999951 /usr/include/wx-3.0/wx/valtext.h "wx/defs.h" "wx/validate.h" 1385999951 /usr/include/wx-3.0/wx/filedlg.h "wx/defs.h" "wx/dialog.h" "wx/arrstr.h" "wx/generic/filedlgg.h" "wx/msw/filedlg.h" "wx/motif/filedlg.h" "wx/gtk/filedlg.h" "wx/gtk1/filedlg.h" "wx/osx/filedlg.h" "wx/cocoa/filedlg.h" "wx/os2/filedlg.h" 1385999951 /usr/include/wx-3.0/wx/gtk/filedlg.h "wx/gtk/filectrl.h" 1385999951 /usr/include/wx-3.0/wx/gtk/filectrl.h "wx/control.h" "wx/filectrl.h" 1385999951 /usr/include/wx-3.0/wx/filectrl.h "wx/defs.h" "wx/string.h" "wx/event.h" "wx/gtk/filectrl.h" "wx/generic/filectrlg.h" 1385999951 /usr/include/wx-3.0/wx/generic/filectrlg.h "wx/containr.h" "wx/listctrl.h" "wx/filectrl.h" "wx/filename.h" 1385999951 /usr/include/wx-3.0/wx/listctrl.h "wx/defs.h" "wx/listbase.h" "wx/msw/listctrl.h" "wx/osx/listctrl.h" "wx/generic/listctrl.h" 1385999951 /usr/include/wx-3.0/wx/listbase.h "wx/colour.h" "wx/font.h" "wx/gdicmn.h" "wx/event.h" "wx/control.h" 1385999951 /usr/include/wx-3.0/wx/generic/listctrl.h "wx/containr.h" "wx/scrolwin.h" "wx/textctrl.h" 1385999951 /usr/include/wx-3.0/wx/mdi.h "wx/defs.h" "wx/frame.h" "wx/menu.h" "wx/generic/mdig.h" "wx/msw/mdi.h" "wx/gtk/mdi.h" "wx/gtk1/mdi.h" "wx/osx/mdi.h" "wx/cocoa/mdi.h" 1385999951 /usr/include/wx-3.0/wx/gtk/mdi.h "wx/frame.h" 1386309819 /home/abarry/programs/makerscanner/ScanThread.h "cv.h" "highgui.h" "IndividualPixels.h" "PointCloud.h" "CaptureThread.h" "ScanStatus.h" "SetHorz.h" 1386309819 /home/abarry/programs/makerscanner/IndividualPixels.h "cv.h" "highgui.h" 1386309819 /home/abarry/programs/makerscanner/PointCloud.h "PointCloudPoint.h" 1386309819 /home/abarry/programs/makerscanner/PointCloudPoint.h 1386309819 /home/abarry/programs/makerscanner/CaptureThread.h "cv.h" "highgui.h" 1386309819 /home/abarry/programs/makerscanner/ScanStatus.h 1386309819 /home/abarry/programs/makerscanner/SetHorz.h 1386309819 /home/abarry/programs/makerscanner/DistanceToReferenceDialog.h "CaptureThread.h" 1385999951 /usr/include/wx-3.0/wx/spinctrl.h "wx/defs.h" "wx/spinbutt.h" "wx/msw/spinctrl.h" "wx/os2/spinctrl.h" "wx/gtk/spinctrl.h" "wx/gtk1/spinctrl.h" "wx/generic/spinctlg.h" 1385999951 /usr/include/wx-3.0/wx/spinbutt.h "wx/defs.h" "wx/control.h" "wx/event.h" "wx/range.h" "wx/univ/spinbutt.h" "wx/msw/spinbutt.h" "wx/motif/spinbutt.h" "wx/gtk/spinbutt.h" "wx/gtk1/spinbutt.h" "wx/osx/spinbutt.h" "wx/cocoa/spinbutt.h" "wx/os2/spinbutt.h" 1385999951 /usr/include/wx-3.0/wx/range.h "wx/defs.h" 1385999951 /usr/include/wx-3.0/wx/gtk/spinbutt.h 1385999951 /usr/include/wx-3.0/wx/gtk/spinctrl.h 1385999951 /usr/include/wx-3.0/wx/generic/spinctlg.h "wx/compositewin.h" "wx/textctrl.h" 1385999951 /usr/include/wx-3.0/wx/compositewin.h "wx/window.h" "wx/containr.h" 1386309819 /home/abarry/programs/makerscanner/camview.h "cv.h" "highgui.h" 1386309819 source:/home/abarry/programs/makerscanner/ActiveStereoMain.cpp "ActiveStereoMain.h" 1386309819 source:/home/abarry/programs/makerscanner/Cameras.cpp "Cameras.h" 1448221797 source:/home/abarry/programs/makerscanner/camview.cpp "camview.h" "cv.h" "highgui.h" 1448221797 source:/home/abarry/programs/makerscanner/CaptureThread.cpp "CaptureThread.h" 1386309819 source:/home/abarry/programs/makerscanner/DistanceToReferenceDialog.cpp "DistanceToReferenceDialog.h" 1386309819 source:/home/abarry/programs/makerscanner/PointCloud.cpp "PointCloud.h" 1385999950 /usr/include/wx-3.0/wx/listimpl.cpp 1386309819 source:/home/abarry/programs/makerscanner/PointCloudPoint.cpp "PointCloudPoint.h" 1386309819 source:/home/abarry/programs/makerscanner/ScanStatus.cpp "ScanStatus.h" 1448221797 source:/home/abarry/programs/makerscanner/ScanThread.cpp "ScanThread.h" 1385999950 /usr/include/wx-3.0/wx/arrimpl.cpp ================================================ FILE: ActiveStereo.layout ================================================ ================================================ FILE: ActiveStereoApp.cpp ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "ActiveStereoApp.h" //(*AppHeaders #include "ActiveStereoMain.h" #include //*) IMPLEMENT_APP(ActiveStereoApp); bool ActiveStereoApp::OnInit() { //(*AppInitialize bool wxsOK = true; wxInitAllImageHandlers(); if ( wxsOK ) { ActiveStereoFrame* Frame = new ActiveStereoFrame(0); Frame->Show(); SetTopWindow(Frame); } //*) return wxsOK; } ================================================ FILE: ActiveStereoApp.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef ACTIVESTEREOAPP_H #define ACTIVESTEREOAPP_H #include class ActiveStereoApp : public wxApp { public: virtual bool OnInit(); }; #endif // ACTIVESTEREOAPP_H ================================================ FILE: ActiveStereoMain.cpp ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "ActiveStereoMain.h" #include #include //(*InternalHeaders(ActiveStereoFrame) #include #include //*) //helper functions enum wxbuildinfoformat { short_f, long_f }; wxString wxbuildinfo(wxbuildinfoformat format) { wxString wxbuild(wxVERSION_STRING); if (format == long_f ) { #if defined(__WXMSW__) wxbuild << _T("-Windows"); #define PIXMAPS_DIR "" #elif defined(__UNIX__) wxbuild << _T("-Linux"); #endif #if wxUSE_UNICODE wxbuild << _T("-Unicode build"); #else wxbuild << _T("-ANSI build"); #endif // wxUSE_UNICODE } return wxbuild; } //(*IdInit(ActiveStereoFrame) const long ActiveStereoFrame::ID_STATICTEXT3 = wxNewId(); const long ActiveStereoFrame::ID_STATICTEXT4 = wxNewId(); const long ActiveStereoFrame::ID_STATICTEXT1 = wxNewId(); const long ActiveStereoFrame::ID_FPS_LABEL = wxNewId(); const long ActiveStereoFrame::ID_BUTTON4 = wxNewId(); const long ActiveStereoFrame::ID_STATICTEXT7 = wxNewId(); const long ActiveStereoFrame::ID_SLIDER3 = wxNewId(); const long ActiveStereoFrame::ID_STATICTEXT5 = wxNewId(); const long ActiveStereoFrame::ID_SLIDER1 = wxNewId(); const long ActiveStereoFrame::ID_STATICTEXT6 = wxNewId(); const long ActiveStereoFrame::ID_BUTTON3 = wxNewId(); const long ActiveStereoFrame::ID_BUTTON1 = wxNewId(); const long ActiveStereoFrame::ID_STATICLINE1 = wxNewId(); const long ActiveStereoFrame::ID_TEXTCTRL1 = wxNewId(); const long ActiveStereoFrame::ID_PANEL1 = wxNewId(); const long ActiveStereoFrame::idMenuQuit = wxNewId(); const long ActiveStereoFrame::idMenuChangeCamera = wxNewId(); const long ActiveStereoFrame::idMenuAbout = wxNewId(); const long ActiveStereoFrame::ID_STATUSBAR1 = wxNewId(); //*) BEGIN_EVENT_TABLE(ActiveStereoFrame,wxFrame) //(*EventTable(ActiveStereoFrame) //*) EVT_COMMAND(wxID_ANY, IMAGE_UPDATE_EVENT, ActiveStereoFrame::UpdateImage) EVT_COMMAND(wxID_ANY, DISPLAY_TEXT_EVENT, ActiveStereoFrame::DisplayText) EVT_COMMAND(wxID_ANY, WRITE_TO_FILE_EVENT, ActiveStereoFrame::WriteToFile) EVT_COMMAND(wxID_ANY, SCAN_PROGRESS_EVENT, ActiveStereoFrame::UpdateScanProgress) EVT_COMMAND(wxID_ANY, SCAN_FINISHED_EVENT, ActiveStereoFrame::ScanFinished) EVT_UPDATE_UI(ID_FPS_LABEL, ActiveStereoFrame::UpdateFps) END_EVENT_TABLE() // Much of this is wxSmith generated code that creates (most of) the GUI. ActiveStereoFrame::ActiveStereoFrame(wxWindow* parent,wxWindowID id) { //(*Initialize(ActiveStereoFrame) wxMenuItem* MenuItem2; wxMenuItem* MenuItem1; wxFlexGridSizer* FlexGridSizer1; wxMenu* Menu1; wxBoxSizer* BoxSizer2; wxStaticBoxSizer* staticBoxSizerSettings; wxBoxSizer* topBoxSizer; wxBoxSizer* BoxSizer1; wxMenuBar* MenuBar1; wxMenu* Menu2; Create(parent, wxID_ANY, _("MakerScanner v0.3.2"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY")); SetClientSize(wxSize(1009,746)); SetMinSize(wxSize(1009,746)); Panel1 = new wxPanel(this, ID_PANEL1, wxPoint(120,232), wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1")); BoxSizer1 = new wxBoxSizer(wxVERTICAL); topBoxSizer = new wxBoxSizer(wxHORIZONTAL); headBoxSizer = new wxBoxSizer(wxVERTICAL); staticBoxSizerStatus = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("System Status")); flexGridStatus = new wxFlexGridSizer(0, 2, 0, 0); lblStaticCameraConnected = new wxStaticText(Panel1, ID_STATICTEXT3, _("Camera: "), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3")); flexGridStatus->Add(lblStaticCameraConnected, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); lblCameraConnected = new wxStaticText(Panel1, ID_STATICTEXT4, _("Disconnected"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT, _T("ID_STATICTEXT4")); flexGridStatus->Add(lblCameraConnected, 1, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5); StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("FPS: "), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1")); flexGridStatus->Add(StaticText1, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); lblFPS = new wxStaticText(Panel1, ID_FPS_LABEL, _("0.0"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_FPS_LABEL")); flexGridStatus->Add(lblFPS, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); staticBoxSizerStatus->Add(flexGridStatus, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); butCameraConnect = new wxButton(Panel1, ID_BUTTON4, _("Camera Connect"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON4")); staticBoxSizerStatus->Add(butCameraConnect, 1, wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL, 5); headBoxSizer->Add(staticBoxSizerStatus, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); staticBoxSizerSettings = new wxStaticBoxSizer(wxHORIZONTAL, Panel1, _("Scan Settings")); FlexGridSizer1 = new wxFlexGridSizer(0, 2, 0, 0); lblImageThreshold = new wxStaticText(Panel1, ID_STATICTEXT7, _("Brightness Threshold: 25"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT7")); FlexGridSizer1->Add(lblImageThreshold, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); sliderImageThreshold = new wxSlider(Panel1, ID_SLIDER3, 25, 5, 50, wxDefaultPosition, wxSize(158,30), 0, wxDefaultValidator, _T("ID_SLIDER3")); FlexGridSizer1->Add(sliderImageThreshold, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); lblBrightnessFilter = new wxStaticText(Panel1, ID_STATICTEXT5, _("Brightness Filter: 0.80"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5")); FlexGridSizer1->Add(lblBrightnessFilter, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); sliderBrightnessFilter = new wxSlider(Panel1, ID_SLIDER1, 80, 0, 100, wxDefaultPosition, wxSize(158,35), 0, wxDefaultValidator, _T("ID_SLIDER1")); FlexGridSizer1->Add(sliderBrightnessFilter, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); staticBoxSizerSettings->Add(FlexGridSizer1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); headBoxSizer->Add(staticBoxSizerSettings, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); 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")); headBoxSizer->Add(StaticText2, 1, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); BoxSizer2 = new wxBoxSizer(wxHORIZONTAL); butCapture = new wxButton(Panel1, ID_BUTTON3, _("Start Scan"), wxDefaultPosition, wxSize(150,32), 0, wxDefaultValidator, _T("ID_BUTTON3")); butCapture->Disable(); BoxSizer2->Add(butCapture, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); butDoneScanning = new wxButton(Panel1, ID_BUTTON1, _("Done Scanning"), wxDefaultPosition, wxSize(150,32), 0, wxDefaultValidator, _T("ID_BUTTON1")); butDoneScanning->Disable(); BoxSizer2->Add(butDoneScanning, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); headBoxSizer->Add(BoxSizer2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); topBoxSizer->Add(headBoxSizer, 0, wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL, 5); BoxSizer1->Add(topBoxSizer, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticLine1 = new wxStaticLine(Panel1, ID_STATICLINE1, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE1")); BoxSizer1->Add(StaticLine1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); 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")); txtLog->SetMinSize(wxSize(390,154)); BoxSizer1->Add(txtLog, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); Panel1->SetSizer(BoxSizer1); BoxSizer1->Fit(Panel1); BoxSizer1->SetSizeHints(Panel1); MenuBar1 = new wxMenuBar(); Menu1 = new wxMenu(); MenuItem1 = new wxMenuItem(Menu1, idMenuQuit, _("Quit\tAlt-F4"), _("Quit the application"), wxITEM_NORMAL); Menu1->Append(MenuItem1); MenuBar1->Append(Menu1, _("&File")); Menu3 = new wxMenu(); menuChangeCamera = new wxMenuItem(Menu3, idMenuChangeCamera, _("Change Camera"), _("Change the camera if you have more than one (requires restart)"), wxITEM_NORMAL); Menu3->Append(menuChangeCamera); MenuBar1->Append(Menu3, _("Tools")); Menu2 = new wxMenu(); MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _("About\tF1"), _("Show info about this application"), wxITEM_NORMAL); Menu2->Append(MenuItem2); MenuBar1->Append(Menu2, _("Help")); SetMenuBar(MenuBar1); StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T("ID_STATUSBAR1")); int __wxStatusBarWidths_1[1] = { -1 }; int __wxStatusBarStyles_1[1] = { wxSB_NORMAL }; StatusBar1->SetFieldsCount(1,__wxStatusBarWidths_1); StatusBar1->SetStatusStyles(1,__wxStatusBarStyles_1); SetStatusBar(StatusBar1); Connect(ID_BUTTON4,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ActiveStereoFrame::OnButCameraConnectClick); Connect(ID_SLIDER3,wxEVT_SCROLL_THUMBTRACK,(wxObjectEventFunction)&ActiveStereoFrame::OnSliderImageThresholdCmdScroll); Connect(ID_SLIDER3,wxEVT_SCROLL_CHANGED,(wxObjectEventFunction)&ActiveStereoFrame::OnSliderImageThresholdCmdScroll); Connect(ID_SLIDER1,wxEVT_SCROLL_THUMBTRACK,(wxObjectEventFunction)&ActiveStereoFrame::OnSliderBrightnessFilterCmdScrollThumbTrack); Connect(ID_SLIDER1,wxEVT_SCROLL_CHANGED,(wxObjectEventFunction)&ActiveStereoFrame::OnSliderBrightnessFilterCmdScrollThumbTrack); Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ActiveStereoFrame::OnButCaptureClick); Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ActiveStereoFrame::OnButDoneScanningClick); Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&ActiveStereoFrame::OnQuit); Connect(idMenuChangeCamera,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&ActiveStereoFrame::OnMenuChangeCameraSelected); Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&ActiveStereoFrame::OnAbout); //*) // frame icon #if defined(__WXMSW__) { wxIcon FrameIcon(wxT("laserIcon.ico"), wxBITMAP_TYPE_ICO); SetIcon(FrameIcon); } #elif defined(__UNIX__) { wxIcon FrameIcon; FrameIcon.CopyFromBitmap(wxBitmap(wxImage(PIXMAPS_DIR _T("/laserIcon.png")))); SetIcon(FrameIcon); } #endif // create image display window on the frame and insert it into the sizer m_pCamView = new CCamView( Panel1, wxPoint(150,0), wxSize(640, 480) ); topBoxSizer->Insert(0, m_pCamView, 0, wxFIXED_MINSIZE); // just added the camera window, so force sizers to reset topBoxSizer->Layout(); BoxSizer1->Layout(); updateImageRunning = false; // init camera and laser connected variables (used for labels) cameraConnected = false; // init last USB event time (so we don't overload the PIC with USB events) lastUsbTime = wxDateTime::UNow(); scanStatus = new ScanStatus(); // read the camera preference out of the config wxConfig *config = new wxConfig(wxT("makerscanner")); config->Set(config); if (config->Read(wxT("CameraNum"), &cameraNum)) { // read the value successfully // check for the -1 (first camera detected) case if (cameraNum == -1) { cameraNum = CV_CAP_ANY; } } else { cameraNum = CV_CAP_ANY; } //Start up the camera and look at the image cam = new Cameras(txtLog, this, scanStatus, cameraNum); // create the camera object framesSinceLastFpsUpdate = 0; timeOfLastFpsUpdate = wxDateTime::UNow(); //cvNamedWindow( "win1", CV_WINDOW_AUTOSIZE ); } // Destructor ActiveStereoFrame::~ActiveStereoFrame() { // make sure to delete cam before m_pCamView otherwise // you might get a crash on exit in Windows OS (most likley // when you have a UpdateImage event after the viewer is gone) if (cam) { delete cam; } if (m_pCamView) { delete m_pCamView; } if (scanStatus) { delete scanStatus; } if (config) { delete config; } } // On thread destruction void ActiveStereoFrame::OnQuit(wxCommandEvent& event) { Close(); } // On about, show a dialog with name, email, etc. void ActiveStereoFrame::OnAbout(wxCommandEvent& event) { wxString msg = wxT("MakerScanner v0.3.2\nhttp://makerscanner.com\n\n(C) 2009-2010\nAndrew Barry\nabarry@gmail.com"); wxMessageBox(msg, _("MakerScanner")); } // Scan button clicked -- start a new scan! void ActiveStereoFrame::OnButCaptureClick(wxCommandEvent& event) { wxString directory = wxT(""); // read the last directory used wxConfig *config = (wxConfig*)wxConfigBase::Get(); if (config->Read(wxT("ScanDir"), &directory)) { // check for a not valid directory if (wxDir::Exists(directory) == false) { directory = wxT(""); } } else { // failed to read config directory = wxT(""); } // ask where to save the point cloud file wxFileDialog dialog(this, wxT("Save pointcloud file"), directory, wxT("pointcloud.ply"), wxT("*.ply"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); if (dialog.ShowModal() != wxID_OK) { // user clicked cancel return; } // get the filename and path as a string pointcloudFilename = dialog.GetPath(); wxFileName dir(pointcloudFilename); if (dir.IsOk() == true) { // save the new selected directory config->Write(wxT("ScanDir"), dir.GetPath()); } // clear the point cloud file wxFFile file(pointcloudFilename, wxT("w")); if (file.IsOpened()) { txtLog->AppendText(wxT("\nWriting point cloud file:\n\t")); txtLog->AppendText(pointcloudFilename); file.Close(); } else { txtLog->AppendText(wxT("\nPoint cloud file did not open!")); return; } // Disable buttons/sliders during scanning SetGUIStateDuringScan(true); if (!cam) { cam = new Cameras(txtLog, this, scanStatus, cameraNum); // create the camera object if it doesn't already exist } cam->SetThresholdPixelValue(sliderImageThreshold->GetValue()); cam->SetBrightnessFilterValue(float(sliderBrightnessFilter->GetValue()) / 100.0); // start scanning! cam->StartScan(); butDoneScanning->SetFocus(); } // Catch an update image event and display the new image void ActiveStereoFrame::UpdateImage(wxCommandEvent &event) { // image is shipped as a pointer in the event // cast to IplImage (must release once finished) IplImage *img = (IplImage*)event.GetClientData(); if (updateImageRunning == true) { txtLog->AppendText(wxT("\nUpdate image was already running")); cvReleaseImage(&img); return; } updateImageRunning = true; // camera is connected -- update if it isn't if (cameraConnected != true) { cameraConnected = true; lblCameraConnected->SetLabel(wxT("Connected")); // reset layouts now that the length of the label in lblCameraConnected has changed flexGridStatus->Layout(); staticBoxSizerStatus->Layout(); headBoxSizer->Layout(); butCapture->Enable(true); butCapture->SetFocus(); } // update image display m_pCamView->DrawCam(img); // delete the image that was copied for us to display cvReleaseImage(&img); updateImageRunning = false; // update the FPS display framesSinceLastFpsUpdate ++; } // catch a display text event and append the text to the terminal display void ActiveStereoFrame::DisplayText(wxCommandEvent &event) { txtLog->AppendText(event.GetString()); } // catch a write to file event // the string to write is in the event // write to the point cloud file void ActiveStereoFrame::WriteToFile(wxCommandEvent &event) { wxString FilesWritten = wxT(""); //static int i = 0; // monitor how many times we do file writes //if (i==0) txtLog->AppendText(wxT("\nWriting topoint cloud file: ")); //i++; //FilesWritten << i << wxT(" "); wxFFile file(pointcloudFilename, wxT("a")); file.Write(event.GetString()); if (file.IsOpened()) txtLog->AppendText(FilesWritten); else txtLog->AppendText(wxT("Point cloud file did not open!")); file.Close(); } // Camera connect button clicked -- attempt to connect to the camera void ActiveStereoFrame::OnButCameraConnectClick(wxCommandEvent& event) { if (cam) { delete cam; } cam = new Cameras(txtLog, this, scanStatus, cameraNum); // create the camera object } // Set buttons to be enabled/disabled during (or after) a scan void ActiveStereoFrame::SetGUIStateDuringScan(bool scanning) { bool enable; if (scanning == true) { enable = false; butCapture->SetLabel(wxT("Scanning...")); } else { enable = true; butCapture->SetLabel(wxT("Start Scan")); butDoneScanning->SetLabel(wxT("Done Scanning")); } butCapture->Enable(enable); butDoneScanning->Enable(!enable); sliderImageThreshold->Enable(enable); sliderBrightnessFilter->Enable(enable); butCameraConnect->Enable(enable); if (scanning == false) { butCapture->SetFocus(); } } // Catch an update scan event and move the progress bar void ActiveStereoFrame::UpdateScanProgress(wxCommandEvent &event) { // nothing here for now } // Re-enable buttons now that the scan is finished void ActiveStereoFrame::ScanFinished(wxCommandEvent &event) { SetGUIStateDuringScan(false); } // Done Scanning button event handler void ActiveStereoFrame::OnButDoneScanningClick(wxCommandEvent& event) { // stop the scan by telling scanStatus to stop scanning. // this will let the scanning thread finish it's current tasks // once done, the thread will send a scan finished event. scanStatus->SetScanning(false); butDoneScanning->SetLabel(wxT("Finishing Scan...")); butDoneScanning->Enable(false); } // Update the image threshold slider label on slider move void ActiveStereoFrame::OnSliderImageThresholdCmdScroll(wxScrollEvent& event) { // update the label wxString str = wxT("Brightness Threshold: "); str << sliderImageThreshold->GetValue(); lblImageThreshold->SetLabel(str); } void ActiveStereoFrame::OnSliderBrightnessFilterCmdScrollThumbTrack(wxScrollEvent& event) { // update the label wxString str = wxT("Brightness Filter: "); wxString numstr; numstr.Printf(wxT("%.2f"), float(sliderBrightnessFilter->GetValue()) / 100.0); lblBrightnessFilter->SetLabel(str + numstr); } void ActiveStereoFrame::OnMenuChangeCameraSelected(wxCommandEvent& event) { // open the camera number dialog 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); long cameraNumNew; if (dialog.ShowModal() == wxID_OK) { cameraNumNew = dialog.GetValue(); wxConfig *config = (wxConfig*)wxConfigBase::Get(); config->Write(wxT("CameraNum"), cameraNumNew); wxMessageBox(wxT("You must restart MakerScanner for your changes to take effect."), wxT("MakerScanner - Settings Changed")); } } void ActiveStereoFrame::UpdateFps(wxUpdateUIEvent &event) { wxDateTime now = wxDateTime::UNow(); wxTimeSpan timeDiff = now.Subtract(timeOfLastFpsUpdate); if (timeDiff.GetMilliseconds() > 100) { // compute a new FPS double timeDiffNum = timeDiff.GetMilliseconds().ToDouble() / 1000.0; double fps = framesSinceLastFpsUpdate / timeDiffNum; framesSinceLastFpsUpdate = 0; timeOfLastFpsUpdate = now; wxString fpsString = wxString::Format(wxT("%4.1f"), fps); lblFPS->SetLabel(fpsString); // disable things if the fps is too low if (fps < 0.5) { cameraConnected = false; lblCameraConnected->SetLabel(wxT("Disconnected")); // reset layouts now that the length of the label in lblCameraConnected has changed flexGridStatus->Layout(); staticBoxSizerStatus->Layout(); headBoxSizer->Layout(); butCapture->Enable(false); } } } ================================================ FILE: ActiveStereoMain.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef ACTIVESTEREOMAIN_H #define ACTIVESTEREOMAIN_H //(*Headers(ActiveStereoFrame) #include #include #include #include #include #include #include #include #include #include //*) #include #include #include #include #include #include // include OpenCV headers #include "cv.h" #include "highgui.h" #include "Cameras.h" #include "ScanThread.h" #include "ScanStatus.h" // include image-viewing widget header #include "camview.h" class ActiveStereoFrame: public wxFrame { public: ActiveStereoFrame(wxWindow* parent,wxWindowID id = -1); virtual ~ActiveStereoFrame(); private: //(*Handlers(ActiveStereoFrame) void OnQuit(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); void OnButSetConfigClick(wxCommandEvent& event); void OnButCaptureClick(wxCommandEvent& event); void OnSliderImageThresholdCmdScroll(wxScrollEvent& event); void OnSliderLaserMaxCmdScrollChanged(wxScrollEvent& event); void OnSliderLaserMinCmdScrollChanged(wxScrollEvent& event); void OnButCameraConnectClick(wxCommandEvent& event); void OnSliderMirrorResolutionCmdScrollChanged(wxScrollEvent& event); void OnSliderMirrorPositionCmdScrollChanged(wxScrollEvent& event); void OnSliderLaserIntensityCmdScrollChanged(wxScrollEvent& event); void OnSliderServoPositionCmdScrollChanged(wxScrollEvent& event); void OnSliderMirrorPositionCmdScrollChangedWithMove(wxScrollEvent& event); void OnButDoneScanningClick(wxCommandEvent& event); void OnSliderBrightnessFilterCmdScrollThumbTrack(wxScrollEvent& event); void OnMenuChangeCameraSelected(wxCommandEvent& event); //*) //(*Identifiers(ActiveStereoFrame) static const long ID_STATICTEXT3; static const long ID_STATICTEXT4; static const long ID_STATICTEXT1; static const long ID_FPS_LABEL; static const long ID_BUTTON4; static const long ID_STATICTEXT7; static const long ID_SLIDER3; static const long ID_STATICTEXT5; static const long ID_SLIDER1; static const long ID_STATICTEXT6; static const long ID_BUTTON3; static const long ID_BUTTON1; static const long ID_STATICLINE1; static const long ID_TEXTCTRL1; static const long ID_PANEL1; static const long idMenuQuit; static const long idMenuChangeCamera; static const long idMenuAbout; static const long ID_STATUSBAR1; //*) //(*Declarations(ActiveStereoFrame) wxPanel* Panel1; wxMenuItem* menuChangeCamera; wxStatusBar* StatusBar1; wxMenu* Menu3; wxSlider* sliderBrightnessFilter; wxStaticText* lblFPS; wxStaticText* StaticText1; wxStaticText* lblBrightnessFilter; wxBoxSizer* headBoxSizer; wxStaticLine* StaticLine1; wxSlider* sliderImageThreshold; wxTextCtrl* txtLog; wxStaticText* lblImageThreshold; wxStaticText* lblCameraConnected; wxStaticText* StaticText2; wxFlexGridSizer* flexGridStatus; wxButton* butCameraConnect; wxButton* butCapture; wxStaticBoxSizer* staticBoxSizerStatus; wxButton* butDoneScanning; wxStaticText* lblStaticCameraConnected; //*) // We must use events to communicate with the scanning thread because direct GUI // modifications of the frame from the thread will fail badly // Update image event handler -- get an image and display it on the frame void UpdateImage(wxCommandEvent &event); // Catch an event and display its text in the terminal box void DisplayText(wxCommandEvent &event); // Write the point cloud file with the text stored in the event void WriteToFile(wxCommandEvent &event); // Catch an event to update the scan progress bar void UpdateScanProgress(wxCommandEvent &event); // Catch the scan finished event and re-enable the frame void ScanFinished(wxCommandEvent &event); // Enable/disable frame buttons (disable when scanning == true) void SetGUIStateDuringScan(bool scanning); // Catches an UpdateUI event and updates the FPS display void UpdateFps(wxUpdateUIEvent &event); // last time a USB event was sent wxDateTime lastUsbTime; // camera object, allows access to scanning thread Cameras *cam; // object that holds the current scan's status for communitcating between // the GUI and scanning/capturing threads. ScanStatus *scanStatus; wxString pointcloudFilename; // image display widget CCamView* m_pCamView; // configuration storage object wxConfig *config; // data for the FPS display wxDateTime timeOfLastFpsUpdate; int framesSinceLastFpsUpdate, cameraNum; bool updateImageRunning, cameraConnected; DECLARE_EVENT_TABLE() }; #endif // ACTIVESTEREOMAIN_H ================================================ FILE: CAD/Design Data/AEC Exchange/Support/DWGSettings.ini ================================================ [EXPORT SELECT OPTIONS] AUTOCAD VERSION=AutoCAD 2004 CREATE AUTOCAD MECHANICAL=No USE TRANSMITTAL=No USE CUSTOMIZE=No CUSTOMIZE FILE=[INVENTOR_INSTALL_DIRECTORY]\COMPATIBILITY\Support\FlatPattern.xml CREATE LAYER GROUP=No PARTS ONLY=No [EXPORT PROPERTIES] SELECTED PROPERTIES= [EXPORT DESTINATION] SPACE=Model SCALING=Geometry MAPPING=MapsBest MODEL GEOMETRY ONLY=No EXPLODE DIMENSIONS=No SYMBOLS ARE BLOCKED=Yes AUTOCAD TEMPLATE= DESTINATION DXF=No [EXPORT LINE TYPE & LINE SCALE] LINE TYPE FILE=[INVENTOR_INSTALL_DIRECTORY]\COMPATIBILITY\Support\invGB.lin Continuous=Continuous;0. Dashed=DASHED;0. Dashed Space=DASHED_SPACE;0. Long Dash Dotted=LONG_DASH_DOTTED;0. Long Dash Double Dot=LONG_DASH_DOUBLE_DOT;0. Long Dash Triple Dot=LONG_DASH_TRIPLE_DOT;0. Dotted=DOTTED;0. Chain=CHAIN;0. Double Dash Chain=DOUBLE_DASH_CHAIN;0. Dash Double Dot=DASH_DOUBLE_DOT;0. Dash Dot=DASH_DOT;0. Double Dash Dot=DOUBLE_DASH_DOT;0. Double Dash Double Dot=DOUBLE_DASH_DOUBLE_DOT;0. Dash Triple Dot=DASH_TRIPLE_DOT;0. Double Dash Triple Dot=DOUBLE_DASH_TRIPLE_DOT;0. ================================================ FILE: CAD/Design Data/AEC Exchange/Support/PartAtom.xml ================================================  Inventor <updated/> <A:part type="user"> <A:title/> <A:partno rel="user"/> <width display="Width" unit="cm"/> <length display="Length" unit="cm"/> <height display="Height" unit="cm"/> </A:part> </entry> ================================================ FILE: CAD/Design Data/DWG-DXF/FlatPatternExportOpts.xml ================================================ <?xml version="1.0" standalone="yes"?> <!-- =========================================================== This file contains options for exporting a flat Pattern to a DWG/DXF file. In this version the only option is to replace splines with line segments with a set chord tolerance. enable="1" will turn the option on enable="0" will turn the option off chord_tolerance sets the maximum distance from any point on the line to the spline. Please use '.' as decimal delimiter. =========================================================== --> <!-- =========================================================== BEGIN DTD SECTION Do not modify the DTD section of this file. It is used to verify that the content of the file is valid. =========================================================== --> <!DOCTYPE fpdwgEdits [ <!ELEMENT fpdwgEdits (option)> <!ELEMENT option (replace)> <!ELEMENT replace (spline, advlegacyexport?)> <!ELEMENT spline EMPTY> <!ELEMENT advlegacyexport EMPTY> <!ATTLIST fpdwgEdits version CDATA #REQUIRED> <!ATTLIST spline enable CDATA #REQUIRED> <!ATTLIST spline chord_tolerance CDATA #REQUIRED> <!ATTLIST advlegacyexport enable CDATA #REQUIRED> ]> <!-- =========================================================== END DTD SECTION =========================================================== --> <fpdwgEdits version='1.0'> <option> <replace> <spline enable="1" chord_tolerance="0.01" /> <advlegacyexport enable="1" /> </replace> </option> </fpdwgEdits> ================================================ FILE: CAD/Design Data/DWG-DXF/exportdwg.ini ================================================ [EXPORT SELECT OPTIONS] AUTOCAD VERSION=AutoCAD 2007 CREATE AUTOCAD MECHANICAL=No USE TRANSMITTAL=Yes USE CUSTOMIZE=No CUSTOMIZE FILE=Design Data\DWG-DXF\FlatPattern.xml CREATE LAYER GROUP=No PARTS ONLY=No [EXPORT PROPERTIES] SELECTED PROPERTIES= [EXPORT DESTINATION] SPACE=Model SCALING=Geometry MAPPING=MapsBest MODEL GEOMETRY ONLY=No EXPLODE DIMENSIONS=No SYMBOLS ARE BLOCKED=Yes AUTOCAD TEMPLATE= DESTINATION DXF=No [EXPORT LINE TYPE & LINE SCALE] LINE TYPE FILE=COMPATIBILITY\Support\invANSI.lin Continuous=Continuous;0. Dashed=DASHED;0. Dashed Space=DASHED_SPACE;0. Long Dash Dotted=LONG_DASH_DOTTED;0. Long Dash Double Dot=LONG_DASH_DOUBLE_DOT;0. Long Dash Triple Dot=LONG_DASH_TRIPLE_DOT;0. Dotted=DOTTED;0. Chain=CHAIN;0. Double Dash Chain=DOUBLE_DASH_CHAIN;0. Dash Double Dot=DASH_DOUBLE_DOT;0. Dash Dot=DASH_DOT;0. Double Dash Dot=DOUBLE_DASH_DOT;0. Double Dash Double Dot=DOUBLE_DASH_DOUBLE_DOT;0. Dash Triple Dot=DASH_TRIPLE_DOT;0. Double Dash Triple Dot=DOUBLE_DASH_TRIPLE_DOT;0. ================================================ FILE: CAD/Design Data/DWG-DXF/exportdxf.ini ================================================ [EXPORT SELECT OPTIONS] AUTOCAD VERSION=AutoCAD 2007 CREATE AUTOCAD MECHANICAL=No USE TRANSMITTAL=Yes USE CUSTOMIZE=No CUSTOMIZE FILE=Design Data\DWG-DXF\FlatPattern.xml CREATE LAYER GROUP=No PARTS ONLY=No [EXPORT PROPERTIES] SELECTED PROPERTIES= [EXPORT DESTINATION] SPACE=Model SCALING=Geometry MAPPING=MapsBest MODEL GEOMETRY ONLY=No EXPLODE DIMENSIONS=No SYMBOLS ARE BLOCKED=Yes AUTOCAD TEMPLATE= DESTINATION DXF=Yes [EXPORT LINE TYPE & LINE SCALE] LINE TYPE FILE=COMPATIBILITY\Support\invANSI.lin Continuous=Continuous;0. Dashed=DASHED;0. Dashed Space=DASHED_SPACE;0. Long Dash Dotted=LONG_DASH_DOTTED;0. Long Dash Double Dot=LONG_DASH_DOUBLE_DOT;0. Long Dash Triple Dot=LONG_DASH_TRIPLE_DOT;0. Dotted=DOTTED;0. Chain=CHAIN;0. Double Dash Chain=DOUBLE_DASH_CHAIN;0. Dash Double Dot=DASH_DOUBLE_DOT;0. Dash Dot=DASH_DOT;0. Double Dash Dot=DOUBLE_DASH_DOT;0. Double Dash Double Dot=DOUBLE_DASH_DOUBLE_DOT;0. Dash Triple Dot=DASH_TRIPLE_DOT;0. Double Dash Triple Dot=DOUBLE_DASH_TRIPLE_DOT;0. ================================================ FILE: CAD/Design Data/DWG-DXF/importacad.ini ================================================ [COMMON OPTIONS] FILE VERSION=3.0 IMPORT FILE TYPE=AutoCAD DWG File FILE UNITS= SELECTED LAYOUT= IMPORT LAYOUTS=No IMPORT MODEL SPACE=Yes DESTINATION DIRECTORY= DRAWING TEMPLATE=Standard.idw SHEET SIZE=Custom Millimeters PART TEMPLATE=Standard.ipt ASSEMBLY TEMPLATE=Standard.iam [2D OPTIONS] DESTINATION 2D DATA=New Drawing IMPORT TO 3D SKETCHES=No IMPORT 3D SOLIDS=No IMPORT 3D SOLIDS TO SINGLE PART FILE=No CONSTRAIN ENDPOINTS (SKETCH)=Yes CONSTRAIN ENDPOINTS (DRAWING)=No DETECT FROM FILE=Yes USE DEFAULT NAMES=Yes PROMOTE DRAWING DIMENSIONS=No LAYERS OFF= LAYERS ON= [IMPORT MAP LAYER TO SKETCH] [IMPORT MAP ACAD FONT TO IVT FONT] [3D OPTIONS] TRANSLATE MODEL=Yes TRANSLATE DRAWING VIEWS=No PART MODE=Translate Feature Recipe FEATURE RECIPE MODE=Translate Recipe If All Features Supported COMPDEF MODE=Translate Instanced CompDefs Only DRAWING MODE=Unassociated Drawing Views DUPLICATE FILE ACTION=Overwrite Existing File SUPPRESS SINGLE PART ASSEMBLY=No ================================================ FILE: CAD/Design Data/DWG-DXF/importdxf.ini ================================================ [COMMON OPTIONS] FILE VERSION=3.0 IMPORT FILE TYPE=DXF File FILE UNITS= SELECTED LAYOUT= IMPORT LAYOUTS=No IMPORT MODEL SPACE=Yes DESTINATION DIRECTORY= DRAWING TEMPLATE=Standard.idw SHEET SIZE=Custom Millimeters PART TEMPLATE=Standard.ipt ASSEMBLY TEMPLATE=Standard.iam [2D OPTIONS] DESTINATION 2D DATA=New Drawing IMPORT TO 3D SKETCHES=No IMPORT 3D SOLIDS=No IMPORT 3D SOLIDS TO SINGLE PART FILE=No CONSTRAIN ENDPOINTS (SKETCH)=Yes CONSTRAIN ENDPOINTS (DRAWING)=No DETECT FROM FILE=Yes USE DEFAULT NAMES=Yes PROMOTE DRAWING DIMENSIONS=No LAYERS OFF= LAYERS ON= [IMPORT MAP LAYER TO SKETCH] [IMPORT MAP ACAD FONT TO IVT FONT] [3D OPTIONS] TRANSLATE MODEL=Yes TRANSLATE DRAWING VIEWS=No PART MODE=Translate Feature Recipe FEATURE RECIPE MODE=Translate Recipe If All Features Supported COMPDEF MODE=Translate Instanced CompDefs Only DRAWING MODE=Unassociated Drawing Views DUPLICATE FILE ACTION=Overwrite Existing File SUPPRESS SINGLE PART ASSEMBLY=No ================================================ FILE: CAD/Design Data/DWG-DXF/importmdt.ini ================================================ [COMMON OPTIONS] FILE VERSION=3.0 IMPORT FILE TYPE=MDT DWG File FILE UNITS= SELECTED LAYOUT= IMPORT LAYOUTS=No IMPORT MODEL SPACE=Yes DESTINATION DIRECTORY= DRAWING TEMPLATE=Standard.idw SHEET SIZE=Custom Millimeters PART TEMPLATE=Standard.ipt ASSEMBLY TEMPLATE=Standard.iam [2D OPTIONS] DESTINATION 2D DATA=New Drawing IMPORT TO 3D SKETCHES=No IMPORT 3D SOLIDS=No IMPORT 3D SOLIDS TO SINGLE PART FILE=No CONSTRAIN ENDPOINTS (SKETCH)=Yes CONSTRAIN ENDPOINTS (DRAWING)=No DETECT FROM FILE=Yes USE DEFAULT NAMES=Yes PROMOTE DRAWING DIMENSIONS=No LAYERS OFF= LAYERS ON= [IMPORT MAP LAYER TO SKETCH] [IMPORT MAP ACAD FONT TO IVT FONT] [3D OPTIONS] TRANSLATE MODEL=Yes TRANSLATE DRAWING VIEWS=No PART MODE=Translate Feature Recipe FEATURE RECIPE MODE=Translate Recipe If All Features Supported COMPDEF MODE=Translate Instanced CompDefs Only DRAWING MODE=Unassociated Drawing Views DUPLICATE FILE ACTION=Overwrite Existing File SUPPRESS SINGLE PART ASSEMBLY=No ================================================ FILE: CAD/Design Data/Simulation/Report/Configuration.htm ================================================ <!--iif(PARAMETRIC)<div> <h3><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$ConfName$</h3> <div style="display:"> <blockquote><!--iif(DESIGNPARAMETERS) <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif-->  $$msg16074$</h4> <div style="display:"> <blockquote> <table class="ta"> <tr> <td><b>$$msg12053$</b></td> <td><b>$$msg12057$</b></td> <td><b>$$msg12054$</b></td> <td><b>$$msg12056$</b></td> <td><b>$$msg12093$</b></td> </tr> $$GroupDesignParameters$ </table> </blockquote> </div></div> iif--> iif--><!--iif(STATIC) <!--iif(REACTIONS) <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif-->  $$msg16064$</h4> <div style="display:"> <blockquote> <table class="ta"> <tr> <td rowspan="2"><b>$$msg12046$</b></td> <td colspan="2"><b>$$msg16065$</b></td> <td colspan="2"><b>$$msg16066$</b></td> </tr> <tr> <td><b>$$msg16028$</b></td> <td><b>$$msg16067$</b></td> <td><b>$$msg16028$</b></td> <td><b>$$msg16067$</b></td> </tr> $$GroupReactionForces$ </table> </blockquote> </div></div> iif--> <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg16071$</h4> <div style="display:"> <blockquote> <table class="ta"> <tr> <td><b>$$msg16032$</b></td> <td><b>$$msg16080$</b></td> <td><b>$$msg16081$</b></td> </tr> <tr> <td>$$msg12197$</td> <td colspan="2">$$valueMax92$</td> </tr> <tr> <td>$$msg12196$</td> <td colspan="2">$$valueMax93$</td> </tr><!--iif(VON_MISES) <tr> <td>$$msg12170$</td> <td>$$valueMin1$</td> <td>$$valueMax1$</td> </tr> iif--><!--iif(STRESS1) <tr> <td>$$msg12171$</td> <td>$$valueMin6$</td> <td>$$valueMax6$</td> </tr> iif--><!--iif(STRESS3) <tr> <td>$$msg12172$</td> <td>$$valueMin8$</td> <td>$$valueMax8$</td> </tr> iif--><!--iif(DISPLACEMENTXYZ) <tr> <td>$$msg12179$</td> <td>$$valueMin2$</td> <td>$$valueMax2$</td> </tr> iif--><!--iif(SAFETYFACTOR) <tr> <td>$$msg12378$</td> <td>$$valueMin57$</td> <td>$$valueMax57$</td> </tr> iif--><!--iif(SIGMAXX) <tr> <td>$$msg12173$</td> <td>$$valueMin9$</td> <td>$$valueMax9$</td> </tr> iif--><!--iif(SIGMAXY) <tr> <td>$$msg12174$</td> <td>$$valueMin10$</td> <td>$$valueMax10$</td> </tr> iif--><!--iif(SIGMAXZ) <tr> <td>$$msg12175$</td> <td>$$valueMin11$</td> <td>$$valueMax11$</td> </tr> iif--><!--iif(SIGMAYY) <tr> <td>$$msg12176$</td> <td>$$valueMin12$</td> <td>$$valueMax12$</td> </tr> iif--><!--iif(SIGMAYZ) <tr> <td>$$msg12177$</td> <td>$$valueMin13$</td> <td>$$valueMax13$</td> </tr> iif--><!--iif(SIGMAZZ) <tr> <td>$$msg12178$</td> <td>$$valueMin14$</td> <td>$$valueMax14$</td> </tr> iif--><!--iif(DISPLACEMENTX) <tr> <td>$$msg12180$</td> <td>$$valueMin3$</td> <td>$$valueMax3$</td> </tr> iif--><!--iif(DISPLACEMENTY) <tr> <td>$$msg12181$</td> <td>$$valueMin4$</td> <td>$$valueMax4$</td> </tr> iif--><!--iif(DISPLACEMENTZ) <tr> <td>$$msg12182$</td> <td>$$valueMin5$</td> <td>$$valueMax5$</td> </tr> iif--><!--iif(STRAINEQ) <tr> <td>$$msg12213$</td> <td>$$valueMin80$</td> <td>$$valueMax80$</td> </tr> iif--><!--iif(STRAIN1) <tr> <td>$$msg12214$</td> <td>$$valueMin81$</td> <td>$$valueMax81$</td> </tr> iif--><!--iif(STRAIN3) <tr> <td>$$msg12216$</td> <td>$$valueMin83$</td> <td>$$valueMax83$</td> </tr> iif--><!--iif(STRAINXX) <tr> <td>$$msg12186$</td> <td>$$valueMin58$</td> <td>$$valueMax58$</td> </tr> iif--><!--iif(STRAINXY) <tr> <td>$$msg12187$</td> <td>$$valueMin59$</td> <td>$$valueMax59$</td> </tr> iif--><!--iif(STRAINXZ) <tr> <td>$$msg12188$</td> <td>$$valueMin60$</td> <td>$$valueMax60$</td> </tr> iif--><!--iif(STRAINYY) <tr> <td>$$msg12189$</td> <td>$$valueMin61$</td> <td>$$valueMax61$</td> </tr> iif--><!--iif(STRAINYZ) <tr> <td>$$msg12190$</td> <td>$$valueMin62$</td> <td>$$valueMax62$</td> </tr> iif--><!--iif(STRAINZZ) <tr> <td>$$msg12191$</td> <td>$$valueMin63$</td> <td>$$valueMax63$</td> </tr> iif--><!--iif(PRESSUREXYZ) <tr> <td>$$msg12192$</td> <td>$$valueMin76$</td> <td>$$valueMax76$</td> </tr> iif--><!--iif(PRESSUREX) <tr> <td>$$msg12193$</td> <td>$$valueMin77$</td> <td>$$valueMax77$</td> </tr> iif--><!--iif(PRESSUREY) <tr> <td>$$msg12194$</td> <td>$$valueMin78$</td> <td>$$valueMax78$</td> </tr> iif--><!--iif(PRESSUREZ) <tr> <td>$$msg12195$</td> <td>$$valueMin79$</td> <td>$$valueMax79$</td> </tr> iif--> </table> </blockquote> </div></div> iif--><!--iif(not STATIC) <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg16075$</h4> <div style="display:"> <blockquote> <table class="ta"> $$GroupModalFrequency$ </table> </blockquote> </div></div> <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg16071$</h4> <div style="display:"> <blockquote> <table class="ta"> <tr> <td><b>$$msg16032$</b></td> <td><b>$$msg12052$</b></td> </tr> <tr> <td>$$msg12197$</td> <td>$$valueMax92$</td> </tr> <tr> <td>$$msg12196$</td> <td>$$valueMax93$</td> </tr> </table> </blockquote> </div></div> iif--><!--iif(RESULTS) <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg16062$</h4> <div style="display:"> <blockquote><!--iif(STATIC)<!--iif(VON_MISES) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12170$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_1.png"><img class="z" src="$$ID$_1.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_1_rev.png"><img class="z" src="$$ID$_1_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRESS1) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12171$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_6.png"><img class="z" src="$$ID$_6.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_6_rev.png"><img class="z" src="$$ID$_6_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRESS3) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12172$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_8.png"><img class="z" src="$$ID$_8.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_8_rev.png"><img class="z" src="$$ID$_8_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(DISPLACEMENTXYZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12179$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_2.png"><img class="z" src="$$ID$_2.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_2_rev.png"><img class="z" src="$$ID$_2_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(SAFETYFACTOR) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12378$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_57.png"><img class="z" src="$$ID$_57.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_57_rev.png"><img class="z" src="$$ID$_57_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(SIGMAXX) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12173$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_9.png"><img class="z" src="$$ID$_9.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_9_rev.png"><img class="z" src="$$ID$_9_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(SIGMAXY) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12174$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_10.png"><img class="z" src="$$ID$_10.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_10_rev.png"><img class="z" src="$$ID$_10_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(SIGMAXZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12175$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_11.png"><img class="z" src="$$ID$_11.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_11_rev.png"><img class="z" src="$$ID$_11_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(SIGMAYY) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12176$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_12.png"><img class="z" src="$$ID$_12.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_12_rev.png"><img class="z" src="$$ID$_12_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(SIGMAYZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12177$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_13.png"><img class="z" src="$$ID$_13.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_13_rev.png"><img class="z" src="$$ID$_13_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(SIGMAZZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12178$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_14.png"><img class="z" src="$$ID$_14.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_14_rev.png"><img class="z" src="$$ID$_14_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(DISPLACEMENTX) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12180$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_3.png"><img class="z" src="$$ID$_3.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_3_rev.png"><img class="z" src="$$ID$_3_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(DISPLACEMENTY) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12181$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_4.png"><img class="z" src="$$ID$_4.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_4_rev.png"><img class="z" src="$$ID$_4_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(DISPLACEMENTZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12182$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_5.png"><img class="z" src="$$ID$_5.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_5_rev.png"><img class="z" src="$$ID$_5_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAINEQ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12213$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_80.png"><img class="z" src="$$ID$_80.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_80_rev.png"><img class="z" src="$$ID$_80_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAIN1) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12214$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_81.png"><img class="z" src="$$ID$_81.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_81_rev.png"><img class="z" src="$$ID$_81_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAIN3) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12216$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_83.png"><img class="z" src="$$ID$_83.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_83_rev.png"><img class="z" src="$$ID$_83_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAINXX) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12186$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_58.png"><img class="z" src="$$ID$_58.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_58_rev.png"><img class="z" src="$$ID$_58_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAINXY) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12187$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_59.png"><img class="z" src="$$ID$_59.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_59_rev.png"><img class="z" src="$$ID$_59_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAINXZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12188$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_60.png"><img class="z" src="$$ID$_60.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_60_rev.png"><img class="z" src="$$ID$_60_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAINYY) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12189$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_61.png"><img class="z" src="$$ID$_61.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_61_rev.png"><img class="z" src="$$ID$_61_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAINYZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12190$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_62.png"><img class="z" src="$$ID$_62.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_62_rev.png"><img class="z" src="$$ID$_62_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(STRAINZZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12191$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_63.png"><img class="z" src="$$ID$_63.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_63_rev.png"><img class="z" src="$$ID$_63_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(PRESSUREXYZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12192$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_76.png"><img class="z" src="$$ID$_76.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_76_rev.png"><img class="z" src="$$ID$_76_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(PRESSUREX) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12193$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_77.png"><img class="z" src="$$ID$_77.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_77_rev.png"><img class="z" src="$$ID$_77_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(PRESSUREY) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12194$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_78.png"><img class="z" src="$$ID$_78.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_78_rev.png"><img class="z" src="$$ID$_78_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--><!--iif(PRESSUREZ) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg12195$</h5> <div style="display:"> <blockquote> <p><a href="$$ID$_79.png"><img class="z" src="$$ID$_79.png" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$ID$_79_rev.png"><img class="z" src="$$ID$_79_rev.png" alt="" /></a></p> iif--> </blockquote> </div></div> iif--> iif--><!--iif(not STATIC) $$FiguresModalFrequency$ iif--> </blockquote> </div></div> iif--><!--iif(PARAMETRIC) </blockquote> </div></div> iif--> ================================================ FILE: CAD/Design Data/Simulation/Report/Constraint.htm ================================================ <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$ConstraintName$</h4> <div style="display:"> <blockquote> <table class="ta"> <tr> <td>$$msg16047$</td> <td>$$Type$</td> $$ConstraintParameters$ </tr> </table><!--iif(CONSTRAINTSVIEW) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg16048$</h5> <div style="display:"> <p><a href="$$ImagePath$"><img class="z" src="$$ImagePath$" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$OppositeImagePath$"><img class="z" src="$$OppositeImagePath$" alt="" /></a></p> iif--> </div></div> iif--> </blockquote> </div></div> ================================================ FILE: CAD/Design Data/Simulation/Report/Contact.htm ================================================ <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$ContactName$</h4> <div style="display:"> <blockquote> <table class="ta"> <tr> <td>$$msg16050$</td> <td>$$Type$</td> </tr> $$ContactRows$ </table> </blockquote> </div></div> ================================================ FILE: CAD/Design Data/Simulation/Report/Figure.htm ================================================ <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$FigureName$</h5> <div style="display:"> <blockquote> <p><a href="$$FigureSubPath$"><img class="z" src="$$FigureSubPath$" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$FigureSubPathRev$"><img class="z" src="$$FigureSubPathRev$" alt="" /></a></p> iif--> </blockquote> </div></div> ================================================ FILE: CAD/Design Data/Simulation/Report/Load.htm ================================================ <div> <h4><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$LoadName$</h4> <div style="display:"> <blockquote> <table class="ta"> <tr> <td>$$msg16046$</td> <td>$$LoadType$</td> </tr> $$LoadRows$ </table><!--iif(LOADSVIEW) <div> <h5><!--iif(JAVA)<img class="p" src="Images/minus.png" onclick="aa(this)" alt="" /> iif--> $$msg16048$</h5> <div style="display:"> <p><a href="$$ImagePath$"><img class="z" src="$$ImagePath$" alt="" /></a></p><!--iif(OPPOSITE) <p><a href="$$OppositeImagePath$"><img class="z" src="$$OppositeImagePath$" alt="" /></a></p> iif--> </div></div> iif--> </blockquote> </div></div> ================================================ FILE: CAD/Design Data/Simulation/Report/Main.htm ================================================ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=unicode" /><!--iif(JAVA) <meta http-equiv="Content-Script-Type" content="text/javascript" /> iif--> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>$$MainTitle$

$$MainTitle$

$$msg16061$: $$FileName$
$$msg16010$: $$version$
$$msg16012$: $$CreateDate$
$$msg16011$: $$SimAuthor$
 $$msg16014$
 $$msg15059$
$$GroupSummary$
iif--> $$msg15068$
$$GroupProject$
iif--> $$msg15053$
$$GroupStatus$
iif--> $$msg15051$
$$GroupCustom$
iif--> $$msg15082$
$$GroupPhysical$

$$msg16090$

iif--> iif--> $$GroupSimulation$


$$FilePath$

================================================ FILE: CAD/Design Data/Simulation/Report/Material.htm ================================================
$$msg16032$ $$Name$
$$msg16033$ $$msg16034$ $$Density$
$$msg16024$ $$YieldStrength$
$$msg16049$ $$UltimateStrength$
$$msg16036$ $$msg16037$ $$YoungsModulus$
$$msg16038$ $$PoissonsRatio$
$$msg16039$ $$ShearModulus$
$$msg16040$ $$msg16041$ $$LinearExpansion$
$$msg16043$ $$ThermalConductivity$
$$msg16044$ $$SpecificHeat$
$$msg16045$ $$PartNames$
================================================ FILE: CAD/Design Data/Simulation/Report/ReactionForces.htm ================================================ $$ConstraintName$ $$Force$ $$ForceX$ $$Moment$ $$MomentX$ $$ForceY$ $$MomentY$ $$ForceZ$ $$MomentZ$ ================================================ FILE: CAD/Design Data/Simulation/Report/Simulation.htm ================================================

 $$SimulationName$

$$msg16015$

iif--> iif-->
$$msg16016$ $$DesignObjective$
$$msg16017$ $$SimulationType$
$$msg16013$ $$LastModifDate$


$$msg16018$

$$msg16019$ $$AvgMeshSize$
$$msg16020$ $$MinSize$
$$msg16021$ $$GradingFactor$
$$msg16022$ $$MaxTurnAngle$
$$msg16023$ $$CurvedMesh$
iif--> $$msg16025$
$$GroupMaterial$
iif--> $$msg16026$
$$GroupLoad$ $$GroupConstraint$ $$GroupContact$
iif--> $$msg16027$
$$GroupConfiguration$
iif--> ================================================ FILE: Cameras.cpp ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "Cameras.h" // Init camera capture and get ready to start the scanning thread Cameras::Cameras(wxTextCtrl *pMemo, wxFrame *windowIn, ScanStatus *scanStatusIn, int cameraNumIn) { window = windowIn; m_MyCapture = NULL; m_LastFrame = NULL; m_pMemo = pMemo; m_CamPaused = false; m_CamPlaying = false; cameraNum = cameraNumIn; // m_CamStopped = false; distanceToReferenceWall = -1; scanStatus = scanStatusIn; myScanThread = NULL; noLaserImage = NULL; laserCenteredImage = NULL; captureThread = NULL; thresholdPixelValue = 25; brightnessFilterValue = 0.8; // filename format for the first frame from camera 0 is MyFrame0.bmp // the 12th frame is MyFrame12.bmp m_filename = wxT("MyFrame"); // This is the base name, integers will be appended for each frame captured m_fileformat = wxT(".bmp"); // can choose bmp, jpg, etc for saving images m_LastCapturedFrameFilename = wxT(""); m_FilenameIndex = wxT(""); m_NumberOfCapturedFrames = 0; //cvNamedWindow("My Camera", CV_WINDOW_AUTOSIZE); if (InitializeCamera() == true) { captureThread = new CaptureThread(window, m_MyCapture); if ( captureThread->Create() != wxTHREAD_NO_ERROR ) { m_pMemo->AppendText(wxT("\nFailed to create capture thread.")); } else { captureThread->Run(); captureThread->SetCapture(PREVIEW); } } } // kill the thread and release the camera Cameras::~Cameras() { StopCaptureThread(); if (noLaserImage) { cvReleaseImage(&noLaserImage); } if (laserCenteredImage) { cvReleaseImage(&laserCenteredImage); } if (m_MyCapture) cvReleaseCapture(&m_MyCapture); } // Attempt to connect to the camera and grab a frame bool Cameras::InitializeCamera() { //m_MyCapture = cvCreateCameraCapture(CV_CAP_ANY); m_MyCapture = cvCaptureFromCAM(cameraNum); if (!m_MyCapture) { m_pMemo->AppendText(wxT("\nFailed to connect to camera.")); return false; } cvQueryFrame(m_MyCapture); // this call is necessary to get correct capture properties // TODO: These resolution selection calls don't appear to work right now. //cvSetCaptureProperty(m_MyCapture, CV_CAP_PROP_FRAME_WIDTH, 1280); //cvSetCaptureProperty(m_MyCapture, CV_CAP_PROP_FRAME_HEIGHT, 960); m_FrameHeight = (int) cvGetCaptureProperty(m_MyCapture, CV_CAP_PROP_FRAME_HEIGHT); m_FrameWidth = (int) cvGetCaptureProperty(m_MyCapture, CV_CAP_PROP_FRAME_WIDTH); //m_FrameRate = (int) cvGetCaptureProperty(m_MyCapture, CV_CAP_PROP_FPS); wxString TempString = wxT("\nCamera online at "); TempString << m_FrameWidth << wxT("x") << m_FrameHeight << wxT("."); m_pMemo->AppendText(TempString); FrameGrab(); return true; } // Determine if we are OK to capture from the camera bool Cameras::CaptureExists() { if (!m_MyCapture) { m_pMemo->AppendText(wxT("\nCamera not initialized.")); return false; } return true; } // Grab a frame (note that this is NOT the same as the FrameGrab in ScanThread.cpp) // TODO: remove this IplImage *Cameras::FrameGrab() { if (!CaptureExists()) return NULL; for (int i=0; i < 8; i++) cvGrabFrame(m_MyCapture); // it takes a few images to get to the newest one m_LastFrame = cvRetrieveFrame(m_MyCapture); //cvShowImage("My Camera", m_LastFrame); return m_LastFrame; } // Save an image // TODO: remove this void Cameras::SaveSingleFrame() { if (!CaptureExists()) return; m_NumberOfCapturedFrames++; cvSaveImage(GetLastCapturedFrameFilename().char_str(), m_LastFrame); //m_pMemo->AppendText(wxChar((char*)GetLastCapturedFrameFilename().c_str())); //cvSaveImage("testImage.bmp", m_LastFrame); } // TODO: remove this wxString Cameras::GetLastCapturedFrameFilename() { m_LastCapturedFrameFilename = m_filename; // basic filename m_LastCapturedFrameFilename << m_NumberOfCapturedFrames; m_LastCapturedFrameFilename.Append(m_fileformat); m_pMemo->AppendText(m_LastCapturedFrameFilename); return m_LastCapturedFrameFilename; } // Start the scan thread! void Cameras::StartScan() { if (GetInitialData() == true) { myScanThread = new ScanThread(window, captureThread, scanStatus, noLaserImage, laserCenteredImage, distanceToReferenceWall); if ( myScanThread->Create() != wxTHREAD_NO_ERROR ) { m_pMemo->AppendText(wxT("\nFailed to create scan thread.")); } else { scanStatus->SetScanning(true); myScanThread->SetThresholdPixelValue(thresholdPixelValue); myScanThread->SetBrightnessThreshold(brightnessFilterValue); myScanThread->Run(); } } } // Shutdown the thread void Cameras::StopCaptureThread() { if (captureThread) { captureThread->SetCapture(STOP); captureThread->Wait(); captureThread = NULL; } } bool Cameras::GetInitialData() { // pop up the dialog box to ask the user to center the laser or give us the distance // to the reference wall. DistanceToReferenceDialog distDiag(captureThread, window, wxID_ANY); int returnNum = distDiag.ShowModal(); if (returnNum == wxID_OK) { distanceToReferenceWall = distDiag.GetWallDistance(); noLaserImage = distDiag.GetNoLaserImage(); } else if (returnNum == USER_CENTERED_LASER) { noLaserImage = distDiag.GetNoLaserImage(); laserCenteredImage = distDiag.GetLaserCenteredImage(); } else { // cancelled return false; } return true; } ================================================ FILE: Cameras.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef CAMERAS_H #define CAMERAS_H #include #ifndef OPENCV_INCLUDES #define OPENCV_INCLUDES #include "cv.h" #include "highgui.h" #endif // OPENCV_INCLUDES #include "ScanThread.h" #include "CaptureThread.h" #include "ScanStatus.h" #include "DistanceToReferenceDialog.h" /* * Init camera capture and starts scanning thread which also supports image preview. */ class Cameras { public: // pMemo is the text box to output strings to, frame gets events sent to it. Cameras(wxTextCtrl *pMemo, wxFrame *windowIn, ScanStatus *scanStatusIn, int cameraNumIn); virtual ~Cameras(); // Attempt to connect to the camera bool InitializeCamera(); // Get a frame IplImage* FrameGrab(); IplImage* GetLastFrame() { return m_LastFrame; } void SaveSingleFrame(); wxString GetLastCapturedFrameFilename(); // Get a reference to the scan thread ScanThread* GetScanThread() { return myScanThread; } void SetThresholdPixelValue(int val) { thresholdPixelValue = val; } void SetBrightnessFilterValue(float val) { brightnessFilterValue = val; } // Start the scan thread void StartScan(); void StopCaptureThread(); bool GetInitialData(); private: // window to send events to (Cameras doesn't, but ScanThread does send events) wxFrame *window; // text control to send log events to wxTextCtrl *m_pMemo; // OpenCV camera capture object CvCapture * m_MyCapture; // contains the last frame captured IplImage *m_LastFrame; // contains the object we are scanning without the laser IplImage *noLaserImage; // contains the laser centered image IplImage *laserCenteredImage; // ScanThread that does most of the work ScanThread *myScanThread; CaptureThread *captureThread; ScanStatus *scanStatus; float distanceToReferenceWall; float brightnessFilterValue; wxString m_filename, m_CamSpacer, m_fileformat, m_FilenameIndex, m_LastCapturedFrameFilename; int m_NumberOfCapturedFrames, m_FrameHeight, m_FrameWidth, m_FrameRate, thresholdPixelValue, cameraNum; bool m_CamPaused, m_CamPlaying, m_Camped; bool CaptureExists(); }; #endif // CAMERAS_H ================================================ FILE: CaptureThread.cpp ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "CaptureThread.h" DEFINE_EVENT_TYPE(IMAGE_UPDATE_EVENT) CaptureThread::CaptureThread(wxFrame *windowIn, CvCapture *captureIn) : wxThread(wxTHREAD_JOINABLE) { capturing = IDLE; window = windowIn; cvCapture = captureIn; } // called on thread quit -- free all memory void CaptureThread::OnExit() { } // Called when thread is started void* CaptureThread::Entry() { while (true) { // check to see if the thread should exit if (TestDestroy() == true) { break; } if (capturing == CAPTURE) { // get a new image CaptureFrame(); } else if (capturing == PREVIEW) { // get a new image and show it on screen CaptureFrame(); SendFrame(imageQueue.back()); } else if (capturing == IDLE) { Sleep(10); } else if (capturing == STOP) { break; } Yield(); } return NULL; } void CaptureThread::CaptureFrame() { if (!cvCapture){ //fail return; } if (imageQueue.size() > 100) { // stack too big, throw out some data imageQueue.pop(); } for (int i=0; i < 1; i++) cvGrabFrame(cvCapture); // it takes a few images to get to the newest one IplImage* lastFrame = cvRetrieveFrame(cvCapture); // cvShowImage("My Camera", LastFrame); imageQueue.push(lastFrame); } IplImage* CaptureThread::Pop() { if (imageQueue.size() <= 0) { CaptureFrame(); } IplImage *image = imageQueue.front(); if (imageQueue.size() > 1) { imageQueue.pop(); } return image; } /* * Flush the stack, allowing the user to make sure s/he gets the most * up to date image. Delete all images in the stack. */ void CaptureThread::Flush() { CaptureStatus oldCap = capturing; capturing = IDLE; while (imageQueue.size() > 0) { imageQueue.pop(); // since you should never release an image gotten by cvRetrieveFrame, // we don't need to release images here. } capturing = oldCap; } // Display the given image on the frame // Copies the image so it is safe to change it after the function call void CaptureThread::SendFrame(IplImage *frame) { if (!frame) { return; } IplImage* pDstImg; CvSize sz = cvSize(frame->width, frame->height); pDstImg = cvCreateImage(sz, 8, 3); cvZero(pDstImg); // convert the image into a 3 channel image for display on the frame if (frame->nChannels == 1) { //cvCvtColor(frame, pDstImg, CV_GRAY2BGR); // another way to convert grayscale to RGB cvMerge(frame, frame, frame, NULL, pDstImg); } else if (frame->nChannels == 3){ // opencv stores images as BGR instead of RGB so we need to convert cvConvertImage(frame, pDstImg, CV_CVTIMG_SWAP_RB); } else { // we don't know how to display this image based on its number of channels // give up cvReleaseImage( &pDstImg ); return; } wxCommandEvent event(IMAGE_UPDATE_EVENT, GetId()); // send the image in the event event.SetClientData(pDstImg); // Send the event to the frame! window->GetEventHandler()->AddPendingEvent(event); } ================================================ FILE: CaptureThread.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef CAPTURE_THREAD_H #define CAPTURE_THREAD_H #include #include "cv.h" #include "highgui.h" #include using namespace std; /* * IDLE = don't capture, but stay alive * CAPTURE = Try to get every frame, enabling a limited-size buffer * PREVIEW = Get frames and immediatley send them to the frame via events * STOP = Leave the thread loop. Set this right before you Wait() for the thread to exit. */ enum CaptureStatus { IDLE, CAPTURE, PREVIEW, STOP }; BEGIN_DECLARE_EVENT_TYPES() DECLARE_EVENT_TYPE(IMAGE_UPDATE_EVENT, -1) END_DECLARE_EVENT_TYPES() class CaptureThread : public wxThread { public: // Constructor CaptureThread(wxFrame *windowIn, CvCapture *captureIn); // Function that is run on thread init virtual void* Entry(); // Safely close virtual void OnExit(); IplImage* Pop(); void SetCapture(CaptureStatus newStatus) { capturing = newStatus; } int GetQueueSize() { return imageQueue.size(); } void SendFrame(IplImage *frame); void Flush(); private: CaptureStatus capturing; wxFrame *window; CvCapture *cvCapture; void CaptureFrame(); queue imageQueue; }; #endif //CAPTURE_THREAD_H ================================================ FILE: ChangeLog ================================================ 0.3.1 (Jan. 16, 2017): Fix wxWidgets errors. 0.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. 0.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. 0.2 (Fall 2009): Substantial improvement in accuracy by moving from a calibration-only method to a reference-pixel method. Enabled .ply output. 0.1 (Fall 2008): Original version. ================================================ FILE: DistanceToReferenceDialog.cpp ================================================ #include "DistanceToReferenceDialog.h" //(*InternalHeaders(DistanceToReferenceDialog) #include #include //*) //(*IdInit(DistanceToReferenceDialog) const long DistanceToReferenceDialog::ID_STATICTEXT1 = wxNewId(); const long DistanceToReferenceDialog::ID_STATICLINE1 = wxNewId(); const long DistanceToReferenceDialog::ID_STATICTEXT4 = wxNewId(); const long DistanceToReferenceDialog::ID_BUTTON1 = wxNewId(); const long DistanceToReferenceDialog::ID_STATICTEXT5 = wxNewId(); const long DistanceToReferenceDialog::ID_BUTTON2 = wxNewId(); const long DistanceToReferenceDialog::ID_STATICTEXT6 = wxNewId(); const long DistanceToReferenceDialog::ID_STATICTEXT7 = wxNewId(); const long DistanceToReferenceDialog::ID_SPINCTRL1 = wxNewId(); const long DistanceToReferenceDialog::ID_PANEL1 = wxNewId(); //*) BEGIN_EVENT_TABLE(DistanceToReferenceDialog,wxDialog) //(*EventTable(DistanceToReferenceDialog) //*) END_EVENT_TABLE() DistanceToReferenceDialog::DistanceToReferenceDialog(CaptureThread *captureThreadIn, wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size) { //(*Initialize(DistanceToReferenceDialog) wxFlexGridSizer* FlexGridSizer1; wxBoxSizer* BoxSizer2; wxBoxSizer* BoxSizer1; wxBoxSizer* BoxSizer5; Create(parent, wxID_ANY, _("Distance to Reference Surface"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, _T("wxID_ANY")); SetClientSize(wxSize(446,289)); BoxSizer1 = new wxBoxSizer(wxHORIZONTAL); Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1")); BoxSizer2 = new wxBoxSizer(wxVERTICAL); BoxSizer5 = new wxBoxSizer(wxHORIZONTAL); StaticText1 = 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")); BoxSizer5->Add(StaticText1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); BoxSizer2->Add(BoxSizer5, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticLine1 = new wxStaticLine(Panel1, ID_STATICLINE1, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE1")); BoxSizer2->Add(StaticLine1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer1 = new wxFlexGridSizer(0, 2, 0, 0); lblCoverLaser = new wxStaticText(Panel1, ID_STATICTEXT4, _("1) Cover the laser"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT4")); FlexGridSizer1->Add(lblCoverLaser, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); butLaserCovered = new wxButton(Panel1, ID_BUTTON1, _("Done"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1")); FlexGridSizer1->Add(butLaserCovered, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); lblCenterLaser = new wxStaticText(Panel1, ID_STATICTEXT5, _("2) Center the laser"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5")); lblCenterLaser->Disable(); FlexGridSizer1->Add(lblCenterLaser, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); butLaserCentered = new wxButton(Panel1, ID_BUTTON2, _("Done"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2")); butLaserCentered->Disable(); FlexGridSizer1->Add(butLaserCentered, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); lblOr = new wxStaticText(Panel1, ID_STATICTEXT6, _("or"), wxDefaultPosition, wxSize(45,17), 0, _T("ID_STATICTEXT6")); lblOr->Disable(); FlexGridSizer1->Add(lblOr, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer1->Add(-1,-1,1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); lblEnterDistance = new wxStaticText(Panel1, ID_STATICTEXT7, _("Enter the distance to the\nflat reference wall (cm):"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT7")); lblEnterDistance->Disable(); FlexGridSizer1->Add(lblEnterDistance, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); spinDistance = new wxSpinCtrl(Panel1, ID_SPINCTRL1, _T("50"), wxDefaultPosition, wxSize(79,27), 0, 0, 1000, 50, _T("ID_SPINCTRL1")); spinDistance->SetValue(_T("50")); spinDistance->Disable(); FlexGridSizer1->Add(spinDistance, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); FlexGridSizer1->Add(-1,-1,1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); butDistanceEntered = new wxButton(Panel1, wxID_OK, _("Done"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("wxID_OK")); butDistanceEntered->Disable(); FlexGridSizer1->Add(butDistanceEntered, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); BoxSizer2->Add(FlexGridSizer1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); Panel1->SetSizer(BoxSizer2); BoxSizer2->Fit(Panel1); BoxSizer2->SetSizeHints(Panel1); BoxSizer1->Add(Panel1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); SetSizer(BoxSizer1); BoxSizer1->SetSizeHints(this); Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DistanceToReferenceDialog::OnButLaserCoveredClick); Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&DistanceToReferenceDialog::OnButLaserCenteredClick); //*) butLaserCovered->SetFocus(); captureThread = captureThreadIn; } DistanceToReferenceDialog::~DistanceToReferenceDialog() { //(*Destroy(DistanceToReferenceDialog) //*) } void DistanceToReferenceDialog::OnButLaserCenteredClick(wxCommandEvent& event) { captureThread->Flush(); IplImage *laserCenteredTemp = captureThread->Pop(); laserCentered = cvCloneImage(laserCenteredTemp); EndModal(USER_CENTERED_LASER); } bool DistanceToReferenceDialog::TransferDataFromWindow() { distance = spinDistance->GetValue(); return true; } void DistanceToReferenceDialog::OnButLaserCoveredClick(wxCommandEvent& event) { captureThread->Flush(); IplImage *tempNoLaserImage = captureThread->Pop(); noLaserImage = cvCloneImage(tempNoLaserImage); butLaserCovered->Enable(false); lblCoverLaser->Enable(false); lblCenterLaser->Enable(true); butLaserCentered->Enable(true); lblOr->Enable(true); lblEnterDistance->Enable(true); spinDistance->Enable(true); butDistanceEntered->Enable(true); butLaserCentered->SetFocus(); } ================================================ FILE: DistanceToReferenceDialog.h ================================================ #ifndef DISTANCETOREFERENCEDIALOG_H #define DISTANCETOREFERENCEDIALOG_H //(*Headers(DistanceToReferenceDialog) #include #include #include #include #include #include #include //*) #define USER_CENTERED_LASER 999 #include "CaptureThread.h" class DistanceToReferenceDialog: public wxDialog { public: DistanceToReferenceDialog(CaptureThread *captureThreadIn, wxWindow* parent,wxWindowID id=wxID_ANY,const wxPoint& pos=wxDefaultPosition,const wxSize& size=wxDefaultSize); virtual ~DistanceToReferenceDialog(); //(*Declarations(DistanceToReferenceDialog) wxPanel* Panel1; wxButton* butLaserCentered; wxStaticText* lblOr; wxStaticText* lblCoverLaser; wxStaticText* StaticText1; wxStaticLine* StaticLine1; wxButton* butLaserCovered; wxStaticText* lblCenterLaser; wxStaticText* lblEnterDistance; wxSpinCtrl* spinDistance; wxButton* butDistanceEntered; //*) float GetWallDistance() { return distance; } IplImage* GetLaserCenteredImage() { return laserCentered; } IplImage* GetNoLaserImage() { return noLaserImage; } virtual bool TransferDataFromWindow(); protected: //(*Identifiers(DistanceToReferenceDialog) static const long ID_STATICTEXT1; static const long ID_STATICLINE1; static const long ID_STATICTEXT4; static const long ID_BUTTON1; static const long ID_STATICTEXT5; static const long ID_BUTTON2; static const long ID_STATICTEXT6; static const long ID_STATICTEXT7; static const long ID_SPINCTRL1; static const long ID_PANEL1; //*) private: //(*Handlers(DistanceToReferenceDialog) void OnButLaserCenteredClick(wxCommandEvent& event); void OnButLaserCoveredClick(wxCommandEvent& event); //*) float distance; IplImage *noLaserImage, *laserCentered; CaptureThread *captureThread; DECLARE_EVENT_TABLE() }; #endif ================================================ FILE: INSTALL ================================================ See http://www.makerscanner.com/ for instructions. ================================================ FILE: IndividualPixels.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INDIVIDUAL_PIXELS #define INDIVIDUAL_PIXELS #ifndef OPENCV_INCLUDES #define OPENCV_INCLUDES #include "cv.h" #include "highgui.h" #endif // OPENCV_INCLUDES /* * Standard code for getting individual pixel access -- RgbImage, BwImage, RgbImage Float, and BwImageFloat * Nothing especailly novel here... */ template class Pixels { private: IplImage* imgp; public: Pixels(IplImage* img=0) {imgp=img;} ~Pixels(){imgp=0;} void operator=(IplImage* img) {imgp=img;} inline T* operator[](const int rowIndx) { return ((T *)(imgp->imageData + rowIndx*imgp->widthStep));} }; typedef struct{ unsigned char b,g,r; } RgbPixel; typedef struct{ float b,g,r; } RgbPixelFloat; typedef Pixels RgbImage; typedef Pixels RgbImageFloat; typedef Pixels BwImage; typedef Pixels BwImageFloat; #endif // INDIVIDUAL_PIXELS /* How to use this class // refer to individual pixels as shown below. // when they are changed in the class's image, they change in the parameter image as well. // http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html#SECTION00053000000000000000 # For a single-channel byte image: IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); BwImage imgA(img); imgA[i][j] = 111; # For a multi-channel byte image: IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3); RgbImage imgA(img); imgA[i][j].b = 111; imgA[i][j].g = 111; imgA[i][j].r = 111; # For a multi-channel float image: IplImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3); RgbImageFloat imgA(img); imgA[i][j].b = 111; imgA[i][j].g = 111; imgA[i][j].r = 111; */ ================================================ FILE: LICENSE ================================================ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ================================================ FILE: Makefile.am ================================================ ##Process this file with automake to create Makefile.in bin_PROGRAMS = makerscanner makerscanner_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 EXTRA_DIST = laserIcon.png pixmapdir = $(datadir)/pixmaps pixmap_DATA = laserIcon.png ##AM_CPPFLAGS = $(DEPS_CFLAGS) -DPIXMAPS_DIR=\""$(datadir)/pixmaps"\" ## Add the OpenCV flags that we got from PKG_CHECK_MODULES([OPENCV], [opencv >= 2.0]) in configure.ac AM_CPPFLAGS = $(OPENCV_CFLAGS) $(DEPS_CFLAGS) -DPIXMAPS_DIR=\""$(datadir)/pixmaps"\" ## Add the OpenCV linking libraries that we got from PKG_CHECK_MODULES([OPENCV], [opencv >= 2.0]) in configure.ac makerscanner_LDADD = $(OPENCV_LIBS) ##libfoo_la_LDFLAGS = -version-info @version_info@ ================================================ FILE: MakerscannerWin3.cbp ================================================ ================================================ FILE: NEWS ================================================ See ChangeLog. ================================================ FILE: PointCloud.cpp ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "PointCloud.h" #include // define a linked list of PointCloudPoints WX_DEFINE_LIST(ListOfCloudPoints); // PointCloud holds PointCloudPoints which are individual lines in a pointcloud file // Points are identified by height in the image and by laser position PointCloud::PointCloud() { cloudMap = new CloudMap(); numberOfPoints = 0; } // Destructor -- clear the hash map and delete all PointCloudPoints PointCloud::~PointCloud() { // empty the hash map CloudMap::iterator it; for( it = cloudMap->begin(); it != cloudMap->end(); ++it ) { delete it->second; } delete cloudMap; } // The points are uniquely identified by h and laserPos. // Index is -- laserPos * 1000 + h yielding an set size of 255*1000 + 1000 = 256,000 // Each hash map container holds a linked list of PointCloudPoints, which can be combined in an average // for that point int PointCloud::GetKey(int h, int laserPos) { return laserPos * 1000 + h; } // Helper function to add a point that creates the PointCloudPoint for you void PointCloud::AddPoint(double dist, double theta, double phi, int r, int g, int b, int w, int h, int laserPos) { // make a new point PointCloudPoint *newPoint = new PointCloudPoint(dist, theta, phi, r, g, b, w, h, laserPos); AddPoint(newPoint); } // Add a point to the point cloud. If there is not already a point at this h, and laserPos, make // a new linked list. Otherwise, add to the linked list that we already have for this location void PointCloud::AddPoint(PointCloudPoint *point) { // first, get the list ListOfCloudPoints *thisList; if (cloudMap->find(GetKey(point->h, point->laserPosition)) == cloudMap->end()) { // this is a new point, create a new list thisList = new ListOfCloudPoints(); (*cloudMap)[GetKey(point->h, point->laserPosition)] = thisList; numberOfPoints ++; } else { thisList = (*cloudMap)[GetKey(point->h, point->laserPosition)]; } // add the point to the list thisList->Append(point); } // Return a .ply file containing the entire point cloud (large string!) wxString PointCloud::GetPointCloudPly() { wxString cloudString = wxT(""); wxString headerString = wxT("ply"); headerString += wxT("\nformat ascii 1.0"); headerString += wxT("\nelement vertex "); headerString << numberOfPoints; headerString += wxT("\nproperty float x"); headerString += wxT("\nproperty float y"); headerString += wxT("\nproperty float z"); headerString += wxT("\nproperty uchar diffuse_red"); headerString += wxT("\nproperty uchar diffuse_green"); headerString += wxT("\nproperty uchar diffuse_blue"); headerString += wxT("\nelement face 0"); headerString += wxT("\nproperty list uchar int vertex_indices"); headerString += wxT("\nend_header"); CloudMap::iterator it; ListOfCloudPoints *thisList; for( it = cloudMap->begin(); it != cloudMap->end(); ++it ) { thisList = it->second; PointCloudPoint thisPoint = AverageList(thisList); cloudString += wxT("\n") + thisPoint.GetPlyString(); } return headerString + cloudString; } // average a linked list of points to handle a case where we have more than one point per h, laserPos PointCloudPoint PointCloud::AverageList(ListOfCloudPoints *thisList) { double number = double(thisList->GetCount()); double sumDist = 0; PointCloudPoint *point = NULL; // iterate over the list and average all values for ( ListOfCloudPoints::Node *node = thisList->GetFirst(); node; node = node->GetNext() ) { point = node->GetData(); sumDist += point->dist; } if (point == NULL) { return PointCloudPoint(0, 0, 0, 0, 0, 0, 0, 0, 0); } return PointCloudPoint(sumDist/number, point->theta, point->phi, point->r, point->g, point->b, point->w, point->h, point->laserPosition); } ================================================ FILE: PointCloud.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef POINT_CLOUD_H #define POINT_CLOUD_H #include "PointCloudPoint.h" #include #include #include WX_DECLARE_LIST(PointCloudPoint, ListOfCloudPoints); WX_DECLARE_HASH_MAP( int, ListOfCloudPoints*, wxIntegerHash, wxIntegerEqual, CloudMap ); /* * This class holds point cloud data that can be fitlered and printed to a .ply file */ class PointCloud { public: PointCloud(); ~PointCloud(); void AddPoint(double dist, double theta, double phi, int r, int g, int b, int w, int h, int laserPos); void AddPoint(PointCloudPoint *point); wxString GetPointCloudPly(); private: // The points are uniquely identified by h and laserPos. // Index is -- laserPos * 1000 + h yielding an set size of 255*1000 + 1000 = 256,000 // Each hash map container holds a linked list of PointCloudPoints, which can be combined in an average // for that point int GetKey(int h, int laserPos); PointCloudPoint AverageList(ListOfCloudPoints *thisList); CloudMap *cloudMap; int numberOfPoints; }; #endif ================================================ FILE: PointCloudPoint.cpp ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "PointCloudPoint.h" // copy constructor PointCloudPoint::PointCloudPoint(PointCloudPoint *point) { dist = point->dist; theta = point->theta; phi = point->phi; r = point->r; g = point->g; b = point->b; w = point->w; h = point->h; laserPosition = point->laserPosition; } // Generates the point cloud string for this point (one line) wxString PointCloudPoint::GetPlyString() { double pxDist = dist; double x, y, z; x = pxDist * tan(theta); y = pxDist; z = pxDist * tan(phi); wxString xString = wxT(""); xString << x; wxString yString = wxT(""); yString << y; wxString zString = wxT(""); zString << z; wxString rString = wxT(""); rString << r; wxString gString = wxT(""); gString << g; wxString bString = wxT(""); bString << b; return xString + wxT(" ") + yString + wxT(" ") + zString + wxT(" ") + rString + wxT(" ") + gString + wxT(" ") + bString; } ================================================ FILE: PointCloudPoint.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef POINT_CLOUD_POINT_H #define POINT_CLOUD_POINT_H #include #include /* * Holds a point cloud point and can generate a .ply point cloud string (one line of the file) for this point. */ class PointCloudPoint { public: PointCloudPoint(double distIn, double thetaIn, double phiIn, int rIn, int gIn, int bIn, int wIn, int hIn, int laserPosIn) { dist = distIn; theta = thetaIn; phi = phiIn; r = rIn; g = gIn; b = bIn; w = wIn; h = hIn; laserPosition = laserPosIn; } PointCloudPoint(PointCloudPoint *point); // Generates the point cloud string for this point (one line) wxString GetPlyString(); double dist, theta, phi; int r, g, b, w, h, laserPosition; }; #endif ================================================ FILE: README.md ================================================ makerscanner ============ Software for the makerscanner. See http://www.makerscanner.com/ for details and instructions. To build from source on Linux: sudo apt-get install libwxgtk3.0-dev libgsl0-dev libopencv-dev (or equivalent for your system) ./bootstrap.sh ./configure make sudo make install ================================================ FILE: ScanStatus.cpp ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "ScanStatus.h" ScanStatus::ScanStatus() { scanning = false; } ScanStatus::~ScanStatus() { } ================================================ FILE: ScanStatus.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef SCAN_STATUS_H #define SCAN_STATUS_H class ScanStatus { public: ScanStatus(); ~ScanStatus(); void SetScanning(bool newScanning) { scanning = newScanning; } bool GetScanning() { return scanning; } private: bool scanning; }; #endif //SCAN_STATUS_H ================================================ FILE: ScanThread.cpp ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "ScanThread.h" #include using namespace std; #include // this is a magic incantation which must be done! (that's straight from the docs, by the way) #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 #define LASER_FLAT_FORWARD_PRE_MOVE 100 #define LASER_FLAT_FORWARD 124 #define DISPARITY_DISTANCE 19.8 // distance between the camera and the laser mirror in cm //#define CAMERA_X_MIN (-26.67) // angle in degrees for logitech cam //#define CAMERA_X_MAX 26.67 // angle in degrees for logitech cam #define CAMERA_X_MIN (-29.35) // angle in degrees for PS3 eye #define CAMERA_X_MAX 29.35 // angle in degrees for PS3 eye //#define CAMERA_Y_MIN (-20) // angle in degrees for logitech cam //#define CAMERA_Y_MAX 20 // angle in degrees for logitech cam #define CAMERA_Y_MIN (-24.18) // angle in degrees for PS3 eye #define CAMERA_Y_MAX 24.18 // angle in degrees for PS3 eye #define BLUR_AMOUNT 5 // paramter in cvSmooth for CV_GAUSSIAN to blur images before subtraction #define DEBUG_ON 0 // set to 1 to print warning messages // define events in the implementation //DEFINE_EVENT_TYPE(IMAGE_UPDATE_EVENT) DEFINE_EVENT_TYPE(DISPLAY_TEXT_EVENT) DEFINE_EVENT_TYPE(WRITE_TO_FILE_EVENT) DEFINE_EVENT_TYPE(SCAN_PROGRESS_EVENT) DEFINE_EVENT_TYPE(SCAN_FINISHED_EVENT) // Init values ScanThread::ScanThread(wxFrame *windowIn, CaptureThread *captureIn, ScanStatus *scanStatusIn, IplImage *noLaserIn, IplImage *laserCenteredIn, float distanceToReferenceIn)// : wxThread(wxTHREAD_JOINABLE) { distanceFromFlatReference = distanceToReferenceIn; laserCentered = laserCenteredIn; noLaser = noLaserIn; noLaserBlur = cvCloneImage(noLaser); cvSmooth(noLaser, noLaserBlur, CV_GAUSSIAN, BLUR_AMOUNT); coveredImage = cvCloneImage(noLaser); scanStatus = scanStatusIn; captureThread = captureIn; window = windowIn; SetPixelRange(); scanning = true; //laserIncrement = 1; laserIncrement = 2; //laserMaxLeft = 0; //laserMaxRight = 150; laserMaxLeft = 180; laserMaxRight = 220; minPxVal = 25; pointCloud = NULL; holdingPoint = NULL; holdingPointBefore = NULL; pixelsPerCmOnFlatReference = -1; determinedTargetDistance = false; brightnessThreshold = 0.8; } // called on thread quit -- free all memory void ScanThread::OnExit() { if (pointCloud) { delete pointCloud; } if (coveredImage) { cvReleaseImage(&coveredImage); } // noLaser image is released by Cameras.cpp // laserCentered image is released by Cameras.cpp } // Set pixels we are interested in. // TODO: make this a selection on the GUI frame void ScanThread::SetPixelRange(int Xmin, int Ymin, int Xmax, int Ymax) { m_Xmin = Xmin; //50; //Xmin; m_Ymin = Ymin; //300; //Ymin; m_Xmax = Xmax; //210; //Xmax; m_Ymax = Ymax; //420; //Ymax; } // Called when thread is started void* ScanThread::Entry() { captureThread->SetCapture(CAPTURE); // set up a pointcloud object pointCloud = new PointCloud(); vector *laserPos; IplImage *withLaser; // determine a distance from reference // we might have a distance from reference from the user, or the laser // has been centered if (distanceFromFlatReference <= 0) { // we need to compute the distance to the reference wall. // we can use the laserCentered image to do this. // first, find the laser in the laserCentered image laserPos = FindLaser2(laserCentered); // with that data, compute the distance to the wall // NOTE: this function also sets pixelsPerCmOnFlatReference which is required for operation distanceFromFlatReference = GetDistanceToReferenceWall(laserPos); if (distanceFromFlatReference < 0) { captureThread->SetCapture(PREVIEW); SendScanFinishedEvent(); return NULL; } // free memory for the laser-centered laser position vector delete laserPos; } else { pixelsPerCmOnFlatReference = PIXELS_PER_CM_PER_CM / distanceFromFlatReference; } while (scanStatus->GetScanning() == true) { // check to see if the thread should exit if (TestDestroy() == true) break; // get an image from the capture thread withLaser = captureThread->Pop(); if (withLaser) { // find the laser beam in the image laserPos = FindLaser2(withLaser); // display the laser position for the user DisplayLaserPx(laserPos); // compute the point cloud points based on the laser position AddPointcloudPoints(laserPos); // delete the laser position vector delete laserPos; } // give time for the capture thread to do some things Sleep(10); } // out of the loop for whatever reason, shutdown the thread gracefully // write the pointcloud file WritePointCloudFile(); DisplayText(wxT("\nPoint cloud generation complete.")); captureThread->SetCapture(PREVIEW); SendScanFinishedEvent(); return NULL; } // Find the laser based on an image without the laser in it and with the laser in it // Return an array that is the height of the image with a floating-point sub-pixel value of the laser // You need to release the vector that gets returned vector* ScanThread::FindLaser2(IplImage *withLaser) { // subtract the image with the laser in (withLaser) it from the image without the laser (noLaser) // to find where the laser is IplImage *withLaserBlur = cvCloneImage(withLaser); cvSmooth(noLaser, noLaserBlur, CV_GAUSSIAN, BLUR_AMOUNT); // copy images so we don't modify given images IplImage *noLaserCopy = cvCloneImage(noLaserBlur); IplImage *withLaserCopy = cvCloneImage(withLaserBlur); // create a single-channel image for processing CvSize sz = cvSize(noLaser->width & -2, noLaser->height & -2); IplImage *bwNoLaser = cvCreateImage(sz, 8, 1); IplImage *bwWithLaser = cvCreateImage(sz, 8, 1); IplImage *subImage = cvCreateImage(sz, 8, 1); // create the return vector vector *pxLocations = new vector(sz.height, -1); // convert color images to black and white // the cvCvtColor function segfaults on windows. Not sure why. cvCvtColor(noLaserCopy, bwNoLaser,CV_BGR2GRAY); cvCvtColor(withLaserCopy, bwWithLaser,CV_BGR2GRAY); // subtract the no laser image from the with-laser image // if nothing else moved, we should just see where the laser is now cvSub(bwWithLaser, bwNoLaser, subImage); //captureThread->SendFrame(subImage); // set up single-pixel access to the subtracted and original image RgbImage noLaserPx(noLaserCopy); BwImage subPx(subImage); BwImage bwWithLaserPx(bwWithLaser); // identify the laser in the top 25 rows for (int h=0;h<25;h++) { (*pxLocations)[h] = FindBrightestPointInRow(subPx, h, sz.width); } // compute the brightness of those laser hits float brightSum = 0, brightAverage = 0; for (int h=0;h<25;h++) { brightSum += bwWithLaserPx[h][ int( (*pxLocations)[h] + 0.5) ]; } brightAverage = brightSum / 25.0; int bestPx; // for loop that loops through every row in the image for (int h = 25; h < sz.height; h++) { bestPx = FindBrightestPointInRow(subPx, h, sz.width); // filter out points that don't show high brightness because they are probably noise if (float(bwWithLaserPx[h][bestPx]) > brightnessThreshold * brightAverage) { (*pxLocations)[h] = bestPx; } else { (*pxLocations)[h] = -1; } } // release images created in this function cvReleaseImage(&noLaserCopy); cvReleaseImage(&withLaserCopy); cvReleaseImage(&bwNoLaser); cvReleaseImage(&bwWithLaser); cvReleaseImage(&subImage); cvReleaseImage(&withLaserBlur); return pxLocations; } float ScanThread::FindBrightestPointInRow(BwImage subPx, int row, int rowWidth) { // init values we will use int laserSum, laserNum, laserCenter, maxPx, maxPxVal; int h = row; // for each row, find the location of the laser laserSum = 0; laserNum = 0; maxPx = -1; maxPxVal = -1; for (int w = 0; w < rowWidth; w++) { // for each row of pixels, find the brightest point on the laser beam // for every pixel in the image, check to see if it is non-zero and thus corresponding // to a pixel that is illuminated by the laser if (subPx[h][w] > maxPxVal && subPx[h][w] > minPxVal) { // this point is the brightest we have seen so far and it exceeds our minimum value maxPxVal = subPx[h][w]; maxPx = w; laserSum = w; laserNum = 1; } else if (subPx[h][w] == maxPxVal) { // this point is exactly as bright as our current brightest pixel, so average them laserSum += w; laserNum ++; } } // we are done with this row -- select the most likely point. // TODO: subpixel interpolation if (maxPx >= 0) { // compute the center point of the laser laserCenter = laserSum/laserNum; } else { // no value for this row laserCenter = 0; } return laserCenter; } // Compute where the 3d points are based on where the laser was detected in the image void ScanThread::AddPointcloudPoints(vector *laserPos) { // compute distance for this pixel // calculate phi from camera parameters and Y pixel location // (assume dimensions of noLaser are the same as all other images) float widthReference = GetReferenceLaserLocation(laserPos); if (widthReference < 0) { // we don't know where the refernce laser is -- abort return; } float laserCenter; int r, g, b; double pxDist, theta, phi; // set up single-pixel access to the subtracted and original image RgbImage noLaserPx(noLaser); int h = 0; for (h=0;hsize());h++) { laserCenter = (*laserPos)[h]; // check to make sure that we have data for this row if (laserCenter >= 0) { phi = (noLaser->height/2 - h) * double(CAMERA_Y_MAX - CAMERA_Y_MIN)/double(noLaser->height); // convert to radians phi = phi * 3.14159 / 180.0; pxDist = PixelToDistance2(laserCenter, widthReference); if (pxDist < 0) { // not a valid point return; } // compute theta based on laserCenter theta = (laserCenter - noLaser->width/2) * double(CAMERA_X_MAX - CAMERA_X_MIN)/double(noLaser->width); // convert to radians theta = theta * 3.14159 / 180.0; r = noLaserPx[h][int(laserCenter + 0.5)].r; g = noLaserPx[h][int(laserCenter + 0.5)].g; b = noLaserPx[h][int(laserCenter + 0.5)].b; // if (h == 100) // { // wxString tmp = wxT("\ndiff: "); // tmp << widthReference - laserCenter; // tmp += wxT(" widthR: "); // tmp << widthReference; // tmp += wxT(" laserCenter: "); // tmp << laserCenter; // DisplayText(tmp); // } pointCloud->AddPoint(pxDist, theta, phi, r, g, b, laserCenter, h, widthReference); } } } // send the pointcloud string to the frame for writing to disk void ScanThread::WritePointCloudFile() { WriteToFile(pointCloud->GetPointCloudPly()); } // send some text to be displayed void ScanThread::DisplayText(wxString text) { wxCommandEvent event2(DISPLAY_TEXT_EVENT, GetId()); event2.SetString(text); window->GetEventHandler()->AddPendingEvent(event2); } // compute distance to a point given the x pixel location and the width reference x pixel location double ScanThread::PixelToDistance2(float laserCenter, float widthReference) { // TODO: make generic for other sized cameras if (laserCenter > widthReference + 20) { // the detected laser appears to be to the right of the width reference. // this is almost certainly noise and will result in crazy distance calculations return -1; } else if (laserCenter > widthReference) { // might just be a slightly tilted laser laserCenter = widthReference; } double l = (widthReference) / pixelsPerCmOnFlatReference; double lPlusM = (laserCenter) / pixelsPerCmOnFlatReference; double m = l - lPlusM; // m is the object position projected on the flat reference background //double distFromRef = m * m_DistanceFromFlatReference / (DISPARITY_DISTANCE + m); double ret = distanceFromFlatReference - m * distanceFromFlatReference / (DISPARITY_DISTANCE + m); if (ret > 100) { DisplayText(wxT("\nWarning: large distance detected.")); } return ret; } // Write a string to disk via an event to the frame void ScanThread::WriteToFile(wxString str) { wxCommandEvent event(WRITE_TO_FILE_EVENT, GetId()); event.SetString(str); window->GetEventHandler()->AddPendingEvent(event); } // Send an event with the progress of the laser void ScanThread::SendScanProgress(int laserPos) { // compute percentage done int progress = int( 100.0 * float(laserPos - laserMaxLeft)/(float(laserMaxRight - laserMaxLeft)) + 0.5); wxCommandEvent event2(SCAN_PROGRESS_EVENT, GetId()); event2.SetInt(progress); window->GetEventHandler()->AddPendingEvent(event2); } // Send a scan finished event void ScanThread::SendScanFinishedEvent() { wxCommandEvent event2(SCAN_FINISHED_EVENT, GetId()); window->GetEventHandler()->AddPendingEvent(event2); } float ScanThread::GetReferenceLaserLocation(vector *laserCenterPx) { // find the laser in the top 25 pixels in the image // average the top 25 pixel locations to find the center float refSum = 0; int numRefHits = 0; for (int h=0;h<25;h++) { // this means that we don't accept the laser line on the exact left edge of the image if ((*laserCenterPx)[h] > 0) { refSum += (*laserCenterPx)[h]; numRefHits ++; } } if (numRefHits < 10) { // we probably don't have a good idea where the laser is if (DEBUG_ON == 1) { DisplayText(wxT("\nWanring: failed to find reference laser.")); } return -1; } float refCenter = refSum/float(numRefHits); return refCenter; } // NOTE: this function also sets pixelsPerCmOnFlatReference which is required for operation float ScanThread::GetDistanceToReferenceWall(vector *laserCenterPx) { // first, find the laser in the top 25 pixels in the image float refCenter = GetReferenceLaserLocation(laserCenterPx); if (refCenter < 0) { // failed to find reference laser. DisplayText(wxT("\nError: failed to compute distance to target. Most likely didn't get a clear enough picture of the laser line. Aborting.")); return -1; } // compute the distance to the target based on camera parameters and refCenter // refCenter holds the number of pixels the center is from the left of the image. // For this computation, we want to know the number of pixels from the camera's center -- convert float pixelsFromCameraCenter = (laserCentered->width / 2) - refCenter; distanceFromFlatReference = 0; pixelsPerCmOnFlatReference = pixelsFromCameraCenter / float(DISPARITY_DISTANCE); distanceFromFlatReference += float(PIXELS_PER_CM_PER_CM) / pixelsPerCmOnFlatReference; wxString strDist = wxT("\nEstimated distance from flat reference = "); wxString numstr; numstr.Printf(wxT("%.0f"), distanceFromFlatReference); strDist += numstr + wxT("cm"); DisplayText(strDist); return distanceFromFlatReference; } void ScanThread::DisplayLaserPx(vector *laserPx) { // create an image that we can use to display where we found the laser CvSize sz = cvSize(noLaser->width & -2, noLaser->height & -2); // allow for single-pixel access to the laserHitImage RgbImage coveredImagePx(coveredImage); // make the current laser line red IplImage *outImage = cvCloneImage(coveredImage); RgbImage outImagePx(outImage); for (int h=0;hsize());h++) { // add this point to our display image for where we found laser points (for the future) coveredImagePx[h][int((*laserPx)[h])].r = 0; coveredImagePx[h][int((*laserPx)[h])].g = 0; coveredImagePx[h][int((*laserPx)[h])].b = 255; // add the laser line in red for display right now outImagePx[h][int((*laserPx)[h])].r = 255; outImagePx[h][int((*laserPx)[h])].g = 0; outImagePx[h][int((*laserPx)[h])].b = 0; } // display the image (SendFrame copies the image, so we can release it here). //captureThread->SendFrame(pDstImg); captureThread->SendFrame(outImage); // release images used for display image cvReleaseImage(&outImage); } ================================================ FILE: ScanThread.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef SCAN_THREAD_H #define SCAN_THREAD_H #include #include #include #include #include #include "cv.h" #include "highgui.h" #include "IndividualPixels.h" #include #include #include "PointCloud.h" #include "CaptureThread.h" #include "ScanStatus.h" // include USB code extern "C" { #include "SetHorz.h" } #define MAX_X 640 // TODO: remove this define and auto-detect image size #define MAX_Y 480 // TODO: remove this define and auto-detect image size #include using namespace std; // clear event types in the header of the source file BEGIN_DECLARE_EVENT_TYPES() DECLARE_EVENT_TYPE(DISPLAY_TEXT_EVENT, -2) DECLARE_EVENT_TYPE(WRITE_TO_FILE_EVENT, -6) DECLARE_EVENT_TYPE(SCAN_PROGRESS_EVENT, -7) DECLARE_EVENT_TYPE(SCAN_FINISHED_EVENT, -8) END_DECLARE_EVENT_TYPES() // Thread that performs image capture and point cloud creation // Uses events to communicate with GUI thread for frame and disk interactions class ScanThread : public wxThread { public: // Constructor ScanThread(wxFrame *windowIn, CaptureThread *captureIn, ScanStatus *scanStatusIn, IplImage *noLaserIn, IplImage *laserCenteredIn, float distanceToReferenceIn); // Function that is run on thread init virtual void* Entry(); // TODO: Remove void SetPixelRange(int Xmin = 0, int Ymin = 0, int Xmax = MAX_X, int Ymax = MAX_Y); // set image subtraction threshold value void SetThresholdPixelValue(int thres) { minPxVal = thres; } float FindReferenceLaser(IplImage *img); void SetBrightnessThreshold(float newThreshold) { brightnessThreshold = newThreshold; } private: // Find the laser by subtracting noLaser (class variable) and withLaser images // the compute distances and add to the pointcloud object vector* FindLaser2(IplImage *withLaser); // send an UpdateImage event to the frame dialog //void DisplayImage(IplImage *frame); // send a display text event to the frame void DisplayText(wxString text); // send a write to file event to the frame void WriteToFile(wxString str); // write the current pointcloud to a file void WritePointCloudFile(); // compute distance to pixel based on width reference pixel position and the laser pixel position double PixelToDistance2(float laserCenter, float widthReference); // Add a point to the pointcloud, with some filtering void AddPointCloudPoint(PointCloudPoint *newPoint, BwImage laserHitPx, BwImage laserFilterPx); // point cloud points for storing filtering PointCloudPoint *holdingPointBefore; PointCloudPoint *holdingPoint; // Send a scan progress event to update the frame progress bar void SendScanProgress(int laserPos); // Send a scan finished event to the frame void SendScanFinishedEvent(); // Safely close void OnExit(); void AddPointcloudPoints(vector *laserPos); // give the laser locations, find the reference position in the top 25 pixels float GetReferenceLaserLocation(vector *laserCenterPx); // Computes the distance to the reference wall based on the member variables // noLaser image and laserCentered image, which must already be set when this is called float GetDistanceToReferenceWall(vector *laserCenterPx); void DisplayLaserPx(vector *laserPx); float FindBrightestPointInRow(BwImage subPx, int row, int rowWidth); // ---- variables ---- // // the frame we send events to wxFrame *window; // the thread that is running the camera capture CaptureThread *captureThread; // current distance from flat reference double pixelsPerCmOnFlatReference; // our current pointcloud PointCloud *pointCloud; // Object that allows us to communicate between the frame ScanStatus *scanStatus; // values sent to us from the frame int laserIncrement, laserMaxLeft, laserMaxRight, minPxVal; // relative amount of brightness needed to be counted as a valid point // ranges from 0-1.0. Valid points have brightness > brightnessThreshold * topBrightness float brightnessThreshold; IplImage *noLaser, *laserCentered, *noLaserBlur, *coveredImage; bool scanning, determinedTargetDistance; int m_Xmin, m_Ymin, m_Xmax, m_Ymax; // if true, this is the first line we are doing in this scan bool m_firstLaserPosition; // distance from flat reference in cm float distanceFromFlatReference; }; #endif ================================================ FILE: SetConfig.c ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include #include "SetConfig.h" #define FALSE 0 #define TRUE 1 // return codes // 0: success // -1: No matching device found // -2: Unable to send SET_CONFIGURATION request int SetConfig() { struct usb_bus *bus; struct usb_device *dev; usb_dev_handle *udev; int dev_found, ret; char buffer[8]; usb_init(); usb_find_busses(); usb_find_devices(); udev = NULL; dev_found = FALSE; for (bus = usb_get_busses(); bus && !dev_found; bus = bus->next) { for (dev = bus->devices; dev && !dev_found; dev = dev->next) { if ((dev->descriptor.idVendor == 0x6666) && (dev->descriptor.idProduct == 0x0003)) { dev_found = TRUE; udev = usb_open(dev); } } } if (!dev_found) { printf("No matching device found...\n"); return -1; } if (udev) { ret = usb_control_msg(udev, USB_TYPE_STANDARD | USB_RECIP_DEVICE, USB_REQ_SET_CONFIGURATION, 1, 0, buffer, 0, 100); if (ret < 0) { printf("Unable to send SET_CONFIGURATION standard request, ret = %d...\n", ret); return -2; } usb_close(udev); } return 0; } ================================================ FILE: SetConfig.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef SET_CONFIG_H #define SET_CONFIG_H // USB set config control header file int SetConfig(); #endif ================================================ FILE: SetHorz.c ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* * Standard USB calls to the PIC. This comes from http://ece.olin.edu/poe/ */ #include #include #include "SetHorz.h" #define FALSE 0 #define TRUE 1 #define SET_DUTY 0x04 #define SERVO_POS 0x05 #define LASER_INTENSITY 0x06 #define HORIZ_MIN 0 #define HORIZ_MAX 255 /* * Return codes: * 0 = success * -1 = no matching device * -2 = unable to send vendor request * -3 = illegal offset */ int LaserIntensity = DEFAULT_LASER_INTENSITY; // Send the USB call for moving the mirror int SetHorz(int horz) { horz = HORIZ_MAX - horz; if ((horz < HORIZ_MIN) || (horz > HORIZ_MAX)) { printf("Horizontal laser offset specified, (%d), is out of range (0 - 155).\n", horz); return -3; } return SetUSB(horz, SET_DUTY); } // Move the servo int SetServo(int servo) { if (servo < 50 || servo > 150) { printf("Illegal offset (%d) specified.\n", servo); return -3; } return SetUSB(servo, SERVO_POS); } // Change the laser intensity int SendLaserIntensity(int intensity) { if (intensity < 0 || intensity > 100) { printf("Intensity specified, (%d), is out of range (0-100).\n", intensity); return -3; } if (intensity == 0) intensity = LASER_ZERO_VOLTS_VALUE; else intensity = (int) ( (((float) intensity) * (float) LASER_INTENSITY_RANGE) + (float) LASER_MIN_VALUE_TO_TURN_ON + 0.5); return SetUSB(intensity, LASER_INTENSITY); } void SetLaserIntensity(int intensity) { LaserIntensity = intensity; } int GetLaserIntensity() { return LaserIntensity; } // USB call to PIC int SetUSB(int horz, unsigned char op) { struct usb_bus *bus; struct usb_device *dev; usb_dev_handle *udev; int dev_found, ret; char buffer[8]; usb_init(); usb_find_busses(); usb_find_devices(); udev = NULL; dev_found = FALSE; for (bus = usb_get_busses(); bus && !dev_found; bus = bus->next) { for (dev = bus->devices; dev && !dev_found; dev = dev->next) { if ((dev->descriptor.idVendor == 0x6666) && (dev->descriptor.idProduct == 0x0003)) { dev_found = TRUE; udev = usb_open(dev); } } } if (!dev_found) { printf("No matching device found...\n"); return -1; } ret = usb_control_msg(udev, 0x40, op, horz, 0, buffer, 0, 100); if (udev) { if (ret < 0) { printf("Unable to send SET_DUTY vendor request, ret = %d...\n", ret); return -2; } //usb_close(udev); } return 0; } ================================================ FILE: SetHorz.h ================================================ /* * Copyright 2009-2010, Andrew Barry * * This file is part of MakerScanner. * * MakerScanner is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License (Version 2, June 1991) as published by * the Free Software Foundation. * * MakerScanner is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ // Send USB calls to the PIC mircoprocessor #ifndef SET_HORZ_H #define SET_HORZ_H #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, // 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) // NOTE!! values outside the range 60 - 195 // will produce negative voltages or voltages greater than 3 V, which can damage laser #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 #define LASER_ZERO_VOLTS_VALUE 60 #define DEFAULT_LASER_INTENSITY 30 int SetHorz(int horz); int SetServo(int servo); int SendLaserIntensity(int intensity); void SetLaserIntensity(int intensity); int GetLaserIntensity(); int SetUSB(int horz, unsigned char op); #endif ================================================ FILE: bootstrap.sh ================================================ #!/bin/bash autoscan autoheader aclocal autoconf automake -a ================================================ FILE: camview.cpp ================================================ //////////////////////////////////////////////////////////////////// // Name: implementation of the CCamView class // File: camview.cpp // Purpose: eye/camera view/GUI system control methods // // Created by: Larry Lart on 22-Feb-2006 // Updated by: Andrew Barry Jan 2010 // // Copyright: (c) 2006 Larry Lart //////////////////////////////////////////////////////////////////// // on windows, you must include the wx headers before // other headers - Andy #include // main header -- this has wx headers in it so make // sure to include it before other headers - Andy #include "camview.h" // system header #include #include #include "cv.h" #include "highgui.h" #ifdef __GNUG__ #pragma implementation #pragma interface #endif // implement message map BEGIN_EVENT_TABLE(CCamView, wxWindow) EVT_PAINT( CCamView::OnPaint ) EVT_SIZE( CCamView::OnSize ) END_EVENT_TABLE() //////////////////////////////////////////////////////////////////// // Method: Constructor // Class: CCamView // Purose: build my CCamView object // Input: nothing // Output: nothing //////////////////////////////////////////////////////////////////// CCamView::CCamView( wxWindow *frame, const wxPoint& pos, const wxSize& size ): wxWindow(frame, -1, pos, size, wxSIMPLE_BORDER ) { //m_pCamera = NULL; // set my canvas width/height m_nWidth = size.GetWidth( ); m_nHeight = size.GetHeight( ); m_bDrawing = false; m_bNewImage = 0; m_pBitmap = NULL; } //////////////////////////////////////////////////////////////////// // Method: Destructor // Class: CCamView // Purose: destroy my object // Input: nothing // Output: nothing //////////////////////////////////////////////////////////////////// CCamView::~CCamView( ) { //m_pCamera = NULL; } //////////////////////////////////////////////////////////////////// // Method: Is Capture Enabled // Class: CCamView // Purose: check if camera is initialized // Input: nothing // Output: bool yes/no //////////////////////////////////////////////////////////////////// bool CCamView::IsCaptureEnabled( ) { // return( m_pCamera->IsInitialized( ) ); return( 1 ); } //////////////////////////////////////////////////////////////////// // Method: OnPaint // Class: CCamView // Purose: on paint event // Input: reference to paint event // Output: nothing //////////////////////////////////////////////////////////////////// void CCamView::OnPaint( wxPaintEvent& event ) { wxPaintDC dc(this); Draw( dc ); } //////////////////////////////////////////////////////////////////// // Method: Draw // Class: CCamView // Purose: camera drawing // Input: reference to dc // Output: nothing //////////////////////////////////////////////////////////////////// void CCamView::Draw( wxDC& dc ) { // check if dc available if( !dc.IsOk( ) || m_bDrawing == true ){ return; } m_bDrawing = true; int x,y,w,h; dc.GetClippingBox( &x, &y, &w, &h ); // if there is a new image to draw if( m_bNewImage ) { dc.DrawBitmap( *m_pBitmap, x, y ); m_bNewImage = false; } else { // draw inter frame ? } m_bDrawing = false; return; } //////////////////////////////////////////////////////////////////// // Method: OnDraw // Class: CCamView // Purose: CCamView drawing // Input: nothing // Output: nothing //////////////////////////////////////////////////////////////////// void CCamView::DrawCam( IplImage* pImg ) { // return; if( m_bDrawing ) return; m_bDrawing = true; // if there was an image then we need to update view if( pImg ) { // copy the image (will be deleted after display) IplImage *pDstImg = pImg;//cvCloneImage(pImg); int nCamWidth = pImg->width;//m_pCamera->m_nWidth; int nCamHeight = pImg->height;//m_pCamera->m_nHeight; // draw a vertical line through the center of the image cvLine(pDstImg, cvPoint(nCamWidth/2, 0), cvPoint(nCamWidth/2, nCamHeight), CV_RGB( 0,255,0 )); // draw a horizontal line at pixel 25 cvLine(pDstImg, cvPoint(0, 25), cvPoint(nCamWidth, 25), CV_RGB( 0,255,0 )); // draw a horizontal line through the center of the image //cvLine(pDstImg, cvPoint(0, nCamHeight/2), cvPoint(nCamWidth, nCamHeight/2), CV_RGB( 0,255,0 )); // process image from opencv to wxwidgets unsigned char *rawData; // draw my stuff to output canvas CvSize roiSize; int step = 0; // get raw data from ipl image cvGetRawData( pDstImg, &rawData, &step, &roiSize ); // convert data from raw image to wxImg wxImage *pWxImg = new wxImage( nCamWidth, nCamHeight, rawData, TRUE ); // convert to bitmap to be used by the window to draw if (m_pBitmap) { delete m_pBitmap; } m_pBitmap = new wxBitmap( pWxImg->Scale(m_nWidth, m_nHeight) ); m_bNewImage = true; m_bDrawing = false; Refresh( FALSE ); //Update( ); delete pWxImg; //cvReleaseImage( &pDstImg ); } } //////////////////////////////////////////////////////////////////// // Method: CheckUpdate // Class: CCamView // Purose: CHeck for updates // Input: reference to size event // Output: nothing //////////////////////////////////////////////////////////////////// void CCamView::CheckUpdate() { Update( ); } //////////////////////////////////////////////////////////////////// // Method: OnSize // Class: CCamView // Purose: adjust on windows resize // Input: reference to size event // Output: nothing //////////////////////////////////////////////////////////////////// void CCamView::OnSize( wxSizeEvent& even ) { int nWidth = even.GetSize().GetWidth(); int nHeight = even.GetSize().GetHeight(); m_nWidth = nWidth; m_nHeight = nHeight; } ================================================ FILE: camview.h ================================================ //////////////////////////////////////////////////////////////////// // Name: camera view header // File: camview.h // Purpose: interface for the CCamView class. // // Created by: Larry Lart on 06-Jul-2006 // Updated by: Andrew Barry Jan 2010 // //////////////////////////////////////////////////////////////////// #ifndef _CCAMVIEW_H #define _CCAMVIEW_H #include #include "cv.h" #include "highgui.h" class CCamView : public wxWindow { public: CCamView( wxWindow *frame, const wxPoint& pos, const wxSize& size ); // Operations public: // Implementation public: virtual ~CCamView( ); bool IsCaptureEnabled( ); void CheckUpdate( ); // Draw method void DrawCam( IplImage* pImg ); void Draw( wxDC& dc ); // Public data public: //CCamera *m_pCamera; // Protected data protected: //CImage m_Canvas; wxBitmap *m_pBitmap; bool m_bDrawing; bool m_bNewImage; int m_nWidth; int m_nHeight; // private methods private: void OnPaint(wxPaintEvent& event); void OnSize( wxSizeEvent& even ); // protected data protected: DECLARE_EVENT_TABLE() }; #endif ================================================ FILE: configure.ac ================================================ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.65]) AC_INIT([makerscanner], [0.3.2], [abarry@makerscanner.com]) AM_INIT_AUTOMAKE(makerscanner, 0.3.2) AC_CONFIG_SRCDIR([ScanStatus.cpp]) AC_CONFIG_HEADERS([config.h]) # Checks for programs. AC_PROG_CXX AC_PROG_CC # Checks for libraries. ########################################################################## # check for libgsl headers ########################################################################## # use the C++ compiler for the following checks AC_LANG([C++]) # store current CXXFLAGS and merge with AM_CXXFLAGS for compilation check OLD_CXXFLAGS=$CXXFLAGS; CXXFLAGS="$AM_CXXFLAGS $CXXFLAGS" # check for libgsl library headers AC_MSG_CHECKING([for the libgsl library headers]) # try to compile a file that includes a header of the library XXX AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include ]])], [AC_MSG_RESULT([found]) FOUND_GSL=1;], [AC_MSG_RESULT([not found]) FOUND_GSL=0;]) # reset original CXXFLAGS CXXFLAGS=$OLD_CXXFLAGS # handle results if test $FOUND_GSL != 1; then AC_MSG_NOTICE([]) AC_MSG_NOTICE([The libgsl library was not found!]) AC_MSG_NOTICE([]) AC_MSG_ERROR([ libgsl must be installed on your system. If you are on Ubuntu you can probably solve this by running sudo apt-get install libgsl0-dev ]) fi ########################################################################## PKG_CHECK_MODULES([OPENCV], [opencv >= 2.0]) # check for wxWidgets m4_include(wxwin.m4) AM_OPTIONS_WXCONFIG reqwx=2.4.0 AM_PATH_WXCONFIG($reqwx, wxWin=1) if test "$wxWin" != 1; then AC_MSG_ERROR([ wxWidgets must be installed on your system. Please check that wx-config is in path, the directory where wxWidgets libraries are installed (returned by 'wx-config --libs' or 'wx-config --static --libs' command) is in LD_LIBRARY_PATH or equivalent variable and wxWidgets version is $reqwx or above. If you are on Ubuntu you can probably solve this by running sudo apt-get install libwxgtk2.8-dev ]) fi CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" LIBS="$LIBS $WX_LIBS" # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_INLINE # Checks for library functions. AC_CONFIG_FILES([Makefile]) AC_OUTPUT ================================================ FILE: resource.rc ================================================ aaaa ICON "laserIcon.ico" #include "wx/msw/wx.rc" ================================================ FILE: windows-package/AUTHORS ================================================ Andrew Barry Original Version, 0.1, 0.2, 0.3 2008-2010 ================================================ FILE: windows-package/LICENSE ================================================ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ================================================ FILE: windows-package/README ================================================ See http://www.makerscanner.com/ and/or http://wiki.makerbot.com/makerscanner for instructions. ================================================ FILE: windows-package/installer.iss ================================================ [Setup] AppName=MakerScanner AppVerName=MakerScanner v0.3.1 DefaultDirName={pf}\MakerScanner DefaultGroupName=MakerScanner UninstallDisplayIcon={app}\MakerScanner.exe Compression=lzma SolidCompression=yes OutputDir=userdocs:MakerScanner AppMutex=MakerScanner [Files] Source: MakerScanner.exe; DestDir: {app} Source: README; DestDir: {app} Source: AUTHORS; DestDir: {app} Source: LICENSE; DestDir: {app} Source: laserIcon.ico; DestDir: {app} Source: cv210.dll; DestDir: {app} Source: cxcore210.dll; DestDir: {app} Source: highgui210.dll; DestDir: {app} Source: mingwm10.dll; DestDir: {app} [Icons] Name: {group}\MakerScanner; Filename: {app}\MakerScanner.exe; WorkingDir: {app} Name: {commonstartup}\MakerScanner; Filename: {app}\MakerScanner.exe; WorkingDir: {app} [Run] Filename: {app}\MakerScanner.exe; Description: Run MakerScanner; Flags: postinstall nowait skipifsilent ================================================ FILE: wxsmith/ActiveStereoframe.wxs ================================================ MakerScanner v0.3.1 1009,746 1009,746 0 120,232 wxVERTICAL wxVERTICAL 2 wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 2 wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL 5 25 5 50 158,30 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL 5 80 158,35 wxALL|wxEXPAND|wxSHAPED|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 319,170 wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL 5 150,32 0 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 150,32 0 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_TOP|wxALIGN_CENTER_HORIZONTAL 5 wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 10,-1 wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 ------------------ Quick Tips ------------------ 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. 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. ------------------ Initializing ------------------ 999,133 390,154 wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 Alt-F4 Quit the application Change the camera if you have more than one (requires restart) F1 Show info about this application 1 -1 wxSB_NORMAL ================================================ FILE: wxsmith/DistanceToReferenceDialog.wxs ================================================ Distance to Reference Surface 446,289 0 wxVERTICAL wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 10,-1 wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 2 wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 0 wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL 5 0 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 45,17 0 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 0 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 50 1000 79,27 0 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 0 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 5 ================================================ FILE: wxwin.m4 ================================================ dnl --------------------------------------------------------------------------- dnl Macros for wxWidgets detection. Typically used in configure.in as: dnl dnl AC_ARG_ENABLE(...) dnl AC_ARG_WITH(...) dnl ... dnl AM_OPTIONS_WXCONFIG dnl ... dnl ... dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1) dnl if test "$wxWin" != 1; then dnl AC_MSG_ERROR([ dnl wxWidgets must be installed on your system dnl but wx-config script couldn't be found. dnl dnl Please check that wx-config is in path, the directory dnl where wxWidgets libraries are installed (returned by dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or dnl equivalent variable and wxWidgets version is 2.3.4 or above. dnl ]) dnl fi dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" dnl dnl LIBS="$LIBS $WX_LIBS" dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl AM_OPTIONS_WXCONFIG dnl dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and dnl --wx-config command line options dnl --------------------------------------------------------------------------- AC_DEFUN([AM_OPTIONS_WXCONFIG], [ AC_ARG_WITH(wxdir, [ --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH], [ wx_config_name="$withval/wx-config" wx_config_args="--inplace"]) AC_ARG_WITH(wx-config, [ --with-wx-config=CONFIG wx-config script to use (optional)], wx_config_name="$withval" ) AC_ARG_WITH(wx-prefix, [ --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)], wx_config_prefix="$withval", wx_config_prefix="") AC_ARG_WITH(wx-exec-prefix, [ --with-wx-exec-prefix=PREFIX Exec prefix where wxWidgets is installed (optional)], wx_config_exec_prefix="$withval", wx_config_exec_prefix="") ]) dnl Helper macro for checking if wx version is at least $1.$2.$3, set's dnl wx_ver_ok=yes if it is: AC_DEFUN([_WX_PRIVATE_CHECK_VERSION], [ wx_ver_ok="" if test "x$WX_VERSION" != x ; then if test $wx_config_major_version -gt $1; then wx_ver_ok=yes else if test $wx_config_major_version -eq $1; then if test $wx_config_minor_version -gt $2; then wx_ver_ok=yes else if test $wx_config_minor_version -eq $2; then if test $wx_config_micro_version -ge $3; then wx_ver_ok=yes fi fi fi fi fi fi ]) dnl --------------------------------------------------------------------------- dnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]]) dnl dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME dnl environment variable to override the default name of the wx-config script dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this dnl case the macro won't even waste time on tests for its existence. dnl dnl Optional WX-LIBS argument contains comma- or space-separated list of dnl wxWidgets libraries to link against (it may include contrib libraries). If dnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to dnl link with all of the core wxWidgets libraries. dnl dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config dnl invocation command in present. It can be used to fine-tune lookup of dnl best wxWidgets build available. dnl dnl Example use: dnl AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], [html,core,net] dnl [--unicode --debug]) dnl --------------------------------------------------------------------------- dnl dnl Get the cflags and libraries from the wx-config script dnl AC_DEFUN([AM_PATH_WXCONFIG], [ dnl do we have wx-config name: it can be wx-config or wxd-config or ... if test x${WX_CONFIG_NAME+set} != xset ; then WX_CONFIG_NAME=wx-config fi if test "x$wx_config_name" != x ; then WX_CONFIG_NAME="$wx_config_name" fi dnl deal with optional prefixes if test x$wx_config_exec_prefix != x ; then wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" fi if test x$wx_config_prefix != x ; then wx_config_args="$wx_config_args --prefix=$wx_config_prefix" WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" fi if test "$cross_compiling" = "yes"; then wx_config_args="$wx_config_args --host=$host_alias" fi dnl don't search the PATH if WX_CONFIG_NAME is absolute filename if test -x "$WX_CONFIG_NAME" ; then AC_MSG_CHECKING(for wx-config) WX_CONFIG_PATH="$WX_CONFIG_NAME" AC_MSG_RESULT($WX_CONFIG_PATH) else AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH") fi if test "$WX_CONFIG_PATH" != "no" ; then WX_VERSION="" min_wx_version=ifelse([$1], ,2.2.1,$1) if test -z "$5" ; then AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version]) else AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)]) fi WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4" WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null` wx_config_major_version=`echo $WX_VERSION | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` wx_config_minor_version=`echo $WX_VERSION | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` wx_config_micro_version=`echo $WX_VERSION | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` wx_requested_major_version=`echo $min_wx_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` wx_requested_minor_version=`echo $min_wx_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` wx_requested_micro_version=`echo $min_wx_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version], [$wx_requested_minor_version], [$wx_requested_micro_version]) if test -n "$wx_ver_ok"; then AC_MSG_RESULT(yes (version $WX_VERSION)) WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs` dnl is this even still appropriate? --static is a real option now dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is dnl what the user actually wants, making this redundant at best. dnl For now keep it in case anyone actually used it in the past. AC_MSG_CHECKING([for wxWidgets static library]) WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null` if test "x$WX_LIBS_STATIC" = "x"; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) fi dnl starting with version 2.2.6 wx-config has --cppflags argument wx_has_cppflags="" if test $wx_config_major_version -gt 2; then wx_has_cppflags=yes else if test $wx_config_major_version -eq 2; then if test $wx_config_minor_version -gt 2; then wx_has_cppflags=yes else if test $wx_config_minor_version -eq 2; then if test $wx_config_micro_version -ge 6; then wx_has_cppflags=yes fi fi fi fi fi dnl starting with version 2.7.0 wx-config has --rescomp option wx_has_rescomp="" if test $wx_config_major_version -gt 2; then wx_has_rescomp=yes else if test $wx_config_major_version -eq 2; then if test $wx_config_minor_version -ge 7; then wx_has_rescomp=yes fi fi fi if test "x$wx_has_rescomp" = x ; then dnl cannot give any useful info for resource compiler WX_RESCOMP= else WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp` fi if test "x$wx_has_cppflags" = x ; then dnl no choice but to define all flags like CFLAGS WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` WX_CPPFLAGS=$WX_CFLAGS WX_CXXFLAGS=$WX_CFLAGS WX_CFLAGS_ONLY=$WX_CFLAGS WX_CXXFLAGS_ONLY=$WX_CFLAGS else dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags` WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags` WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` fi ifelse([$2], , :, [$2]) else if test "x$WX_VERSION" = x; then dnl no wx-config at all AC_MSG_RESULT(no) else AC_MSG_RESULT(no (version $WX_VERSION is not new enough)) fi WX_CFLAGS="" WX_CPPFLAGS="" WX_CXXFLAGS="" WX_LIBS="" WX_LIBS_STATIC="" WX_RESCOMP="" ifelse([$3], , :, [$3]) fi else WX_CFLAGS="" WX_CPPFLAGS="" WX_CXXFLAGS="" WX_LIBS="" WX_LIBS_STATIC="" WX_RESCOMP="" ifelse([$3], , :, [$3]) fi AC_SUBST(WX_CPPFLAGS) AC_SUBST(WX_CFLAGS) AC_SUBST(WX_CXXFLAGS) AC_SUBST(WX_CFLAGS_ONLY) AC_SUBST(WX_CXXFLAGS_ONLY) AC_SUBST(WX_LIBS) AC_SUBST(WX_LIBS_STATIC) AC_SUBST(WX_VERSION) AC_SUBST(WX_RESCOMP) ]) dnl --------------------------------------------------------------------------- dnl Get information on the wxrc program for making C++, Python and xrs dnl resource files. dnl dnl AC_ARG_ENABLE(...) dnl AC_ARG_WITH(...) dnl ... dnl AM_OPTIONS_WXCONFIG dnl ... dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1) dnl if test "$wxWin" != 1; then dnl AC_MSG_ERROR([ dnl wxWidgets must be installed on your system dnl but wx-config script couldn't be found. dnl dnl Please check that wx-config is in path, the directory dnl where wxWidgets libraries are installed (returned by dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or dnl equivalent variable and wxWidgets version is 2.6.0 or above. dnl ]) dnl fi dnl dnl AM_PATH_WXRC([HAVE_WXRC=1], [HAVE_WXRC=0]) dnl if test "x$HAVE_WXRC" != x1; then dnl AC_MSG_ERROR([ dnl The wxrc program was not installed or not found. dnl dnl Please check the wxWidgets installation. dnl ]) dnl fi dnl dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" dnl dnl LDFLAGS="$LDFLAGS $WX_LIBS" dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl AM_PATH_WXRC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS dnl resources. The variable WXRC will be set and substituted in the configure dnl script and Makefiles. dnl dnl Example use: dnl AM_PATH_WXRC([wxrc=1], [wxrc=0]) dnl --------------------------------------------------------------------------- dnl dnl wxrc program from the wx-config script dnl AC_DEFUN([AM_PATH_WXRC], [ AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler]) if test "x$WX_CONFIG_NAME" = x; then AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.]) else AC_MSG_CHECKING([for wxrc]) if test "x$WXRC" = x ; then dnl wx-config --utility is a new addition to wxWidgets: _WX_PRIVATE_CHECK_VERSION(2,5,3) if test -n "$wx_ver_ok"; then WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc` fi fi if test "x$WXRC" = x ; then AC_MSG_RESULT([not found]) ifelse([$2], , :, [$2]) else AC_MSG_RESULT([$WXRC]) ifelse([$1], , :, [$1]) fi AC_SUBST(WXRC) fi ])