diff --git a/CodeR/01_test_data_structure.r b/CodeR/01_test_data_structure.r
index 2e9986b27488912da264bf76e2cc6392f0f305da..cf61e75a5491aeb8056e553e68ab6f7889a185a3 100644
--- a/CodeR/01_test_data_structure.r
+++ b/CodeR/01_test_data_structure.r
@@ -1,6 +1,6 @@
 rm(list=ls())
 
-## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 library("rlas")
 library("rgl")
 library("stringr")
@@ -8,10 +8,8 @@ library("VoxR")
 library("data.table")
 
 ## function to scale X, Y and Z
-getwd()
-
-load("/home/nica/Documents/Helge_Tower_POV/DataR/pan3d.RData")
-objects()
+## load("/home/nica/Documents/Helge_Tower_POV/DataR/pan3d.RData")
+load("/home/pepito/Documents/holger_tower_pov/DataR/pan3d.RData")
 
 ## this function scale points coordinate
 ## between 0 and  (max-min) values
@@ -20,41 +18,44 @@ Scale <- function(Vector){
      (max(Vector)-min(Vector)))*
         (max(Vector)-min(Vector))}
 
-## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ## plot data - full path
-DataPaths <- list.files("/home/nica/Documents/Helge_Tower_POV/DataR",
-                        pattern = "plot_",
+DataPaths <- list.files(paste0("/home/pepito/Documents",
+                               "/holger_tower_pov/DataR"),
+                        ## pattern = "plot_",
+                        pattern = "Plot_",
                         full.names = T)
 
-## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ## Scale the data to imrpove visualization
 Data <- read.las(DataPaths)
-gc()
+## Data <- Data[sample(1:nrow(Data), nrow(Data)*0.20), ]
+Data <- Data[Classification %in% c(3, 4, 5), ]
 
 Data[, X := Scale(Data$X)]
 Data[, Y := Scale(Data$Y)]
 Data[, Z := Scale(Data$Z)]
 
-## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ## center  the data around 0
 Data[, X := X-mean(X)]
 Data[, Y := Y-mean(Y)]
 
-plot3d(Data, aspect = "iso", size = 0.2)
-## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-## Create an satificial tower. Just the corners
-CornA <- data.table(X = 1, Y = 1, Z = 40) 
-CornB <- data.table(X = 1, Y = -1, Z = 40)
-CornC <- data.table(X = -1, Y = 1, Z = 40)
-CornD <- data.table(X = -1, Y = -1, Z = 40)
-
-spheres3d(CornA, radius = 0.3, col = "yellow")
-spheres3d(CornB, radius = 0.3, col = "blue")
-spheres3d(CornC, radius = 0.3, col = "red")
-spheres3d(CornD, radius = 0.3, col = "green")
-
-## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-## center  the data around cornerX
+## plot3d(Data, aspect = "iso", size = 0.5)
+## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+## Create an artificial tower. Just the corners
+CornA <- data.table(X = 3, Y = 3, Z = 50) 
+CornB <- data.table(X = 3, Y = -3, Z = 50)
+CornC <- data.table(X = -3, Y = 3, Z = 50)
+CornD <- data.table(X = -3, Y = -3, Z = 50)
+
+spheres3d(CornA, radius = 1, col = "yellow")
+spheres3d(CornB, radius = 1, col = "blue")
+spheres3d(CornC, radius = 1, col = "red")
+spheres3d(CornD, radius = 1, col = "green")
+
+## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+## center  the data around corner X
 Data2 <- copy(Data)
 Data2[, X := X - CornA$X]
 Data2[, Y := Y - CornA$Y]
@@ -63,34 +64,81 @@ CornA2 <- copy(CornA)
 CornA2[, X := X - CornA$X]
 CornA2[, Y := Y - CornA$Y]
 
-plot3d(Data2, aspect = "iso", size = 0.2, col= "red")
-spheres3d(c(0, 0, 40), radius = 0.3, col = "yellow")
+## plot3d(Data2, aspect = "iso", size = 0.2, col= "red")
+## spheres3d(c(0, 0, 40), radius = 1, col = "yellow")
 
 ## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ## compute angles on the plane.
-## It should be from >180 dgrees to <90 dgrees.
+## points  should be selected from >180 dgrees
+## to <90 dgrees.
 
 ## you must voxelize the point cloud first.
 Data2 <- vox(Data2, 0.02)
-plot3d(Data2, aspect = "iso", size = 0.2, col= "red")
-spheres3d(c(0, 0, 40), radius = 0.3, col = "yellow")
-
-## Data2[, npts := NULL]
-## Data2[, angle_x := VoxR::axis_angle(Data2, axis = "X",
-##                                     project = "xy")]
-
-plot3d(Data2[angle_x %inrange% list(0, 180), ], aspect = "iso", size = 0.7,
-       col= "black", add = T)
-plot3d(Data2[angle_x %inrange% list(270.1, 359.9), ], aspect = "iso", size = 0.7,
-       col= "black", add = T)
-
-
-
-spheres3d(c(0, 0, 40), radius = 0.3, col = "yellow")
-
-summary(Data2$angle_x)
-
-spheres3d(c(0, 0, 40), radius = 0.3, col = "yellow")
-
+## plot3d(Data2, aspect = "iso", size = 0.2, col= "red")
+## spheres3d(c(0, 0, 40), radius = 1, col = "yellow")
+
+Data2[, npts := NULL]
+Data2[, angle_x := VoxR::axis_angle(Data2, axis = "X",
+                                    project = "xy")]
+
+## plot3d(Data2[angle_x %inrange% list(0, 180), ], aspect = "iso", size = 0.7,
+##        col= "black")
+## plot3d(Data2[angle_x %inrange% list(270.1, 359.9), ], aspect = "iso", size = 0.7,
+##        col= "black", add = T)
+Data3 <- Data2[angle_x %inrange% list(0, 180), ]
+Data2 <- rbind(Data3, Data2[angle_x %inrange% list(270.1, 359.9), ])
+rm(Data3)
+gc()
 
+## plot3d(Data2, aspect = "iso", size = 0.2,
+##        col= "grey21")
+## spheres3d(c(0, 0, 40), radius = 1, col = "yellow")
 
+## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+## Compute angles around the Z axis
+Data2[, angle_x := NULL]
+
+Data2[, z := z - CornA2$Z]
+Data2[, angle_z := VoxR::axis_angle(Data2, axis = "Z")]
+Data2[, z := z+CornA2$Z]
+Data2[, angle_z := angle_z - 90]
+Data2[, angle_x := VoxR::axis_angle(Data2, axis = "X",
+                                    project = "xy")]
+
+
+## FOV
+VerticalOpen <- 28
+## VerticalOpen <- 10
+OrizontalOpen <- 40
+
+## 
+VertcalAngle <- 50
+HorizAngle <- 90
+
+plot3d(Data2, aspect = "iso", size = 0.2,
+       col= "grey21")
+spheres3d(c(0, 0, 40), radius = 1, col = "yellow")
+
+plot3d(Data2[angle_z < (90-VertcalAngle) + VerticalOpen &
+             angle_z > ((90-VertcalAngle)) &
+             angle_x < HorizAngle + OrizontalOpen &
+             angle_x > HorizAngle, ],
+       aspect = "iso", size = 0.7,
+       col= "red", add = T)
+pan3d(2)
+
+## @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+plot3d(Data2, aspect = "iso", size = 0.2,
+       col= "grey21")
+spheres3d(c(0, 0, 40), radius = 0.5, col = "yellow")
+
+for(HorizAngle in c(seq(0, 179.9, 10), seq(270.1, 360, 10))){    
+    plot3d(Data2[angle_z < (90-VertcalAngle) + VerticalOpen &
+                 angle_z > ((90-VertcalAngle)) &
+                 angle_x < HorizAngle + OrizontalOpen &
+                 angle_x > HorizAngle, ],
+           aspect = "iso", size = 0.7,
+           col= "red", add = T)
+    Sys.sleep(0.3)
+    rgl.pop()
+}