tesseract_bin 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +23 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/ext/tesseract_bin/extconf.rb +17 -0
- data/lib/tesseract_bin.rb +12 -0
- data/tesseract_bin.gemspec +660 -0
- data/test/helper.rb +18 -0
- data/test/test_tesseract_bin.rb +7 -0
- data/vendor/tesseract-2.04/AUTHORS +8 -0
- data/vendor/tesseract-2.04/COPYING +23 -0
- data/vendor/tesseract-2.04/ChangeLog +71 -0
- data/vendor/tesseract-2.04/INSTALL +229 -0
- data/vendor/tesseract-2.04/Makefile.am +20 -0
- data/vendor/tesseract-2.04/Makefile.in +641 -0
- data/vendor/tesseract-2.04/NEWS +1 -0
- data/vendor/tesseract-2.04/README +138 -0
- data/vendor/tesseract-2.04/ReleaseNotes +213 -0
- data/vendor/tesseract-2.04/StdAfx.cpp +8 -0
- data/vendor/tesseract-2.04/StdAfx.h +24 -0
- data/vendor/tesseract-2.04/ccmain/Makefile.am +63 -0
- data/vendor/tesseract-2.04/ccmain/Makefile.in +735 -0
- data/vendor/tesseract-2.04/ccmain/adaptions.cpp +1082 -0
- data/vendor/tesseract-2.04/ccmain/adaptions.h +109 -0
- data/vendor/tesseract-2.04/ccmain/applybox.cpp +891 -0
- data/vendor/tesseract-2.04/ccmain/applybox.h +73 -0
- data/vendor/tesseract-2.04/ccmain/baseapi.cpp +1105 -0
- data/vendor/tesseract-2.04/ccmain/baseapi.h +256 -0
- data/vendor/tesseract-2.04/ccmain/blobcmp.cpp +76 -0
- data/vendor/tesseract-2.04/ccmain/blobcmp.h +29 -0
- data/vendor/tesseract-2.04/ccmain/callnet.cpp +93 -0
- data/vendor/tesseract-2.04/ccmain/callnet.h +32 -0
- data/vendor/tesseract-2.04/ccmain/charcut.cpp +704 -0
- data/vendor/tesseract-2.04/ccmain/charcut.h +120 -0
- data/vendor/tesseract-2.04/ccmain/charsample.cpp +699 -0
- data/vendor/tesseract-2.04/ccmain/control.cpp +1842 -0
- data/vendor/tesseract-2.04/ccmain/control.h +198 -0
- data/vendor/tesseract-2.04/ccmain/docqual.cpp +1481 -0
- data/vendor/tesseract-2.04/ccmain/docqual.h +155 -0
- data/vendor/tesseract-2.04/ccmain/expandblob.cpp +82 -0
- data/vendor/tesseract-2.04/ccmain/expandblob.h +13 -0
- data/vendor/tesseract-2.04/ccmain/fixspace.cpp +989 -0
- data/vendor/tesseract-2.04/ccmain/fixspace.h +72 -0
- data/vendor/tesseract-2.04/ccmain/fixxht.cpp +825 -0
- data/vendor/tesseract-2.04/ccmain/fixxht.h +93 -0
- data/vendor/tesseract-2.04/ccmain/imgscale.cpp +154 -0
- data/vendor/tesseract-2.04/ccmain/imgscale.h +32 -0
- data/vendor/tesseract-2.04/ccmain/matmatch.cpp +391 -0
- data/vendor/tesseract-2.04/ccmain/matmatch.h +48 -0
- data/vendor/tesseract-2.04/ccmain/output.cpp +1273 -0
- data/vendor/tesseract-2.04/ccmain/output.h +116 -0
- data/vendor/tesseract-2.04/ccmain/pagewalk.cpp +666 -0
- data/vendor/tesseract-2.04/ccmain/pagewalk.h +155 -0
- data/vendor/tesseract-2.04/ccmain/paircmp.cpp +107 -0
- data/vendor/tesseract-2.04/ccmain/paircmp.h +43 -0
- data/vendor/tesseract-2.04/ccmain/pgedit.cpp +1867 -0
- data/vendor/tesseract-2.04/ccmain/pgedit.h +181 -0
- data/vendor/tesseract-2.04/ccmain/reject.cpp +1775 -0
- data/vendor/tesseract-2.04/ccmain/reject.h +181 -0
- data/vendor/tesseract-2.04/ccmain/scaleimg.cpp +366 -0
- data/vendor/tesseract-2.04/ccmain/scaleimg.h +35 -0
- data/vendor/tesseract-2.04/ccmain/tessbox.cpp +375 -0
- data/vendor/tesseract-2.04/ccmain/tessbox.h +110 -0
- data/vendor/tesseract-2.04/ccmain/tessedit.cpp +278 -0
- data/vendor/tesseract-2.04/ccmain/tessedit.h +49 -0
- data/vendor/tesseract-2.04/ccmain/tessembedded.cpp +110 -0
- data/vendor/tesseract-2.04/ccmain/tessembedded.h +38 -0
- data/vendor/tesseract-2.04/ccmain/tesseractfull.cc +37 -0
- data/vendor/tesseract-2.04/ccmain/tesseractmain.cpp +387 -0
- data/vendor/tesseract-2.04/ccmain/tesseractmain.h +58 -0
- data/vendor/tesseract-2.04/ccmain/tessio.h +110 -0
- data/vendor/tesseract-2.04/ccmain/tessvars.cpp +38 -0
- data/vendor/tesseract-2.04/ccmain/tessvars.h +48 -0
- data/vendor/tesseract-2.04/ccmain/tfacep.h +62 -0
- data/vendor/tesseract-2.04/ccmain/tfacepp.cpp +443 -0
- data/vendor/tesseract-2.04/ccmain/tfacepp.h +85 -0
- data/vendor/tesseract-2.04/ccmain/tstruct.cpp +549 -0
- data/vendor/tesseract-2.04/ccmain/tstruct.h +108 -0
- data/vendor/tesseract-2.04/ccmain/varabled.cpp +346 -0
- data/vendor/tesseract-2.04/ccmain/varabled.h +125 -0
- data/vendor/tesseract-2.04/ccmain/werdit.cpp +193 -0
- data/vendor/tesseract-2.04/ccmain/werdit.h +67 -0
- data/vendor/tesseract-2.04/ccstruct/Makefile.am +25 -0
- data/vendor/tesseract-2.04/ccstruct/Makefile.in +650 -0
- data/vendor/tesseract-2.04/ccstruct/blckerr.h +29 -0
- data/vendor/tesseract-2.04/ccstruct/blobbox.cpp +778 -0
- data/vendor/tesseract-2.04/ccstruct/blobbox.h +381 -0
- data/vendor/tesseract-2.04/ccstruct/blobs.cpp +247 -0
- data/vendor/tesseract-2.04/ccstruct/blobs.h +119 -0
- data/vendor/tesseract-2.04/ccstruct/blread.cpp +537 -0
- data/vendor/tesseract-2.04/ccstruct/blread.h +63 -0
- data/vendor/tesseract-2.04/ccstruct/callcpp.cpp +252 -0
- data/vendor/tesseract-2.04/ccstruct/coutln.cpp +650 -0
- data/vendor/tesseract-2.04/ccstruct/coutln.h +186 -0
- data/vendor/tesseract-2.04/ccstruct/crakedge.h +39 -0
- data/vendor/tesseract-2.04/ccstruct/genblob.cpp +133 -0
- data/vendor/tesseract-2.04/ccstruct/genblob.h +52 -0
- data/vendor/tesseract-2.04/ccstruct/hpddef.h +39 -0
- data/vendor/tesseract-2.04/ccstruct/hpdsizes.h +8 -0
- data/vendor/tesseract-2.04/ccstruct/ipoints.h +479 -0
- data/vendor/tesseract-2.04/ccstruct/labls.cpp +188 -0
- data/vendor/tesseract-2.04/ccstruct/labls.h +38 -0
- data/vendor/tesseract-2.04/ccstruct/linlsq.cpp +249 -0
- data/vendor/tesseract-2.04/ccstruct/linlsq.h +102 -0
- data/vendor/tesseract-2.04/ccstruct/lmedsq.cpp +453 -0
- data/vendor/tesseract-2.04/ccstruct/lmedsq.h +84 -0
- data/vendor/tesseract-2.04/ccstruct/mod128.cpp +100 -0
- data/vendor/tesseract-2.04/ccstruct/mod128.h +85 -0
- data/vendor/tesseract-2.04/ccstruct/normalis.cpp +176 -0
- data/vendor/tesseract-2.04/ccstruct/normalis.h +108 -0
- data/vendor/tesseract-2.04/ccstruct/ocrblock.cpp +369 -0
- data/vendor/tesseract-2.04/ccstruct/ocrblock.h +235 -0
- data/vendor/tesseract-2.04/ccstruct/ocrrow.cpp +216 -0
- data/vendor/tesseract-2.04/ccstruct/ocrrow.h +133 -0
- data/vendor/tesseract-2.04/ccstruct/pageblk.cpp +879 -0
- data/vendor/tesseract-2.04/ccstruct/pageblk.h +318 -0
- data/vendor/tesseract-2.04/ccstruct/pageres.cpp +330 -0
- data/vendor/tesseract-2.04/ccstruct/pageres.h +313 -0
- data/vendor/tesseract-2.04/ccstruct/pdblock.cpp +361 -0
- data/vendor/tesseract-2.04/ccstruct/pdblock.h +181 -0
- data/vendor/tesseract-2.04/ccstruct/pdclass.h +54 -0
- data/vendor/tesseract-2.04/ccstruct/points.cpp +102 -0
- data/vendor/tesseract-2.04/ccstruct/points.h +299 -0
- data/vendor/tesseract-2.04/ccstruct/polyaprx.cpp +588 -0
- data/vendor/tesseract-2.04/ccstruct/polyaprx.h +51 -0
- data/vendor/tesseract-2.04/ccstruct/polyblk.cpp +398 -0
- data/vendor/tesseract-2.04/ccstruct/polyblk.h +122 -0
- data/vendor/tesseract-2.04/ccstruct/polyblob.cpp +357 -0
- data/vendor/tesseract-2.04/ccstruct/polyblob.h +102 -0
- data/vendor/tesseract-2.04/ccstruct/polyvert.cpp +23 -0
- data/vendor/tesseract-2.04/ccstruct/polyvert.h +58 -0
- data/vendor/tesseract-2.04/ccstruct/poutline.cpp +441 -0
- data/vendor/tesseract-2.04/ccstruct/poutline.h +125 -0
- data/vendor/tesseract-2.04/ccstruct/quadlsq.cpp +147 -0
- data/vendor/tesseract-2.04/ccstruct/quadlsq.h +67 -0
- data/vendor/tesseract-2.04/ccstruct/quadratc.cpp +21 -0
- data/vendor/tesseract-2.04/ccstruct/quadratc.h +63 -0
- data/vendor/tesseract-2.04/ccstruct/quspline.cpp +382 -0
- data/vendor/tesseract-2.04/ccstruct/quspline.h +113 -0
- data/vendor/tesseract-2.04/ccstruct/ratngs.cpp +372 -0
- data/vendor/tesseract-2.04/ccstruct/ratngs.h +198 -0
- data/vendor/tesseract-2.04/ccstruct/rect.cpp +229 -0
- data/vendor/tesseract-2.04/ccstruct/rect.h +320 -0
- data/vendor/tesseract-2.04/ccstruct/rejctmap.cpp +545 -0
- data/vendor/tesseract-2.04/ccstruct/rejctmap.h +284 -0
- data/vendor/tesseract-2.04/ccstruct/rwpoly.cpp +89 -0
- data/vendor/tesseract-2.04/ccstruct/rwpoly.h +45 -0
- data/vendor/tesseract-2.04/ccstruct/statistc.cpp +905 -0
- data/vendor/tesseract-2.04/ccstruct/statistc.h +135 -0
- data/vendor/tesseract-2.04/ccstruct/stepblob.cpp +296 -0
- data/vendor/tesseract-2.04/ccstruct/stepblob.h +88 -0
- data/vendor/tesseract-2.04/ccstruct/txtregn.cpp +230 -0
- data/vendor/tesseract-2.04/ccstruct/txtregn.h +155 -0
- data/vendor/tesseract-2.04/ccstruct/vecfuncs.cpp +63 -0
- data/vendor/tesseract-2.04/ccstruct/vecfuncs.h +91 -0
- data/vendor/tesseract-2.04/ccstruct/werd.cpp +967 -0
- data/vendor/tesseract-2.04/ccstruct/werd.h +277 -0
- data/vendor/tesseract-2.04/ccutil/Makefile.am +19 -0
- data/vendor/tesseract-2.04/ccutil/Makefile.in +626 -0
- data/vendor/tesseract-2.04/ccutil/basedir.cpp +118 -0
- data/vendor/tesseract-2.04/ccutil/basedir.h +32 -0
- data/vendor/tesseract-2.04/ccutil/bits16.cpp +30 -0
- data/vendor/tesseract-2.04/ccutil/bits16.h +61 -0
- data/vendor/tesseract-2.04/ccutil/boxread.cpp +105 -0
- data/vendor/tesseract-2.04/ccutil/boxread.h +44 -0
- data/vendor/tesseract-2.04/ccutil/clst.cpp +626 -0
- data/vendor/tesseract-2.04/ccutil/clst.h +1085 -0
- data/vendor/tesseract-2.04/ccutil/debugwin.cpp +500 -0
- data/vendor/tesseract-2.04/ccutil/debugwin.h +103 -0
- data/vendor/tesseract-2.04/ccutil/elst.cpp +593 -0
- data/vendor/tesseract-2.04/ccutil/elst.h +1125 -0
- data/vendor/tesseract-2.04/ccutil/elst2.cpp +606 -0
- data/vendor/tesseract-2.04/ccutil/elst2.h +1121 -0
- data/vendor/tesseract-2.04/ccutil/errcode.cpp +104 -0
- data/vendor/tesseract-2.04/ccutil/errcode.h +104 -0
- data/vendor/tesseract-2.04/ccutil/fileerr.h +34 -0
- data/vendor/tesseract-2.04/ccutil/globaloc.cpp +115 -0
- data/vendor/tesseract-2.04/ccutil/globaloc.h +40 -0
- data/vendor/tesseract-2.04/ccutil/hashfn.cpp +57 -0
- data/vendor/tesseract-2.04/ccutil/hashfn.h +30 -0
- data/vendor/tesseract-2.04/ccutil/host.h +180 -0
- data/vendor/tesseract-2.04/ccutil/hosthplb.h +1 -0
- data/vendor/tesseract-2.04/ccutil/lsterr.h +43 -0
- data/vendor/tesseract-2.04/ccutil/mainblk.cpp +126 -0
- data/vendor/tesseract-2.04/ccutil/mainblk.h +39 -0
- data/vendor/tesseract-2.04/ccutil/memblk.cpp +1106 -0
- data/vendor/tesseract-2.04/ccutil/memblk.h +189 -0
- data/vendor/tesseract-2.04/ccutil/memry.cpp +532 -0
- data/vendor/tesseract-2.04/ccutil/memry.h +192 -0
- data/vendor/tesseract-2.04/ccutil/memryerr.h +38 -0
- data/vendor/tesseract-2.04/ccutil/mfcpch.cpp +5 -0
- data/vendor/tesseract-2.04/ccutil/mfcpch.h +37 -0
- data/vendor/tesseract-2.04/ccutil/ndminx.h +31 -0
- data/vendor/tesseract-2.04/ccutil/notdll.h +28 -0
- data/vendor/tesseract-2.04/ccutil/nwmain.h +176 -0
- data/vendor/tesseract-2.04/ccutil/ocrclass.h +345 -0
- data/vendor/tesseract-2.04/ccutil/ocrshell.cpp +772 -0
- data/vendor/tesseract-2.04/ccutil/ocrshell.h +191 -0
- data/vendor/tesseract-2.04/ccutil/platform.h +18 -0
- data/vendor/tesseract-2.04/ccutil/scanutils.cpp +543 -0
- data/vendor/tesseract-2.04/ccutil/scanutils.h +55 -0
- data/vendor/tesseract-2.04/ccutil/secname.h +9 -0
- data/vendor/tesseract-2.04/ccutil/serialis.cpp +117 -0
- data/vendor/tesseract-2.04/ccutil/serialis.h +93 -0
- data/vendor/tesseract-2.04/ccutil/stderr.h +26 -0
- data/vendor/tesseract-2.04/ccutil/strngs.cpp +495 -0
- data/vendor/tesseract-2.04/ccutil/strngs.h +138 -0
- data/vendor/tesseract-2.04/ccutil/tessclas.h +135 -0
- data/vendor/tesseract-2.04/ccutil/tessopt.cpp +61 -0
- data/vendor/tesseract-2.04/ccutil/tessopt.h +30 -0
- data/vendor/tesseract-2.04/ccutil/tprintf.cpp +122 -0
- data/vendor/tesseract-2.04/ccutil/tprintf.h +35 -0
- data/vendor/tesseract-2.04/ccutil/unichar.cpp +144 -0
- data/vendor/tesseract-2.04/ccutil/unichar.h +84 -0
- data/vendor/tesseract-2.04/ccutil/unicharmap.cpp +172 -0
- data/vendor/tesseract-2.04/ccutil/unicharmap.h +82 -0
- data/vendor/tesseract-2.04/ccutil/unicharset.cpp +307 -0
- data/vendor/tesseract-2.04/ccutil/unicharset.h +267 -0
- data/vendor/tesseract-2.04/ccutil/varable.cpp +672 -0
- data/vendor/tesseract-2.04/ccutil/varable.h +419 -0
- data/vendor/tesseract-2.04/classify/Makefile.am +24 -0
- data/vendor/tesseract-2.04/classify/Makefile.in +647 -0
- data/vendor/tesseract-2.04/classify/adaptive.cpp +535 -0
- data/vendor/tesseract-2.04/classify/adaptive.h +199 -0
- data/vendor/tesseract-2.04/classify/adaptmatch.cpp +2958 -0
- data/vendor/tesseract-2.04/classify/adaptmatch.h +86 -0
- data/vendor/tesseract-2.04/classify/baseline.cpp +58 -0
- data/vendor/tesseract-2.04/classify/baseline.h +91 -0
- data/vendor/tesseract-2.04/classify/blobclass.cpp +123 -0
- data/vendor/tesseract-2.04/classify/blobclass.h +49 -0
- data/vendor/tesseract-2.04/classify/chartoname.cpp +74 -0
- data/vendor/tesseract-2.04/classify/chartoname.h +21 -0
- data/vendor/tesseract-2.04/classify/cluster.cpp +2834 -0
- data/vendor/tesseract-2.04/classify/cluster.h +158 -0
- data/vendor/tesseract-2.04/classify/clusttool.cpp +507 -0
- data/vendor/tesseract-2.04/classify/clusttool.h +70 -0
- data/vendor/tesseract-2.04/classify/cutoffs.cpp +73 -0
- data/vendor/tesseract-2.04/classify/cutoffs.h +49 -0
- data/vendor/tesseract-2.04/classify/extern.h +32 -0
- data/vendor/tesseract-2.04/classify/extract.cpp +100 -0
- data/vendor/tesseract-2.04/classify/extract.h +36 -0
- data/vendor/tesseract-2.04/classify/featdefs.cpp +244 -0
- data/vendor/tesseract-2.04/classify/featdefs.h +71 -0
- data/vendor/tesseract-2.04/classify/flexfx.cpp +87 -0
- data/vendor/tesseract-2.04/classify/flexfx.h +34 -0
- data/vendor/tesseract-2.04/classify/float2int.cpp +126 -0
- data/vendor/tesseract-2.04/classify/float2int.h +65 -0
- data/vendor/tesseract-2.04/classify/fpoint.cpp +73 -0
- data/vendor/tesseract-2.04/classify/fpoint.h +63 -0
- data/vendor/tesseract-2.04/classify/fxdefs.cpp +74 -0
- data/vendor/tesseract-2.04/classify/fxdefs.h +93 -0
- data/vendor/tesseract-2.04/classify/fxid.h +69 -0
- data/vendor/tesseract-2.04/classify/hideedge.cpp +35 -0
- data/vendor/tesseract-2.04/classify/hideedge.h +76 -0
- data/vendor/tesseract-2.04/classify/intfx.cpp +608 -0
- data/vendor/tesseract-2.04/classify/intfx.h +63 -0
- data/vendor/tesseract-2.04/classify/intmatcher.cpp +1524 -0
- data/vendor/tesseract-2.04/classify/intmatcher.h +199 -0
- data/vendor/tesseract-2.04/classify/intproto.cpp +1823 -0
- data/vendor/tesseract-2.04/classify/intproto.h +320 -0
- data/vendor/tesseract-2.04/classify/kdtree.cpp +884 -0
- data/vendor/tesseract-2.04/classify/kdtree.h +118 -0
- data/vendor/tesseract-2.04/classify/mf.cpp +106 -0
- data/vendor/tesseract-2.04/classify/mf.h +43 -0
- data/vendor/tesseract-2.04/classify/mfdefs.cpp +58 -0
- data/vendor/tesseract-2.04/classify/mfdefs.h +60 -0
- data/vendor/tesseract-2.04/classify/mfoutline.cpp +1087 -0
- data/vendor/tesseract-2.04/classify/mfoutline.h +277 -0
- data/vendor/tesseract-2.04/classify/mfx.cpp +436 -0
- data/vendor/tesseract-2.04/classify/mfx.h +52 -0
- data/vendor/tesseract-2.04/classify/normfeat.cpp +132 -0
- data/vendor/tesseract-2.04/classify/normfeat.h +63 -0
- data/vendor/tesseract-2.04/classify/normmatch.cpp +305 -0
- data/vendor/tesseract-2.04/classify/normmatch.h +38 -0
- data/vendor/tesseract-2.04/classify/ocrfeatures.cpp +310 -0
- data/vendor/tesseract-2.04/classify/ocrfeatures.h +148 -0
- data/vendor/tesseract-2.04/classify/outfeat.cpp +262 -0
- data/vendor/tesseract-2.04/classify/outfeat.h +76 -0
- data/vendor/tesseract-2.04/classify/picofeat.cpp +297 -0
- data/vendor/tesseract-2.04/classify/picofeat.h +65 -0
- data/vendor/tesseract-2.04/classify/protos.cpp +472 -0
- data/vendor/tesseract-2.04/classify/protos.h +258 -0
- data/vendor/tesseract-2.04/classify/sigmenu.cpp +225 -0
- data/vendor/tesseract-2.04/classify/sigmenu.h +39 -0
- data/vendor/tesseract-2.04/classify/speckle.cpp +127 -0
- data/vendor/tesseract-2.04/classify/speckle.h +69 -0
- data/vendor/tesseract-2.04/classify/xform2d.cpp +120 -0
- data/vendor/tesseract-2.04/classify/xform2d.h +60 -0
- data/vendor/tesseract-2.04/config/config.guess +1466 -0
- data/vendor/tesseract-2.04/config/config.h.in +188 -0
- data/vendor/tesseract-2.04/config/config.sub +1579 -0
- data/vendor/tesseract-2.04/config/depcomp +530 -0
- data/vendor/tesseract-2.04/config/install-sh +269 -0
- data/vendor/tesseract-2.04/config/missing +198 -0
- data/vendor/tesseract-2.04/config/mkinstalldirs +40 -0
- data/vendor/tesseract-2.04/config/stamp-h.in +0 -0
- data/vendor/tesseract-2.04/configure +10424 -0
- data/vendor/tesseract-2.04/cutil/Makefile.am +14 -0
- data/vendor/tesseract-2.04/cutil/Makefile.in +612 -0
- data/vendor/tesseract-2.04/cutil/bitvec.cpp +115 -0
- data/vendor/tesseract-2.04/cutil/bitvec.h +100 -0
- data/vendor/tesseract-2.04/cutil/callcpp.h +190 -0
- data/vendor/tesseract-2.04/cutil/const.h +108 -0
- data/vendor/tesseract-2.04/cutil/cutil.cpp +92 -0
- data/vendor/tesseract-2.04/cutil/cutil.h +159 -0
- data/vendor/tesseract-2.04/cutil/danerror.cpp +144 -0
- data/vendor/tesseract-2.04/cutil/danerror.h +41 -0
- data/vendor/tesseract-2.04/cutil/debug.cpp +97 -0
- data/vendor/tesseract-2.04/cutil/debug.h +348 -0
- data/vendor/tesseract-2.04/cutil/efio.cpp +62 -0
- data/vendor/tesseract-2.04/cutil/efio.h +32 -0
- data/vendor/tesseract-2.04/cutil/emalloc.cpp +91 -0
- data/vendor/tesseract-2.04/cutil/emalloc.h +44 -0
- data/vendor/tesseract-2.04/cutil/freelist.cpp +75 -0
- data/vendor/tesseract-2.04/cutil/freelist.h +45 -0
- data/vendor/tesseract-2.04/cutil/funcdefs.h +35 -0
- data/vendor/tesseract-2.04/cutil/general.h +33 -0
- data/vendor/tesseract-2.04/cutil/globals.cpp +69 -0
- data/vendor/tesseract-2.04/cutil/globals.h +70 -0
- data/vendor/tesseract-2.04/cutil/listio.cpp +68 -0
- data/vendor/tesseract-2.04/cutil/listio.h +43 -0
- data/vendor/tesseract-2.04/cutil/minmax.h +40 -0
- data/vendor/tesseract-2.04/cutil/oldheap.cpp +337 -0
- data/vendor/tesseract-2.04/cutil/oldheap.h +126 -0
- data/vendor/tesseract-2.04/cutil/oldlist.cpp +393 -0
- data/vendor/tesseract-2.04/cutil/oldlist.h +350 -0
- data/vendor/tesseract-2.04/cutil/structures.cpp +66 -0
- data/vendor/tesseract-2.04/cutil/structures.h +112 -0
- data/vendor/tesseract-2.04/cutil/tessarray.cpp +115 -0
- data/vendor/tesseract-2.04/cutil/tessarray.h +166 -0
- data/vendor/tesseract-2.04/cutil/tordvars.cpp +95 -0
- data/vendor/tesseract-2.04/cutil/tordvars.h +61 -0
- data/vendor/tesseract-2.04/cutil/variables.cpp +317 -0
- data/vendor/tesseract-2.04/cutil/variables.h +170 -0
- data/vendor/tesseract-2.04/dict/Makefile.am +13 -0
- data/vendor/tesseract-2.04/dict/Makefile.in +609 -0
- data/vendor/tesseract-2.04/dict/choicearr.h +96 -0
- data/vendor/tesseract-2.04/dict/choices.cpp +210 -0
- data/vendor/tesseract-2.04/dict/choices.h +241 -0
- data/vendor/tesseract-2.04/dict/context.cpp +270 -0
- data/vendor/tesseract-2.04/dict/context.h +82 -0
- data/vendor/tesseract-2.04/dict/dawg.cpp +363 -0
- data/vendor/tesseract-2.04/dict/dawg.h +394 -0
- data/vendor/tesseract-2.04/dict/hyphen.cpp +84 -0
- data/vendor/tesseract-2.04/dict/hyphen.h +125 -0
- data/vendor/tesseract-2.04/dict/lookdawg.cpp +228 -0
- data/vendor/tesseract-2.04/dict/lookdawg.h +76 -0
- data/vendor/tesseract-2.04/dict/makedawg.cpp +449 -0
- data/vendor/tesseract-2.04/dict/makedawg.h +83 -0
- data/vendor/tesseract-2.04/dict/matchdefs.h +145 -0
- data/vendor/tesseract-2.04/dict/permdawg.cpp +415 -0
- data/vendor/tesseract-2.04/dict/permdawg.h +98 -0
- data/vendor/tesseract-2.04/dict/permngram.cpp +358 -0
- data/vendor/tesseract-2.04/dict/permngram.h +33 -0
- data/vendor/tesseract-2.04/dict/permnum.cpp +522 -0
- data/vendor/tesseract-2.04/dict/permnum.h +83 -0
- data/vendor/tesseract-2.04/dict/permute.cpp +1704 -0
- data/vendor/tesseract-2.04/dict/permute.h +93 -0
- data/vendor/tesseract-2.04/dict/reduce.cpp +424 -0
- data/vendor/tesseract-2.04/dict/reduce.h +112 -0
- data/vendor/tesseract-2.04/dict/states.cpp +382 -0
- data/vendor/tesseract-2.04/dict/states.h +111 -0
- data/vendor/tesseract-2.04/dict/stopper.cpp +1458 -0
- data/vendor/tesseract-2.04/dict/stopper.h +103 -0
- data/vendor/tesseract-2.04/dict/trie.cpp +683 -0
- data/vendor/tesseract-2.04/dict/trie.h +190 -0
- data/vendor/tesseract-2.04/dlltest/Makefile.am +2 -0
- data/vendor/tesseract-2.04/dlltest/Makefile.in +388 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.cpp +163 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.dsp +186 -0
- data/vendor/tesseract-2.04/dlltest/dlltest.vcproj +637 -0
- data/vendor/tesseract-2.04/eurotext.tif +0 -0
- data/vendor/tesseract-2.04/image/Makefile.am +10 -0
- data/vendor/tesseract-2.04/image/Makefile.in +596 -0
- data/vendor/tesseract-2.04/image/bitstrm.cpp +157 -0
- data/vendor/tesseract-2.04/image/bitstrm.h +73 -0
- data/vendor/tesseract-2.04/image/img.h +336 -0
- data/vendor/tesseract-2.04/image/imgbmp.cpp +223 -0
- data/vendor/tesseract-2.04/image/imgbmp.h +50 -0
- data/vendor/tesseract-2.04/image/imgerrs.h +35 -0
- data/vendor/tesseract-2.04/image/imgio.cpp +321 -0
- data/vendor/tesseract-2.04/image/imgio.h +22 -0
- data/vendor/tesseract-2.04/image/imgs.cpp +1764 -0
- data/vendor/tesseract-2.04/image/imgs.h +102 -0
- data/vendor/tesseract-2.04/image/imgtiff.cpp +723 -0
- data/vendor/tesseract-2.04/image/imgtiff.h +89 -0
- data/vendor/tesseract-2.04/image/imgunpk.h +1377 -0
- data/vendor/tesseract-2.04/image/svshowim.cpp +40 -0
- data/vendor/tesseract-2.04/image/svshowim.h +25 -0
- data/vendor/tesseract-2.04/java/Makefile.am +4 -0
- data/vendor/tesseract-2.04/java/Makefile.in +473 -0
- data/vendor/tesseract-2.04/java/com/Makefile.am +1 -0
- data/vendor/tesseract-2.04/java/com/Makefile.in +470 -0
- data/vendor/tesseract-2.04/java/com/google/Makefile.am +1 -0
- data/vendor/tesseract-2.04/java/com/google/Makefile.in +470 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.am +4 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/Makefile.in +473 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ScrollView.java +421 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.am +5 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/Makefile.in +474 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEvent.java +87 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventHandler.java +296 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/events/SVEventType.java +31 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.am +7 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/Makefile.in +476 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVAbstractMenuItem.java +58 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVCheckboxMenuItem.java +60 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVEmptyMenuItem.java +48 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVImageHandler.java +228 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuBar.java +130 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVMenuItem.java +61 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVPopupMenu.java +142 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVSubMenuItem.java +41 -0
- data/vendor/tesseract-2.04/java/com/google/scrollview/ui/SVWindow.java +643 -0
- data/vendor/tesseract-2.04/java/makefile +55 -0
- data/vendor/tesseract-2.04/pageseg/Makefile.am +13 -0
- data/vendor/tesseract-2.04/pageseg/Makefile.in +596 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.cpp +363 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg.h +90 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.cpp +82 -0
- data/vendor/tesseract-2.04/pageseg/leptonica_pageseg_interface.h +30 -0
- data/vendor/tesseract-2.04/pageseg/pageseg.cpp +170 -0
- data/vendor/tesseract-2.04/pageseg/pageseg.h +29 -0
- data/vendor/tesseract-2.04/phototest.tif +0 -0
- data/vendor/tesseract-2.04/tessdata/Makefile.am +31 -0
- data/vendor/tesseract-2.04/tessdata/Makefile.in +529 -0
- data/vendor/tesseract-2.04/tessdata/configs/Makefile.am +3 -0
- data/vendor/tesseract-2.04/tessdata/configs/Makefile.in +344 -0
- data/vendor/tesseract-2.04/tessdata/configs/api_config +1 -0
- data/vendor/tesseract-2.04/tessdata/configs/box.train +19 -0
- data/vendor/tesseract-2.04/tessdata/configs/box.train.stderr +18 -0
- data/vendor/tesseract-2.04/tessdata/configs/inter +4 -0
- data/vendor/tesseract-2.04/tessdata/configs/kannada +4 -0
- data/vendor/tesseract-2.04/tessdata/configs/makebox +1 -0
- data/vendor/tesseract-2.04/tessdata/configs/unlv +3 -0
- data/vendor/tesseract-2.04/tessdata/confsets +3 -0
- data/vendor/tesseract-2.04/tessdata/eng.DangAmbigs +39 -0
- data/vendor/tesseract-2.04/tessdata/eng.freq-dawg +0 -0
- data/vendor/tesseract-2.04/tessdata/eng.inttemp +0 -0
- data/vendor/tesseract-2.04/tessdata/eng.normproto +1247 -0
- data/vendor/tesseract-2.04/tessdata/eng.pffmtable +111 -0
- data/vendor/tesseract-2.04/tessdata/eng.unicharset +113 -0
- data/vendor/tesseract-2.04/tessdata/eng.user-words +921 -0
- data/vendor/tesseract-2.04/tessdata/eng.word-dawg +0 -0
- data/vendor/tesseract-2.04/tessdata/makedummies +8 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.am +3 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/Makefile.in +344 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/batch +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/batch.nochop +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/matdemo +7 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/msdemo +13 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/nobatch +2 -0
- data/vendor/tesseract-2.04/tessdata/tessconfigs/segdemo +9 -0
- data/vendor/tesseract-2.04/tessdll.cpp +351 -0
- data/vendor/tesseract-2.04/tessdll.dsp +2050 -0
- data/vendor/tesseract-2.04/tessdll.h +143 -0
- data/vendor/tesseract-2.04/tessdll.vcproj +5495 -0
- data/vendor/tesseract-2.04/tesseract.dsp +2124 -0
- data/vendor/tesseract-2.04/tesseract.dsw +116 -0
- data/vendor/tesseract-2.04/tesseract.sln +59 -0
- data/vendor/tesseract-2.04/tesseract.spec +188 -0
- data/vendor/tesseract-2.04/tesseract.vcproj +5859 -0
- data/vendor/tesseract-2.04/testing/Makefile.am +2 -0
- data/vendor/tesseract-2.04/testing/Makefile.in +312 -0
- data/vendor/tesseract-2.04/testing/README +43 -0
- data/vendor/tesseract-2.04/testing/counttestset.sh +61 -0
- data/vendor/tesseract-2.04/testing/reorgdata.sh +44 -0
- data/vendor/tesseract-2.04/testing/reports/1995.bus.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.doe3.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.mag.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/1995.news.3B.sum +1 -0
- data/vendor/tesseract-2.04/testing/reports/2.03.summary +9 -0
- data/vendor/tesseract-2.04/testing/reports/2.04.summary +9 -0
- data/vendor/tesseract-2.04/testing/runalltests.sh +110 -0
- data/vendor/tesseract-2.04/testing/runtestset.sh +61 -0
- data/vendor/tesseract-2.04/textord/Makefile.am +20 -0
- data/vendor/tesseract-2.04/textord/Makefile.in +624 -0
- data/vendor/tesseract-2.04/textord/blkocc.cpp +809 -0
- data/vendor/tesseract-2.04/textord/blkocc.h +327 -0
- data/vendor/tesseract-2.04/textord/blobcmpl.h +31 -0
- data/vendor/tesseract-2.04/textord/drawedg.cpp +77 -0
- data/vendor/tesseract-2.04/textord/drawedg.h +34 -0
- data/vendor/tesseract-2.04/textord/drawtord.cpp +469 -0
- data/vendor/tesseract-2.04/textord/drawtord.h +107 -0
- data/vendor/tesseract-2.04/textord/edgblob.cpp +412 -0
- data/vendor/tesseract-2.04/textord/edgblob.h +100 -0
- data/vendor/tesseract-2.04/textord/edgloop.cpp +211 -0
- data/vendor/tesseract-2.04/textord/edgloop.h +66 -0
- data/vendor/tesseract-2.04/textord/fpchop.cpp +1641 -0
- data/vendor/tesseract-2.04/textord/fpchop.h +238 -0
- data/vendor/tesseract-2.04/textord/gap_map.cpp +166 -0
- data/vendor/tesseract-2.04/textord/gap_map.h +40 -0
- data/vendor/tesseract-2.04/textord/makerow.cpp +2628 -0
- data/vendor/tesseract-2.04/textord/makerow.h +295 -0
- data/vendor/tesseract-2.04/textord/oldbasel.cpp +1761 -0
- data/vendor/tesseract-2.04/textord/oldbasel.h +195 -0
- data/vendor/tesseract-2.04/textord/pithsync.cpp +696 -0
- data/vendor/tesseract-2.04/textord/pithsync.h +134 -0
- data/vendor/tesseract-2.04/textord/pitsync1.cpp +425 -0
- data/vendor/tesseract-2.04/textord/pitsync1.h +135 -0
- data/vendor/tesseract-2.04/textord/scanedg.cpp +452 -0
- data/vendor/tesseract-2.04/textord/scanedg.h +74 -0
- data/vendor/tesseract-2.04/textord/sortflts.cpp +80 -0
- data/vendor/tesseract-2.04/textord/sortflts.h +64 -0
- data/vendor/tesseract-2.04/textord/tessout.h +76 -0
- data/vendor/tesseract-2.04/textord/topitch.cpp +2019 -0
- data/vendor/tesseract-2.04/textord/topitch.h +195 -0
- data/vendor/tesseract-2.04/textord/tordmain.cpp +907 -0
- data/vendor/tesseract-2.04/textord/tordmain.h +132 -0
- data/vendor/tesseract-2.04/textord/tospace.cpp +1939 -0
- data/vendor/tesseract-2.04/textord/tospace.h +193 -0
- data/vendor/tesseract-2.04/textord/tovars.cpp +87 -0
- data/vendor/tesseract-2.04/textord/tovars.h +94 -0
- data/vendor/tesseract-2.04/textord/underlin.cpp +312 -0
- data/vendor/tesseract-2.04/textord/underlin.h +53 -0
- data/vendor/tesseract-2.04/textord/wordseg.cpp +620 -0
- data/vendor/tesseract-2.04/textord/wordseg.h +70 -0
- data/vendor/tesseract-2.04/training/Makefile.am +54 -0
- data/vendor/tesseract-2.04/training/Makefile.in +720 -0
- data/vendor/tesseract-2.04/training/cnTraining.cpp +855 -0
- data/vendor/tesseract-2.04/training/cntraining.dsp +243 -0
- data/vendor/tesseract-2.04/training/cntraining.vcproj +950 -0
- data/vendor/tesseract-2.04/training/mergenf.cpp +451 -0
- data/vendor/tesseract-2.04/training/mergenf.h +106 -0
- data/vendor/tesseract-2.04/training/mfTraining.cpp +1341 -0
- data/vendor/tesseract-2.04/training/mftraining.dsp +285 -0
- data/vendor/tesseract-2.04/training/mftraining.vcproj +1055 -0
- data/vendor/tesseract-2.04/training/name2char.cpp +166 -0
- data/vendor/tesseract-2.04/training/name2char.h +38 -0
- data/vendor/tesseract-2.04/training/training.cpp +190 -0
- data/vendor/tesseract-2.04/training/training.h +130 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.cpp +140 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.dsp +335 -0
- data/vendor/tesseract-2.04/training/unicharset_extractor.vcproj +769 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.cpp +69 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.dsp +319 -0
- data/vendor/tesseract-2.04/training/wordlist2dawg.vcproj +1113 -0
- data/vendor/tesseract-2.04/viewer/Makefile.am +9 -0
- data/vendor/tesseract-2.04/viewer/Makefile.in +591 -0
- data/vendor/tesseract-2.04/viewer/scrollview.cpp +825 -0
- data/vendor/tesseract-2.04/viewer/scrollview.h +414 -0
- data/vendor/tesseract-2.04/viewer/svmnode.cpp +140 -0
- data/vendor/tesseract-2.04/viewer/svmnode.h +94 -0
- data/vendor/tesseract-2.04/viewer/svpaint.cpp +220 -0
- data/vendor/tesseract-2.04/viewer/svutil.cpp +347 -0
- data/vendor/tesseract-2.04/viewer/svutil.h +138 -0
- data/vendor/tesseract-2.04/wordrec/Makefile.am +23 -0
- data/vendor/tesseract-2.04/wordrec/Makefile.in +641 -0
- data/vendor/tesseract-2.04/wordrec/associate.cpp +62 -0
- data/vendor/tesseract-2.04/wordrec/associate.h +93 -0
- data/vendor/tesseract-2.04/wordrec/badwords.cpp +106 -0
- data/vendor/tesseract-2.04/wordrec/badwords.h +51 -0
- data/vendor/tesseract-2.04/wordrec/bestfirst.cpp +526 -0
- data/vendor/tesseract-2.04/wordrec/bestfirst.h +203 -0
- data/vendor/tesseract-2.04/wordrec/charsample.h +208 -0
- data/vendor/tesseract-2.04/wordrec/chop.cpp +458 -0
- data/vendor/tesseract-2.04/wordrec/chop.h +153 -0
- data/vendor/tesseract-2.04/wordrec/chopper.cpp +750 -0
- data/vendor/tesseract-2.04/wordrec/chopper.h +104 -0
- data/vendor/tesseract-2.04/wordrec/closed.cpp +136 -0
- data/vendor/tesseract-2.04/wordrec/closed.h +65 -0
- data/vendor/tesseract-2.04/wordrec/djmenus.cpp +118 -0
- data/vendor/tesseract-2.04/wordrec/djmenus.h +33 -0
- data/vendor/tesseract-2.04/wordrec/drawfx.cpp +92 -0
- data/vendor/tesseract-2.04/wordrec/drawfx.h +33 -0
- data/vendor/tesseract-2.04/wordrec/findseam.cpp +566 -0
- data/vendor/tesseract-2.04/wordrec/findseam.h +69 -0
- data/vendor/tesseract-2.04/wordrec/gradechop.cpp +226 -0
- data/vendor/tesseract-2.04/wordrec/gradechop.h +91 -0
- data/vendor/tesseract-2.04/wordrec/heuristic.cpp +194 -0
- data/vendor/tesseract-2.04/wordrec/heuristic.h +120 -0
- data/vendor/tesseract-2.04/wordrec/makechop.cpp +281 -0
- data/vendor/tesseract-2.04/wordrec/makechop.h +69 -0
- data/vendor/tesseract-2.04/wordrec/matchtab.cpp +191 -0
- data/vendor/tesseract-2.04/wordrec/matchtab.h +45 -0
- data/vendor/tesseract-2.04/wordrec/matrix.cpp +118 -0
- data/vendor/tesseract-2.04/wordrec/matrix.h +104 -0
- data/vendor/tesseract-2.04/wordrec/measure.h +135 -0
- data/vendor/tesseract-2.04/wordrec/metrics.cpp +363 -0
- data/vendor/tesseract-2.04/wordrec/metrics.h +130 -0
- data/vendor/tesseract-2.04/wordrec/mfvars.cpp +51 -0
- data/vendor/tesseract-2.04/wordrec/mfvars.h +27 -0
- data/vendor/tesseract-2.04/wordrec/msmenus.cpp +110 -0
- data/vendor/tesseract-2.04/wordrec/msmenus.h +45 -0
- data/vendor/tesseract-2.04/wordrec/olutil.cpp +153 -0
- data/vendor/tesseract-2.04/wordrec/olutil.h +128 -0
- data/vendor/tesseract-2.04/wordrec/outlines.cpp +172 -0
- data/vendor/tesseract-2.04/wordrec/outlines.h +148 -0
- data/vendor/tesseract-2.04/wordrec/pieces.cpp +410 -0
- data/vendor/tesseract-2.04/wordrec/pieces.h +154 -0
- data/vendor/tesseract-2.04/wordrec/plotedges.cpp +134 -0
- data/vendor/tesseract-2.04/wordrec/plotedges.h +71 -0
- data/vendor/tesseract-2.04/wordrec/plotseg.cpp +116 -0
- data/vendor/tesseract-2.04/wordrec/plotseg.h +73 -0
- data/vendor/tesseract-2.04/wordrec/render.cpp +152 -0
- data/vendor/tesseract-2.04/wordrec/render.h +58 -0
- data/vendor/tesseract-2.04/wordrec/seam.cpp +482 -0
- data/vendor/tesseract-2.04/wordrec/seam.h +136 -0
- data/vendor/tesseract-2.04/wordrec/split.cpp +182 -0
- data/vendor/tesseract-2.04/wordrec/split.h +115 -0
- data/vendor/tesseract-2.04/wordrec/tally.cpp +68 -0
- data/vendor/tesseract-2.04/wordrec/tally.h +94 -0
- data/vendor/tesseract-2.04/wordrec/tessinit.cpp +108 -0
- data/vendor/tesseract-2.04/wordrec/tessinit.h +46 -0
- data/vendor/tesseract-2.04/wordrec/tface.cpp +272 -0
- data/vendor/tesseract-2.04/wordrec/tface.h +35 -0
- data/vendor/tesseract-2.04/wordrec/wordclass.cpp +284 -0
- data/vendor/tesseract-2.04/wordrec/wordclass.h +64 -0
- metadata +708 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: pdblock.h (Formerly pdblk.h)
|
|
3
|
+
* Description: Page block class definition.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Thu Mar 14 17:32:01 GMT 1991
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1991, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#ifndef PDBLOCK_H
|
|
21
|
+
#define PDBLOCK_H
|
|
22
|
+
|
|
23
|
+
#include "img.h"
|
|
24
|
+
#include "strngs.h"
|
|
25
|
+
#include "pageblk.h"
|
|
26
|
+
|
|
27
|
+
#include "hpddef.h" //must be last (handpd.dll)
|
|
28
|
+
|
|
29
|
+
class DLLSYM PDBLK; //forward decl
|
|
30
|
+
|
|
31
|
+
CLISTIZEH (PDBLK)
|
|
32
|
+
class DLLSYM PDBLK //page block
|
|
33
|
+
{
|
|
34
|
+
friend class BLOCK_RECT_IT; //block iterator
|
|
35
|
+
|
|
36
|
+
//block label
|
|
37
|
+
friend void scan_hpd_blocks(const char *name,
|
|
38
|
+
PAGE_BLOCK_LIST *page_blocks, //head of full pag
|
|
39
|
+
inT32 &block_no, //no of blocks
|
|
40
|
+
PDBLK_C_IT *block_it);
|
|
41
|
+
friend BOOL8 read_vec_file( //read uscan output
|
|
42
|
+
STRING name, //basename of file
|
|
43
|
+
inT32 xsize, //page size //output list
|
|
44
|
+
inT32 ysize,
|
|
45
|
+
PDBLK_CLIST *blocks);
|
|
46
|
+
friend BOOL8 read_pd_file( //read uscan output
|
|
47
|
+
STRING name, //basename of file
|
|
48
|
+
inT32 xsize, //page size //output list
|
|
49
|
+
inT32 ysize,
|
|
50
|
+
PDBLK_CLIST *blocks);
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
PDBLK() { //empty constructor
|
|
54
|
+
hand_block = NULL;
|
|
55
|
+
hand_poly = NULL;
|
|
56
|
+
}
|
|
57
|
+
PDBLK( //simple constructor
|
|
58
|
+
inT16 xmin, //bottom left
|
|
59
|
+
inT16 ymin,
|
|
60
|
+
inT16 xmax, //top right
|
|
61
|
+
inT16 ymax);
|
|
62
|
+
|
|
63
|
+
void set_sides( //set vertex lists
|
|
64
|
+
ICOORDELT_LIST *left, //list of left vertices
|
|
65
|
+
ICOORDELT_LIST *right); //list of right vertices
|
|
66
|
+
|
|
67
|
+
~PDBLK () { //destructor
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
TEXT_REGION *text_region() {
|
|
71
|
+
return hand_block;
|
|
72
|
+
}
|
|
73
|
+
POLY_BLOCK *poly_block() {
|
|
74
|
+
return hand_poly;
|
|
75
|
+
}
|
|
76
|
+
void set_poly_block( //set the poly block
|
|
77
|
+
POLY_BLOCK *blk) {
|
|
78
|
+
hand_poly = blk;
|
|
79
|
+
}
|
|
80
|
+
void bounding_box( //get box
|
|
81
|
+
ICOORD &bottom_left, //bottom left
|
|
82
|
+
ICOORD &top_right) const { //topright
|
|
83
|
+
bottom_left = box.botleft ();
|
|
84
|
+
top_right = box.topright ();
|
|
85
|
+
}
|
|
86
|
+
//get real box
|
|
87
|
+
const TBOX &bounding_box() const {
|
|
88
|
+
return box;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
BOOL8 contains( //is pt inside block
|
|
92
|
+
ICOORD pt);
|
|
93
|
+
|
|
94
|
+
void move( // reposition block
|
|
95
|
+
const ICOORD vec); // by vector
|
|
96
|
+
|
|
97
|
+
void plot( //draw histogram
|
|
98
|
+
ScrollView* window, //window to draw in
|
|
99
|
+
inT32 serial, //serial number
|
|
100
|
+
ScrollView::Color colour); //colour to draw in
|
|
101
|
+
|
|
102
|
+
void show( //show image
|
|
103
|
+
IMAGE *image, //image to show
|
|
104
|
+
ScrollView* window); //window to show in
|
|
105
|
+
|
|
106
|
+
PDBLK & operator= ( //assignment
|
|
107
|
+
const PDBLK & source); //from this
|
|
108
|
+
|
|
109
|
+
protected:
|
|
110
|
+
TEXT_REGION * hand_block; //if it exists
|
|
111
|
+
POLY_BLOCK *hand_poly; //wierd as well
|
|
112
|
+
ICOORDELT_LIST leftside; //left side vertices
|
|
113
|
+
ICOORDELT_LIST rightside; //right side vertices
|
|
114
|
+
TBOX box; //bounding box
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
class DLLSYM BLOCK_RECT_IT //rectangle iterator
|
|
118
|
+
{
|
|
119
|
+
public:
|
|
120
|
+
BLOCK_RECT_IT( //constructor
|
|
121
|
+
PDBLK *blkptr); //block to iterate
|
|
122
|
+
|
|
123
|
+
//start (new) block
|
|
124
|
+
NEWDELETE2 (BLOCK_RECT_IT) void set_to_block (
|
|
125
|
+
PDBLK * blkptr); //block to iterate
|
|
126
|
+
|
|
127
|
+
void start_block(); //start iteration
|
|
128
|
+
|
|
129
|
+
void forward(); //next rectangle
|
|
130
|
+
|
|
131
|
+
BOOL8 cycled_rects() { //test end
|
|
132
|
+
return left_it.cycled_list () && right_it.cycled_list ();
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
void bounding_box( //current rectangle
|
|
136
|
+
ICOORD &bleft, //bottom left
|
|
137
|
+
ICOORD &tright) { //top right
|
|
138
|
+
//bottom left
|
|
139
|
+
bleft = ICOORD (left_it.data ()->x (), ymin);
|
|
140
|
+
//top right
|
|
141
|
+
tright = ICOORD (right_it.data ()->x (), ymax);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
private:
|
|
145
|
+
inT16 ymin; //bottom of rectangle
|
|
146
|
+
inT16 ymax; //top of rectangle
|
|
147
|
+
PDBLK *block; //block to iterate
|
|
148
|
+
ICOORDELT_IT left_it; //boundary iterators
|
|
149
|
+
ICOORDELT_IT right_it;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
class DLLSYM BLOCK_LINE_IT //rectangle iterator
|
|
153
|
+
{
|
|
154
|
+
public:
|
|
155
|
+
BLOCK_LINE_IT ( //constructor
|
|
156
|
+
PDBLK * blkptr) //from block
|
|
157
|
+
:rect_it (blkptr) {
|
|
158
|
+
block = blkptr; //remember block
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
//start (new) block
|
|
162
|
+
NEWDELETE2 (BLOCK_LINE_IT) void set_to_block (
|
|
163
|
+
PDBLK * blkptr) { //block to start
|
|
164
|
+
block = blkptr; //remember block
|
|
165
|
+
//set iterator
|
|
166
|
+
rect_it.set_to_block (blkptr);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
inT16 get_line( //get a line
|
|
170
|
+
inT16 y, //line to get
|
|
171
|
+
inT16 &xext); //output extent
|
|
172
|
+
|
|
173
|
+
private:
|
|
174
|
+
PDBLK * block; //block to iterate
|
|
175
|
+
BLOCK_RECT_IT rect_it; //rectangle iterator
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
int decreasing_top_order( //
|
|
179
|
+
const void *row1,
|
|
180
|
+
const void *row2);
|
|
181
|
+
#endif
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: pdclass.h (Formerly pdstruct.h)
|
|
3
|
+
* Description: Data structures for read_vec_file.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Tue Nov 3 11:42:08 GMT 1992
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1992, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#ifndef PDCLASS_H
|
|
21
|
+
#define PDCLASS_H
|
|
22
|
+
|
|
23
|
+
#include "points.h"
|
|
24
|
+
|
|
25
|
+
struct VEC_HEADER
|
|
26
|
+
{
|
|
27
|
+
inT32 filesize; //bytes in file
|
|
28
|
+
inT16 bytesize; //sizeof a byte
|
|
29
|
+
inT16 arraysize; //no of blocks
|
|
30
|
+
inT16 width; //of image
|
|
31
|
+
inT16 height;
|
|
32
|
+
inT16 res; //not set
|
|
33
|
+
inT16 bpp;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
struct BLOCK_HEADER
|
|
37
|
+
{
|
|
38
|
+
uinT8 type; //block type
|
|
39
|
+
uinT8 valid; //useable flag
|
|
40
|
+
uinT8 charsize; //blob size
|
|
41
|
+
uinT8 downsamplerate; //??
|
|
42
|
+
uinT8 subtype; //??
|
|
43
|
+
uinT8 temp; //??
|
|
44
|
+
uinT16 offset; //index in vectors
|
|
45
|
+
uinT16 order; //block number
|
|
46
|
+
uinT16 entries; //no of vectors
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
struct VEC_ENTRY
|
|
50
|
+
{
|
|
51
|
+
ICOORD start; //start of vector
|
|
52
|
+
ICOORD end; //in clockwise dir
|
|
53
|
+
};
|
|
54
|
+
#endif
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: points.c (Formerly coords.c)
|
|
3
|
+
* Description: Member functions for coordinate classes.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Fri Mar 15 08:58:17 GMT 1991
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1991, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#include "mfcpch.h" //precompiled headers
|
|
21
|
+
#include "serialis.h"
|
|
22
|
+
#include "points.h"
|
|
23
|
+
|
|
24
|
+
ELISTIZE_S (ICOORDELT) //turn to list
|
|
25
|
+
bool FCOORD::normalise() { //Convert to unit vec
|
|
26
|
+
float len = length ();
|
|
27
|
+
|
|
28
|
+
if (len < 0.0000000001) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
xcoord /= len;
|
|
32
|
+
ycoord /= len;
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// The fortran/basic sgn function returns -1, 0, 1 if x < 0, x == 0, x > 0
|
|
37
|
+
// respectively.
|
|
38
|
+
static int sign(int x) {
|
|
39
|
+
if (x < 0)
|
|
40
|
+
return -1;
|
|
41
|
+
else
|
|
42
|
+
return x > 0 ? 1 : 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Setup for iterating over the pixels in a vector by the well-known
|
|
46
|
+
// Bresenham rendering algorithm.
|
|
47
|
+
// Starting with major/2 in the accumulator, on each step add major_step,
|
|
48
|
+
// and then add minor to the accumulator. When the accumulator >= major
|
|
49
|
+
// subtract major and step a minor step.
|
|
50
|
+
|
|
51
|
+
void ICOORD::setup_render(ICOORD* major_step, ICOORD* minor_step,
|
|
52
|
+
int* major, int* minor) {
|
|
53
|
+
int abs_x = abs(xcoord);
|
|
54
|
+
int abs_y = abs(ycoord);
|
|
55
|
+
if (abs_x >= abs_y) {
|
|
56
|
+
// X-direction is major.
|
|
57
|
+
major_step->xcoord = sign(xcoord);
|
|
58
|
+
major_step->ycoord = 0;
|
|
59
|
+
minor_step->xcoord = 0;
|
|
60
|
+
minor_step->ycoord = sign(ycoord);
|
|
61
|
+
*major = abs_x;
|
|
62
|
+
*minor = abs_y;
|
|
63
|
+
} else {
|
|
64
|
+
// Y-direction is major.
|
|
65
|
+
major_step->xcoord = 0;
|
|
66
|
+
major_step->ycoord = sign(ycoord);
|
|
67
|
+
minor_step->xcoord = sign(xcoord);
|
|
68
|
+
minor_step->ycoord = 0;
|
|
69
|
+
*major = abs_y;
|
|
70
|
+
*minor = abs_x;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
void ICOORD::serialise_asc( //convert to ascii
|
|
76
|
+
FILE *f //file to write
|
|
77
|
+
) {
|
|
78
|
+
serialise_INT32(f, xcoord);
|
|
79
|
+
serialise_INT32(f, ycoord);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
void ICOORD::de_serialise_asc( //convert from ascii
|
|
84
|
+
FILE *f //file to write
|
|
85
|
+
) {
|
|
86
|
+
xcoord = (inT16) de_serialise_INT32 (f);
|
|
87
|
+
ycoord = (inT16) de_serialise_INT32 (f);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
void ICOORDELT::serialise_asc( //convert to ascii
|
|
92
|
+
FILE *f //file to write
|
|
93
|
+
) {
|
|
94
|
+
((ICOORD *) this)->serialise_asc (f);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
void ICOORDELT::de_serialise_asc( //convert from ascii
|
|
99
|
+
FILE *f //file to write
|
|
100
|
+
) {
|
|
101
|
+
((ICOORD *) this)->de_serialise_asc (f);
|
|
102
|
+
}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
* File: points.h (Formerly coords.h)
|
|
3
|
+
* Description: Coordinate class definitions.
|
|
4
|
+
* Author: Ray Smith
|
|
5
|
+
* Created: Fri Mar 15 08:32:45 GMT 1991
|
|
6
|
+
*
|
|
7
|
+
* (C) Copyright 1991, Hewlett-Packard Ltd.
|
|
8
|
+
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
** you may not use this file except in compliance with the License.
|
|
10
|
+
** You may obtain a copy of the License at
|
|
11
|
+
** http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
** Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
** See the License for the specific language governing permissions and
|
|
16
|
+
** limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
**********************************************************************/
|
|
19
|
+
|
|
20
|
+
#ifndef POINTS_H
|
|
21
|
+
#define POINTS_H
|
|
22
|
+
|
|
23
|
+
#include <stdio.h>
|
|
24
|
+
#include <math.h>
|
|
25
|
+
#include "elst.h"
|
|
26
|
+
//#include "ipeerr.h"
|
|
27
|
+
|
|
28
|
+
class FCOORD;
|
|
29
|
+
|
|
30
|
+
class DLLSYM ICOORD //integer coordinate
|
|
31
|
+
{
|
|
32
|
+
friend class FCOORD;
|
|
33
|
+
|
|
34
|
+
public:
|
|
35
|
+
ICOORD() { //empty constructor
|
|
36
|
+
xcoord = ycoord = 0; //default zero
|
|
37
|
+
}
|
|
38
|
+
ICOORD( //constructor
|
|
39
|
+
inT16 xin, //x value
|
|
40
|
+
inT16 yin) { //y value
|
|
41
|
+
xcoord = xin;
|
|
42
|
+
ycoord = yin;
|
|
43
|
+
}
|
|
44
|
+
~ICOORD () { //destructor
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//access function
|
|
48
|
+
NEWDELETE2 (ICOORD) inT16 x () const
|
|
49
|
+
{
|
|
50
|
+
return xcoord;
|
|
51
|
+
}
|
|
52
|
+
inT16 y() const { //access_function
|
|
53
|
+
return ycoord;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
void set_x( //rewrite function
|
|
57
|
+
inT16 xin) {
|
|
58
|
+
xcoord = xin; //write new value
|
|
59
|
+
}
|
|
60
|
+
void set_y( //rewrite function
|
|
61
|
+
inT16 yin) { //value to set
|
|
62
|
+
ycoord = yin;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
float sqlength() const { //find sq length
|
|
66
|
+
return (float) (xcoord * xcoord + ycoord * ycoord);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
float length() const { //find length
|
|
70
|
+
return (float) sqrt (sqlength ());
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
float pt_to_pt_sqdist( //sq dist between pts
|
|
74
|
+
const ICOORD &pt) const {
|
|
75
|
+
ICOORD gap;
|
|
76
|
+
|
|
77
|
+
gap.xcoord = xcoord - pt.xcoord;
|
|
78
|
+
gap.ycoord = ycoord - pt.ycoord;
|
|
79
|
+
return gap.sqlength ();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
float pt_to_pt_dist( //Distance between pts
|
|
83
|
+
const ICOORD &pt) const {
|
|
84
|
+
return (float) sqrt (pt_to_pt_sqdist (pt));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
float angle() const { //find angle
|
|
88
|
+
return (float) atan2 ((double) ycoord, (double) xcoord);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
BOOL8 operator== ( //test equality
|
|
92
|
+
const ICOORD & other) {
|
|
93
|
+
return xcoord == other.xcoord && ycoord == other.ycoord;
|
|
94
|
+
}
|
|
95
|
+
BOOL8 operator!= ( //test inequality
|
|
96
|
+
const ICOORD & other) {
|
|
97
|
+
return xcoord != other.xcoord || ycoord != other.ycoord;
|
|
98
|
+
}
|
|
99
|
+
friend ICOORD operator! ( //rotate 90 deg anti
|
|
100
|
+
const ICOORD &);
|
|
101
|
+
friend ICOORD operator- ( //unary minus
|
|
102
|
+
const ICOORD &);
|
|
103
|
+
friend ICOORD operator+ ( //add
|
|
104
|
+
const ICOORD &, const ICOORD &);
|
|
105
|
+
friend ICOORD & operator+= ( //add
|
|
106
|
+
ICOORD &, const ICOORD &);
|
|
107
|
+
friend ICOORD operator- ( //subtract
|
|
108
|
+
const ICOORD &, const ICOORD &);
|
|
109
|
+
friend ICOORD & operator-= ( //subtract
|
|
110
|
+
ICOORD &, const ICOORD &);
|
|
111
|
+
friend inT32 operator% ( //scalar product
|
|
112
|
+
const ICOORD &, const ICOORD &);
|
|
113
|
+
friend inT32 operator *( //cross product
|
|
114
|
+
const ICOORD &,
|
|
115
|
+
const ICOORD &);
|
|
116
|
+
friend ICOORD operator *( //multiply
|
|
117
|
+
const ICOORD &,
|
|
118
|
+
inT16);
|
|
119
|
+
friend ICOORD operator *( //multiply
|
|
120
|
+
inT16,
|
|
121
|
+
const ICOORD &);
|
|
122
|
+
friend ICOORD & operator*= ( //multiply
|
|
123
|
+
ICOORD &, inT16);
|
|
124
|
+
friend ICOORD operator/ ( //divide
|
|
125
|
+
const ICOORD &, inT16);
|
|
126
|
+
//divide
|
|
127
|
+
friend ICOORD & operator/= (ICOORD &, inT16);
|
|
128
|
+
void rotate( //rotate
|
|
129
|
+
const FCOORD& vec); //by vector
|
|
130
|
+
|
|
131
|
+
// Setup for iterating over the pixels in a vector by the well-known
|
|
132
|
+
// Bresenham rendering algorithm.
|
|
133
|
+
// Starting with major/2 in the accumulator, on each step move by
|
|
134
|
+
// major_step, and then add minor to the accumulator. When
|
|
135
|
+
// accumulator >= major subtract major and also move by minor_step.
|
|
136
|
+
void setup_render(ICOORD* major_step, ICOORD* minor_step,
|
|
137
|
+
int* major, int* minor);
|
|
138
|
+
|
|
139
|
+
void serialise_asc( //serialise to ascii
|
|
140
|
+
FILE *f);
|
|
141
|
+
void de_serialise_asc( //serialise from ascii
|
|
142
|
+
FILE *f);
|
|
143
|
+
|
|
144
|
+
protected:
|
|
145
|
+
inT16 xcoord; //x value
|
|
146
|
+
inT16 ycoord; //y value
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
class DLLSYM ICOORDELT:public ELIST_LINK, public ICOORD
|
|
150
|
+
//embedded coord list
|
|
151
|
+
{
|
|
152
|
+
public:
|
|
153
|
+
ICOORDELT() { //empty constructor
|
|
154
|
+
}
|
|
155
|
+
ICOORDELT ( //constructor
|
|
156
|
+
//from ICOORD
|
|
157
|
+
ICOORD icoord):ICOORD (icoord) {
|
|
158
|
+
}
|
|
159
|
+
ICOORDELT( //constructor
|
|
160
|
+
inT16 xin, //x value
|
|
161
|
+
inT16 yin) { //y value
|
|
162
|
+
xcoord = xin;
|
|
163
|
+
ycoord = yin;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* Note that prep_serialise() dump() and de_dump() dont need to do anything
|
|
167
|
+
more than terminate recursion. */
|
|
168
|
+
|
|
169
|
+
void prep_serialise() const { //set ptrs to counts
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
void dump( //write external bits
|
|
173
|
+
FILE *) const {
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
void de_dump( //read external bits
|
|
177
|
+
FILE *) {
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
//serialise to ascii
|
|
181
|
+
make_serialise(ICOORDELT)
|
|
182
|
+
|
|
183
|
+
static ICOORDELT* deep_copy(const ICOORDELT* src) {
|
|
184
|
+
ICOORDELT* elt = new ICOORDELT;
|
|
185
|
+
*elt = *src;
|
|
186
|
+
return elt;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
void serialise_asc(FILE * f);
|
|
190
|
+
void de_serialise_asc( //serialise from ascii
|
|
191
|
+
FILE *f);
|
|
192
|
+
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
ELISTIZEH_S (ICOORDELT)
|
|
196
|
+
class DLLSYM FCOORD
|
|
197
|
+
{
|
|
198
|
+
public:
|
|
199
|
+
FCOORD() {
|
|
200
|
+
} //empty constructor
|
|
201
|
+
FCOORD( //constructor
|
|
202
|
+
float xvalue, //coords to set
|
|
203
|
+
float yvalue) {
|
|
204
|
+
xcoord = xvalue; //set coords
|
|
205
|
+
ycoord = yvalue;
|
|
206
|
+
}
|
|
207
|
+
FCOORD( //make from ICOORD
|
|
208
|
+
ICOORD icoord) { //coords to set
|
|
209
|
+
xcoord = icoord.xcoord;
|
|
210
|
+
ycoord = icoord.ycoord;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
float x() const { //get coords
|
|
214
|
+
return xcoord;
|
|
215
|
+
}
|
|
216
|
+
float y() const {
|
|
217
|
+
return ycoord;
|
|
218
|
+
}
|
|
219
|
+
void set_x( //rewrite function
|
|
220
|
+
float xin) {
|
|
221
|
+
xcoord = xin; //write new value
|
|
222
|
+
}
|
|
223
|
+
void set_y( //rewrite function
|
|
224
|
+
float yin) { //value to set
|
|
225
|
+
ycoord = yin;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
float sqlength() const { //find sq length
|
|
229
|
+
return xcoord * xcoord + ycoord * ycoord;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
float length() const { //find length
|
|
233
|
+
return (float) sqrt (sqlength ());
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
float pt_to_pt_sqdist( //sq dist between pts
|
|
237
|
+
const FCOORD &pt) const {
|
|
238
|
+
FCOORD gap;
|
|
239
|
+
|
|
240
|
+
gap.xcoord = xcoord - pt.xcoord;
|
|
241
|
+
gap.ycoord = ycoord - pt.ycoord;
|
|
242
|
+
return gap.sqlength ();
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
float pt_to_pt_dist( //Distance between pts
|
|
246
|
+
const FCOORD &pt) const {
|
|
247
|
+
return (float) sqrt (pt_to_pt_sqdist (pt));
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
float angle() const { //find angle
|
|
251
|
+
return (float) atan2 (ycoord, xcoord);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
bool normalise(); //Convert to unit vec
|
|
255
|
+
|
|
256
|
+
BOOL8 operator== ( //test equality
|
|
257
|
+
const FCOORD & other) {
|
|
258
|
+
return xcoord == other.xcoord && ycoord == other.ycoord;
|
|
259
|
+
}
|
|
260
|
+
BOOL8 operator!= ( //test inequality
|
|
261
|
+
const FCOORD & other) {
|
|
262
|
+
return xcoord != other.xcoord || ycoord != other.ycoord;
|
|
263
|
+
}
|
|
264
|
+
//rotate 90 deg anti
|
|
265
|
+
friend FCOORD operator! (const FCOORD &);
|
|
266
|
+
//unary minus
|
|
267
|
+
friend FCOORD operator- (const FCOORD &);
|
|
268
|
+
//add
|
|
269
|
+
friend FCOORD operator+ (const FCOORD &, const FCOORD &);
|
|
270
|
+
//add
|
|
271
|
+
friend FCOORD & operator+= (FCOORD &, const FCOORD &);
|
|
272
|
+
//subtract
|
|
273
|
+
friend FCOORD operator- (const FCOORD &, const FCOORD &);
|
|
274
|
+
//subtract
|
|
275
|
+
friend FCOORD & operator-= (FCOORD &, const FCOORD &);
|
|
276
|
+
//scalar product
|
|
277
|
+
friend float operator% (const FCOORD &, const FCOORD &);
|
|
278
|
+
//cross product
|
|
279
|
+
friend float operator *(const FCOORD &, const FCOORD &);
|
|
280
|
+
friend FCOORD operator *(const FCOORD &, float);
|
|
281
|
+
//multiply
|
|
282
|
+
friend FCOORD operator *(float, const FCOORD &);
|
|
283
|
+
//multiply
|
|
284
|
+
//multiply
|
|
285
|
+
friend FCOORD & operator*= (FCOORD &, float);
|
|
286
|
+
friend FCOORD operator/ (const FCOORD &, float);
|
|
287
|
+
//divide
|
|
288
|
+
void rotate( //rotate
|
|
289
|
+
const FCOORD vec); //by vector
|
|
290
|
+
//divide
|
|
291
|
+
friend FCOORD & operator/= (FCOORD &, float);
|
|
292
|
+
|
|
293
|
+
private:
|
|
294
|
+
float xcoord; //2 floating coords
|
|
295
|
+
float ycoord;
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
#include "ipoints.h" /*do inline funcs */
|
|
299
|
+
#endif
|