Projects >> JSpread >>4f8c8f7d5fd0afa32048d676ce6782d7766616bc

Chunk
Conflicting content
		int i;
	}

	/*
<<<<<<< HEAD
	 * �Q�‚�Range�I�u�W�F�N�g�������������ʂ�Ԃ��B
		for(i = 0; i < rangeList.size(); i++) {
			newList = sub(rangeList.get(i), r);
	 * ��������Range�I�u�W�F�N�g�́A�c�܂��͉��͈̔͂������ŁA�אڂ��邢�͏d�Ȃ��Ă��Ȃ���΂Ȃ�Ȃ��B
	 */
	public Range merge(Range r) {
		return merge(this, r);
	}

	public static Range merge(Range r1, Range r2) {
		assert(r1 != null);
		assert(r2 != null);
		if(r1.getTop() == r2.getTop() && r1.getBottom() == r2.getBottom()) {
			if(isOverlappedOrAdjacent(r1.getLeft(), r1.getRight(), r2.getLeft(), r2.getRight())) {
				return new Range(r1.getTop(),    Math.min(r1.getLeft(), r2.getLeft()),
								 r1.getBottom(), Math.max(r1.getRight(), r2.getRight()));
			}
		}
		if(r1.getLeft() == r2.getLeft() && r1.getRight() == r2.getRight()) {
			if(isOverlappedOrAdjacent(r1.getTop(), r1.getBottom(), r2.getTop(), r2.getBottom())) {
				return new Range(r1.getLeft(),  Math.min(r1.getTop(), r2.getTop()),
								 r1.getRight(), Math.max(r1.getBottom(), r2.getBottom()));
			}
		}
		return null;
	}

	public static ArrayList merge(ArrayList rangeList, Range r) {
		if(rangeList == null) {
			rangeList = new ArrayList();
		}
		if(r != null) {
			if(rangeList.size() == 0) {
				rangeList.add(r);
			}
			else {
				Range new_r = null;
				int i;
				for(i = 0; i < rangeList.size(); i++) {
					new_r = merge(rangeList.get(i), r);
					if(new_r != null) {
						break;
					}
				}
				if(new_r != null) {
					rangeList.remove(i);
					return merge(rangeList, new_r); 
				}
			}
		}
		return rangeList;
	}

	/*
	 * �w�肵��Range�I�u�W�F�N�g�͈̔͂��폜�������ʁiRange�I�u�W�F�N�g�̃��X�g�j��Ԃ��B
	 * �폜�����̈掟��ŁA��������Range�I�u�W�F�N�g�́A�c�܂��͉��͈̔͂������ŁA�אڂ��邢�͏d�Ȃ��Ă��Ȃ���΂Ȃ�Ȃ��B
	 */
	public ArrayList sub(Range r) {
		return sub(this, r);
	}
	
	public static ArrayList sub(Range r1, Range r2) {
		assert(r1 != null);
		assert(r2 != null);
		ArrayList rslt = new ArrayList();
		if(!isOverlapped(r1.getTop(), r1.getBottom(), r2.getTop(), r2.getBottom())) {
			rslt.add(r1);
			return rslt;
		}
		if(!isOverlapped(r1.getLeft(), r1.getRight(), r2.getLeft(), r2.getRight())) {
			rslt.add(r1);
			return rslt;
		}

		int[] x = new int[6];
		int[] y = new int[6];
		x[0] = r1.getLeft();
		x[1] = r2.getLeft()-1;
		x[2] = r2.getLeft();
		x[3] = r2.getRight();
		x[4] = r2.getRight()+1;
		x[5] = r1.getRight();
		y[0] = r1.getTop();
		y[1] = r2.getTop()-1;
		y[2] = r2.getTop();
		y[3] = r2.getBottom();
		y[4] = r2.getBottom()+1;
		y[5] = r1.getBottom();
		for(int i = 0; i < 3; i++) {
			for(int j = 0; j < 3; j++) {
				if(i != 1 || j != 1) {
					int left   = x[i*2];
					int right  = x[i*2+1];
					int top    = y[i*2];
					int bottom = y[i*2+1];
					if(left <= right && top <= bottom) {
						merge(rslt, new Range(top, left, right, bottom));
					}
				}
			}
		}
		return rslt;
	}

	public static ArrayList sub(ArrayList rangeList, Range r) {
		ArrayList rslt = new ArrayList();
		ArrayList newList;
			for(int j = 0; j < newList.size(); j++) {
				rslt = merge(rslt, newList.get(j));
=======
	public boolean isMergeable(Range r) {
		if(getTop() == r.getTop() && getBottom() == r.getBottom()) {
			if(isIntersected(getLeft(), getRight(), r.getLeft(), r.getRight())) {
				return true;
			}
		}
		if(getLeft() == r.getLeft() && getRight() == r.getRight()) {
			if(isIntersected(getTop(), getBottom(), r.getTop(), r.getBottom())) {
				return true;
			}
		}
		return false;
	}
	*/
	
	public Range merge(Range r) {
		if(getTop() == r.getTop() && getBottom() == r.getBottom()) {
			if(isOverlappedOrAdjacent(getLeft(), getRight(), r.getLeft(), r.getRight())) {
				return new Range(getTop(),    Math.min(getLeft(), r.getLeft()),
								 getBottom(), Math.max(getRight(), r.getRight()));
			}
		}
		if(getLeft() == r.getLeft() && getRight() == r.getRight()) {
			if(isOverlappedOrAdjacent(getTop(), getBottom(), r.getTop(), r.getBottom())) {
				return new Range(getLeft(),  Math.min(getTop(), r.getTop()),
						         getRight(), Math.max(getBottom(), r.getBottom()));
			}
		}
		return null;
	}

	public ArrayList sub(Range r) {
		ArrayList rslt = new ArrayList();
		if(!isOverlapped(getTop(), getBottom(), r.getTop(), r.getBottom())) {
			rslt.add(this);
			return rslt;
		}
		if(!isOverlapped(getLeft(), getRight(), r.getLeft(), r.getRight())) {
			rslt.add(this);
			return rslt;
		}

		int[][] lrtb = new int[3][4];
		lrtb[0][0] = getLeft();
		lrtb[0][1] = r.getLeft()-1;
		lrtb[1][0] = r.getLeft();
		lrtb[1][1] = r.getRight();
		lrtb[2][0] = r.getRight()+1;
		lrtb[2][1] = getRight();
		lrtb[0][2] = getTop();
		lrtb[0][3] = r.getTop()-1;
		lrtb[1][2] = r.getTop();
		lrtb[1][3] = r.getBottom();
		lrtb[2][2] = r.getBottom()+1;
		lrtb[2][3] = getBottom();
		for(int i = 0; i < 3; i++) {
			int left   = lrtb[i][0];
			int right  = lrtb[i][1];
			int top    = lrtb[i][2];
			int bottom = lrtb[i][3];
			if(left <= right && top <= bottom) {
				rslt.add(new Range(top, left, right, bottom));
>>>>>>> 67a1fb49e2f2fdee75ee75b9c4ddec2fdb6cecfc
			}
		}
		return rslt;
Solution content
	}

	/*
	 * �Q�‚�Range�I�u�W�F�N�g�������������ʂ�Ԃ��B
	 * ��������Range�I�u�W�F�N�g�́A�c�܂��͉��͈̔͂������ŁA�אڂ��邢�͏d�Ȃ��Ă��Ȃ���΂Ȃ�Ȃ��B
	 */
	public Range merge(Range r) {
		return merge(this, r);
	}

	public static Range merge(Range r1, Range r2) {
		assert(r1 != null);
		assert(r2 != null);
		if(r1.getTop() == r2.getTop() && r1.getBottom() == r2.getBottom()) {
			if(isOverlappedOrAdjacent(r1.getLeft(), r1.getRight(), r2.getLeft(), r2.getRight())) {
				return new Range(r1.getTop(),    Math.min(r1.getLeft(), r2.getLeft()),
								 r1.getBottom(), Math.max(r1.getRight(), r2.getRight()));
			}
		}
		if(r1.getLeft() == r2.getLeft() && r1.getRight() == r2.getRight()) {
			if(isOverlappedOrAdjacent(r1.getTop(), r1.getBottom(), r2.getTop(), r2.getBottom())) {
				return new Range(r1.getLeft(),  Math.min(r1.getTop(), r2.getTop()),
								 r1.getRight(), Math.max(r1.getBottom(), r2.getBottom()));
			}
		}
		return null;
	}

	public static ArrayList merge(ArrayList rangeList, Range r) {
		if(rangeList == null) {
			rangeList = new ArrayList();
		}
		if(r != null) {
			if(rangeList.size() == 0) {
				rangeList.add(r);
			}
			else {
				Range new_r = null;
				int i;
				for(i = 0; i < rangeList.size(); i++) {
					new_r = merge(rangeList.get(i), r);
					if(new_r != null) {
						break;
					}
				}
				if(new_r != null) {
					rangeList.remove(i);
					return merge(rangeList, new_r); 
				}
			}
		}
		return rangeList;
	}

	/*
	 * �w�肵��Range�I�u�W�F�N�g�͈̔͂��폜�������ʁiRange�I�u�W�F�N�g�̃��X�g�j��Ԃ��B
	 * �폜�����̈掟��ŁA��������Range�I�u�W�F�N�g�́A�c�܂��͉��͈̔͂������ŁA�אڂ��邢�͏d�Ȃ��Ă��Ȃ���΂Ȃ�Ȃ��B
	 */
	public ArrayList sub(Range r) {
		return sub(this, r);
	}
	
	public static ArrayList sub(Range r1, Range r2) {
		assert(r1 != null);
		assert(r2 != null);
		ArrayList rslt = new ArrayList();
		if(!isOverlapped(r1.getTop(), r1.getBottom(), r2.getTop(), r2.getBottom())) {
			rslt.add(r1);
			return rslt;
		}
		if(!isOverlapped(r1.getLeft(), r1.getRight(), r2.getLeft(), r2.getRight())) {
			rslt.add(r1);
			return rslt;
		}

		int[] x = new int[6];
		int[] y = new int[6];
		x[0] = r1.getLeft();
		x[1] = r2.getLeft()-1;
		x[2] = r2.getLeft();
		x[3] = r2.getRight();
		x[4] = r2.getRight()+1;
		x[5] = r1.getRight();
		y[0] = r1.getTop();
		y[1] = r2.getTop()-1;
		y[2] = r2.getTop();
		y[3] = r2.getBottom();
		y[4] = r2.getBottom()+1;
		y[5] = r1.getBottom();
		for(int i = 0; i < 3; i++) {
			for(int j = 0; j < 3; j++) {
				if(i != 1 || j != 1) {
					int left   = x[i*2];
					int right  = x[i*2+1];
					int top    = y[i*2];
					int bottom = y[i*2+1];
					if(left <= right && top <= bottom) {
						merge(rslt, new Range(top, left, right, bottom));
					}
				}
			}
		}
		return rslt;
	}

	public static ArrayList sub(ArrayList rangeList, Range r) {
		ArrayList rslt = new ArrayList();
		ArrayList newList;
		int i;
		for(i = 0; i < rangeList.size(); i++) {
			newList = sub(rangeList.get(i), r);
			for(int j = 0; j < newList.size(); j++) {
				rslt = merge(rslt, newList.get(j));
			}
		}
		return rslt;
File
Range.java
Developer's decision
Version 1
Kind of conflict
Array access
Comment
For statement
If statement
Method declaration
Method invocation
Method signature
Variable
Chunk
Conflicting content
		}
		return rslt;
	}
<<<<<<< HEAD

=======
>>>>>>> 67a1fb49e2f2fdee75ee75b9c4ddec2fdb6cecfc
}
Solution content
		}
		return rslt;
	}
}
File
Range.java
Developer's decision
Version 1
Kind of conflict
Blank