POV-Ray : Newsgroups : povray.unofficial.patches : Something fresh - symetry operator patch : Re: Something fresh - symetry operator patch Server Time
20 Jul 2024 21:18:18 EDT (-0400)
  Re: Something fresh - symetry operator patch  
From: Wlodzimierz ABX Skiba
Date: 11 May 2001 03:05:48
Message: <3afb8f4c$1@news.povray.org>
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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.