Основные структуры данных (Basic Structures)

Комплексное число (Complex Value)
Pascal
Complex = record
            Re,Im: real;
            end;
Max Script
struct Complex(Re,Im)
VHDL
subtype TFloat is Float32;
            type TComplex is record
            Re,Im: TFloat;
            end record;
JavaScript
function printcomp(C)
            {
            alert("re="+C.Re+" im="+C.Im)
            }
Величина (Value)
Pascal
TOChisl = class (TObj)
            C: complex;
            Kind: TKindConst;
            Special: TChislSpecial;
            end;

            TKindConst = (tc_constant,tc_variable);
            TChislSpecial = (c_ord,c_null,c_rect); 
Max Script
struct TOChisl(C,OB,Dir)
VHDL
type TOConst is record
            C: TComplex;
            end record;
JavaScript
function printchisl(C,Name)
            {
            alert(Name+" re="+C.C.Re+" im="+C.C.Im)
            }
Точка (Point)
Pascal
TOPoint = class (TObj)
                        X,Y: complex;
                        W,T: real;
                        Kind: TKindPoint;
                        Dostup: boolean;
                        end;

                        TKindPoint = (tp_Free,tp_halfFree,tp_Fixed);
Max Script
struct TOPoint(X,Y,W,OB,Dir)
VHDL
type TOPoint is record
            X,Y,Z: TComplex;
            end record;
JavaScript
function printpoint(C,Name)
            {
            alert(Name+" X="+C.X.Re+","+C.X.Im+" Y="+C.Y.Re+","+C.Y.Im+"
            W="+C.W)
            }
Прямая (Line)
Pascal
TOLine = class (TObj)
            X1,Y1,X2,Y2: complex;
            XV,YV: real;
            Vid: TOLine_Vid;
            Special: TLineSpecial;
            draw_AsBorned: byte;
            end;

            TOLine_Vid = (Sobstv,NeSobstv);
            TLineSpecial = (Ordinal,Ox,Oy);
Max Script
struct TOLine(X1,Y1,W1,X2,Y2,W2,OB,Dir)
VHDL
type TOLine is record
            X1,Y1,X2,Y2: TComplex;
            end record;
JavaScript
function printline(C,Name)
            {
            alert(Name+" X1="+C.X1.Re+","+C.X1.Im+" Y1="+C.Y1.Re+","+C.Y1.Im+"
            W1="+C.W1+" X2="+C.X2.Re+","+C.X2.Im+" Y2="+C.Y2.Re+","+C.Y2.Im+"
            W2="+C.W2)
            }
Окружность (Circle)
Pascal
TODuga = class (TObj)
            Xc,Yc: complex;
            X1,Y1,X2,Y2,Laba,Alpha: real;
            R: complex;
            Vid: byte;
Max Script
struct TODuga(Xc,Yc,R,OB,Dir)
VHDL
JavaScript
function printduga(C,Name)
            {
            alert(Name+" Xc="+C.Xc.Re+","+C.Xc.Im+" Yc="+C.Yc.Re+","+C.Yc.Im+"
            R="+C.R.Re+" "+C.R.Im)
            }
Твердое тело (Solid Body)
Pascal
TOBody = class (TObj)
            Father: TOBody;
            Coords: TList;
            Structure: TList;
            Rebra: TList;
            ZMin,ZMax: real;
            end;

            PCycle = ^TCycle;
                TCycle = record
                Actual,VL,Active: boolean;
                Parent: PSubKont;
                P: Pointer;
                N1,N2,N3,N4,N5: integer;
                A,B,C,D: real;
                Frame: TList;
            end;

            PVertex = ^TVertex;
                TVertex = record
                X,Y,Z: real; // Координаты
                AN,BN,CN,DN: real; // Усредненный вектор нормали к вершине
                N,NN: integer; // Номер вершины и количество принадлежностей к плоскостям
                Cycle1,Cycle2: TCycle;
            end;

            TRebro = record
                V1,V2: integer;
                Cycle: TCycle;
                Actual: boolean;
            end;
Max Script
struct TOBody(Coords,Faces,OB,Dir)
VHDL
SVG Commands