فهرست منبع

do add zero-length intervals to ivalMgr

David Rose 23 سال پیش
والد
کامیت
b50b2f9fc3
2فایلهای تغییر یافته به همراه20 افزوده شده و 39 حذف شده
  1. 11 17
      direct/src/interval/MetaInterval.py
  2. 9 22
      direct/src/interval/cInterval.cxx

+ 11 - 17
direct/src/interval/MetaInterval.py

@@ -251,18 +251,14 @@ class MetaInterval(CMetaInterval):
         CMetaInterval.setT(self, t)
 
     def start(self, startT = 0.0, endT = -1.0, playRate = 1.0):
-        if self.getDuration() == 0.0:
-            self.privInstant()
-        else:
-            self.setupPlay(startT, endT, playRate, 0)
-            self.__manager.addInterval(self)
+        self.__updateIvals()
+        self.setupPlay(startT, endT, playRate, 0)
+        self.__manager.addInterval(self)
 
     def loop(self, startT = 0.0, endT = -1.0, playRate = 1.0):
-        if self.getDuration() == 0.0:
-            self.privInstant()
-        else:
-            self.setupPlay(startT, endT, playRate, 1)
-            self.__manager.addInterval(self)
+        self.__updateIvals()
+        self.setupPlay(startT, endT, playRate, 1)
+        self.__manager.addInterval(self)
 
     def pause(self):
         if self.getState() == CInterval.SStarted:
@@ -272,13 +268,11 @@ class MetaInterval(CMetaInterval):
         return self.getT()
 
     def resume(self, t0 = None):
-        if self.getDuration() == 0.0:
-            self.privInstant()
-        else:
-            if t0 != None:
-                self.setT(t0)
-            self.setupResume()
-            self.__manager.addInterval(self)
+        self.__updateIvals()
+        if t0 != None:
+            self.setT(t0)
+        self.setupResume()
+        self.__manager.addInterval(self)
         
     def finish(self):
         self.__updateIvals()

+ 9 - 22
direct/src/interval/cInterval.cxx

@@ -91,12 +91,8 @@ set_t(double t) {
 ////////////////////////////////////////////////////////////////////
 void CInterval::
 start(double start_t, double end_t, double play_rate) {
-  if (get_duration() == 0.0) {
-    priv_instant();
-  } else {
-    setup_play(start_t, end_t, play_rate, false);
-    _manager->add_c_interval(this, false);
-  }
+  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::
 loop(double start_t, double end_t, double play_rate) {
-  if (get_duration() == 0.0) {
-    // A zero-length interval can't really loop.
-    priv_instant();
-  } else {
-    setup_play(start_t, end_t, play_rate, true);
-    _manager->add_c_interval(this, false);
-  }
+  setup_play(start_t, end_t, play_rate, true);
+  _manager->add_c_interval(this, false);
 }
 
 ////////////////////////////////////////////////////////////////////
@@ -149,10 +140,8 @@ pause() {
 ////////////////////////////////////////////////////////////////////
 void CInterval::
 resume() {
-  if (get_duration() != 0.0) {
-    setup_resume();
-    _manager->add_c_interval(this, false);
-  }
+  setup_resume();
+  _manager->add_c_interval(this, false);
 }
 
 ////////////////////////////////////////////////////////////////////
@@ -163,11 +152,9 @@ resume() {
 ////////////////////////////////////////////////////////////////////
 void CInterval::
 resume(double start_t) {
-  if (get_duration() != 0.0) {
-    set_t(start_t);
-    setup_resume();
-    _manager->add_c_interval(this, false);
-  }
+  set_t(start_t);
+  setup_resume();
+  _manager->add_c_interval(this, false);
 }
 
 ////////////////////////////////////////////////////////////////////