fn EExecO5 &OOO X Y Z Att Sg1 Sg2 Sg3 = ( if (X==undefined) or (Y==undefined) or (Z==undefined) then return false -- if (Att.PT=8) or (Att.LV=8) or (Att.LT=6) then -- begin -- Att.RColor:= X.OAtt.RColor; -- Att.GColor:= X.OAtt.GColor; -- Att.BColor:= X.OAtt.BColor; -- end; -- if Att.PT=8 then Att.PT:=X.OAtt.PT; -- if Att.LV=8 then Att.LV:=X.OAtt.LV; -- if Att.LT=6 then Att.LT:=X.OAtt.LT; local X1,Y1,X2,Y2,Dx,Df,X3,Y3,S,C,Dl,Ldummy,Dx,X4,Y4,X5,Y5 if ((X.OB=="O") and (Y.OB=="P") and ((Z.OB=="C") or (Z.OB=="O"))) then ( if (TRUE) then -- {(TOLine(X).IsReal) and (TOPoint(Y).IsReal)} ( if (true) then -- (TOLine(X).IsSobstv) and (TOPoint(Y).IsSobstv) ( if (Sg1==1) then ( X1=X.X1; Y1=X.Y1; X2=X.X2; Y2=X.Y2; ) else ( X2=X.X1; Y2=X.Y1; X1=X.X2; Y1=X.Y2; ) DX=Z.C.Re; LDummy=SC X1.Re Y1.Re X2.Re Y2.Re &S &C &Dl; Df=Fi 0 1 S C ; X3=Y.X; Y3=Y.Y; if (Z.OB=="C") then Dx=Z.C.Re; if (Z.OB=="O") then ( if (Sg3==1) then SC Z.X1.Re Z.Y1.Re Z.X2.Re Z.Y2.Re S C Dl Ldummy else SC Z.X2.Re Z.Y2.Re Z.X1.Re Z.Y1.Re S C Dl Ldummy ; Fi 0 1 S C Dx ; if (Dx<0) then Dx=2*Pi+Dx; Dx=Dx/2/Pi*360; ) Dx=Dx*Sg3; Dx=Dx/180*Pi+Df; X5=Complex (X3.Re+100*Cos(Dx/Pi*180)) X3.Im; Y5=Complex (Y3.Re+100*Sin(Dx/Pi*180)) Y3.Im; X4=Complex (X3.Re-100*Cos(Dx/Pi*180)) X3.Im; Y4=Complex (Y3.Re-100*Sin(Dx/Pi*180)) Y3.Im; -- OOO:=TOLine.Create(X3,Y3,1,X5,Y5,1,brn_HalfLimited,Sobstv,Att,OW,Ordinal); TOLine_Create &OOO X3 Y3 1 X5 Y5 1 brn_Limited "sobstv" Att; -- {OOO.Parents.Add(X);OOO.Parents.Add(Y);OOO.Parents.Add(Z);} -- OOO.AssignParents([X,Y,Z]); -- -- AddInc(OOO,Y); ) else ( if (Att.Chk==1) then TOEmpty_Create &OOO Att; ) ) else ( if (Att.Chk==1) then TOEmpty_Create &OOO Att; ) ) else if (Att.Chk==1) then TOEmpty_Create &OOO Att; return TRUE; ) -- EExecO5