#include "munga.h" #pragma hdrstop #include "intorgn.h" #include "app.h" #include "interest.h" //############################################################################# //####################### InterestOrigin ################################ //############################################################################# // //############################################################################# // InterestOrigin //############################################################################# // InterestOrigin::InterestOrigin( InterestZoneID interest_zone_ID, InterestType interest_type, InterestDepth depth_calibration ): interestArenaSocket(NULL) { interestZoneID = interest_zone_ID; interestType = interest_type; depthCalibration = depth_calibration; } // //############################################################################# // ~InterestOrigin //############################################################################# // InterestOrigin::~InterestOrigin() { InterestArena *interest_arena; Check(&interestArenaSocket); if ((interest_arena = interestArenaSocket.GetCurrent()) != NULL) { Unregister_Object(interest_arena); delete interest_arena; } } // //############################################################################# // TestInstance //############################################################################# // Logical InterestOrigin::TestInstance() const { Node::TestInstance(); Verify(interestZoneID != NullInterestZoneID); Verify( interestType == VisualInterestType || interestType == AudioInterestType || interestType == GaugeInterestType || interestType == CollisionInterestType ); Check(&interestArenaSocket); return True; } // //############################################################################# // Update //############################################################################# // void InterestOrigin::Update( #if DEBUG_LEVEL>0 InterestZoneID interest_zone_ID #else InterestZoneID #endif ) { Check(this); Verify(interest_zone_ID != NullInterestZoneID); #if 0 // // If (the interest zone has changed) // // // Calculate the new interest arena for this interest origin // // // Add this interest origin to a "changed" list // #else // // HACK - there is only one interest zone right now... // if (interestArenaSocket.GetCurrent() == NULL) { InterestManager *interest_manager; Check(application); interest_manager = application->GetInterestManager(); Check(interest_manager); Check(interest_manager->GetInterestLatticeManager()); InterestArena *interest_arena = interest_manager->GetInterestLatticeManager()->MakeInterestArena( (InterestZoneID)0, (InterestType)0, (InterestDepth)0 ); Register_Object(interest_arena); interestArenaSocket.Add(interest_arena); Verify(interest_arena == interestArenaSocket.GetCurrent()); } #endif } // //############################################################################# //############################################################################# // void InterestOrigin::AddInterestingEntity(Entity*) { Fail("InterestOrigin::AddInterestingEntity - Should never reach here\n"); } // //############################################################################# //############################################################################# // void InterestOrigin::RemoveUninterestingEntity(Entity*) { Fail("InterestOrigin::RemoveUninterestingEntity - Should never reach here\n"); } // //############################################################################# //############################################################################# // void InterestOrigin::RemoveUninterestingEntities() { Fail("InterestOrigin::RemoveUninterestingEntities - Should never reach here\n"); }