\section{$@%Y%/%H%k!&9TNs1i;;5!G=(J}

\subsection{$@%Y%/%H%k!&%^%H%j%/%91i;;4X?t(J}

Commonlisp $@$G$O!"(J1$@<!85$NG[Ns$,%Y%/%?$G$"$k$HDj5A$5$l$F$$$k!#(J
euslisp $@$G$O!"%Y%/%?$O(Jfillpointer $@$r(Jdisplace,adjust $@=PMh$J$$C1=c(J
$@%Y%/%?$r$5$9!#$5$i$K!"$3$N>O$G=R$Y$k%Y%/%?$OMWAG$,IbF0>.?tCM$K(J
$@8BDj$5$l$?%U%m!<%H%Y%/%?$G$"$k!#%^%H%j%/%9$O!"MWAG$,IbF0>.?t$G(J
$@$"$k$h$&$J(J2$@<!85G[Ns$G$"$k!#(J

\begin{description}
\item[float-vector-p {\em obj}]\hfill\\
obj $@$,%U%m!<%H%Y%/%?$J$i(Jt $@$rJV$9!#$5$b$J$1$l$P!"(Jnil $@$rJV$9!#(J
\item[v+ {\em fvec1 \&optional fvec2 result-vec}]\hfill\\
fvec1 $@$H(J fvec2 $@$NOB%Y%/%?$r7W;;$9$k!#(Jresult-vec $@$,$"$l$P(J
$@7k2L$r(J result-vec $@$KF~$l!"$J$1$l$P?7$?$J%Y%/%?$r:n$k!#(J
\item[v- {\em fvec1 fvec2 \&optional result-vec}]\hfill\\
fvec1 $@$H(J fvec2 $@$N:9%Y%/%?$r7W;;$9$k!#(Jresult-vec $@$,$"$l$P(J
$@7k2L$r(J result-vec $@$KF~$l!"$J$1$l$P?7$?$J%Y%/%?$r:n$k!#(J
fvec2 $@$,M?$($i$l$J$+$C$?>l9g!"(Jfvec1 $@$NId9f$rH?E>$7$??7$?$J%Y%/%?$r:n$k!#(J
$@Id9f$rH?E>$7$?%Y%/%?$r?7$7$$%a%b%jNN0h$r>CHq$9$k$3$H$J$/(Jresult-vec $@$K(J
$@F~$l$?$$;~$O!"4X?t(Jscale $@$rMQ$$$F(J\verb+(scale -1.0 fvec1 fvec2)+ $@$H$9$k!#(J
\item[v. {\em fvec1 fvec2}]\hfill\\
fvec1 $@$H(J fvec2 $@$NFb@Q!#(J
\item[v* {\em fvec1 fvec2 \&optional result-vec}]\hfill\\
fvec1 $@$H(J fvec2 $@$N30@Q%Y%/%?$r7W;;$9$k!#(Jresult-vec $@$,$"$l$P(J
$@7k2L$r(J result-vec $@$KF~$l!"$J$1$l$P?7$?$J%Y%/%?$r:n$k!#(J
fvec1,fvec2 $@$O(J3$@<!85$G$J$1$l$P$J$i$J$$!#(J
\item[v.* {\em fvec1 fvec2 fvec3}]\hfill\\
$@%9%+%i!<;0=E@Q$r7W;;$9$k!#B($A!"(J
\begin{verbatim}
(v.* fvec1 fvec2 fvec3)=(v. fvec1 (v* fvec2 fvec3))
                       =(v. (v* fvec1 fvec2) fvec3)
\end{verbatim}
\item[v{\tt <} {\em fvec1 fvec2}]\hfill\\
$@$9$Y$F$NMWAG$K$D$$$F(J fvec1 $@$h$j(J fvec2 $@$NJ}$,>.$5$$$+Ey$7$1$l$P(Jt $@$r!"(J
$@$5$b$J$1$l$P(Jnil $@$rJV$9!#(J
\item[v{\tt >} {\em fvec1 fvec2}]\hfill\\
$@$9$Y$F$NMWAG$K$D$$$F(J fvec1 $@$h$j(J fvec2 $@$NJ}$,Bg$-$$$+Ey$7$1$l$P(Jt $@$r!"(J
$@$5$b$J$1$l$P(Jnil $@$rJV$9!#(J
\item[vmin {\em \&rest fvec}]\hfill\\
$@3FMWAG$,!"(Jfvec $@$N$&$A:G>.$NMWAG$+$i$J$k%Y%/%?$r:n@.$7$FJV$9!#(J
\item[vmax {\em \&rest fvec}]\hfill\\
$@3FMWAG$,!"(Jfvec $@$N$&$A:GBg$NMWAG$+$i$J$k%Y%/%?$r:n@.$7$FJV$9!#(J
\item[minimal-box {\em fvec-list minfvec maxfvec \&optional err}]\hfill\\
fvec-list $@$N(J vmin $@$r(J minfvec $@$K!"(Jvmax $@$r(J maxfvec $@$K$$$l$k!#(J
$@B($A!"(Jfvec-list $@$GM?$($i$l$?$9$Y$F$NE@$r4^$_!"(J
$@%(%C%8$,(J\ $x,y,z$\ $@<4$KJ?9U$G$"$k:G>.$ND>J}BN$ND:E@$rI=$90LCV%Y%/%?$N$&$A!"(J
$@:G$b86E@$K6a$$0LCV%Y%/%?$,(J minfvec $@$G!"(J
$@:G$b86E@$+$i1s$$0LCV%Y%/%?$,(J maxfvec $@$G$"$k!#(J
$@JV$9CM$O!"(Jminfvec $@$H(J maxfvec $@$H$N5wN%$G$"$k!#(J
$@IbF0>.?tE@(J err $@$,$"$l$P!"(Jminfvec $@$H(J maxfvec $@$H$N5wN%$N(J err $@G\$@$1D>J}BN$,(J
$@3HBg$5$l$k!#B($A!"(Jminfvec $@$H(J maxfvec dist $@$H$9$k$H!"(J
minfvec $@$O!"(J\verb+(v- minfvec (scale (* err dist) #f(1 1 1)))+$@$H$J$j!"(J
maxfvec $@$O!"(J\verb2(v+ maxfvec (scale\ (*\ err dist) #f(1 1 1)))2$@$H$J$k!#(J
\item[scale {\em number fvec \&optional result-vec}]\hfill\\
fvec $@$r(J number $@G\$7$?%Y%/%H%k$r7W;;$9$k!#(Jresult-vec $@$,$"$l$P!"(J
$@7k2L$r(J result-vec $@$KF~$l!"$J$1$l$P!"?7$?$J%Y%/%?$r:n$k!#(J
\item[norm {\em fvec}]\hfill\\
fvec $@$N%N%k%`$r7W;;$9$k!#(J
\item[distance {\em vec1 vec2}]\hfill\\
$@0LCV%Y%/%H%k(J vec1 $@$H(J vec2 $@$H$N5wN%$r7W;;$9$k!#(J
\item[normalize-vector {\em fvec \&optional result-vec}]\hfill\\
fvec $@$NC10L%Y%/%H%k$r7W;;$9$k!#(Jresult-vec $@$,$"$l$P(J
$@7k2L$r(J result-vec $@$KF~$l!"$J$1$l$P?7$?$J%Y%/%?$r:n$k!#(J
\item[float-vector {\em \&rest numbers}]\hfill\\
numbers $@$rMWAG$H$9$k%U%m!<%H%Y%/%?!<$r:n$k!#(Jcoerce $@$rMQ$$$F:n$k$3$H$b(J
$@2DG=$G$"$k!#(J\\
\verb+(apply float-vector '(1 2 3))=(coerce '(1 2 3) float-vector)+
\item[transform {\em mat fvec \&optional result-vec}]\hfill\\
fvec $@$r(J mat $@$K$h$C$FJQ49$7$?%Y%/%?$r7W;;$9$k!#(Jmat $@$O:8$+$i3]$1$k!#(J
result-vec $@$,$"$l$P!"7k2L$r(J result-vec $@$KF~$l!"$J$1$l$P!"?7$?$J%Y%/%?$r:n$k!#(J
\item[transform {\em fvec mat \&optional result-vec}]\hfill\\
fvec $@$r(J mat $@$K$h$C$FJQ49$7$?%Y%/%?$r7W;;$9$k!#(Jmat $@$O1&$+$i3]$1$k!#(J
result-vec $@$,$"$l$P!"7k2L$r(J result-vec $@$KF~$l!"$J$1$l$P!"?7$?$J%Y%/%?$r:n$k!#(J
\item[m* {\em mat1 mat2 \&optional result-mat}]\hfill\\
2$@$D$N%^%H%j%C%/%9$N3];;!#(Jresult-mat $@$,$"$l$P!"7k2L$r(J result-mat $@$KF~$l!"(J
$@$J$1$l$P!"?7$?$J%^%H%j%C%/%9$r:n$k!#(J
\item[rotate-vector {\em fvec theta axis \&optional result-vec}]\hfill\\
fvec $@$r(J theta $@%i%8%"%s$@$1(J axis $@$N<~$j$r2sE>$5$;$?%Y%/%H%k$r7W;;$9$k!#(J
result-vec $@$,$"$l$P!"7k2L$r(J result-vec $@$KF~$l!"$J$1$l$P!"?7$?$J%Y%/%?$r:n$k!#(J
axis $@$O!"(J:x :y :z $@$"$k$$$O(J 0 1 2 $@$N$$$:$l$+!#(J
$@G$0U<42s$j$N2sE>$r9T$&$H$-$O(Jrotation $@$K$h$C$F2sE>%^%H%j%/%9$r:n$j!"(J
transform$@$rMQ$$$k!#(J
\item[rotate-matrix {\em mat theta axis \&optional world-p result-mat}]\hfill\\
mat $@$r(J theta $@%i%8%"%s$@$1(J axis $@$N<~$j$r2sE>$5$;$?%^%H%j%C%/%9$r7W;;$9$k!#(J
result-mat $@$,$"$l$P!"7k2L$r(J result-mat $@$KF~$l!"$J$1$l$P!"?7$?$J%^%H%j%C%/%9$r(J
$@:n$k!#(Jaxis $@$O!"(Jworld-p $@$,(Jt $@$J$i(J $@%o!<%k%I:BI87O!"(Jnil $@$J$i%m!<%+%k:BI87O$K(J
$@$*$1$k<4$G!"(J:x :y :z $@$"$k$$$O(J 0 1 2 $@$N$$$:$l$+!#(Jworld-p $@$,(Jt $@$N$H$-!"(J
$@2sE>%^%H%j%/%9$,:8$+$i3]$1$i$l!"(Jnil $@$N$H$-$O1&$+$i3]$1$i$l$k!#(J
\item[rotation-matrix {\em theta axis \&optional result-mat}]\hfill\\
$@G$0U$N<4(J axis $@$N<~$j$r(J theta $@%i%8%"%s$@$12sE>$5$;$k%^%H%j%C%/%9$r7W;;$9$k!#(J
result-mat $@$,$"$l$P!"7k2L$r(J result-mat $@$KF~$l!"$J$1$l$P!"?7$?$J%^%H%j%C%/%9$r(J
$@:n$k!#(Jaxis $@$O!"G$0U$N!J@55,2=$5$l$F$$$kI,MW$O$J$$!K%U%m!<%H%Y%/%?$^$?$O(J
$@2sE><4$rI=$9%-!<%o!<%I(J:x :y :z or 0 1 2$@!#(J
\item[rotation-angle {\em rotation-mat}]\hfill\\
$@2sE>JQ49$rI=$9%^%H%j%C%/%9(J rotation-mat $@$NEy2A2sE>3Q!J%i%8%"%s!K$*$h$S(J
$@Ey2A2sE><4$r5a$a$k!#CM$O!"2sE>3QEY$H<4$N%j%9%H!#(J
\item[rpy-matrix {\em roll pitch yaw}]\hfill\\
$@%m!<%k!&%T%C%A!&%h%&$+$i!"2sE>%^%H%j%/%9$r7W;;$9$k!#(J
$@%m!<%k$O(Jz$@<4!"%T%C%A$O(Jy$@<4!"%h%&$O(Jx$@<42s$j$N2sE>3Q!J%i%8%"%s!K!#(J
$@$9$J$o$A!"%o!<%k%I$N(J x, y, z $@<42s$j$K(J yaw, pitch, roll $@%i%8%"%s$:$D!"(J
$@$3$N=g$G2sE>$5$;$k!#(J 
\item[rpy-angle {\em mat}]\hfill\\
$@2sE>JQ49$rI=$9%^%H%j%C%/%9(J mat $@$N%m!<%k!"%T%C%A!"%h%&!J%i%8%"%s!K$r5a$a$k!#(J
$@CM$O!"(J2$@<oN`$N%m!<%k!&%T%C%A!&%h%&$N%j%9%H!#(J
\item[euler-matrix {\em az ay az2}]\hfill\\
$@%*%$%i!<3Q!J(JPaul$@$NK\$N0z?t$N=g$K=`5r!"%i%8%"%s!K$+$i2sE>%^%H%j%/%9$r7W;;$9$k!#(J
$@$9$J$o$A!"%m!<%+%k:BI87O$N(J z, y, z $@<42s$j$K(J az, ay, az2 $@$N=g$G2sE>$5$;$k!#(J
\item[euler-angle {\em mat}]\hfill\\
$@2sE>JQ49$rI=$9%^%H%j%C%/%9(J mat $@$N%*%$%i!<3Q!J%i%8%"%s!K$r5a$a$k!#CM$O!"(J
2$@<oN`$N%*%$%i!<3Q$N%j%9%H!#(J
\item[matrix {\em rowvec1 rowvec2 ...}]\hfill\\
$@M?$($i$l$?(J\ $rowvec1,\ldots,rowvec_{m}$\ $@$+$i%^%H%j%/%9$r:n@.$9$k!#(J
\item[matrixp {\em obj}]\hfill\\
obj $@$,%^%H%j%C%/%9$J$i$P(Jt $@$r!"$5$b$J$1$l$P(Jnil $@$rJV$9!#%^%H%j%/%9$H$O!"(J
$@MWAG$,IbF0>/?tE@$G$"$k$h$&$J(J2$@<!85G[Ns$G$"$k!#(J
\item[make-matrix {\em row column \&optional initial-elements}]\hfill\\
row $@9T(J column $@Ns$N%^%H%j%C%/%9$r:n$k!#(Jinitial-elements $@$N;XDj$,$"$l$P(J
$@3FMWAG$N=i4|CM$O$=$NCM$K$J$j!"$J$1$l$P$9$Y$F%<%m$K$J$k!#(J
\begin{verbatim}
eusgeo$ (setq x (make-matrix 2 2 '((1 2) (3 4))))
#2f((1.00000 2.00000) (3.00000 4.00000))
\end{verbatim}
\item[unit-matrix {\em dimension}]\hfill\\
dimension $@<!85$NC10L9TNs$r:n$k!#(J
\item[replace-matrix {\em dest-mat src-mat}]\hfill\\
dest-mat $@$N3FMWAG$r!"(Jsrc-mat $@$NMWAG$KCV$-49$($k!#JV$9CM$O!"(Jdest-mat$@!#(J
\item[copy-matrix {\em mat}]\hfill\\
mat $@$r%3%T!<$7$?%^%H%j%C%/%9$r?7$?$K:n$C$FJV$9!#(J
\item[transpose {\em mat \&optional result-mat}]\hfill\\
mat $@$NE>CV9TNs$r7W;;$9$k!#(Jresult-mat $@$,$"$l$P!"7k2L$r(J result-mat $@$KF~$l!"(J
$@$J$1$l$P!"?7$?$J%^%H%j%C%/%9$r:n$k!#(Jmat $@$O@5J}$G$"$kI,MW$O$J$$!#(J
\item[scale-matrix {\em scalar mat}]\hfill\\
mat $@$N3FMWAG$r(J scalar $@G\$9$k!#JV$9CM$O!"(Jmat$@!#(J
\item[matrix-row {\em mat row-index}]\hfill\\
mat $@$N(J row-index $@9T$N%Y%/%H%k$rJV$9!#(J
\item[matrix-column {\em mat column-index}]\hfill\\
mat $@$N(J column-index $@Ns$N%Y%/%H%k$rJV$9!#(J
\item[lu-decompose {\em mat \&optional result}]\hfill\\
mat $@$r(Jlu $@J,2r$9$k!#J,2r$5$l$?%^%H%j%/%9$O(Jresult $@$,;XDj$5$l$F$$$l$P(Jresult $@$K!"(J
result $@$,M?$($i$l$J$1$l$P!"(Jmat $@$,=q$-49$($i$l$k!#(Jlu-decompose $@$NCM$O!"(J
lu $@J,2r$NCV49%Y%/%?!J(Jpermutation$@%Y%/%?!K$G$"$k!#$3$l$O!"%T%\%C%HA*Br$K$h$C$F(J
$@Ns$,8r49$5$l$k$?$a$K@8$8$k!#(Jmat $@$O@5J}$G$"$k$3$H!#(Jmat $@$N(Jrank $@$,ITB-$9$k$H(J
nil $@$,JV$5$l$k!#(J
\item[lu-solve {\em lu-mat perm-vector bvector \&optional result}]\hfill\\
lu$@J,2r$5$l$?%^%H%j%/%9(Jlu-mat $@$KDj?t%Y%/%?(Jbvector $@$rM?$($F(J1$@<!O"N)J}Dx<0$r(J
$@2r$/!#(Jperm-vector $@$O(Jlu-decompose $@$N7k2LJV$5$l$kCV49%Y%/%?$G$"$k!#(J
$@78?t9TNs$,ITJQ$GDj?t%Y%/%?$@$1$,2?<oN`$+$"$k>l9g!"(Jlu-solve $@$@$1$G9bB.$K(J
$@2?<oN`$b$N2r$,5a$a$i$l$k!#(J
\item[simultaneous-equation {\em mat vec}]\hfill\\
$@78?t9TNs(Jmat $@$HDj?t%Y%/%?(Jvec $@$+$iO"N)(J1$@<!J}Dx<0$r2r$/!#(J
\item[lu-determinant {\em lu-mat perm-vector}]\hfill\\
lu$@J,2r$5$l$?9TNs$H(Jlu-mat$@$HCV49%Y%/%?(Jperm-vector$@$rMQ$$$F!"9TNs<0$NCM$r(J
$@5a$a$k!#(J
\item[inverse-matrix {\em mat}]\hfill\\
mat $@$N5U9TNs$r5a$a$k!#(Jmat $@$N(Jrank$@$,ITB-$9$k$H(Jdegenerated$@$,JV$5$l$k!#(J

\item[ssvdc {\em mat}]\hfill\\
mat$@$rFC0[CMJ,2r$9$k!#FC0[CM$,A4$F5a$^$C$?$+$I$&$+$r<($9(Jinfo$@!"(J
$@D>8r9TNs(JU$@!"FC0[CM$r%Y%/%H%k$K$7$?$b$N!"D>8r9TNs(JV$@!"$N%j%9%H$rJV$9!#(J
$@>\$7$/$O!"(JLINPACK$@$N%^%K%e%"%k$r;2>H!#(J

\item[pseudo-inverse {\em mat}]\hfill\\
$@FC0[CMJ,2r$rMQ$$$F!"(Jmat$@$N5?;w5U9TNs$r5a$a$k!#(J
mat$@$,%U%k%i%s%/$G$J$$$H$-$b;H$($k!#(J

\end{description}
\vspace{1.0cm}
\subsection{$@:BI87O$H:BI8JQ49(J}
$@K\@a$G$O!":BI87O$N%/%i%9$K$D$$$F=R$Y$k!#:BI87O%/%i%9$O!"(J
{\bf l/coordinates.l} $@$GDj5A$5$l$F$$$k!#(J
\\ [1.0cm]
{\jLarge coordinates}
\\ [0.5cm]
\begin{description}

\item[{\jlarge \bf description}]\hspace{1cm}
\begin{description}
\item[] 3$@<!85%^%H%j%/%9$H(J3$@<!85%U%m!<%H%Y%/%?$G:BI87O!"(J
$@:BI8JQ49$rDj5A$9$k%/%i%9!#(J1$@$D(J39$@%o!<%I$N%a%b%j$r;H$&!#(J
\end{description}

\item[{\jlarge \bf super class}]\hspace{1cm}
\begin{description}
\item[object]\hspace{1.0cm} 
\end{description}

\item[{\jlarge \bf slots}]\hspace{1cm}
\begin{description}
\item[rot] $@2sE>$rI=$9(J\ $3\times3$\ $@%^%H%j%/%9(J
\item[pos] $@86E@0LCV$rI=$9(J3$@<!85%U%m!<%H%Y%/%?(J
\end{description}

\item[{\jlarge \bf methods}]\hspace{1cm}
\begin{description}
\item[:dimension ()] $@:BI87O$N<!85$NLd$$9g$;!#(J
\item[:rot ()] $@2sE>%^%H%j%/%9$NLd$$9g$o$;!#(J
\item[:pos ()] $@0LCV%Y%/%?$NLd$$9g$o$;!#(J
\item[:newcoords (r p)] $@:BI87O$N0LCV!";Q@*$,JQ2=$9$k;~8F$P$l$k%a%=%C%I!#(J
$@$3$NJQ2=$N%$%Y%s%H$rMxMQ$7$?$$;~$O%5%V%/%i%9$KF1L>$N%a%=%C%I$rDj5A$7!"(J
send-super$@$N8e!"=jK>$N=hM}$r9T$J$&!#(J
\item[:replace-rot (r)]
\item[:replace-pos (p)]
\item[:replace-coords (coords)] $@$3$N:BI87O$N2sE>!"0LCV$r0z?t$+$i%3%T!<$9$k!#(J
$@$3$l$i$O(Jnewpos, newrot, newcoords $@$rMQ$$$J$$!#(J
\item[:copy-pos ()]
\item[:copy-rot ()]
\item[:copy-coords ()] $@$3$N:BI87O$NJ#@=$r:n@.$9$k!#(J
\item[:worldrot ()]$@%o!<%k%I:BI87O$K$*$1$k!J<B$O(Jself$@$N!K2sE>%^%H%j%/%9$rJV$9!#(J 
\item[:worldpos ()]$@%o!<%k%I:BI87O$K$*$1$k!J<B$O(Jself$@$N!K0LCV%Y%/%?$rJV$9!#(J
\item[:parentcoords ()]$@?F$N:BI87O!J(J*world-coords*$@!K$rJV$9!#(J
\item[:rotate-vector (vec)]$@%Y%/%?(Jvec$@$r$3$N:BI8$N%o!<%k%I:BI87O$K$*$1$k(J
$@2sE>%^%H%j%/%9!J<B$O(Jrot$@!K$@$12sE>$9$k!#(J
\item[:transform-vector (vec)] $@$3$N:BI87O$K$*$$$FI=8=$5$l$?%Y%/%?(Jvec
$@$r30It!J%o!<%k%I!K$K$*$1$kI=8=$KJQ49$9$k!#(J
\item[:inverse-transform-vector (vec)] $@30It!J%o!<%k%I!K$K$*$1$k0LCV%Y%/%?(J
vec$@$r$3$N:BI87O$G$NI=8=$K5UJQ49$9$k!#(J
\item[:reset-coords ()] $@0LCV$r86E@$K!"2sE>$rC10L%^%H%j%/%9$K$9$k!#(J
\item[:inverse-transformation ()]
$@$3$N:BI87O$N5UJQ49$N:BI87O$r:n@.$9$k!#(J
\item[:transformation (c2 \&optional (wrt 'local))]
$@$3$N:BI87O(J(c1)$@$HB>$N:BI87O(J(c2)$@$H$N4V$N(Jwrt$@:BI87O$K4X$9$kJQ49(J(ct)$@$r5a$a$k!#(J\\
$wrt=local\ c2=c1*ct \\ 
wrt=world,parent\ c2=ct*c1 \\ 
wrt=x\ c2=xw*ct*xw^{-1}*c1$ \\
$@C"$7!"(Jx$@$N(Jworldcoords$@$r(Jxw$@$H$9$k!#(J
\item[:transform (ct \&optional (wrt 'local))] 
$@$3$N:BI87O(J(c1)$@$r(Jwrt$@:BI87O$K4X$9$kJQ49(J(ct)$@$GJQ49$9$k!#(J\\
$wrt=local\ \ c2=c1*ct \\ 
wrt=world,parent\ \ c2=ct*c1 \\ 
wrt=x\ \ c2=xw*ct*xw^{-1}*c1$ \\
$@C"$7!"JQ498e$N:BI87O$r(Jc2$@$H$7!"(Jx$@$N(Jworldcoords$@$r(Jxw$@$H$9$k!#(J
\item[:rotate (theta axis \&optional (wrt 'local))]
$@$3$N:BI87O$KBP$7!"(Jwrt$@:BI87O$K4X$7$F(Jtheta axis$@$GI=$o$92sE>$r9T$J$&!#(J
$@$?$@$7!"2sE>$O$3$N:BI87O$N86E@$rCf?4$H$7$F9T$J$&!#(J
$@=>$C$F!":BI87O$N86E@$N0LCV$OJQ$o$i$J$$!#(J
axis$@!J2sE><4!K$O!"(J:x,:y,:z,float-vector,nil $@$N$$$:$l$+!#(J
axis$@$,!"(J:x,:y,:z$@$N;~$O!"$=$l$>$l!"(Jwrt$@:BI87O$N(Jx,y,z$@<42s$j$K(Jtheta$@%i%8%"%s$N2sE>!#(J
axis$@$,!"(Jfloat-vector$@$N;~$O!"(Jwrt$@:BI87O$G$N(Jfloat-vector$@$r2sE><4$H$7$?(J
theta$@%i%8%"%s$N2sE>!#(J
axis$@$,!"(Jnil$@$N;~$O!"(Jtheta$@$O2sE>3Q$G$J$/2sE>%^%H%j%/%9$G!"(J
wrt$@:BI87O$K4X$7$F2sE>%^%H%j%/%9(Jtheta$@$@$12sE>$9$k!#(J
\item[:orient (theta axis \&optional (wrt 'local))]
$@%o!<%k%I:BI87O$+$i8+$F!"(J
$@!V(Jwrt$@:BI87O(J(cwrt)$@$K(Jtheta axis$@$GI=$o$5$l$k2sE>(J(ct$@$GI=$5$l$k(J)$@$r9T$J$C$?(J
$@;Q@*!W$HEy$7$/$J$k$h$&$K!"$3$N:BI87O$rDj$a$J$*$9!#(J
$@:BI87O$N86E@$N0LCV$OJQ$o$i$J$$!#(J
$wrt=local\ \ c2=cwrt*ct \\
wrt=world,parent\ \ c2=ct \\
wrt=x\ \ c2=xw*ct$ \\
$@C"$7!"JQ498e$N:BI87O$r(Jc2$@$H$7!"(Jx$@$N(Jworldcoords$@$N(Jrot$@$r(Jxw$@$H$9$k!#(J
axis($@2sE><4(J)$@$O!"(J:x, :y, :z, float-vector, nil $@$N$$$:$l$+!#(J
axis$@$,!"(J:x, :y, :z$@$N;~$O!"$=$l$>$l!"(Jwrt$@:BI87O$N(Jx, y, z$@<42s$j$K(J
theta$@%i%8%"%s$N2sE>!#(J
axis$@$,!"(Jfloat-vector$@$N;~$O!"(Jwrt$@:BI87O$G$N(Jfloat-vector$@$r2sE><4$H$7$?(J
theta$@%i%8%"%s$N2sE>!#(J
axis$@$,!"(Jnil$@$N;~$O!"(Jtheta$@$O2sE>3Q$G$J$/2sE>%^%H%j%/%9$G!"(J
wrt$@:BI87O$K4X$7$F2sE>%^%H%j%/%9(Jtheta$@$@$12sE>$9$k!#(J
\item[:translate (vec \&optional (wrt 'local))] wrt$@:BI87O$GI=$5$l$?%Y%/%?(Jvec
$@$@$1!"$3$N:BI87O$rAjBP0\F0$9$k!#(J
\item[:locate (vec \&optional (wrt 'local))] $@$3$N:BI87O$r!"(Jwrt$@:BI87O$GI=$5$l$?(J
$@0LCV%Y%/%?(Jvec$@$N0LCV$K@dBP0\F0$9$k!#(J
\item[:euler (azimuth elevation rotation)]
$@:BI87O$r(J\ $z$\ $@<4$K1h$C$F(J\ $azimuth$\ $@%i%8%"%s!"(J\ $y$\ $@<4$K1h$C$F(J
$elevation$\ $@!"(J\ $z$\ $@<4$K1h$C$F(J\ $ratation$\ $@2sE>$5$;$k!#<4$O!"%m!<%+%k!#(J
\item[:euler-angle ()]$@$3$N:BI87O$N%*%$%i!<3Q$r5a$a$k!#(J
\item[:rpy-angle ()]$@$3$N:BI87O$N%m!<%k!"%T%C%A!"%h%&$r5a$a$k!#(J
\item[:rpy(roll\ pitch\ yaw)]
\item[:init] $@:BI87O$r=i4|2=$9$k!#(J
\begin{description}
\item[:dimension] 3
\item[:pos] \#f(0 0 0) $@0LCV%Y%/%?(J
\item[:rot] (unit-matrix) $@2sE>%^%H%j%/%9(J
\item[:euler,\ :rpy] euler$@3Q!"(Jroll-pitch-yaw$@$K$h$k2sE>;XDj(J
\item[:axis,\ :angle] axis$@<42s$j$K(Jangle$@2sE>(J
\item[:coords] $@B>$N(Jcoords$@$+$i(Jcopy
\item[:4x4] 4\ $\times$\ 4\ $@%^%H%j%/%9$G;XDj(J
\item[:wrt] axis, angle$@$N(Jwrt$@;XDj(J
\item[:name] $@:BI87O$N(J:name$@B0@-CM!#%W%j%s%H$G;HMQ$5$l$k(J
\end{description}

\end{description}
\end{description}
\vfill
\pagebreak
{\jLarge cascaded-coords}
\\ [0.5cm]

\begin{description}

\item[{\jlarge \bf description}]\hspace{1cm}
\begin{description}
\item[] $@%/%i%9(Jcoordinates$@$N%5%V%/%i%9$G!":BI87O$N?F;R4X78$r4IM}$9$k%/%i%9!#(J
1$@$D(J84$@%o!<%I$N%a%b%j$r;H$&!#(J
\end{description}

\item[{\jlarge \bf super class}]\hspace{1cm}
\begin{description}
\item[coordinates (rot pos)]\hspace{1cm}
rot,pos $@$K$h$C$F<+J,$N?F:BI87O$KBP$9$kAjBPE*$JJQ49$r5-O?$7$F$$$k!#(J
\end{description}

\item[{\jlarge \bf slots}]\hspace{1cm}
\begin{description}
\item[parent] 
\item[descendants]
\item[worldcoords]
\item[manager]
\item[changed]
\end{description}

\item[{\jlarge \bf methods}]\hspace{1cm}
\begin{description}
\item[:inheritance ()] $@;R6!:BI87O$NLZ9=B$$r%j%9%H$K$7$FJV$9!#(J
\item[:assoc (childcoords)] childcoords $@$r=>:BI87O$H$7$FEPO?$9$k!#(J
self$@$H(Jchildcoords $@$N0LCV4X78$,JQ2=$7$J$$$h$&(Jchildcoords $@$NFbMF$O=q$-49(J
$@$($i$l$k!#$b$7!"(Jchildcoords $@$,B>$N:BI87O$N=>:BI87O$H$7$FDj5A$5$l$F$$$k(J
$@$H$-$O$^$:$=$N4X78$r@Z$jN%$7$F$+$i<+J,<+?H$K(J:obey $@$K$h$C$F@\B3$9$k!#(J
\item[:dissoc (child)] child $@$r@Z$jN%$9!#(J
\item[:newcoords (r p)] $@:BI87O$N0LCV!";Q@*$,JQ2=$9$k;~8F$P$l$k%a%=%C%I!#(J
$@$3$NJQ2=$N%$%Y%s%H$rMxMQ$7$?$$;~$O%5%V%/%i%9$KF1L>$N%a%=%C%I$rDj5A$7!"(J
send-super$@$N8e!"=jK>$N=hM}$r9T$J$&!#(J
\item[:changed ()] $@<+J,$H;RB9$N%9%m%C%H(Jchanged$@$r$9$Y$F(Jt$@$K$9$k!#(J
\item[:worldrot ()]$@$3$N:BI87O$N%o!<%k%I:BI87O$G$N2sE>%Y%/%?$r5a$a$k!#(J
\item[:worldpos ()]$@$3$N:BI87O$N%o!<%k%I:BI87O$G$N0LCV%^%H%j%/%9$r5a$a$k!#(J
\item[:worldcoords ()] worldcoords$@$NLd9g$;!#(J
changed$@$,(Jt$@$J$i$P!"LZ9=B$$r%H%i%P!<%9$7$F!"%o!<%k%I$K$*$1$kJQ49$r(J
$@5a$a!"FbItJQ?t(Jworldcoords $@$KF~$l$k!#I{:nMQ$H$7$F!"$3$N:BI87O$N?F(J
$@$*$h$S$9$Y$F$N@hAD$KBP$7!"(J:worldcoords $@$r9T$J$&!#(J
\item[:update ()] worldcoords$@$r5a$a$h$&$H$7$F!"(Jchanged=T$@$N$H$-!"$9$J$o$A!"(J
worldcoords$@$N<B:]$NJQ99$,5/$3$C$?$H$-!"$3$N(J:update$@$,8F$P$l$k!#(J
\item[:parentcoords ()]parent$@$N(Jworldcoords$@$NLd9g$;!#(J
\item[:transform-vector (vec)] $@$3$N:BI87O$K$*$$$FI=8=$5$l$?0LCV%Y%/%?(Jvec
$@$r%o!<%k%I:BI87O$K$*$1$kI=8=$KJQ49$9$k!#(J
\item[:rotate-vector (vec)]$@%Y%/%?(Jvec$@$r$3$N:BI8$N%o!<%k%I:BI87O$K$*$1$k(J
$@2sE>%^%H%j%/%9$@$12sE>$9$k!#(J
\item[:inverse-transform-vector (vec)]$@%o!<%k%I:BI87O$K$*$$$FI=8=$5$l$?(J
$@0LCV%Y%/%?(Jvec$@$r$3$N:BI87O$K$*$1$kI=8=$K5UJQ49$9$k!#(J
\item[:inverse-transformation ()]
$@$^$:(Jworldcoords $@$r5a$a!"$=$N5UJQ49$r5a$a$k!#7k2L$O(Jcoordinates$@!#(J
\item[:transform (ct \&optional(wrt 'local))]
$@$3$N:BI87O(J(c1)$@$r(Jwrt$@:BI87O$K4X$9$kJQ49(J(ct)$@$GJQ49$9$k!#(J\\
	$wrt=local\ c2=c1*ct \\ wrt=parent\ c2=ct*c1 \\
wrt=world\  c2=c1p^{-1}*ct*c1p*c1 \\
wrt=x\ c2=c1p^{-1}*xw*ct*xw^{-1}*c1p*c1$\\
$@C"$7!"JQ498e$N:BI87O$r(Jc2$@!"(Jc1$@$N(Jparentcoords$@$r(Jc1p$@!"(J
x$@$N(Jworldcoords$@$r(Jxw$@$H$9$k!#(J
\item[:rotate (theta axis \&optional (wrt 'local)]
$@$3$N:BI87O$KBP$7!"(Jwrt$@:BI87O$K4X$7$F(Jtheta axis$@$GI=$o$92sE>$r9T$J$&!#(J
$@$?$@$7!"2sE>$O$3$N:BI87O$N86E@$rCf?4$H$7$F9T$J$&!#(J
$@=>$C$F!":BI87O$N86E@$N0LCV$OJQ$o$i$J$$!#(J
axis$@!J2sE><4!K$O!"(J:x,:y,:z,float-vector,nil $@$N$$$:$l$+!#(J
axis$@$,!"(J:x,:y,:z$@$N;~$O!"$=$l$>$l!"(Jwrt$@:BI87O$N(Jx,y,z$@<42s$j$K(Jtheta$@%i%8%"%s$N2sE>!#(J
axis$@$,!"(Jfloat-vector$@$N;~$O!"(Jwrt$@:BI87O$G$N(Jfloat-vector$@$r2sE><4$H$7$?(J
theta$@%i%8%"%s$N2sE>!#(J
axis$@$,!"(Jnil$@$N;~$O!"(Jtheta$@$O2sE>3Q$G$J$/2sE>%^%H%j%/%9$G!"(J
wrt$@:BI87O$K4X$7$F2sE>%^%H%j%/%9(Jtheta$@$@$12sE>$9$k!#(J
\item[:orient (theta axis \&optional (wrt 'local)]
$@?F:BI87O$+$i8+$F!"(J
$@!V(Jwrt$@:BI87O(J(cwrt)$@$K(Jtheta axis$@$GI=$o$5$l$k2sE>(J(ct$@$GI=$5$l$k(J)$@$r9T$J$C$?(J
$@;Q@*!W$HEy$7$/$J$k$h$&$K!"$3$N:BI87O$rDj$a$J$*$9!#(J
$@:BI87O$N86E@$N0LCV$OJQ$o$i$J$$!#(J
        $wrt=local\ c2=cwrt*ct \\ wrt=parent\ c2=ct \\
wrt=world\  c2=cwrtp^{-1}*ct \\
wrt=x\ c2=cwrtp^{-1}*xw*ct$\\
$@C"$7!"JQ498e$N:BI87O$r(Jc2$@!"(Jcwrt$@$N(Jparentcoords$@$N(Jrot$@$r(Jcwrtp$@!"(J
x$@$N(Jworldcoords$@$N(Jrot$@$r(Jxw$@$H$9$k!#(J
axis($@2sE><4(J)$@$O!"(J:x,:y,:z,float-vector,nil $@$N$$$:$l$+!#(J
axis$@$,!"(J:x,:y,:z$@$N;~$O!"$=$l$>$l!"(Jwrt$@:BI87O$N(Jx,y,z$@<42s$j$K(Jtheta$@%i%8%"%s$N2sE>!#(J
axis$@$,!"(Jfloat-vector$@$N;~$O!"(Jwrt$@:BI87O$G$N(Jfloat-vector$@$r2sE><4$H$7$?(J
theta$@%i%8%"%s$N2sE>!#(J
axis$@$,!"(Jnil$@$N;~$O!"(Jtheta$@$O2sE>3Q$G$J$/2sE>%^%H%j%/%9$G!"(J
wrt$@:BI87O$K4X$7$F2sE>%^%H%j%/%9(Jtheta$@$@$12sE>$9$k!#(J
\item[:manager (\&optional m)]manager$@$NLd9g$;!#(J
m$@$,$"$l$P!"(Jmanager$@$r(Jm$@$K%;%C%H$9$k!#(J
\item[:init]
\end{description}
\item[{\jlarge \bf Note}]\hspace{1cm}
\begin{description}
\item[:transform\ :rotate\ :orient\ :translate\ :locate]
$@$3$l$i$N(J\ {\bf method}\ $@$r8F$s$G$b!"(J\ {\bf worldcoords}\ $@%9%m%C%H$OJQ99(J
$@$5$l$J$$!#(J\ {\bf changed}\ $@%9%m%C%H$r(J\ $t$\ $@$K%;%C%H$7$F!"JQ99$5$l$?$3$H$,(J
$@5-O?$5$l$k$@$1$G$"$k!#(J\ {\bf worldcoords}\ $@%9%m%C%H$,99?7$5$l$k$N$O!"8e$K(J
\ {\bf :worldcoords}\ $@%a%=%C%I$,8F$P$l$?$H$-$G$"$k!#(J
\end{description}

\end{description}
\vfill

\subsection{$@:BI8$N@8@.$HJQ49(J}

\begin{description}
\item[make-coords] coordinates $@$N@8@.!#(J
\item[make-cascoords] cascaded-coords $@$N@8@.!#(J
\item[transform-coords c1 c2 \&optional (c3 (instance coordinates :init))]
\hfill\\
$@:BI87O$NJQ49(J $c1*c2$$@!#(Jc3$@$,$"$l$P7k2L$r(Jc3$@$KF~$l!"$J$1$l$P?7$?$J(Jcoordinates
$@$r:n$k!#(J
\end{description}

