|
![](/i/fill.gif) |
Ron Parker wrote in message ...
> On Thu, 10 May 2001 18:52:57 +0200, Wlodzimierz ABX Skiba wrote:
> >I've created simple addition to expressions - vector symmetry operator "@".
> >
> >Syntax
> > Vector @ SymmetryRefference
> > SymmetryRefference : Vector | ox | oy | oz | xy | xz | yz
>
> Why a patch and not a macro?
>
> #macro VecSym(Vec, Sym)
> (vlength(Sym)?(2*vdot(Vec,Sym)/vlength(Sym)*Sym-Vec):(-Vec))
> #end
>
> Then you give it x instead of ox, y instead of oy, etc. and
> x+y instead of xy etc.
x and x+y has meaning of vectors in POV (center of symetry)
ox is not <1,0,0> but axis x
xy is not <1,1,0> but plane contained axes x and y
and patch becouse now I'm adding support for plane{}
#local B=A@plane{y 1 rotate C translate z}
than perhaps I remove xy, xz and yz planes
of course all these things are posible with current syntax and macros but it was
inspired by my current work and short sigs it was just too much for me to type
<-A.x,A.y,A.z> to change sign only for one coordinate
perhaps AT_TOKEN is wrong but it is only one free I found
and I wanted avoid ambiguity
--
#macro Sig(A,B,X)_(A,B)_(B,X)_(X,A)#end#macro _(A,B)cylinder{<A.x,A.y,3>,<B.u,
B.v,3>.1,9}#end global_settings{max_trace_level 9}light_source{0 1}camera{up y
*4right-3*x}blob{_(<3,1>,<1,-5>)_(<2,-2>,<4,-2>)Sig(x,<-1,1.5>,<1,3>)_(z-1,z-4
)pigment{rgb 1}}box{-3 3pigment{rgb 0}finish{reflection 1}hollow} // POV-Ray31
Post a reply to this message
|
![](/i/fill.gif) |