00001 //---------------------------------------------------------------------------- 00002 /** @file SgNodeUtil.h */ 00003 //---------------------------------------------------------------------------- 00004 00005 #ifndef SG_NODEUTIL_H 00006 #define SG_NODEUTIL_H 00007 00008 class SgNode; 00009 class SgTimeRecord; 00010 00011 //---------------------------------------------------------------------------- 00012 00013 namespace SgNodeUtil 00014 { 00015 /** Get number of moves since root or last node with setup properties. */ 00016 int GetMoveNumber(const SgNode* node); 00017 00018 /** Update the current time information corresponding to a node. 00019 Visits all nodes in the path from root to the target node and applies 00020 the following properties to the time record: SG_PROP_LOSE_TIME, 00021 SG_PROP_OT_NU_MOVES, SG_PROP_OT_NU_MOVES, SG_PROP_OT_PERIOD, 00022 SG_PROP_OVERHEAD. 00023 @todo Initial time settings property @c TM is not handled, 00024 SgTimeRecord does presently not support main time (without a finite 00025 number of moves left) 00026 */ 00027 void UpdateTime(SgTimeRecord& time, const SgNode* node); 00028 } 00029 00030 //---------------------------------------------------------------------------- 00031 00032 #endif // SG_NODEUTIL_H