POV-Ray : Newsgroups : povray.text.scene-files : Bicubic Patch Macro (Macro Code) Server Time
23 Dec 2024 03:04:08 EST (-0500)
  Bicubic Patch Macro (Macro Code) (Message 1 to 9 of 9)  
From: Dave Dunn
Subject: Bicubic Patch Macro (Macro Code)
Date: 7 Feb 2002 17:51:53
Message: <3C63056A.1D933065@aol.com>
/*Here is a macro that emulates a wireframe modeler for a single bicubic
patch. This file is only the macro and should be saved as "patcher.mcr"
in order for the next scene file to render. The demo will be of a flat
sixteen point patch. changing the control points in the array will allow
you to model the bicubic patch interactively. This may come in handy for
anyone wanting to do a leaf, a flower petal, or a sheet of paper.  */

//Square Patch Array DO NOT DELETE! Copy to Scene.
#declare Points = array [16]
{
//Bottom Row
<-7.5,-7.5,0>, //0-2 Blue Corner Lower Left
<-2.5,-7.5,0>, //3-5 Yellow Lower Mid-Left
<2.5,-7.5,0>,  //6-8 Yellow Lower Mid-Right
<7.5,-7.5,0>, //9-11 Blue Corner Lower Right
//Second Row
<-7.5,-2.5,0>,  // 12-14 Yellow Left Lower Mid
<-2.5,-2.5,0>, //15-17 Green Center LL
<2.5,-2.5,0>,  //18-20 Green Center LR
<7.5,-2.5,0>,  //21-23 Yellow Right Lower Mid
//Third Row
<-7.5,2.5,0>, //24-26 Yellow Left Upper Mid
<-2.5,2.5,0>, //27-29 Green Center UL
<2.5,2.5,0>,  //30-32 Green Center UR
<7.5,2.5,0>,  //33-35 Yellow Right Upper Mid
//Top Row
<-7.5,7.5,0>, //36-38 Blue corner Upper Left
<-2.5,7.5,0>, //39-41 Yellow Upper Mid-Left
<2.5,7.5,0>, //42-44 Yellow Upper Mid-Right
<7.5,7.5,0> //45-47 Blue Corner Upper Right
}

#macro Patcher(Patch,Vertex,Wire,Color,XRay)
union {
#if (Patch = 1)
bicubic_patch {
type 1
flatness 0.01
u_steps 3
v_steps 3
Points[0]Points[1]Points[2]Points[3]
Points[4]Points[5]Points[6]Points[7]
Points[8]Points[9]Points[10]Points[11]
Points[12]Points[13]Points[14]Points[15]
pigment {Color #if(XRay=1) filter .6 #end}}
#end

#if(Vertex=1)
union {
sphere {Points[0],.2 pigment {Blue}}
sphere {Points[1],.2}
sphere {Points[2],.2}
sphere {Points[3],.2 pigment {Blue}}
sphere {Points[4],.2}
sphere {Points[5],.2 pigment {Green}}
sphere {Points[6],.2  pigment {Green}}
sphere {Points[7],.2}
sphere {Points[8],.2}
sphere {Points[9],.2 pigment {Green}}
sphere {Points[10],.2 pigment {Green}}
sphere {Points[11],.2}
sphere {Points[12],.2  pigment {Blue}}
sphere {Points[13],.2}
sphere {Points[14],.2}
sphere {Points[15],.2  pigment {Blue}}
pigment {Yellow} no_shadow} #end

#if(Wire=1)
union {
cylinder {Points[0],Points[1],.1}
cylinder {Points[1],Points[2],.1}
cylinder {Points[2],Points[3],.1}
cylinder {Points[4],Points[5],.1}
cylinder {Points[5],Points[6],.1}
cylinder {Points[6],Points[7],.1}
cylinder {Points[8],Points[9],.1}
cylinder {Points[9],Points[10],.1}
cylinder {Points[10],Points[11],.1}
cylinder {Points[12],Points[13],.1}
cylinder {Points[13],Points[14],.1}
cylinder {Points[14],Points[15],.1}
cylinder {Points[0],Points[4],.1}
cylinder {Points[4],Points[8],.1}
cylinder {Points[8],Points[12],.1}
cylinder {Points[1],Points[5],.1}
cylinder {Points[5],Points[9],.1}
cylinder {Points[9],Points[13],.1}
cylinder {Points[2],Points[6],.1}
cylinder {Points[6],Points[10],.1}
cylinder {Points[10],Points[14],.1}
cylinder {Points[3],Points[7],.1}
cylinder {Points[7],Points[11],.1}
cylinder {Points[11],Points[15],.1}
pigment {Red} no_shadow}
#end } #end


Post a reply to this message

From: Dave Dunn
Subject: Re: Bicubic Patch Macro (Macro Code)
Date: 7 Feb 2002 17:54:02
Message: <3C6305EB.4C87BD78@aol.com>
/*Here is the "modeling enviornment for the bicubic patch modeler. To get a
"fresh" square patch, copy the array from the patcher.mcr file. */

#include "colors.inc"
#include "textures.inc"
#include "patcher.mcr"

camera{ location<0,0,-30> look_at<0,0,0>}

light_source{ <-10,60,-130> White}

#declare Points = array [16]
{
//Bottom Row
<-1.5,-7.5,0>, //0-2 Blue Corner Lower Left
<-.5,-12.5,0>, //3-5 Yellow Lower Mid-Left
<.5,-12.5,0>,  //6-8 Yellow Lower Mid-Right
<1.5,-7.5,0>, //9-11 Blue Corner Lower Right
//Second Row
<-7.5,-2.5,0>,  // 12-14 Yellow Left Lower Mid
<-2.5,-2.5,-5>, //15-17 Green Center LL
<2.5,-2.5,-5>,  //18-20 Green Center LR
<7.5,-2.5,0>,  //21-23 Yellow Right Lower Mid
//Third Row
<-7.5,2.5,0>, //24-26 Yellow Left Upper Mid
<-2.5,2.5,-5>, //27-29 Green Center UL
<2.5,2.5,-5>,  //30-32 Green Center UR
<7.5,2.5,0>,  //33-35 Yellow Right Upper Mid
//Top Row
<-5,7.5,0>, //36-38 Blue corner Upper Left
<-2.5,12,0>, //39-41 Yellow Upper Mid-Left
<2.5,12,0>, //42-44 Yellow Upper Mid-Right
<5,7.5,0> //45-47 Blue Corner Upper Right
}

object {
Patcher(1,1,1,White,1)
}


Post a reply to this message

From: Dave Dunn
Subject: Re: Bicubic Patch Macro (Scene File)
Date: 7 Feb 2002 17:55:07
Message: <3C63062B.4B7A8466@aol.com>
/*This file shows patcher in action, modeling the petal of a flower. This is
something I have actually gone to the trouble of opening Moray for. Patcher
elminates the need for modelers when all you need is a simple patch (flag,
pennant, piece of paper, leaf etc). */

#include "colors.inc"
#include "textures.inc"
#include "patcher.mcr"

background {SkyBlue}

camera{ location<0,30,-60> look_at<0,0,0>}

light_source{ <-10,60,-130> White}

#declare Points = array [16]
{
//Bottom Row
<-1.5,-7.5,0>, //0-2 Blue Corner Lower Left
<-.5,-12.5,0>, //3-5 Yellow Lower Mid-Left
<.5,-12.5,0>,  //6-8 Yellow Lower Mid-Right
<1.5,-7.5,0>, //9-11 Blue Corner Lower Right
//Second Row
<-7.5,-2.5,0>,  // 12-14 Yellow Left Lower Mid
<-2.5,-2.5,-5>, //15-17 Green Center LL
<2.5,-2.5,-5>,  //18-20 Green Center LR
<7.5,-2.5,0>,  //21-23 Yellow Right Lower Mid
//Third Row
<-7.5,2.5,0>, //24-26 Yellow Left Upper Mid
<-2.5,2.5,-5>, //27-29 Green Center UL
<2.5,2.5,-5>,  //30-32 Green Center UR
<7.5,2.5,0>,  //33-35 Yellow Right Upper Mid
//Top Row
<-5,7.5,0>, //36-38 Blue corner Upper Left
<-2.5,12,0>, //39-41 Yellow Upper Mid-Left
<2.5,12,0>, //42-44 Yellow Upper Mid-Right
<5,7.5,0> //45-47 Blue Corner Upper Right
}

#declare Petal =
object {
Patcher(1,0,0,White,0)
rotate x*-70
rotate y*90
translate x*-11
rotate x*-10}

#declare Count = 0;
#while(Count<6)
object {Petal rotate y*60*Count}
#declare Count = Count+1;
#end
sphere {<0,-6,0>,3.5 scale <1,.5,1> pigment {Yellow} normal {granite}}
union {
cylinder {<0,-6,0,>,<-5,-12,-3>,1}
sphere {<-5,-12,-3>,1}
cylinder {<-5,-12,-3>,<-7,-20,-6>,1}
sphere {<-7,-20,-6>,1}
cylinder {<-7,-20,-6>,<-4,-40,-2>,1}
sphere {<-4,-40,-2>,1}
cylinder {<-4,-40,-2>,<0,-60,0>,1}
pigment {ForestGreen} normal {spiral1 3 rotate x*-90 scale .25}}


Post a reply to this message

From: Nekar Xenos
Subject: Re: Bicubic Patch Macro (Macro Code)
Date: 8 Feb 2002 02:49:21
Message: <3c638301@news.povray.org>
Find "file://"
Replace with "//  "

:P

--
#local X=20*<-2,2,5>;#local K=2*z*X-X;#local R=seed(frame_number);blob{#while(K
.x>X.x)#local N=X+<rand(R)rand(R)1>/3;#local X=(vlength(N-K)<vlength(X-K)?N:2*X
-N);sphere{X,1,1rotate z*90}sphere{X,1,1}#end pigment{rgbt 1}interior{media{
emission<2,4,5>*5}}hollow scale.05}//   http://nekar_xenos.tripod.com/metanoia/
sphere_sweep{catmull_rom_spline 6<-8,-8>1<-8,-8>1<-8,8>1<8,-8>1<8,8>1<8,8>1
translate 20*z pigment{gradient z scale 3color_map{[0rgb<0,9,18>][1rgb 0]}}}
"Dave Dunn" <poi### [at] aolcom> wrote in message
news:3C63056A.1D933065@aol.com...
> /*Here is a macro that emulates a wireframe modeler for a single bicubic
> patch. This file is only the macro and should be saved as "patcher.mcr"
> in order for the next scene file to render. The demo will be of a flat
> sixteen point patch. changing the control points in the array will allow
> you to model the bicubic patch interactively. This may come in handy for
> anyone wanting to do a leaf, a flower petal, or a sheet of paper.  */
>
> file://Square Patch Array DO NOT DELETE! Copy to Scene.
> #declare Points = array [16]
> {
> file://Bottom Row
> <-7.5,-7.5,0>, file://0-2 Blue Corner Lower Left
> <-2.5,-7.5,0>, file://3-5 Yellow Lower Mid-Left
> <2.5,-7.5,0>,  file://6-8 Yellow Lower Mid-Right
> <7.5,-7.5,0>, file://9-11 Blue Corner Lower Right
> file://Second Row
> <-7.5,-2.5,0>,  // 12-14 Yellow Left Lower Mid
> <-2.5,-2.5,0>, file://15-17 Green Center LL
> <2.5,-2.5,0>,  file://18-20 Green Center LR
> <7.5,-2.5,0>,  file://21-23 Yellow Right Lower Mid
> file://Third Row
> <-7.5,2.5,0>, file://24-26 Yellow Left Upper Mid
> <-2.5,2.5,0>, file://27-29 Green Center UL
> <2.5,2.5,0>,  file://30-32 Green Center UR
> <7.5,2.5,0>,  file://33-35 Yellow Right Upper Mid
> file://Top Row
> <-7.5,7.5,0>, file://36-38 Blue corner Upper Left
> <-2.5,7.5,0>, file://39-41 Yellow Upper Mid-Left
> <2.5,7.5,0>, file://42-44 Yellow Upper Mid-Right
> <7.5,7.5,0> file://45-47 Blue Corner Upper Right
> }
>
> #macro Patcher(Patch,Vertex,Wire,Color,XRay)
> union {
> #if (Patch = 1)
> bicubic_patch {
> type 1
> flatness 0.01
> u_steps 3
> v_steps 3
> Points[0]Points[1]Points[2]Points[3]
> Points[4]Points[5]Points[6]Points[7]
> Points[8]Points[9]Points[10]Points[11]
> Points[12]Points[13]Points[14]Points[15]
> pigment {Color #if(XRay=1) filter .6 #end}}
> #end
>
> #if(Vertex=1)
> union {
> sphere {Points[0],.2 pigment {Blue}}
> sphere {Points[1],.2}
> sphere {Points[2],.2}
> sphere {Points[3],.2 pigment {Blue}}
> sphere {Points[4],.2}
> sphere {Points[5],.2 pigment {Green}}
> sphere {Points[6],.2  pigment {Green}}
> sphere {Points[7],.2}
> sphere {Points[8],.2}
> sphere {Points[9],.2 pigment {Green}}
> sphere {Points[10],.2 pigment {Green}}
> sphere {Points[11],.2}
> sphere {Points[12],.2  pigment {Blue}}
> sphere {Points[13],.2}
> sphere {Points[14],.2}
> sphere {Points[15],.2  pigment {Blue}}
> pigment {Yellow} no_shadow} #end
>
> #if(Wire=1)
> union {
> cylinder {Points[0],Points[1],.1}
> cylinder {Points[1],Points[2],.1}
> cylinder {Points[2],Points[3],.1}
> cylinder {Points[4],Points[5],.1}
> cylinder {Points[5],Points[6],.1}
> cylinder {Points[6],Points[7],.1}
> cylinder {Points[8],Points[9],.1}
> cylinder {Points[9],Points[10],.1}
> cylinder {Points[10],Points[11],.1}
> cylinder {Points[12],Points[13],.1}
> cylinder {Points[13],Points[14],.1}
> cylinder {Points[14],Points[15],.1}
> cylinder {Points[0],Points[4],.1}
> cylinder {Points[4],Points[8],.1}
> cylinder {Points[8],Points[12],.1}
> cylinder {Points[1],Points[5],.1}
> cylinder {Points[5],Points[9],.1}
> cylinder {Points[9],Points[13],.1}
> cylinder {Points[2],Points[6],.1}
> cylinder {Points[6],Points[10],.1}
> cylinder {Points[10],Points[14],.1}
> cylinder {Points[3],Points[7],.1}
> cylinder {Points[7],Points[11],.1}
> cylinder {Points[11],Points[15],.1}
> pigment {Red} no_shadow}
> #end } #end
>
>
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.317 / Virus Database: 176 - Release Date: 2002/01/21


Post a reply to this message

From: Warp
Subject: Re: Bicubic Patch Macro (Macro Code)
Date: 8 Feb 2002 06:36:56
Message: <3c63b858@news.povray.org>
Nekar Xenos <j-p### [at] citywalkcoza> wrote:
: Find "file://"
: Replace with "//  "

  The original post does not have those file:// thingies.

-- 
#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

From: Nekar Xenos
Subject: Re: Bicubic Patch Macro (Macro Code)
Date: 8 Feb 2002 06:46:40
Message: <3c63baa0@news.povray.org>
"Warp" <war### [at] tagpovrayorg> wrote in message news:3c63b858@news.povray.org...
> Nekar Xenos <j-p### [at] citywalkcoza> wrote:
> : Find "file://"
> : Replace with "//  "
>
>   The original post does not have those file:// thingies.
>
> --
> #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 -

I guess it's the Outlook Express virus then.

;P

--
#local X=20*<-2,2,5>;#local K=2*z*X-X;#local R=seed(frame_number);blob{#while(K
.x>X.x)#local N=X+<rand(R)rand(R)1>/3;#local X=(vlength(N-K)<vlength(X-K)?N:2*X
-N);sphere{X,1,1rotate z*90}sphere{X,1,1}#end pigment{rgbt 1}interior{media{
emission<2,4,5>*5}}hollow scale.05}//   http://nekar_xenos.tripod.com/metanoia/
sphere_sweep{catmull_rom_spline 6<-8,-8>1<-8,-8>1<-8,8>1<8,-8>1<8,8>1<8,8>1
translate 20*z pigment{gradient z scale 3color_map{[0rgb<0,9,18>][1rgb 0]}}}


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.317 / Virus Database: 176 - Release Date: 2002/01/21


Post a reply to this message

From: Dave Dunn
Subject: Re: Bicubic Patch Macro (Macro Code)
Date: 8 Feb 2002 07:04:44
Message: <3C63BF3C.E5D6379@aol.com>
Warp wrote:

> >  The original post does not have those file:// thingies.

Looks like it posted fine on this end too. I wonder what all that stuff is.


Post a reply to this message

From: Warp
Subject: Re: Bicubic Patch Macro (Macro Code)
Date: 8 Feb 2002 08:16:20
Message: <3c63cfa3@news.povray.org>
Dave Dunn <poi### [at] aolcom> wrote:
:> >  The original post does not have those file:// thingies.

: Looks like it posted fine on this end too. I wonder what all that stuff is.

  It something Microsoft came up with. Something no-one else understands but
Microsoft only (and perhaps not even them do it).

-- 
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}//  - Warp -


Post a reply to this message

From: Tom Bates
Subject: Re: Bicubic Patch Macro (Macro Code)
Date: 9 Feb 2002 15:31:11
Message: <3c65870f@news.povray.org>
"Warp" <war### [at] tagpovrayorg> wrote in message news:3c63cfa3@news.povray.org...
> Dave Dunn <poi### [at] aolcom> wrote:
> :> >  The original post does not have those file:// thingies.
>
> : Looks like it posted fine on this end too. I wonder what all that stuff is.
>
>   It something Microsoft came up with. Something no-one else understands but
> Microsoft only (and perhaps not even them do it).
>

I just upgraded to OE6 (after receiving the Nimda worm)
and OE6 doesn't do the File:// thing like OE5 did.

I was pleasantly surprised.

Tom Bates
--
#macro T(B)#local m=mod(B,8);#local B=floor(B/8);m#end#local C=126981491245202;#
local D=115694168992822;sphere_sweep{b_spline 16#local i=0;#while(i<16)<T(C)-4,T
(D)-4,10-i/10>.1#local i=i+1;#end pigment{rgb 1}}light_source{-10,1} //Tom Bates


Post a reply to this message

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