|
@@ -209,8 +209,18 @@ namespace OTSDataType
|
|
|
var leftparts = this.GetSideParticlesByOverlap(SORTING_DIRECTION.LEFT, overlap);
|
|
|
if (leftField != null && leftField.measureSequence < this.measureSequence)
|
|
|
{
|
|
|
-
|
|
|
var rightsideparts = leftField.GetSideParticlesByOverlap(SORTING_DIRECTION.RIGHT, overlap);
|
|
|
+ if (leftField.upField != null && leftField.upField.measureSequence < this.measureSequence)//include the left up corner parts
|
|
|
+ {
|
|
|
+ var leftupParts = leftField.upField.GetSideParticlesByOverlap(SORTING_DIRECTION.RIGHT, overlap);
|
|
|
+ rightsideparts.AddRange(leftupParts);
|
|
|
+ }
|
|
|
+ if (leftField.downField != null && leftField.downField.measureSequence < this.measureSequence)//include the left down corner parts
|
|
|
+ {
|
|
|
+ var leftdownParts = leftField.downField.GetSideParticlesByOverlap(SORTING_DIRECTION.RIGHT, overlap);
|
|
|
+ rightsideparts.AddRange(leftdownParts);
|
|
|
+ }
|
|
|
+
|
|
|
log.Info("left side particles num:" + leftparts.Count.ToString());
|
|
|
foreach (var p in leftparts)
|
|
|
{
|
|
@@ -251,6 +261,8 @@ namespace OTSDataType
|
|
|
{
|
|
|
|
|
|
var othersideparts = upField.GetSideParticlesByOverlap(SORTING_DIRECTION.DOWN, overlap);
|
|
|
+
|
|
|
+
|
|
|
log.Info("up side particles num:" + upparts.Count.ToString());
|
|
|
foreach (var p in upparts)
|
|
|
{
|
|
@@ -293,9 +305,19 @@ namespace OTSDataType
|
|
|
var rightparts = this.GetSideParticlesByOverlap(SORTING_DIRECTION.RIGHT, overlap);
|
|
|
if (rightField != null && rightField.measureSequence < this.measureSequence)
|
|
|
{
|
|
|
-
|
|
|
log.Info("right side particles num:" + rightparts.Count.ToString());
|
|
|
var othersideparts = rightField.GetSideParticlesByOverlap(SORTING_DIRECTION.LEFT, overlap);
|
|
|
+ if (rightField.upField != null && rightField.upField.measureSequence < this.measureSequence)// right up corner parts
|
|
|
+ {
|
|
|
+ var rightupParts = rightField.upField.GetSideParticlesByOverlap(SORTING_DIRECTION.LEFT, overlap);
|
|
|
+ othersideparts.AddRange(rightupParts);
|
|
|
+ }
|
|
|
+ if (rightField.downField != null && leftField.downField.measureSequence < this.measureSequence)// rightdown corner parts
|
|
|
+ {
|
|
|
+ var rightdownParts = leftField.downField.GetSideParticlesByOverlap(SORTING_DIRECTION.LEFT, overlap);
|
|
|
+ othersideparts.AddRange(rightdownParts);
|
|
|
+ }
|
|
|
+
|
|
|
foreach (var p in rightparts)
|
|
|
{
|
|
|
int pleft = 0, pright = 0, ptop = 0, pbottom = 0;
|