Pierre Smars, 2012
Source Code
man pages
doxygen: core library
doxygen: survey library
doxygen: structure library
Survey Project
Surveying
Home page
Geometry file manipulation
- view_pt: show point (x, y, z) files in a 3d window
- view_li: show line (x1, y1, z1, x2, y2, z2) files in a 3D window
- view_tri: show triangle files in a 3D window
- append_pt: append a set of point files
- append_li: append a set of line files
- append_tri: append a set of triangle files
- translate: translate point, line or triangle files
- rotate: rotate point, line or triangle files
- mirror: mirror point, line or triangle files
- orient: orient point, line or triangle files
- scale: scale point, line or triangle files
- extract: extract .pt files (x,y,z) from other .pt files or numbered pt files (i,x,y,z)
- interpolate: create a regular spaced list of point by linear interpolation
- bspline: form a new interpolated point file
- invert_pt: invert the order of the points in the file
- invert_tri: change the normal direction of a triangle file
- orient_tri:orient triangles in a triangle file with consistent normals
- decimate_tri: reduce the number of triangles in a triangle file
- smooth_tri: reduce the number of triangles in a triangle file
- resample_tri: reduce or increase the number of triangles in a triangle file
- maximum_tri: eliminate triangles for which one of the edges in longer than 'val'
- cut_pt: cut a point cloud using a plane
- cut_tri: cut triangle files using a plane defined by 3 points (produce contour lines or triangle mesh)
- project: project points, lines or triangle files on a plane
- project_cylinder: project a point, line or triangle file on a cylinder and unwrap it
- trioffset: create a triangle file with triangles from a 'x y z' file
- threshold: create a thresold 'x y z' file from a 'x y z' file
- trisize: calculate the minimum, maximum, average and standard deviation of the size of the triangles from a 'tri' file
- tridist: calculate the distance between the points of a point cloud and a triangle mesh
- average: find the centre of gravity of a point, line or triangle files
- pt2dat: convert 'x y z' file to a calipous 'dat' file
- pt2dxf: convert 'x y z' files to 'dxf' files
- pt2pt2: project 3D points to 2D points using a camera file
- pt2string: format a point cloud using a given pattern
- pt2tri: create a triangles' file from a 'x y z' file
- pt2tri_c: create a triangles' file from a 'x y z' file of the contour
- ptmsh: combine the coordinates of a point, line or triangle file with the mesh defined by a line or triangle file
- pt2xml: convert 'x y z' files to 'xml' files
- pt2vrml: convert 'x y z' files to 'vrml' files
- dxf_hatch: extract the hatch boundaries from a 'dxf' file
- li2dxf: create a 'dxf' file from a 'li' file
- li2string: format a line cloud using a given pattern
- tri2dxf: create a 'dxf' file from a 'tri' file
- tri2grid: create a 'vtk' grid file from a 'tri' file
- tri2ve: create a virterf 've' file from a 'tri' file
- tri2vrml: create a 'vrml' file from a 'tri' file
- tri2pov: create a POV-Ray file from a 'tri' file
- tri2stl: create a STL file from a 'tri' file
- tri2string: format a triangle cloud using a given pattern
- tri2vtk: create a 'vtk' file from a 'tri' file
- ve2tri: create a 'tri' file from a virterf 've' file
- dxf2pt: convert 'dxf' files to 'x y z' files
- dxf2li: convert 'dxf' files to 'x1 y1 z1 x2 y2 z2' files
- dxf2tri: convert 'dxf' files to triangle files
- ply2tri: convert an ply file ("Polygon File Format" or "Stanford Triangle Format") to a triangle file
- stl2dxf: converts a 'stl' file in a 'dxf' file
- stlb2stla: converts a binary 'stl' file to an ascii 'stl' file
- scal2vtk: converts the data contained in a scalar file to data which can be included in a vtk file
Shape fitting
- fit_circle : fit a circle to a point cloud
- fit_line : fit a line to a point cloud
- fit_plane : fit a plane to a point cloud
- fit_sphere: fit a sphere to a point cloud
Rib construction
- profile_flatten: flatten a profile on an average plane
- profile_normalise: flatten a profile on an average plane perpendicular to a path
- profile_edit: create interactively a new profile from a base profile and optional reference profiles
- profile_getorient3D: return the origin, x axis and y axis of a profile
- profile_setorient3D: orient a 2D profile in the 3D space (use the position of the origin and the orientation of the x and y axis in space)
- path_extrapolate: extend a path
- path_vertical_plane: return 3 points defining a vertical plane passing by a given point and perpendicular to a path
- path_trim: find the intersection between 2 paths and return the trimmed paths
- rib2tri: extrude profiles along a path
- rib0: extrude a profile (in 2D) along a path
- pt2rib: prepare data needed by the rib program
- rib2pt: extract the points from a rib.exe's data file
Photogrammetry
- radial: compute the radial distortion parameters of a camera using an image of a grid of circles
- unwarp: cancel the radial distorsion of an image file
- h_compute: compute the homography matrix H from a list of correspondances between 2D points of two images
- h_remap: transform an image using an homography
- p_compute: compute the projection matrix P of a camera from a list of 2D-3D correspondances
- project: project points, lines or triangle files on a plane
- camera: control a digital camera (tested with Nikon D200)
Image processing
- pixelpos: display images, extract pixel value for a point and send them to the standard output
- color_analyse: analyse the colors of a 'tiff' file in RGB space
- color_threshold: extract a color from a 'tiff' file
- tif23d: create a red/blue 3d 'tiff' file from two images
- tiff_cut: create a tiff file from a window on an other tiff file (camera file ready)
- luminance:create a random image of a given luminance (in pgm format)
- mtf: study the sharpness of an image, find the modulation transfer function (MTF) from a section through an image
- pt2im: draw 2D points on an image
Tcl scripts
- screen.tcl: interactive 3D window server
- navigation.tcl: viewing control of screen.tcl
- camera.tcl: control inteface of a digital camera
- tcr.tcl: control interface between a Leica total station and a 3D window server
- tcrdrive.tcl: server program controlling a Leica total station
- tcrout.tcl: download the data stored in a Leica total station
- log.tcl: server program to log information
- acad.tcl server accepting commands on a port and sending them to AutoCAD
Communication
- socket_in: (server) redirect data from a socket to standard input
- socket_out: (client) redirect standard output to a socket
Example of use
- camera.tcl interactively control a digital camera: take a picture from an object (a.jpg), averaging 20 photographs taken with different settings
- unwarp -k2=0.042 -s a.jpg a_u.jpg cancel the radial distorsion of image a.jpg
- tcrdrive.tcl 9000 | tee a_2d-3d.log start a server controlling a total station and save the output to a file
- pixelpos -xM 500 -yM 500 a.jpg | tee pixelpos.log | socket_out computer2 9000 show an image, interactively measure points on the image and find the 3D position of the point on the object sending a request to a total station connected to a computer called computer2
- p_compute -nl -ns -sp < a_2d-3d.log > a.cam compute the camera projection matrix of image a_u.jpg
- tcr.tcl interactively control a total station: measure points on the surface of a vaults and save the measurements in a file a.dxf
- dxf2pt -l web < a.dxf > a.pt extract the measured points from the layer 'web' of the dxf file
- project -px 1 -py 2 -pz 15 < a.pt | pt2tri > a_p.tri project the measured points on a suitable plane and mesh the point cloud
- ptmsh a.pt < a_p.tri | tee a.tri | view_tri -s create a model using the coordinates of the measured points and the mesh defined by a_p.tri and check the results
- resample_tri -f 300 < a.tri > a_r.tri create a new model with more triangles by non-linear interpolation
- cut_tri -l -n 40 -d 4 0 0 15 1 0 15 0 1 15 < a_r.tri | view_li -t a_r.tri -i a_u.jpg -c a.cam -s -m 4 produce the contour lines of a vault model (every 10 cm between 15m and 18m) and view those lines supperposed with the model of the vault textured with a photograph
Survey Project
Surveying
Home page