public static bool IsLocatedOnBlockBeginOrEnd(KP_V kp, int TrackID, GENERIC_SYSTEM_PARAMETERS.BLOCKS.BLOCK node) { if (TrackID == node.Track_ID && (kp.KpRealValue == node.Kp_Begin || kp.KpRealValue == node.Kp_End) ) { return(true); } return(false); }
public static bool IsLocatedOnBlock(KP_V kp, int TrackID, GENERIC_SYSTEM_PARAMETERS.BLOCKS.BLOCK node) { if (TrackID == node.Track_ID && Math.Abs(node.Kp_Begin - node.Kp_End) == Math.Abs(node.Kp_Begin - kp.KpRealValue) + Math.Abs(node.Kp_End - kp.KpRealValue) ) { return(true); } return(false); }
public static GENERIC_SYSTEM_PARAMETERS.BLOCKS.BLOCK GetLocatedBlock(KP_V kp, int TrackID, List <GENERIC_SYSTEM_PARAMETERS.BLOCKS.BLOCK> blockList) { foreach (GENERIC_SYSTEM_PARAMETERS.BLOCKS.BLOCK node in blockList) { if (true == IsLocatedOnBlock(kp, TrackID, node)) { return(node); } } return(null); }
public static GENERIC_SYSTEM_PARAMETERS.BLOCKS.BLOCK GetLocatedBlock(KP_V kp, int TrackID) { foreach (GENERIC_SYSTEM_PARAMETERS.BLOCKS.BLOCK node in SyDB.GetInstance().blockInfoList) { if (TrackID == node.Track_ID && Math.Abs(node.Kp_Begin - node.Kp_End) == Math.Abs(node.Kp_Begin - kp.KpRealValue) + Math.Abs(node.Kp_End - kp.KpRealValue) ) { return(node); } } return(null); }
public static int GetSDDBLenOfLocatedBlock(KP_V p, GENERIC_SYSTEM_PARAMETERS.BLOCKS.BLOCK locatedBlk, string dir) { int length = 0; if (dir == Sys.Down) { length = Math.Abs(p.KpRealValue - locatedBlk.Kp_Begin); } else if (dir == Sys.Up) { length = Math.Abs(locatedBlk.Kp_End - p.KpRealValue); } else { throw new Exception($"Invalid dir {dir}"); } return(length); }