Træ af forskellige objekter af forskellige klasser i C++
Jeg har brug for at lave et træ af forskellige objekter af forskellige klasser. Mere specifikt skal knuderne i træet repræsentere aabb'er (axis aligned bounding boxes) og bladene skal repræsentere trekanter eller pentaedere. Jeg skal kunne gennemløbe træet og lave intersection test på de forskellige objekter. Dvs. jeg skal kunne lave følgende intersection test:
aabb vs. aabb aabb vs. trekant aabb vs. pentagram trekant vs. pentagram
Selve testen for intersection af de enkelte geometriske objekter har jeg styr på. Det er mere den strukturelle opbygning af klasserne i C++ der skal udgøre træet jeg er interesseret i. Det jeg har nu er noget i stil med
Class TNode { TNode *l, *r; Geometry &g; }
Class Geometry { ... }
Class GAABB : public Geometry { bool Intersects(GTriangle t) {...} bool Intersects(GPentahedron p) {...} ... }
Class GTriangle : public Geometry { bool Intersects(GAABB) { ... } ... }
Er jeg på rette spor?
Jeg stødte på "Composite pattern" ved en google-søgning. Vil det kunne bruges? Og i så fald, hvordan?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.