public void traverse(RegionTraverser t) { int len3 = m_component.size() / 3; for (int i = 0, k = 0; k < len3; k++) { t.found((int) m_component.get(i++), (int) m_component.get(i++), (int) m_component.get(i++)); } }
public void traverseInterruptible(RegionTraverser t) { int len3 = m_component.size() / 3; for (int i = 0, k = 0; k < len3; k++) { if (!t.foundInterruptible( (int) m_component.get(i++), (int) m_component.get(i++), (int) m_component.get(i++))) return; } }
/** * Checks whether a coordinate is in the region. * * @param vc The coordinate */ public boolean contains(VoxelCoordinate vc) { // TODO: untested and slow int len3 = m_component.size() / 3; for (int i = 0; i < len3; i = i + 3) { if (vc.getX() == m_component.get(i)) { if (vc.getY() == m_component.get(i + 1)) { if (vc.getZ() == m_component.get(i + 2)) { return true; } } } } return false; }
/** returns voxel coordinates */ public int[] getVoxelCoord(int index, int[] coord) { if (m_component == null) return coord; // // coordinates are triplets // index *= 3; if (index + 2 > m_component.size()) return coord; coord[0] = (int) m_component.get(index++); coord[1] = (int) m_component.get(index++); coord[2] = (int) m_component.get(index++); return coord; }