View Issue Details

IDProjectCategoryView StatusLast Update
0000215DarkRadiantDesign/Codingpublic21.06.2007 09:59
Reporterorbweaver Assigned Togreebo  
Status closedResolutionfixed 
Product Version0.9.0 
Fixed in Version0.9.1 
Summary0000215: Replace templated casting system with dynamic_cast
DescriptionRemove the ugly home-grown casting system which uses templates and void* pointers, with a more idiomatic system based on dynamic_cast and shared_ptr classes (rather than scene::Node& etc). This is a very large task.
TagsNo tags attached.




24.03.2007 19:00

administrator   ~0000466

Note that this will most probably require to rewrite all scenegraph items (patches, brushes, entities, etc.), because of the inconsistent way the casts are performed (there are NodeCasts and NodeContainedCasts, the latter of which allowing to cast onto a member object rather than the approached class itself). Pretty screwed design, if you ask me.


05.05.2007 12:21

developer   ~0000624

A very large task, moving to suspended status (may never get done).


08.05.2007 14:01

administrator   ~0000636

I actually thought about replacing the Nameable classes or the Renderables to use dynamic_cast<>, they might be implemented more consistently, although I haven't checked more deeply.


08.05.2007 17:58

developer   ~0000637

My assumption was that it wouldn't work to make a partial change -- the whole thing would need to be refactored at once. If this is not the case, and partial implementation is possible, then feel free.


21.06.2007 09:59

administrator   ~0000714

I think we can close that one now.

Issue History

Date Modified Username Field Change
16.03.2007 19:48 orbweaver New Issue
16.03.2007 19:49 orbweaver Status new => confirmed
24.03.2007 19:00 greebo Note Added: 0000466
05.05.2007 12:21 orbweaver Note Added: 0000624
05.05.2007 12:21 orbweaver Status confirmed => suspended
08.05.2007 14:01 greebo Note Added: 0000636
08.05.2007 17:58 orbweaver Note Added: 0000637
14.05.2007 14:03 greebo Status suspended => resolved
14.05.2007 14:03 greebo Fixed in Version => latest SVN
14.05.2007 14:03 greebo Resolution open => fixed
14.05.2007 14:03 greebo Assigned To => greebo
21.06.2007 09:59 greebo Status resolved => closed
21.06.2007 09:59 greebo Note Added: 0000714