diff --git a/src/proc/mobject/placement-ref.hpp b/src/proc/mobject/placement-ref.hpp index eb94005bd..8bfec1ab2 100644 --- a/src/proc/mobject/placement-ref.hpp +++ b/src/proc/mobject/placement-ref.hpp @@ -45,6 +45,45 @@ namespace mobject { // using std::tr1::shared_ptr; + /** @todo WIP a generic hash-index, maybe also usable for assets */ + struct LuidH + { + long dummy_; + }; + + template + struct HaID; + + struct TestA + { + LuidH id_; + HaID const& getID() const; + }; + struct TestBA : TestA {}; + struct TestBB : TestA {}; + + template<> + struct HaID : LuidH + { + HaID () : LuidH () {} + HaID (TestA const& ref) : LuidH (ref.getID()) {} + }; + + template + struct HaID : HaID + { + HaID () : HaID () {} + HaID (T const& ref) : HaID (ref) {} + }; + + inline + HaID const& + TestA::getID() const + { + return *(static_cast*> (&id_)); + } + + /** */ diff --git a/tests/components/proc/mobject/placement-ref-test.cpp b/tests/components/proc/mobject/placement-ref-test.cpp index 4651c169a..d9869e2b0 100644 --- a/tests/components/proc/mobject/placement-ref-test.cpp +++ b/tests/components/proc/mobject/placement-ref-test.cpp @@ -27,6 +27,7 @@ //#include "proc/mobject/session/edl.hpp" //#include "proc/mobject/session/testclip.hpp" #include "proc/mobject/placement.hpp" +#include "proc/mobject/placement-ref.hpp" //#include "proc/mobject/explicitplacement.hpp" //#include "lib/util.hpp" @@ -46,6 +47,12 @@ namespace test { using asset::VIDEO; + /** @todo WIP a generic hash-index, maybe also usable for assets */ + HaID hahaBB1; + + TestBA bab; + HaID hahaBA1 (bab); + ///////////////////////////////TODO (Experimentation) /***************************************************************************