|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Do you really need an empty object ? Can't you directly use first box object
> then instead of whole difference object ?
It seems I forgot to repeat the following information in my
second post: It need the empty object to feed it as a parameter
to macros using CSG.
Example: I might have a macro for doors. One of its parameters
is the key shape, so I can carve in (using difference) an appropriate
keyhole. Sometimes I might need a door without a keyhole. The I
would feed the empty object for the key shape. Following your idea
I would have to make a second copy of the door macro where I omit
the carving out of the keyhole.
Mark Weyer
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Mark Weyer wrote:
>
> It seems I forgot to repeat the following information in my
> second post: It need the empty object to feed it as a parameter
> to macros using CSG.
If you are not up to maximum speed just use a poly or isosurface with no
solutions...
Christoph
--
POV-Ray tutorials, include files, Sim-POV,
HCR-Edit and more: http://www.tu-bs.de/~y0013390/
Last updated 15 Nov. 2002 _____./\/^>_*_<^\/\.______
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Thu, 21 Nov 2002 16:26:12 +0100, Mark Weyer
<wey### [at] fregemathematikuni-freiburgde> wrote:
> > Do you really need an empty object ? Can't you directly use first box object
> > then instead of whole difference object ?
>
> It seems I forgot to repeat the following information in my
> second post: It need the empty object to feed it as a parameter
> to macros using CSG.
I already saw this but I intentionaly provoked you to more precise answer :-)
> Example: I might have a macro for doors. One of its parameters
> is the key shape, so I can carve in (using difference) an appropriate
> keyhole. Sometimes I might need a door without a keyhole. The I
> would feed the empty object for the key shape. Following your idea
> I would have to make a second copy of the door macro where I omit
> the carving out of the keyhole.
There is a lot of ways how you can do this without empty object.
For example:
// indexes to array
#declare DoorsId=0;
#declare KeyholeId=1;
#declare Key=2;
#macro Room(Elements)
#local Door=Elements[DoorsId];
#ifdef(Elements[KeyholeId])
#local Door=intersection{
object{Door}
object{Elements[KeyholeId]}
};
#ifdef(Elements[Key])
#local Door=union{
object{Door}
object{Elements[Key]}
};
#end
#end
#end
ABX
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> There is a lot of ways how you can do this without empty object.
You are right. But I still prefer the empty-object-method for
some applications, because it is more elegant to my taste.
Mark
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> If you are not up to maximum speed just use a poly or isosurface with no
> solutions...
In fact, my third approach (quadric {0 0 0 1}) is quite similar.
What is your suggestion for maximum speed?
Mark
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On Thu, 21 Nov 2002 16:44:51 +0100, Mark Weyer
<wey### [at] fregemathematikuni-freiburgde> wrote:
> > There is a lot of ways how you can do this without empty object.
>
> You are right. But I still prefer the empty-object-method for
> some applications, because it is more elegant to my taste.
Wasting memory for not necessary CSG objects is elegant? I doubt.
ABX
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3DDCFF73.C06ACF8C@frege.mathematik.uni-freiburg.de>,
Mark Weyer <wey### [at] fregemathematikuni-freiburgde> wrote:
> You are right. But I still prefer the empty-object-method for
> some applications, because it is more elegant to my taste.
It is in no way "elegant". It needlessly slows things down, takes
memory, and is just an ugly hack. The array method looks like the best
way to do it: simple, flexible, doesn't waste processing power or do
other odd things that could cause trouble. You don't need a "nothing"
object.
--
Christopher James Huff <cja### [at] earthlinknet>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tagpovrayorg
http://tag.povray.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Mark Weyer <wey### [at] fregemathematikuni-freiburgde> wrote:
> What is your suggestion for maximum speed?
Don't use an object at all. That achieves maximum speed.
--
#macro M(A,N,D,L)plane{-z,-9pigment{mandel L*9translate N color_map{[0rgb x]
[1rgb 9]}scale<D,D*3D>*1e3}rotate y*A*8}#end M(-3<1.206434.28623>70,7)M(
-1<.7438.1795>1,20)M(1<.77595.13699>30,20)M(3<.75923.07145>80,99)// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Mark Weyer <wey### [at] fregemathematikuni-freiburgde> wrote in
news:3DDCF201.8E1826C9@frege.mathematik.uni-freiburg.de
> Any suggestions?
maybe :
isosurface { function { 1 } gradient 0.01 accuracy 100000
contained_by { box { -1e5,+1e5 } }
--
#macro g(U,V)(.4*abs(sin(9*sqrt(pow(x-U,2)+pow(y-V,2))))*pow(1-min(1,(sqrt(
pow(x-U,2)+pow(y-V,2))*.3)),2)+.9)#end#macro p(c)#if(c>1)#local l=mod(c,100
);g(2*div(l,10)-8,2*mod(l,10)-8)*p(div(c,100))#else 1#end#end light_source{
y 2}sphere{z*20 9pigment{function{p(26252423)*p(36455644)*p(66656463)}}}//M
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Mark Weyer wrote:
> I occasionally (usually to feed parameters to CSG macros where) need an
> empty object.
>
> [...]
>
> Any suggestions?
sphere { 0, 0 clipped_by { sphere { 1, 0 } }
--
Ignacio Fernández Galván
Linux User #289967 (counter.li.org)
PGP Pub Key ID: 0x01A95F99 (pgp.escomplinux.org)
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |