소스 검색

add update_to_now

cxgeorge 23 년 전
부모
커밋
86bda11d3b
2개의 변경된 파일16개의 추가작업 그리고 1개의 파일을 삭제
  1. 15 1
      panda/src/char/character.cxx
  2. 1 0
      panda/src/char/character.h

+ 15 - 1
panda/src/char/character.cxx

@@ -147,6 +147,21 @@ cull_callback(CullTraverser *, CullTraverserData &) {
   // the view frustum.  We may need a better way to do this
   // optimization later, to handle characters that might animate
   // themselves in front of the view frustum.
+  update_to_now();
+  return true;
+}
+
+////////////////////////////////////////////////////////////////////
+//     Function: Character::update_to_now
+//       Access: Public
+//  Description: Advances the character's frame to the current time,
+//               and then calls update().  This can be used by show
+//               code to force an update of the character's position
+//               to the current frame, regardless of whether the
+//               character is currently onscreen and animating.
+////////////////////////////////////////////////////////////////////
+void Character::
+update_to_now() {
   double now = ClockObject::get_global_clock()->get_frame_time();
   get_bundle()->advance_time(now);
 
@@ -155,7 +170,6 @@ cull_callback(CullTraverser *, CullTraverserData &) {
   }
 
   update();
-  return true;
 }
 
 ////////////////////////////////////////////////////////////////////

+ 1 - 0
panda/src/char/character.h

@@ -61,6 +61,7 @@ PUBLISHED:
   INLINE void write_parts(ostream &out) const;
   INLINE void write_part_values(ostream &out) const;
 
+  void update_to_now();
   void update();
 
 private: