Sunteți pe pagina 1din 15

4.

2 Descrierea claselor folosite

Clasa Point

Implementeaza un punct in spatiul OxOy unde Ox,Oy , x,y intregi.


Date membru:
 private int x cooardonata pe axa Ox
 private int y coordonata pe axa Oy
Metode membru:
 public Point(int _x, int _y) construieste si initializeaza un punct de
cooordonatele (_x,_y)
 public Point(Point point) construieste si initializeaza un punct cu
aceeasi locatie ca punctul point;
 public void setX(int _x) seteaza coordonata pe axa Ox la valoarea _x.
 public void setY(int _y) seteaza coordonata pe axa Oy la valoarea _y.
 public int getX() returneaza coordonata pe axa Ox.
 public int getY() returneaza coordonata pe axa Oy.
 public boolean equals(Object o) determina daca doua puncte sunt egale,
adica daca au aceleasi coordonate;
 public int hashCode() intoarce valoarea hash code pentru acest obiect .
Aceasta metoda este folosita in tabelele de dispersie ca cea implementata
in clasa java.util.Hashtable
 public String toString() intoarce o reprezentare String a acestui punct.
 public static Point midPoint(Point point1,Point point2) intoarce punctul
aflat la jumatatea distantei dintre punctele point1 si point2..
 public static double midX(Point point1,Point point2) intoarce
coordonata pe axa Ox a punctului aflat la jumatatea distantei dintre
punctele point1 si point2.

45
 public static double midY(Point point1,Point point2) intoarce
coordonata pe axa Oy a punctului aflat la jumatatea distantei dintre
punctele point1 si point2.
 public boolean smallerThat(Point point) determina daca punctul curent
este mai mic decit punctul point.

Clasa FunctionLine

Implementeaza functia unei linii, f(x,y)=Ax+By+C


Date membru:
 private float A coeficientul coordonatei x.
 private float B coeficientul coordonatei y
 private float C coeficientul coordonatei termenului liber.
Metode membru:
 public static String SameLine = "este aceeasi linie" un mesaj de eroare
daca 2 FunctionLine sunt ale aceleasi linii.
 public FunctionLine(Point point1, Point point2) ) construieste si
initializeaza functia liniei care trece prin punctele point1 si point2.
 public FunctionLine(float x1, float y1, float x2, float y2) construieste si
initializeaza functia liniei care trece prin punctele de coordonate (x1,y1) si
(x2,y2).
 public float getA() intoarce coeficientul lui x.
 public float getB()intoarce coeficientul lui y
 public float getC() intoarce coeficientul coordonatei termenului liber..
 public float calc(Point point) calculeaza valoarea functiei pentru punctul
point.
 public boolean isOnThisFunctionLine(Point point) determina punctul
point este pe dreapta reprezentata de aceasta funcie.
 public static float detAB(FunctionLine f1, FunctionLine f2) calculeaza
determinantul de rangul 2 format de A,B al functiilor f1 si f2;

46
 public static float det2(float a11, float a12, float a21, float a22)
calculeaza determinantul format de rangul 2 care are pe prima linie
a11,a12 si pe a doua linie a21,a22.
 public static Point getIntersectionPoint(FunctionLine f1, FunctionLine
f2) throws
 Exception returneaza punctul de intersectie a dreptelor care au asociat
functiile f1,f2 .Daca dreptele sunt paralele sau sunt aceleasi arunca o
exceptie..
 public static boolean isTheSameLine(FunctionLine f1, FunctionLine
f2) determina daca functiile f1,f2 sunt asociate .aceleiasi linii.
 public static boolean areParalel(FunctionLine f1, FunctionLine f2)
determina daca dreptele asociate functiilor f1,f2 sunt paralele.
 public float calc(float x, float y) calculeaza valoarea functiei pentru
coordonatele (x,y)

Clasa PolyLine

Implementeaza o linie poligonala. Daca primul punct este egal cu ultimul


atunci linia poligonala este un poligon.
Date membru:
 Vector points punctele acestei linii poligonale.
Metode membru:
 public PolyLine() construieste si initializeaza o linie poligonala fara nici
un punct.
 public PolyLine(Point point) construieste si initializeaza o linie
poligonala. cu punctul point.
 public PolyLine(PolyLine polyLine) construieste si initializeaza o linie
poligonala ce contine aceleasi puncte cu linia poligonala polyLine.
 public void addPoint(Point point) aduga un punct la sfirsitul acestei linii
poligonale.

47
 public boolean isClosed() testeaza daca aceasta linie poligonala este un
poligon (daca este inchisa)
 public boolean canConnect(PolyLine polyLine) testeaza daca se poate
conecta cu linia poligonala polyLine (adica daca una dintre extremitatile
liniei poligonale corespunde cu una dintre extremitatiile obiectului
polyLine)
 public void connectToPolyLine(PolyLine polyLine)-conecteaza linia
poligonala cu obiectul polyLine, daca una dintre extremitatile liniei
poligonale corespunde cu una dintre extremitatile obiectului polyLine.
 public boolean canInclude(PolyLine polyLine) testeaza daca linia
poligonala poate include obiectul polyLine( daca obiectul polyLine este
un poligon si exista un punct in interiorul liniei poligonale care corespunde
unui alt punct in cadrul obiectului polyLine)
 public void includePolyLine(PolyLine polyLine) include obiectul
polyLine daca obiectul polyLine este un poligon si exista un punct in
interiorul liniei poligonale care corespunde unui alt punct in cadrul
obiectului polyLine. Efectul acestei metode este identic cu reuniunea unei
linii poligonale cu linia poligonala a un poligon cu care are un punct
comun.
 public Point getPoint(int index) –returneaza punctul cu indexul index
din aceasta linie poligonala, daca el exista, null in caz contrar .
 public Point getLastPoint() returneaza primul punct din aceasta linie
poligonala., daca el exista, null in caz contrar .
 public Point getFirstPoint() returneaza ultimul punct din aceasta linie
poligonala., daca el exista, null in caz contrar .
 public int getNumberOfPoints() returneaza numarul de puncte ce se
afla pe aceasta linie poligonala.
 public int getNumberOfSegments() returneaza numarul de segmente ce
se afla pe aceasta linie poligonala.
 public Segment getSegment(int index) returneaza segmentul cu indexul
index din aceasta linie poligonala., daca el exista, null in caz contrar .

48
 public void insertPoint(Point point, Point point1, Point point2)
insereaza punctul point intre punctele point1, point2 in linia poligonala.
 public Vector getNotProperPoints(Vector _Points) returneaza un vector
ce contine punctele ce nu sint continute in aceasta linie poligonala dintre
punctele _Points.
 public void insertOrderedPoints(Vector _points, Point point1, Point
point2) insereaza punctele cuprinse in vectorul _points intre punctele
point1 si point2 in ordinea in care apar in vector.
 int getMaxX() returneaza coordonata maxima pe axa Ox a punctelor
aflate pe aceasta linie poligonala.
 int getMaxY()returneaza coordonata maxima pe axa Oy a punctelor aflate
pe aceasta linie poligonala.
 int getMinX()returneaza coordonata minima pe axa Ox a punctelor aflate
pe aceasta linie poligonala.
 int getMinY()returneaza coordonata minima pe axa Oy a punctelor aflate
pe aceasta linie poligonala.
 public boolean hasSegment(Segment sgm) testeaza daca aceasta linie
poligonala contine segmentul sgm.
 public PolyLine getReduceVersion() returneaza o linie poligonala redusa
a acesteia (adica daca exista mai mult de 2 puncte succesive pe o dreapta
atunci se elimina cel din mijloc pana raman doar doua puncte successive
pe o linie).
 public void scale(double alfa) scaleaza linia poligonala cu factorul alfa.
 public void translate(double dx,double dy) translateaza linia poligonala
cu dx pe axa Ox si cu dy pe axa Oy.
 public boolean equals(Object o) determina daca doua linii poligonale
sunt identice adica daca au puctele cu aceleasi coordonate;
 public String toString() intoarce o reprezentare String a acestei linii
poligonale.

Clasa AreaPointType

49
Implementeaza tipul unui punct pe suprafata unui polygon.
Date membru:
 public static final int InnerPoint = 0 constanta cu semnificatia de punct
interior
 public static final int BorderPoint = 1 constanta cu semnificatia de
punct pe granite.
 private int type tipul respectiv.
Metode membru:
 public AreaPointType(int _type) construieste si initializeaza tipul
punctului cu tipul _type
 public AreaPointType construieste si initializeaza tipul punctului cu
tipul InnerPoint
 public void setPointType(int _type) seteaza tipul punctului cu tipul
_type
 public boolean isInnerPoint() testeaza daca este punct interior
 public boolean isBorderPoint() testeaza daca este punct pe granite
suprafetei determinata de punctele sale

Clasa Segment

Implementeaza un segment de dreapta


Date membru:
 private Point from prima extremitate a segmentului
 private Point to a doua extremitate a segmentului
 private FunctionLine f = null; functia liniei pe care se afla segmentul
Metode membru:
 public Segment(Segment sgm) construieste si initializeaza segmentul .cu
aceleasi extremitati cu ale segmentului sgm

50
 public Segment(Point _from, Point _to) construieste si initializeaza
segmentul .cu extremitatile formate din punctele _from si to.
 public FunctionLine getFunctionLine() returneaza functia liniei pe care
se afla segmentul de dreapta.
 public static double dist(Point point1,Point point2) returneaza distanta
intre punctele point1 si point2.
 public static double dist(double x1, double y1, double x2, double y2)
returneaza distanta dintre punctele de cooardonate (x1,y1) si respectiv
(x2,y2)
 private static double dist(Point point, Segment segm) returneaza
distanta dintre punctul point si segmentul segm.
 public Vector getProperIntersectionsPoints(Segment segm) returneaza
un ordonat vector format din punctele de intersectie proprii, adica cele
care adaugate pe segmentele care se intersecte inpart segmentele in noi
segmente, ale segmentului segm1 cu segm2.
 public Vector getIntersectionsPoints(Segment segm) returneaza
vectorul de puncte al intersectiei segmentului cu segmentul segm.
 public static Vector getProperIntersectionsPoints(Segment segm1,
 Segment segm2) returneaza un vector format din punctele de intersectie
proprii, adica cele care adaugate pe un segment impart segmentele in noi
segmente, ale segmentului segm1 cu segm2.
 public static Vector getIntersectionsPoints(Segment segm1, Segment
segm2) returneaza un vector format din punctele de intersectie ale
segmentului segm1 cu segm2.

 public boolean containsPointAndItIsNotExtreme(Point point) testeaza


daca punctul point se afla pe segment si nu este o extremitate a
segmentului.
 public boolean isExtremePoint(Point point) testeaza daca punctul point
este o extremitate a segmentului.

51
 public boolean containsPoint(Point point) testeaza daca punctul point se
afla pe segment.
 public Point getFrom() returneaza prima extremitatea a segmentului.
 public Point getTo() returneaza a doua extremitate a segmentului.
 public String toString() intoarce o reprezentare String a acestui segment.
 public int hashCode() intoarce valoarea hash code pentru acest obiect .
Aceasta metoda este folosita in tabele de dispersie ca cea implementata in
clasa java.util.Hashtable
 public boolean equals(Object o) testeaza daca segmentul este identic
cu segmentul o, adica daca au extremitatile identice.
 public Point getTheOther(Point point) daca punctul point este o
extremitate a segmentului atunci returneaza celalalt punct extreme.

Clasa SegmentPoints

Implementeaza o multime de puncte.


Date membru:
 private Vector Points = new Vector(); punctele din acest vector.
Metode membru:
 public void addSegmentPoint(Point point) adauga punctul point la
sfirsitul acestui punct.
 public void addSegmentPoints(Vector _points) aduga punctele cuprinse
in vectorul _points.
 public Vector getPoints() returneaza un obiect de tipul Vector care
cuprinde toate punctele din acest obiect.
 public Point getSegmentPoint(int index) returneaza punctul cu indexul
index din aceasta multime, daca el exista, null in caz contrar .
 public int getNumberOfPoints() returneaza numarul de puncte.

Clasa MultiPolyLine

52
Implementeaza o linie poligonala multipla, adica o multime de linii
poligonale.Este utila la reprezentarea unei suprafete concave cu spatiul cuprins intre
mai multe linii poligonale inchise.
Date membru:
 private Vector polyLines = new Vector(); un vector de linii poligonale.
Metode membru:
 public MultiPolyLine(MultiPolyLine multiPolyLine) construieste si
initializeaza o linie poligonala. multipla
 public MultiPolyLine(MultiPolyLine multiPolyLine) construieste si
initializeaza o linie poligonala. multipla cu liniile poligonale existente in
obiectul multiPolyLine.
 public void add(PolyLine polyLine) adauga linia poligonala polyLine la
aceasta multime.
 public int getNumberOfPolyLines() returneaza numarul de linii
poligonale
 public PolyLine getPolyLine(int index) returneaza linia poligonala cu
indexul index
 public void remove(PolyLine polyLine) se elimina linia poligonala
polyLine din aceasta multime.
 int getMaxX() returneaza coordonata maxima pe axa Ox a punctelor
aflate pe aceasta linie poligonala a acestei multimi.
 int getMaxY()returneaza coordonata maxima pe axa Oy a punctelor aflate
pe aceasta linile poligonale ale acestei multimi.
 int getMinX()returneaza coordonata minima pe axa Ox a punctelor aflate
pe aceasta linile poligonale ale acestei multimi.
 int getMinY()returneaza coordonata minima pe axa Oy a punctelor aflate
pe aceasta linile poligonale ale acestei multimi.
 public boolean hasSegment(Segment sgm) testeaza daca una dintre
liniile poligonale aflate in acesta multime contine segmentul sgm.
 public MultiPolyLine getReduceVersion()

53
 public void scale(double alfa) scaleaza toate liniile poligonale ale acestei
multimi cu factorul alfa
 public String toString() returneaza o reprezentarea String a acestui obiect

Clasa LinePoint

Extinde clasa Point.


Implementeaza un punct aflat la intersectia unei drepte paralele cu axa
Ox si un segment de dreapta. Daca punctul este un punct extrem al segmentului
atunci el mai retine si cealalalt punct extrem.

Date membru:
 Point extremPoint; celelalalt punct extreme
Metode membru:
 public LinePoint(int _x, int _y, Point _point) construieste si initializeaza
un obiect de tipul LinePoint de coordonate(_x,_y) poligonala. multipla
_point.
 public Point getOtherPoint() returneaza punctul extrem.
 public boolean equals(Object o) ) determina daca doua LinePoints sunt
egale, adica daca au aceleasi coordonate si daca punctul extrem coincide.
 public Point getPoint() returneaza punctul de intersectie de tipul Point .
 public boolean smallerThat(LinePoint linePoint) testeaza daca punctul
este mai mic decit punctul linePoint.
 public boolean goingDown() testeaza daca punctul extrem este mai jos
pe axa Oy

54
 public boolean goingUp( ) testeaza daca punctul extrem este mai sus pe
axa Oy

Clasa LinePoints

Implementeaza o lista de puncte LinePoint aflate la intersectia unei drepte


paralele cu axa Ox, o linie poligonala multipla...
Date membru:
 private Vector Points = new Vector(); vectorul de puncte
 private MultiPolyLine multiPolyLine; linia poligonala multipla
 private int line; cooardonata pe axa Oy a liniei.
Metode membru:
 public LinePoints(int _line, MultiPolyLine _multiPolyLine)
construieste si initializeaza obiectul cu linia _line, paralela cu axa Ox
ordonata si cu linia poligonala multipla _ multiPolyline.
 public void addLinePoint(LinePoint linePoint) –aduga punctul
LinePoint la aceasta linie.
 public int getLine() returneaza coordonata pe axa Oy a liniei
 public LinePoint getLinePoint(int index) returneaza punctul cu indexul
index, null, daca el nu exista.
 public int getNumberOfPoints() returneaza numarul de puncte.
 public boolean goingInTheSameDirection(LinePoint point1, LinePoint
point2) testeaza daca punctele point1 si point2 se afla pe segmente care
au cealalta extremitate in aceeasi parte fata de linia line .
 public void makeReady() – in acesta linie se elimina anumite puncte
pentru ca in aceasta multime pentru ca punctele aflate pe segmentele,
formate din punctele de index x si x+1 unde x par sa fie, din aceasta
multime sa fie inauntrul figurii cuprinse intre liniile poligonale ale
obiectului multiPolyLine .

Clasa Area

55
Implementeaza un obiect folosit la retinerea punctelor aflate pe o suprafata
intre liniile poligonale ale unuei linii poligonale multiple.
Date membru:
 public Hashtable Points = new Hashtable(); este folosit la retinerea
punctelor cit si a tipului acestora (daca sunt interioare sau pe una din liniile
poligonale)
 private int minX coordonata maxima pe axa Ox a punctelor aflate in
aceasta structura
 private int minY coordonata minima pe axa Oy a punctelor aflate in
aceasta structura.
 private int maxX coordonata maxima pe axa Ox a punctelor aflate in
aceasta structura.
 private int maxY coordonata maxima pe axa Oy a punctelor aflate in
aceasta structura.
 private boolean isNew = true; semnifica daca este true ca obiectul nu
contine nici un punct si false in caz contrar.
Metode membru:
 public AreaPointType getAreaPoint(Point point) returneaza tipul
punctului point
 public void updatePoint(Point point)- aduga punctul point.
 private boolean isOnBorder(Point point) testeaza daca punctul point
este pe granita.
 public void makeBorder() determina punctele de pe granite.
 private void updateMinMax(Point point) updateaza
minX,minY,maxX,maxY daca la multime s-a adaugat punctul point
 public boolean isInnerPoint(Point point) determina daca punctul point
este in interiorul suprafetei.
 public void putYLineSegment(int line, int xstart, int xfinish) adauga
punctele intre punctual de coordinate (xstart,line) si respectiv
(ystart,line).

56
 public void putLinePoints(LinePoints linePoints) pune punctele de pe
acesta linie de puncte linePoints.
 public void addArea(MultiPolyLine multiPolyLine) aduga punctele de
pe suprafata aflata intre liniile poligonale ale obiectului multiPolyLine.
 public boolean isBorderSegment(Segment segment) testeaza daca
segmentul segment se afla pe granite.
 public boolean isBorderSegment(Point point1, Point point2) testeaza
daca segmentul cu extremitatile point1 si point2se afla pe granite.

Clasa IntersecterMultiPolyLine

Implementeaza un obiect folosit pentru obtinerea liniilor poligonale multiple


rezultate ca urmarea a adaugarii punctelor, aflate la intersectia segmentelor a doua
linii poligonale multiple, pe segmentele corespunzatoare din aceste linii poligonale
multiple.
Date membru:

 private MultiPolyLine multiPoly1 prima linie poligonala multipla la


care s-au adugat punctele de intersectie
 private MultiPolyLine multiPoly2; a doua linie poligonala multipla la
care s-au adugat punctele de intersectie
 private MultiPolyLine oMultiPoly1; - prima linie poligonala multipla
introdusa
 private MultiPolyLine oMultiPoly2; - a doua linie poligonala multipla
introdusa
 private Hashtable segmente = new Hashtable(); un tablou in care se
vor retine toate punctele ce trebuie adaugate pe fiecare segment din aceste
doua linii poligonale multiple.
Metode membru:

57
 public IntersecterMultiPolyLine(MultiPolyLine _multiPoly1,
MultiPolyLine _multiPoly2) construieste si initializeaza un obiect de
acest tip cu liniile poligonale multiple _multiPoly1 si _multiPoly2.
 public MultiPolyLine getFirstMultiPolyLine() returneaza prima linie
poligonala multipla.
 public MultiPolyLine getSecondMultiPolyLine returneaza a doua linie
poligonala multipla.
 private void init() –initializeaza data membru segmente.
 private void putIntersectionsPointsBack() pune toate punctele de
intersectie descoperite pe segmentele corespunzatoare
 private void addPointsTo(Segment sgm, Vector points) adauga punctele
points pe segmentul sgm

 private void makeAllIntersectionsPoints(PolyLine poly1, PolyLine


poly2) calculeaza toate punctele de intersectie dintre liniile poligonale
poly1 si poly2
 private void makeAllIntersectionsPoints() calculeaza toate punctele de
intersectie dintre liniile poligonale multiple introduse la crearea obiectului.

Clasa ReunionMultiPoly

Implementeaza un obiect folosit pentru obtinerea unei linii poligonale multiple


care sa cuprinda intre liniile sale poligonale toata suprafata cuprinsa intre liniile
poligonale multiple primate ca parametru .
Date membru:
 private MultiPolyLine ReunionMultiPolyLine = new
MultiPolyLine();linia poligonala ce se va obtine
 Vector segmente = new Vector(); Vector in care se vor depozita temporar
toate segmentele
Metode membru:
 public ReunionMultiPoly(MultiPolyLine firstMultiPolyLine,
MultiPolyLine secondMultiPolyLine) construieste si initializeaza un

58
obiect de acest tip cu liniile poligonale multiple firstMultiPolyLine si
secondMultiPolyLine.
 public void addSegment(Segment segment)-aduga segmentul segment
la linia poligonala multipla ce va fi returnata.
 public MultiPolyLine getReunionMultiPolyLine returneaza linia
poligonala multipala ce se dorea sa se obtina.

59

S-ar putea să vă placă și

  • Important A
    Important A
    Document2 pagini
    Important A
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 1
    Cap4 1
    Document12 pagini
    Cap4 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap 1
    Cap 1
    Document18 pagini
    Cap 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 2
    Cap4 2
    Document15 pagini
    Cap4 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 2
    Cap 2
    Document6 pagini
    Cap 2
    Andrei Sandu
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări
  • Licență
    Licență
    Document27 pagini
    Licență
    Andrei Sandu
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Andrei Sandu
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Cap4 1
    Cap4 1
    Document12 pagini
    Cap4 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 2
    Cap4 2
    Document15 pagini
    Cap4 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 2
    Cap 2
    Document6 pagini
    Cap 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 1
    Cap 1
    Document18 pagini
    Cap 1
    Andrei Sandu
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Licență
    Licență
    Document27 pagini
    Licență
    Andrei Sandu
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări