mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
do add zero-length intervals to ivalMgr
This commit is contained in:
parent
e83c431b91
commit
b50b2f9fc3
@ -251,18 +251,14 @@ class MetaInterval(CMetaInterval):
|
|||||||
CMetaInterval.setT(self, t)
|
CMetaInterval.setT(self, t)
|
||||||
|
|
||||||
def start(self, startT = 0.0, endT = -1.0, playRate = 1.0):
|
def start(self, startT = 0.0, endT = -1.0, playRate = 1.0):
|
||||||
if self.getDuration() == 0.0:
|
self.__updateIvals()
|
||||||
self.privInstant()
|
self.setupPlay(startT, endT, playRate, 0)
|
||||||
else:
|
self.__manager.addInterval(self)
|
||||||
self.setupPlay(startT, endT, playRate, 0)
|
|
||||||
self.__manager.addInterval(self)
|
|
||||||
|
|
||||||
def loop(self, startT = 0.0, endT = -1.0, playRate = 1.0):
|
def loop(self, startT = 0.0, endT = -1.0, playRate = 1.0):
|
||||||
if self.getDuration() == 0.0:
|
self.__updateIvals()
|
||||||
self.privInstant()
|
self.setupPlay(startT, endT, playRate, 1)
|
||||||
else:
|
self.__manager.addInterval(self)
|
||||||
self.setupPlay(startT, endT, playRate, 1)
|
|
||||||
self.__manager.addInterval(self)
|
|
||||||
|
|
||||||
def pause(self):
|
def pause(self):
|
||||||
if self.getState() == CInterval.SStarted:
|
if self.getState() == CInterval.SStarted:
|
||||||
@ -272,13 +268,11 @@ class MetaInterval(CMetaInterval):
|
|||||||
return self.getT()
|
return self.getT()
|
||||||
|
|
||||||
def resume(self, t0 = None):
|
def resume(self, t0 = None):
|
||||||
if self.getDuration() == 0.0:
|
self.__updateIvals()
|
||||||
self.privInstant()
|
if t0 != None:
|
||||||
else:
|
self.setT(t0)
|
||||||
if t0 != None:
|
self.setupResume()
|
||||||
self.setT(t0)
|
self.__manager.addInterval(self)
|
||||||
self.setupResume()
|
|
||||||
self.__manager.addInterval(self)
|
|
||||||
|
|
||||||
def finish(self):
|
def finish(self):
|
||||||
self.__updateIvals()
|
self.__updateIvals()
|
||||||
|
@ -91,12 +91,8 @@ set_t(double t) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void CInterval::
|
void CInterval::
|
||||||
start(double start_t, double end_t, double play_rate) {
|
start(double start_t, double end_t, double play_rate) {
|
||||||
if (get_duration() == 0.0) {
|
setup_play(start_t, end_t, play_rate, false);
|
||||||
priv_instant();
|
_manager->add_c_interval(this, false);
|
||||||
} else {
|
|
||||||
setup_play(start_t, end_t, play_rate, false);
|
|
||||||
_manager->add_c_interval(this, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -113,13 +109,8 @@ start(double start_t, double end_t, double play_rate) {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void CInterval::
|
void CInterval::
|
||||||
loop(double start_t, double end_t, double play_rate) {
|
loop(double start_t, double end_t, double play_rate) {
|
||||||
if (get_duration() == 0.0) {
|
setup_play(start_t, end_t, play_rate, true);
|
||||||
// A zero-length interval can't really loop.
|
_manager->add_c_interval(this, false);
|
||||||
priv_instant();
|
|
||||||
} else {
|
|
||||||
setup_play(start_t, end_t, play_rate, true);
|
|
||||||
_manager->add_c_interval(this, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -149,10 +140,8 @@ pause() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void CInterval::
|
void CInterval::
|
||||||
resume() {
|
resume() {
|
||||||
if (get_duration() != 0.0) {
|
setup_resume();
|
||||||
setup_resume();
|
_manager->add_c_interval(this, false);
|
||||||
_manager->add_c_interval(this, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -163,11 +152,9 @@ resume() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void CInterval::
|
void CInterval::
|
||||||
resume(double start_t) {
|
resume(double start_t) {
|
||||||
if (get_duration() != 0.0) {
|
set_t(start_t);
|
||||||
set_t(start_t);
|
setup_resume();
|
||||||
setup_resume();
|
_manager->add_c_interval(this, false);
|
||||||
_manager->add_c_interval(this, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user