N
NacMacNeedle
Gast
Tut mir leid, dass ich den Sachverhalt nicht als knackigen Threadtitel formulieren kann...
Meine Frage ist folgende: Ich programmiere gerade eine Anwendung, bei der ich unter Anderem für manche Objekte 2D-Kollisionstests machen muss. Viele Objekte, lassen sich als Polygon oder Rectangle vereinfachen und über die entsprechenden Methoden contains, intersect,... überprüfen.
Einige Objekte jedoch müssen pixelgenau überprüft werden, dafür habe ich eine eigene Klasse geschrieben (im Prinzip Alpha==0 oder Alpha!=0 für jeden Pixel und das dann Laufzeitkodiert).
Das Ziel ist jetzt, ein Interface HasBoundingShape zu haben, so dass ich (awt-)Rechtecke, (awt-)Polygone und RLEAlphaMask als Methodenparameter übergeben kann.
Normalerweise würde ich eine Superklasse BoundingShape erstellen und die Formen davon erben oder einzelne Formklassen das Interface implementieren lassen, aber die awt-Klassen sind ja schon vorhanden, die kann ich ja nicht einfach umschreiben... umgekehrt will ich meine Klasse nicht von awt-shape erben lassen, da ich sonst viele für mich unnütze Methoden implementieren müsste.
Gibt es eine Möglichkeit, das elegant zu lösen?
Meine Frage ist folgende: Ich programmiere gerade eine Anwendung, bei der ich unter Anderem für manche Objekte 2D-Kollisionstests machen muss. Viele Objekte, lassen sich als Polygon oder Rectangle vereinfachen und über die entsprechenden Methoden contains, intersect,... überprüfen.
Einige Objekte jedoch müssen pixelgenau überprüft werden, dafür habe ich eine eigene Klasse geschrieben (im Prinzip Alpha==0 oder Alpha!=0 für jeden Pixel und das dann Laufzeitkodiert).
Das Ziel ist jetzt, ein Interface HasBoundingShape zu haben, so dass ich (awt-)Rechtecke, (awt-)Polygone und RLEAlphaMask als Methodenparameter übergeben kann.
Normalerweise würde ich eine Superklasse BoundingShape erstellen und die Formen davon erben oder einzelne Formklassen das Interface implementieren lassen, aber die awt-Klassen sind ja schon vorhanden, die kann ich ja nicht einfach umschreiben... umgekehrt will ich meine Klasse nicht von awt-shape erben lassen, da ich sonst viele für mich unnütze Methoden implementieren müsste.
Gibt es eine Möglichkeit, das elegant zu lösen?