Skip to content

Commit d8ce11b

Browse files
committed
Merge branch 'master' of https://github.com/zamtmn/zcad
2 parents fe7f26c + 2480628 commit d8ce11b

71 files changed

Lines changed: 10227 additions & 355 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cad_source/zcad.lpi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1305,7 +1305,7 @@
13051305
</Target>
13061306
<SearchPaths>
13071307
<IncludeFiles Value="zengine;autogenerated;$(ProjOutDir);other/AGraph/Vectors"/>
1308-
<OtherUnitFiles Value="zengine/containers;zengine/styles;zengine;zengine/core;zengine/core/entities;zengine/core/drawings;zengine/fonts;zengine/zgl/common;zengine/zgl/gdi;zengine/zgl/canvas;zengine/zgl/opengl;zengine/zgl/openglmodern;zengine/zgl/dx;zengine/geomlib;zengine/misc;zengine/fileformats;zengine/core/utils;zengine/core/objects;other;../cad;autogenerated;zcad/electrotech;zcad/lclmod;zcad/commands;zcad/devicebase;zcad/gui;zcad/gui/forms;zcad/entities;zcad;zcad/gui/odjectinspector;zcad/core/undostack;zcad/register;zcad/core/drawings;zcad/core/utils;zcad/core;zcad/misc;zcad/electrotech/gui;zcad/electrotech/gui/forms;components/callstack_memprofiler/source/nodetree;components/callstack_memprofiler/source;zcad/velec;zcad/velec/managerem;zcad/velec/connectcontrol;zcad/velec/dialuximport;zcad/velec/lightexchange;zcad/velec/space;zcad/velec/uzvspreadsheet;zcad/velec/ucvrestoretable;zengine/core/entities/uzeentproxy"/>
1308+
<OtherUnitFiles Value="zengine/containers;zengine/styles;zengine;zengine/core;zengine/core/entities;zengine/core/drawings;zengine/fonts;zengine/zgl/common;zengine/zgl/gdi;zengine/zgl/canvas;zengine/zgl/opengl;zengine/zgl/openglmodern;zengine/zgl/dx;zengine/geomlib;zengine/misc;zengine/fileformats;zengine/core/utils;zengine/core/objects;other;../cad;autogenerated;zcad/electrotech;zcad/lclmod;zcad/commands;zcad/devicebase;zcad/gui;zcad/gui/forms;zcad/entities;zcad;zcad/gui/odjectinspector;zcad/core/undostack;zcad/register;zcad/core/drawings;zcad/core/utils;zcad/core;zcad/misc;zcad/electrotech/gui;zcad/electrotech/gui/forms;components/callstack_memprofiler/source/nodetree;components/callstack_memprofiler/source;zcad/velec;zcad/velec/managerem;zcad/velec/connectcontrol;zcad/velec/dialuximport;zcad/velec/lightexchange;zcad/velec/space;zcad/velec/uzvspreadsheet;zcad/velec/ucvrestoretable;zengine/core/entities/uzeentproxy;zengine/fileformats/dwg;zengine/fileformats/dwg/entities"/>
13091309
<UnitOutputDirectory Value="../lib/$(TargetCPU)-$(TargetOS)"/>
13101310
</SearchPaths>
13111311
<Parsing>

cad_source/zengine/containers/UGDBVisibleTreeArray.pas

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ interface
3232
procedure done;virtual;
3333
procedure free;virtual;
3434
function AddPEntity(var entity:GDBObjEntity):TArrayIndex;virtual;
35+
function AddPEntityToArrayOnly(var entity:GDBObjEntity):TArrayIndex;virtual;
3536
procedure RemoveFromTree(p:PGDBObjEntity);
3637

3738
end;
@@ -66,6 +67,12 @@ function GDBObjEntityTreeArray.AddPEntity;
6667
//result:=inherited PushBackPointerToEntity({ppointer(p)^}@entity);
6768
//{pGDBObjEntity(p^)}entity.bp.ListPos.SelfIndex:=result;
6869
end;
70+
function GDBObjEntityTreeArray.AddPEntityToArrayOnly;
71+
begin
72+
result:=inherited AddPEntity(entity);
73+
entity.bp.TreePos.Owner:=nil;
74+
entity.bp.TreePos.SelfIndexInNode:=-1;
75+
end;
6976
constructor GDBObjEntityTreeArray.init;
7077
begin
7178
inherited init(m);

cad_source/zengine/core/entities/uzeentarc.pas

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ interface
9393
function IsStagedFormatEntity:boolean;virtual;
9494
end;
9595

96+
function AllocAndInitArc(owner:PGDBObjGenericWithSubordinated):PGDBObjArc;
97+
9698
implementation
9799

98100
function GDBObjARC.IsStagedFormatEntity:boolean;

cad_source/zengine/core/entities/uzeentcircle.pas

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,11 @@ tcirclertmodify=record
9797
class function CreateInstance:PGDBObjCircle;static;
9898
function GetObjType:TObjID;virtual;
9999
function IsStagedFormatEntity:boolean;virtual;
100+
100101
end;
101102

103+
function AllocAndInitCircle(owner:PGDBObjGenericWithSubordinated):PGDBObjCircle;
104+
102105
implementation
103106

104107
function GDBObjCircle.IsStagedFormatEntity:boolean;

cad_source/zengine/core/entities/uzeentgenericsubentry.pas

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ TDrawingPreCalcData=record
8686
var drawing:TDrawingDef);virtual;
8787
//** Добавляет объект в область ConstructObjRoot или mainObjRoot или итд. Пример добавления gdb.GetCurrentDWG^.ConstructObjRoot.AddMi(@sampleObj);
8888
procedure AddMi(var pobj:PGDBObjSubordinated);virtual;
89+
procedure AddMiToArrayOnly(var pobj:PGDBObjSubordinated);virtual;
8990
procedure ImEdited(pobj:PGDBObjSubordinated;
9091
pobjinarray:integer;var drawing:TDrawingDef);virtual;
9192
function ReturnLastOnMouse(InSubEntry:boolean):PGDBObjEntity;
@@ -436,6 +437,14 @@ procedure GDBObjGenericSubEntry.AddMi;
436437
pGDBObjEntity(pobj)^.EntExtensions.RunSetRoot(pobj,@self);
437438
end;
438439

440+
procedure GDBObjGenericSubEntry.AddMiToArrayOnly;
441+
begin
442+
ObjArray.AddPEntityToArrayOnly(pGDBObjEntity(pobj)^);
443+
pGDBObjEntity(pobj)^.bp.ListPos.Owner:=@self;
444+
if assigned(pGDBObjEntity(pobj)^.EntExtensions) then
445+
pGDBObjEntity(pobj)^.EntExtensions.RunSetRoot(pobj,@self);
446+
end;
447+
439448
procedure GDBObjGenericSubEntry.correctobjects;
440449
var
441450
pobj:PGDBObjEntity;

cad_source/zengine/core/entities/uzeentlwpolyline.pas

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ interface
2727
uzegeometry,uzestyleslayers,uzeentity,UGDBPoint3DArray,UGDBPolyLine2DArray,
2828
uzctnrVectorBytesStream,uzeTypes,uzeentwithlocalcs,uzeconsts,Math,
2929
gzctnrVectorTypes,uzegeometrytypes,uzeffdxfsupport,SysUtils,
30-
UGDBSelectedObjArray,uzMVReader,uzCtnrVectorpBaseEntity;
30+
UGDBSelectedObjArray,uzMVReader,uzCtnrVectorpBaseEntity,uzclog;
3131

3232
type
3333

@@ -100,6 +100,8 @@ GLLWWidth=record
100100
function GetObjType:TObjID;virtual;
101101
end;
102102

103+
function AllocAndInitLWpolyline(owner:PGDBObjGenericWithSubordinated):PGDBObjLWPolyline;
104+
103105
implementation
104106

105107
var
@@ -516,6 +518,7 @@ procedure GDBObjLWpolyline.LoadFromDXF;
516518
begin
517519
hlGDBWord:=0;
518520
numv:=0;
521+
//programlog.LogOutStr('GDBObjLWpolyline: Внутри LoadFromDXF', LM_Info);
519522
globalwidth:=0;
520523
widthload:=False;
521524
closed:=False;
@@ -656,6 +659,7 @@ procedure GDBObjLWpolyline.FormatEntity(var drawing:TDrawingDef;
656659
createpoint;
657660
CalcWidthSegment;
658661
Square:=CalcSquare;
662+
//programlog.LogOutStr('GDBObjLWpolyline: Внутри formatEntity', LM_Info);
659663
calcbb(dc);
660664
if assigned(EntExtensions) then
661665
EntExtensions.RunOnAfterEntityFormat(@self,drawing,DC);

cad_source/zengine/core/entities/uzeentmtext.pas

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ procedure FormatMtext(pfont:pgdbfont;Width,size,wfactor:double;
7171
function GetLinesH(linespace,size:double;var Lines:XYZWStringArray):double;
7272
function GetLinesW(var Lines:XYZWStringArray):double;
7373
function GetLineSpaceFromLineSpaceF(linespacef,size:double):double;
74+
function AllocAndInitMText(owner:PGDBObjGenericWithSubordinated):PGDBObjMText;
7475

7576
implementation
7677

cad_source/zengine/core/entities/uzeentpoint.pas

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ interface
6969
function GetObjType:TObjID;virtual;
7070
end;
7171

72+
function AllocAndInitPoint(owner:PGDBObjGenericWithSubordinated):PGDBObjPoint;
73+
7274
implementation
7375

7476
procedure GDBObjPoint.TransformAt;

cad_source/zengine/core/entities/uzeentpolyfacemesh.pas

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ TEdgePair = record
8080
public
8181
constructor init(own:Pointer;layeraddres:PGDBLayerProp;
8282
LW:smallint);
83+
constructor initnul(owner:PGDBObjGenericWithSubordinated);
8384

8485
// Основные методы сущности
8586
//procedure LoadFromDXF(var rdr:TZMemReader;ptu:PExtensionData;
@@ -125,6 +126,14 @@ constructor GDBObjPolyFaceMesh.init(own:Pointer;layeraddres:PGDBLayerProp;
125126
FFaces.initnul;
126127
end;
127128

129+
constructor GDBObjPolyFaceMesh.initnul(owner:PGDBObjGenericWithSubordinated);
130+
begin
131+
inherited initnul(owner);
132+
FVertexCount := 0;
133+
FFaceCount := 0;
134+
FFaces.initnul;
135+
end;
136+
128137
procedure GDBObjPolyFaceMesh.BuildEdgePairs(out edgePairs: GDBEdgePairArray;
129138
out edgeCount: Integer);
130139
var
@@ -677,7 +686,7 @@ procedure GDBObjPolyFaceMesh.InitFacesFromTempFaces(TempFaces:PTempFaceIndices;C
677686
pFace:PTempFaceIndices;
678687
begin
679688
//programlog.LogOutFormatStr('uzeentpolyfacemesh: InitFacesFromTempFaces START Count=%d',[Count],LM_Info);
680-
FFaces.initnul; // Инициализация вектора перед использованием
689+
FFaces.Clear;
681690
FFaceCount:=Count;
682691
for i:=0 to Count-1 do begin
683692
pFace:=PTempFaceIndices(PtrUInt(TempFaces)+PtrUInt(i*SizeOf(TTempFaceIndices)));

0 commit comments

Comments
 (0)