yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Quintiq file version 2.0
#parent: #root
Method CalculateToAndFrom () declarative
{
  Description: 'Set the to and from position of lane leg edge'
  TextBody:
  [*
    // ju jinn Apr-15-2014 (created)
    
    originsp := this.OriginStockingPoint();
    destinationsp := this.DestinationStockingPoint();
    originunit := this.OriginUnit();
    destinationunit := this.DestinationUnit();
    
    orix := guard( originsp.X(), 0 );
    oriy := guard( originsp.Y(), 0 );
    
    destx := guard( destinationsp.X(), 0 );
    desty := guard( destinationsp.Y(), 0 );
    
    this.FromX( guard( originunit.X(), orix ) );
    this.FromY( guard( originunit.Y(), oriy ) );
    this.ToX( guard( destinationunit.X(), destx ) );
    this.ToY( guard( destinationunit.Y(), desty ) );
    
    issamelevel := guard( originsp.StockingPoint_MP().Unit() = destinationsp.StockingPoint_MP().Unit(), true );
    if( issamelevel )
    {
      this.FromX( orix );
      this.FromY( oriy );
      this.ToX( destx );
      this.ToY( desty );
    }
  *]
}