Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Separate() {
- iterations++;
- List<Vector3> vec = new List<Vector3>();
- for (int i = 0; i < rooms.Count; i++) {
- int n = 0;
- vec.Add(new Vector3());
- for (int j = 0; j < rooms.Count; j++) {
- float dist = Vector3.Distance(rooms[i].position, rooms[j].position);
- if (dist > 0 && dist < neighbourDistance) {
- vec[i] += (rooms[j].position - rooms[i].position);
- n++;
- }
- }
- if (n > 0) {
- Vector3 v = vec[i];
- v.x /= n;
- v.y /= n;
- v.z /= n;
- vec[i] = v;
- vec[i].Normalize();
- }
- }
- for (int i = 0; i < rooms.Count; i++) {
- Vector3 p = rooms[i].position;
- p -= vec[i];
- rooms[i].position = p;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement