1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
Enum NodeType{i, t, x} // types d'intersection, x est un carrefour , i une subdivision (pas d'intersection) pour le LOD (splines plus fluides car contenant plus de points), x un carrefour...
Enum SegmentType { Alley, Avenue, Boulevard, Freeway, Interstate, ... }
Struct Node{
Fvector Location;
NodeType type;
Segment * Segments[10] // une intersection a maximum 10 routes qui convergent vers elle
}
Struct Segment{
Node * From;
Node * To;
bool TwoWay; //sens unique ou double sens
SegmentType type;
}
class GraphManager
{
Node * Nodes[];
Segment * Segments[];
int Lod; // level of details
public or private :
void CreateNode(FVector Location);
void DeleteNode(Node * Nod);
void CreateSpline(void);
...
}; |
Partager