76 lines
1.9 KiB
Text
76 lines
1.9 KiB
Text
|
/**
|
||
|
* PANDA 3D SOFTWARE
|
||
|
* Copyright (c) Carnegie Mellon University. All rights reserved.
|
||
|
*
|
||
|
* All use of this software is subject to the terms of the revised BSD
|
||
|
* license. You should have received a copy of this license along
|
||
|
* with this source code in a file named "LICENSE."
|
||
|
*
|
||
|
* @file auxSceneData.I
|
||
|
* @author drose
|
||
|
* @date 2004-09-27
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* This is protected, since you normally don't want to create a plain
|
||
|
* AuxSceneData object; instead, create an instance of a derived class that
|
||
|
* actually has some useful data in it.
|
||
|
*/
|
||
|
INLINE AuxSceneData::
|
||
|
AuxSceneData(double duration) :
|
||
|
_duration(duration),
|
||
|
_last_render_time(0.0)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Specifies the minimum length in time, in seconds, to keep this AuxSceneData
|
||
|
* object around in the scene graph after the last time it was rendered.
|
||
|
*/
|
||
|
INLINE void AuxSceneData::
|
||
|
set_duration(double duration) {
|
||
|
_duration = duration;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the minimum length in time, in seconds, to keep this AuxSceneData
|
||
|
* object around in the scene graph after the last time it was rendered.
|
||
|
*/
|
||
|
INLINE double AuxSceneData::
|
||
|
get_duration() const {
|
||
|
return _duration;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Should be called with the current frame_time each time the AuxSceneData is
|
||
|
* used during traversal.
|
||
|
*/
|
||
|
INLINE void AuxSceneData::
|
||
|
set_last_render_time(double last_render_time) {
|
||
|
_last_render_time = last_render_time;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the last time this object was used during traversal (according to
|
||
|
* set_last_render_time()).
|
||
|
*/
|
||
|
INLINE double AuxSceneData::
|
||
|
get_last_render_time() const {
|
||
|
return _last_render_time;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the frame_time at which this AuxSceneData object is currently
|
||
|
* scheduled to be removed from the scene graph.
|
||
|
*/
|
||
|
INLINE double AuxSceneData::
|
||
|
get_expiration_time() const {
|
||
|
return _last_render_time + _duration;
|
||
|
}
|
||
|
|
||
|
INLINE std::ostream &
|
||
|
operator << (std::ostream &out, const AuxSceneData &data) {
|
||
|
data.output(out);
|
||
|
return out;
|
||
|
}
|