Mercurial > cortex
diff org/touch.org @ 273:c39b8b29a79e
fixed ambigous in-text function references
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Wed, 15 Feb 2012 06:56:47 -0700 |
parents | e6e0bb3057b2 |
children | 23aadf376e9d |
line wrap: on
line diff
1.1 --- a/org/touch.org Wed Feb 15 01:36:16 2012 -0700 1.2 +++ b/org/touch.org Wed Feb 15 06:56:47 2012 -0700 1.3 @@ -85,19 +85,19 @@ 1.4 physics collision detection to gather tactile data. 1.5 1.6 Extracting the meta-data has already been described. The third step, 1.7 -physics collision detection, is handled in =(touch-kernel)=. 1.8 +physics collision detection, is handled in =touch-kernel=. 1.9 Translating the positions and orientations of the feelers from the 1.10 UV-map to world-space is itself a three-step process. 1.11 1.12 - Find the triangles which make up the mesh in pixel-space and in 1.13 - world-space. =(triangles)= =(pixel-triangles)=. 1.14 + world-space. =triangles= =pixel-triangles=. 1.15 1.16 - Find the coordinates of each feeler in world-space. These are the 1.17 - origins of the feelers. =(feeler-origins)=. 1.18 + origins of the feelers. =feeler-origins=. 1.19 1.20 - Calculate the normals of the triangles in world space, and add 1.21 them to each of the origins of the feelers. These are the 1.22 - normalized coordinates of the tips of the feelers. =(feeler-tips)=. 1.23 + normalized coordinates of the tips of the feelers. =feeler-tips=. 1.24 1.25 * Triangle Math 1.26 ** Schrapnel Conversion Functions 1.27 @@ -123,8 +123,8 @@ 1.28 1.29 It is convienent to treat a =Triangle= as a vector of vectors, and a 1.30 =Vector2f= or =Vector3f= as vectors of floats. (->vector3f) and 1.31 -(->triangle) undo the operations of =(vector3f-seq)= and 1.32 -=(triangle-seq)=. If these classes implemented =Iterable= then =(seq)= 1.33 +(->triangle) undo the operations of =vector3f-seq= and 1.34 +=triangle-seq=. If these classes implemented =Iterable= then =seq= 1.35 would work on them automitacally. 1.36 1.37 ** Decomposing a 3D shape into Triangles 1.38 @@ -136,8 +136,8 @@ 1.39 A =Mesh= is composed of =Triangles=, and each =Triangle= has three 1.40 verticies which have coordinates in world space and UV space. 1.41 1.42 -Here, =(triangles)= gets all the world-space triangles which compose a 1.43 -mesh, while =(pixel-triangles)= gets those same triangles expressed in 1.44 +Here, =triangles= gets all the world-space triangles which compose a 1.45 +mesh, while =pixel-triangles= gets those same triangles expressed in 1.46 pixel coordinates (which are UV coordinates scaled to fit the height 1.47 and width of the UV image). 1.48 1.49 @@ -195,8 +195,8 @@ 1.50 #+end_src 1.51 ** The Affine Transform from one Triangle to Another 1.52 1.53 -=(pixel-triangles)= gives us the mesh triangles expressed in pixel 1.54 -coordinates and =(triangles)= gives us the mesh triangles expressed in 1.55 +=pixel-triangles= gives us the mesh triangles expressed in pixel 1.56 +coordinates and =triangles= gives us the mesh triangles expressed in 1.57 world coordinates. The tactile-sensor-profile gives the position of 1.58 each feeler in pixel-space. In order to convert pixel-space 1.59 coordinates into world-space coordinates we need something that takes 1.60 @@ -263,11 +263,11 @@ 1.61 For efficiency's sake I will divide the tactile-profile image into 1.62 small squares which inscribe each pixel-triangle, then extract the 1.63 points which lie inside the triangle and map them to 3D-space using 1.64 -=(triangle-transform)= above. To do this I need a function, 1.65 -=(convex-bounds)= which finds the smallest box which inscribes a 2D 1.66 +=triangle-transform= above. To do this I need a function, 1.67 +=convex-bounds= which finds the smallest box which inscribes a 2D 1.68 triangle. 1.69 1.70 -=(inside-triangle?)= determines whether a point is inside a triangle 1.71 +=inside-triangle?= determines whether a point is inside a triangle 1.72 in 2D pixel-space. 1.73 1.74 #+name: triangles-4 1.75 @@ -369,9 +369,9 @@ 1.76 #+end_src 1.77 * Simulated Touch 1.78 1.79 -=(touch-kernel)= generates functions to be called from within a 1.80 +=touch-kernel= generates functions to be called from within a 1.81 simulation that perform the necessary physics collisions to collect 1.82 -tactile data, and =(touch!)= recursively applies it to every node in 1.83 +tactile data, and =touch!= recursively applies it to every node in 1.84 the creature. 1.85 1.86 #+name: kernel