mirror of
https://github.com/moparisthebest/Simba
synced 2024-11-28 12:02:15 -05:00
Removed BadPoints from TDTM because PascalScript cannot handle it.
Changed GoodPoints -> BadPoints. git-svn-id: http://www.villavu.com/repositories/merlijn/mufasa@374 3f818213-9676-44b0-a9b4-5e4c4e03d09d
This commit is contained in:
parent
f1c1b01cd9
commit
868c1c5d32
@ -11,7 +11,7 @@
|
||||
<TargetFileExt Value=""/>
|
||||
<Icon Value="0"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<ActiveEditorIndexAtStart Value="2"/>
|
||||
<ActiveEditorIndexAtStart Value="0"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -35,14 +35,14 @@
|
||||
<Filename Value="project1.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="project1"/>
|
||||
<CursorPos X="29" Y="51"/>
|
||||
<TopLine Value="33"/>
|
||||
<CursorPos X="1" Y="210"/>
|
||||
<TopLine Value="184"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="74"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="../../../../../usr/lib64/fpc/2.2.4/source/packages/fcl-base/src/custapp.pp"/>
|
||||
<Filename Value="../../../usr/lib64/fpc/2.2.4/source/packages/fcl-base/src/custapp.pp"/>
|
||||
<UnitName Value="CustApp"/>
|
||||
<CursorPos X="15" Y="51"/>
|
||||
<TopLine Value="32"/>
|
||||
@ -85,7 +85,7 @@
|
||||
<Unit6>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<UnitName Value="finder"/>
|
||||
<CursorPos X="69" Y="1901"/>
|
||||
<CursorPos X="31" Y="1907"/>
|
||||
<TopLine Value="1890"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="34"/>
|
||||
@ -119,7 +119,7 @@
|
||||
<Loaded Value="True"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="../../../../Documents/fpc/rtl/objpas/sysutils/diskh.inc"/>
|
||||
<Filename Value="../../../Documents/fpc/rtl/objpas/sysutils/diskh.inc"/>
|
||||
<CursorPos X="10" Y="18"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="8"/>
|
||||
@ -132,7 +132,7 @@
|
||||
<UsageCount Value="8"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Filename Value="../../../../Documents/lazarus/lcl/graphics.pp"/>
|
||||
<Filename Value="../../../Documents/lazarus/lcl/graphics.pp"/>
|
||||
<UnitName Value="Graphics"/>
|
||||
<CursorPos X="3" Y="1426"/>
|
||||
<TopLine Value="1411"/>
|
||||
@ -148,13 +148,13 @@
|
||||
<Loaded Value="True"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="../../../../Documents/fpc/rtl/inc/objpash.inc"/>
|
||||
<Filename Value="../../../Documents/fpc/rtl/inc/objpash.inc"/>
|
||||
<CursorPos X="22" Y="177"/>
|
||||
<TopLine Value="162"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit14>
|
||||
<Unit15>
|
||||
<Filename Value="../../../../Documents/lazarus/lcl/intfgraphics.pas"/>
|
||||
<Filename Value="../../../Documents/lazarus/lcl/intfgraphics.pas"/>
|
||||
<UnitName Value="IntfGraphics"/>
|
||||
<CursorPos X="30" Y="2975"/>
|
||||
<TopLine Value="2959"/>
|
||||
@ -168,7 +168,7 @@
|
||||
<UsageCount Value="8"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="../../../../Documents/fpc/rtl/i386/mmx.pp"/>
|
||||
<Filename Value="../../../Documents/fpc/rtl/i386/mmx.pp"/>
|
||||
<UnitName Value="mmx"/>
|
||||
<CursorPos X="80" Y="15"/>
|
||||
<TopLine Value="71"/>
|
||||
@ -201,7 +201,7 @@
|
||||
<Loaded Value="True"/>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<Filename Value="../../../../Documents/fpc/packages/fcl-base/src/custapp.pp"/>
|
||||
<Filename Value="../../../Documents/fpc/packages/fcl-base/src/custapp.pp"/>
|
||||
<UnitName Value="CustApp"/>
|
||||
<CursorPos X="59" Y="48"/>
|
||||
<TopLine Value="18"/>
|
||||
@ -244,124 +244,124 @@
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1618" Column="22" TopLine="1607"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1637" Column="18" TopLine="1621"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="31" Column="54" TopLine="13"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="../../Units/MMLCore/ocrutil.pas"/>
|
||||
<Caret Line="8" Column="38" TopLine="1"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="../../Units/MMLCore/colour_conv.pas"/>
|
||||
<Caret Line="47" Column="31" TopLine="27"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="31" Column="53" TopLine="24"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="85" Column="74" TopLine="75"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="2027" Column="29" TopLine="2002"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="85" Column="74" TopLine="75"/>
|
||||
<Caret Line="2028" Column="37" TopLine="2009"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="2027" Column="29" TopLine="2002"/>
|
||||
<Caret Line="2021" Column="75" TopLine="2004"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="2028" Column="37" TopLine="2009"/>
|
||||
<Caret Line="1832" Column="28" TopLine="1827"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="2021" Column="75" TopLine="2004"/>
|
||||
<Caret Line="1822" Column="1" TopLine="1808"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1832" Column="28" TopLine="1827"/>
|
||||
<Caret Line="1877" Column="23" TopLine="1867"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1822" Column="1" TopLine="1808"/>
|
||||
<Caret Line="62" Column="31" TopLine="44"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1877" Column="23" TopLine="1867"/>
|
||||
<Caret Line="1893" Column="88" TopLine="1867"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="62" Column="31" TopLine="44"/>
|
||||
<Caret Line="2033" Column="30" TopLine="2002"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1893" Column="88" TopLine="1867"/>
|
||||
<Caret Line="1934" Column="32" TopLine="1916"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="2033" Column="30" TopLine="2002"/>
|
||||
<Caret Line="2007" Column="29" TopLine="1989"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1934" Column="32" TopLine="1916"/>
|
||||
<Caret Line="87" Column="28" TopLine="78"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="2007" Column="29" TopLine="1989"/>
|
||||
<Caret Line="2010" Column="81" TopLine="1989"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="87" Column="28" TopLine="78"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="2010" Column="81" TopLine="1989"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="project1.lpr"/>
|
||||
<Caret Line="111" Column="22" TopLine="101"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="../../Units/MMLCore/dtmutil.pas"/>
|
||||
<Caret Line="31" Column="24" TopLine="12"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="../../Units/MMLCore/dtmutil.pas"/>
|
||||
<Caret Line="158" Column="46" TopLine="133"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="../../Units/MMLCore/dtmutil.pas"/>
|
||||
<Caret Line="31" Column="24" TopLine="12"/>
|
||||
<Caret Line="148" Column="33" TopLine="119"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="../../Units/MMLCore/dtmutil.pas"/>
|
||||
<Caret Line="158" Column="46" TopLine="133"/>
|
||||
<Caret Line="31" Column="30" TopLine="1"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="../../Units/MMLCore/dtmutil.pas"/>
|
||||
<Caret Line="148" Column="33" TopLine="119"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="../../Units/MMLCore/dtmutil.pas"/>
|
||||
<Caret Line="31" Column="30" TopLine="1"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1898" Column="99" TopLine="1878"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="../../Units/MMLCore/finder.pas"/>
|
||||
<Caret Line="1902" Column="65" TopLine="1884"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="project1.lpr"/>
|
||||
<Caret Line="51" Column="35" TopLine="34"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="../../Units/MMLCore/dtmutil.pas"/>
|
||||
<Caret Line="77" Column="5" TopLine="49"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="../../Units/MMLCore/dtm.pas"/>
|
||||
<Caret Line="31" Column="29" TopLine="1"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="project1.lpr"/>
|
||||
<Caret Line="128" Column="41" TopLine="109"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="project1.lpr"/>
|
||||
<Caret Line="62" Column="83" TopLine="38"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
|
@ -10,7 +10,7 @@ uses
|
||||
Forms,Interfaces,
|
||||
LCLIntf,
|
||||
Client,
|
||||
bitmaps,x ,mufasatypes,dtm,dtmutil, ocrutil
|
||||
bitmaps,{$IFDEF LINUX}x,{$ENDIF}mufasatypes,dtm,dtmutil, ocrutil
|
||||
|
||||
|
||||
{ you can add units after this };
|
||||
@ -48,7 +48,7 @@ begin
|
||||
result.ash[i] := 0;
|
||||
{writeln(format('dtm: (%d, %d) c: %d, t: %d, asz: %d', [result.p[i].x,
|
||||
result.p[i].y, result.c[i], result.t[i], result.asz[i]])); }
|
||||
result.gp[i] := false;// random(10) = 1;
|
||||
result.bp[i] := false;// random(10) = 1;
|
||||
end;
|
||||
result.c[0] := 255;
|
||||
PrintpDTM(result);
|
||||
@ -125,6 +125,8 @@ begin
|
||||
writeln(inttostr(length(p))+ ' points found');
|
||||
setlength(p,0);
|
||||
|
||||
PrintpDTM(tdtmtopDTM(pDTMToTDTM(dtm)));
|
||||
|
||||
{for i := 0 to high(p) do
|
||||
writeln(format('%d: (%d, %d)', [i, p[i].x, p[i].y])); }
|
||||
|
||||
|
@ -1 +1,7 @@
|
||||
#define RT_MANIFEST 24
|
||||
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
|
||||
#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
|
||||
#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
|
||||
|
||||
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "project1.manifest"
|
||||
MAINICON ICON "project1.ico"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +1,11 @@
|
||||
object Form1: TForm1
|
||||
Left = 273
|
||||
Left = 272
|
||||
Height = 557
|
||||
Top = 233
|
||||
Top = 172
|
||||
Width = 734
|
||||
ActiveControl = ScriptPanel
|
||||
Caption = 'THA FUKING MUFASA'
|
||||
ClientHeight = 537
|
||||
ClientHeight = 538
|
||||
ClientWidth = 734
|
||||
KeyPreview = True
|
||||
Menu = MainMenu1
|
||||
@ -175,8 +175,8 @@ object Form1: TForm1
|
||||
end
|
||||
object StatusBar: TStatusBar
|
||||
Left = 0
|
||||
Height = 23
|
||||
Top = 514
|
||||
Height = 20
|
||||
Top = 518
|
||||
Width = 734
|
||||
Panels = <
|
||||
item
|
||||
@ -194,7 +194,7 @@ object Form1: TForm1
|
||||
object PanelMemo: TPanel
|
||||
Left = 0
|
||||
Height = 154
|
||||
Top = 360
|
||||
Top = 364
|
||||
Width = 734
|
||||
Align = alBottom
|
||||
ClientHeight = 154
|
||||
@ -214,19 +214,19 @@ object Form1: TForm1
|
||||
Cursor = crVSplit
|
||||
Left = 0
|
||||
Height = 5
|
||||
Top = 355
|
||||
Top = 359
|
||||
Width = 734
|
||||
Align = alBottom
|
||||
ResizeAnchor = akBottom
|
||||
end
|
||||
object ScriptPanel: TPanel
|
||||
Left = 0
|
||||
Height = 331
|
||||
Height = 335
|
||||
Top = 24
|
||||
Width = 734
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 331
|
||||
ClientHeight = 335
|
||||
ClientWidth = 734
|
||||
DockSite = True
|
||||
TabOrder = 4
|
||||
@ -234,7 +234,7 @@ object Form1: TForm1
|
||||
OnDockOver = ScriptPanelDockOver
|
||||
object PageControl1: TPageControl
|
||||
Left = 155
|
||||
Height = 296
|
||||
Height = 300
|
||||
Top = 0
|
||||
Width = 579
|
||||
Align = alClient
|
||||
@ -253,7 +253,7 @@ object Form1: TForm1
|
||||
object SearchPanel: TPanel
|
||||
Left = 0
|
||||
Height = 35
|
||||
Top = 296
|
||||
Top = 300
|
||||
Width = 734
|
||||
Align = alBottom
|
||||
BevelOuter = bvSpace
|
||||
@ -375,7 +375,7 @@ object Form1: TForm1
|
||||
Left = 320
|
||||
Height = 17
|
||||
Top = 7
|
||||
Width = 72
|
||||
Width = 74
|
||||
Caption = 'Match case'
|
||||
OnClick = CheckBoxMatchCaseClick
|
||||
TabOrder = 1
|
||||
@ -383,21 +383,23 @@ object Form1: TForm1
|
||||
end
|
||||
object SplitterFunctionList: TSplitter
|
||||
Left = 150
|
||||
Height = 296
|
||||
Height = 300
|
||||
Top = 0
|
||||
Width = 5
|
||||
OnCanResize = SplitterFunctionListCanResize
|
||||
Visible = False
|
||||
end
|
||||
inline frmFunctionList: TFunctionListFrame
|
||||
Height = 296
|
||||
Height = 300
|
||||
Width = 150
|
||||
ClientHeight = 296
|
||||
ClientHeight = 300
|
||||
ClientWidth = 150
|
||||
OnEndDock = nil
|
||||
TabOrder = 3
|
||||
DesignLeft = 401
|
||||
DesignTop = 219
|
||||
inherited FunctionList: TTreeView
|
||||
Height = 257
|
||||
Height = 261
|
||||
Width = 150
|
||||
OnChange = FunctionListChange
|
||||
OnDeletion = nil
|
||||
@ -405,7 +407,7 @@ object Form1: TForm1
|
||||
OnExit = FunctionListExit
|
||||
end
|
||||
inherited editSearchList: TEdit
|
||||
Top = 275
|
||||
Top = 279
|
||||
Width = 150
|
||||
OnExit = editSearchListExit
|
||||
OnKeyDown = editSearchListKeyDown
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -15,6 +15,7 @@ var
|
||||
|
||||
p,pp: TPointArray;
|
||||
c,t,asz,ash: TIntegerArray;
|
||||
bp:array of boolean;
|
||||
|
||||
begin
|
||||
p := [Point(0,0), Point(1,1), Point(-4, -4)];
|
||||
@ -23,10 +24,7 @@ begin
|
||||
asz := [0, 4, 4];
|
||||
ash := [dtm_Rectangle, dtm_Rectangle, dtm_Rectangle];
|
||||
setlength(ppdtm.p,2);
|
||||
setlength(ppdtm.c,2);
|
||||
setlength(ppdtm.t,2);
|
||||
setlength(ppdtm.asz,2);
|
||||
setlength(ppdtm.ash,2);
|
||||
bp:=[false,false,false];
|
||||
|
||||
ppdtm.l := 3;//We have 3 points..
|
||||
ppdtm.p := p;
|
||||
@ -34,6 +32,7 @@ begin
|
||||
ppdtm.t := t;
|
||||
ppdtm.asz := asz;
|
||||
ppdtm.ash := ash;
|
||||
ppdtm.bp := bp;
|
||||
ppdtm.n := 'TestDTM';//Our name!
|
||||
|
||||
dtm := AddpDTM(ppdtm);
|
||||
|
@ -24,6 +24,7 @@
|
||||
Sender.Comp.AddConstantN('AppPath','string').SetString(CurrThread.AppPath);
|
||||
Sender.Comp.AddConstantN('ScriptPath','string').SetString(CurrThread.ScriptPath);
|
||||
Sender.Comp.AddTypeS('TIntegerArray', 'Array of integer');
|
||||
Sender.Comp.AddTypeS('TBoolArray', 'Array of Boolean');
|
||||
Sender.Comp.AddTypes('TBox', 'record X1,Y1,X2,Y2 : Integer; end;');
|
||||
Sender.Comp.AddTypeS('TPointArray','Array of TPoint');
|
||||
Sender.Comp.AddTypeS('T2DPointArray','Array of Array of TPoint');
|
||||
@ -32,10 +33,10 @@ Sender.Comp.AddTypeS('TBmpMirrorStyle','(MirrorWidth,MirrorHeight,MirrorLine)');
|
||||
Sender.Comp.AddTypeS('TMask','record White, Black : TPointArray; WhiteHi,BlackHi : integer; W,H : integer;end;');
|
||||
|
||||
|
||||
Sender.Comp.AddTypes('TDTMPointDef', 'record x, y, Color, Tolerance, AreaSize, AreaShape: integer; Good: Boolean; end;');
|
||||
Sender.Comp.AddTypes('TDTMPointDef', 'record x, y, Color, Tolerance, AreaSize, AreaShape: integer; end;');
|
||||
Sender.Comp.AddTypes('TDTMPointDefArray', 'Array Of TDTMPointDef;');
|
||||
Sender.Comp.AddTypes('TDTM','record MainPoint: TDTMPointDef; SubPoints: TDTMPointDefArray; end;');
|
||||
Sender.Comp.AddTypeS('pDTM','record l: Integer;p: TPointArray;c, t, asz, ash: TIntegerArray; gp: array of boolean; n: String; end;');
|
||||
Sender.Comp.AddTypeS('pDTM','record l: Integer;p: TPointArray;c, t, asz, ash: TIntegerArray; bp: Array Of Boolean; n: String; end;');
|
||||
|
||||
Sender.Comp.AddTypeS('T2DExtendedArray', 'array of array of extended;');
|
||||
Sender.Comp.AddTypeS('TStringArray','Array of string;');
|
||||
|
@ -28,8 +28,8 @@ AddFunction(@psWriteln,'procedure writeln(s : string);');
|
||||
SetCurrSection('DTM');
|
||||
AddFunction(@PrintpDTM, 'Procedure PrintpDTM(tDTM : pDTM);');
|
||||
AddFunction(@ps_GetDTM ,'function GetDTM(index: Integer; out dtm: pDTM): Boolean;');
|
||||
AddFunction(@pDTMToTDTM, 'Function pDTMToTDTM(Const DTM: pDTM): TDTM;');
|
||||
AddFunction(@tDTMTopDTM, 'Function tDTMTopDTM(Const DTM: TDTM): pDTM;');
|
||||
AddFunction(@pDTMToTDTM, 'Function pDTMToTDTM(DTM: pDTM): TDTM;');
|
||||
AddFunction(@tDTMTopDTM, 'Function tDTMTopDTM(DTM: TDTM): pDTM;');
|
||||
AddFunction(@ps_DTMFromString, 'function DTMFromString(DTMString: String): Integer;');
|
||||
AddFunction(@ps_FreeDTM, 'procedure FreeDTM(DTM: Integer);');
|
||||
AddFunction(@ps_FindDTM, 'function FindDTM(DTM: Integer; out x, y: Integer; x1, y1, x2, y2: Integer): Boolean;');
|
||||
|
@ -184,6 +184,7 @@ begin
|
||||
SetLength(Result.t,DestLen);
|
||||
SetLength(Result.asz,DestLen);
|
||||
SetLength(Result.ash,DestLen);
|
||||
SetLength(Result.bp,DestLen);
|
||||
b := @Self.Bufferstring[1];
|
||||
for i := 0 to DestLen - 1 do
|
||||
begin;
|
||||
@ -194,6 +195,7 @@ begin
|
||||
Result.ash[i] := PInteger(@b^[c+16])^;
|
||||
Result.c[i] := PInteger(@b^[c+20])^;
|
||||
Result.t[i] := PInteger(@b^[c+24])^;
|
||||
Result.bp[i] := False;
|
||||
end;
|
||||
end;
|
||||
result.l := length(result.p);
|
||||
|
@ -33,7 +33,7 @@ uses
|
||||
|
||||
Function pDTMToTDTM(Const DTM: pDTM): TDTM;
|
||||
Function tDTMTopDTM(Const DTM: TDTM): pDTM;
|
||||
Procedure PrintpDTM(tDTM : pDTM);
|
||||
Procedure PrintpDTM(aDTM : pDTM);
|
||||
|
||||
procedure initdtm(out d: pdtm; len: integer);
|
||||
function ValidMainPointBox(var dtm: pDTM; const x1, y1, x2, y2: Integer): TBox;
|
||||
@ -64,7 +64,7 @@ begin
|
||||
setlength(d.t, len);
|
||||
setlength(d.ash, len);
|
||||
setlength(d.asz, len);
|
||||
setlength(d.gp, len);
|
||||
setlength(d.bp, len);
|
||||
|
||||
FillChar(d.p[0], SizeOf(TPoint) * len, 0);
|
||||
FillChar(d.c[0], SizeOf(Integer) * len, 0);
|
||||
@ -76,19 +76,19 @@ begin
|
||||
|
||||
//FillChar(d.gp[0], SizeOf(Boolean) * len, 0);
|
||||
for i := 0 to len - 1 do
|
||||
d.gp[i] := true;
|
||||
d.bp[i] := False;
|
||||
end;
|
||||
|
||||
Procedure PrintpDTM(tDTM : pDTM);
|
||||
Procedure PrintpDTM(aDTM : pDTM);
|
||||
var
|
||||
i : integer;
|
||||
begin;
|
||||
i := 0;
|
||||
if tdtm.n <> '' then
|
||||
writeln('Name: ' + tdtm.n);
|
||||
WriteLn('MainPoint ' + inttostr(tDTM.p[i].x) + ', ' + inttostr(tDTM.p[i].y) + ' col: ' + inttostr(tDTM.c[i]) + ', tol: ' + inttostr(tDTM.t[i]) + '; ashape ' + inttostr(tdtm.ash[i]) + ' asize ' + inttostr(tdtm.asz[i])+ ', Good: ' + BoolToStr(tdtm.gp[i]));
|
||||
for I := 1 to High(tDTM.p) do
|
||||
WriteLn('SubPoint['+IntToStr(I) + '] ' + inttostr(tDTM.p[i].x) + ', ' + inttostr(tDTM.p[i].y) + ' col: ' + inttostr(tDTM.c[i]) + ', tol: ' + inttostr(tDTM.t[i]) + '; ashape ' + inttostr(tdtm.ash[i]) + ' asize ' + inttostr(tdtm.asz[i]) + ', Good: ' + BoolToStr(tdtm.gp[i]));
|
||||
if adtm.n <> '' then
|
||||
writeln('Name: ' + aDTM.n);
|
||||
WriteLn('MainPoint ' + inttostr(aDTM.p[i].x) + ', ' + inttostr(aDTM.p[i].y) + ' col: ' + inttostr(aDTM.c[i]) + ', tol: ' + inttostr(aDTM.t[i]) + '; ashape ' + inttostr(aDTM.ash[i]) + ' asize ' + inttostr(aDTM.asz[i])+ ', Bad Point: ' + BoolToStr(aDTM.bp[i]));
|
||||
for I := 1 to High(aDTM.p) do
|
||||
WriteLn('SubPoint['+IntToStr(I) + '] ' + inttostr(aDTM.p[i].x) + ', ' + inttostr(aDTM.p[i].y) + ' col: ' + inttostr(aDTM.c[i]) + ', tol: ' + inttostr(aDTM.t[i]) + '; ashape ' + inttostr(aDTM.ash[i]) + ' asize ' + inttostr(aDTM.asz[i]) + ', Bad Point: ' + BoolToStr(aDTM.bp[i]));
|
||||
end;
|
||||
|
||||
Function pDTMToTDTM(Const DTM: pDTM): TDTM;
|
||||
@ -106,7 +106,6 @@ Begin
|
||||
Temp.AreaShape := DTM.ash[i];
|
||||
Temp.Color := DTM.c[i];
|
||||
Temp.Tolerance := DTM.t[i];
|
||||
Temp.Good:= DTM.gp[i];
|
||||
End;
|
||||
Result.MainPoint := Temp;
|
||||
SetLength(Result.SubPoints, Length(DTM.p) - 1);
|
||||
@ -120,7 +119,6 @@ Begin
|
||||
Temp.AreaShape := DTM.ash[i];
|
||||
Temp.Color := DTM.c[i];
|
||||
Temp.Tolerance := DTM.t[i];
|
||||
Temp.Good:= DTM.gp[i];
|
||||
Result.SubPoints[I - 1] := Temp;
|
||||
End;
|
||||
End;
|
||||
@ -141,7 +139,7 @@ Begin
|
||||
SetLength(Result.t, Length(DTM.SubPoints) + 1);
|
||||
SetLength(Result.asz, Length(DTM.SubPoints) + 1);
|
||||
SetLength(Result.ash, Length(DTM.SubPoints) + 1);
|
||||
SetLength(Result.gp, Length(DTM.SubPoints) + 1);
|
||||
SetLength(Result.bp, Length(DTM.SubPoints) + 1);
|
||||
|
||||
Result.p[0].x := DTM.MainPoint.x;
|
||||
Result.p[0].y := DTM.MainPoint.y;
|
||||
@ -149,7 +147,6 @@ Begin
|
||||
Result.t[0] := DTM.MainPoint.Tolerance;
|
||||
Result.asz[0] := DTM.MainPoint.AreaSize;
|
||||
Result.ash[0] := DTM.MainPoint.AreaShape;
|
||||
Result.gp[0] := DTM.MainPoint.Good;
|
||||
|
||||
For I := 1 To Length(DTM.SubPoints) Do // High + 1 = Length
|
||||
Begin
|
||||
@ -159,9 +156,12 @@ Begin
|
||||
Result.t[I] := DTM.SubPoints[I - 1].Tolerance;
|
||||
Result.asz[I] := DTM.SubPoints[I - 1].AreaSize;
|
||||
Result.ash[I] := DTM.SubPoints[I - 1].AreaShape;
|
||||
Result.gp[I] := DTM.SubPoints[I - 1].Good;
|
||||
End;
|
||||
|
||||
Result.l := length(Result.p);
|
||||
setlength(result.bp, result.l);
|
||||
for i := 0 to result.l -1 do
|
||||
result.bp[i] := false;
|
||||
End;
|
||||
|
||||
{ TODO: Check if bounds are correct? }
|
||||
@ -181,7 +181,7 @@ begin
|
||||
Exit(False);
|
||||
if dtm.l <> length(dtm.ash) then
|
||||
Exit(False);
|
||||
if dtm.l <> length(dtm.gp) then
|
||||
if dtm.l <> length(dtm.bp) then
|
||||
Exit(False);
|
||||
for i := 0 to dtm.l-1 do
|
||||
if dtm.asz[i] < 0 then
|
||||
|
@ -1819,6 +1819,8 @@ var
|
||||
// point count
|
||||
pc: Integer = 0;
|
||||
|
||||
goodPoints: Array of Boolean;
|
||||
|
||||
label theEnd;
|
||||
label AnotherLoopEnd;
|
||||
|
||||
@ -1838,6 +1840,10 @@ begin
|
||||
|
||||
DefaultOperations(MA.x1, MA.y1, MA.x2, MA.y2);
|
||||
|
||||
setlength(goodPoints, dtm.l);
|
||||
for i := 0 to dtm.l - 1 do
|
||||
goodPoints[i] := not dtm.bp[i];
|
||||
|
||||
// Init data structure B.
|
||||
W := x2 - x1;
|
||||
H := y2 - y1;
|
||||
@ -1899,7 +1905,7 @@ begin
|
||||
goto AnotherLoopEnd;
|
||||
end;
|
||||
|
||||
if (b[xxx][yyy+1] and (1 shl i) = 0) and dtm.gp[i] then
|
||||
if (b[xxx][yyy+1] and (1 shl i) = 0) and goodPoints[i] then
|
||||
goto AnotherLoopEnd;
|
||||
end;
|
||||
end;
|
||||
|
@ -98,7 +98,7 @@ type
|
||||
l: Integer;
|
||||
p: TPointArray;
|
||||
c, t, asz, ash: TIntegerArray;
|
||||
gp: TBoolArray;
|
||||
bp: Array Of Boolean;
|
||||
n: String; // DOEN
|
||||
end;
|
||||
|
||||
@ -106,7 +106,6 @@ type
|
||||
|
||||
TDTMPointDef = record
|
||||
x, y, Color, Tolerance, AreaSize, AreaShape: integer;
|
||||
Good: Boolean;
|
||||
end;
|
||||
|
||||
TDTMPointDefArray = Array Of TDTMPointDef;
|
||||
|
Loading…
Reference in New Issue
Block a user